2019 年 5 月 23 日,SorosReport 和 Winkrypto 主办的 AMA 在真本聪社群举行,本次 AMA 邀请了 Harmony 的联合创始人兰荣坚,工程师 Leo Chen,讨论了 Harmony 的愿景和 Staking 机制。他们针对社区关注的热点问题进行了解答,包括与以太坊分片、Zilliqa 和 Quarkchain 等同类项目的对比,Harmony 在生态上的布局等。

分片领域强敌环绕,Harmony 如何冲出重围?

以下是本次 AMA 的主要内容 (为了便于阅读,我们删减了部分内容),enjoy it!

Q1:为什么选择用分片来解决性能问题?和其他一些扩容方案像 zk-Snark、Plasma、State Channel 等,为什么选择的是分片方案?

Leo Chen:分片方案是广泛应用于传统的分布式计算,用来解决系统扩容瓶颈的工业界方案。它的有效性和可行性是已经被多年的实践所证明了的。

分片技术借鉴到区块链上面来解决性能问题也是很多项目研究和采用的。这个技术相对成熟。

Harmony 从成立伊始就致力于把成熟的技术应用到我们的区块链上面来,所以我们选择了分片方案。

zk-Snark 它能通过压缩来减少数据传输,它需要在每个 Snark 上面做更新,总体需要相当的计算量。

这个方案还处于一个研究探索过程,工程上的可行性还有待发掘,我们其实也在积极研究这个方向,在主网上线后在考虑加入 ZK 的支持。

Plasma 网络是一个 Layer2,第二层的侧链解决方案。它在安全性上面的保证还需要依靠像 Harmony 这样的 Layer1 链的支持。

State Channel 也是 Layer2 的一种,安全性上还是要依赖 layer1 的支持,并且它的应用场景主要限于小额点对点高频交易,并不能满足像 Harmony 打造一个通用的高性能网络的要求。

Q2:想问一下 Harmony 的主网什么时候上线?现在测试网的一些性能数据如何?

Leo Chen:Harmony 的主网将在今年 6 月上线。和其他项目比如 Cosmo, Zilliqa 一样,第一个上线的版本 v0 并不是一个完全的方案。它将包括多个分片,和 block rewards 等核心功能。

我们的测试网从一月开始运行。刚结束的测试网 3.0 用了 4 个分片,稳定运行了三周时间,完成了二十二万 block。

我们并没有在当前的测试网上面做大规模的性能测试。主要侧重于系统安全和稳定性。

在去年底的测试中,我们在 41,440 个节点,124 个分片中达到了 118357 TPS。

这篇文章 里面有详细报道。目前在测试网上面,我们运行了 4 个分片,每个分片 50 个节点。

Q3:你们怎么看待以太坊 2.0,它也有分片计划。你们认为它的分片能帮它巩固先发优势吗?如果能,你们又如何拆解?

Leo Chen:我们是以太坊 2.0 的强劲对手和合作伙伴。

我们的整体技术框架和以太坊 2.0 不相上下,包括 PoS 为基础的共识算法,信标链,libp2p 为基础的网络传输层,VRF/VDF 产生随机数等等。

我们的 account model 和以太坊兼容。也支持 Solidity 作智能合约开发。

我认为在技术上面我们反而具有先发优势。我们的创业团队合作紧密,开发步伐很快。

以太坊当然具有强大的用户基础。

我们在币安上面做 1E0,一方面证明了我们团队和方案的技术实力,另一方面也会帮助我们建立更好的社区和去中心化的网络。

我们采取完全公开开放的开发方式,所有工程项目全部开源,每周举行公开的开发者会议。

同时我们建立了基础节点计划来吸引更多的社区参与运行我们的开放网络。

在社区方面,我们目前仍然大大落后于以太坊,但是,随着 1E0 的进行,更多的人会参与到我们的网络和社区中间来。

我们的优势在于迅速开发和项目落地,尤其是需要高性能的新兴应用。区块链的应用会越来越多,我们与以太坊 2.0 是竞争合作的关系。我们会一起把这个蛋糕做大,做好。欢迎大家积极参与!

