AND:详解以太坊POS工作原理:Epoch、Slot与信标区块

使用权益证明的以太坊的独特性在于参与者数量的最大化设计。它允许成百上千和成千上万的验证者活跃地参与决策过程。在笔者撰文时已经有大约50万的验证者实体在活跃地参与这个过程。

事实上,在约384秒内,所有活跃中的验证者将有机会投下一票或提议一个区块。在约384秒内至少有50万条信息广播,而且所有信息必须在严格的时间范围内传递。据我所知,没有其他共识协议被设计来处理如此活跃和庞大的共识参与者集。

至于通信模型方面,共识协议是为以下三种情况之一设计的:

同步通信一个普遍同意和已知的信息传递超时时间。

异步通信信息传递所需时间没有上限,但它最终会被发送。

部分同步通信在大多数情况下,都有一个已知的超时时间,但零星的事件可能会破坏信息传递,时间长短不一。

大多数现代共识协议都是为部分同步通信而设计的,因为它假设大部分时间条件良好,但由于事件可能会在短时间内中断通信,所以存在不可预测的时期。另一方面,值得注意的是,权益证明的以太坊是为同步通信设计的。

题外话--CasperFFG是为部分同步通信而设计的,但LMD-GHOST的严格计时条件迫使整个系统必须同步。我们将在今后的文章中解释什么是Casper和LMD-GHOST。

它假定在绝大多数的验证者中几乎没有中断,而且所有的信息必须在固定的最后期限前被记录在信标区块链上,这些信息才能被计入/使用。如果出现中断,导致信息延迟传递,那么发送者将根据其延迟程度而招致惩罚。在最坏的情况下,如果错过了最后期限,那么消息将被忽略,信息发送者将受到不活跃的最大惩罚。惩罚政策将在未来的文章中介绍。

为了更好地理解同步通信模型,我们涵盖了Epochs&Slots的主题。它定义了验证者被允许参与的时间,以及围绕消息传递的严格时间窗口。如果违反了时间窗口,不管是什么原因,那么就不能保证其他验证者会就迟到的消息到达时采取行动。最后,我们将介绍验证者如何被分配到一个时间槽,以及消息如何被记录在信标区块链中。

第111次以太坊核心开发者共识会议:计划在未来几周将EIP-7044等提案合并到Deneb规范中:6月19日消息,Galaxy研究副总裁Christine Kim发文总结第111次以太坊核心开发者共识会议,共识层团队讨论了Deneb升级的最终范围,验证者证明与聚合期限的潜在变化,以及将最大有效验证人余额从32枚ETH增加到2048枚ETH的建议。首先,开发者讨论了在Deneb中包含哪些以CL为中心的EIP,Teku开发者Mikhail Kalinin围绕EIP-6988进行更新,该提案提出了一个代码更改,以防止强行从网络中弹出的slashed验证器被协议选为区块提议者。开发者还讨论了EIP-7044、EIP-7045与EIP-4788三个提案。其中,EIP-7044提出一个代码更改以改善质押者体验,确保签名的验证器退出永久有效。EIP-7045提出代码更改以加强网络的安全性,扩大证明槽的包含范围。EIP-4788提出一个代码更改,以改善质押者体验,它将公开信标链区块的根,其中包含EVM内部链状态信息,供DApp开发者的信任最小化访问。以太坊基金会研究员AlexStokes表示,计划在未来几周内将上述三个EIP合并到Deneb规范中,并鼓励CL客户端团队尽快对其进行审查。

同时,CL客户端团队已同意在下一个EIP-4844测试网Devnet6上测试增加的blob数量,并在两周内就此事做出最终决定。与围绕最大blob计数的讨论相关,Nimbus开发者arnetheduck提出了在上海升级后主网上增加区块重组的问题。arnetheduck提议考虑更改4秒的最后期限,以聚合验证者证明并通过网络发送它们,并决定进一步予以调查。以太坊基金会研究员MichaelNeuder提出取消32枚ETH质押上限,以帮助减少活跃验证者集的增长。开发者讨论了这一变化的潜在缺陷,以及将该提案与智能合约启动的部分和全部提款直接从EL中启动的可能性。开发者同意继续讨论在ETH Magicians和Discord上异步更改以太坊验证器有效余额的实施细节。此外,以太坊核心开发者就Holesky测试网启动进行了第一次协调电话会议,Holesky预计将在年底前取代现有的Goerli测试网。[2023/6/19 21:46:42]

