Mixin 白皮书(最新中文版)

Mixin:
一个免费、闪电般快速的点对点数字资产交易网络
A free and lightning fast peer-to-peer transactional network for digital assets.

注:本文翻译工作由 七哥 完成,基于官方于2018年6月18日发布的最新版英文白皮书,原版白皮书下载链接:
https://mixin.one/assets/Mixin-Draft-2018-06-18.pdf

当前版本:v1.1,修改时间:2018-06-24,修正一些字句翻译
历史版本:v1.0,翻译时间:2018-06-18,新版白皮书发布

1. 项目动力 (Motivation)

比特币开启了一个资产管理的新时代,人们第一次重新拿回了自己资产的管理权,能看到资产是如何分配的,以及把经济从少数人的掌控中拯救出来。

今天无论专业人士还是普通大众,都已经接受了比特币区块链技术背后的这个非常棒的想法。使用加密货币的人群也在越来越快的增长。

不幸的是,在蓬勃发展的使用场景中,比特币有一些不太适合的地方。比较明显的问题包括:交易容量不够、确认太缓慢、手续费较高。由于比特币网络高度分布式的情况,修复已有的关键问题不太可行。所以人们倾向于创建新的项目,而不是持续地修补原来的比特币项目,来解决这些问题。

然后这些年人们就发明了 Ethereum, Monero, Stellar, Cardano 还有其它的区块链项目,几乎它们都是克服比特币已有的问题、再添加一些新的特性。但是它们并没有为原来的比特币解决那些不便,而且它们这些项目相互之间也无法获益。

幸运的是,有一些比特币的信仰者们选择修复比特币网络自身,他们也提出了很多很好的解决方案,其中最出色的是闪电网络 (Lightening Network) —— 一个建立在原有比特币网络上的小额支付系统,而且不用修改比特币的代码。

另一个有趣的方案是来自 Blockstream 的 Liquid 项目,它是比特币网络的侧链。

这些尝试都向前推动了整个比特币技术的创新,并且没有牺牲原有比特币网络的安全性、及其分布式特性。类似的技术很快也出现在比特币的竞争者这里,比如以太坊上的 Raiden Network。

在这份白皮书里面,我们也提出一个能加强当前所有的分布式账本的方案。我们把这个方案命名为 Mixin。它不是创建一个新的加密货币,也不是为现有分布式账本增加一个新的竞争者。

与闪电网络和 Liquid 试图对比特币网络做的改进一样,Mixin 是一个帮助现在所有的分布式账本获得每秒万亿 TPS、亚秒级别的确认、零手续费、加强了的隐私、无限的可扩展性能力的,公开的分布式账本。

2. 总览 (Overview)

Mixin 由以下几部分构成:单个、理论上永久性的内核 (Kernel),多个、动态的域 (Domain),以及多个、多目的的域扩展 (Domain Extension) —— 从某个高度来看它们形成了一个星型结构。

Mixin 白皮书(最新中文版)_第1张图片
总览:内核、域、域扩展

这个拓扑会让大家有担心说 Mixin 是一个中心化控制的网络,但是如果深入了解 Mixin 内核是如何工作了的话,就发现绝不是这样的(绝不是中心化控制的)。

Mixin 的内核,自己是一个很高性能的分布式的账本,它唯一的责任就是去验证资产和交易。这个单个、永久的 Mixin 内核是一个整体的分布式网络,就像比特币网络整体是一个分布式网络。

虽然 Mixin 内核会验证资产和交易,但它本身不会产生任何新资产。所有的资产都是经由 Mixin 域,才流入 Mixin 内核的。

每一个 Mixin 域也是一个分布式的账本,它的责任是为 Mixin 内核提供资产。这些资产可以是比特币,以太坊,或者其它的区块链资产,甚至可以是中心化的、比如说银行的资产。

Mixin 域为 Mixin 内核提供资产,那么 Mixin 内核为 Mixin 域验证和管理它的资产。

与现有的很多基于网关的解决方案不同,Mixin 内核和 Mixin 域都是公开的、分布式的账本,没有中心化的管理。

