科普 | Eth2 信标链:你首先该知道的事(下)
信标链检查点
检查点就是位于一个时段的第一个时隙内产生的区块。如果某个时段的第一个时隙内没有产生区块,则将最近的一个符合要求的区块认定为检查点区块。每个时段都会有一个检查点区块;一个区块有可能同时是多个时段的检查点。
- 单时段包含 64 个时隙时的检查点示意图 -
注意,从时隙 65 到时隙 128 之间都是空块。时段 2 的检查点本来应该是时隙 128 处产生的区块,但因为该时隙被跳过了,所以时段 2 的检查点仍然是时隙 64 处产生的区块。时段 3 也类似,时隙 192 被跳过了,因此将时隙 180 处产生的区块认作时段 3 的检查点。
时段边界区块(epoch boundary block)是一些文献(比如 Gasper 论文,也是上面这张示意图的来源)中用到的一个术语,可以认为是检查点的同义词。
在发起一次 LMD GHOST 投票时,验证者也要为最近时段的检查点投票,投票者希望确立的新检查点叫做 “目标检查点”(target)。这种投票叫做 Casper FFG 投票,而且投票中也会包含投票者认定的上一个检查点,叫做 “来源检查点”(source)。在上图中,时段 1 中的一个验证者的投票将创世块作为来源检查点,然后推举时隙 64 处产生的区块为目标检查点。在时段 2,同一个验证者又为相同的检查点投票了。
只有被分配到某个时隙的验证者才需要为该时隙的区块投票,但是,所有验证者都要为每一个时段的检查点发起 FFG 投票。
大多数
由所有活跃验证者总余额的 2/3 所支持的投票内容就是多数票。
我们举简单一点的例子来说明一下,假设有 3 个活跃验证者,两个的余额是 8 ETH,另一个的验证者余额为 32 ETH。那么,只有包含了那个最大验证者的投票才可能是多数票;虽然另外两个验证者可能都投了另一个检查点,但是他们的余额总和只占 50%,形成不了多数。
确定性
一个时段结束的时候,如果其检查点得到了 2/3 的总余额支持(形成了多数票),那么该检查点就被合理化(justified)了。
如果一个检查点 B 已经得到合理化,其下一个时段的检查点也被合理化了,那么 B 就被敲定(finalized)了。一般来说,一个检查点会在两个时段内得到敲定,大概就是12.8 分钟。
从平均的角度来看,用户的交易总是打包在一个时段的中间部分(的区块中);那么距下一个检查点就还有半个时段的时间,因此,一笔交易经过 2.5 个时段(16 分钟)就可以得到确定性(finality)。理想化情况下,超过 2/3 的见证消息会在一个时段的前 22 个时隙内完成打包。因此,交易敲定的平均时长是 14 分钟(16 + 32 + 22 个时隙)。区块确认则从区块见证消息,一步步升级到合理化,再到确定性。用户自己可以觉得他们要不要等到交易确定,还是更低一点的安全性就足够了。
- 时隙 64 处的检查点被合理化,同时敲定时隙 32 处产生的上一个区块 -
为简化叙述难度,下文假设所有验证者的余额都相同。
信标链的顶端
(上图中)时隙 96 处产生了一个时段边界区块,而且包含了对时段 2 检查点的见证消息(投票)。见证消息的数量达到了 2/3 的多数要求。然后时段 2 的检查点就得到了合理化,同时,上一个合理化的检查点,也就是时段 1 的检查点,就被敲定了。时隙 32 处的区块得到确定性,会使得之前所有区块都得到确定性。在敲定检查点的时候,并没有对同时得到敲定的区块在数量上的限制。所以,虽然确定性仅在时段边界的时候产生,见证消息是逐个逐个区块累加的,下文的 “从创世块到区块链顶端的历程” 部分提供了另一种描述。
从时隙 1 到时隙 32 的信标链区块所包含的所有交联,也会使分片链产生确定性。换句话来说,当一个信标链区块得到确定性时,该块所包含的交联所对应的分片链区块也得到敲定。交联本身不足以使一个分片区块得到敲定,只是对分片链的分叉选择有所帮助。
从创世块到信标链顶端的历程
用同样的办法,可以观察到从创世块开始的一条故事线。所有的提议者,从时隙 1 到时隙 36,一一提议了一个区块,而且这些区块都显现在链上。对于时段 1的所有区块来说,其检查点(时隙 32 处的区块)累积获得了 55% 的验证者的见证。在验证者提议时隙 64 处的区块时,它也纳入了对时段 1 检查点的见证消息。现在,有 70% 的验证者都见证了时段 1 的检查点,因此时段 1 检查点得到了合理化。完成时段 2 时,时段 2 的检查点(时隙 64 处的区块)累积的见证消息还达不到 2/3 的多数要求。时隙 96 处的区块在提议时,也纳入了对区块 2 检查点的见证消息,所以,这时候,时段 2 的检查点也达到 2/3 的多数要求,被合理化了。合理化时段 2 的检查点同时也会敲定时段 1 的检查点及所有此前的区块。
有时,合理化一个区块会敲定两个甚至多个时段以前的区块。Gasper 论文讨论了这种情况,预计只有网络高延迟、网络隔离、遭遇强大攻击者的极端情况下,才会出现这种事。
确定性对于分片及以太坊区块的用户来说是重中之重,因为确定性使他们能够确定,交易已经永远写在链上,不可更改了。确定性也降低了跨分片通信的复杂性。没有确定性,分片内部和分片之间交易的回滚会具有破坏性,甚至让分片的好处荡然无存。
深入理解见证消息
一条见证消息里面包括了一个 LMD GHOST 投票和一个 FFG 投票。理想情况下,所有的验证者每个时段都会发出一条见证消息。一笔见证消息有 32 个时隙的机会被打包到链上。这就意味着,一个验证者可能在单个时段内有两笔见证消息被打包上链。见证消息打包上链的时间也决定了验证者可得的奖励幅度:在自己所在的时隙就打包上链可以得到最多的奖励;要是等到后续时隙才打包上链,验证者得到的奖励就会下降。为了给验证者足够的时间来准备见证消息,他们会在一个时段以前就预先知道自己所在的委员会。区块提议者则仅在时段开始之时分配一次。此外,隐蔽领袖选举研究还致力于减轻对区块提议者的攻击和贿赂。
委员会机制使得汇总所有的见证人签名、变成单个聚合签名在技术上的优化成为可能。如果同一委员会中的所有验证者都作了同样的 LMD GHOST 和 FFG 投票,则他们的签名可以聚合起来(成为单个签名)。
信标链验证者奖惩措施
为避免过度深入,我们仅讨论验证者激励相关的 6 种措施:
见证人奖励 见证人惩罚 对质押者来说典型的贬值风险 罚没(slashing)及举报人奖励 区块提议者奖励 怠惰惩罚(inactivity penalty)
罚没条件
如果该验证者在时段 6 的投票以时隙 64 的区块为来源检查点,以时隙 96 的区块为目标检查点,那么该票就被 TA 自己在时段 5 的投票给包围(环绕)起来了。 如果该验证者在时段 6 的投票以时隙 0 的区块为来源检查点,以时隙 160 的区块为目标检查点,则该投票把 TA 自己在时段 5 的投票给包围起来了。
信标链验证者激活及生命周期
总结
一个时段中的所有验证者,通过集体决策尝试敲定某个检查点;方法是 FFG 投票; 各时隙中的所有验证者,通过集体决策尝试选出信标链的顶端区块:方法是 LMD GHOST 投票; 一个委员会中的所有验证者,通过集体投票尝试将某个分片交联到信标链上。
(完)
(文内有许多超链接,可点击左下 ”阅读原文“ 从 EthFans 网站上获取)
原文链接:
https://ethos.dev/beacon-chain/
作者: ethos.dev
你可能还喜欢: