声明: 本文源自Harmony CTO 兰荣坚先生在【Soteria 硬核科技社区】所做的主题分享。已经得到Soteria 社区授权转载。

Claire: 大家好!我是【魔笛手技术开发社区】的创始人Claire Wu, 是今天 Soteria 主题分享的主持人。

今天分享嘉宾兰荣坚先生的背景很牛,他曾是Google搜索基础架构工程师,也是多个创新项目连续创业者。众所周知,以太坊2.0采用了分片技术来扩容。以太坊是目前链圈生态最丰富的区块链网络,其去中心化程度广受认可。兰荣坚先生创立的区块链项目 Harmony 也采用了分片技术。我们很想知道面对以太坊这样强劲的竞争对手,Harmony 的竞争优势在哪里?有没有一个Niche Market (利基市场)足够让Harmony 施展所长,从而可以在区块链领域长足地发展呢?带着以上问题,让我们一起收看兰荣坚先生为我们带来的主题分享:

『Harmony的状态分片和有效抵押机制』

现在有请兰荣坚先生……

兰荣坚: 多谢 Claire 的主持,大家上午好,很高兴来到 Soteria 社区和大家分享一下区块链分片和Harmony的技术思路。

先做个简单介绍,我是Harmony的联合创始人和CTO兰荣坚,之前在Google负责安卓应用商店的搜索基础设施搭建,也是硅谷ABC区块链社群的早期创始人之一。

Harmony是一个基于状态分片和PoS的高性能公链项目,我们的设计利用了安全的随机分片过程,在保证安全性和去中心化的同时,可以极大提高系统的交易处理能力,即所谓TPS,并且交易处理成本被分摊到多个分片,从而大大降低交易处理成本。我们的核心技术团队来自硅谷的Google, Amazon, Facebook, Apple等公司,创始人Stephen Tse之前创立了地图社交服务软件Spotsetter,后来成功被Apple收购。Harmony的目标是为全球去中心化经济体提供最安全和高效的基础设施。

首先说一下区块链的性能和扩容问题,大家知道比特币和以太坊的PoW共识机制在安全性和去中心化上做的不错,但是交易处理速度极低。并且完全是完全没有横向可扩展性的,既网络中加入再多的节点,性能是不变甚至变差的。很多项目在纵向扩容上做努力,既通过改变单一共识机制来提高效率,例如DPoS, DAG等等。这些纵向扩容的技术一般都逃离不了我们常说的区块链不可能三角理论,既安全性,去中心化,和性能不可能同时得到很好的权衡。而我们采用的是可以在安全性,去中心化和性能上做到很好权衡的状态分片技术。状态分片是目前唯一可以做到横向扩展区块链性能的扩容技术,既在网络中增加更多节点和分片,就可以提升交易处理量,并且不损失安全性和去中心化。这也是以太坊2.0采用的方案。

Harmony的分片架构,是包括一条信标链和多条分片链组成的多链结构,每条链的属性是同质的,但信标链会提供更多服务,例如生成去中心化的随机数,分片链Header的验证,还有最重要的是接受验证节点的权益抵押。在共识算法方面,Harmony中每个分片内部通过FBFT共识算法达成共识,FBFT是Harmony对PBFT共识进行深度优化的结果,通过BLS多重签名,使传统的PBFT的效率提升了一个数量级,这也是为什么我们的单一分片可以高效的支持上百个节点达成共识。

目前我们的主网v0每个分片都包括250个节点同时共识,出块时间在8秒以内,之后通过优化预计可以达到5秒以内的共识速度。这是FBFT的示意图:

我们采用的状态分片是比较难实现的一种分片方法,其他方式还有网络分片和交易分片,既网络节点被分成互相独立的组,每组节点分别处理交易,达成共识。而状态分片是指每组分片分别存储一部分账本信息,而不是存储全网所有账本。网络分片和交易分片一定程度上可以提高交易处理速度,但如果没有实现状态分片,分片间就没法实现完全独立,交易也必须最终在全网进行同步,这样大大限制了系统可扩展性。只有状态分片才能实现每个分片的独立性,分片间除了跨片交易,不会有多余的数据交换,这样可以最大程度提高整个网络的可扩展性。这也是为什么以太坊2.0也选用了状态分片的方案。