从 Mixin 内核到 Mixin 域,整个 Mixin 网络都是资产和交易相关的。Mixin 域扩展则是神奇发生的地方,它可以是以太坊的合约,EOS 的合约,或者是在可信的实例上的分布式的交易所,或者其它可能的东西。

3. Mixin Kernel (内核)

Mixin 网络的核心是 Minxin 的内核 (Mixin Kernel),它是基于有限个内核节点 (Kernel Node) 的、非常快的、异步的、容忍拜占庭失效的、DAG 图,来管理交易。

3.1 幽灵输出 (Ghost Output)

Mixin 内核使用了比特币的 UTXO 方式管理交易,使用了 CryotoNote 的一次性秘钥生成算法、避免一个地址多次使用来提升隐私性。我们把这个一次性的公钥成为幽灵地址 (Ghost Address),这个公钥上的交易输出叫做幽灵输出 (Ghost Output)。

在这个算法里,每个用户的私钥其实是两个不同的椭圆曲线私钥构成的私钥对 (a, b),与私钥对 (a, b) 对应的有公钥对 (A, B)。

当 Alice 想要给 Bob 发起支付的时候,她能获取到 Bob 的公开的公钥对 (A, B),然后用随机数据数据生成 3 个不同的临时公钥 (即幽灵地址),转入 3 个不同地址的金额就对应有 3 个不同的幽灵输出给 Bob。

3 个幽灵输出能交付更好的隐私性,也保证输出的金额随机性。

生成多个幽灵地址以后,Alice 会用 CryptoNode 算法签名这笔交易。

Mixin 白皮书(最新中文版)_第2张图片

注意到,为了提升隐私性,Alice 必须使用随机的 UTXO 作为交易的输入。Alice 签名完交易后,将它发送到 Mixin 内核。

只有 Bob 能够识别出属于接收人是他自己的那些交易(因为幽灵地址的特征),然后他可以用他自己的密钥对 (a, B) 解出这笔交易的输出信息。

Mixin 白皮书(最新中文版)_第3张图片

如果一个交易所想要向公众公布它自己的资产余额的话,那么它就可以公布它自己的 (a, B) 对,这样其他所有人能都识别出与交易所有关的那些交易、但是却不能动用其中的任何余额(因为其他人没拿到私钥 b)。

3.2 异步的、容忍拜占庭失效的 DAG (Asynchronous BFT Graph)

每个 Mixin 内核节点都需要质押 10,000 个 XIN, 而流通的 XIN 是 500,000 个,所以总的内核节点不会多于 50 个。另一方面为了防止过于集中,Mixin 内核需要至少 7 个节点才会启动。

所有的 Mixin 节点形成了一个松散的网状结构,它们的职责是交易验证和交易持久化保存。不像传统的区块链,Mixin 内核这里没有区块的概念,而是以单个交易为单位、尽快地将其指数级广播出去。

Mixin 白皮书(最新中文版)_第4张图片

下面是典型的 Mixin 内核交易的成功执行时经过的步骤:

步骤 1-6 太过细节,此处暂略,有兴趣的朋友可以查看英文原文

由于采用异步的 BFT 同步,双重支付 (double spend) 不可能发生。而且 UTXO 天然也使得事件的顺序不重要,所以在 DAG 里高并发也能得到保障。

3.3 带处罚的 PoS (Punitive Pos)

每一个 Mixin 内核节点都代表了 10,000 XIN —— 大约整个网络的 2%;而 Mixin 内核至少需要 7 个以上节点 —— 大约是整个网络的 15%。

内核的 BFT 同步的安全性由非常严格的带处罚的 PoS 来保障,但即便如此,如果一个内核节点被识别为攻击者的话,它所有的担保就会被回收进矿池。如果一个节点试图广播明显 (obvious) 的双重支付事件,那它就被认定为攻击者。一个事件是明显的,是指它的输入状态已经被至少 2/3K 个节点接受了。

