EOS:区块DAG真正的终结性

作者:StevenPu,Taraxa创始人前言在之前写过的一篇文章里,我们定义了区块DAG的结构和排序方式,但也提出了排序依旧会随着时间推移而出现变化的问题。本文,我们会为大家介绍Taraxa赋予区块DAG排序真正终结性的方案以及与之相关的所有结果。终结性的重要性

如今大多数区块链拓扑的终结性都是基于概率的,也就是说你永远无法百分百确定一笔交易真的彻底完成了。举个例子,在比特币网络中,随着时间推移,攻击者追上网络剩余部分并重组区块的概率会呈指数级下降。这种指数级的风险下降催生了“6个区块”的经验论。也就是说,如果在包含你那笔交易的区块上又新增了5个区块,那么你的交易就有了“6个区块的深度”,从统计上来看,这个交易就不太可能遭到重排攻击。在很多场合,概率性的终结没什么问题。但是,如果你正在执行大量交易,且每笔交易都依赖于上一笔交易的输出,或者你正在执行一笔巨额交易,你需要确定这笔交易绝不会被撤销,那么终结性就相当重要了。在原始状态下,我们区块DAG的排序机制也是概率性终结的。为了实现真正的终结性,需要做些添加。DAG终结性意味着什么?

欧易OKEx DeFi播报:DeFi总市值503.3亿美元 欧易OKEx平台CHZ领涨:据欧易OKEx统计,DeFi项目当前总市值为503.3亿美元,总锁仓量为812.50亿美元;

行情方面,今日DeFi代币普涨;欧易OKEx平台DeFi币种涨幅最高前三位分别是CHZ、1INCH、SRM;

截至18:00,OKEx平台热门DeFi币种如下[2021/6/16 23:41:14]

回想一下,我们早期排序机制的重排风险主要就是出现在锚定链发生变化的时候。

因此,只要我们能确保定期固定住锚链,那么无论出现什么状况,锚链上的区块排序都能彻底确定。我们是如何做到的呢?网络会定期举行投票,与区块DAG的建设同步,以此来为DAG边界附近的特定区块施加无限权重。当一个区块被赋予无限权重的时候,就意味着其通过幽灵指针直接或间接指向的所有区块都具有了无限权重,也就是说现在不可能再通过攻击推翻这个排序了。

ARK基金创始人:比特币1万亿美元市值仅仅是价格发现的开始:ARK基金创始人Cathie Wood表示:“比特币的市值超过1万亿美元,仅仅是比特币价格发现的开始。如果将所有潜在需求与有限的供应量相加,那么从长期来看,我们得出的数字令人难以置信。我们才刚刚开始。一万亿美元根本不算什么。”(Cryptoslate)[2021/3/29 19:25:02]

在上图,我们选择了橙色区块赋予无限权重,并且可以看到这种无限性已经通过反向指向区块DAG赋予了锚链上所有区块无限权重。现在,我们已经有效地在其所属时期确定了这个锚链及所有区块的排序。那么,我们如何第一时间选择要赋予无限权重的区块呢?通过类似PBFT的算法选择周期区块

为了选择DAG内的一个区块来完成最终确定,我们采用了一个类似PBFT算法的过程。考虑到PBFT是一个研发完备且广泛部署的算法,关于本文会涉及到的细节和潜在错误这里就一笔带过不再赘述了。PBFT的周期区块终结过程大致分为四步,如下面这张高度简化的图表所示。

比特币升至全球资产市值排名第7位,超越腾讯:Asset Dash数据显示,目前比特币市值达7072.62亿美元,排名升至第7位,已超越腾讯。[2021/1/7 16:40:28]

我们来分别看下,在每个阶段,节点会做什么:1.提议新的区块

通过VRF(SK,previous_PBFT_block_hash,current_vote_type,current_round_number,current_step_number)=(e,π)来计算其资格,这里e就是资格值,π是VRF正确计算的证明决定“如果e<阈值,那么其就有资格在本轮提议一个PBFT区块”在边界的附近但不在边界上挑选一个DAG区块候选人来进行最终确认,也就是当前周期的区块候选人Pt在Pt和P(t-1)之间创建一个周期,找到这个周期内包含的所有区块创建一个并发调度CS创建一个包含(Pt,CS)以及其他信息的PBFT区块候选人(Pc)计算Pc的哈希将hash(Pc)、Pc以及证明其资格的(e,π)广播给其他对等节点2.投票选出领头人

市值前百种币29涨71跌:金色财经行情显示,BTC今日价格在9465.42-9270.25美元之间波动,市场整体下行。市值前百币种29涨71跌,其中涨幅前三的币种分别为:FXC 涨幅78.1%,LEND 涨幅18.67%,RLC 涨幅11.92%;跌幅前三的币种为:CHSB 跌幅-22.77%,ABBC 跌幅-14.06%,ETN 跌幅-7.83%。[2020/6/19]

