区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用)

这篇具有很好参考价值的文章主要介绍了区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以太坊2.0中有两个时间概念:时隙槽slot 和 时段(周期)epoch。其中一个slot为12秒,而每个 epoch 由 32 个 slots 组成,所以每个epoch共384秒,也就是 6.4 分钟。

对于每个epoch,使用RANDAO伪随机算法将全部的验证节点分成多个委员会(committee),这些委员会的职责主要包括出块LMD GHOST(以太坊的分叉选择规则)投票和Casper FFG投票(有时候把这两种投票合称Gasper)

每个委员会至少包括128个验证节点(一个验证节点在一个 epoch 中只能参与一个委员会),它的职责是负责验证一个slot(这里我看不同的资料有不同的说法,资料[1]的说法是全部验证者被随机分成32个委员会,正好对应一个epoch里的32个slot;而资料[2]的说法是由于网络中的验证者总数大于32*128*2=8192,所以可以保证每个slot至少有两个委员会;资料[3]的说法是由一个或多个单独的委员会负责验证每个slot。这个估计要看最新的资料,据说关于ETH2.0出块机制这方面一直在变化,貌似两年前的文章已经没有太多参考价值)。

在这至少128个验证者组成的委员会中,会随机选择(还有种说法是根据有效余额权重,有效余额定义见资料[4])一个验证者作为区块提议者(propose),其余验证者负责LMD GHOST投票和Casper FFG投票,其中LMD GHOST投票需要所有验证者在自己所在的 slot 中投票选出信标链的head。

这两种投票的区别就像地方选举和全国选举,因为只有分配给某个slot的验证者才会对该slot进行LMD GHOST 投票,而Casper FFG需要所有验证者为epoch的检查点(checkpoints)进行投票,投票的权重由验证者节点的的余额决定。在每个Epoch之后,各委员会的验证者被混合并合并到新的委员会。

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链

区块提议者会根据LMD-GHOST 分叉选择规则,在他认为拥有最多验证者证明的链构建下一个区块。提议者有4秒的时间去提议一个新区块,如果提议者完成了它的任务,一个有效的区块(在4秒内)将会填充slot;如果未完成任务(比如提议者离线),slot将传递为空(skipped),如下图中的slot4。

在区块提议的过程中,有可能因为网络延迟或者恶意行为(例如区块提议者同时发布两个不同的区块)等原因出现分叉(这里我在网上其他地方查了资料好像很多人都说ETH2.0不会存在叔块/孤块,但这里的分叉难道不会产生叔块么??),比如下图在slot5/6出现了分叉:验证者(5)提议了一个区块,但是验证者(6)没有收到相关信息(例如,该区块到达该验证者的速度不够快)。所以验证者(6)根据从验证者(3)那里看到的最新信息提议了一个区块。

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链

当出现分叉时,要根据LMD GHOST投票结果确定主链。相比于POW选择最长链为主链,LMD GHOST规则的思路为根据验证者最近一次的投票(Latest Message Driven)确定每个区块的weight,每当遇到分叉时选择weight最大的区块作为主链,一直重复该操作直至找到leaf block即链头。而对于某一个区块的weight,它等于投给该区块以及该区块所有子孙后代区块的票数总和。

(但是这里我不太理解的是到底什么叫做最近一次的投票?我是觉得在一个epoch当中,一个验证者本来就是只在他所在的slot投一次票吧,这样的话就不存在第二次投票也就不存在什么最近不最近这个概念了,那照这样理解的话应该下图中的每个区块都有与它直接连接的笑脸才对,但显然不是这样的,下面这张图只有 2 1 4 1这几个区块有投票,有懂行的朋友能解释下嘛?)

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链

以上图为例,笑脸表示验证者的最近一次投票证明(每个笑脸的weight这里都取1),数字表示每个区块的weight,尽管最上面一条链才是最长链,但由于绿色这条链获得了最多的验证者证明,所以绿色这条链才是权威链。