如果你想深入了解各种通信设置,那么我建议阅读这篇文章。这里也有关于ETH?2是部分同步通信还是同步通信的精彩讨论。

Ark Invest首席未来学家:加密资产可能会出现上涨趋势:1月24日消息,Ark Invest首席未来学家Brett Winton表示,随着人工智能的进步加速,并促进多个经济领域的技术融合,加密资产可能会出现上涨趋势。他在2023年展望视频中表示,“公链、加密货币和加密资产目前正在经历一段坎坷时期,但在一个充裕的时代,它们的稀缺性将变得更加差异化。在风险投资和公共市场空间内扩张和实现价值的机会比两年前更大。”(The Block)[2023/1/24 11:28:00]

Epoch和Slot

每个epoch有32个slot,每个验证者在每个epoch正好被分配到一个槽位。一个slot是一个12秒的时间窗口,期间验证者可以参与权益证明协议,对新的信标区块进行提议或投票。

slot按epoch分组,epoch和slot为验证者参与权益证明协议扮演一个时间表的角色:

Epoch一个包括32个slot的周期。

Slot一个验证者委员会在为期12秒的时间里完成任务的窗口期。

一个epoch代表了权益证明协议的一个完整的回合,slot为验证者提供了一个参与该回合的机会。在一个epoch结束时,所有活跃的验证者都有机会参与。

Slot委员会一个验证者在一个epoch中正好被分配到一个slot,所有验证者被平均分配到各个slot,组成委员会。

一个slot里有两种角色:

区块提议者一个验证者有机会向委员会成员提议一个区块。

Twitter官方发文:Twitter 2.0是对公众对话的持续承诺:金色财经报道,Twitter 公司官方博客发文《Twitter 2.0:我们对公众对话的持续承诺》,文章指出,过去几周Twitter 正在接受公开测试,这种公开透明的创新方法是健康的,能够更快地行动并实时收集用户反馈。此外,Twitter 公司澄清其相关内容政策没有改变并始终致力于为每个人提供安全、包容、娱乐和信息丰富的体验。[2022/12/1 21:14:38]

见证者所有剩余的委员会成员会为一个区块投票,他们相信那个区块应该会成为新的区块链头。

每个epoch有32个区块提议者,所有验证者都有机会参与权益证明协议,向他们认为应该是规范信标链的链头投出一票。

一个slot代表了一个严格的时间窗口,供一个验证者提议一个区块,委员会成员对一个区块进行投票,最后将所有该slot的活动广播给下一个slot的区块提议者。

Slot和时间条件所有slot都是按照时间顺序一个接一个地产生的。每一个slot都准确地按照12秒一个被分配出来,并被分成三个阶段:

提议区块指定一个验证者提议一个区块,并在前4秒内将其广播给所有委员会成员。

投票周期所有其他委员会的成员都为一个区块投票,他们相信,接下来的四秒内他们的投票就要被这个区块接受。

广播投票在最后的四秒里所有委员会成员的投票应该被聚合起来并发送给下个slot的区块提议者。

所有的区块和投票都是在一个slot的委员会内进行广播。在委员会中有一个额外的角色,叫做聚合者,他们会在将证明传递给下一个slot的区块提议者之前将其聚合。他们是自选的,这是一个自愿的角色,以减少通信的成本。我们将暂时跳过具体细节--因为这将在未来的文章中涉及。

欧洲央行行长:预计将在未来几次会议上进一步提高利率:10月14日消息,欧洲央行行长拉加德表示,欧元区的通货膨胀率过高,且很可能在很长一段时间内都将高于欧洲央行的目标,因此欧洲央行管理委员会预计将在未来几次会议上进一步提高利率。(金十)[2022/10/14 14:28:04]

