优惠论坛

标题: 以太坊PoS攻击与防御 [打印本页]

作者: 金色财经小编    时间: 2022-9-3 04:17

原文标题:《以太坊 PoS 攻击与防御》

原文作者:jmcook.eth

译者注:对于即将到来的以太坊合并,作者 jmcook.eth 根据大量研究文献总结出了相关的共识攻击方式,并提到了一些解决方案。总体而言,在转向 PoS 共识机制之后,攻击者控制的质押 ETH 比例越多,其攻击的成功机会就越大,而以太坊内置的「胡萝卜加大棒」激励层可以防止大多数的恶意行为,尤其是对于低质押的攻击者,然而对于 34%、51% 或 66% 攻击,可能需要社区协调才能够解决,因此防范质押权益集中化对以太坊网络的安全而言将是至关重要的。

感谢 Tim Beiko 和 Caspar Schwarz-Schilling 对早期草稿的有益评论!

以太坊是一个出了名的对抗性环境,它甚至被比作一个「黑暗森林」(三体中可怕的博弈论概念)。这种声誉主要来自应用层(不安全的智能合约)或社交层(用户被操纵放弃私钥或无意中签署交易)的弱点,以及从交易存储池中提取价值(MEV)的机器人的存在。然而,作为小偷或破坏者的老练黑客,也在不断寻找机会攻击以太坊的客户端软件。客户端软件可以将计算机变成以太坊节点,它是定义连接到其他节点、交换信息以及就以太坊区块链状态达成一致的所有规则的代码。而对协议层的攻击,就是对以太坊本身的攻击。很快,以太坊客户端就会进行一次重大升级 (称为「合并」),这会关闭保护以太坊的工作量证明(PoW)算法,取而代之的是一种权益证明(PoS)共识机制。造成这种情况的原因有很多,这在其他文章当中已经有详细解释。这将是一场哲学变革,同时也是一场技术变革。合并到权益证明 (PoS) 共识机制带来了可持续性以及可扩展性方面的好处,但另一方面,客户端软件的复杂性将会增加,协议的潜在攻击面也会增加。目前,保护 PoW 以太坊区块链只需要运行单个软件,而在「合并」之后,需要运行的软件增加到了 3 个(执行客户端、共识客户端以及验证器)。本文概述了以太坊共识层上已知的攻击向量,并概述了一些防御这些攻击的方法。读者可能需要掌握一些信标链的基础知识才能从本文中获得最大价值。此外,对信标链的激励层和分叉选择算法 LMD-GHOST 有一个基本的了解,也会对你有所帮助。这些都是很大的话题。但我在下面的序言中包含了一些非常易懂的入门知识。

序言

1) 激励层

信标链是一个权益证明(PoS)区块链,它使用以太坊的原生加密货币 ETH 进行保护,希望参与验证区块以及识别区块链头部(head)的节点运营商将 ETH 存入以太坊的智能合约中。然后,他们获得 ETH 的报酬以运行验证器软件,检查通过对等网络接收到的新区块的有效性,并应用分叉选择算法来识别区块链头部。节点运营商现在是「验证者」,而验证者有两个主要角色:1)检查新区块并「证明」它们是否有效,2)从总验证器池中随机选择时提出新区块。如果验证者在被询问时未能完成这两项任务中的任何一项,他们就会错过 ETH 支付。还有一些非常难以意外执行,并且表示有恶意意图的操作,例如在同一个 slot 提出多个区块,或在同一个 slot 证明多个区块,这些是「可罚没」的行为,可导致验证器在从网络中移除之前燃烧一定数量的 ETH(最多为 0.5 ETH),这需要 36 天。被罚没的验证器的 ETH 在退出期内会缓慢流失,但在第 18 天,当有更多的验证器同时被罚没时,它们会受到更大的「相关性惩罚」。因此,信标链的激励结构是奖励诚实行为者,并惩罚不良行为者。

2) 分叉选择

分叉选择算法由每个验证器运行,其作用是识别区块链的头部。在完全诚实的验证器及零网络延迟的理想条件下,分叉选择算法实际上是不必要的,因为此时区块链的顶端只有一个区块。然而,在现实当中,一些客户端会比其他客户端更晚接收区块,从而创建了区块链头部的多个版本,并且可能存在一定比例的行为不端的验证器,这些验证器可能在同一个 slot 提议或投票多个区块。这意味着必须要有某种算法来从多个选项中挑选出真正的区块链头部。稍微提一下,信标链也会以固定的间隔使区块链固定不变,这被称为「最终性」(finality)。该过程通过将每个 epoch 中的第一个 slot 视为「检查点」来工作。如果一个检查点从持有存款合约中至少 2/3 总质押 ETH 的验证器那里收集证明(投票),那么它被称为「justified」的。一旦该检查点在其之上有另一个检查点,它就成为「最终」检查点。然后,分叉选择算法只考虑区块链中不合理部分的区块。证明并最终确定区块链的算法称为「Casper FFG」,而分叉选择算法本身被称为 LMD-GHOST(代表「最新消息驱动的最贪婪、最重的观测子树」),这是一种用行话表达的方式,即正确的区块链是累积了最多证明(GHOST)的区块链,并且如果从同一验证器接收到多条消息,则只有最后一条消息才算(LMD)。每个验证器使用此规则评估每个区块,并将最重的区块添加到其规范链中。每个 epoch 时期,验证器需要签署一份证明,该证明包含两条关键信息:「LMD 投票」和「FFG 投票」。LMD 投票是验证器认为区块链头部的区块的根,FFG 投票包含目标检查点和源检查点的区块哈希以及 epoch,其中源检查点是链已经知道的最近正当检查点,而目标检查点是下一个要证明的检查点。因此,信标链的共识算法是 LMD-GHOST 和 Casper FFG 的组合,有时我们也将其称为 Gasper。简单了解了这个背景知识后,我们可以继续研究这个系统可能受到的一些攻击方式。

第 0 层攻击

首先,没有积极参与以太坊(通过运行客户端软件)的个人,可选择针对社交层(第 0 层)来攻击以太坊网络。尽管这些攻击从未真正直接影响任何以太坊软件的执行,但它们会给以太坊带来风险。第 0 层是构建以太坊的基础,因此它代表了一个潜在的攻击面,其后果会波及堆栈的其余部分。以下是我想到的一些例子:




欢迎光临 优惠论坛 (http://tcelue.co/) Powered by Discuz! X3.1