以太坊 PoS 共识协议核心概念与 LMD GHOST 分叉选择规则详解

·

以太坊权益证明(PoS)共识协议是其网络运行的核心,它通过一系列精心设计的机制确保网络安全与活性。本文将深入解析以太坊 PoS 共识协议中的核心概念,并详细探讨 LMD GHOST 分叉选择规则的工作原理。

核心术语与重要概念

节点与验证者

以太坊网络的主要参与者是节点,它们负责验证共识并与其他节点形成通信骨干网。共识由验证者形成,但需要注意的是,“验证者”这一术语具有一定误导性——验证者本身并不直接验证交易或区块,验证工作实际上由节点完成。

每个验证者代表一笔初始的 32 ETH 的质押,拥有自己的私钥和对应的公钥作为身份标识。验证器附属于节点,单个节点可以托管零到数百甚至数千个验证者,这些验证者共享相同的全局视图。

权益证明与工作量证明的一个重要区别在于:在权益证明下,验证者集是已知的,系统拥有任意时刻期望处于活跃状态的公钥的完整列表,这使得系统能够确定何时获得了参与者的多数票并达成最终性。

时隙与时段

以太坊的权益证明共识中,时间被精确控制,这与工作量证明仅尝试在平均水平上保持出块间隔不同。

时隙(Slot,常译作“区块槽”)和时段(Epoch)是划分时间的两个主要概念:

无论网络状况如何,时隙和时段都会保持节奏持续向前推进。

区块与见证

每个时隙会选出一名验证者提议一个区块。区块包含对信标状态的更新,其中包括提议者知道的见证以及带有以太坊用户交易的执行负载。提议者通过 Gossip 协议与整个网络共享其区块。

时隙可以为空,这可能是因为区块提议者处于离线状态、提议了无效区块,或其区块随后被链重组剔除出链。

每个时段中,每个验证者都能以见证的形式分享一次自己的视图。见证包含用于 LMD GHOST 协议的链头投票以及用于 Casper FFG 协议的检查点投票。见证也会广播到整个网络,同样可能由于各种原因丢失。协议可以在一定程度上容忍这种情况,但随着见证者参与率的下降,共识的质量将会下降。

时段的功能是分散处理所有这些见证的负载。将见证负载分散到一个时段的 32 个时隙中可以保持较低的资源使用率。在每个时隙中,仅由 1/32 的验证者组成的委员会进行见证。

协议通过奖励和罚没系统激励验证者进行区块和见证的生产并确保其准确性。

安全性与活性

在讨论共识机制时,两个重要概念是安全性活性

安全性要求可以概括为“永不发生坏事”。在区块链语境下,“坏事”可能是币的双花,或冲突检查点的最终化等。分布式系统中安全性的一个重要方面是“一致性”,即每个节点对链的历史都具有完全相同的视图,并且该视图永远不会改变。

活性要求可以概括为“终会发生好事”。在区块链语境中,通常理解为链可以始终添加新块,永远不会陷入死锁状态。也可以从“可用性”角度理解:向诚实节点发送的有效交易最终一定会被包含在扩展链的区块中。

值得注意的是,CAP 定理证明了没有分布式系统可以同时满足一致性、可用性和分区容错性。现实中,基于不可靠互联网构建的区块链必须满足分区容错性,这意味着链的安全性和活性难以两全。以太坊共识协议在网络状况良好时能同时提供安全性和活性,但在运行不顺利的情况下优先考虑活性。

在网络分区的情况下,分区两侧的节点都将继续产生区块,但最终性(安全属性)不再有保障。最终,除非分区问题得到解决,否则消极惩罚机制会使双方都将重新获得最终性,但也可能导致共识的撕裂。

罚没机制

在工作量证明中,产生区块代价很高,这激励矿工按照协议目标正当行事。而在权益证明中,创建区块和见证的成本近乎为零,需要一种方法来防止攻击者利用这一点扰乱网络。这就是罚没的作用。

对区块或见证有分歧行为的验证者会受到罚没,即被驱逐出验证者集并被没收部分质押金。分歧行为指的是自相矛盾的行为,如为同一个时隙提议两个不同的区块,或做出两个相互冲突的见证等诚实验证者不会做出的行为。

LMD GHOST 分叉选择规则

了解术语和核心概念后,本节将概述以太坊的实际共识机制。以太坊的权益证明共识协议实际上是两个独立共识协议的组合:LMD GHOSTCasper FFG,二者组合的协议有时被称为“Gasper”。

Gasper 将两者结合,试图在活性和安全性方面获得两全其美的效果。LMD GHOST 提供了逐区块的活性(保持链的运行),而 Casper FFG 提供了安全性(保护链免于长回滚)。LMD GHOST 允许不断生成区块,但它存在分叉,因此在形式上并不安全。Casper FFG 修改了 LMD GHOST 的分叉选择规则,定期为链提供最终性。

命名由来

LMD GHOST 这个名称由两个缩写词组成:“Latest Message Driven”(最新消息驱动)和“Greedy Heaviest-Observed Sub-Tree”(贪婪最重观测子树)。

