最重链规则的优势与隐患-ODAILY_NFL:TPS

编者按:本文来自Conflux中文社区,作者杨光,Odaily星球日报经授权转载。

本期,我们来聊聊最重链规则。

在上一期,我们提到,最长链规则对孤块的出现频率非常敏感,具体文章可见:Conflux为什么没有选择比特币所采用的最长链规则?。

每次诚实节点生成一个“孤块”,就意味着诚实节点付出了算力,但没能成功地将链的长度增加一,也就没有为系统的安全性做出贡献。

如果孤块出现过于频繁,最长链增长的速率就会降低。

一旦这个速率低于攻击者生成区块的速率,攻击者就可以从任意早的地方发起攻击,最终追上最长链,从而改写区块链上的历史。

掌柜调查署 | Marco:未来必然有越来越多的项目会基于分片技术打造或改造:在今日举行的《掌柜调查署 | Near分片技术如何引领web3.0时代》直播中,针对“分片技术在行业内的落地情况如何?”的问题,Buildlinksodvq合伙人、Near中国线上黑客松冠军Marco表示,不管是老项目的扩容改造,还是新项目的能力建设,分片方案都是目前最佳的选择。所以,未来必然有越来越多的项目会基于分片技术打造或改造。当前大部分分片方案,都是基于信标链模式,比如,以太坊上的信标链,波卡上的中继链,Cosmos的Cosmos Hub。而这个模式的由来,也是为了解决分片本身所面临的几大挑战之一:安全性挑战。因为每分片上验证人数目随着分片而减少,如何保证分片的安全性是分片系统面临的最基础挑战。信标链作为分片的基准链,提供统一的随机性,让分片上的验证人随机产生,使得从概率上攻击单个分片的难度与攻击全链一致。除了安全性挑战外,分片协议还普遍面临:跨分片通信;数据一致性问题;数据有效性和可用性等挑战。特别的,信标链模式的分片系统还面临一个分片规模受限的问题。因为信标链要处理所有分片的验证人分配,以及对分片快照这些工作,其本身是一个能力受限的瓶颈。除此以外,信标链系统设计复杂,仅分叉选择逻辑一项,就需要处理信标链分叉和分片链分叉两种情况及其相互之间的关联关系。NEAR为什么这么受追捧,跟它的分片协议关系很大了。NEAR在分片技术上独树一帜,采用了无信标链的构建方式。[2020/8/14]

最重链规则在设计的时候,刻意削弱了“孤块”的影响。

V神:以太坊最早将于今年部署分片技术:3月7日,V神在ETHLondonUK会议上探讨了以太坊在2020年的发展前景。他表示,以太坊最早将于今年部署分片(sharding)技术,这将会使以太坊网络的规模扩大“100倍甚至数百倍”。此外,以太坊的生态系统将在明年“增加隐私性”。而对于最近闹得沸沸扬扬的的“闪电贷(flash loan)”问题,V神认为,需要对去中心化的oracle做更多的研究。他进一步表示,应该针对“不同类型的oracle设计”加以研究,以使它们“更安全、更去中心化”。(Decrypt)[2020/3/8]

在最重链规则下,如果从某一时刻开始,所有诚实者生成的区块都将一个区块A作为自己的祖先。

声音 | Solana CEO:分片技术可能会为区块链项目引入安全风险:分片被广泛认为是区块链可扩展性的解决方案。但Solana首席执行官Anatoly Yakovenko称,实施分片技术的项目可能会在其区块链中引入新的安全风险,可能使它们容易受到共识攻击。 他认为,与分片相关的风险远远超过任何可能的可扩展性好处。“一旦你拆分网络,就会引入一个额外的攻击媒介。分片技术会破坏安全性。”如果一个分片被黑客接管,可能会引发多米诺效应,影响代币价格,导致用户和节点的大规模外流。他补充道,分片允许黑客利用分而治之的策略摧毁原本欣欣向荣的生态系统。 Radix(XRD)CTO兼联合创始人Dan Hughes表示,分片的区块链容易受到安全风险的影响,但他们已经创建了一个安全的分片实现。他补充,虽然第一次的分片迭代可能会让区块链容易受到攻击,但这项技术正在快速发展。区块链项目在安全性和可扩展性之间可走的道路狭窄,但它并非不可逾越。[2019/8/29]

也就是说,这些新区块都在以区块A为根节点的子树中。那么,无论这些新生成的块中有多少“孤块”,区块A的子树权重增长的速率都不会打折扣。