通过VRF再次计算其资格生成另一个(e,π)决定“如果e<阈值,那么其就有资格参与此轮”等待2个λ的时间,其中λ是网络直径——也就是网络中两个最远节点之间的最短距离计算在π也正确的情况下观察到的e的最小值,创建者即为最小值e为“领头人”的时候,它就是创建者——这个节点就是提议下一PBFT区块的候选人将其对hash(Pc)的投票以及证明其资格的(e,π)广播给对等节点——这里的hash(Pc)对应的是会成为“领头人”的最小的e3.针对区块的投票

通过VRF再次计算其资格生成另一个(e,π)决定“如果e<阈值,那么其就有资格参与此轮”等待2个λ的时间计算在给定的e_min时间内其是否收到2T+1的投票如果其尚不具备PBFT区块,就针对e_min对应的Pc以及相关hash(Pc)进行对等节点轮询验证Pc是否正确创建将其对Pc的投票以及证明其资格的(e,π)广播给对等节点4.投票进入下一步

重庆渝中区将利用区块链等技术,打造“智慧食药监”信息系统:5月24日,重庆日报讯,渝中区投资1000多万元,借助云计算、物联网、区块链等技术手段,全面构建食品药品数据“一个中心”,电子监管、行政执法、应急管理、决策支持、内部管理、公共服务“六个平台”,全面打造一体化的“智慧食药监”信息系统。[2018/5/24]

通过VRF再次计算其资格生成另一个(e,π)决定“如果e<阈值,那么其就有资格参与此轮”等待2个λ的时间计算对于任意给定的Pc,其是否收到2T+1的投票验证获胜的Pc是否正确创建计算最新验证过的Pc并将结果提交到永久存储将其对继续提议下一个PBFT区块的投票以及证明其资格的(e,π)广播给对等节点关于我们PBFT的更多介绍

上面写的就是一个极其简单的描述这是对我们PBFT流程的一个极其简单的描述,因为我们并没有提到所有可能会导致事情往不好方向发展的情况,例如没有节点计算出低于阈值的e、投票没有达到2T+1这个规定的数目、大量节点在这一轮期间崩溃等等。这个PBFT流程高度安全且可扩展注意,每当节点要发声时,它都会计算一个VRF资格值来确保在这一轮它有资格发言。资格的阈值已设置好且会动态调整来确保以下两件事:参与每一轮的节点是随机的且有可能是不同的,这意味着一旦攻击者观察到某个节点是参与者并以其为目标发起攻击,那么可能在下一轮它就失去了资格。这和许多其他算法不同,其他算法会在较长时间里保留参与者的资格,使他们成为攻击的首要目标。在任何给定的回合中,只有一部分合格节点参与其中,使这个PBFT流程高度可扩展。这意味着就算网络容量扩大,合格参与者数量增加,这些PBFT轮次的实际参与者相对网络容量可以轻松通过设置实现次线性扩展。参与人数越少投票过程就越快。将随机选择的参与者与次线性增长的委员会规模相结合,得到的就是一个高度安全且可扩展的PBFT流程。平行的PBFT链

Taraxa的PBFT流程在现有的区块DAG旁边创造了一条PBFT区块线性链。

每个PBFT区块都有两个主要目标,完成一个DAG区块在周期区块中的最终确定主持一次规定交易如何计算的并发调度完成DAG区块的最终确定

这个PBFT流程会确认区块DAG内的一个单一区块。因此,与其他大多数利用PBFT流程的网络不同,它并不作为主要共识算法来对整个区块链流程把关。这也是为什么Taraxa的PBFT流程与区块DAG的创建流程是并行的且基本上异步的。每当一个新的DAG区块完成最终确定,我们就创建一个已终结的锚链以及锚链上一组相关区块来实现)。整个区块的集合称为周期,也可以看作是一个最终确定了排序的区块集群的快照。每个周期包含许多DAG区块,会带领我们进入另一个PBFT区块任务,通过并发调度来确认待计算交易的顺序。并发调度

并发调度通过以下几种方式来确定排序:区块的排序,这个由排序机制定义,因为一个周期里有很多区块。过滤出区块间的冗余交易。因为我们采用的是一个DAG数据结构,所以很有可能发生多个区块提议者将同一组交易打包到不同DAG区块的情况,导致一定程度的交易重叠。Taraxa设计了一个交易仲裁机制来帮助调整这种重叠——我们希望将这种情况降到最低但又不能为零,否则会出现交易孤立过度的情况。将交易分为并发集与顺序集。这是我们并发EVM设计的关键部分,其中通过一组推测性执行算法将交易分为可安全并行执行的交易与必须按序执行的交易。你也可以将并发调度看作将所有单独的DAG区块组合成一个单一区块并嵌入每个PBFT区块的结果。除了共识,接下来我们还会继续分享更多有趣的技术,并在研究和实现进程中陆续发布。敬请期待!

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

链链资讯

DAI比特币:RAM扩容和侧链毁掉了EOS的未来?

编者按:本文来自风火轮社区,作者:佩佩,Odaily星球日报经授权转载。大家好,我是佩佩,如果拿一幅图形容加密圈这两天的故事,应该就是下图了: 前天这一大盆冷水泼下来,社群也都安静了很多,不过目.

[0:15ms0-7:250ms