Harmony与Zilliqa等项目到底有何不同
扫描二维码
随时随地手机看文章
目前而言,虽然走入现实技术和应用的区块链正慢慢被普罗大众接受,但离其广泛应用显然还有相当一段长的路要走,这其中,最大的一个障碍就是区块链本身的响应速度问题。越来越多的商家开始接触、了解并接受用比特币和以太坊等虚拟货币支付进行交易的概念,但如果真要将虚拟货币当成一种正规且通用的支付手段,并占据跨境交易市场,它的性能和相应的技术基础就需要达到Visa和Mastercard等这些人们早已习惯的传统支付方式正面竞争的水平。
从现有的事实看,区块链还太落后了。目前区块链的性能还无法满足这一要求,比特币每秒只能处理不到10笔交易,以太坊哪怕在最高峰时每秒也只能处理不到40笔交易,相比之下,Visa每秒处理的交易可达2000~5000笔,差距显而易见。
目前多个区块链项目已经在尝试用不同手段解决区块链的性能问题。以太坊提出了自己的扩容方案——以太坊2.0,但目前开发进度非常缓慢,扩容升级遥遥无期。在区块链领域,为了提升性能,通常需要牺牲其安全性或去中心化程度,这就是大家常说并被广为接受的区块链“不可能三角”理论。分片技术作为最新的扩容方案,是唯一一个突破不可能三角的方向。区块链的分片简单来讲,就是分而治之,将整个区块链账本横向切分为更小的账本。其实,传统的中心化信息系统早已经开始使用分片技术,但直到近期,这一技术才开始被区块链世界所重视。
Zilliqa可能是大家第一个想到的区块链分片项目。被称作“高性能公链”的Zilliqa在测试网中实现了2828笔比交易每秒(TPS)的速度。需要注意的是,在分片系统中,TPS交易速度(TPS)会随节点数量的增加而增加,Zilliqa的这个TPS数值是在3600个节点中获得的。在过去的一段时间里,除了Zilliqa还有一些新项目也在利用分片技术开发高性能区块链。其中最令人期待的项目之一便是在过去一年里潜心开发的公链Harmony。作为下一代的开放式高性能公链,Harmony的愿景是无缝链接数十亿人的经济运转。为了达到这个目标,Harmony在区块链协议层、网络层和系统层都做了大量创新。
是什么让Harmony团队在众多公链项目中脱颖而出?让我们来深度剖析一下Harmony与Zilliqa等项目到底有何不同。
State Sharding状态分片技术
尽管都是打着分片技术的期号,但Harmony和Zilliqa的分片技术显然有所差异。Zilliqa仅对网络和交易进行了分片,而Harmony则在这一基础上,进一步对区块链状态进行了分片处理。简而言之,Zilliqa是将网络节点分到不同的分片,每个分片包含几百个节点(即网络分片),这使得不同的交易可以被各分片同时处理(即交易分片)。然而,为了能够处理跨片交易,每个分片的每个节点都需要存储区块链的整个账本数据,这使得某些性能差的节点无法参加到网络中,进而减弱去中心化。
相比之下,Harmony对区块链的账本数据也做了进行了分片处理(即状态分片),团队将这种在分片技术中各方面突破的总和方案命名为“深度分片”。深度分片,是包括对网络、交易和状态的多层分片,同时在网络层的数据传输协议中,利用纠删码技术对区块数据进行分片,使广播者的网络压力很小,再加上引入Kademlia路由协议,让区块数据能通过最短路径传输到目的地,在此基础上,还可以允许小节点的加入,最大限度地保证了去中心化程度。
PBFT Consensus Mechanism/PBFT共识机制
Zilliqa的共识机制被称为PBFT(实用拜占庭容错)协议。在这一协议里,一个节点被选为“领导者”,其余节点作为“验证者”。每一次共识过程包括两个阶段:prepare(准备)和commit(确认)。在每个阶段,领导者向所有验证者广播一个提议,所有验证者收到提议后,再反过来将自己的投票意见广播给其他人,最后每个验证者都要计算所有收到的其他投票。这个过程导致总消息复杂度为O(n*n),这里n是总节点数。通过简单的计算可知,这种算法在几百个节点的网络中并不实用。
Harmony 在 PBFT 算法的基础上进行了大量改良,创造出FBFT算法(快速拜占庭算法)。在这个新的算法中,验证者不用广播他们的投票,只需通过数字签名的方式把投票发给领导者即可,领导者把收到的数字签名合成为一个数据量位O(1)的多重签名,再广播出去,这使得整个共识过程的消息复杂度从O(n*n)骤降到O(n)。
此外,验证者的选取是通过PoS抵押代币的机制完成的,想要成为验证者的节点需要抵押一定数量的代币才有权参与共识。PoS相比于PoW有节能高效的特点,在这点上,基于PoS的Harmony要比基于PoW的Zilliqa具有更多优势。抵押代币越多的节点,被选为领导者的几率越大,但恰恰因为抵押代币越多,他们才不会轻易作恶,因为一旦被网络检查到,他们的抵押代币将会被全部没收。
Distributed Randomness Generation/分布式随机数生成
分片区块链系统通常需要一个随机的节点分配过程,目的是避免单一分片受到攻击。这就需要生成一个随机数来实现随机的分片过程。随机数本身需要具有完全不可预测,不可干扰的特性,这样恶意节点就无法知道它将被分配到哪个分片。此外,这个随机数的产生过程还需要快速并且可验证。
在这个问题上,我们先看看Harmony白皮书里提到的其他几个分片项目方案的做法。项目Omniledger采用的分布式随机数产生协议叫RandHound,协议中会把所有参与的节点划分成若干组,我们以c代表组数。这个协议的弱点在于它的复杂度为O(n*c*c),对于节点众多的区块链系统来说,如此高的复杂度会使协议速度极慢。RapidChain作为比Omniledger更新的分片项目设计,采用了基于Verifiable Secret Sharing(VSS)的分布式随机数产生协议。虽然这个协议比RandHound快很多,但它并不安全,容易受到攻击者的干扰和阻碍。大家熟知的项目Algorand用到了Verifiable Random FuncTIon(VRF)作为随机数,虽然它是基于密码学里重要的技术,但它不是分布式的协议,任何单一节点都可以独自完成随机数过程。最后以太坊2.0采用了Verifiable Delay FuncTIon(VDF)的最新技术,可以大大提高分布式随机数协议的安全性。
有了信标链的保护,攻击者必须同时攻陷分片链和信标链才有可能进行双花攻击。不止如此,由于信标链在分片链区块头的广播中起到了中枢的作用,所导致的网络开销仅为O(n)的量级。设想一下,如果没有信标链的帮助,每个分片都需要分别广播它的区块头,那么总体网络开销将是O(n*n),这极有可能造成网络阻塞,而通过信标链,Harmony则巧妙地避免了这个问题。
ParTIng Thoughts/总结
可以看出,Harmony愿景远大,而一个远大宏大的愿景是成功改变世界的起点开始。在测试网中,Harmony利用44,000个节点跑出了惊人的118,000TPS的数据。诚然,好的技术也需要有好的落地场景和市场来检验,Harmony团队在市场开发这方面也毫不逊色,相信他们会在不久的将来开拓出自己的市场。除此之外更重要的是,Harmony是一个关注社群建设的项目,他们的开发者一直在Telegram和Discord上积极回答社群问题,并听取建议。