DAO:万字详解以太坊合并后可能面临的PoS攻击及防御措施

原文作者:jmcook.eth原文编译:隔夜的粥译者注:对于即将到来的以太坊合并,作者jmcook.eth根据大量研究文献总结出了相关的共识攻击方式,并提到了一些解决方案。总体而言,在转向PoS共识机制之后,攻击者控制的质押ETH比例越多,其攻击的成功机会就越大,而以太坊内置的「胡萝卜加大棒」激励层可以防止大多数的恶意行为,尤其是对于低质押的攻击者,然而对于34%、51%或66%攻击,可能需要社区协调才能够解决,因此防范质押权益集中化对以太坊网络的安全而言将是至关重要的。感谢TimBeiko和CasparSchwarz-Schilling对早期草稿的有益评论!以太坊是一个出了名的对抗性环境,它甚至被比作一个「黑暗森林」。这种声誉主要来自应用层或社交层的弱点,以及从交易存储池中提取价值的机器人的存在。然而,作为小偷或破坏者的老练黑客,也在不断寻找机会攻击以太坊的客户端软件。客户端软件可以将计算机变成以太坊节点,它是定义连接到其他节点、交换信息以及就以太坊区块链状态达成一致的所有规则的代码。而对协议层的攻击,就是对以太坊本身的攻击。很快,以太坊客户端就会进行一次重大升级,这会关闭保护以太坊的工作量证明算法,取而代之的是一种权益证明共识机制。造成这种情况的原因有很多,这在其他文章当中已经有详细解释。这将是一场哲学变革,同时也是一场技术变革。当然,更持久的消极惩罚要更加昂贵,事实上,惩罚的幅度会呈二次方的速度增加,直到信标链再次开始最终确定。攻击者进行最终性延迟攻击的确切成本,取决于他们的初始余额、他们保持离线的时间以及重新获得最终性所需的时间。然而,最重要的是,即使验证器没有被罚没,33%的验证器持续不活动也是极其昂贵的。假设以太坊网络是异步的,控制34%总质押权益的攻击者可能会引发双重确定性攻击。这是因为攻击者在被选为区块生产者时可以模棱两可,然后与其掌握的所有验证器进行双重投票。这创造了一种区块链分叉的情况,其中每个分叉都有34%质押的ETH投票支持。每个分叉只需要50%的剩余验证器投票支持两个分叉,从而得到绝对多数的支持,在这种情况下,两条链都可以最终确定。每个竞争区块都必须由大约50%的诚实验证器接收,因此只有当攻击者能够在一定程度上控制消息在网络上传播的时间时,这种攻击才可行,这样他们才能将一半诚实验证器推到每条链上。这也是为什么这种攻击需要网络异步的原因——如果所有节点都立即收到消息,它们将立即知道这两个区块,并通过拒绝较早接收的区块来处理模棱两可的问题。攻击者必须销毁其全部质押的权益以实现这种双重确定性攻击,因为他们34%的验证器将同时进行双重投票,而这是一种具有最大相关性惩罚的可罚没攻击。防御这种攻击的代价,只是销毁34%总质押ETH的巨大成本。而从这种攻击中恢复过来,需要以太坊社区进行带外协调并同意遵循其中一个分叉,而忽略另一个分叉。与这种社会支持相关的复杂性,我们将在后面讨论。攻击者控制的质押权益比例大约为50%