检查点(checkpoints)与区块的最终确认(finalized)

前面讲的都是以太坊2.0的出块机制,那么区块又是怎么确认的呢?

首先,我们需要明确检查点的定义。检查点是一个epoch中第一个slot的区块。第一个slot中若是没有区块,则检查点是前一个最近的区块。每个epoch必定有一个检查点块,且一个区块可以是被归属于多个epoch的检查点。

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链

以上图为例,slot 64 处的区块是 epoch 1的检查点,epoch 2 的检查点本来应该是位于 slot 128 处产生的区块,但由于从 slot 65 到 slot 128 之间都没有区块,所以 epoch 2 的检查点是从 slot 128 往前的第一个区块,即 slot 64 处的区块。

当进行 LMD GHOST 投票时,验证者也会投票给当前周期中的检查点target checkpoint以及先前的检查点 source checkpoint,此投票即为 Casper FFG 投票。

当一个周期结束时,如果某检查点获得了所有活跃验证者总有效余额 2/3 的投票支持,则该检查点被认为是justified状态。如果检查点A被证明是justified,并且紧接的下一个epoch中的检查点B也被证明是 justified 的,那么A将被最终确认,变为finalized状态。通常,一个检查点会在两个时期内得到最终确认,即 12.8 分钟。

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链

上图的英语逐句翻译如下:

1. slot 96处产生一个新的区块,标志着epoch 2结束。该区块内存储了关于epoch 2检查点(即slot 64处区块)的投票;(这句没太懂,为啥slot96会存储slot64的投票)

2. 信标链检查epoch 2检查点(即slot 64处区块)是否获得验证人超过2/3的证明;如果超过,则epoch 2检查点(即slot 64处区块)及epoch 1中的所有区块都被证明(justified);

3. 如果epoch 2检查点(即slot 64处区块)被证明,那么epoch 1检查点(即slot 32处区块)及之前被证明的所有区块都最终确定(finalized)。

所有最终确认(finalized)的检查点都成为规范链(区块链历史的一部分),所有忠诚节点都默认接收规范链,即「最终检查点」之后的区块可以随意分叉,但之前的区块不允许分叉。但如果节点主动选择作恶,则需要承担高昂的攻击成本。所以,通过Casper FFG保证了ETH2.0的安全性。

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链

信标链浏览器:https://beaconscan.com/

让我们在信标链浏览器上查看一下epoch191896,可以看到该epoch的slot6140674为forked,slot6140676为skipped

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链

对应的,在ETH区块链浏览器上,可以看到16967454区块在slot6140673被提议,16967455区块在slot6140675被提议,中间正好隔了一个slot6140674,因为该slot产生的区块是一个分叉块,且没有在LMD Ghost获得更多的投票weight。

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链

 可以看到16967456区块在slot6140677被提议,与上一个区块中间正好隔了一个slot6140676,因为该slot没有提议区块,可能因为提议者离线了。

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用),区块链文章来源地址https://www.toymoban.com/news/detail-663512.html