一个节点第一次发送攻击事件,那它的权益 (stake) 还不会被回收,而是被整个网络标记为潜在攻击者。整个内核的节点数会临时降为 K-1,而且这个变化潜在攻击者不会发现。

其它的节点也会继续广播给这个被标记了的节点,但是不再会考虑它产生的事件了。如果还收到来自这个标记节点的更多可疑事件,那么内核将会签名一个包含特定转账信息的事件 —— 将这个标记节点的抵押物转账回矿池。

被标记的节点会被永久从内核移除,但给予它一段时间向 Mixin 内核管理委员会做出陈述,然后由所有 XIN 持有者投票。

3.4 可信执行环境 (TEE, Trusted Execution Enviroment)

Mixin 内核已经是一个异步的、BFT 同步的 DAG。为了保证将来的安全性,内核节点需要运行在 TEE 上。具体的,Mixin 使用 Intel SGX 作为 TEE 实现。

TEE 保障了 Mixin 内核的 3 点安全、可信因素:

  1. 所有的内核节点都需要运行相同的同步规则;
  2. 由于 Intel SGX 的密封性,那么即使 Mixin 内核是由一些先前的内核节点控制的,它也是可信的;
  3. 布式的域通信会更安全。

这里的底层逻辑是,Mixin 系统某种程度上信任 Intel 的 SGX。

需要注意,Mixin 内核本身就是安全的(跟当前已有的 BFT 方案一样安全)。Intel SGX 只是让它更好而已。

3.5 轻量见证者 (Light Witness)

轻量节点 (Light Node),是对 Mixin 内核进行简化的支付验证的节点。它通常会记录自己所有的未花销的输出,来简单响应账户余额查询。

如果轻量节点本身也持有 XIN,那么它就有机会去做轻量见证者 (Light Witness)。轻量见证者,主动地监控内核,然后需要对攻击者陈述做出投票时,它们也会被安排自动投票。

轻量见证者的投票是根据他们的权益 (stake) 来算权重的。这个投票主要针对攻击者的网络连接状况,这样就能确定攻击行为是否只是网络延迟引起的。

所有的轻量见证者投票都会被加权计算到内核管理委员会,来对攻击者陈述做出投票。如果判定攻击者陈述无效,那么对攻击者的惩罚就最终成立。

轻量见证者有动力去做这些投票,因为它们做了一些优秀工作的话,就能够得到挖矿回报。

4. Mixin 域 (Mixin Domain)

Mixin 域为 Mixin 内核提供资产的分布式账本。这些资产可以是比特币,以太坊,或者其它的区块链资产,甚至可以是中心化的、比如说银行的资产。

Mixin 白皮书(最新中文版)_第5张图片
  • Mixin 内核,是异步的 BFT DAG

  • Mixin 域,为 Mixin 核心提供资产的分布式网关

  • 域扩展,可以是智能合约,信任的应用等

  • 可信的外部资源,比如说比特币网络,银行的 API 等

4.1 内核的系统调用 (Kernel System Calls)

Minxin 内核提供系统调用和 Mixin 域进行信息交换,这也是 Mixin 内核和 Mixin 进行状态交换的唯一的方法。这些系统调用被定义成标准的 JSON-RPC 接口。

JSON-RPC 是一个无状态的轻量级远程方法调用协议。它可以在同一个进程里使用,用套接字也行,用 HTTP 也行,或者其它的消息传递环境。它使用 JSON (RFC 4627) 作为数据格式。

当前 Mixin 内核仅实现了基于标准的 HTTPS 的传输协议,下面列举可用的调用。

  • 内核_注册域

    具体内容太过细节,此处暂略,有兴趣的朋友可以查看英文原文

4.2 标准的域接口 (Standard Domain Interfaces)

  • 域_获得密钥生成方法

  • 域_关联公钥

  • 域_解锁资产

    具体内容太过细节,此处暂略,有兴趣的朋友可以查看英文原文

4.3 域扩展 (Domain Extensions)

