概要
Harmony将创建一个Google数据级别的开放市场平台,成为去中心化经济系统的顶梁柱。我们的目标是,在开放的互联网上,提供一个去中心化的共识协议,做到每秒处理千万条交易和数据,保证100毫秒左右的延迟,同时让每笔交易的手续费低于0.1%。
Harmony旨在创建比世界上最领先的比特币和以太坊网络还要快1000倍,便宜1000倍的区块链技术。我们会通过技术创新,重构去中心化的经济体系下的所有层面:传输层(Google的特制UDP协议, 布隆表格,以及5G移动网络),共识协议层(拜占庭委员会机制,无环图,垄断费),以及系统工具(Unikernel, 多核Rust,和零拷贝数据流)。
我们相信在未来,通信与交互 是人与机器融洽相处的关键。和谐与一致,即是Harmony的内在含义 。要成为一个支持微交易和电子商务的平台,我们收取的交易费必须低于0.1%,才足够支持(大数据时代)市场下簇生的新兴交易模式,比如对信息内容的量化,以及工作内容的微分。作为区块链基础设施,我们必须像水电网络一样,为全世界的数据和价值提供稳定可靠的通道。正因为如此,我们的带宽必须能够扩展到至少每秒千万条交易的级别。这样,我们才能够支持那些由供应链、物联网(IoT)、能源网生成的数据。在这基础上,我们还要保障每条交易从握手达成,到被整个网络认证,必须在100毫秒内完成,这样,我们才可以支持那些需要实时处理能力的应用,比如全自动机器人,交易所报价。
在技术方面,我们将会采纳那些已通过大量研究和大范围测试的革命性技术。举例来说,Google的特制UDP协议,现在已经处理了Google本身超过35%的流量。这相当于整个互联网7%的流量。从实际数据上看,这个协议至少降低了用户50%的网络延迟。OmniLedger上的拜占庭协议,可以处理超过每秒13,000条交易,在1800个主机下运转,只有1.5秒的网络延迟,Rust下单内核技术,则可以在只用一个亚马逊云端96核的主机的情况下,并行同时处理一千万个网络连接。
image.png架构与创新
"瓶颈从来不在于协议,也不在于基础设施,而在于协议的实现。" -- Bitcoin Unlimited at Stanford
我们相信共识的所有方面对于扩展超过1000倍都是至关重要,我们的方法是将区块链可扩展能力的研究创新进行产品化来为数十亿的人和设备服务。
目前大多数去中心化应用都受限于货币或代币的转移效率低下,Harmony的高性能期望可以实现去中心化应用地真正落地。在本文的后面,我们会描述Harmony的独特应用场景,包括地理位置预言机、去中心化地图、和AI数据市场。
让我们从技术差异开始,我们寻求并掌握创新,其中许多已经在实践中得到验证。我们着重介绍这几个关键部门:传输网络、共识协议和系统工具。
我们的团队具有丰富的经验,他们在顶级科技共识中创建过超大规模的系统。另外我们会在后面的章节介绍合约语言和编译器的原型。
1. 传输网络
根据 Greg Maxwell的文章Advances in block propagation所指出的,12%的网络带宽被节点之间同步区块所有消耗,更关键的是,需要2.5轮消息往返来确认交易。Maxwell的研究得出结论:中继引擎和模板增量是提高传输性能的重要研究方向,这与Harmony所遵循的很相似。
我们的传输网络会基于Google特制UDP协议QUIC,其已经在Chrome软件通信中占据88%的流量(Google流量中占用35%,全网流量占用7%)。QUIC改善会话的多路复用,实现零往返时延。多路复用在同步多个资源时使网络饱和,从而大大提高带宽,同时在网络连接时移除了会话的握手协商,这本来是缓慢和计算开销比较大的过程。此外,不带往返的广播使得数据同步对网络变化和不可用性具有鲁棒性。
研究论文The QUIC Transport Protocol: Design and Internet-Scale Deployment涵盖了QUIC实现的许多技术细节和部署见解。另一篇独立的研究Taking a Long Look at QUIC: An Approach for Rigorous Evaluation描述了Google的特制UDP将成为传输层的未来。
我们将用于交易传播的一个重要技术是集合协调和编码中的布隆表。就如上面提到的比特币的模板增量技术,布隆表将使分片间的通信时间复杂度控制在常量O(1),而不是总交易规模的O(n)。石墨烯技术也采用了类似的方法来获得了巨大的传输性能提升,参考What's the Difference? Efficient Set Reconciliation without Prior Context
最后,Harmony将被设计支持5G移动网络。这个未来的传输网络,将在全球支持1000亿级的网络链接。
2. 系统工具
指导我们工作的原则是积极寻找新型的架构以及使用最优的编程语言。
Bitcoin Unlimited(比特币无限)最近争论的是综合方法和实现质量的相同点,其在斯坦福大学演讲Measuring maximum sustained transaction throughput通过比特币的系统设计适当的并行化和消除锁。
技术博客Terabyte blocks for Bitcoin Cash也论证了优化的后端架构的重要性,它声称了10分钟延迟内700万tps的经济可行性。更具体的,A roadmap for scaling Bitcoin Cash提出了很多系统优化的建议:内存映射、并行处理和索引未花费输出(UTXO)。
为了在我们的协议实现中消除瓶颈,我们采用以下观点。我们灵感来自于Mosaic: Processing a trillion-edge graph on a single machine(演讲),在最严格的分布式测试环境中达到了59倍的性能提升,包括PageRank和社区检测。其创新之处在于在局部数据使用Hilbert有序拼接方案,成功实现在单机上处理10亿个节点和1万亿边的图数据。Mosaic在具有244核和850K IOPS(读写次数每秒)的4台标准电脑上运行测试环境,这个环境已经可以在亚马逊云上比较便宜地购买。
并行处理最严重的开销是锁和内存回收机制,通常电脑处理内核越多,对同一资源的竞争就越多,它们使用锁进行互斥标记。类似的,电脑内存越大,就需要更长的时间来获取空闲内存空间。我们将使用无分配器的区域内存管理来实现无锁多核算法。特别地,我们将采用Destination-Passing Style for Efficient Memory Management来实现基于栈和区域的时间复杂度为O(1)的无暂停处理的内存分配器。
最后的障碍在系统内核本身,典型的网络程序在内核和上下文切换中花费三分之一的时间。而采用unikernel
,程序执行发生在Ring 0
中,以消除内核的上下文切换。 Unikernels: The Rise of the Virtual Library
Operating System描述了MirageOS
和'Jitsu'开机启动只需要20毫秒。
我们的方法之一是饱和使用底层系统的网络容量。Reliable Messaging to Millions of Users with Migratory Data提供了C10M问题(即单主机1000万个并发连接)
的一个解决方案,我们将探索用于块链的最新技术,包括零拷贝数据流以及使用纯内存数据库的简洁索引。
共识协议
可扩展的分布式协议是一个活跃的研究领域。Consensus in the Age of Blockchains,以系统化的方式,详细地介绍了最近的研究成果。我们广泛研究了被引用最多的拜占庭共识出版物,它涵盖了分布式共识和状态机复制的许多进展。
其中研究论文 OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Sharding(演讲)在分片技术的研究中脱颖而出,OmniLedger构建了分片状态复制委员会,有效地处理开放网络中的故障和攻击。OmniLedger是我们的基础协议,我们会在后续章节继续讨论。
OmniLedger的主要前置依赖是Algorand: Scaling byzantine agreements,它使用可验证的随机函数和无状态协议。Algorand在50万个用户和50秒延迟的测试环境中,达到125倍的比特币吞吐量。另一个关键技术是使用无环图来进行包容性挖矿,以避免确认分叉和孤儿块。Bitcoin-NG: A Scalable Blockchain Protocol(博客)是建立在其之前的研究工作 SPECTRE: Serialization of Proof-of-work Events: Confirming Transactions via Recursive Elections(PoW事件的序列化:通过递归选举确认交易)之上,BitCoin-NG现在是将领导选举从交易确认中独立出来的常用代名词。
最后,我们协议采用了一种叫做垄断费的新方法,它使用无浪费披露真实费用的博弈论激励。我们的模型是基于Rethinking Bitcoin’s Fee Market(博客)的研究,它讨论了确定提高矿工收入的简单费用的替代方法。
协议与优化
经过广泛地研究,我们得出结论:OmniLedger是最具有扩展性的无权限去中心化协议。最重要的是,出版论文OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Sharding已被IEEE安全与隐私研讨会同行评议,一个领先的研究会议。OmniLedger已经被测试在1800个主机节点上实现13000 tps的吞吐量。
本章后续内容描述了以高扩展和高性能为目标的其它协议。有很多共享的类似技术,因此我们提出了一个关键的框架来理解用于比较的原则和优化。最后,我们制定了我们的对手模型和解决一些常见的攻击。
1. 高性能协议
下面的表格,基于SoK: Consensus in the Age of Blockchains,比较已经被同行评审或公开验证的协议。表格列出了每秒交易数和延迟。注意,最有前景的协议是用大量的节点和共享委员会进行测试的。我们要强调的是,消息复杂性(第四列)常常被忽视,但在生产规模上很关键。
为了突出区块链扩展性的价值和重要性,我们认为以下项目与Harmony是最接近的。
- EOS
- Zilliqa
- Hashgraph
- Thunder
- Dfinity
- Kadena
- Algorand
2. 扩展性原则
大多数用于扩展的协议共享相似的技术,但不同的术语。指定不同实现的度量和复杂性是至关重要的,这里我们用OmniLedger的术语来提出了一个共同的框架。
- 代表性的分片
10000节点vs16节点PBFT的O(1)大小多重签名;通过多方计算和提交并揭示步骤的随机性进行加密抽签。 - 逐步过度
在交换分片时采用抗女巫攻击身份来保持活性;一个固定排列的滑动窗口来保证2/3的诚实节点超级多数。 - 原子分片提交
每个分片使用基于O(log n)组播树的BFT来一致地接受O(1)协调的跨分片交易。 - 并行区块
以传递方式捕获交易依赖性的无环图;将每个分片划分为成分组来替代异常节点导致的视图变更。 - 削减检查点
可低于拜占庭DoS攻击的用于储存和启动的状态区块;多条、集体签名的反向指针,可节省空间。 - 乐观确认
利用分片存款信任但检查小额交易;最终一致性通过二次分钟级检测并对秒级交易惩罚来保证。
3. 攻击模型
A Survey on Security and Privacy Issues of Bitcoin讨论了常用的模型和对去中心化协议的多维度攻击。
分片的一个关键问题是OmniLedger和Chainspace的高扰动性,当网络节点掉线或者无响应时。我们遵循The Honey Badger of BFT Protocols,其随机共识有利于缓解扰动性问题,不考虑任何网络时延假设时保证网络活性。
另一个常见的问题是单分片DoS攻击,其中一个防御手段时隐藏领导选举和快速视图变更。OmniLedger通过重用随机种子选举分组领导来优化ByzCoin。OmniLeger的状态区块和Vault: Fast Bootstrapping for Cryptocurrencies的默克尔树检查点可在分片切换时提高同步效率。
位置服务和AI
本章突出介绍Harmony独有的一些特性和应用,我们的团队在地理位置数据和机器学习方面有丰富的经验。
1. 位置服务预言机
将智能合约与作为验证数据源的预言机进行集成是非常有挑战的。节点必须可以独立地验证预言机的一致性,我们学习 Crux:
Locality-Preserving Distributed Systems来优化路由和公开网络拓扑。前者有利于按物理距离进行分片,后者可利用移动或物联网设备的GPS信号作为应用中的位置证明(Proof of Location)。
通过与地理位置的紧密集成,Harmony将会非常适合支持智慧城市相关的应用。例如,无人驾驶汽车可获取后续旅程的经过验证的位置数据。或者想象一下成千上万的群集机器人,围绕着未知地形的共同任务进行自我组织。
2. 去中心化地图
地理编码和感兴趣点的地图可以是现实世界中去中心化应用的一个展示。在Harmony上构建去中心化地图的一个很好的起点可以是Pokemon这样具有激励机制的增强现实游戏。
去中心化地图的竞争优势是长尾效应的特定于社区的内容。例如,学校可以动员所有人员在一天内绘制出建筑物和游乐场,任何学生或组织都可以在没有协调的情况下在对应位置数据之上创建游戏和事件。
3. AI数据市场
Harmony还将为一个高容量的数据市场服务,以及优化其机器学习性能。我们将遵循Blockchain-based Machine Learning Marketplaces来建立一个新的去中心化数据经济。
关键方面是保护隐私的应用程序和透明数据的使用。多方计算和同台加密的效率将重度依赖像Harmony这样的高性能平台。
智能合约与其它
Harmony也研究了智能合约的设计空间和扩展性。我们已经设计了一个新的语言,Min。同时也建立了描述其简易和安全性的编译器原型。
这节我们阐述形式化验证和基于编程语言安全的相关背景。这些技术是当前的技术,以防止去中心化经济的脆弱性。
1. 形式化验证与黑客
开放和连接的系统为新的应用提供了机会,同时也提供了被黑客攻击的机会。除了信息网络和身份社会网络之外,资产和合同的安全对于建立去中心化经济至关重要。
《量子杂志》的凯文·哈特内特在《连线》上发表的《计算机科学家近在咫尺的完美防黑客代码》中得出了同样的结论:
"小鸟计算机系统的关键部分用现有技术无法破解,其代码就像数学证明一样可靠。这一结果使DARPA(美国国防高级研究计划局)的所有人站起来说,哦,天啊,我们可以在我们关心的系统中使用这项技术。"
"以前,当计算机被隔离在家庭和办公室中时,编程错误仅仅会引起一些不方便的。现在,这些相同的小编码错误在网络机器上打开了大量的安全漏洞,允许任何拥有计算机系统控制技术的人随意进入。"
然而,比特币和以太坊正在重新学习这些教训,以太坊智能合约攻击调查分析了价值6000万美金的DAO攻击和其它安全隐患:
- 在余额更新之前中断现金提取,将耗尽整个账户的资产;
- 虚拟机中的漏洞抽象以及对燃料使用和功能的任意限制,将导致极端情况下的不可测试行为;
- 在一个动态地址上执行智能合约没有被静态规范检查,将导致特定行为的异常或回退。
最近,An In-Depth Look at the Parity Multisig Bug康奈尔大学的Initiative for Cryptocurrency and Contract (IC3)
分析了Parity价值3000万美金的多重签名钱包攻击。
2. 基于编程语言的安全性
采用测试、审计和监视等安全性保证的交互式方法是昂贵且不完备的,它们没有办法完全保证资产是安全的以及合约与顶层设计目标是一致的。
基于编程语言的安全性是一种基于数据的技术,用于验证程序能够完全按照系统设计中描述的方式运行。下面是国家科学基金会资助的"计算探险(Expeditions in Computing)"系列项目之一的The Science of Deep Specification的架构图。
我们将把这种基于编程语言的安全技术应用到去中心化应用中,以防止意外错误或恶意攻击,包括交易顺序依赖、处理不当的异常、时间戳依赖和可重入性漏洞。
Harmony的子项目Min
, 是一种新的具有安全保证的编程语言,可实现不可破解的系统。简言之,我们设计具有简洁语法的静态类型作为安全规范,分析形式化模型中的去中心化协议,并生成跨网络的优化代码。
3. 公平与效率
"可伸缩性可能是第一个问题... 有一大堆系统声称可以解决可伸缩性问题,但是实际没有。这是一个非常重要和艰巨的挑战。" - 摘自Vitalik Buterin at DevCon3
我们的目标是链上横向扩展以支持1000倍更多的交易和应用程序。对智能合约分片比对状态分片更具挑战性。
我们依据Chainspace: A Sharded Smart Contracts Platform来为带审计的图灵完备系统构建去中心化提交协议。我们的方法是:
- 定义有限脚本的有用子集
- 在分片过程中公开交易依赖性
- 使用无状态验证器注释计算合约
我们计划整合共识协议的以下方面,但这里不描述细节。
- 脚本与合约:Bitcoin Covenants、Ethereum
- 公平与效率:反矿池、有用工作量证明、 Ouroboros PoS
- 安全与隐私:多重签名、攻击模型(1、2)、形式验证(1、2)
- 链下与边缘客户:闪电通道、IoT(1、2)
其它
本文只翻译技术细节部分,而包括团队与合作方、路线图以及FAQ等,这里不做翻译。
网友评论