状态分片的一个比较难攻克的问题是分片后的安全性,这里讲一下我们是怎么保证分片系统的安全性的。 对于51%攻击,大家一定都很熟悉,而在分片公链中,我们需要谈1%攻击。因为系统分片后,每个分片无论是在算力还是在节点抵押代币数量上,都只有整个网络的N分之一,如果有100个分片,在没有特殊安全协议的设计的情况下,利用全网1%的算力或权益就可以完全控制一个分片,进行双花,甚至凭空创造新币。

Harmony采用了EPoS(Effective Proof-of-Stake)的有效低压机制和安全的随机分片技术(Random Sharding),靠协议的规定把大Staker的抵押代币打散成许多细小的部分,并随机分配到多个分片里,这样任何人就无法把他的stake集中到单一分片内,从而无法攻击单一分片。

这是随机打散权益分片的示意图:

大家可以看到 红色的攻击者的权益没有集中到一个分片内,而是随机打散在多个分片,这样他就没法在任何一个分片内得到主动权。除了初始时的随机分片,用来防止1%攻击,还有另一个攻击方式是腐化攻击,既在初始分片结束后,攻击者通过收买或贿赂的形式,获得单一分片内的绝大部分权力,进行攻击。

为了避免腐化攻击,我们引入了基于Cuckoo Rule的随机再分片机制(Resharding),我们系统会每隔一天时间重新随机打散验证者的权利,并再分片,让攻击者很难锁定腐化的目标,没法成功攻击单一分片。这里面提到的随机分片的过程需要依赖一个安全的随机数生成器。而一个安全的随机数生成算法必须同时满足不可预测、不可干扰,可验证、以及执行效率高的特性。但实际上,除了自然界的量子级别之外,是没有完全的“随机“数的,所有电子世界的随机数都是伪随机数。

好在通过多方计算MPC(multi-party computation)的方法,是有可能生成同时满足之前的几个特性的随机数的。我们所采用的随机数是通过独创的分布式随机数生成(DRG)协议产生的,这个随机数可以保证完全的不可预测,不可干扰,且可验证。DRG是distributed randomness generation的意思,是一种特殊的MPC多方计算方法。

DRG协议让每一个参与其中的节点生成一个本地的VRF(可验证随机函数),然后这些随机数会被结合起来生成一个preimage数字,并放到下一个区块中,之后这个preimage会被用来运算VDF(可验证延迟函数)来生成最终的随机数。

这是DRG的示意图,这里的VRF和VDF分别地保证了结果的随机性和不可干扰性。之所以在分布式随机数产生协议中加入VDF,是为了避免last revealer attack (最后发布者攻击)。这种问题在普通分布式随机数协议中是很常见的,它打破了”不可干扰“的要求。具体讲,当大部分节点都发布了自己的随机数后,最后一个节点可以根据看到的其他人的随机数,很快的通过计算,来决定自己是否要公布自己的随机数,从而左右最后的结合后的随机数结果。而VDF的计算延迟作用,可以使最终的随机数结果,需要通过一段较长的时间才能计算出来,这样最后发布者就没办法知道自己需要做什么才能让最后的结果对自己有利,这就避免了最后结果被干扰的可能。

