【分析】突破不可能三角,走近全球区块链3.0
摘要: 在不牺牲去中心化和安全的前提下,进一步提升区块链系统的性能,突破区块链不可能三角,这必然需要在技术上完成重大的创新和突破才能够实现,我们把这一类项目称之为区块链3.0项目。本文主要向大家介绍了什么是区块链3.0项目,并针对各大著名区块链3.0项目做了详尽的分析。
作者:Ultrain联合创始人&CEO 郭睿
一、什么是区块链3.0项目
近年来,区块链概念越来越火热,我越来越多的被问到一个问题,为什么还没有真正的大规模的商业化区块链应用出现呢?每次我都只能很遗憾的告诉大家,虽然区块链上有完整的颠覆性的商业模式,但是,区块链公链的底层技术还不足以支持大规模的商业应用,这里面最突出的技术问题就是系统性能低下。
以以太坊为例,其全网所有运行的应用,可以使用的处理能力约20-25笔/秒,而针对一款日活千万级别的应用,其TPS峰值要求一般在2000-3000左右,所以现有的以比特币和以太坊为代表的区块链1.0和区块链2.0系统,完全无法支持大规模的商业应用。
而TPS这个限制为什么这么难以突破呢?正如同所有分布式系统在设计时都会面临的CAP问题一样,区块链系统也会面临自己的不可能三角:去中心化、安全和高性能。
- 去中心化的设计挑战,是如何保障网络的去中心性,这就要求该网络需要是一个对等网络,该网络中的机器的地位都是平等的,不存在任何特殊化的中心节点,同时为了保证该网络的去中心性,该网络需要是一个开放的无准入的网络,从而可以让人人都能够加入该网络,且该网络不会被一个或多个中心控制;
- 安全的设计挑战,是保障该网络足够安全,不能被坏人破坏。在一个开放并与经济利益挂钩的网络中,不仅会有好人购买机器加入这个网络,也会有更多的坏人企图希望通过破坏该网络获利。那么,如何在网络内部存在坏人的情况下,保证网络的安全性,这已经突破了传统意义上的安全架构,是安全设计的挑战;
- 高性能的设计挑战,则在于尽可能的保证网络的性能最优以及网络能耗最低;
以比特币为例,其设计目标在于要建立一个去中心化的货币系统,因此,首先就要求比特币是一个完全去中心化的开放网络,而为了保障整个网络的安全,比特币采用了工作了证明机制(POW),既网络中每个节点都需要通过猜Hash值进行挖矿,并参与共识以及记录全部数据的方式,从而让坏人攻击比特币网络时需要付出极高的成本。
然而,比特币虽保障了网络的安全性,同时为此牺牲的却是系统的性能。目前,比特币网络每年的运维费用高达100亿人民币,而TPS却只有7笔/秒;
BM为了解决这个问题,早在2014年就提出了自己的思路,既DPOS的共识机制。DPOS机制的核心,就是通过每个节点持有的Token数量,在一个大规模的网络中选举出一小部分参与共识的节点,由这些节点之间进行共识,达成一致并出块,而不像比特币一样全网出块。
以DPOS最新的代表EOS举例,EOS每轮选举出21个节点,每0.5秒出一个块,3分钟左右确认该块。据社区最新的EOS性能测试报告,其TPS约为3000笔/秒;但是,这种解决方案也带来了许多让人诟病的地方,其中最主要的有两方面,一方面这21个节点很难抵御大规模的DDOS攻击,黑客可以轻易通过DDOS这21个节点,瘫痪该网络;另一个方面,区块链强调的是完全去中心化和对等的网络,人人在该网络中都是平等的,不存在特殊化,而EOS的设计偏离了这种理念,让21个节点成为了特殊化节点,很难避免包括腐败、串谋和被21个节点中心化控制的问题,所以业内更多将EOS看做是一个“半中心化”的网络。在区块链不可能三角中,EOS偏向了效率,牺牲了一部分去中心化和安全。
能够更好的在不牺牲去中心化和安全的前提下,进一步提升区块链系统的性能,突破区块链不可能三角,这必然需要在技术上完成重大的创新和突破才能够实现,我们把这一类项目称之为区块链3.0项目,近年,特别是2018年以来,全球多支团队都在做出自己的努力,其中最突出的就是Dfinity,Oasis,Thunderlla,Algorand,zillaqa,Ultrain这几个项目,我们下面逐一对其原理和特点进行分析。
二、著名区块链3.0项目分析
Dfinity:基于门限签名技术的共识新思路
Dfinity是2016年在硅谷启动的项目,其创始人Dominic是以太坊早期密码学协会的核心成员之一;Dfinity做出的最突出性的贡献就是将密码学中的门限签名技术引入到共识算法中。
Dfinity的共识思路是这样的,首先将全网节点随机分为N组,每轮共识开始时,随机挑选出块节点和见证人节点,出块节点完成出块后,由见证人节点见证选择哪个块做为最终块上链,同时,在出块的过程中也会随机的确定下一个负责出块的出块节点,从而完成共识的继续向下执行。
但是,由于没有POW的算力消耗做为安全保障,为了提升系统的安全性,Dfinity的出块节点和见证人节点并非单一节点,而是节点组。比如其每轮的出块节点就是由400台机器构成的节点组执行出块。而其采用的门限签名技术,保证了一个数据块,被该组中任意超过51%的机器(既超过201台机器)签名后,就可以生成可被外界验证的数据块,同时可以生成用于选择下一轮节点的随机数,通过这种方式,大大的提升了攻击难度,从攻击一个节点,变为了攻击一组节点,提升了系统安全。
在密码学领域,VRF(可验证的随机函数,verifiable random functions)是一大类别,门限签名函数是另一大类别,而Dfinity在技术上的最大特点,就是找到了一个同时满足VRF和门限签名特点的函数,保证了其算法可实现。基于该共识,Dfinity对外宣称的是其TPS已达到数百笔/秒左右,每个块的确认时间为7.5秒。
Dfinity的共识机制确实非常巧妙,但还存在一点小瑕疵,由于门限签名中的”组”的建立过程非常复杂,所以每一个组建立后,需要保持很长一段时间,这时就存在一个潜在的经济学博弈问题,即该组的群签名可以通过多个成员的合谋的方法来预测,而这个合谋的成本很低,群成员可以知道自己是属于哪几个群,通过互联网等多种手段可以很快找到与其是同一个群的成员进行合谋,合谋的成员可以协同计算出群私钥,快速预测出下一轮的随机数,从而破坏网络的公平性。因为这种攻击是非常难被发现的,可以做到零攻击成本。该问题我们已经提交给Dfinity团队,目前还未得到答复。
在进度方面,Dfinity现在已经在公司内部网搭建了一个运行网络,录制并公布了该网络的运行视频。
Algorand:基于随机算法的高TPS共识
Algorand是图灵奖得主、MIT教授Sivio Micali于2017年5月发布的区块链共识协议,其主要思想是结合随机和BFT算法,在完全去中心化的网络上实现高TPS。
Algorand的共识过程如下:
1.第一步,角色确认阶段:对一个大规模网络,每个共识轮次开始时,每个节点先采用VRF(可验证的随机函数,verifiable random functions)生成一个凭证,用该凭证随机选出本轮参与共识的节点,被称为"投票者",而其中凭证值最小的被选为“提议者”
2.第二步,分级共识阶段:提议者负责组装本轮的候选区块,然后由投票者对本轮的领导者达成共识,也同时确认本轮收到的候选区块;
3.第三步,二元拜占庭阶段:验证者对候选区块投票,即要么接受该候选区块(认为该区块没有问题),要么不接受该候选区块(认为该区块有错误,比如双花,不接受该区块,替换为空区块)
4.最后,广播本轮确定的区块到全网;
Algorand通过每轮随机选择共识节点的方式,在保障网络安全的基础上,有效提升了系统的TPS,根据其论文给出的数据,可以共识的交易是750M字节每小时,按照比特币每笔交易长度250字节计算:75010241024/60/60/250=873.8 TPS;
以上介绍了Algorand算法的主要内容,该算法总结下来,还存在一定的提升空间:
1.Algorand现在的主要功能就是转账交易,其功能可以对标为比特币,而做为区块链2.0中最重要的智能合约方面的改进,algorand在论文中并没有讨论如何支持智能合约到Algorand的网络;
2.Algorand网络的前提是,诚实“投票者”数量占比在2/3以上,但并没有讨论如何保障这一点;
3.Algorand的算法在每个阶段的每个子步骤,都要求完全随机选点,坦率的说,该工程复杂度还是非常高的;
Algorand在论文发布后,已组织团队快速推动项目的研发,社区正在等待Algorand的工程落地的发布;
Thunderlla:POW和POS结合
Thunderlla的核心创始人是康奈尔大学计算机系教授Elaine Shi。其提出了这样一种新的算法。
当网络中加速器(Accelerator)节点和3/4的委员会(committee)节点为诚实节点,并且网络状况比较好的时候,Thunderella可以实现快速异步处理,在<1秒之内做出确认,对交易几乎是瞬间相应。而当网络出现异常时(比如出现了拜占庭将军问题),启动冷却(cool-down)机制,切换到传统区块链共识(慢速链),保证网络的安全和可持续性,并在网络恢复时自动切换回快速模式。
由此,可以实现绝大多数时间与情况下,网络超过目前区块链1000倍的处理速度,以及遇到问题时依旧可以通过慢速链抵御49%的恶意节点,这里的慢速链,既可以是比特币,也可以是以太坊,或是其他的区块链一言以蔽之,即友好环境下瞬间响应,恶意环境下安全可靠。
这种算法可以看成是POS与POW的混合体,希望能够同时具备POW和POS算法的优势,不过这里有几个关键问题,比如如何保证3/4的委员会成员节点是诚实的,以及如何激励和剔除恶意委员会成员,没有明确提到;并且重启模式依然不太明确,比如如何选择下个加速器等。
从进度上说,Thunderlla在公布论文后,还没有进一步的项目进展公布。
Oasis Lab的Ekiden:基于可信环境的性能提升
该项目是2018年启动的项目,其创始人Dawn Song是加州大学伯克利分校计算机科学副教授。Ekiden的主要思想是将共识层和计算层做了分离;在计算层用符合TEE(可信执行环境,比如Intel的SGX)的硬件组成,智能合约的计算放到 TEE里面去执行,而共识层采用POW或POS,只验证和共识 TEE 计算结果。这种方法有两个特点:1)计算节点和共识节点分开,计算节点里面可以执行任意复杂的逻辑,通过少量的可信计算节点来相互印证计算结果,所以执行效率很高,基本上等效于单机执行效率,然后还能并行多机执行不同的合约;2)隐私保护,链上只存储加密后的数据状态(甚至是加密后的合约代码),解密只在TEE里面完成,然后计算结果从TEE出来后又是加密的回到链上。
从Ekiden的整体设计来说,其安全性完全依赖于TEE可信执行环境,虽然巧妙的解决了安全性的问题,但实际也会存在安全隐患,比如2017年3月,奥地利格拉茨技术大学的研究人员破解SGX的防护,因此,完全依赖单一硬件的安全性是否可靠尚待时间的检验;同时,TEE的原理是私钥保存在芯片生产商处,比如SGX就是私钥由Intel负责,所以芯片生产商就成为了一个中心化的节点,并没有实现区块链完全去中心化的理念。
从进展上说,Ekiden的进展还是较快的,其网站上已经可以让用户提交自己机器的配置进行测试网络的申请,但是目前还没有相关该测试网络的性能方面的数据放出来;
zilliqa:基于分片技术实现高TPS
Zilliqa是第一个上线具有分片技术测试网的公链项目,其功能现在比较简单,就是转账交易。其核心思想是通过分片的方式,大幅提升TPS。分片的核心思想就好比,传统的区块链是一条主链,可以将其看成一个单核的CPU,只能串行的进行数据处理;如果该主链是由多条子链构成的,可以将其看成一个多核的CPU处理器,那性能就可以实现倍数级别的提升。
但该算法仍存在以下几点不足:
1.zilliqa数据处理分片,数据存储不分片;相当于在数据的计算上提升了性能,但在数据的存储/同步/共享等方面会带来效率问题,将极大的制约其性能的提升空间;同时对上层的智能合约的实现会极度的不友好,这种方式更适合特定的应用场景,比如科学计算等,却非常不利于开发者使用
2.跨分片没有成型,对全局的数据和状态怎么管理没有很详细的描述:所有的分片的实现,最核心的需要解决的问题就是出现跨分片时如何处理,而zilliqa对这块还没有解决方案;
目前,zilliqa已经上线了测试网络,同时其透露出的内部网络的测试数据,是在3600台机器上,在6分片的情况下,可以实现TPS 2000笔/秒;
三、新一代的区块链3.0项目 Ultrain
以上我们介绍了近期较著名的一些区块链3.0项目,为了突破区块链不可能三角,Ultrain也做出了自己的贡献,提出了全新的R-POS共识。
我们做一个通俗化的比喻,类似EOS采用的DPOS共识机制,就是有一群人通过持有的代币数量多少,投票选出做决定的固定数量的一小组人,由这一小组人轮流做决定;而R-POS机制,就是在一群人中,先随机选出几个人同时做出各自的提案,然后再随机选出10倍的人,判断之前的提案是否正确,最终由这些人将正确的提案整合到一起,形成最终的决定。
所以,R-POS的核心思想,就是在DPOS的基础上,将每轮参与共识节点的选择方式,从委托选举变为随机选举,保证每轮全网节点都有几率被选举成为少数参与本轮共识的节点,从而既保障了网络的去中心化,又可以极大的提升性能,同时,Ultrain通过引入并行技术、分片技术、设备指纹技术以及多个密码学的改进,保证了R-POS在安全性和性能方面的进一步提升。
基于以上的设计思想,Ultrain在18年7月初已经发布了R-POS的概念网络,在公开的亚马逊云的1000个节点上部署了Ultrain系统,经过实际测试,该网络可以达到平均3000TPS,确认时间为10秒,其性能远远超过现有的区块链3.0项目,另外,预计明年4月份公网上线后,会同步部署分片技术,届时网络的TPS还可以有几十倍以上的提升。
区块链3.0项目的落地,是区块链赋能实体经济的必由之路,希望全球的各支公链团队都能快速发展,尽快解决现有区块链公链无法支持大规模商业应用的核心问题,让区块链技术帮助实体经济建立全新的商业模式,推动社会生产力的大幅提升。
评论(0)
Oh! no
您是否确认要删除该条评论吗?