有了 Mixin 内核管理交易,以及 Mixin 域管理资产和面向外部区块链及其它资源作为网关,Mixin 对于大多数数字资产来说已经是非常精密、并且高性能的分布式账本了。但是人们还是想要智能合约(以太坊以来流行起来的),那我们也允许给 Mixin 域添加扩展。扩展,类似智能合约,但有更好的强壮性、能力、以及性能。

域扩展是一些运行在由 Intel SGX 密封的虚拟机里的程序 —— Intel SGX 是流行且安全的 TEE。

由于可能在单台计算单元上运行“智能合约”,域扩展能达成很多如以太坊不太能达到的目标:

  1. 更高的性能和更低的延迟,而这些只受硬件的限制;
  2. 非确定性的交易,比如说可信的随机数;
  3. 可以直接跟外部可信资源进行交互。

除了这些可信的应用,还可能运行其它的流行分布式虚拟机,比如说以太坊 DApp 或者 EOS DApp。

5. 攻击抵御 (Attack Resistance)

由于 PoS 机制和 Mixin 核心节点、Mixin 域节点的天然分布式特性,再加上 Intel SGX 的保障,密钥的保护基本上是保证安全、不会泄露的。

由于密钥的高度分布式分片冗余以及分片秘密共享技术,加密了的私钥也是保证不会丢失的。

理想情况下,每种资产都应该有很多不同的分布式域,这些域由内核来控制、并且由 Intel SGX 来保证安全。

关联了的密钥,只能由生成它的域来使用,这进一步提升了保护。

内核会在不同的域之间持续平衡资产,更加防止本来就不太可能发生的密钥泄露而导致的资产丢失。

下面我们说明,对于不同的可能性攻击行为,Mixin 的数字资产都是安全的。

为了简化说明,下面将以比特币为例。

5.1 秘钥关联 (Key Association)

管理 Mixin 的比特币资产的第一步是做密钥关联。

每一个 Mixin 公钥 M_pub 都对应一个比特币公钥 B_pub —— 至于这个是何时发生的不关键,因为跟安全性无关 —— 跟密钥安全相关的是这个关联是怎么发生和怎么管理的。

比特币公钥 B_pub 对应私钥 B_priv,所以 B_priv 是怎么生成的就决定了 B_pub 是否正确。

B_priv 是完全由 Mixin 域自己生成的,而且会把它的片段传输到 Mixin 内核,满足 t-n-秘密共享。如果域本身是可信的,那么这个密钥关联即是绝对安全的。

译者七哥注:t-n-秘密共享,(t-n)-threshold secret sharing scheme,是把一个秘密分成多份给 n 个人,只有 ≥t 个人在一起才能还原出秘密,<t 个人时则不能。

Intel SGX 会保证域是可信的,而且即使当 Intel SGX 自己不安全时(这本身就不太可能发生),后文的章节也继续说明 Mixin 内的比特币资产是安全的。

5.2 存款攻击 (Deposit Attack)

存款是外部资产进入 Mixin 内核的那个动作,也是比如比特币资产进入 Mixin 流通的第一步。

因为密钥关联是安全的,然后所有的 Mixin 域又是由 Mixin 内核来管理的,那么如果 BTC 转入被提交到内核,那么就能保证被提交到正确的 M_pub。

所有的比特币存款都要求一个足够大的域等待阈值,比如对比特币来讲是 12 个确认;这就留给系统足够的时间来发现欺诈的域动作、并不损失比特币前提下对其作出处罚。Intel SXG 将更加改进这一点。

5.3 欺诈域、密钥泄露 (Fraud Domain or Key Leak)

Mixin 内核将根据所有域的行为以及它们的抵押多少持续地调整域之间的资产余额。如果一个域欺诈或者被黑掉了,那么泄露了私钥只会导致部分的比特币损失。

另外 Intel SGX 在大多数情况下会保证没有欺诈域、以及保护域不受黑客攻击。

更进一步,内核和域总是会把大多数比特币放到一个多重签名的地址 B_pub,(特别是在正确的、分布式实现了时),基本上不可能被黑掉。

5.4 坏掉的域、密钥丢失 (Damaged Domain or Key Loss)