VDF其实也是以太坊2.0计划采用的技术。在VDF的实现方面我们比以太坊快一步,我们已经完成了业界第一个用Go语言实现的安全高效VDF可验延迟函数(https://github.com/harmony-one/vdf),并且利用BLS12-381椭圆曲线实现了VRF的功能。

下面说一下跨片通信的问题,在Harmony的状态分片中,由于分片间节点相对独立,跨片的交易需要靠分片间相为轻客户端(light client)来完成验证,这里就涉及大量的片间通信。如果采用简单的P2P广播协议,最终系统将产生O(N²)的消息负载,这样的系统没法支持大量的分片,也就丧失了分片的好处。Harmony采用了Kademlia 跨片路由技术,让跨片间通信的网络开销被控制在O(logN),并且利用Erasure Coding(纠删码)对区块广播过程进行优化,避免发送者的网络瓶颈问题,真正意义上实现高效的横向分片扩展。

刚才提到了我们的EPoS抵押机制,现在具体介绍一下。我们设计的有效抵押证明(EPoS)是第一个适合分片公链的Staking机制。EPoS有效解决了抵押 Stake中心化的问题,同时支持抵押复利 Compounding 和抵押委托Delegation。

现在大多数现有的 PoS 区块链中,验证者所获得区块奖励和他们抵押的代币数量成正比,也就是抵押的代币越多,获得的区块奖励越多。这种设计存在“富人越富”的问题,通常会导抵押代币的集中化。例如,在Cosmos中,排名前10位的验证者拥有超过50%以上的总抵押代币,这会对系统带来中心化风险。

缓解此问题的方法之一,是对所有验证者不论其抵押代币数量多少都给予同等的区块奖励,这是Polkadot的抵押模型所提出的方案。给予相等的奖励将推动验证者之间的抵押代币平均分配,因为与小Staker相比,大staker无论抵押多少代币,都只能和小Staker获得一样的区块奖励。尽管如此,其实富者越富的问题并没有完全消除,因为拥有大量stake的人仍然可以通过分散代币来充当多个小staker。因此,“富人致富”的问题还没有得到完全解决,只是在一定程度上得到缓解。

Polkadot的等额奖励机制在一定程度上缓解了抵押中心化的问题,但它的设计不能支持区块奖励的复利,因为抵押者把获得的区块奖励继续抵押后,不会获得更多回报。在EPoS中,我们引入了一个新的概念:“有效抵押”。抵押者并非按照实际抵押量来获得奖励,而是按照”有效抵押“获得奖励。

假设我们系统中允许1600个抵押者的参与,我们使用median_stake表示这1600名抵押者排名中位数的抵押数量,而actual_stake是抵押者持有的实际抵押。所谓“有效抵押”, 是抵押者实际抵押被限制在median_stake上下15%的数值。

具体讲,如果实际抵押超出了中位数抵押的15%,那么有效抵押等于中位数的1.15倍;同样,如果实际抵押低于中位数的15%,那么有效抵押等于中位数的0.85倍。其他情况下,有效抵押等于实际抵押。

EPoS 的设计中,区块奖励和投票权均和有效抵押成正比,和实际抵押没有关系。有了“有效抵押”的概念,排名较高的验证者实际上会受到一定程度上的经济惩罚,而排名较低的验证者则获得额外的奖励。(黄色区域内的人是相对来说获得了更少的奖励,而绿色区域的人,获得了更多的奖励,蓝色区域的人获得等比于其抵押的奖励)有效抵押的机制设计就像是一个均衡器(equalizer),促使验证者之间的抵押分布更加均匀,从而避免了抵押中心化,保证分片系统的去中心化和安全性。因为对于黄色区域的人,他们最好的策略是把自己的高于有效抵押上限的代币委托给绿色区域的人。这样就相当于让财富从富人手里转移到了穷人手里,实现了财富的平均化。

EPoS在保证去中心化的同时,支持区块奖励的复利和抵押的委托。对于实现复利,黄色区域的人可以把奖励委托给绿色区域的人来实现复利。而蓝色和绿色区域的人可以直接把奖励重新抵押进系统,实现复利。而对于普通的代币持有者,他们可以自由选择验证者来委托其代币。一般情况下,他们会选择蓝色和绿色区域的验证者,因为只有委托给他们,才能有更多的回报。EPoS机制同时实现了抵押的去中心化,支持了复利和委托的功能,是目前为止市面上最有效,公平,去中心化的分片PoS模型。

最后我讲一下Harmony对于应用层面的思考,从应用领域讲,我们最看好三个领域,包括游戏,defi以及数据交易

我们对区块链游戏的前景比较看好的原因主要在于,其一,我们可以清楚看到游戏虚拟物品是有价值的,并且这个价值在现有的产业环境下,并没有很好地被发掘,利用和流转。游戏的虚拟物品如果利用非同质代币NFT(Non-Fungible Token)来绑定和确权,就可以实现更多游戏资产价值交换,以及跨游戏的资产转移和复用。

在这种基础下,更多的游戏产业模式将会诞生。打个比方,如果王者荣耀推出基于NFT的限量装备,一款新游戏想要获取王者荣耀的用户,就可以在新游戏内支持同样的NFT,这种用户获取模式不仅对新游戏有好处,同时也持续保持甚至增加了已有NFT的价值,可以说的双赢的结果。我们已经和游戏开发领域的头部企业Animoca达成合作,一同收购了一家做collectible的应用公司Quidd,我们共同开发更多基于Harmony NFT的区块链游戏,并且打通游戏间资产的流通交换,共同促进区块链游戏产业的兴起。

此外,我们认为Defi应用很有可能成为继游戏后的第二个落地点。

Defi由于其关乎价值和信任的特性,是最适合用区块链去实现的,前几年炒的轰轰烈烈的p2p借贷,就是因为很多中心化的失信问题,才导致最后行业乱象丛生。而利用区块链的可信性,可以完全消除之前中心化金融借贷服务的风险,让整个去中心化金融服务变的完全透明可靠,会是Defi项目今后发展壮大的重要底层逻辑基础,这也是我们看好Defi的原因之一。在Defi生态上,我们做了很多的研究,也有自己的Defi生态部署计划,如稳定币,抵押借贷等等。

最后,对于数据分享与交易方向,他的潜力和游戏资产交易类似,数据也是存在自身价值的,而现在的数据或是被大公司所垄断,或是分散在零散的用户手里,被浪费掉。Harmony在深入研究数据隐私和分享方案,利用零知识证明(zero knowledge proof)等技术,让更多数据得以利用,并且抓取其价值。

谈到零知识证明,我们正在研究学术界的最新成果,预计明年会推出Harmony链上的隐私计算机制。

现在公链合约逻辑的隐私主要靠零知识证明技术来实现,其中有包括zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) 和zk-STARKs (Zero-Knowledge Scalable Transparent ARguments of Knowledge)。zk-SNARKs需要可信的初始化(Trusted Setup),有一定的安全风险,但他的效率更高,更实用。zk-STARKs不需要初始化,更加安全可信,但是效率很低。

zk-SNARKs又分为两种,第一种对于每一个合约逻辑需要分别进行初始化,而第二种只需要一次初始化就可以应用于所以合约逻辑,第二种是现在比较受欢迎的研究方向,在今年有很多研究成果出炉,包括Marlin, Sonic, Plonk, Libra等等。今年可以说是零知识证明技术实用化的元年,在今年很多新的研究成果已经可以达到产品级的需求。未来几年隐私和zk将是更多应用爆发的原动力。Harmony正在花大力气投入到隐私保护的研发中。

今天关于Harmony的技术分享就到这了,@Claire@魔笛手 社群里如果有问题,欢迎提问。

特别鸣谢本次直播赞助和主办机构Soteria社区和【魔笛手技术开发社区】以及协办社群(排名不分先后),所有支持媒体和各位群友的持续关注!

- Soteria 硬核科技社区

- 魔笛手 SSDE 开发社区

- 魔笛手技术开发社区

- 数字万物讨论群

- 加密数字货币与区块链生态系统

- Metamask中文社区

欢迎大家扫码加社区管理员好友,进入官方微信群,了解Harmony最新动向!

官网 、微信公众号:和梦链Harmony

新浪微博

中文电报群

英文电报群

技术论坛

GitHub

Discord

Twitter