Q4:你们有研究过其他一些竞争对手的分片方案吗?像 Zilliqa、Quarkchain、Ontology、Tomochain、MultiVac、NEAR
Protocol、Elrond 等。相比于这些对手,Harmony 的分片方案有什么特别之处和优势?

Leo Chen:在币安的 Harmony 官方研究报告里面有一个表专门比较了几个分片项目,包括 Zilliqa, Quarkchain,
MultiVac, Eth2.0:https://info.binance.com/en/research/ONE-2019-05-14.html

这是第三方的比较和评价,我就不再过多王婆卖瓜了哈!

我们的分片是深度分片方案 Deep Sharding。这是一个端到端的、安全可靠的技术方案。

这是我们的技术优势。可以看白皮书了解更多细节。

在系统开发方面,我们是第一个实现了基于 BLS 多重签名的快速共识,我们的项目使用 golang 实现,减少系统不稳定性。

同时我们的开发工程项目全部开源,工程能力经得起社区检验。

透露一下,我们是第一个正在实现独立的 VDF 的 golang 模块,也会给贡献给开源社区。

简短的说,我们的技术优势在于脚踏实地、切实可行的 Deep Sharding 技术方案和快速高效的开发进展。

Q5:我有看到你们提出了 Deep Sharding 这个概念,能够详细讲讲这个概念吗?是单指分片还是代表一个性能扩展方向?

Leo Chen:Deep Sharding 是 Harmony 提出的对于分片技术的一个深化方向。

分片技术可以应用在不同的层面,具体包括网络传输层,共识协议层,和用户应用层。

这是一个端到端的技术方向。我们认为这个方向是值得我们投入和鼓励社区来研究的。

单一层面上的分片方案只能解决部分问题,比如单纯网络分片会造成系统资源冗余浪费,单纯用户应用分片会带来跨分片交易昂贵且缓慢。

Deep Sharding, 在网络层面,我们使用了基于 RaptorQ 的喷泉码来加速区块广播;在共识层面,各个分片独立异步运行来达到线性增长;

在用户应用层面,我们用 Kadelimia Routing 来加速跨分片运算。

简而言之,我们首创性的提出 Deep Sharding 这个扩展方向,并且引领开发,这个方向会给分片区块链技术带来更多的思考和研究。

我们期望与同行做更多的交流,与社区做更多的分享来深化这个方向和拓展它。

Q6:Harmony 这个项目是什么,项目的愿景和目标是什么?又试图解决哪些问题?

兰荣坚:Leo 已经对 Harmony 的技术做了很深入的讨论,我就简要说说吧。

Harmony 是一个基于状态分片和 PoS 的高性能公链项目,我们的设计利用了安全的随机分片过程,在保证安全性和去中心化的同时,可以极大提高系统的交易处理能力,并且交易处理成本被分摊到多个分片,从而大大降低交易处理成本。

Harmony 试图解决的问题是当下公链性能瓶颈和成本太高的问题,并且我们旨在打造一个真正去中心化的网络,让无论大小的任何节点都可以参与到其中做贡献。

Harmony 的目标是为未来的全球去中心化经济体提供最安全和高效的信任基础设施,让所有人都可以在一个互信共赢的经济中获得赢得的回报。

Q7:Harmony 是如何诞生的,团队是怎么组建的?你们现在依然在 Stephen 的车库工作吗,团队有着怎么一个工作文化?

兰荣坚:确切的说 Harmony 诞生于 Stephen 在美国硅谷组织的前谷歌员工创业聚会”TGI”中,Stephen 自之前的创业公司 Spotsetter 被 Apple 收购并在 Apple 做了两年的 Director 之后,辞职出来找创业想法,同时组织了这个每周一次的 TGI 创业聚会,Harmony 的大部分早期成员都是在 TGI 相识的。

我们的核心技术团队有 Google,Amazon,Microsoft,Apple 等公司的研发背景,商务团队也均毕业于美国名校如斯坦福,哈佛等。

Harmony 创业的开始阶段我们确实是在 Stephen 的车库工作的,当时天气炎热,车库又没有空调,只能开着车库门工作,虽然条件坚苦,但对于创始团队来说也是一种历练和体验。

我们现在已经搬出了车库,现在的总部是一个坐落在美国加州的 House,我们还延续着之前的 TGI 聚会,每周六都会邀请硅谷的创业者来畅谈区块链和创业。

Harmony 团队成员的关系很融洽,因为我们之前都是同事或者朋友,之前有过合作经历或者已经认识很久。并且 Stephen 是个非常有领导魅力的人,在他的带领下,团队气氛很好,我们既是战友,也是朋友。

Q8:Harmony 这名称还有整个品牌形象是怎么传达你们的愿景和目标的,另外我知道你们有个中文名叫和梦链,能否聊一下这个中文名的诞生小故事呢?

兰荣坚:Harmony 的品牌取名其实是要传达一个这样的概念,Harmony 的中文直接翻译是”和谐韵律“的意思,就像一首音乐虽然可以包括不同的乐器,不同的音调,甚至不同的节奏,但最终这些不同的因素可以协调共进,最终组合成一个美妙的乐曲。

Harmony 希望在区块链网络中也可以让不同的人,不同的设备,不同的场景有机的整合在一起,最终达成一致的共识,就像一首和谐的乐曲一样美妙。

而”和梦“同时与 Harmony 谐音,并且也蕴含了我们希望为全球“所有人”打造共通共享的信任基础设施。

Q9:在很多投资者的观念中,Harmony 的定位标签是分片,竞争对手是 Zilliqa 或者 Quarkchain。你们怎么看待这个观念,你们又认为 Harmony 的真正定位标签和竞争对手是谁?

兰荣坚:对于分片的标签,大家比较熟悉的是 Zilliqa 和 Quarkchain,我们很欣赏这两个项目的技术和团队,但对于一个完全去中心化,可扩展,高效率的分片公链,我们的目标竞争对手其实是以太坊 2.0。

Harmony 的系统设计不论在安全性,去中心化,还是速度上都是和以太坊 2.0 在同一个思考水平的,比如我们对于分片系统的安全性,尤其是如何避免单一分片受攻击的问题,进行了很深入的研究,我们采用分布式安全随机数的方法来随机分片,并且进行有定期的再分片,这样可以有效防止攻击者控制单一分片的节点。

Harmony 的系统设计不论在安全性,去中心化,还是速度上都是和以太坊 2.0 在同一个思考水平的,比如我们对于分片系统的安全性,尤其是如何避免单一分片受攻击的问题,进行了很深入的研究,我们采用分布式安全随机数的方法来随机分片,并且进行有定期的再分片,这样可以有效防止攻击者控制单一分片的节点。

以太坊 2.0 的架构在某种意义上和 Harmony 类似,都是信标链和分片链的结构,但 Harmony 的共识机制采用高效的 FBFT 算法,可以保证交易能够及时确认,这也有助于安全的跨片交易处理。并且 Harmony 的 Staking 模型对于验证节点来说,更加高效,可以没有等待时间。

此外,由于开发速度的优势,Harmony 将是早于以太坊 2.0 第一个实现 PoS 和 Sharding 结合的公链项目,我们对于 Staking
Economy 的设计可以有效避免中心化节点的行程,并且可以激励更多小节点的加入。

Q10:最近听到 Harmony (One) Token 会在币安链上发行的消息,为何做出这样的决定,而不是像过去大部分的项目基于以太坊 ERC-20?

兰荣坚:之所以选择在币安链上发行初始 Token,主要考虑到这样在币安首发 1E0 会更加便利,并且如果之后在 Binance
Dex 上交易,技术实现上也最简单。

并且我们对币安技术团队的能力很有信心,我们测试了 Binance Chain 的功能和速度,相比以太坊都有很大提升,对于实现去中心化交易是个很好的选择。我们是看好币安链未来的前景的,它正在取代以太坊 ICO 的功能,并且迁移更多对速度要求高的虚拟货币资产。

Q11:最近 PoS 和 Staking Economy 是近期一个热点,可以讲讲 Harmony 在 Staking 方面的一些机制设计吗?

兰荣坚:我最近刚刚写了一篇 Medium 文章,内容关于 Harmony 的 Staking Economy 的设计,里面提到了分片系统的 Staking 模式需要有特殊的解决方案。

具体来讲,不同于其他 PoS 系统简单的 21 个或者 100 个节点,我们的分片系统需要承载上千甚至上万个节点,并且允许小节点的加入。

我们每个分片都会分配 400 个投票权,投票权的获得是需要节点通过 staking 代币的形式,以类似拍卖的过程完成的,对于一个投票权,你愿意 stake 的代币越多,你就越有机会获得这个投票权,从而变成一个验证节点。

这种基于拍卖的机制可以使得投票权最终去向最高效的验证者手里,最终增强网络的运行效率。

同时 Harmony 每个分片的节点都会轮流作为领导者出块,每个节点连续负责 40 个块,对于不在线的节点,我们会通过 view
change 协议立刻换掉,从而保证系统整体运行速度不受掉线节点的影响。

对于出块者和验证者我们也有不同的相应的激励和惩罚机制,比如出块者会有更多一些的奖励,出块者收集更多签名也会有更多回报,验证者如果长期不签名的话会被 slash 等等,具体欢迎阅读 这篇文章

Q12:可以讲讲为什么选择在币安上进行 1E0 吗,是币安找到你们还是你们主动找的币安?

兰荣坚:是这样的,我们在之前的一年时间里主要在抓紧研发工作,没有像其他项目很早做 1C0,我们选择了先做事后发 Token。现在我们离主网上线已经越来越近了,我们认为通过一个好的 1E0 可以让更多社区的支持者拿到我们的 Token,这样不仅扩大了社区,也让 Token 更加分散,去中心化。

当然融到的资金也有助于我们今后更大规模的生态建设和团队扩展。

我们之前和很多交易所接触过,但最后决定和币安合作,是因为我们看到了币安团队的专业性和币安社区平台的体量。

币安做的尽职调查是非常详细的,并且追加很多对于我们技术和公司的问题,可以说选择项目非常谨慎。可以说和币安合作对于 Harmony 和币安来说都是有积极意义的。

Q13:你们计划在主网上线后怎么构筑自己的去中心化应用生态,你们会重点发展哪方面的应用?有计划或者有成功邀请到以太坊、EOS、或波场的去中心化应用迁移过来吗?

兰荣坚:生态方面我们已经有近 30 个生态合作伙伴,整个生态建设的思路我们主要考虑应用需求,整个 end-to-end 的应用功能都需要公链来支撑,包括稳定币,数据存储服务,隐私计算,预言机,甚至地图信息服务等等,这些生态基础设施将为未来的区块链应用提供全方位的支持。

Harmony 在稳定币,分布式数据库,隐私计算,地图信息等方面都有合作布局,包括和 Stably、Picolo、Hyperion 等的合作以及对零知识证明的投入等。

此外,我们在 Defi 方面有深厚研究,我们的创始团队成员提出的 Delfi 链上预言机设计曾在 EthDenver 开发者大会上获得最佳创意奖,这个链上预言机技术可以很好地为区块链应用提供准确的链下信息。

我们对区块链游戏的前景比较看好,在今后会和更多这个方向上的头部企业进行合作,我们已经和游戏开发领域的头部企业 Animoca 合作开发更多基于区块链的游戏应用,并且也和专注区块链游戏 SDK 的公司 Drep 商讨怎样把更多的区块链游戏接入 Harmony 链中。

对于已有大公链的应用向 Harmony 的迁移,我们会在近期 SDK 发布之后开始推进。

Q14:官网上看到项目的口号是“Open Consensus for 10 billion people”,你认为实现这个口号大约需要多久?谈谈你对未来几年区块链和加密货币的发展预想?