到了这里,关于区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • QLearning在区块链中的应用

    非常感谢您的阅读。我将以专业的技术语言撰写这篇深入的技术博客文章。 区块链作为一种分布式账本技术,凭借其去中心化、不可篡改、透明公开等特性,在金融、供应链管理、数字资产交易等领域广受关注和应用。而强化学习算法Q-Learning作为一种有效的智能决策方法,近年

    2024年04月15日
    浏览(17)
  • 科普|区块链中的Merkle Tree

    什么是Merkle Tree? - Merkle Tree也就是Merkle树,中文译名还有梅克尔树或默克尔树,因为这是一棵用哈希值搭建起来的树,树的所有节点都存储了哈希值,所以也叫哈希树,英文名为Hash Tree。默克尔树通常情况下看着是一棵倒置的树型结构,根节点在顶部,分叉向下,叶子节点

    2024年02月02日
    浏览(22)
  • 区块链中的货币与现金系统

    区块链中的货币与现金系统

    摘  要 : 区块链技术是近年来备受关注的一项新兴技术,它以去中心化、不可篡改和透明等特点,为各个领域的应用提供了全新的解决方案。区块链技术的发展不仅对传统金融、物流、能源等行业带来了深刻的变革,同时也推动了数字经济和数字社会的快速发展。在区块链技

    2024年02月04日
    浏览(19)
  • 【区块链时代】如何用Python实现区块链中的区块结构(快速入手01)

    区块结构的详细介绍,容易入手: 【区块链时代】如何理解区块链中共识机制以及在区块链中分叉是如何解决的 结果如下: 在下一篇博客中将重点介绍节点之间通信过程中如何实现各个功能模块。

    2024年02月15日
    浏览(14)
  • (11-3-01 )检测以太坊区块链中的非法账户

    源码和数据集下载在本篇最后 以太坊(Ethereum)是一种基于区块链技术的开源平台和加密货币。它于2015年由Vitalik Buterin和Gavin Wood等开发者创建,并成为比特币之后最受欢迎的加密货币之一。以太坊不仅支持加密货币交易,还为开发者和企业提供了构建去中心化应用程序的强

    2024年02月02日
    浏览(16)
  • 区块链中的 Gas 费是什么?我一定要交么?

    区块链中的 Gas 费是什么?我一定要交么?

    经常使用以太坊等区块链的人,对于 Gas 这个词一定不陌生。那么,Gas 是什么呢? Gas 在英文中是指“燃料、汽油”的意思,在区块链当中,它也的确和“汽油”有着类似的功能。区块链是一个由无数节点共同构成的去中心化网络,在这个网络中,每一个节点都可以看做是一

    2024年02月11日
    浏览(17)
  • 浅析区块链中的数据可用性采样技术(DAS)

    浅析区块链中的数据可用性采样技术(DAS)

    任何一条区块链中,数据可用性都是一个必不可少的关键性内容。在当今区块链主流采用的欺诈证明的乐观系统或有效性证明系统中,都需要“数据可用性”进行验证,确保系统活跃性。 在早期的区块链项目中,用户需要下载整个数据块来确保数据可用性。简答来说,就是用

    2024年02月11日
    浏览(14)
  • (11-3-7 )检测以太坊区块链中的非法账户:模型评估

    (11-3-7 )检测以太坊区块链中的非法账户:模型评估

    11.3.7  模型评估 模型评估(Model Evaluation)是在机器学习和统计建模中的重要步骤,用于评估构建的模型的性能和有效性。它涉及使用不同的指标和技巧来量化模型在处理数据和进行预测时的表现,并帮助确定模型是否足够好以满足特定任务的需求。 ( 1 ) 对模型进行全面评

    2024年02月02日
    浏览(18)
  • J9数字论:如何理解区块链中的公链,私链,侧链,联盟链

    J9数字论:如何理解区块链中的公链,私链,侧链,联盟链

    区块链简而言之,就是一个分散式的记账本,有着点对点交易查询,公正,透明,可追溯,不可篡改,去中心化的特点。 区块链在大类上被分为公共区块链(公链),联盟区块链和私有区块链,TVL和用户量最大的公链当属以太坊。而除以太坊以外,其他公链在自身定位分类或

    2024年02月12日
    浏览(15)
  • (11-3-03)检测以太坊区块链中的非法账户: 数据分析(2)

    (11-3-03)检测以太坊区块链中的非法账户: 数据分析(2)

    ( 1 1)再次 获取数据集的列名,具体实现代码如下所示。 ( 1 2) 根据指定的相关性阈值(0.7),选择相关性超过阈值的列,并将这些列的名称存储在 to_drop 列表中。最后,打印输出需要删除的列数。具体实现代码如下所示。 执行后会输出: ( 1 3) 列表to_drop 包含了根据

    2024年02月02日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包