图片来源图虫:已授站长之家使用
声明:本文来自于微信公众号蓝狐笔记(ID:lanhubiji ),授权站长之家转载发布。
区块链的性能问题直接影响到它走向主流人群的步伐。比特币tps大约为 7 个左右,这让它目前很难达成当初的点对点支付系统的目标。以太坊tps大约为 15 个左右,也无法成为运行DApp的“世界计算机”。这导致比特币和以太坊都越来越走向性能要求没那么高的价值存储和去中心化金融方向。
如果区块链要达成去中心化网络的目标,构建一个去中介化的应用生态,也就是实现web3. 0 的愿景,其中一个无法逃避的最重要的问题是在兼顾其安全和去中心化的情况下,达到一定规模的性能,能够实现核心行为链上运行。
Harmony的坚守与改进
为了实现区块链性能上的突破,各种不同项目绞尽脑汁,从各个层面和维度进行改进。从共识机制、分片、layer2、子链、跨链等角度进行扩展。共识机制从PoW转为PoS,有的项目,甚至为了实现更高的性能,选择部分牺牲去中心化的程度,比如DPoS机制;也有从不同的数据结构上着手,例如DAG、Holochain等。总之,就是各显神通,从大的视野看,这些实践,对于区块链发展都是前行的探索,能给整个行业带来实践启示和可能进展。
目前看,为了兼顾安全和去中心化,分片是其中最重要的突破方向之一。分片就像高速公路的收费站,原来只有一个收费通道,都得排队,吞吐量小。如果开放了更多的收费通道,其处理能力也会随之线性增长。分片对于公链的性能提升是显而易见的。
当然分片也是技术要求很高的解决方案,这里有一些难点需要处理。比如分片安全、跨分片交易、网络通信等。有些项目在分片过程中因为其依赖PoW作为随机生成的机制容易受到单分片接管攻击,有的分片项目不划分区块链数据存储,可能会影响部分机器参与网络,影响去中心化的程度。
那么,Harmony怎么看待这个问题?它如何来解决区块链的性能问题?
Harmony的目标是打造一个基于分片的区块链,具备完全扩展性、安全性。它研究了市面上很多的区块链解决方案,提出了自己的工程落地方案。这也是Harmony值得大家关注的地方。
这个是很高的目标,首先具备完全的可扩展性,Harmony的分片不仅包括交易确认、网络通信,也包括区块链状态的分片。其次要保证分片的安全性。Harmony的分片基于DRG(分布式随机生成)过程,这让它具有无法被预测、公平、可验证和可扩展的特性。此外,Harmony采用了PoS机制,而不是PoW机制来选择验证者,它对PBFT共识机制有自己的优化。PoS有一定的门槛,既要保证小的权益质押者能够参与网络和赚取收益,也要防止恶意攻击者在单个分片获得掌控权。Harmony通过采用自适应信息扩散算法(Adaptive Information Dispersal Algorithm)实现分片内和跨分片网络的信息传播。Harmony还采用Kademlia路由实现跨分片交易随着分片数量增加呈对数级扩展。有了分片,还必须保持跨分片交易的一致性,Harmony也支持跨分片交易,支持分片之间的直接通信,通过原子锁定机制确保跨分片交易的一致性。
总言之,Harmony通过对协议层和网络层的优化,试图提供一个可扩展的,同时也是安全和去中心化的区块链,能够支持更多主流的去中心化应用场景,包括游戏、去中心化交易所、IoT等。这是一个目标远大的愿景。
具体来说,Harmony在哪些特色值得关注?Harmony从安全和可扩展性上都有哪些落地的考量?
可扩展的FBFT共识机制
Harmony没有采用PoW,而是采用PoS机制,用户通过质押代币获得生产区块的权利及奖励。同时,Harmony在区块的生产和验证过程中,采用FBPT的机制。在说明什么是FBFT之前,我们知道PBFT是实用拜占庭容错。由于PBFT有一个验证者需要把其投票广播给其他验证人的机制,这使得PBFT在通信复杂度上极大增加,导致系统如果节点达到几百上千个时,区块链很难扩展。
针对PBFT难以扩展的问题,FBFT进行了优化,FBFT在通信复杂度方面可以实现线性扩展。具体来说,怎么实现?FBFT机制中,它也有领导者和验证者的角色,并不要求所有验证者广播他们的投票,领导者运行一个多重签名的签名过程来收集验证者的投票,这个多签的大小是O(1),然后广播投票。这意味每个验证者只需接收一个多重签名,将通信的复杂度从O(n^2)减少到O(n)。
Schnorr签名机制可以实现恒定大小的多重签名聚合,并在验证者之间形成多播树以方便消息传递,但是schnorr多重签名要求秘密承诺轮次,会导致单个多重签名两次往返的问题,FBFT则采用了BLS(Boneh-Lynn- Shacham)多签方案来优化这个问题,实现只要求一次往返,由此,FBFT比普通采用Schonorr签名机制的BFT要快50%。最后,Harmony还采用RaptorQ喷泉码来加速区块广播过程。
Harmony的FBFT运行图
需要注意的一点是,所有Harmony的共识验证者都是基于PoS机制选出来的。有更多投票份额的验证者比其他人有更多的选票,而不是一次签名一票。这也意味者,领导者等待的不是2f+ 1 的验证者签名,而是2f+ 1 的验证者的投票权份额。
融合VRF和VDF的随机算法
对于区块链来说,要快速要扩展,比如上述的FBFT能够实现更快速的交易确认,但安全永远是最重要的。在验证区块的过程中,保持随机性是安全的重中之重。
好的随机算法必须同时保证不可预测、可验证、一视同仁、以及可扩展。有的协议可以实现不可预测、一视同仁和可验证,但扩展性上较弱,例如RandHound协议。它们有各自的有点和缺点。
Harmony提出一种随机生成的算法,它融合了VRF和VDF两种技术。VRF是可验证随机函数(Verifiable Random Function),VDF是可验证延迟函数(Verifiable Delay Function)。Algorand利用基于VRF(可验证随机函数)的加密分类来选择共识验证组;以太坊2. 0 提出VDF(可验证延迟函数)用于延迟实际随机数的揭示,防止最后揭示者的攻击。
由于有VDF,领导者在 pRnd提交到区块链之前,无法知道实际的最终随机数。由于使用VDF来计算Rnd,pRnd已经在前一个区块中提交,所以领导者就无法操纵它。如果领导者不提交pRnd 停止协议,FBFT有一个超时机制可以切换领导者并重新启动协议。此外,Harmony所采用的DRG协议,其协议的复杂度是O(n) , 比有些项目在速度上至少快一个数量级。
VDF延迟了最终随机性的揭示
基于PoS的分片
不管是PoW还是PoS都要预防女巫攻击。PoW链通过算力来进行身份证明,并由此获得生产区块的权利。而Harmony采用的是PoS机制,PoS使用验证者权益代币质押来进行证明。要想成为Harmony的验证者,必须首先质押一定的代币。所质押的代币越多,所能获得的验证者投票份额也就越多。每个投票份额对应BFT共识的一票。
权益质押者获得跟其所质押的代币成正比的投票份额。该投票份额会随机分配到分片。成为分片验证者的权益质押人在分片中获得相应的投票权。
Harmony的共识和分片过程中,有一个周期(Epochs)的概念。周期是预定的时间间隔,在这个期间内,分片结构是固定的,每个分片持续地与同一组验证者运行共识。
每个周期的开始,会由DRG协议产生随机数,基于随机数来确定分片结构。验证者如果想要验证某个时期内的交易,必须在前一时期质押其代币。权益质押的截止时间是在随机数原像 pRnd被提交到区块链之前。
在每个新的验证周期开始,新验证者的投票份额都会随机分给分片。新验证者加入分片,其中的投票份额会得到分配。分片的共识达成至少需要有2f+ 1 的投票份额的区块签名。
为了保证单个分片的安全,Harmony采用了自适应阀值PoS,它会以自适应的方式来通过算法调整投票份额的价格,并把个体投票份额分配给分片,而不是单个验证者。
为了预防大规模质押代币攻击,Harmony不是通过验证者进行分片,而是通过投票份额进行分片,防止大量持币验证者攻占单一分片。如果单个验证者拥有分配到不同分片的投票份额,则它可以被分配到多个分片。分片的领导者被确定为在某组中拥有第一个投票份额的验证者。
同时投票份额较小,以至于恶意攻击者无法在单个分片中聚集力量。Harmony经过测算认为,一旦超过 600 个投票份额,可以保证分片的高安全性。
从经济利益来考量,拥有更多质押代币的验证者有更多机会被选为领导者。如果发生恶意行为,质押了代币的验证者担心其利益会被消减,也由此会保证网络的安全。
除了以上的机制之外,Harmony还采用一种重新洗牌的分片方案来提高其安全性。因为如果分片保持结构固定,恶意攻击者仍有机会实施攻击。比如实施静态循环攻击、慢适应攻击或完全适应攻击等。Harmony采用基于Cuckoo规则的重新分片机制来解决这些问题。在一个验证周期结束,其中撤回质押的验证者会被逐出该网络,保留质押的人会留下来。