首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

以太坊2.0,你真的知道什么是信标链吗?

可能很多读者对区块链的理解还在于比特币区块链网络,环环嵌套的公共账本确实是令人影响深刻,但是如今的区块链网络早已有了不同的样态,通过不同的共识机制、网络结构来达成信任。

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以及区块的提议者。

进入到每个区块页面,可以看到证明的次数,投票的次数以及参与投票的验证者数量(显然在这个区块中存在着不符合规则的验证者,验证者可以检举这些验证者,从而获得奖励)。

写在最后

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230320A03GIX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券