软件学报ISSN10009825, CODEN RUXUEW E-mail: jos @iscasaccn Journal ofSofnware, 2019, 30(6): 1649-1660 [doi: 10. 13328/j cnki. jos.0057411 http://www.jos.org.cn ◎中国科学院软件研究所版权所有 el:+86-10-6256256 区块链跨链技术进展研究 李芳,李卓然,赵赫 中国科学院合肥物质科学研究院安徽合肥230031) 通讯作者:赵赫,E-mal.: zhaohahfcas.ac.c 摘要:随着区块链技术的发展,各种具有不同特点、适用于不同应用场景的区块链如比特币、以太坊等公有链 以及私有链、联盟链大量共存由于区块链的相互独立性,现存各区抉链之间的欻据通信、价值转移仍面临挑战,价 值孤岛现象逐渐昰现区块链的跨链技术是区块链实现互联互通、提升可扩展性的重要技术手段.对跨链技术领域 的成果进行了系统总结:首先,分析了跨链技术的需求及面临的技术难点;其次,总结了正在发展的跨链技术,并介绍 了24种主流跨链技术的原理与实现思路然后,综合分析了跨链技术存在的安全性风险,并列举了12项主要问题; 最后,总结探讨了跨链技术的未来发展趋势. 关键词:区块链跨链协议;共识算法,价值转移,数据转移 中图法分类号:TP309 中文引用格式:李芳,李卓然,赵赫区块链跨链技术进展研究软件学报,2019,30(6):1649-1660.htp;/ www-Jos.org.cn/1000 9825/574lhtm 英文引用格式:LiF,LiZR, Zhao h. Research on the progress in cross-chain technology of blockchains. Ruan jian Xue bao/ JournalofSoftware2019,30(6:1649-1660(inChinese).http://www.jos.orgcn/1000-9825/5741.htm Research on the Progress in Cross-chain Technology of Blockchains LI Fang. LI Zhuo-Ran. ZHAO He (Hefei Institutes of Physical Science, Chinese Academy of Sciences, Hefei 230031, China) Abstract: With the development of blockchain technology, various blockchains with different characteristics and applications such as Bitcoin, Ethereum, other public chains, as well as private and consortium chains coexist in large numbers. Due to the independence of blockchains, the data communication and value transfer between existing blockchains are still facing challenges, and the problem of value isolation gradually emerges. The cross-chain technology is an important technical means for blockchains to realize interoperability and enhance scalability. This article systematically summarizes the achievements in the cross-chain technology field. Firstly, the requirements of cross-chain technologies and t s they face are analyzed. Secondly, the cross-chain technologies those are under development are summarized and the mechanisms and implementations of 24 mainstream cross-chain technologies are introduced. Then, the security risks of cross-chain technology are analyzed, and 12 major issues are listed. Finally, the trend of future development of oss-chain technology is summarized and discussed Key words: blockchain; cross-chain protocol; consensus algorithm; value transfer; data transfer 区块链( blockchain)是一种去中心化( decentralized)、无需信任( trustless的分布式数据账本,它通过密码学 方法让网络中的所有节点共同拥有、管理和监督数据,系统的运转不接受任何单一节点的控制,从而具有不可 基金项目:国家自然科学基金(61602435)安徽省自然科学基金(17080850F153) oundation item: National Natural Science Foundation of China(61602435); Natural Science Foundation of Anhui Province 本文由区块链与数字货币技术专题特约编辑斯雪明教授和陈文光教授推荐 收稿时间:201806-25;修改时间:2018-10-12,采用时间:2018-12-18,jos在线出版时间:2019-03-2 CNKI网络优先出版:2019-03-2716:40:31,htp/ kns. cnkinet/ kcms/detail/1.2560.TP20190327.1640.007html
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn Journal of Software,2019,30(6):1649−1660 [doi: 10.13328/j.cnki.jos.005741] http://www.jos.org.cn ©中国科学院软件研究所版权所有. Tel: +86-10-62562563 区块链跨链技术进展研究∗ 李 芳, 李卓然, 赵 赫 (中国科学院 合肥物质科学研究院,安徽 合肥 230031) 通讯作者: 赵赫, E-mail: zhaoh@hfcas.ac.cn 摘 要: 随着区块链技术的发展,各种具有不同特点、适用于不同应用场景的区块链如比特币、以太坊等公有链 以及私有链、联盟链大量共存.由于区块链的相互独立性,现存各区块链之间的数据通信、价值转移仍面临挑战,价 值孤岛现象逐渐显现.区块链的跨链技术是区块链实现互联互通、提升可扩展性的重要技术手段.对跨链技术领域 的成果进行了系统总结:首先,分析了跨链技术的需求及面临的技术难点;其次,总结了正在发展的跨链技术,并介绍 了 24 种主流跨链技术的原理与实现思路;然后,综合分析了跨链技术存在的安全性风险,并列举了 12 项主要问题; 最后,总结探讨了跨链技术的未来发展趋势. 关键词: 区块链;跨链协议;共识算法;价值转移;数据转移 中图法分类号: TP309 中文引用格式: 李芳,李卓然,赵赫.区块链跨链技术进展研究.软件学报,2019,30(6):1649−1660. http://www.jos.org.cn/1000- 9825/5741.htm 英文引用格式: Li F, Li ZR, Zhao H. Research on the progress in cross-chain technology of blockchains. Ruan Jian Xue Bao/ Journal of Software, 2019,30(6):1649−1660 (in Chinese). http://www.jos.org.cn/1000-9825/5741.htm Research on the Progress in Cross-chain Technology of Blockchains LI Fang, LI Zhuo-Ran, ZHAO He (Hefei Institutes of Physical Science, Chinese Academy of Sciences, Hefei 230031, China) Abstract: With the development of blockchain technology, various blockchains with different characteristics and applications such as Bitcoin, Ethereum, other public chains, as well as private and consortium chains coexist in large numbers. Due to the independence of blockchains, the data communication and value transfer between existing blockchains are still facing challenges, and the problem of value isolation gradually emerges. The cross-chain technology is an important technical means for blockchains to realize interoperability and enhance scalability. This article systematically summarizes the achievements in the cross-chain technology field. Firstly, the requirements of cross-chain technologies and the technical difficulties they face are analyzed. Secondly, the cross-chain technologies those are under development are summarized and the mechanisms and implementations of 24 mainstream cross-chain technologies are introduced. Then, the security risks of cross-chain technology are analyzed, and 12 major issues are listed. Finally, the trend of future development of cross-chain technology is summarized and discussed. Key words: blockchain; cross-chain protocol; consensus algorithm; value transfer; data transfer 区块链(blockchain)[1]是一种去中心化(decentralized)、无需信任(trustless)的分布式数据账本,它通过密码学 方法让网络中的所有节点共同拥有、管理和监督数据,系统的运转不接受任何单一节点的控制,从而具有不可 ∗ 基金项目: 国家自然科学基金(61602435); 安徽省自然科学基金(1708085QF153) Foundation item: National Natural Science Foundation of China (61602435); Natural Science Foundation of Anhui Province (1708085QF153) 本文由区块链与数字货币技术专题特约编辑斯雪明教授和陈文光教授推荐. 收稿时间: 2018-06-25; 修改时间: 2018-10-12; 采用时间: 2018-12-18; jos 在线出版时间: 2019-03-27 CNKI 网络优先出版: 2019-03-27 16:40:31, http://kns.cnki.net/kcms/detail/11.2560.TP.20190327.1640.007.html
Journal of software软件学报Vo.30,No.6, June2019 伪造、不可篡改、可追溯等特点区块链通过技术构造全新的信任体系,具有改变人类社会价值传递方式的潜 力,并支持与行业应用深度融合引起信息技术、金融、保险等多个领域的广泛关注 以比特币 Bitcoin,简称BTC白皮书发布作为区块链技术发展的起始点在近10年期间,世界各国出现 众多区块链项目,它们有些是基于比特币代码集成了一些局部优化,有些是为适应特定应用场景而做出了功能 改进,亦或为提升区块链性能与开发友好性等提出了重大创新比特币设计中融合的非对称加密、工作量证明 ( proof- of-work)、链式结构( chain)、时间戳( timestamps)、 Merkle树( Merkle Tree)等相关算法、协议、机制构成 了区块链技术架构的基础但由于比特币的初衷是实现一种基于点对点技术的电子现金系统并没有过多地考 虑区块链在更广泛范围应用时所需的图灵完备、可扩展性、安全性等要求,其区块容量、区块分叉、二次开发 等也面临一定的问题人们意识到单个区块链无法解决所有技术问题,也并不能覆盖所有应用场景,各类区块链 项目应运而生 通过在共识算法、区块结构、扩展协议等方面的不断创新区块链领域目前己形成多类项目共存的景象 以太坊( ethereum,简称ETH2致力于将区块链拓展应用于数字货币以外的领域并为开发者提供一个能够快速 创建智能合约以及开发去中心化应用的成熟开发平台瑞波( Ripple).用了一种新的共识算法,通过网络中有 限数量的可信任节点实现共识以减少交易确认时间;比特现金( bitcoin cash)将区块大小的限制提升至8MB 甚至更大容量的区块在一定程度上实现了链上扩容EOS提出一种支持分布式应用开发的区块链底层平台 并计划采用并行链和委任权益证明( delegated proof of stake,简称DPOS)实现高系统性能OTA和 Bytebal 等采用非线性链式结构的有向无环图 directed acyclic graph,简称DAG实现分布式账本提高系统的交易效 率据德勤于2017年11月出具的报告咧显示, Github上区块链代码项目总数约9万个,并呈现逐年增加的趋势, 足见区块链领域的创新发展态势 区块链项目的蓬勃发展,不可避免地引出了一个问题:链与链之间如何实现互联互通?链联网( Internet of blockchains)能否成为继互联网、物联网的下一个基础网络架构?随着区块链项目数量越来越多,价值孤岛现象 也更加严重区块链资产是否能够实现无需第三方参与的原子交换 atomic swap)?基于跨链的区块链下(of chain扩容技术方案存在哪些争议?区块链智能合约的应用过程中,区块链又如何与传统互联网系统实现可信 任的数据交换?等等上述问题引发了业界对跨链技术的探索实验 本课题组在国内较早启动了区块链技术相关研究,并长期关注跨链技术研究通过本文的系统性梳理, 期望对跨链技术的创新发展提供参考本文第1节对区块链跨链存在的问题、需求以及技术难点进行分析概述 第2节介绍区块链发展不同阶段的跨链技术演进.第3节重点分析跨链技术设计与应用将面对的安全性问题 最后,在第4节总结跨链技术的发展和研究趋势. 1区块链的跨链需求及技术难点 区块链技术自比特币区块链于2008年山诞生以来已逐步发展出上千种区块链项目根据区块链的应用场 景、节点准入条件及去中心化程度,区块链被分为公有链( public blockchain)、私有链 private blockchain)以及联 盟链( consortium blockchain)这3大类2其中,公有链具有高度去中心化特点,节点可自由加入或退出,并拥有读 取数据、竞争记账权、实施交易等平等权限,以比特币山、以太坊P等为代表;私有链由第三方控制系统的各项 权限,节点的加入、数据的读写均有一定条件限制如摩根大通的 Quorum1等联盟链由多个机构或组织共同 管理各节点通常对应不同的实体机构或组织通过准入机制加入、退出网络,如 cordal1 yperledger1等 区块链的跨链技术是区块链实现互联互通( interoperability)、提升可扩展性( scalability)的重要技术手段在 网络形态上,区块链不同于互联网,后者支持一张网接入全球的节点,前者则形成了多个相互隔绝的平行网络 除了公有链的广泛共存,私有链和联盟链则支持让不同组织拥有各自的区块链,甚至让同一个组织内部同时运 行多个区块链全球区块链的数量在不断增多,而不同区块链网络的相互隔绝,导致链之间无法有效进行数字资 产转移、跨链通信等操作近年来随着区块链应用场景的不断丰富和复杂化,越来越多的区块链项目提岀跨链 的需求与解决方案,跨链技术逐步得到发展
1650 Journal of Software 软件学报 Vol.30, No.6, June 2019 伪造、不可篡改、可追溯等特点.区块链通过技术构造全新的信任体系,具有改变人类社会价值传递方式的潜 力,并支持与行业应用深度融合,引起信息技术、金融、保险等多个领域的广泛关注. 以比特币(Bitcoin,简称 BTC)[1]白皮书发布作为区块链技术发展的起始点,在近 10 年期间,世界各国出现了 众多区块链项目,它们有些是基于比特币代码集成了一些局部优化,有些是为适应特定应用场景而做出了功能 改进,亦或为提升区块链性能与开发友好性等提出了重大创新.比特币设计中融合的非对称加密、工作量证明 (proof-of-work)、链式结构(chain)、时间戳(timestamps)、Merkle 树(Merkle Tree)等相关算法、协议、机制构成 了区块链技术架构的基础.但由于比特币的初衷是实现一种基于点对点技术的电子现金系统,并没有过多地考 虑区块链在更广泛范围应用时所需的图灵完备、可扩展性、安全性等要求,其区块容量、区块分叉、二次开发 等也面临一定的问题.人们意识到单个区块链无法解决所有技术问题,也并不能覆盖所有应用场景,各类区块链 项目应运而生. 通过在共识算法、区块结构、扩展协议等方面的不断创新,区块链领域目前已形成多类项目共存的景象. 以太坊(Ethereum,简称 ETH)[2]致力于将区块链拓展应用于数字货币以外的领域,并为开发者提供一个能够快速 创建智能合约以及开发去中心化应用的成熟开发平台;瑞波(Ripple)[3]采用了一种新的共识算法,通过网络中有 限数量的可信任节点实现共识,以减少交易确认时间;比特现金(bitcoin cash)[4]将区块大小的限制提升至 8MB 甚至更大容量的区块,在一定程度上实现了链上扩容;EOS[5]提出一种支持分布式应用开发的区块链底层平台, 并计划采用并行链和委任权益证明(delegated proof of stake,简称 DPOS)实现高系统性能;IOTA[6]和 Byteball[7] 等采用非线性链式结构的有向无环图(directed acyclic graph,简称 DAG)[8]实现分布式账本,提高系统的交易效 率.据德勤于 2017 年 11 月出具的报告[9]显示,Github 上区块链代码项目总数约 9 万个,并呈现逐年增加的趋势, 足见区块链领域的创新发展态势. 区块链项目的蓬勃发展,不可避免地引出了一个问题:链与链之间如何实现互联互通?链联网(Internet of blockchains)能否成为继互联网、物联网的下一个基础网络架构?随着区块链项目数量越来越多,价值孤岛现象 也更加严重.区块链资产是否能够实现无需第三方参与的原子交换(atomic swap)?基于跨链的区块链下(offchain)扩容技术方案存在哪些争议?区块链智能合约的应用过程中,区块链又如何与传统互联网系统实现可信 任的数据交换?等等.上述问题引发了业界对跨链技术的探索实验. 本课题组在国内较早启动了区块链技术相关研究[10,11],并长期关注跨链技术研究,通过本文的系统性梳理, 期望对跨链技术的创新发展提供参考.本文第 1 节对区块链跨链存在的问题、需求以及技术难点进行分析概述. 第 2 节介绍区块链发展不同阶段的跨链技术演进.第 3 节重点分析跨链技术设计与应用将面对的安全性问题. 最后,在第 4 节总结跨链技术的发展和研究趋势. 1 区块链的跨链需求及技术难点 区块链技术自比特币区块链于 2008 年[1]诞生以来,已逐步发展出上千种区块链项目.根据区块链的应用场 景、节点准入条件及去中心化程度,区块链被分为公有链(public blockchain)、私有链(private blockchain)以及联 盟链(consortium blockchain)这 3 大类[12].其中,公有链具有高度去中心化特点,节点可自由加入或退出,并拥有读 取数据、竞争记账权、实施交易等平等权限,以比特币[1]、以太坊[2]等为代表;私有链由第三方控制系统的各项 权限,节点的加入、数据的读写均有一定条件限制,如摩根大通的 Quorum[13]等;联盟链由多个机构或组织共同 管理,各节点通常对应不同的实体机构或组织,通过准入机制加入、退出网络,如 Corda[14],Hyperledger[15]等. 区块链的跨链技术是区块链实现互联互通(interoperability)、提升可扩展性(scalability)的重要技术手段.在 网络形态上,区块链不同于互联网,后者支持一张网接入全球的节点,前者则形成了多个相互隔绝的平行网络. 除了公有链的广泛共存,私有链和联盟链则支持让不同组织拥有各自的区块链,甚至让同一个组织内部同时运 行多个区块链.全球区块链的数量在不断增多,而不同区块链网络的相互隔绝,导致链之间无法有效进行数字资 产转移、跨链通信等操作.近年来,随着区块链应用场景的不断丰富和复杂化,越来越多的区块链项目提出跨链 的需求与解决方案,跨链技术逐步得到发展
李芳等:区块链跨链技术进展研究 51 根据目前主流跨链技术的设计研发,跨链的目的以及要解决的问题主要包括以下几点 (1)不同区块链之间的资产转移尽管第三方交易平台能够提供不同区块链项目资产的转移与交换,但第 三方交易平台的引入带来了新的中心化节点不可避免地存在资产安全性、可信任性等问题跨链确 保了是用技术而非机构或人来提供安全、可靠、高效的链上资产转移途径; (2)实现区块链资产的留置类似于金融和法律领域的财产留置,区块链资产能够实现链上锁定冻结 并设定某个区块链上的资产锁定条件、解锁条件还可以与其他链的特定事件/行为进行关联 (3)读取和验证其他链的状态或事件自以太坊区块链凹问世以来基于区块链的智能合约得到快速发 展在某个区块链上部署的智能合约,触发其执行的条件可能需要依赖于其他链的信息和数据,跨链 数据访问在该应用场景中具有关键作用 (4)提升区块链交易处理能力区块链的可扩展性三难题基本法则18表明,区块链只能兼顾去中心性、可 扩展性和安全性中的两项区块链的吞吐量和可扩展性一直被认为是重要的瓶颈尽管诸如EOS等 区块链项目声称其TPS(每秒处理事务数)可达百万量级但均以设立少量验证节点为前提,降低了系 统的去中心化特性跨链通信是提供更高扩展性的技术路线之 区块链应用场景的不断拓展以及区块链互联互通的潜在需求促进了跨链技术的持续创新和进步根据跨 链技术的演进和实现方式,以太坊的创始人 Buterin曾经总结了3类跨链技术1-一公证人机制( notary schemes)、侧链/中继( sidechains/relays)、哈希锁定( Hash-locking) (1)公证人机制通过选举一个或多个组织作为公证人,对链A的事件进行自动或请求式监听,并在指定事 件发生后在链B执行相应动作,实现对事件的响应公证人群体通过特定的共识算法对事件是否发 生达成共识公证人机制又分为中心化公证人机制( centralized notary schemes)和多重签名公证人机 制 multisig notary schemes,区别在于后者利用密码学技术,在每次交易验证时从公证人群体中随机 选出一部分公证人,共同完成签名的签发,从而降低对公证人可靠性的依赖程度; (2)侧链/中继侧链/中继以轻客户端验证技术为基础,即在链B上执行类似区块链轻客户端功能的智能 合约通过验证链A的加密哈希树( cryptographic hash tree以及区块头( block header)来验证链A的某 项特定交易、事件或状态信息是否发生; (3)哈希锁定通过在两条链上运行特定的智能合约实现跨链交易与信息交互用户A生成随机数s并计 算出该随机数的哈希值h=hash(s)发送给用户B;A和B通过智能合约先后锁定各自的资产;如果B在 X时间内收到正确的s智能合约自动执行将B的资产将转移给A,否则退回给B如果A在2X时间内 收到随机数sA的资产将自动转移给B,否则退回给A. 跨链可以分为区块链内部各个子链/主链之间以及不同区块链系统之间的互操作从更广义的概念层面跨 链进一步涉及区块链与传统系统和协议的交互目前跨链技术尚未实现广泛应用,表明了跨链面临的问题复杂 性鉴于大多数区块链系统在诞生之初就缺乏互操作特性,跨链技术在设计与实现时需要重点解决如何适配各 类区块链并确保跨链操作的高效率和高安全性 2跨链关键技术 区块链技术自诞生以来一直具有较强的金融色彩在早期的绝大部分时间里,比特币长期占有全球区块链 项目总市值80%以上的市场份额,处于一枝独秀的状态.随着区块链技术逐渐进入更广泛的学术界和产业界视 野越来越多的人才参与到区块链行业的创新研发2017年5月17日,比特币市值占比首次低于50%192017年 8月14日,以太坊交易量首次超过比特币0公有链、私有链、联盟链的数量不断增多,区块链的应用场景愈加 丰富行业对跨链的需求也更加明显本文以2017年5月为分界线,分为比特币区块链时代与后比特币区块链时 代两个时期,对跨链技术的发展情况分别进行介绍 2.1比特币区块链时代的跨链技术 013年5月 Nolan在 Bitcoin Talk论坛提出了原子转移( atomic transfers思路2,构成了实现原子式跨链数
李芳 等:区块链跨链技术进展研究 1651 根据目前主流跨链技术的设计研发,跨链的目的以及要解决的问题主要包括以下几点. (1) 不同区块链之间的资产转移.尽管第三方交易平台能够提供不同区块链项目资产的转移与交换,但第 三方交易平台的引入带来了新的中心化节点,不可避免地存在资产安全性、可信任性等问题.跨链确 保了是用技术而非机构或人来提供安全、可靠、高效的链上资产转移途径; (2) 实现区块链资产的留置[16].类似于金融和法律领域的财产留置,区块链资产能够实现链上锁定冻结, 并设定某个区块链上的资产锁定条件、解锁条件,还可以与其他链的特定事件/行为进行关联; (3) 读取和验证其他链的状态或事件.自以太坊区块链[2]问世以来,基于区块链的智能合约[17]得到快速发 展.在某个区块链上部署的智能合约,触发其执行的条件可能需要依赖于其他链的信息和数据,跨链 数据访问在该应用场景中具有关键作用; (4) 提升区块链交易处理能力.区块链的可扩展性三难题基本法则[18]表明,区块链只能兼顾去中心性、可 扩展性和安全性中的两项.区块链的吞吐量和可扩展性一直被认为是重要的瓶颈,尽管诸如 EOS[5]等 区块链项目声称其 TPS(每秒处理事务数)可达百万量级,但均以设立少量验证节点为前提,降低了系 统的去中心化特性.跨链通信是提供更高扩展性的技术路线之一. 区块链应用场景的不断拓展以及区块链互联互通的潜在需求,促进了跨链技术的持续创新和进步.根据跨 链技术的演进和实现方式,以太坊的创始人 Buterin 曾经总结了 3 类跨链技术[16]——公证人机制(notary schemes)、侧链/中继(sidechains/relays)、哈希锁定(Hash-locking). (1) 公证人机制.通过选举一个或多个组织作为公证人,对链 A 的事件进行自动或请求式监听,并在指定事 件发生后,在链 B 执行相应动作,实现对事件的响应.公证人群体通过特定的共识算法,对事件是否发 生达成共识.公证人机制又分为中心化公证人机制(centralized notary schemes)和多重签名公证人机 制(multisig notary schemes),区别在于后者利用密码学技术,在每次交易验证时从公证人群体中随机 选出一部分公证人,共同完成签名的签发,从而降低对公证人可靠性的依赖程度; (2) 侧链/中继.侧链/中继以轻客户端验证技术为基础,即:在链 B 上执行类似区块链轻客户端功能的智能 合约,通过验证链 A 的加密哈希树(cryptographic hash tree)以及区块头(block header)来验证链 A 的某 项特定交易、事件或状态信息是否发生; (3) 哈希锁定.通过在两条链上运行特定的智能合约,实现跨链交易与信息交互.用户 A 生成随机数 s,并计 算出该随机数的哈希值 h=hash(s)发送给用户 B;A 和 B 通过智能合约先后锁定各自的资产;如果 B 在 X 时间内收到正确的 s,智能合约自动执行将 B 的资产将转移给 A,否则退回给 B;如果 A 在 2X 时间内 收到随机数 s,A 的资产将自动转移给 B,否则退回给 A. 跨链可以分为区块链内部各个子链/主链之间以及不同区块链系统之间的互操作.从更广义的概念层面,跨 链进一步涉及区块链与传统系统和协议的交互.目前,跨链技术尚未实现广泛应用,表明了跨链面临的问题复杂 性.鉴于大多数区块链系统在诞生之初就缺乏互操作特性,跨链技术在设计与实现时需要重点解决如何适配各 类区块链,并确保跨链操作的高效率和高安全性. 2 跨链关键技术 区块链技术自诞生以来一直具有较强的金融色彩,在早期的绝大部分时间里,比特币长期占有全球区块链 项目总市值 80%以上的市场份额,处于一枝独秀的状态.随着区块链技术逐渐进入更广泛的学术界和产业界视 野,越来越多的人才参与到区块链行业的创新研发.2017 年 5 月 17 日,比特币市值占比首次低于 50%[19];2017 年 8 月 14 日,以太坊交易量首次超过比特币[20].公有链、私有链、联盟链的数量不断增多,区块链的应用场景愈加 丰富,行业对跨链的需求也更加明显.本文以 2017 年 5 月为分界线,分为比特币区块链时代与后比特币区块链时 代两个时期,对跨链技术的发展情况分别进行介绍. 2.1 比特币区块链时代的跨链技术 2013 年 5 月,Nolan 在 BitcoinTalk 论坛提出了原子转移(atomic transfers)思路[21],构成了实现原子式跨链数
652 Journal of software软件学报Vo.30,No.6, June2019 字资产交易的最初基础技术方案原子转移也称原子交换( atomIc swap),其概念类似于传统证券结算系统的货 银对付( delivery versus payment,简称DVP)或外汇交易系统的交易同步交收( payment versus payment,简称PvP), 在区块链领域即指双方交易同时发生或同时不发生,二者不可分割该方案通过让交易双方分别在比特币区块 链和其他数字货币区块链上设定合约脚本,并利用是否获知某个哈希值的原像( preimage)作为合约触发条件该 原像由交易一方在交易之前随机产生,并结合方案设计的一系列合约锁定、解锁流程,实现跨链交易的原子性 Nolan的技术方案经过改进升级后被称为哈希锁定,并成为跨链的一种主要技术手段在用于BTC链下交易扩 容方案的闪电网络 lightning network)中也运用了类似的哈希时间锁定合约( Hashed timelock contrac,简称 HTLC) 侧链则是首个产生较大影响力的跨链技术比特币核心开发者加入的 Blockstream公司在2014年10月发 布的白皮书中提出了楔入式侧链( pegged sidechains)2的概念,其目的是实现不同区块链资产的跨链转移,以及 可以在不影响主链的情况下,实施更多的技术创新与金融创新双向楔入(two- way peg)作为侧链的核心技术基 础,定义为不同链资产的等值转换机制并分为对称式双向楔入与非对称式双向楔入2016年12月, Blockstream 公司进 强联邦侧链( sidechains with strong federations)的概念2在资产交换中引入由多方控制的多重 签名地址,以减少延迟并提升互操作性 业界在探索区块链间的跨链同时,针对BTC本身的扩容问题发展出链下交易技术Poon于2015年2月发 布了闪电网络( lightning network)白皮书该技术是通过设计一种新的支付渠道网络实现可扩展的连锁即时 支付闪电网络利用链下支付提高交易处理效率,可以被认为是区块链内部的跨链操作随着闪电网络的实现及 升级,2017年11月,闪电网络在链下首次实现了测试网中BTC和LTC的跨链原子交易 Ripple公司在2015年11月发布的 nterledger白皮书中提出了一种用于不同支付网络或账本系统交互 的协议并计划覆盖至区块链账本及各类传统支付系统 Interledger通过连接者( connector)传递跨系统的交易,在 最终接收者收到资金前,传递线路上各个支持 Interledger协议的系统会对各环节发送者的资金进行托管锁定 Interledger协议的交易托管与执行分为两种方式,其中,原子模式是由参与者选出一组公证人来协调交易;通用 模式无需公证人,通过参与者给予激励以及反向执行指令来确保安全支付 Interledger最初作为公证人机制的 跨链代表,在协议发展过程中,也开始逐步融入哈希锁定的理念 2016年5月美国区块链软件技术公司 ConsenSus设计了 btCRelay2,实现了以太坊对比特币区块链数据 的跨链访问 BTCRelay实质是在以太坊网络上实现的一个智能合约,通过不断接收网络中各个 Relayer节点推 送的BTC区块头,实现BTC区块头在智能合约里的存储和实时更新由于BTC区块链的交易信息主要以 Merkle tree形式存储在区块头中,在不依赖第三方中介的情况下, BTCRelay以一种去中心化的方式实现了以 太坊智能合约对BTC区块链的数据访问尽管 BTCRelay的原理和实现并不是非常复杂,但该系统使得用户能 够创建各种触发条件依赖于BTC区块链事件或信息的以太坊智能合约,提高了智能合约的可用性.不过 BTCRelay仅支持ETH和BTC之间的跨链,而且并不能让BTC同时也能读取ETH区块链的信息,在这种跨链 方式下,通信是单向的,具有一定局限性 2016年6月Kwon提出了一种支持各种区块链接入与互操作的网络架构 Cosmo2基于建立区块链的互 联网构想 Cosmos网络设计为由枢纽(hub)和分区( zones组成,其中,分区由 Tendermint2经典拜占庭容错共识 算法引擎支持运行,可接入不同区块链,并支持分区数量的扩展分区载入区块链后各分区之间通信必须经由 枢纽并且遵照链间通信技术规范 (inter blockchain communication protocol简称 IBC) 27.Cosmos架构的关键在 于 Tendermint共识引擎和BC协议 Tendermint是2014年 Castro和 Liskov基于实用拜占庭容错(PBFT)29算 法提出的权益证明PoS( proof-of- stake)共识算法改编版通过验证者( validator)对交易区块进行多轮投票达到 共识;IBC协议则定义了区块链注册、数据包格式、交易类型、数据包交付确认流程等内容 2016年11月,Wood在 Polkadot白皮书中介绍了一种异构的多链架构,支持不同共识系统去中心化、去 信任( trustless)地进行交互操作、访问 Polkadot通过解耦共识机制和状态转移机制两种组件来解决伸缩性问题, 并将容纳的不同区块链定义为平行链 Polkadot的参与方包括收集者( collator)、渔夫( fisherman)、提名者
1652 Journal of Software 软件学报 Vol.30, No.6, June 2019 字资产交易的最初基础技术方案.原子转移也称原子交换(atomic swap),其概念类似于传统证券结算系统的货 银对付(delivery versus payment,简称 DVP)或外汇交易系统的交易同步交收(payment versus payment,简称 PvP), 在区块链领域,即指双方交易同时发生或同时不发生,二者不可分割.该方案通过让交易双方分别在比特币区块 链和其他数字货币区块链上设定合约脚本,并利用是否获知某个哈希值的原像(preimage)作为合约触发条件.该 原像由交易一方在交易之前随机产生,并结合方案设计的一系列合约锁定、解锁流程,实现跨链交易的原子性. Nolan 的技术方案经过改进升级后被称为哈希锁定,并成为跨链的一种主要技术手段.在用于 BTC 链下交易扩 容方案的闪电网络(lightning network)中也运用了类似的哈希时间锁定合约(Hashed timelock contract,简称 HTLC). 侧链则是首个产生较大影响力的跨链技术.比特币核心开发者加入的 Blockstream 公司在 2014 年 10 月发 布的白皮书中提出了楔入式侧链(pegged sidechains)[22]的概念,其目的是实现不同区块链资产的跨链转移,以及 可以在不影响主链的情况下,实施更多的技术创新与金融创新.双向楔入(two-way peg)作为侧链的核心技术基 础,定义为不同链资产的等值转换机制,并分为对称式双向楔入与非对称式双向楔入.2016 年 12 月,Blockstream 公司进一步提出强联邦侧链(sidechains with strong federations)的概念[23],在资产交换中引入由多方控制的多重 签名地址,以减少延迟并提升互操作性. 业界在探索区块链间的跨链同时,针对 BTC 本身的扩容问题发展出链下交易技术.Poon 于 2015 年 2 月发 布了闪电网络(lightning network)白皮书[24],该技术是通过设计一种新的支付渠道网络实现可扩展的连锁即时 支付.闪电网络利用链下支付提高交易处理效率,可以被认为是区块链内部的跨链操作.随着闪电网络的实现及 升级,2017 年 11 月,闪电网络在链下首次实现了测试网中 BTC 和 LTC 的跨链原子交易. Ripple 公司在 2015 年 11 月发布的 Interledger 白皮书[25]中提出了一种用于不同支付网络或账本系统交互 的协议,并计划覆盖至区块链账本及各类传统支付系统.Interledger 通过连接者(connector)传递跨系统的交易,在 最终接收者收到资金前,传递线路上各个支持 Interledger 协议的系统会对各环节发送者的资金进行托管锁定. Interledger 协议的交易托管与执行分为两种方式,其中,原子模式是由参与者选出一组公证人来协调交易;通用 模式无需公证人,通过参与者给予激励以及反向执行指令来确保安全支付.Interledger 最初作为公证人机制的 跨链代表,在协议发展过程中,也开始逐步融入哈希锁定的理念. 2016 年 5 月,美国区块链软件技术公司 ConsenSys 设计了 BTCRelay[26],实现了以太坊对比特币区块链数据 的跨链访问.BTCRelay 实质是在以太坊网络上实现的一个智能合约,通过不断接收网络中各个 Relayer 节点推 送的 BTC 区块头,实现 BTC 区块头在智能合约里的存储和实时更新.由于 BTC 区块链的交易信息主要以 Merkle tree 的形式存储在区块头中,在不依赖第三方中介的情况下,BTCRelay 以一种去中心化的方式实现了以 太坊智能合约对 BTC 区块链的数据访问.尽管 BTCRelay 的原理和实现并不是非常复杂,但该系统使得用户能 够创建各种触发条件依赖于 BTC 区块链事件或信息的以太坊智能合约,提高了智能合约的可用性.不过, BTCRelay 仅支持 ETH 和 BTC 之间的跨链,而且并不能让 BTC 同时也能读取 ETH 区块链的信息,在这种跨链 方式下,通信是单向的,具有一定局限性. 2016 年 6 月,Kwon 提出了一种支持各种区块链接入与互操作的网络架构 Cosmos[27].基于建立区块链的互 联网构想,Cosmos 网络设计为由枢纽(hub)和分区(zones)组成,其中,分区由 Tendermint[28]经典拜占庭容错共识 算法引擎支持运行,可接入不同区块链,并支持分区数量的扩展.分区载入区块链后,各分区之间通信必须经由 枢纽,并且遵照链间通信技术规范(inter blockchain communication protocol,简称 IBC)[27].Cosmos 架构的关键在 于 Tendermint 共识引擎和 IBC 协议:Tendermint 是 2014 年 Castro 和 Liskov 基于实用拜占庭容错(PBFT)[29]算 法提出的权益证明 PoS(proof-of-stake)[30]共识算法改编版,通过验证者(validator)对交易区块进行多轮投票达到 共识;IBC 协议则定义了区块链注册、数据包格式、交易类型、数据包交付确认流程等内容. 2016 年 11 月,Wood 在 Polkadot 白皮书[31]中介绍了一种异构的多链架构,支持不同共识系统去中心化、去 信任(trustless)地进行交互操作、访问.Polkadot 通过解耦共识机制和状态转移机制两种组件来解决伸缩性问题, 并将容纳的不同区块链定义为平行链.Polkadot 的参与方包括收集者(collator)、渔夫(fisherman)、提名者
李芳等:区块链跨链技术进展研究 653 ( nominator)和验证者( validator)这4种角色,分别承担运行平行链全节点、举报及证明非法行为、拥有权益并委 托资产、区块封装等工作在跨链通信方面, Polkadot采用中继链的方式转发各平行链的交易,同时,平行链的区 块头也会被包含进中继链的区块中,以避免双花的发生通过设计参与方角色、激励模型 Polkadot成为可自发 扩展、兼容已有区块链的异构多链网络 以太坊的链上扩容分片技术 Shadings8也备受关注2016年11月发布的 Sharding技术文档中计划在以太 坊转为权益证明( proof of stake,简称POS)后,以太坊区块链升级为由主链 main chain)和分片链( shard chain) 成的网络结构方案中,以太坊将首先形成约100个分片链,账户和交易信息均存储在分片链上,每个分片链再与 主链进行通信连接分片链主要处理交易以及存储账户与合约的状态,并支持跨分片链的消息交互;主链主要是 维护验证节点的状态以及跟踪分片链区块状态通过分片技术实现交易的并行确认,将直接提高以太坊的交易 吞吐量 除了以上介绍的几种跨链技术以外, RootStock32在比特币区块链上构建智能合约系统作为比特币区块链 的侧链实现功能增强, Elements通过双向锚定,提供与BTC的互转以及智能合约、私密交易证据分离等功能; Lisk构建的分布式应用开发平台为每个应用提供一个单独的Lsk侧链 Factom3通过整合比特币和以太坊 区块链提供不可变更的数据存证功能 Corda36通过交易双方选择出的共同公证人作为交叉验证人,对交易数 据进行验证 22后比特币区块链时代的跨链技术 以太坊创始人 Buterin与闪电网络发明人Poon于2017年8月11日提出了 Plasma3区块链扩展设计模 式 Plasma设计了一种区块链树形框架,将主链作为树根、不同区块链作为主链的独立树形分支,并通过构建智 能合约激励执行与强制执行框架,实现区块链的扩容计算 Plasma包括激励层、树形链组织结构、 MapReduce 计算框架、依赖于根链的共识机制和bmap-UTXO结构这5个组件协作实现合约持续计算、创建状态转移 的欺诈证明、网络形态组织等功能通过借鉴大数据并行计算模型 Mapreduce以及构建持续运作机制, Plasma 预期可使区块链扩容至支持每秒10亿量级的状态更新 2018年1月, Vitali在 Plasma基础上提出了最小可行的 Plasma实现( minimal viable plasma,简称MVP) MVP3在处罚欺诈、子链依赖以及处理无效交易等方面进行了限定2018年3月, Vitali又提出修改版 Plasma Cash9,在 Plasma基础上进行了以下变更:区块链资产基本单位无法分割及合并,交易不再按照 lindex顺序存 储于 Merkle树中,而是存储在稀疏简单的 Merkle树或 Patricia树中 Plasma的跨链框架得到业界广泛关注,如 OmGO计划使用 Plasma支持可扩展的去中心化交易与支付平台、 Lucidity4用 Plasma构建数字广告 区块链协议等 尽管以太坊因其开发友好性以及智能合约的高应用性,开发者与用户数量、市场份额均不断提升,但仍面 临区块链扩展性问题,并曾因承载一款引发流行的 CryptoKitties区块链游戏出现交易严重阻塞1在此背景 下,2017年1月,Loom项目基于以太坊构建了一套支持开发、运行大型去中心化应用DAp的基础设施平 台,并计划采用 Plasma与以太坊实现资产转移在保障资产安全的同时提升系统吞吐量Loom为开发者提供了 可快速构建区块链的SDK并让开发的分布式应用DApp都单独运行在以太坊的不同侧链上,称为 DApp Chain 该设计的特点在于每条 DAppChain均可以由开发者根据需求用不同的共识规则,具有一定的灵活性 2017年8月Aion项目定义了一种多层次的区块链网络结构,为不同区块链系统的接入提供通信协议和 标准在Aion网络中,定义了“桥梁”实现区块链之间的连接和通信,桥梁也有自己独特的验证者网络Aon通过 采用基于轻量级BFT的算法达成共识并具有注册、竞争、交易奖励分配等功能Aon规定了包括发起网络、 的网络、路由信息、路由费用、 Merkle证明等在内的跨链交易格式,还设计了Aion虚拟机(AVM)提供对区 块连逻辑的抽象以及提供运行应用程序的环境 017年8月29日, Eykholt等人在 Chain白皮书中设计提出了一种并行的区块链多链网络期望实现具 有高扩展性的企业级区块链平台 Chain采用 Rho vm虚拟机作为智能合约并发执行引擎并通过定义命名空间 ( namespace),使 ShoVE每个实例可以在命名空间中的独立区块链上并发执行智能合约 Chain的每个命名空
李芳 等:区块链跨链技术进展研究 1653 (nominator)和验证者(validator)这 4 种角色,分别承担运行平行链全节点、举报及证明非法行为、拥有权益并委 托资产、区块封装等工作.在跨链通信方面,Polkadot 采用中继链的方式转发各平行链的交易,同时,平行链的区 块头也会被包含进中继链的区块中,以避免双花的发生.通过设计参与方角色、激励模型,Polkadot 成为可自发 扩展、兼容已有区块链的异构多链网络. 以太坊的链上扩容分片技术 Sharding[18]也备受关注.2016 年 11 月发布的 Sharding 技术文档中,计划在以太 坊转为权益证明(proof of stake,简称 POS)后,以太坊区块链升级为由主链(main chain)和分片链(shard chain)构 成的网络结构.方案中,以太坊将首先形成约 100 个分片链,账户和交易信息均存储在分片链上,每个分片链再与 主链进行通信连接.分片链主要处理交易以及存储账户与合约的状态,并支持跨分片链的消息交互;主链主要是 维护验证节点的状态以及跟踪分片链区块状态.通过分片技术实现交易的并行确认,将直接提高以太坊的交易 吞吐量. 除了以上介绍的几种跨链技术以外,RootStock[32]在比特币区块链上构建智能合约系统,作为比特币区块链 的侧链实现功能增强;Elements[33]通过双向锚定,提供与 BTC 的互转以及智能合约、私密交易证据分离等功能; Lisk[34]构建的分布式应用开发平台为每个应用提供一个单独的 Lisk 侧链;Factom[35]通过整合比特币和以太坊 区块链,提供不可变更的数据存证功能;Corda[36]通过交易双方选择出的共同公证人作为交叉验证人,对交易数 据进行验证. 2.2 后比特币区块链时代的跨链技术 以太坊创始人 Buterin 与闪电网络发明人 Poon 于 2017 年 8 月 11 日提出了 Plasma[37]区块链扩展设计模 式.Plasma 设计了一种区块链树形框架,将主链作为树根、不同区块链作为主链的独立树形分支,并通过构建智 能合约激励执行与强制执行框架,实现区块链的扩容计算.Plasma 包括激励层、树形链组织结构、MapReduce 计算框架、依赖于根链的共识机制和 bitmap-UTXO 结构这 5 个组件,协作实现合约持续计算、创建状态转移 的欺诈证明、网络形态组织等功能.通过借鉴大数据并行计算模型 MapReduce 以及构建持续运作机制,Plasma 预期可使区块链扩容至支持每秒 10 亿量级的状态更新. 2018 年 1 月,Vitalik 在 Plasma 基础上提出了最小可行的 Plasma 实现(minimal viable plasma,简称 MVP). MVP[38]在处罚欺诈、子链依赖以及处理无效交易等方面进行了限定.2018 年 3 月,Vitalik 又提出修改版 Plasma Cash[39],在 Plasma 基础上进行了以下变更:区块链资产基本单位无法分割及合并;交易不再按照 txindex 顺序存 储于 Merkle 树中,而是存储在稀疏简单的 Merkle 树或 Patricia 树中.Plasma 的跨链框架得到业界广泛关注,如 OmiseGO[40]计划使用 Plasma 支持可扩展的去中心化交易与支付平台、Lucidity[41]利用 Plasma 构建数字广告 区块链协议等. 尽管以太坊因其开发友好性以及智能合约的高应用性,开发者与用户数量、市场份额均不断提升,但仍面 临区块链扩展性问题,并曾因承载一款引发流行的 CryptoKitties 区块链游戏[42]出现交易严重阻塞[43].在此背景 下,2017 年 11 月,Loom 项目[44]基于以太坊构建了一套支持开发、运行大型去中心化应用 DApp 的基础设施平 台,并计划采用 Plasma 与以太坊实现资产转移,在保障资产安全的同时提升系统吞吐量.Loom 为开发者提供了 可快速构建区块链的 SDK,并让开发的分布式应用 DApp 都单独运行在以太坊的不同侧链上,称为 DAppChain. 该设计的特点在于每条 DAppChain 均可以由开发者根据需求采用不同的共识规则,具有一定的灵活性. 2017 年 8 月,Aion 项目[45]定义了一种多层次的区块链网络结构,为不同区块链系统的接入提供通信协议和 标准.在 Aion 网络中,定义了“桥梁”实现区块链之间的连接和通信,桥梁也有自己独特的验证者网络.Aion 通过 采用基于轻量级 BFT[46]的算法达成共识,并具有注册、竞争、交易奖励分配等功能.Aion 规定了包括发起网络、 目的网络、路由信息、路由费用、Merkle 证明等在内的跨链交易格式,还设计了 Aion 虚拟机(AVM)提供对区 块连逻辑的抽象以及提供运行应用程序的环境. 2017 年 8 月 29 日,Eykholt 等人在 Rchain 白皮书中[47]设计提出了一种并行的区块链多链网络,期望实现具 有高扩展性的企业级区块链平台.Rchain采用 RhoVM虚拟机作为智能合约并发执行引擎,并通过定义命名空间 (namespace),使 RhoVM 每个实例可以在命名空间中的独立区块链上并发执行智能合约.Rchain 的每个命名空