如果一个提议的区块或见证是在截止日期之后发布的,那么就不能保证该活动会被其他验证者认可。例如,一个迟到的区块可能会被跳过,因为这个slot的见证者可能已经为其父块投了票。一个迟到的见证将被其他见证者在一个epoch中处理,最多迟到32个slot,并有不同程度的惩罚。如果它在32个slot之后被发布,那么它将不会被任何验证者处理。

最后提醒一下,这个严格的时间窗口保证了运行验证者所需的带宽和计算能力的下限,因为他们必须要有准时接收、处理、发送见证/区块的能力。

验证者委员会的分配

我们在一个epoch里考虑分配验证者到slot里的过程。所有的slot委员会的规模大致相同。他们根据一个随机信标的输出完成分配,并且提前两个epoch进行。这要求使用一个混洗协议和一个同带信号传输随机性的源。

混洗协议所有验证者都根据一个叫swap-or-not的混洗协议被分配到一个slot里去。我们不会去探讨这个混洗协议的细节,而是会把注意力集中到随机信标的计算方法上,这个方法奠定了混洗协议执行方式的基础。

随机信标所有验证者通过一个随机信标被分配,这个随机信标使用了一个叫RANDAO的协议。其目的是在新的区块被添加到规范链上时通过聚合随机性来形成随机信标。

对于每一个新的区块而言,有两个阶段:

提议产生的随机性一个新的信标区块包括了一个叫randao_reveal的特殊值。它是一个区块提议者的BLS签名,用以充当区块的随机信标。它是确定的以防止被验证者篡改,但是不可预测。

SEC正针对Yuga Labs发布部分NFT以及ApeCoin是否违规的问题展开调查:金色财经报道,Bored Ape Yacht Club NFT的创建者Yuga Labs正面临美国证券交易委员会的调查,调查其部分产品的销售是否违反了联邦法律。报告称,监管机构正在研究是否可以将某些资产视为更像股票,因此应遵循相同的规则。它还在研究与收藏相关的代币APEcoin的分布。(彭博社)[2022/10/12 10:31:29]

混合随机性所有验证者从新的区块里取出随机信标并把它和之前所有聚合起来的区块的随机性混合。它形成了一个新值mix,有可能作为混洗协议的候选。

正如我们所能看到的,每一个信标区块都包括了一个随机信标,添加并汇聚了所有之前的区块的随机性。

验证者们通过第N个Epoch最后的随机信标被分配到第N+?2个Epoch的slot里

/**区块提议者在当前epoch号码上进行一次BLS签名*以充当这个区块的随机信标*一个非常好的地方在于签名是确定的,但是直到签名被计算出来之前都是无法预测的*/

DOMAIN_RANDAO=0x?02000000;//一个签名里包含的神奇数字?epoch_hash=hash(current_epoch_number,DOMAIN_RANDAO);//要签署的哈希码?randao_reveal=BLS.sign(epoch_hash,sk);//BLS签名是RANDAO

/**使用区块的随机性,进行哈希计算,然后把哈希码混合到现在聚集起来的随机性里*/

previous_mix=get_previous_mix(parent_block);//来自父块的混合randao_reveal=new_block.randao_reveal;//取得新区块的?randao

mix=previous_mixXORhash(randao_reveal);//计算新的混合?store_new_mix(new_block);//把新的“混合”和新的区块联系在一起

分配会提前2个epoch发生所有验证者都会使用最后那个被接受的区块汇聚起来的mix值作为随机信标,并在混洗算法中使用它。它会计算得出未来两个epoch的验证者委员会。

所以,如果我们考虑目前的epoch为第N个,那么这个epoch里的最后那个信标区块会作为随机信标决定第N+?2个epoch的委员会分配。

验证者们有充足的时间查找它们被分配到的slot,因为它们提前两个epoch就知道了。换句话说,未来64个slot的验证者的分配是早就公之于众了的(约2个epoch)。

随机信标的可偏倚性(bias-ability)只有一个mix能被混洗协议使用,那就是一个epoch中最后一个被接受的区块的mix值。