理论上,在一个恶意验证者控制的质押ETH比例达到50%的情况下,他可以将以太坊区块链分裂成两个大小相等的分叉。与前面描述的平衡攻击类似,攻击者可通过为同一个slot提出两个区块来仅使用他们的一个验证器。然后,攻击者不需要通过仔细传输消息来操纵一半的网络,而只需使用其全部50%的质押权益与诚实的验证器集进行相反的投票,从而维持两个分叉并防止最终确定性。在四个epoch时期之后,两个分叉上的消极惩罚机制将激活,因为每个分叉都会看到其一半的验证器无法证明。每个分叉都会泄露验证器集的另一半质押权益,最终导致两条链以代表2/3绝对多数的不同验证器完成。在这一点上,唯一的选择就是依靠社区恢复,稍后我们会提到。然而,考虑到诚实验证器数量、网络延迟等变化,一组敌对的验证者似乎不太可能始终精确地控制总质押权益的50%比例,但也许有一种方法,攻击者可以利用略高于50%的质押权益,动态调整其在每个slot中的投票比例,以保持两个分叉之间的完美平衡。虽然成功攻击的风险,无疑会随着攻击者掌握的质押ETH比例的大小增加而增加,但与50%的质押权益相关的攻击向量,似乎不太可能被成功利用,发动此类攻击的巨大成本以及较低的成功率,对理性的攻击者而言似乎是一个很强的抑制因素。而当攻击者控制的质押权益占到51%以上,则其可以控制分叉选择算法。在这种情况下,攻击者将能够以多数投票作证,让他们有足够的控制权来进行短期重组,而无需诚实的客户端。控制51%的质押权益不允许攻击者改变历史,但他们有能力通过将多数投票应用于对其有利的分叉,或将区块重组来影响未来。诚实的验证器会效仿,因为它们的分叉选择算法也会将攻击者喜欢的链视为最重链,因此该攻击链可以最终确定。这使攻击者能够审查某些交易,进行短程重组,并通过重新排序对其有利的区块来提取最大MEV。与工作量证明链一样,51%攻击也是非常有问题的。针对该问题的防御手段就是多数质押权益的巨大成本,攻击者会面临巨大的风险,因为社交层可能会介入,并采用诚实的少数派分叉,从而使攻击者的质押权益大幅贬值。攻击者控制的质押权益比例大于或等于66%

控制66%或更多比例质押ETH的攻击者可以确定其首选链,而无需强制任何诚实的验证器。攻击者可以简单地投票选择他们喜欢的分叉,然后最终确定它,仅仅是因为他们可以不诚实的绝对多数进行投票。作为绝对多数的质押者,攻击者将始终控制最终区块的内容,其拥有花费、回滚和再次花费的权力,他还能审查某些交易并随意重组区块链。通过购买额外的ETH以控制66%质押比例,而不是51%,攻击者实际上购买了事后重组和最终性反转的能力。当前控制66%ETH质押权益的成本约为250亿美元,这里唯一的防御措施是退回到社交层来协调采用替代分叉。在下一节中,我们会更详细地探讨这一点。第0层:最后一道防线

当区块链的编码防御被破坏,并且攻击者能够最终确定不诚实的区块链时会发生什么?这种情况可能会以多种方式出现,最明显的是,当攻击者控制多数质押权益,并且可以简单地通过他们自己的投票或51%以上诚实验证器的额外证明来完成。凭借控制34%质押比例的ETH,以及对网络上消息传递的一些控制权,攻击者可以最终确定两个分叉。在某些情况下,重组链可能由于消极惩罚机制而最终确定。如果攻击者成功将验证器集划分为两个分叉,则消极惩罚机制将在两个分叉上激活,那么问题就变成了,诚实或不诚实的验证者会首先重新获得最终确定性吗?如果诚实的验证者首先确定,那么诚实链就会变成规范链,网络上所有客户端的分叉选择算法都会接受该链最终确定的部分,然后以太坊又回到了诚实玩家的控制之下。但如果不诚实的验证者设法确定了区块链,那么以太坊社区将处于非常困难的境地。规范链在其历史中会包含不诚实的部分,而诚实的验证者最终会受到惩罚。第三种不太可能发生的情况是永久性的网络分裂,其中一个分叉上的验证器不知何故不知道对方分叉上的对应方。这会创建出两个独立确定的分叉链,每个分叉都会泄露另一组验证器的质押权益。然后这两条链永远不会重新组合在一起,因为它们将有不同的最终检查点。来自主导客户端的漏洞,也可能导致损坏但最终确定的链。在以太坊的执行层方面,go-ethereum(Geth)客户端占到了主导地位,超过85%的节点运行了该客户端。而在共识层方面,Prysm客户端目前占到了主导地位,在持续的社区活动之后,其占比才下降到50%左右。而主导执行客户端或共识客户端中的漏洞,可能会停止最终确定性或导致最终确定的数据不正确。在Kiln测试网上,Prysm中的一个漏洞影响了区块生产,这无关紧要,因为节点在四个不同的客户端中的份额大致相等,但如果是在主网,那么有超过66%的客户端会遇到相同的错误。因此,会有几条通往不诚实的最终确定链的路线,尽管它们的概率非常低。它们都需要在质押ETH上投入巨资,或者对验证器集进行非常复杂的操作,截至目前,只有在理想条件下才证明是可行的,并且这些攻击都通过软件更新得到了缓解。然而,我们不能排除万一的情况,那么,最终的解决方案就是依靠社交层。以太坊PoS共识机制的优势之一是,社区在面对攻击者时可以采用一系列防御策略。最小的响应可能是强制将攻击者的验证器从网络中退出,而不会受到任何额外的惩罚。而攻击者要重新进入网络,必须加入一个激活队列,以确保验证器集逐渐增长。例如,添加足够的验证器以使质押的ETH数量翻倍大约需要200天,在攻击者可尝试另一次51%攻击之前,有效地为诚实验证器带来了200天的应对时间。当然,社区也可以决定更严厉地惩罚攻击者,比如取消过去的奖励,或燃烧掉攻击者的部分质押资本。无论对攻击者施加何种惩罚,社区还必须共同决定不诚实的区块链是否实际上无效,并且社区应该建立在诚实的替代链上。诚实的验证器可以集体同意构建在社区认可的以太坊分叉之上,例如,在攻击开始之前可能已经分叉了规范链,或者强行移除了攻击者的验证器。诚实的验证器将被激励在该分叉链上构建,而建立在以太坊上的交易所和应用可能更喜欢在诚实链上,并会跟随诚实的验证器进入诚实的区块链。然而,这将是一个极其混乱的治理挑战。一些用户和验证者无疑会因为切换回诚实链而输掉资金,攻击后验证的区块交易可能会被回滚,从而扰乱应用层,这完全冲击了倾向于相信「代码就是法律」的用户。此外,一些用户,甚至可能是机构用户,他们会通过精明或机缘巧合的方式从不诚实的区块链中获益,并可能反对分叉以保护他们的收益。有人呼吁社区对超过51%的质押攻击进行应对演练,以便能够快速执行合理的协调缓解措施。Vitalik在ethresear.ch以及Twitter上都进行了一些有益的讨论。治理已经是一个复杂的话题,而对于以太坊社区来说,对不诚实的最终链进行第0层紧急响应无疑会是一个挑战,但在以太坊的历史上,这已经发生了两次。最终,即使我们拥有如此惊人的技术堆栈,如果最坏的情况发生,社区的参与者也必须协调出一条出路。

总结

本文探讨了以太坊合并到权益证明共识机制后,攻击者可能会采用的一些攻击信标链的方式。总体而言,攻击者控制的质押ETH比例越多,其攻击的成功机会就越大,因为他们的质押权益可以转化为投票权,以此用来影响未来区块的内容。而随着攻击者控制的质押ETH比例增大,其能够实现的破坏力就越大:33%:延迟最终性34%:导致双重最终性51%:审查,控制区块链的未来66%:审查,控制区块链的过去与未来还有一些更复杂的攻击方式,它们只需要控制少量的质押ETH,但这些攻击要求攻击者对消息时间的精细控制,以使诚实的验证器集对他们有利。总的来说,尽管存在这些潜在的攻击向量,但信标链的风险很低,甚至要低于工作量证明的等效链。这是因为攻击者为了用投票权压倒诚实的验证器,需要将质押ETH的巨大成本置于风险之中。内置的「胡萝卜加大棒」激励层可以防止大多数的恶意行为,尤其是对于低质押的攻击者。更微妙的弹跳攻击和平衡攻击也不太可能成功,因为真实的网络条件使得很难实现对特定验证器子集的消息传递进行精细控制,并且客户端团队已经用简单的补丁快速关闭了已知的弹跳攻击、平衡攻击以及雪崩攻击向量。而34%、51%或66%攻击可能需要社区协调才能解决。虽然这对社区来说可能是痛苦的,但社区在带外响应的能力对攻击者来说是一个强大的抑制因素。以太坊社交层是最终的后盾,一次技术上成功的攻击仍可能被同意采用诚实分叉的社区所扼杀。最终,攻击者和以太坊社区之间会有一场竞赛,如果进行得足够快,用于66%攻击花费的250亿美元可能会被一次成功的社交协调攻击所抹杀。对于攻击者来说,有利可图的可能性会很低,这足以起到有效的威慑作用。这就是为什么维持一个价值观一致的凝聚力社会层,对于加密投资而言是如此重要的原因。译者注:截至目前,以太坊全网质押的以太币数量大约为1400万ETH,而通过Lido质押的以太币数量已经达到了428万ETH,这大约占到了30.5%的ETH质押比例,而这对于以太坊网络而言无疑是最大的安全隐患,因此以太坊开发者们也建议质押者将ETH分散到不同的协议当中,而面对TornadoCash级别的审查,类似以太坊这样的PoS链可能都是相对脆弱的,正如vitalik所言,社交层将作为最后的恢复手段。原地址

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-6:373ms