撰文:肖飒法律团队
可能很多读者对区块链的理解还在于比特币区块链网络,环环嵌套的公共账本确实是令人影响深刻,但是如今的区块链网络早已有了不同的样态,通过不同的共识机制、网络结构来达成信任。
22 年 9 月 15 日是令人激动的一天,在这一天以太的信标链(Beacon Chain)和原有主链合并,标志着以太坊的共识机制(PoW)彻底走向权益证明 (PoS)。
一 时隙(slot)和周期(epoch)
信标链为以太坊的共识提供始终时钟心跳。每个时隙为 12 秒,一个周期为 32 个时隙也就是 6.4 分钟。每个时隙一个区块被添加到信标链,但是也存在不添加区块的时隙。所有节点需要有同步的时钟心跳,信标链的创世块位于 Slot0。
二 验证者(Validators)和证明(Attestations)
PoW 机制「矿工」紧紧绑定在一起,而 Ethereum 的验证者是 PoS 机制下的「虚拟矿工」,验证者节点无需消耗算力和电力便能得到奖励。之所以说验证者是「虚拟」的,是因为验证器由质押者激活。在 PoW 中,用户购买硬件成为矿工。在以太坊中,用户质押 32ETH 以激活和控制由信标链节点执行的验证者。
在每个周期,一个验证者被随机分配给一个槽。一个证明好比验证者的投票,这个投票的权重由验证者节点的的余额决定。验证者将自己的证明在网络中广播,这些投票最终被记录信标链中(信标链的内容主要是验证器注册的地址、每个验证器的状态和证明)。同时验证者之间相互监督,报告投票冲突的情况或者检举重复参与投票的作恶验证者。 区块提议者(proposer)是 从验证者随机挑选出来的,用于区块构建。
三 委员会(Committees)
委员会是一组验证者。委员会的选取、提议者的设立、验证者的安排都是在称为 RANDAO 的伪随机过程中实现的。每个时隙有一个提议者和至少 128 个验证者组成的委员会。一个验证者每个周期只能在一个委员会中。通常,网络中有超过 8192 个验证者,从而保证每个时隙有两组委员会。
委员会中的验证者的主要职责是为他们认为的**区块进行投票,被称为 LMD GHOST 投票。在 Slot1 中,一个区块被提出,然后由两个验证者证明;委员会 A 中的一名验证者离线。Slot1 中的证明和区块传播网络并到达许多验证器。在 Slot 2 中,又一个区块,委员会 B 中的验证者没有看到它,因此它证明信标链头是 Slot1 中的区块。注意这个验证者不同于来自 Slot 1 的离线验证者。在 Slot3 中,委员会 C 中的所有验证者都运行 LMD GHOST 投票,并独立地给出了结果一致的证明。
四 信标链检查点(Check Point)
检查点是周期第一个时隙中的区块。第一个时隙中若是没有区块,则检查点是前一个最近的区块。每个周期必定有一个检查点块,一个区块可以是被归属于多个周期的检查点。
注意 Slot65 到 Slot128 没有区块。Epoch2 检查点应该是 Slot128 上的区块。由于缺少区块,Epoch2 检查点是仍然是 Slot64 上的区块。Epoch 3 的情况类似,Slot192 是空的,因此前一个块 Slot180 是 Epcoh3 检查点。
当进行 LMD GHOST 投票时,验证者也会投票给当前周期中的检查点,称为 target。此投票称为 Casper FFG 投票,还包括一个先前的检查点,称为 source。在图中,Epoch1 中的验证者投票给创世块的源检查点,以及区块的目标检查点 Slot 64。在 Epoch2 中,同一验证者投票给相同的检查点。只有分配给某个时隙的验证者才会对该时隙进行 LMD GHOST 投票。然而,所有验证者都为每个周期检查点投了 FFG 票。
五 最终证明(Finality)
当一个周期结束时,如果它的检查点获得了 2/3 投票权重的支持,则该检查点被认为是合理(justified)状态。
如果检查点 B 被证明是合理的,并且紧接的下一个周期中的检查点被证明是 justified 的,那么 B 将被最终确定为 Finality。通常,一个检查点会在两个时期内完成,即 12.8 分钟。
在上图中,周期边缘区块(epoch boundary block,即上文提到的检查点)被区块提议者提出,该区块记录了 Slot64 在 Epoch2 中获得了所有验证者超过 2/3 的权重投票,且该区块被委员会通过,即达到了 justified 状态,因此导致了其前一个检查点,Epoch1 的 source 检查点的状态转换,Slot32 上的区块由 justified 转换到了 finalized,因此在 Slot32 之前的所有区块也都被确认了,即彻底的完成了上链的操作。
六 区块链浏览器验证
在信标链的区块链浏览器(https://beaconcha.in/)中,我们可以验证上述共识机制是否如上所述运行,并且进一步加深我们的理解。
左侧为诞生出的 Epoch,并且标明了是否达到 Final 状态,可以发现有两个 Epoch 中的区块尚未被最终证明。同时右侧标明了**提案的区块,可以发现出块的时间接近 12s,和理论一致,每个区块都注明了所属的 Epoch、Slot 以及区块的提议者。
进入到每个区块页面,可以看到证明的次数,投票的次数以及参与投票的验证者数量(显然在这个区块中存在着不符合规则的验证者,验证者可以检举这些验证者,从而获得奖励)。
写在**
飒姐团队认为,区块链的本质是信任的达成。随着技术的升级,达成信任的方式愈发多样,每个链都有自己独特的共识机制来防止节点的作恶,这可能才是区块链的生命力以及技术的魅力所在。
认可技术,拥抱技术!
参考资料:
[1] https://ethos.dev/beacon-chain#beacon-chain-validator-activation-and-lifecycle
[2] https://github.com/ethereum/consensus-specs
文章链接:https://www.btchangqing.cn/494633.html
更新时间:2023年03月20日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。