GHOST 协议来自 Sompolinsky 和 Zohar 2013 年的论文,讨论了如何在比特币上安全地提高交易吞吐量。用 GHOST 分叉选择规则替换比特币最长链规则被证明在存在延迟的条件下更加稳定,能使出块更加频繁。

LMD 代表“最新消息驱动”。在权益证明协议中,所有验证者都是投票者,每个验证者平均每 6.4 分钟通过发布见证来对其网络视图进行一次投票。分叉选择不是由提议者添加的区块驱动的,而是由所有验证者发布的消息(见证、投票)驱动的。“最新”意味着 LMD GHOST 只考虑来自每个验证者的最新消息,即从该验证者收到的最近的见证。

工作原理

LMD GHOST 首先是一个分叉选择规则。给定一个区块树和一系列投票,LMD GHOST 会告诉节点应该将哪个区块视为链头,节点可以从该块一直回溯到创世块,获得线性的历史视图。

最新消息处理

在此语境下,消息是指见证中的链头投票。每个诚实的验证者在每个时段恰好进行一次见证,其中包含对当时其视图中的最佳链头的投票。在每个时段内,验证者集会被分割,这样每个时隙只有 1/32 的验证者进行见证。

节点通过两种方式接收见证:直接通过证明 Gossip 协议接收,以及间接地从区块内接收。无论通过何种方式接收见证,节点都会调用分叉选择规则的处理程序,对见证执行基本有效性检查后,将其放入节点的存储中。

如果本地没有存储该验证者的链头投票,则存储该见证和验证者信息。如果本地已存有该验证者的链头投票,若该见证更新,则进行替换。节点的存储会建立起一个列表,其中包含所有接收过的每个验证者的最新投票。

确定链头过程

LMD GHOST 分叉选择规则即函数 GetHead(Store) → HeadBlock。GHOST 算法的目标是从给定的区块树中选择单个叶块(即没有子孙块的区块)作为链头区块。

算法首先计算树中每个分支的“权重”。投票的权重是进行投票的验证者的有效余额,通常为 32 ETH(最大有效余额),但也可能更少。

计算出每个分支或子树的权重后,算法开始递归进行。给定一个区块,选择从中派生的最重分支。然后用该分支的根块重复该过程。如果两个或更多分支权重相等,选择根块哈希值最高的分支。最终算法输出一个叶块。

从 GHOST 名称可见,该算法是贪婪的(立刻获取观测到的最重分支)且处理子树(分支的权重是子树中所有区块投票权重之和)。

👉 深入了解实时共识机制

激励机制设计

加密经济系统通过“惩恶扬善”保障自身安全,即奖励正当行为并惩罚不良行为。在对 LMD GHOST 的实现中,提议者和验证者都会因正确找到链头而以不同的方式获得奖励。

区块提议者隐式地获得激励:如果不在最佳链头区块上构建,其区块很可能不会被包含在最终的规范链中,成为孤块,从而无法获得区块奖励。

当验证者进行了准确的链头投票,并且其见证在下个时隙的区块中被包含时,将直接获得奖励。理论上,完美运行的验证者能通过准确的链头投票获得其总协议激励的大约 22%。

罚没机制应用

权益证明设计的一大突破是采用罚没机制解决“无利害关系”问题。

提议者罚没

当轮到某验证者在特定时隙中生成区块时,验证者应该运行分叉选择规则来决定基于哪个现有区块构建自己的区块。但与工作量证明不同,在权益证明下,验证者生成区块几乎没有成本。

解决方案是检测两个相互矛盾的区块并惩罚提议者。提议者分歧行为不是在协议内部检测到的,而是依赖于第三方用 ProposerSlashing 对象的形式构建证明。后续的区块提议者会将该证明包含在区块中,协议会罚没违规验证者的质押金并将其从活动验证者集中踢出。

见证者罚没

当轮到某验证者发布见证时,验证者应该运行其分叉选择规则并投票给其视图中正确的链头区块。措施与上述相同:检测并罚没相互矛盾的见证(同一个验证者在同一个时隙中针对不同链头做出的见证)。

常见问题

LMD GHOST 与最长链规则有何不同?

LMD GHOST 考虑整个子树的权重,而不仅仅是链长。这使得它在网络延迟较高时更加稳定,能够更好地利用所有验证者的投票信息,而不是仅仅依赖区块提议者的选择。

验证者如何确定投票给哪个链头?

验证者运行本地分叉选择规则,基于其存储中的最新消息和区块信息,计算各分支的权重,然后选择最重分支的叶块作为链头进行投票。

罚没机制如何防止恶意行为?

罚没机制通过经济惩罚阻止验证者进行矛盾行为。如果验证者在同一时隙提议多个区块或做出冲突见证,将被罚没部分质押金并移除出验证者集,这大大提高了作恶成本。

总结

本文详细介绍了以太坊 PoS 共识协议中的核心概念,包括节点与验证者、时隙与时段、区块与见证等基本要素,并深入解析了安全性与活性的平衡关系。重点探讨了 LMD GHOST 分叉选择规则的工作原理,包括其命名由来、消息处理机制、链头确定过程以及相关的激励与罚没机制设计。这些机制共同构成了以太坊权益证明共识的基础,确保了网络的安全稳定运行。