合并:从“工作量证明”到“权益证明”的合并
以太坊即将从工作量证明(PoW)过渡到权益证明(PoS)是多年研究和开发的结果。虽然PoS带来了许多潜在的优势,但它也意味着以太坊正在从中本聪最长的链协议中切换出来——当然这是最简单、最优雅的共识协议之一,并且已经过去中心化区块链的实战考验。
以太坊 PoS 共识协议的一个众所周知的脆弱组件已被证明是其“LMD GHOST”分叉选择规则,最近有多次攻击和补丁,但没有证明其安全性。
在题为“不再攻击 PoS 以太坊?”的新预印本中,我们提出了 Goldfish,它是 PoS 以太坊的 LMD GHOST 分叉选择规则的可证明安全的替代品。我们认为这只是朝着更严格的协议设计和分析迈出的第一步,目的是加强以太坊的安全性。
以太坊的权益证明协议
以太坊的权益证明(PoS)共识协议比好的PoW最长链要复杂得多。它实际上是两个不同的共识协议的组合:一个称为Casper FFG的“最终性小工具”,在6.4分钟长的纪元后最终确定区块,和一个“分叉选择规则”(称为“最新信息驱动的贪婪最重观察子树”,简称“LMD GHOST”),管理每个纪元内的链。如果你对“为什么?”感到好奇,可以看看上面的讲座。这两个组件以一种非微妙的方式相互作用,这里以框图的形式描述。
具体来说,LMD GHOST指导区块生产过程,并以12秒为一个时间段,以验证者的子抽样委员会进行操作。因此,它可以被认为是在PoS以太坊区块链的顶端附近负责较弱的“短期共识”。一旦在交易账本上达成短期共识,它就会被移交给Casper FFG进行额外的加固,其操作的时间尺度是由32个时段=6.4分钟组成的epochs,并涉及全部的验证者集合。因此,Casper FFG负责更强大的“长期共识”,提供最终结果和负责任的安全。
不幸的是,这种复杂性伴随着挑战。特别是,LMD GHOST组件,以及LMD GHOST和Casper FFG之间的互动,都有在攻击和补丁之间来回打转的历史。目前设定的合并协议既没有公开的攻击,也没有正式的安全分析/证明。
缺乏安全证明是值得关注的原因,但不是因为在一个简单的学术模型中的证明一定会完全表明现实世界的安全性。相反,我们不能确凿地解释为什么这个协议是所谓的安全,即使是在一个简单的玩具模型中,这表明我们实际上并不了解这些协议,或者它们的后果和相互作用的全部范围。
Goldfish
在最近题为“不再对 PoS 以太坊进行攻击?”的预印本中,我们提供了 PoS 以太坊的 LMD GHOST 分叉选择规则的替代品。该协议称为 Goldfish,类似于 LMD GHOST(因此不需要对当前客户端实现进行大规模检修),但带有安全证明。
为了更好地理解Goldfish,让我们首先放大LMD GHOST的大致运作方式:
假设在我们的玩具网络模型中,信息产生的延迟最多是一个已知值。在LMD GHOST中,时间以同步的时间段进行。对于每个时段,一个提议者和一个小型验证者委员会从全部验证者集合中随机选择。在每个时段的开始,该时段的提议者运行LMD GHOST的分叉选择规则(有两个修改,即“提议者提升”和“等价折扣”,这是为了应对先前的两次攻击),以确定一个典型的区块链提示并提出一个新区块。
在插槽进行到一半时,插槽的委员会成员还使用相同的分叉选择规则确定规范的区块链技巧,并投票支持该技巧。LMD GHOST 没有指定确认规则,而是让用户来决定区块树的哪些区块拥有“足够”的票数以确信他们不会离开规范链。
Goldfish严格遵循这个一般结构,但引入了一个额外的阶段,让验证者同步他们对投票数的看法,并确认区块:
在每个时段的开始,该时段的提议者根据上一个时段的票数,运行简单的GHOST分叉选择规则,以决定在哪里提出一个区块。在该时段的三分之一处,该时段的委员会成员根据前一个时段的票数和提案人转述的票数,使用同样的分叉规则,以决定在哪里投票。最后,在投票时段的三分之二处,所有验证人都要执行一个明确的深度确认规则。
Goldfish基于两个关键技术,即投票缓冲和投票过期,以仔细同步诚实的验证者的观点:
投票缓冲(也被称为视图合并)首次出现在Highway中。简而言之,缓冲从网络上收到的投票,并将这些投票小心翼翼地纳入每个验证者的本地视图中,保证在有诚实提议者的插槽中,所有诚实的验证者都投票支持提议者的提案。这推动了重组的弹性:诚实的提案人的提案被保证留在典型的链中。安全性(即输出分类帐的安全性和有效性)随之而来。
投票过期(也被称为短暂投票)意味着在每个时间段内,只有紧接着的前一个时间段的投票影响协议的行为。(Goldfish金鱼协议的名字来自于它的动物名字的健忘性)。票数过期使可能影响诚实验证人的短期未来行动的票数集合变得很小。因此,在任何时候,只有少数协议信息需要被缓冲,并在诚实验证人的观点中合并。因此,投票到期是投票缓冲的效率/可行性的先决条件。票数过期对于支持验证者参与的波动水平,以及支持在每个时段的较小的投票者子样本委员会中运行协议,而不是在整个验证者集合中运行协议也是至关重要的。
最后,Goldfish 的确认规则会确认区块是否在创建后的一段时间内仍在规范链上。分析表明,由此产生的确认逆转概率在出块和出块确认之间的延迟中呈指数衰减。
关于Goldfish及其安全分析的更多细节,请查看我们的预印本(https://arxiv.org/abs/2209.03255)。
对Goldfish的挑战:异步性
Goldfish很简单,可以接受严格的安全证明。这个分析马上就有了结果。请记住,我们一开始就假设我们的玩具模型中的网络延迟是由.NET的上限值决定的。在证明安全的过程中,我们被迫将这个假设和其他假设明确化。
如果违反了这个界限,即如果网络暂时异步,会发生什么?我们可以追踪我们的安全论证的步骤,看看在没有假设的情况下会出现什么问题。我们看到,如果实际网络延迟长于2△(即当前 PoS 以太坊中的 8 秒),那么 Goldfish 将不会及时收到 slot t-1 的决定性投票以在 slot t上构建它们。该协议可能会遭受重组。
这样的重组是不好的;但至少由于严格的安全论证,我们有更好的洞察力,了解我们系统的安全关键取决于什么条件,为什么,以及如何。我们可以做出更明智的决定来确保这些先决条件得到满足。例如,虽然在目前的点对点网络协议中,对手可能更容易诱发一些网络延迟,但最近人们对加固的点对点闲话协议重新产生了兴趣(也是由于网络相关的数据可用性采样的挑战),该协议重新使用共识层的权益分配来指导同伴的选择。这样的协议更加稳健,可以合理地缓解延迟问题。此外,最终性/责任性小工具(最终可能会通过“单插槽最终性”进一步加快)为任何重修提供了一个后盾。
尚待完成的工作
我们已经提出了Goldfish共识协议,旨在作为PoS以太坊信标链中LMD GHOST的替代品。在预印本中,我们对Goldfish本身以及与最终性/责任性小工具(基于另一个共识协议,如HotStuff)的结合给出了严格的安全分析。其他PoS以太坊共识的安全挑战仍然存在,例如,来自分叉选择和最终性小工具的相互作用。我们期待在未来看到PoS以太坊在这些方面有进一步的共识安全改进!