以太坊 PoS 合并后,重组攻击将更难执行,它必须解决极其困难的协调问题,即让大多数验证者同时下线。
原文标题:《详解以太坊合并后的重组攻击》(Ethereum Reorgs After The Merge) 撰文:Vitalik Buterin 与 Georgios Konstantopoulos,前者为以太坊联合创始人,后者为 Paradigm 研究合伙人
最近,人们讨论了矿工采用假定被修改的以太坊客户端的可能性,该客户端允许他们接受贿赂,并在选定的区块中对交易进行排列。(进行这种贿赂的主要用例是攻击 DeFi 协议)。
在这篇文章中,我们将解释为什么这种攻击模式在以太坊 2.0 合并后将更难执行。
分叉选择规则是一个由客户端评估的函数,它把已经看到的区块和其他消息的集合作为输入,并向客户端输出「典型链」是什么。分叉选择规则是必要的,因为可能有多个有效的链可以选择(例如,如果两个具有相同母本的竞争区块同时被发布)。
重组是一个特殊事件,在这个事件中,曾经是经典链的一部分的区块不再是经典链的一部分,因为一个竞争区块击败了它。最终性是指分叉选择规则对某一区块非常有利,以至于该区块在数学上不可能被重合(或至少在经济上不可行)的情况。
在一些分叉选择规则中(例如 Tendermint ),重组是不可能发生的;分叉选择规则只是通过添加任何已经通过 BFT (Byzantine Fault Tolerance :拜占庭容错) 共识并最终确定的区块来扩展现有的链。在其他分叉选择规则中,重组是非常频繁的。
Vitalik Buterin:AI可提升人类创造力:8月12日消息,以太坊联合创始人Vitalik Buterin最近在The Aarthi and Sriram Show播客节目中透露,尽管SBF此前在主流媒体上很有影响力,但加密领域内很多人一开始就对他持保留态度。Vitalik强调,加密社区中有很大一部分人认为SBF对加密货币技术的价值缺乏清晰的愿景。
此外,Vitalik评论了人工智能的进步,特别是像ChatGPT这样的系统。他对人工智能的潜力表示乐观,认为它可以提高人类的创造力,而不是仅仅取代人类的角色。Vitalik认为,在当前阶段,人工智能更多的是赋予个体权力,而不是取代他们。他设想未来,人工智能工具可以让个人创作者制作电影和其他艺术作品,而无需像传统好莱坞制作那样付出高昂的成本。[2023/8/13 16:22:52]
在以太坊这样的工作量证明 (PoW) 区块链中,我们通常会看到「最长链规则」(或者更准确地说,「最高总难度链规则」)。这意味着,当客户端发现 2 条区块链时,它会选择总难度最高的一条(即该链中所有区块的难度之和)。
举个例子,假设区块的难度可以是 100 或 110 ,想象一下下面的场景。
我们从难度为 100 的区块 1 开始进行同步。
区块 2a 和 3a 分别以 100 的难度到达,我们将它们插入我们的链中,形成一个总难度为 300 的分叉。
难度为 110 的区块 3b 到达,宣布 2a 为其父方,形成总难度为 310 的分叉。分叉选择规则将注意到「最重」的链现在是第二个分叉,并将切换到它。这是 1 个块的重组,因为只有块 3a 被改变了。请注意,这些区块并没有被完全丢弃,因为可能会有一个新的区块到达,导致分叉选择切换回第一个分叉上。
Vitalik Buterin:账户抽象可简化用户体验,同时增强以太坊的灵活性和适用性:7月18日消息,以太坊创始人Vitalik Buterin在以太坊巴黎EthCC会议上,详细阐述了账户抽象的历史及最新进展。Vitalik强调了账户抽象的重要性,这一特性可为智能合约账户和普通账户提供统一的交互界面,从而简化用户体验,同时增强以太坊的灵活性和适用性。[2023/7/18 11:02:52]
2b 和 3c 区块到达,每个区块的难度都是 110 ,创造了一个总难度为 320 的新分叉!这意味着分叉选择的难度是 320 。按照分叉选择规则现在将使用 2b 而不是 2a , 3c 而不是 3b ,这些都是上一个经典链中的区块。这是一个 2 个区块的重新组合。
你可以看到这将会发生什么。如果一个新的区块 4a 到达,宣布 3a 为其父链,分叉选择规则将切换回第一个分叉,以此类推。
由于延迟的原因,短暂的重组一直在发生。矿工 A 和矿工 B 可能同时找到一个有效的区块,但由于区块在 p2p 网络中的传播方式,网络的一部分区块会首先看到 A 的区块,另一部分会先看到 B 的区块。如果这两个区块的难度相同,就会出现平局,客户要么随机选择,要么选择较早看到的区块。通常情况下,当第三个矿工 C 在 A 的区块或 B 的区块上建造一个区块时,平局最终被打破,而另一个区块则被遗忘。偶尔,运气不好也会导致 2-5 个区块的重组。超过这个时间的重组几乎都是由于极端的网络故障,客户端错误,或恶意攻击造成的。
Vitalik Buterin 回应推特改名,“真实姓名”并不代表护照姓名:6月10日消息,以太坊创始人 Vitalik Buterin 发推解释推特名更改为“豚林 vitalik.eth”的原因。Vitalik 称,请不要使用“真实姓名”来指代护照姓名,你的政府无权定义你“真正”是谁。如果你在大多数日常互动中使用不同的名字,那就是你的真实姓名。[2022/6/11 4:17:39]
短暂的重组不是致命的,但它们仍然对网络产生以下这些严重后果。
节点成本:当重组发生时,由于必须切换到新的分叉,可能会回滚交易或修改区块链状态,因此会有一些存储问题。
用户体验下降:重新分叉的可能性意味着用户需要等待更长时间才能安全地将涉及他们的交易视为「确认」。这方面的一个重要子案例是交易所等企业在接受存款之前需要等待更长时间。
交易背景的不确定性:当用户发送交易时,他们对该交易将在什么背景下执行的确认性较低(例如,最近的 N 个区块会不会被恢复?值得注意的是,这增加了 DeFi 交易对意外失败,比预期差的交易结果或有害的 MEV 提取的可能性。
增加了 51 % 算力攻击的可能性:在一个最长链规则驱动的系统中,如果链上的矿工从 B1 到 B2 重新排序,那么 B1 的难度就不再有助于确保链的安全。攻击者不再需要击败所有诚实的矿工,他们仅仅需要击败没有被重组的那部分诚实矿工。如果频繁重组,这就使攻击者的工作大大简化。
在最坏的情况下,频繁的重组可以使区块链的结算保证完全失效,并阻止其继续进行。通常情况下,区块生产者的「激励兼容」策略应该是延长最长的链。但是,如果某个区块的后置状态有利可图(例如,有非常高的费用或 MEV ,只有通过在该区块之后直接建立一个区块才能提取),会发生什么?这个问题过去在没有区块奖励的比特币和自私采矿的背景下被探讨过,今天在以太坊生态系统中与 DeFi 相关的 MEV 背景下也被探讨过。
Vitalik Buterin澄清:我不是“反马斯克分子”:金色财经报道,以太坊联合创始人Vitalik Buterin今日在社交媒体上表示,马斯克接管Twitter的最大的可能不是他会做出任何具体的政策决定,而是让他的支持者胆大妄为。不过,该言论随后在社交媒体引发了大量争议,Vitalik Buterin目前已经做出澄清,他表示:“不知道为什么这么多人在这条推文中读到我反对马斯克的潜台词,我不是反马斯克分子(anti-Elon)。[2022/4/30 2:41:37]
在这些情况下,有很大的动机试图通过竞争而不是延长经典链的顶端来「偷取」费用或 MEV 。在下面的例子中,区块 1 的后置状态是有利可图的,区块 2a 已经被开采。然而,不是 1 个而是 3 个区块生产者选择在区块 1 而不是区块 2a 的基础上进行开采(以要求在区块 1 之后暴露的任何 MEV ),这可以扩展到任意数量的一方。
出于显而易见的理由,这样的模式为恶意的 51% 算力攻击打开了一扇大门。我们把从事这种重组开采战术的矿工称为「近视理性」,因为这样做的决定在短期内可能是理性的。然而,他们在以太坊上有明确的(造币商)或隐性的(矿工)多头头寸(因为费用和区块奖励是以以太坊计价的),这意味着任何这种减少用户对以太坊信任的攻击都是违背他们的终极利益的,因此从长远来看是不理性的。
在 Nakamoto PoW 中,区块在分叉选择中被「串行」固化。首先,一个区块被开采出来,这时,一个竞争区块有可能会重组它。如果该区块作为经典链的一部分存活下来,在(平均) 13 秒后,其他一些矿工在上面建立了第二个区块。在这一点上,需要一个由两个竞争区块组成的链来重新组织它。随着更多的区块被建在上面,重新 org 链的难度继续增加,但速度很慢。
动态 | 加密项目Vite与TROY达成战略合作关系:自定义区块链应用生态系统Vite今日宣布与加密经纪商Troy Trade(TROY)达成战略合作关系。通过此次合作,Vite成为TROY推出的“全球生态社区计划(Global Ecological Community Program)”的第十一位成员,而TROY也将加入Vite网络成为区块生产者。(Crypto Ninjas)[2020/1/2]
以太坊的信标链实现了一个名为 Gasper 的 PoS 协议,有一个名为 LMD-GHOST 的分叉选择规则。与 Nakamoto PoW 相反,在区块生产过程中,有 2 个角色。
提议者 : 一个验证者的任务是提出一个区块。
参与者 : 一组验证者投票决定他们认为哪个区块是经典链的头。鉴定人的投票被称为 「证明」,他们为区块赋予「权重」。控制鉴定人意味着控制分叉选择规则。
每 12 秒有一个「槽」,它代表了一个提出区块的机会。对于每个时段,一个洗牌算法伪随机地选择一个由所有验证者的 1/32 组成的委员会,其中每个委员会中的一个验证者是提议者,其余的是赞成者。审定者对他们认为是经典链的一部分的区块进行平行投票。由于委员会是伪随机抽样的,攻击者没有办法将他们的验证者集中到一个单一的位置。
今天,信标链有 19.6 万个验证器,这意味着每个槽都有一个大小为 6125 的委员会。因此,即使是单一区块的重构也是非常困难的,因为一个只控制了少数验证者的攻击者没有办法击败成千上万的诚实的大多数参与者。
为了获得一些关于为什么会这样的直觉,让我们看一个有 2 个插槽和 24 个验证者的例子,其中 9 个是恶意的。验证者被分成两个委员会,由于随机洗牌,对手不太可能控制他们被分配到的任何一个小组的 50 % 以上,并导致重组。
更正式地说,拥有 p % 股权的恶意行为者控制 N 个验证人规模的委员会中超过 50 % 的概率遵循二项分布(其中 k = N/2 )。
计算不同情况下的概率,我们得到以下表格:
我们现在明白,直接进行重组需要攻击者控制接近 50 % 的验证者。
如果攻击者拥有 25-49 % 的验证者,还有更微妙的攻击是可能的。然而,这些攻击有已知的修复方法,可以不引人注意地实施,增加安全性,接近无条件的 50 %。
最后,长时间的恢复是不可能的,因为所有深入到过去 2 个纪元的区块都被认为是「最终确定」的,也就是说,不可能恢复过去。如果攻击者导致两个冲突的区块被最终确定(例如通过控制 67 % 的股权),系统将需要回落到 social intervention 来恢复。
既然我们已经看到了重组策略在不同的分叉选择规则中是如何运作的,那么就值得通过一个简单的博弈论例子来了解矿工或验证者何时使用执行重组策略的软件来获利才是合理的。
我们可以用一个回报矩阵来通俗地描述每种情况,其中「缺陷」意味着「下载并使用执行反欺诈的软件」。报酬是「短视」的,没有考虑到长期后果。
在最长链 PoW 中,短距离重组可以用验证器集的哪怕一小部分进行概率性的重组。偶尔总会有一些区块具有有利可图的后置状态,以至于即使是 1-10 % 的成功率也值得尝试与该区块的现有子块竞争。
矿工可以是一个中等规模的矿池,依靠他们连续找到下一个 2-3 个区块的可能性,或者他们可以将他们收入的一部分送入一个任何人都可以索取的合同中,以贿赂其他运行相同软件的人在他们的链上建立并帮助它对抗现有的经典链。
因此,一些矿工可能会被诱惑去运行 reorg 客户端。
在 Gasper 中, 1-64 个槽位的重组是可能的,但需要攻击者控制整个验证器集的很大一部分(因为他们不能把注集中在某个特定的槽位上,所以他们需要有足够大的筹码在他们想攻击的槽位范围内随机选择)。除非有非常多的其他验证者也同时采用,否则采用重组挖矿软件是没有用的。
因此,如果 51 % 的验证者有哪怕是最轻微的利他主义,那么没有一个人运行重组软件是一个稳定的均衡状态。
在 Tendermint 中,情况甚至更干净:重组是不可能的,任何违反单槽最终性的行为都需要 1/3 以上的验证者被砍掉。与 Gasper 的情况类似,这也意味着没有人运行重组软件才是一个稳定的均衡。
从上面我们可以看出,虽然采用 「reorg geth」在所有情况下都是可能的,但基于平行证明概念的分叉选择规则有诚实的均衡状态,且它将比 Nakamoto 分叉选择中的均衡更稳定。
在以太坊的背景下,最有效的预防措施是进一步加快合并的工作,特别是迅速实现可信的能力,进行「紧急合并」,将链过渡到 PoS 。急于合并会有很高的风险,可能会破坏基础设施,但如果许多矿工开始重新攻击链,一个可信的承诺将对这种行为起到抵制作用。
接近合并的时期风险最大,因为矿工仍然是系统的负责人,但他们的时间跨度缩短了。然而,有两个因素缓解了这种风险。
以太坊矿工往往同时是(i)其他区块链的矿工,和 / 或(ii)以太坊社区其他身份的成员,所以他们仍然会有良好行为的动机。
随着合并的临近,进行紧急合并的难度、成本和风险也在降低。在合并的预定日期前几个月,紧急合并将是具有高度破坏性的。在合并预定日期的两周前,对客户来说,这将是一个参数设置,验证操作器已经完成了下载。
合并后,重组验证将成为一个更小的问题,因为单个验证者或一小群验证者不能独自重组。重组攻击想要成功必须解决极其困难的协调问题,即让大多数验证者同时下线。然而,一些小的风险仍然存在。如果希望进一步提高安全性,那么以太坊可以进一步调整分叉选择规则,将重组攻击的要求提高到 50 % 的理论最大值,或者找到一种方法,直接转向单槽 inality 的共识。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。