V神提议的99%容错共识:只需1%的诚实节点?

“如果你增加更多的假设,具体来说,这要求观察者也积极监察共识,而不只是在事后下载输出,那么,你可以将容错率一直提高到99%。”

在一篇由Emin Gun Sirer评论的高度技术性文章中,V神提出,这表明可以不要求50%以上的矿工或者权益质押者是诚实的,只需1%的人诚实即可。

因此,令人害怕的51%攻击在这种共识算法情况下,成为99%攻击,这也意味着攻击实际上变成不可能。

从高阶视角来看,它的运行方式,按照我们的理解,它是通过要求监听节点或独立观察者来运作。

你可能熟悉比特币中最先看到的规则。如果不熟悉,这是中本聪在2010年7月17日的解释,我们完整引用过来:

“我相信,对于一家支付处理公司来说,提供快速分发交易服务是可能的,并且能够在10秒甚至更短时间内完成足够充分的检查。”

网络节点只接收他们收到的第一个交易版本,以便合并到他们试图生成的区块中。当你广播一个交易,如果其他人同时广播一个双花交易,这是关于谁先广播到大多数节点的竞赛。如果一个人稍微先行开始,通过网络进行几何扩散它会更快,并率先抵达大多数节点。

一个粗略的示例:

这意味着,如果双花的交易必须等待即使只是一秒钟的时间,那么,它也有巨大的劣势。

支付处理商跟很多节点有连接。当它收到交易,它就会将其大力扩散,同时监控网络的双花交易。如果它在任何一个监听节点上收到一笔双花交易,它就会警示该交易是坏的。如果没有其中的监听者听到,双花交易不会走太远。

双花交易将不得不等待,直到监听阶段结束,但到那个时候,支付处理商的广播已经抵达大多数节点,或者它在广播方面遥遥领先,双花交易没有任何希望能够超越。

Buterin提出类似的东西,但是针对区块的。Buterin后来澄清说,正如他在原始提案中明确指出的一样,他没有发明99%容错共识算法,是Leslie Lamport发明的。Lamport是计算机科学家,曾因为其在分布式系统领域的贡献而获得图灵奖。

“我恰好写了一个解释器并将其改编为区块链语境”,Buterin说。在以太坊开发者Conrad Barski的高级别解释中,他指出:

“Vitalik建议,如果网络流量的独立观察者(也就是用户运行的区块链客户端,不是矿工/验证者)观察实时发生的事情,并注意信息何时出现,他们可以监测到矿工发起的51%攻击的“犯规行为”,这可以提供额外的安全保障,可以防止这种攻击。”

Buterin后来补充道:“另外一个用例是它可以用作检测51%审查攻击的工具,并协调使用少数软分叉来摆脱它们,而不需要靠太多人为驱动的社会协调工具,以在边缘情况下选择一个行为或其他。”

这听上去像欺诈证明,一些比特币核心开发者表示并不存在的这样的神秘生物。然而,中本聪的白皮书,提到这样的欺诈证明,以解释为什么不需要保留特定的数据,或为什么轻节点可以是非常安全的。

简单来说,顾名思义,欺诈证明是欺诈、欺骗或不当行为的证据,或未达成共识的证据。

如果你运行全节点,你在验证所有内容,因此节点会拒绝不当行为。但是,如果你不是验证所有内容,假说你使用的是智能手机,那么,在极少数情况下,你可能会接收到不正确的数据,而你无法知道它们是不正确的。

欺诈证明提供了这种方式,这里的建议是,如果我们理解非常好,似乎是因为独立观察者在监测,所以你可以知道数据是不正确的。

当然,所有这些都是由软件或代码本身完成的。如在代码中“知道”一些数据不正确,由此,它会自动拒绝它。Buterin说:

“如果5%的验证者是诚实的,那么,在512个随机选择的节点中没有一个是诚实的,这种概率大约只有万亿分之一。因此,只要网络延迟加上时钟偏差小于D/2,上述的算法就会有效,它能就某些单个最终值上正确地协调节点,即使在最终值上存在多个冲突(由于阀值相关算法的容错被破坏)也能正确解决。”

这里的重点当然是Casper,这个提议似乎是建议将其纳入PoS。如果它在这种背景下有效,那么,以太坊区块链可能会变得更加安全。

本文作者Trustnodes,由蓝狐笔记社群“LS”翻译。

附录:Vitalik《99%容错共识指南》

https://vitalik.ca/general/2018/08/07/99_fault_tolerant.html