|
c: m$ o* i$ B- T0 J$ P: D
可能很多读者对区块链的理解还在于比特币区块链网络,环环嵌套的公共账本确实是令人影响深刻,但是如今的区块链网络早已有了不同的样态,通过不同的共识机制、网络结构来达成信任22年9月15日是令人激动的一天,在这一天以太的信标链(Beacon Chain)和原有主链合并,。
% I G; c- k! h 标志着以太坊的共识机制(PoW)彻底走向权益证明(PoS)。
% r8 t6 Z; ~8 a) l/ Q) z" z 一时隙(slot)和周期(epoch)信标链为以太坊的共识提供始终时钟心跳每个时隙为12秒,一个周期为32个时隙也就是6.4分钟每个时隙一个区块被添加到信标链,但是也存在不添加区块的时隙所有节点需要有同步的时钟心跳,信标链的创世块位于Slot0。 2 A2 [# `: u2 }% [" U3 y, o9 p; s
二验证者(Validators)和证明(Attestations)PoW机制“矿工”紧紧绑定在一起,而Ethereum的验证者是PoS机制下的“虚拟矿工”,验证者节点无需消耗算力和电力便能得到奖励之所以说验证者是“虚拟”的,是因为验证器由质押者激活。 ! `1 m" n( f+ z0 O4 e
在PoW中,用户购买硬件成为矿工在以太坊中,用户质押32ETH以激活和控制由信标链节点执行的验证者在每个周期,一个验证者被随机分配给一个槽一个证明好比验证者的投票,这个投票的权重由验证者节点的的余额决定。 3 R( G& N7 t: ]) w J; @1 \5 S
验证者将自己的证明在网络中广播,这些投票最终被记录信标链中(信标链的内容主要是验证器注册的地址、每个验证器的状态和证明)同时验证者之间相互监督,报告投票冲突的情况或者检举重复参与投票的作恶验证者区块提议者(proposer)是 , m# d9 K& ~! U% B% _1 L
从验证者随机挑选出来的,用于区块构建。 0 q* a1 M. L9 U) v) ^1 x/ X5 _
三委员会(Committees)委员会是一组验证者委员会的选取、提议者的设立、验证者的安排都是在称为RANDAO的伪随机过程中实现的每个时隙有一个提议者和至少128个验证者组成的委员会一个验证者每个周期只能在一个委员会中。
6 M" @7 r* E4 k0 @ 通常,网络中有超过8192个验证者,从而保证每个时隙有两组委员会 ; i. P* j: }' v2 ?( w6 P/ c
委员会中的验证者的主要职责是为他们认为的最新区块进行投票,被称为LMD GHOST投票在Slot1中,一个区块被提出,然后由两个验证者证明;委员会A中的一名验证者离线Slot1中的证明和区块传播网络并到达许多验证器。
' R/ l" Y3 v: h 在Slot2中,又一个区块,委员会B中的验证者没有看到它,因此它证明信标链头是Slot1中的区块注意这个验证者不同于来自Slot1的离线验证者在Slot3中,委员会C中的所有验证者都运行LMDGHOST投票,并独立地给出了结果一致的证明。
4 h% h. K3 `- o- h' d5 K5 O! A 四信标链检查点(Check  oint)检查点是周期第一个时隙中的区块。第一个时隙中若是没有区块,则检查点是前一个最近的区块。每个周期必定有一个检查点块,一个区块可以是被归属于多个周期的检查点。
2 ?8 u- W0 q) m$ Z0 ?) c 注意Slot65到Slot128没有区块Epoch2检查点应该是Slot128上的区块由于缺少区块,Epoch2检查点是仍然是Slot64上的区块Epoch 3的情况类似,Slot192是空的,因此前一个块Slot180是Epcoh3检查点。 8 ]5 r& i* L1 J$ V
当进行LMD GHOST投票时,验证者也会投票给当前周期中的检查点,称为target此投票称为Casper FFG投票,还包括一个先前的检查点,称为source在图中,Epoch1中的验证者投票给创世块的源检查点,以及区块的目标检查点Slot 64。
- P, E7 J! z( y 在Epoch2中,同一验证者投票给相同的检查点只有分配给某个时隙的验证者才会对该时隙进行LMD GHOST投票然而,所有验证者都为每个周期检查点投了FFG票
+ Y3 Z. ]. o+ o1 w 五最终证明(Finality)当一个周期结束时,如果它的检查点获得了2/3投票权重的支持,则该检查点被认为是合理(justified)状态如果检查点B被证明是合理的,并且紧接的下一个周期中的检查点被证明是justified的,那么B将被最终确定为Finality。
7 g. D1 ?0 U4 T, L8 m1 C 通常,一个检查点会在两个时期内完成,即12.8分钟 $ }! H+ r! i! e
在上图中,周期边缘区块(epoch boundary block,即上文提到的检查点)被区块提议者提出,该区块记录了Slot64在Epoch2中获得了所有验证者超过2/3的权重投票,且该区块被委员会通过,即达到了justified状态,因此导致了其前一个检查点,Epoch1的source检查点的状态转换,Slot32上的区块由justified转换到了finalized,因此在Slot32之前的所有区块也都被确认了,即彻底的完成了上链的操作。 6 _/ H7 R; j: H7 U, b& E
六区块链浏览器验证在信标链的区块链浏览器(https://beaconcha.in/)中,我们可以验证上述共识机制是否如上所述运行,并且进一步加深我们的理解。 , i- w; G$ h+ d% @% E$ y3 }0 M, `% k2 l
左侧为诞生出的Epoch,并且标明了是否达到Final状态,可以发现有两个Epoch中的区块尚未被最终证明同时右侧标明了最新提案的区块,可以发现出块的时间接近12s,和理论一致,每个区块都注明了所属的Epoch、Slot以及区块的提议者。
@# G' g/ A( }* h 进入到每个区块页面,可以看到证明的次数,投票的次数以及参与投票的验证者数量(显然在这个区块中存在着不符合规则的验证者,验证者可以检举这些验证者,从而获得奖励)写在最后飒姐团队认为,区块链的本质是信任的达成。 }# A% o8 |/ ?% ]3 E5 F0 A
随着技术的升级,达成信任的方式愈发多样,每个链都有自己独特的共识机制来防止节点的作恶,这可能才是区块链的生命力以及技术的魅力所在认可技术,拥抱技术!参考资料:[1] https://ethos.dev/beacon-chain#beacon-chain-validator-activation-and-lifecycle
+ q: l1 V8 l) V2 \! D7 @" H [2] https://github.com/ethereum/consensus-specs , f; ?7 X, \, R" C
- j J2 e9 _6 s! O) b$ g' w+ {
7 E7 \, y- t; A# g. P6 Q- S, B2 Z
1 R* y; _- ?3 D2 w$ D
|