最后一个被接受的区块不会总是那个在第32个slot被提议的区块。而是最后一个slot的区块,也就是被所有验证者认可为区块链链头的那个区块。举个例子,如果第32个slot没有区块被提议产生,那么第32个slot的验证者委员会就会为之前在第31个slot被提议产生的前一个区块投票。

攻击者可以利用这点来使随机信标出现偏差。让我们假设攻击者是第32个slot的区块提议者。他可以决定这么干:

准时释放区块攻击者的随机性被混合在信标里

暂缓区块强迫所有验证者为上一个区块投票,则攻击者的随机性不会被混合在信标里。

这种决定权使得攻击者可以使随机信标出现1个字节的偏倚,并最终决定到底两个验证者分配组合里中的哪一个会在未来的一个epoch里被使用。实际上如果攻击者控制了一个epoch里最后N个区块的区块提议者们,那么它们可以利用这个机会释放或暂缓释放一个N个区块的组合。目前还缺乏一项严格的研究,来了解针对最后N个slot的偏倚能力的全部范围及其影响。

检查一个信标区块

一个信标区块的数据结构

一个单独的信标区块包含了它在信标区块链里所处位置的元数据、执行链的数据、以及权益证明协议的一份副本。我们会在下文探讨更多细节。

一个slot的区块提议者会尝试扩展规范链,并且只能选择一个父块。

信标父块一个区块的提议者的目标是提议并添加一个新的信标区块到一个规范链的头。若要这么做的话,它们只能选择一个父块来进行扩展。父块应该是当前的链头,它在元数据中的代表是parent_root。

Epoch和slot组织验证者产生唯一一条规范信标区块链。

Slot≠信标区块一个信标区块记录了它的slot号码的元数据。它允许其他验证者检查区块提议者是否确实被指定为这个slot提议一个区块,这个区块是否就是被提议的那个区块。如果slot的号码错误,那么区块会被拒绝。

重点在于,一个区块在区块链里的位置不会与它在其中被提议的slot号码相对应。举个例子,如果我们检查第5184157个slot,那么我们会看到第16015362个区块,这种不匹配是无法避免的,因为无法保证一个被分配的slot里被提议的区块会被所有其他验证者投票通过,而且以太坊从开始到现在运行了超过7年了。

执行链数据区块提议者会提议两个区块,它们提议一个执行区块,给用户的交易排序,并把它附加到新产生的信标区块上。这并不奇怪,因为共识层的最终目的就在于为执行层决定规范链。

区块提议者同样负责从执行层转移信息到信标层上,并使其准备好为权益证明协议所用。这包括:

ETH?1数据一个来自执行层的附加区块的区块哈希码。

存款存款合约地址和一连串未记录的存款。

这要求所有的验证者运行一个信标客户端和一个执行客户端。这是必要的,因为验证者们必须检查对应的ETH?1区块并根据执行层规则验证其有效性。同样地,正如我们在关于注册过程的文章里讨论的一样,存款必须在一个特定的区块间隔期内从执行层上被转移到一个信标区块上,否则信标区块会被拒绝。

元数据slot号码、epoch号码、随机信标和区块提议者

罚没事件包括其他验证者的恶意行为证据,这些证据可用于惩罚它们

投票历史记录一连串在这个区块链分叉上针对之前提议的信标区块的未被记录的的投票

区块链分叉它挑选了一个父块,并反过来定义了这个区块所延伸的规范链。

验证者退出一连串已注册验证者的退出请求。

通过记录下副本,每一个人都可以独立地回顾整个协议,并且绝对相信目前信标链的状态是正确的。比如说,恶意的验证者会被及时罚没,slot和epoch的时间表受到全体验证者的认可,绝大多数验证者都会以这种方式投票并产生单独一条规范链。

题外话,由于弱主观性的缘故,虽然权益证明的记录可以使我们信服所有历史活动都是按照规则进行的,但是尚不足以向一个外部群体说明这确实是那条真实的信标区块链。简单来说就是它提供了一个检查历史活动完整性的方法。

原文标题:《Epochs,SlotsandBeaconBlocks》

原文作者:PatrickMcCorry

原文翻译:John,ECN

来源:星球日报

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:78ms0-1:157ms