与欺诈域的情形一样,坏掉的域、密钥丢失只会导致部分比特币资产损失。

Mixin 治理将保证域是正确地被分布式实现了的,所以基本上不可能全部的域都坏掉。

5.5 与交易所对比 (Compare to Exchange)

交易所或者其他类型的中心化管理比特币的方案,通常会把大多数比特币资产存到冷存储里。

冷存储实际上就从不暴露给互联网的私钥,它们只由同一公司的一些人管理。

从安全性角度来看,如果 Mixin 和交易所的方案在实现时没有 bug,那么 Mixin 的方案更加安全和可信。

因为 Mixin 的多签名地址 B_pub 会被多个不同的团体来管理,而交易所只是由他们自己人来管理,就算不考虑黑客,也有可能他们自己人来做出盗窃行为。

另外关键的是,大多数交易所不能正确地、无 bug 地实现他们的方案,从而很大可能给黑客留下了 bugs。

Mixin 的方案是透明的,而且代码开源给所有人来帮助验证 —— 这也是为什么 Linux 会比 Windows 让人感觉更安全。

没有系统是完美的,或多或少都有问题,就像比特币网络实际上是被中心化的矿池控制和可攻击的。但是通过以上的那些因素,我们有信心说 Mixin 非常安全,而且比任何现存技术更加便利。

6. 治理 (Governance)

我们已经尽力让 Mixin 网络不用任何治理就能够运行,但是还是会有一些情况是程序是不能解决的。

XIN 代币是是唯一能够参与 Mixin 相关问题治理的权益,包括持有者可以投票决定下列清单当中的事项,甚至包括这个清单本身也是可以投票决定的:

  1. 内核节点处罚,主要是针对双重支付、欺诈性资产
  2. 资产和域的注册,决定哪些资产可以被添加到 Mixin 内核中;这个将来可能会用编程的方式自动实现
  3. 决定外部资产,比如当域完成比特币资产确认后、却又发生了比特币的分叉,可以决定我们如何恢复
  4. 内核部署和升级,决定一些 Mixin 内核的细则和升级过程
  5. 社区发展,比如对关键社区的问题进行投票

7. XIN 代币 (XIN - The Token)

XIN 是 Mixin 里众多服务唯一使用的 token,包括节点抵押,DApp 创建和 API 调用等。

为了加入网络成为全节点,需要至少抵押 10,000 个 XIN 来建立初始的信任。

每个 DApp 的创建会一次性消耗一些代币,这些消耗主要是由 DApp 声称将占用的资源来决定的。另外 DApp 调用 API 也消耗 XIN 代币,具体是根据调用 API 的类型和次数。

所有 Mixin 网络收到的惩罚和服务费收入都将重新注回矿池。

我们一次性发行了 1,000,000 个永久性的 XIN 代币。其中 400,000 个 XIN 已经在 25/11/2017 - 25/12/2017 间以 20 EOS/XIN 的价格成功地分发给持有者们了。

50, 000 个 XIN 已经被发放给早期的 Mixin Messenger 用户。50,000 个 XIN 留给开发者团队自己。

剩下的 500, 000 个 XIN 会用做全节点和轻节点的激励。

8. 总结 (Conclusion)

我们提出了 Mixin 网络作为一个多层的分布式网络,由于异步的 BDF DAG 设计的简约性,核心层 Mixin 内核可能是最好的分布式交易网络。Mixin 域层在不引入对 Mixin 内核更多的性能损失前提下,对 Mixin 内核是非常好的扩展。

我们也完成了管理外部区块链资产的安全性证明,相对于其它现存的冷存储的方案,Mixin 在日常使用时非常安全。

最重要的是,Mixin 没有发明任何新的技术,本白皮书里描述的技术都是在其它的不同项目中应用的不同成熟技术。Mixin Messenger 应用已经证明了本白皮书中所述的内容在现实世界中也容易被落地实现,这就跟其它有一些漂亮新理论、却不能用于日常使用的很多项目产生了不同。

你可能感兴趣的:(Mixin 白皮书(最新中文版))