兰荣坚:这个口号是我们的终极愿景,既打造一个世界所有人参与的互信共赢的去中心化经济体,并为其提供基础设施的支持。

Harmony 的分片技术可以横向扩展来提供超高的吞吐能力,对于最终实现我们的愿景,我们还需要有更多的社区支持者加入我们,成为我们的节点,为实现 Harmony 的最终目标出一份力。

我认为现在区块链行业还处于早期阶段,未来还有很多的可能性等待着从业人员去探索,去开发。无论是更有趣的区块链游戏,还是更安全可靠的支付途径,或者是隐私保护和数据交易平台,还有太多的应用场景等待用区块链来拓展,赋能,和提速。

我希望未来 5-10 年区块链的应用能够真正的为社会的组织结构和运行效率带来翻天覆地的改进,到时候 Harmony 也会真正实现我们的愿景。

以下是真本聪社群成员对 Harmony 的自由提问:

Q15:我们知道,随时间推移,区块数据越来越臃肿。比如现在比特币数据就几百个 g, 你们有什么办法处理这种状态吗?

Leo Chen:对于数据量过多的问题,我们的方案是检查点和多种不同类型的节点。全节点可以存储所有数据。轻型节点可以至少同步到上一个检查点的数据。然后仍然可以通过 Merkle 树来验证新的区块数据。

兰荣坚:其实区块链的历史数据没有必要让每一个节点都去存储,通过一定的机制,比如 Archival node、Checkpoingting 等,可以很好的减小历史数据的存储负担。而对于不能删减的状态数据来说,我们的状态分片就是最好的解决办法。

Q16:我想请问 harmnoy 的分片是状态分片吗,如何支持跨分片的状态交互和同步,安全性可靠吗?

兰荣坚:harmony 的深度分片架构里面,包含了状态分片。

对于跨分片的交易,我们选择基于分片自身的传输方案,既跨片交易通过分片节点去传递。并且我们运用了 Kademlia
Routing 的技术,提高跨片消息的传输效率。具体的跨片交易逻辑,是有最终一致性的基于 Merkle Proof 的模式。

Q17:请用一句话来说明和 eth2.0 的区别

兰荣坚:一句话有点难哈,不过我认为我们和 Eth2.0 最大的区别在于我们是基于 BFT 的共识,交易延迟会比 eth2.0 低很多。此外我们肯定是要比 Eth2.0 至少早一两年上线主网:)

Q18:你们项目有没有跟 cosmos 互联的计划?

兰荣坚:我们之前邀请了 Cosmos 的负责人 Zaki 来过我们的 TGI 做客,我们关系不错,我们主网上线之后会考虑和 Cosmos 对接。

Q19:你愿意 stake 的代币越多,你就越有机会获得这个投票权,从而变成一个验证节点。这种基于拍卖的机制可以使得投票权最终去向最高效的验证者手里,最终增强网络的运行效率。这里存在一个问题 , 增强网络运行效率的同时 , 投票权容易掌握到大户手上 , 如何防止大户作恶呢?

兰荣坚:这个是大家容易有的一个误解。我们全网有几千个投票权待分发,一个投票权的封顶价格会很低,小散户也有机会成为节点。拍卖的形式主要作用是让更加高效的节点有话语权,因为低效的节点是没法竞争过高效节点的。

Q20:现有 bft 共识项目,都没很好的解决多中心化的问题

兰荣坚:前几代的 BFT 共识项目是存在问题,不过我们的基于 BLS 多签的快速 FBFT 算法,可以支持至少 400 个节点同时共识。

Q21:BLS 多签需要的 DKG,要求 400 个节点两两进行 tcp 通信,你们是怎么在去中心化的网络中做到这一点的?任何一个节点掉线都可能导致这一步失败

兰荣坚:我们利用的不是 BLS 阈值签名,而是 BLS multi-sig。是不需要 DKG 的初始设置的,这点和 Dfinity 不同。Dfinity 用了 BLS 阈值签名,目的是用最后的签名当做随机数。而我们的安全随机数是基于 VDF 的分布式随机数,更加高效和安全。