谁说BFT不能用于公链?浅谈Dfinity共识层(一)

小链君每日精心分享

现在几乎所有币圈人都知道区块链1.0是BTC带来的公链共识技术,区块链2.0则是ETH带来的智能合约技术。但对于区块链3.0,虽然不少人认为会是分片技术,不过目前并没有得到公认。分片技术,是为了解决之前区块链并发量低,不适应大交易量应用场景而研发。在很多项目都在绞尽脑汁提高分片下的TPS时,Dfinity横空出世——谁说BFT不能用在公链,不能有高TPS?

读Dfinity的白皮书,要做好读数学系论文的准备。项目创始人是一位俄罗斯裔神童,他本身就在云计算和AI上颇有造诣。整篇文章完全用统计学的方法,论证了可能之前所有人都不敢想的事情——通过适当调整安全性和可用性,就算是BFT也能在公链上使用并获得高的TPS和无限的扩展空间!

等等,虽然安全、可用、可扩展性不像分布式系统的CAP不可能定理理论上即不可能,但这三者还是有很大矛盾的,他具体怎么做呢?没错,CAP是不可能的,但准CAP是可能的。Dfinity本身使用的是BASE体系,牺牲一致性,代之以最终一致性而获得可用性。可对于用户而言,这里的一致性和最终一致性的差距并不大——仅仅出3个块的时间就能达成最终一致性,出一个块往往为数秒到十数秒,稍微多费一点时间就能达成的一致,很难分辨这究竟是否是最终一致。

Dfinity的共识层设计如下:

Difinity采用的共识是PoS,ID层要求必须注册并缴纳保证金。如此一来,作恶的代价将不仅仅是挖出的区块不能获得奖励,更是要没收全部保证金。上一层则是整体的核心设计——随机数灯塔。这个随机数灯塔可以保证最后一位参与者无法得知随机数并选择中止协议。第三层的概率插槽协议能够尽可能针对被公证的区块进行上链操作并保证总权重最大的链为主链。最上层是公证层,设计了一套有效的算法来尽快保证最终一致性达成。

公证并不是共识,但公证失败的概率通过二项式模型可以得出:只要能分出足够多的诚实分组(诚实分组就指该分组内能够正确达成拜占庭共识的组),其失败概率可以降到10^-24,相当于30克水中找到唯一水分子一样,这比起“上帝粒子”希格斯玻色子的发现要难得多:

其中ρ为失败概率,β为全部节点和最大作恶节点之比,n为所需的组数。这个结果已经推向了无穷多节点数,意味着哪怕全宇宙的生命体都参与这个公证,分成1448组就可万无一失。

这里提一下为什么是二项分布:考虑有限情形,将所有节点进行随机分组,分组中可能能达成拜占庭共识(诚实),也可能不能(不诚实)。从中抽取n组,其中只要能表现超过一半的人能够达成诚实公证即为成功,反之则为失败。这样一来概率符合超几何分布:

再将节点数|U|推向无穷,此时根据统计学的结论,超几何分布转变为二项分布。

从上面的表格可以看出对于失败概率ρ的对数,n与其基本为正比。这从二项分布很容易得到:二项分布的概率与n的关系为

,而当n很大时,阶乘根据斯特灵公式可以转化为

,取对数后基本上就是线性关系。这样一来,就算要为了安全性进一步降低失败率,对于分组n的要求上升也是完全可控的。

公证要进行两次,并在全网公示一次,这样一来,其安全性并没有比PoW降低多少,但达成共识的速度却大大加快了。可以说,如果不能够跟上公证速度,就算作恶者再怎么改变作恶方式,也像如来手中的孙悟空一样,跑不出公证范围。

Dfinity的共识层机制非常深奥,不管是随机数灯塔、最重链机制都有非常明显的创新,也有严谨的论证过程。欲知后事如何,请听小链下回分解。

话说李笑来录音事件,大佬们又撕逼了:

币圈就这么大点,谁不认识谁?两个骂得最凶的,就算不是微信好友,也有很多中间人,然后一方发个朋友圈骂个街,另一方立马就能知道,也发条朋友圈对骂。

你们两个人就不能互加好友对骂吗。

老是吃瓜看戏也很累的好吗,除了看戏,对我们普通小散来说,小链表示最重要的事情还是赚钱啊!!!

今日截止目前主区币种全部上涨,涨幅最大为BCH,上涨6.25%,收768.4。

小链仓位:5成。

BTC(1h线)实际出现了向上延伸,没有回踩6250区间,这里小链仍然持谨慎态度,目前的状况不建议继续追高,但跌下来6500区间可以低吸。

ETH(1h线):ETH就445-490区间的震荡而言,出现了整体的向上延伸,如果能直接突破506,就可以直接转变为反转的多头思路,否则这里仍然谨慎对待。

EOS(1h线):就目前的状态而言,EOS有补涨的机会,8.5区间可以低吸部分。

XRP:0.46区间可以尝试低吸部分,新低严格止损。

LTC:LTC新低再快速反抽,目前的走势来说,没有太合适的买点,78区间可以低吸部分,跌破77严格止损。

行情/道法自然 文/烨煌

扫码加入从链创世区块群↓↓↓

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180708G0BVGG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券