动态 | MultiVAC:已在分片技术获得了“突破”:据cointelegraph报道,根据11月5日的新闻稿,区块链平台MultiVAC声称已经在区块链扩容技术分片(sharding)中获得了“突破”。MultiVAC报告称使用64个分片实现了每秒30784次交易(TPS)。虽然所使用的所有分片的交易总量在其峰值时超过30K,但单个分片达到533 TPS。MultiVAC还在新闻稿中声称,他们的“全维分片扩展解决方案”或可用于大规模商业应用,以及低性能计算机上的加密挖掘。[2018/11/10]

对于区块A所有兄弟区块,只要攻击者的总算力低于诚实者的总算力,那么无论攻击者做什么,它的子树权重增长速率都很难赶上子树A的权重增长速率。最终攻击者没有能力改变“区块A打败了它的所有兄弟”这一事实。

对于A的父亲区块、祖父区块等等,类似的结论同样成立。这样,区块A就成为了一个进入“最重链”的区块,且这个事实无法被攻击者逆转。

从以上分析可以看出,最重链规则完全不关心新生成的区块中有多少孤块,并具有这样的性质:“无论出块速度多快,最重链规则的攻击阈值都是>50%”。

允许出块速度任意快,配合“树图结构”,可以将TPS提高到非常高。

但这次我们不想再重复强调TPS了,我们来谈点新鲜的——交易确认时间。

出块速度和交易确认时间有什么关联呢?让我们从一个简单的概率实验谈起。

如果你有一枚硬币,但是这枚硬币不均匀,它有2/3的概率抛出正面,1/3的概率抛出反面,但是每次抛出的结果是相互独立的。

如果某个时刻,你已经抛出的正面总数比抛出的反面总数多了21个,那么根据概率论的知识,即便你继续抛下去,有超过99.9999%的概率,抛出正面的总数永远比反面多。

这个结论不会因为抛掷硬币次数多而改变——即便是一直抛到地老天荒,结论都是一样的。有兴趣的读者可以自己计算一下这个概率。

其实,交易确认与抛硬币的例子非常相似:硬币抛出正面对应着诚实节点生成了一个区块,抛出反面对应着攻击者生成了一个区块。如果攻击者和诚实节点生活在一个没有网络延迟的世界中,区块A以多大概率被确认完全取决于:

区块A的子树权重-区块A竞争兄弟的子树权重

(更严格的说,在“最重链规则”里,对于区块A到创世块这条链上的每一个区块,它和它的竞争兄弟的权重差值都会影响确认概率)

这个数值越大,意味着交易所在区块相对于竞争区块有更大的权重优势,也就更不容易被攻击者逆转。

假设诚实节点新生成的区块都在区块A的子树中,有33%活跃攻击者,则无论在什么出块速度下,上面说的权重优势大于21都可以保证99.9999%概率不被逆转。

而出块速度越快,就可以在越短的时间内积累起足够的子树权重差值,也就意味着确认时间更短。

在有网络延迟的世界里,网络延迟会对上面这个规则有一些影响。在最差的情况下,攻击者生成的区块总能在第一时间传遍全网,而诚实节点生成的区块广播时却总是慢半拍。如果我们把这一因素考虑进去,上面的式子就会变成:

交易区块的子树权重?-竞争兄弟的子树权重?-还没有传遍全网的区块

在这种情况下,提高出块速度依然有助于交易的确认。

以上仅仅是从直观概念上解释出块速度和确认时间之间的关系,并非严格的数学推导与计算。包含确认时间和安全性的完整推导和证明的学术论文目前正在撰写中,不日即将发布。

根据我们推导出的确认规则和所做的实验,在出块速度为4区块/秒时,Conflux可以在30秒之内得到等同于比特币6个确认块的安全性!

虽然这只是实验环境下测得的结果,但是依然展示了将PoW链确认时间压缩进一分钟内的可行性。

不过,在区块链运行的过程中,实际情况往往比理想情况要复杂得多。

在前面的讨论中,我们实际上假设了诚实节点新生成的区块都在区块A的子树中。我们暂且称这样一个被所有诚实节点都承认在主链上的区块A是他们的公共祖先。

根据我们的实验结果,在没有攻击的情况下,主链上的区块确实很快都会成为公共祖先,然后就可以应用确认规则判断交易的安全性。

但是,目前没有任何一项研究表明主链上的所有区块都一定会成为公共祖先。

而这个“不确定”的背后,就藏着最重链规则无法回避的隐患。

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

金宝趣谈

[0:15ms0-4:836ms