来源 |notes.ethereum.org 作者 | Vitalik Buterin 译者注:Balance attack 指的是攻击者快速干扰有相近算力子组的沟通。在此期间,攻击者在一个子组发布交易(称为交易子组),在另一个子组挖区块 (称为区块子组),直到区块子组的树以高概率胜过交易子组的树。Balance attack 的新颖之处在于利用 GHOST 协议把兄弟块或叔块算入选择区块得分的特性。这个策略使得攻击者可以在与网络隔离的情况下挖一个分支,在将它的分支并入竞争区块链之前影响分支选择过程。 eth2 的分叉选择区别于 eth1 和“基于链 (chain-based)\" 的 PoS 算法 (例如像 Peercoin 和 NXT 这些旧算法,但也有像 Tezos、Ouroboros 等的较新的算法) 的一个关键是,在 eth2,有非常多影响区块”得分 (score)“的信息是并行到达的。 基于链的 PoS 算法: (像在 eth2 里) 每个 slot 上的委员会: 基于链的算法更容易证明其活性 (事实上,在某些情况里活性已经被证明了),因为通常一次有一个单个行动者,使得它们充当\"协作瓶颈(coordinating bottleneck)\",让每个人都对同一个分数达成共识。 下面是基于链的算法中活性的”稻草人证明概述“。 假设: 在每个 slot 里就有一个行动者 (即区块提议者) 可以参与。 诚实的区块提议者在 slot 的前半发布他们的区块 网络延迟的上限是半个 slot (因此是 δ<1/2,以 slot 为单位测量时间)。 被分配到在 slot N+1 行动的行动者仅会基于他们在 slot N 前收到的信息行动。 我们对节点收到在时间 t 发出的信息的时间建模为区间 (t,t+δ) 的“云”(到这里为止,这只是陈述了同步假设的标准学术表述)。因此,存在两种情况: 达成共识 没有达成共识 请注意,只有当在 slot N 的参与者不诚实时才会出现没有达成共识的情况。因此,如果被分配到某个 slot 的参与者是诚实的,那么要么 (i) 在该 slot 的末端每个参与者都对哪条是正确链达成共识,因为他们都是基于相同的信息计算分叉选择的,要么 (ii) 攻击者在之前那些他们没有参与的 slot 上“用掉了”一些储备的参与权。因此,只有当攻击者对每个诚实参与者有至少一个储备的参与权时,即如果攻击者被分到的 slot 多于诚实节点时 (也就是诚实大多数的假设被打破时),干扰才能继续。 现在看看”有很多并行证明“的情况。当有很多并行证明增加一个区块的得分时,是没有单一行动者创造瓶颈的。因此,攻击者可以操纵网络 (再加上有策略地对一些他们自己的验证者广播),以便在每个 epoch 末端构建就哪些信息算入分叉选择没有达成共识的状态,从而使多条链中的某条链胜出。 请看论文 Ebb-and-Flow Protocols: A Resolution of the Availability-Finality Dilemma (动态协议:可用性与最终确定性两难困境的解决方法),特别是第 4 和第 5 页,那里有对这种攻击的说明。请注意,这种攻击的确建基于一些在实践中非常难以实现的网络假设 (攻击者对个人质押者的网络延迟有非常精细的控制),但尽管如此,一个能抵抗这种攻击的协议还是比一个不能的协议好。 提议的解决方案 提议的解决方案是引入明确的”同步瓶颈“小工具到分叉选择上。特别是,我们可以增加以下规则: 1. 假设所有被分配到 slot N 的证明者的集体总权重为 W 2. slot N+1 里的参与者仅会认为在 slot N 末前到达 (从参与者的角度) 的证明是有效的。 3. 在 slot N+1 的提议者应该在 slot N+1 的开端就马上做提议。他们的提议其实是在选择一条特定的链。在 slot N+1 的证明者看来,如果他们在 slot 进行了 1/3 之前就看到提议到达了,他们会将该提案视为等同于权重为 W/4 的证明 (这个得分调整只对 slot N+1 有效,在 slot N+1 后这个得分调整会复原)。 4. 把同步假设降低到 δ<1/3 分析 (请注意:为了分析的简易,我们假设时钟是完全同步的,以及任何实际的时钟差异都是网络延迟的一部分。) 在 slot 的末端,所有验证者都已经收到一些证明集了。如果出现了攻击 (例如,有 k≥1 的恶意证明者在 slot N 做证明),验证者将很可能在每个区块的得分上有分歧。但是,他们分歧的范围将不会超过 k。假设 (在不丧失一般性的情况下) 有两个竞争区块,A 和 B,如果 score(A)?score(B)≥0,则 A \"胜出\",反之则 B 胜出。score(A)?score(B) 的分歧范围的上限是 2k (即每个验证者给出 score(A)?score(B) 值都将在[z,z+2k] 的范围内,z 是个固定值)。 设 Wp为提议者的权重 (即 Wp=上文论述的 W/4)。如果提议者是诚实的,他们肯定会遵循以下两种行为: 1. 如果他们看到 score(A)?score(B)≥0,他们将提议 A 区块,否则提议 B。 2. 他们将马上提议他们的区块,以保证所有的证明者都在期限前看到。 设 [z,z+2k] 为 score(A)?score(B) 分歧的区间。我们区分三种情况: z<?2k ?2k≤z<0 z≥0 在情况 (1),提议者将给 B 投票,这样证明者将看到在 [z?Wp,z+2k?Wp] 内调整过的得分;这里整个区间都是负数,因此对 B 有充分的共识。 在情况 (3),提议者将投票给 A,这样证明者将看到在 [z+Wp,z+2k+Wp] 内调整过的得分;这里整个区间都是正数;因此对 A 有充分的共识。 在情况 (2),很大程度由提议者决定。取决于提议者的意见落在区间的哪个位置,提议者不是选择 A 就是 B。因此,区间要么是 (i) [z?Wp,z+2k?Wp],要么是 (ii) [z+Wp,z+2k+Wp]。 如果是 Wp≥2k 的情况,请注意从情况 (2) 的定义 ?2k≤z<0 来看,当 (2.i) z<0 且 2k?Wp≤0,即 z+2k?Wp的上限是负数,也就是整个区间都是负的。当 (2.ii) z>?2k 且 Wp≥2k,即 z+Wp>0,即整个区间都是正的。因此,充分共识是在 A 还是 B 取决于提议者的选择。 现在,让我们回到 Wp= W/4 的论述中。为了避免提议者起同步瓶颈的作用,上述推理中 Wp≥2k 的前提必须被打破;因此,必须有超过 W/4 的证明者在每个 slot 投票。 如果在任何单个 slot 中提议者起到了同步瓶颈的作用,所有诚实的证明者都将往该方向投票,使 score(A)?score(B) 的值与 0 偏差增大。为了避免其中一方在这个点上胜出,攻击者必须在该 slot 展示足够多的投票以与所有的诚实验证者抗衡 (减去1/4 来抵消提议者在 slot 末端投票的效用);这需要远超过 W/4 的证明。 因此,要维持一段时间的失活需要至少在每个 slot 上有 W/4 的恶意验证者,或 ≥1/4 的验证者是不诚实的。 ▼ 相关文章推荐Eth2 Staking系列:共识机制篇 原文链接:https://notes.ethereum.org/6EAsltAXSIeMHeRztEGRdg ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ETH中文站。若需长期转载,请联系[email protected]进行授权。 —- 编译者/作者:ECN以太坊中文社区 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
减轻 LMD GHOST 的 balancing attack 风险的提案
2021-10-01 ECN以太坊中文社区 来源:区块链网络
LOADING...
相关阅读:
- NFT 新闻:TikTok 推出其首个 NFT 系列2021-10-01
- 未知作者以 144,000 美元的价格出售假 NFT 并消失2021-10-01
- Gamezone 的 $GZONE 的 100 倍投资回报率证实了区块链游戏的可行性2021-10-01
- NFT:关于汽车的最新消息,DC 漫画2021-10-01
- Holdex Finance 信守诺言:上市消息来了——一个接一个!2021-10-01