Untitled

Syshems 北邮在读硕士

研究主题: LMD Ghost 机制

内容提要: 1、GHOST 和 LMD 2、工作原理 3、奖惩机制

以太坊 Gasper 协议是由 Casper FFG 和 GHOST 协议构成的。GHOST 是 Greedy Heaviest Observed Subtree(贪婪最重可观察子树)协议的缩写,Eth2 在其 PoS 机制中采用的 LMD GHOST 机制是 GHOST 的一个变体。本课题旨在探究 LMD GHOST 分叉选择机制,先从 GHOST 说起,逐步拆解 LMD Ghost 工作原理。

一、GHOST 和 LMD

LMD GHOST 是共识机制的本质,作为一个分叉选择规则,就像中本共识中的「最重链规则」一样,它有自己的一套属性和权衡。LMD GHOST 是 LMD (Latest Message Driven) 和 Ghost (Greedy Heaviest-Observed Sub-Tree) 的组合,我们先从 GHOST 开始说起。

1、GHOST

GHOST 协议出自 Sompolinsky 和 Zohar 在 2013 年发表的一篇关于如何安全地提高比特币交易吞吐量的论文。论文指出:增加块的大小或减少出块时间都会使链更容易在网络中分叉,因为网络具有不受控制的延迟;若通过上述方法提升链的吞吐量将造成链的分叉和重组,这不利于链上交易的安全;在允许延迟的情况下,如果用 GHOST 分叉选择取代比特币「最长链原则」,允许区块生产更频繁、更稳定。

简单来说,GHOST 的分叉选择不是遵循最重的链,而是遵循最重的子树。它认识到对区块的投票不仅仅只是针对该区块,而是隐含地对其每个祖先进行投票,因此整个子树都有关联的权重。

然而,尽管该论文证明 GHOST 协议有效,但比特币并没有采用,PoW 以太坊也没有采用 GHOST (尽管最初计划要使用),而是继续使用旧的工作量证明“叔块奖励”。

2、LMD

GHOST 协议被用在 PoS 以太坊的断言 (attestation) 部分,所有验证器都是投票人,每个验证器平均每 6.4 分钟 (1个epoch) 通过发布一个断言来为其对网络的看法投票一次。这就是 LMD 中 “message driven” 的意思,也就是分叉选择不是由提议者添加的区块驱动的(对比 PoW 出块人也是投票人),而是由所有验证者发布的消息 (断言 & 投票) 驱动的。

“L” 代表 “Latest”,只考虑来自每个验证器的最新消息,所有早期消息都将被丢弃不作为投票考虑。Vitalik 之前考虑过类似的方案,例如 IMD (Immediate, 无限期保留所有断言)、FMD (Fresh, 考虑当前 epoch 和往前一个 epoch)、RLMD (Recent Latest) 等。

二、LMD Ghost 工作原理

假设给定一棵区块树和一组投票,LMD GHOST 会告诉验证器哪个区块应该被认为是链头,验证器根据此规则进行投票。但这一依据并非是全局“上帝视角”,而仅仅是验证器自己的视角,它可能与其他节点的结论不同。但总的来说,诚实的验证者将在他们看到的最佳头部上构建他们的区块,反映到全局视角上看就是选出了区块链的链头。

1、接收&存储断言

1.1 head block votes

每个诚实的验证器在每个 epoch 都会进行一次断言,其中包含最佳链头的投票。节点可以通过 gossip 网络区块来直接/间接接收断言。

class AttestationData(Container):
    slot: Slot
    index: CommitteeIndex
    # LMD GHOST vote
    beacon_block_root: Root
    # FFG vote
    source: Checkpoint
    target: Checkpoint

1.2 Storing latest messages