可能很多读者对区块链的理解还在于比特币区块链网络,环环嵌套的公共账本确实是令人影响深刻,但是如今的区块链网络早已有了不同的样态,通过不同的共识机制、网络结构来达成信任。
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以及区块的提议者。
进入到每个区块页面,可以看到证明的次数,投票的次数以及参与投票的验证者数量(显然在这个区块中存在着不符合规则的验证者,验证者可以检举这些验证者,从而获得奖励)。
写在最后
领取专属 10元无门槛券
私享最新 技术干货