高性能公链Harmony助力去中心化经济

  目前而言,虽然走入现实技术和应用的区块链正慢慢被普罗大众接受,但离其广泛应用显然还有相当一段长的路要走,这其中,最大的一个障碍就是区块链本身的响应速度问题。

  越来越多的商家开始接触、了解并接受用比特币和以太坊等虚拟货币支付进行交易的概念,但如果真要将虚拟货币当成一种正规且通用的支付手段,并占据跨境交易市场,它的性能和相应的技术基础就需要达到VisaMastercard等这些人们早已习惯的传统支付方式正面竞争的水平。

  从现有的事实看,区块链还太落后了。

  目前区块链的性能还无法满足这一要求,比特币每秒只能处理不到10笔交易,以太坊哪怕在最高峰时每秒也只能处理不到40笔交易,相比之下,Visa每秒处理的交易可达2000~5000笔,差距显而易见。

  

  目前多个区块链项目已经在尝试用不同手段解决区块链的性能问题。以太坊提出了自己的扩容方案——以太坊2.0,但目前开发进度非常缓慢,扩容升级遥遥无期。

  在区块链领域,为了提升性能,通常需要牺牲其安全性或去中心化程度,这就是大家常说并被广为接受的区块链“不可能三角”理论。

  分片技术作为最新的扩容方案,是唯一一个突破不可能三角的方向。区块链的分片简单来讲,就是分而治之,将整个区块链账本横向切分为更小的账本。

  其实,传统的中心化信息系统早已经开始使用分片技术,但直到近期,这一技术才开始被区块链世界所重视。

  

  Zilliqa可能是大家第一个想到的区块链分片项目。

  被称作“高性能公链”的Zilliqa在测试网中实现了2828笔比交易每秒(TPS)的速度。需要注意的是,在分片系统中,TPS交易速度(TPS)会随节点数量的增加而增加,Zilliqa的这个TPS数值是在3600个节点中获得的。

  在过去的一段时间里,除了Zilliqa还有一些新项目也在利用分片技术开发高性能区块链。

  其中最令人期待的项目之一便是在过去一年里潜心开发的公链Harmony

  作为下一代的开放式高性能公链,Harmony的愿景是无缝链接数十亿人的经济运转。为了达到这个目标,Harmony在区块链协议层、网络层和系统层都做了大量创新。

  

  是什么让Harmony团队在众多公链项目中脱颖而出?让我们来深度剖析一下HarmonyZilliqa等项目到底有何不同。

  

 

  

   State Sharding状态分片技术

  

  尽管都是打着分片技术的期号,但HarmonyZilliqa的分片技术显然有所差异。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有节能高效的特点,在这点上,基于PoSHarmony要比基于PoWZilliqa具有更多优势。抵押代币越多的节点,被选为领导者的几率越大,但恰恰因为抵押代币越多,他们不会轻易作恶,因为一旦被网络检查到,他们的抵押代币会被全部没收。

  

  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)的最新技术,可以大大提高分布式随机数协议的安全性。

  

 

基于VRFVDF的安全随机数生成协议

  

  正因为看到以上几种路径的缺点,Harmony的分布式随机数产生协议巧妙地结合了 VRF(可验证随机函数)+VDF(可验证延迟函数)的密码学特性。

  在这协议里,所有验证者分别利用VRF计算自己的随机数,并发给领导者。领导者收集一定数量的VRF随机数结果,将他们合并之后,把结果进行VDF计算,最后产生的结果作为最终的随机数。这样的过程保证了恶意节点无法提前预测或干扰随机数的结果,并且整个过程复杂度为O(n),可以在短时间内完成最终随机数的生成。

  

  Kademlia Cross-shard Communication/基于Kademlia路由协议的跨片通信

  

  对基于分片的区块链系统来说,尤为重要的一点在于如何处理跨片交易。Zilliqa依赖于它的主链来进行跨片间的交易处理。Omniledger的跨片交易需要靠用户片间传递消息。RapidChain依靠片内节点的互相通信来实现跨片交易。Harmony采用了类似于RapidChain的设计,利用片内节点自行相互通信,但不止如此,Harmony引入了Kademlia路由协议,这让本来为O(n)的通信复杂度降低为O(log(n)),大大减小跨片交易的网络开销。

  

  Kademlia路由协议中,每个节点维护一个记录到其他分片距离的路由表。这个距离是根据分片ID的不同计算得到的。当一个分片内的节点需要发消息给另一个分片,他不会盲目地广播这个消息给全网,而是根据路由表发给离目的地距离最短的分片的节点。有了这个高效的路由协议,消息只会经过O(log(n))的分片就能抵达目标分片,而无需涉及所有O(n)的分片。

  

  Beacon Chain/信标链

  

  Harmony的分片架构包含一条信标链和多条分片链,每分片链分别存储一部分账本信息。

  信标链本质上也是一个分片,但其具有两个特殊功能:1.运行分布式随机数协议;2.接受节点的抵押代币。

  此外,信标链对提升整个系统的安全性也起到至关重要的作用。

  在每分片的新区块被确认后,通过Kademlia路由协议新区块的区块头被发送信标链。信标链验证这个区块头的合法性之后,会把它添加到自己的链内,并广播给全网。这样,每个分片都可以轻松维护其他分片的区块头序列,方便对其他分片的信息做Merkle验证。

  

  有了信标链的保护,攻击者必须同时攻陷分片链和信标链才有可能进行双花攻击。不止如此,由于信标链在分片链区块头的广播中起到了中枢的作用,所导致的网络开销仅为O(n)的量级。设想一下如果没有信标链的帮助,每个分片都需要分别广播它的区块头,那么总体网络开销将是O(n*n),这有可能造成网络阻塞,而通过信标链Harmony巧妙地避免了这个问题。

  

 

信标链与分片链双层结构

  

  Parting Thoughts/总结

  

  可以看出,Harmony愿景远大一个远大宏大的愿景是成功改变世界的起点开始。

  在测试网中,Harmony利用44,000个节点跑出了惊人的118,000TPS的数据。诚然,好的技术也需要有好的落地场景和市场来检验,Harmony团队在市场开发这方面也不逊色,相信他们会在不久的将来开拓出自己的市场。

  除此之外更重要的是,Harmony是一个关注社群建设的项目,他们的开发者一直在TelegramDiscord上积极回答社群问题,并听取建议。

  最后声明,这篇文章的撰写主要基于Harmony的白皮书里的内容,强烈推荐读者亲自看看他们的白皮书,可以学到很多分片技术的要点。

  

  Harmony官网: https://harmony.one/

  电报: https://t.me/harmony_one

  白皮书: https://harmony.one/whitepaper


  • 为了您能更及时的获取到最新热门资讯
    请关注75区块链微信公众号:qu75_com
友情链接:
  • 75资讯(订阅号)
  • 商务合作(微信)

官方QQ群:736433069

商务邮箱

Market@qu75.com

技术邮箱

PM@qu75.com

商务微信号(区长)
qu75qu

官方微信群:第4群