Untitled

Syshems 北邮在读硕士

研究主题: 以太坊 Casper FFG 机制

内容提要: 1、委员会/出块人选举 2、检查点 checkpoint 3、验证和最终性

以太坊 Gasper 协议是 Casper the Friendly Finality Gadget (Casper-FFG) 和 LMD-GHOST 分叉选择算法的组合,他们共同构成了确保以太坊权益证明的共识机制。 Casper 是区块链“最终确定”的机制,以便网络中的新参与者可以确信他们同步的链是正确合法的;分叉选择算法使用「累积投票」来确保节点在区块链中出现分叉时能够轻松选择正确的分叉;本课题旨在探究 Casper FFG 投票共识过程,包括委员会选举、出块人选举、委员会投票、区块广播等部分,细致拆解 PoS 以太坊的出块流程。关于 LMD-GHOST 分叉选择算法将在下期展开。

一、最终性 FINALITY

最终性是 PoS 以太坊区块链的一个属性,Finalized 的区块中的信息可以认为是区块链确定的,新加入网络的节点可以确信该区块的信息,并可以选择从该区块开始进行同步,而不必要从创世区块开始。除非网络出现严重的共识失败,或攻击者掌握了至少 1/3 的质押以太币,否则一旦 Finalized 的区块是没有办法回滚的。

区块必须经过两个步骤才能最终确定:

  1. 质押以太币总数的三分之二必须投票赞成将该区块接入合法链,一旦满足那么该区块就被 "justified” 。Justified 的块在一般情况下不太可能被会滚,可以视为只是 “预确认” 。
  2. 当另一个 justified 的块接在一个已经 justified 的区块后时,前一个块就被 “最终确定” 了。Finalized 的区块可以视为最终确认了,除非攻击者销毁数百万以太币(数十亿美元),否则无法造成回滚。

上述投票确定最终性不会在每个 slot 中发生,而是指发生在检查点(checkpoints)处,这意味着只有 epoch 边界的区块才能被证明和最终确定。在以太坊中每个 slot 为12秒,一个 epoch 为 32 个 slots,一共是 6.4 分钟。

Untitled

二、检查点 checkpoint

检查点指的是每个 epoch 中的第一个 slot 中的区块,如果当前 slot 不存在区块,则检查点是前一个最近的块。 每个 epoch 必须有检查点区块,一个区块可以是多个 epoch 的检查点。如下图所示:

Untitled

三、委员会和断言

区块提议者(Proposer)是被伪随机选择来构建区块的验证器。大多数时候,验证器是对区块进行投票的断言者(Attesters)。 这些投票记录在信标链中,并确定信标链的头部。

Untitled

在每个 epoch 开始前,提议者和委员会都会伪随机选出并分配到一个 slot 。由提议者打包交易生成区块,先交由委员会进行投票,之后随区块广播到其他验证器。断言(Attestation)是验证器的投票,由验证器质押的以太坊加权。正确进行断言的验证器获得奖励,验证器之间互相监督,举报其他投票冲突或提出多个区块的验证者而获得奖励。离线的提议者会错过区块提议的机会,无法获得出块奖励。

3.1 断言