当前位置:首页 > 区块链新闻 > 正文

从Thunderella看扩容的另一个思路

来源: 互联网时间:2019-01-17 15:50:51

本文不构成任何投资建议,投资有风险,入市需谨慎!

区块链扩容是一个热点话题,目前市面上大部分链的扩容方案是分片,原理就是全网的所有的共识分成若干份分片进行共识,从而达到并行处理的速度。但这样的缺点也很明显,会削弱共识的安全性,N个分片虽然使交易速度变成过去的N倍,但单独一个分片的安全性也就变成原先1/N,从而导致仅需要非常低的成本,就可以攻击某一个特定的分片。Thunderella论文的发表,提供了一种不改变共识安全基础的扩容新思路。

一、什么是Thunderella

论文全称是《Thunderella: Blockchains with Optimistic Instant Confirmation》,发表于EUROCRYPT 2018大会,该会议属于密码学的顶级学术会议之一,论文地址:https://eprint.iacr.org/2017/913.pdf ,作者是Rafael Pass和Elaine Shi,两人均是康奈尔大学计算机科学系教授。

Thunderella这篇文章没有从分片的角度进行扩容,而是提出了乐观响应的新概念,论文将绝大部分节点都诚实的情况定义为乐观情况,剩余属于悲观情况。通过在区块链上构建双层架构,建立“快速通道”层,乐观情况下可以高速处理交易,如果遇到攻击则回退到原有区块链上进行慢速安全处理,从而既实现了快速性又保留了区块链本身的鲁棒性。经过测试,Thunderella能让99%的交易达成快速交易,速度高达1000-2000TPS。理论上,Thunderella可以应用于现有的任何链,比如比特币、以太坊等。

二、Thunderella快速通道设计

Thunderella最核心的思想是在现有区块链上建立一个“快速通道”层,快速通道由两部分组成,一个是500个节点构成的委员会,另一个是作为领导者的“Accelerator”,称之为加速器

相对应的,原有的传统区块链共识层为慢速模式(Slow Mode),称之为慢速链(Slow Chain)

委员会和加速器的产生

委员会节点负责对所有新的交易进行签名处理,以防止作弊。加速器负责收集委员会签名过的交易,进行整合后打包进慢速链。委员会和加速器处理交易会获得系统发放的奖励。

任何想参加委员会的节点,都必须在慢速链上写入一个“escrow”,称之为契约,并抵押保证金,然后系统会从中随机选出500个节点作为委员会成员。选举的方法采用另一篇共识算法论文《Snow white: Robustly recongurable consensus and applications to provably secure proofs of stake.》,也是这两个人写的,地址:https://eprint.iacr.org/2016/919.pdf。本质是把委员会当成了POS共识进行处理,加速器会从委员会中产生。

安全环境的判断

系统会对当前的环境进行判断,来确定是否符合乐观情况,标准如下:

a.慢速链自身是安全的

b.加速器在线

c.加速器保持诚实

d.至少3/4的委员会在线(为了保证系统的可用性)

e.至少1/2的委员会诚实(为了保证系统的安全性)

一旦上述条件成立,那么交易就会在“快速通道”层进行处理,使得交易速度大幅度提高,接近于实时确认。

快速通道处理交易流程

a.指定一个加速器;

b.所有交易都要发送给加速器;加速器将交易打包进微区块链(Micro-block),用递增序列seg 对每个微区块进行签名,最后将已签名的微区块发送给委员会;

c.委员会所有成员通过签名,对加速器签名打包的微区块进行一个承认(ack)的操作,但同一个序号最多只承认一个微区块;

d.当一个微区块收到超过 3/4 委员会成员承认时,系统认为这个微区块链经过了公证,可以直接输出最长连续微区块序列。所有包含在微区块的交易都算作被确认的交易。

e.加速器负责把区块数据发送到慢速链上去。

通过以上流程,交易能够实现秒级确认,大大提升速度,并且安全性可以达到50%容错,只要51%的委员会诚实就可以达成共识,但出于系统可用性考虑,要求3/4的委员会成员都必须诚实并签名。

心跳机制(Heartbeats)

对慢速链上的区块长度 l,加速器就会生成当前快速通道的哈希值 h,并发送元组(l,h,seq)给委员会成员,委员会成员核查数据关系是否正确,然后进行公证,这种经过公证的元组就叫心跳标记, 加速器随后将心跳记号发送至慢速链。

同时系统设定一个安全参数为k,指区块的个数,若 l+k 区块内未出现心跳记号,系统则认为快速通道出现了问题,将回退到慢链。通过心跳机制,区块链形成一个又一个的检查点,一旦心跳记号记录成功,则说明以前的交易都是安全的,系统回退只会影响最后一个心跳记号后的交易。

三、快速通道的错误情况处理

如何检测快速通道出现问题:

用户如果发现他的交易没有在规定时间内被确认,可以随时向慢速链发出一种特殊的交易:呼唤交易(Yell Transaction),该交易包含用户想要确认的交易。按照规定,加速器必须确认慢速链上所有的呼唤交易。如果委员会成员看到慢链上的呼喊交易在足够长时间内(通常是k个区块以内,k 为安全参数)仍未得到加速器的确认,则认为加速器掉线或作弊,此时委员会成员就停止签名心跳记号,系统认为快速通道出现了问题。

冷却期(Cool-down):

在委员会发现呼唤交易没被确认,并且心跳记号在一段时间内也没有出现,所有节点都将进入冷却期。此时委员会成员停止对来自加速器的消息进行签名,但是允许节点发布经过公证,但没有包含在最近心跳记号中的交易到慢速链上,一段时间后(通常是k 个区块, k 为安全参数)系统进入慢速模式,此时运行机制同传统区块链一样。

冷却期的意义在于,让系统出问题期间的诚实交易仍然能够得到确认,使得尽可能少的回滚交易。

慢速模式(Slow mode):在冷却期结束后,整个链会安全的进入慢速模式,所有的交易处理和传统区块链没有区别。然后系统会等待足够的区块链数量后,重启快速通道。

四、Thunderella的优点和缺点

1、相对于状态通道或者链下扩展协议,比如闪电网络,Thunderella安全性高,容量大。目前状态通道的节点之间没有共识,一旦某节点宕机就会影响节点上所有的通路,可靠性差,其网络主要以小额支付为主,容量很低,比特币的闪电网络从运行到现在,其容量还不到500BTC!同时状态通道还面临越来越中心化的趋势。Thunderella相比则完全没有以上问题。

2、相对于状态通道或者链下扩展协议只支持支付,Thunderella还支持智能合约。

3、Thunderella容错性好,达到50%。Zilliqa 和Tendermint依赖的PBFT或变种,PBFT的容错只有33%,而且PBFT需要多轮投票,流量消耗非常大。

4、相对于传统的分片扩容方案,Thunderella没有降低共识的强度,安全性更好。

Thunderella的缺点也很明显,一是没有经过实践检验,二是扩容能力有上限,仅能到2000TPS。

作者简介:北京之东,公众号:bjzdblockchain。微信号:beijingzhidong。资深区块链投资者,从事技术研究工作,多家基金顾问。

转载须保留以上信息。

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。

你可能感兴趣

    error