Harmony希望用区块链以更安全和去中心化的方式去取代现有经济体系
扫描二维码
随时随地手机看文章
如今,区块链革命正与诞生于20世纪90年代的互联网展开较量。Harmony公司的工程师们投入了数千个小时在区块链研究和开发上,终极目标就是以更安全和去中心化的方式取代现有经济体系。
然而,尽管区块链技术拥有着堪称巨大的潜力,但比特币、以太坊和其他大多数传统的分布式区块链网络仍受到扩容这一根本问题的困扰。
区块链扩容问题决定这一崭新的技术世界能否真正变成现实,但可扩容本身又的确存在着难以突破的技术瓶颈,这一瓶颈包括技术自身的局限性,区块大小,响应时间以及费用等等。
比特币的扩容问题与它本身技术的局限性有关。当处理一个新交易时,每个节点都会在账本记下相应信息。如此一来,随着支付历史信息的增多,区块链体积也随之增加,导致小节点无法正常运行。
另一扩容问题则是区块的体积。最初,比特币区块链中每个区块的容量为1Mb,每个区块大约能存储2020笔交易信息。随着比特币热度的增加,近年来比特币的交易数也成倍增加,导致比特币网络需要10分钟才能确认一个区块,为了验证一笔未确认交易,通常需要等待很久。
另外,由于挖矿所需算力的日益增长,交易费用自然也水涨船高。
目前,许多新的区块链项目正试图提高交易处理速度(吞吐量),但像EOS和TRON中的dPoS,Quarkchain中的Rootchain等新解决方案都必须牺牲部分关键要素,譬如去中心化和安全性,才能显著提升性能。
这样的系统尽管运行过程十分迅速,但只能算是半中心化的系统,丧失了区块链的核心理念——去中心化。
分片作为区块链扩容的解决方案,可显著提升网络性能且不损失安全性和去中心化。
Harmony通过在区块链中引入状态分片来解决区块链扩容问题——由于每个节点只需运行和存储一部分区块链数据就可以完成交易,交易处理工作量被分摊,由此大大提高了区块本身的可扩展性。
什么是状态分片?假设有三个节点A、B、C和一个有待验证的数据T,相比A、B、C每个节点都需要存储和验证整份数据T,状态分片则将数据T分为三个部分:T1,T2和T3。之后,A,B和C将分别存储和验证一个部分。不难想象,这样的网络运行效率会成倍增长。
一个更简单的解释是——如果将美国划分为不同的州, 虽然每个州(也就是分片)是美国(Harmony网络)的一部分,但它们都有自己的特定法律,边界和人口子集,只是通用一种语言和文化,是整个国家的一部分。
举以太坊为例,以太坊网络中的所有节点存储着区块链的所有状态,包括账户余额,数据和智能合约代码。然而随着网络规模不断增加,gas费用越来越高,交易确认时间也越来越长,导致以太坊的实用价值大打折扣。
以太坊的性能上限是一台计算机的处理速度
以太坊的性能无法随着节点数量的增加而增加,相反,甚至还略有降低。分片则提供了突破这一技术瓶颈的捷径:将子节点组成分片,每个分片分别处理不同交易,这样系统就能同时处理许多交易,吞吐量自然显著提高。
Zilliqa采用了网络分片的方案,这一方案允许将网络划分为更小的节点群,每个节点群都可称之为分片。简单来说,假设一个有1000个节点的网络,将网络划分为10个分片,每个分片由100个节点组成,如果每个分片每秒能处理10笔交易,那么所有分片加在一起可以每秒处理100笔交易。
但在Zilliqa中,每个节点必须保存整个区块链的状态才能成功处理交易,当区块链体积逐渐增大,要保存完整的账本会变得越来越困难,对节点设备的要求会快速提高,交易成本也随之增加。
因此,Harmony使用的状态分片无疑提供了一个更好的选择——每个分片保存一部分区块状态。
Harmony如何避免1%攻击:
虽然分片技术显著地减少了交易完成时间,提高了交易处理量,但现阶段,分片技术落地的最大障碍仍然是其潜在的安全问题,即“1%攻击”。
在采用PoW的区块链中,例如比特币,当攻击者拥有网络的大部分哈希算力时,“51%攻击”就有可能发生。一旦发生,攻击者就可以“双花”、索取所有奖励,阻止交易等。
只是,想要拥有整个网络的51%或者更多的哈希算力就需要大量的电力和设备。目前,在比特币网络上实施51%攻击的成本是80亿美元,每天电费则是1280万美元。
假设一个区块链网络被分成一百份,也就是一百个分片,每个分片拥有1%的哈希算力。那么,本质上攻击者只需要将他的哈希算力集中在某一单个分片上,就可以实现对该分片的控制,这无疑会影响到整体网络的安全性。而同样的问题也适用于PoS系统。
防止此类攻击发生的一种有效方式是阻止攻击者将他们的哈希算力或代币权益集中在某一片分片上。
通过对PoS代币权益进行切分和随机抽样分片,Harmony就能有效地消解攻击者对某一分片所集中的权益,从而消除1%攻击的可能性。
Harmony采用了全新的权益证明(PoS)方式去选择验证者
目前基于分片的区块链项目比如Zilliqa或Quarkchain,使用了PoW来防止Sybil攻击,但它们依然容易受到1%攻击。相比之下,Harmony则在选择一组共识验证者组成一个分片时,通过可验证随机函数(VRF)和可验证延迟函数(VDF)的双重安全算法随机选中验证者(即节点),并均匀分配到每个分片中。这样某个攻击者就很难集中资源攻击单一分片,即实施1%攻击。
在Harmony的PoS设计中,区块验证者需要抵押一定数量的代币,抵押的代币数量将决定它会得到投票权数量。
验证者投票权会被随机分配到某一个或多个分片中,在预设好的一个周期(假设为一天)内,验证者可参与这一个或多个分片的共识,每个周期结束后,投票权将重新计算并分配。这个重新洗牌的过程能够极大增大安全性,防止恶意攻击者逐渐瓦解和贿赂单一分片内的节点。
Harmony的PoS机制能够确保:
– 攻击者无法选择自己想要加入的分片
– 攻击者无法提前知道他们会被分配到哪片分片
如果每隔一段时间就重新洗牌,一个节点把分片的状态下载下来需要多长时间?
当一个验证者加入一个新的分片时,他们需要快速同步分片的数据才能验证新的交易。
传统下载区块历史记录的过程,需要许多天去完全同步所有的历史信息,而在Harmony的快速同步算法中,节点只需要下载此分片的区块头和上一周期的区块数据即可开始验证新交易,因此,节点会在验证者重新分配的过程中迅速做好准备。
Harmony的跨片通信
当交易被分配在不同的分片中时,分片之间的高效沟通变得至关重要。如果分片间的沟通困难,如同一座座孤岛,那整个分片系统就将失去意义。
举个例子,假设要在一个分片协议网络中预定一张火车车票和一家酒店,火车票交易在一个分片里,酒店交易则在另一个分片里,对于用户来说,想要的结果是车票和酒店同时预订成功,而不是一个成功,另一个失败。
Harmony支持跨分片交易,分片之间不仅可以相互通信,还能同步执行垮分片操作。
当每个新区块被创建时,通过一个Kademlia路由协议将区块链头发送到信标链。在这种方式中,Harmony网络中的每个节点都保存了一张包含所有节点距离的路由表。
当一个来自分片A的消息要发送到分片B时,分片A中的节点将查阅路由表,并将消息发送往距离最近的节点, 这种方法可以确保信息只经过最短路径传递,并以最快的方式抵达目标分片。
与Zilliqa和Hashgraph等项目所使用的普通“Gossip广播”相比,Kademlia路由协议从底层机制上减少了整体网络负载。例如在Kademila设置中,拥有10,000,000个节点的网络内,任何子节点之间的通信,最多只需要大约20个传播跌点(hops)。
Harmony与其他分片项目对比
注:Harmony使用的是拜占庭系列的共识算法,这种算法假定诚实节点的数量要达到2/3,才能保证系统的正确性。在PBFT(实用拜占庭容错)的基础上,Harmony调整了消息广播方式,使其比PBFT更快更有效,并将这种算法命名为快速拜占庭容错(FBFT)。
作为早期分片项目,Zilliqa的分片方案仅限于网络和交易的分片。每个节点需要存储所有区块链数据的需求也让Zilliqa对小节点并不友好。此外,基于PoW的简单分片方案也让Zilliqa更容易受到1%攻击。
相比之下,Hamony协议里则采用了在研究和实践中都被验证过的技术突破,基于PoS的安全节点分配和状态分片技术,让整个区块链系统更安全的同时,也实现了真正的去中心化。