淘先锋技术网

首页 1 2 3 4 5 6 7

论文题目:区块链跨链技术进展研究
论文作者:李 芳, 李卓然, 赵 赫
通讯作者:赵赫, E-mail: [email protected]
发表期刊:软件学报


1 前言

通过在共识算法、区块结构、扩展协议等方面的不断创新,区块链领域涌现了诸多项目。例如

区块链项目的蓬勃发展,不可避免地引出了一个问题:链与链之间如何实现互联互通?链联网(Internet of blockchains)能否为继互联网、物联网的下一个基础网络架构?随着区块链项目数量越来越多,价值孤岛现象也更加严重。区块链资产是否能够实现无需第三方参与的原子交换(atomic swap)?基于跨链的区块链下扩容技术方案存在哪些争议?区块链智能合约的应用过程中,区块链又如何与传统互联网系统实现可信任的数据交换?

2 区块链的跨链需求及技术难点

区块链的跨链技术是区块链实现互联互通、提升可扩展性的重要技术手段。在网络形态上,区块链不同于互联网,后者支持一张网接入全球的节点,前者则形成了多个相互隔绝的平行网络。随着区块链项目数量的不断增加、区块链应用场景的不断复杂化,而不同区块链之间相互隔绝,致链之间无法有效进行数字资产转移、跨链通信等操作,越来越多的区块链项目提出跨链的需求与解决方案。

2.1 区块链跨链的研究目的

根据目前主流跨链技术的设计研发,跨链的目的以及要解决的问题主要包括以下几点:

  1. 不同区块链之间的资产转移。尽管第三方交易平台能够提供不同区块链项目资产的转移与交换,但第三方交易平台的引入带来了新的中心化节点,不可避免地存在资产安全性、可信任性等问题。跨链确保了是用技术而非机构或人来提供安全、可靠、高效的链上资产转移途径。
  2. 实现区块链资产的留置。类似于金融和法律领域的财产留置,区块链资产能够实现链上锁定冻结,并设定某个区块链上的资产锁定条件、解锁条件,还可以与其他链的特定事件/行为进行关联。
  3. 读取和验证其他链的状态或事件。自以太坊区块链问世以来,基于区块链的智能合约得到快速发展。在某个区块链上部署的智能合约触发其执行的条件可能需要依赖于其他链的信息和数据,跨链数据访问在该应用场景中具有关键作用。
  4. == 提升区块链交易处理能力==。区块链的可扩展性三难题基本法则表明,区块链只能兼顾去中心性、可扩展性和安全性中的两项。区块链的吞吐量和可扩展性一直被认为是重要的瓶颈,尽管诸如 EOS等区块链项目声称其 TPS(每秒处理事务数)可达百万量级,但均以设立少量验证节点为前提,降低了系统的去中心化特性。跨链通信是提供更高扩展性的技术路线之一。

2.2 区块链跨链主流的解决方案

以太坊的创始人 Buterin 曾经总结了 3 类跨链技术4——公证人机制(notary schemes)、侧链/中继(sidechains/relays)、哈希锁定(Hash-locking)。除此之外还补充了通信协议簇的方法。

2.2.1 公证人机制

公证人机制是通过选举一个或多个组织作为公证人,对链 A 的事件进行自动或请求式监听,并在指定事件发生后,在链 B 执行相应动作,实现对事件的响应。公证人群体通过特定的共识算法,对事件是否发生达成共识。公证人机制又分为中心化公证人机制(centralized notary schemes)和多重签名公证人机制(multisig notary schemes),区别在于后者利用密码学技术,在每次交易验证时从公证人群体中随机选出一部分公证人,共同完成签名的签发,从而降低对公证人可靠性的依赖程度。

2.2.2 侧链/中继

侧链/中继是以轻客户端验证技术为基础,即:在链 B 上执行类似区块链轻客户端功能的智能合约,通过验证链 A 的加密哈希树以及区块头来验证链 A 的某项特定交易、事件或状态信息是否发生。

2.2.3 哈希锁定

通过在两条链上运行特定的智能合约,实现跨链交易与信息交互。用户 A 生成随机数 s,并计算出该随机数的哈希值h=hash(s)发送给用户 B;A 和 B 通过智能合约先后锁定各自的资产;如果 B 在 X 时间内收到正确的 s,智能合约自动执行将 B 的资产将转移给 A,否则退回给 B;如果 A 在 2X 时间内收到随机数 s,A 的资产将自动转移给 B,否则退回给 A。

2.2.4 通信协议簇

通信协议簇指该跨链技术主要通过规定一系列通信数据格式与协议规范等实现区块链接入。通信协议簇类跨链技术由于以定义系统结构、通信协议、数据格式、工作流程等各类标准规范为主,未来能否成为主流的跨链方案,主要取决于区块链产业界各方对该协议规范的接受度以及在协议实现层面能够获得多大范围的支持。

大多数区块链系统在诞生之初就缺乏互操作特性,跨链技术在设计与实现时需要重点解决如何适配各类区块链,并确保跨链操作的高效率和高安全性。

3 跨链技术研究现状

3.1 原子转移和哈希锁定

原子转移(atomic transfers)5,2013年5月Nolan 在 BitcoinTalk 论坛提出构成了实现原子式跨链数字资产交易的最初基础技术方案。原子转移也称原子交换(atomic swap),其概念类似于传统证券结算系统的货银对付或外汇交易系统的交易同步交收,在区块链领域,即指双方交易同时发生或同时不发生,二者不可分割。该方案通过让交易双方分别在比特币区块链和其他数字货币区块链上设定合约脚本,并利用是否获知某个哈希值的原像作为合约触发条件。该原像由交易一方在交易之前随机产生,并结合方案设计的一系列合约锁定、解锁流程,实现跨链交易的原子性。 Nolan 的技术方案经过改进升级后被称为哈希锁定,并成为跨链的一种主要技术手段。在用于 BTC 链下交易扩容方案的闪电网络(lightning network)中也运用了类似的哈希时间锁定合约。

3.2 侧链

比特币核心开发者加入的 Blockstream 公司在 2014 年 10 月发布的白皮书中提出了楔入式侧链(pegged sidechains)6的概念,其目的是实现不同区块链资产的跨链转移,以及可以在不影响主链的情况下,实施更多的技术创新与金融创新。双向楔入(two-way peg)作为侧链的核心技术基础,定义为不同链资产的等值转换机制,并分为对称式双向楔入与非对称式双向楔入。2016 年 12 月,Blockstream公司进一步提出强联邦侧链(sidechains with strong federations)的概念,在资产交换中引入由多方控制的多重签名地址,以减少延迟并提升互操作性。

3.3 闪电网络

Ripple 公司在 2015 年 11 月发布的 Interledger 白皮书7中提出了一种用于不同支付网络或账本系统交互的协议,并计划覆盖至区块链账本及各类传统支付系统。Interledger 通过连接者(connector)传递跨系统的交易,在最终接收者收到资金前,传递线路上各个支持 Interledger 协议的系统会对各环节发送者的资金进行托管锁定。Interledger 协议的交易托管与执行分为两种方式,其中,原子模式是由参与者选出一组公证人来协调交易;通用模式无需公证人,通过参与者给予激励以及反向执行指令来确保安全支付。Interledger 最初作为公证人机制的跨链代表,在协议发展过程中,也开始逐步融入哈希锁定的理念。
业界在探索区块链间的跨链同时针对 BTC 本身的扩容问题发展出链下交易技术。Poon 于 2015 年 2 月发布了闪电网络(lightning network)白皮书8,该技术是通过设计一种新的支付渠道网络实现可扩展的连锁即时支付.闪电网络利用链下支付提高交易处理效率,可以被认为是区块链内部的跨链操作。随着闪电网络的实现及升级,2017 年 11 月,闪电网络在链下首次实现了测试网中 BTC 和 LTC 的跨链原子交易

3.4 基于以太坊智能合约的跨链技术

2016 年 5 月,美国区块链软件技术公司 ConsenSys 设计了 BTCRelay9,实现了以太坊对比特币区块链数据的跨链访问。**BTCRelay 实质是在以太坊网络上实现的一个智能合约,通过不断接收网络中各个 Relayer 节点推送的 BTC 区块头,实现 BTC 区块头在智能合约里的存储和实时更新。**由于 BTC 区块链的交易信息主要以Merkle tree 的形式存储在区块头中,在不依赖第三方中介的情况下,BTCRelay 以一种去中心化的方式实现了以太坊智能合约对 BTC 区块链的数据访问。尽管 BTCRelay 的原理和实现并不是非常复杂,但该系统使得用户能够创建各种触发条件依赖于 BTC 区块链事件或信息的以太坊智能合约,提高了智能合约的可用性。不过,BTCRelay 仅支持 ETH 和 BTC 之间的跨链,而且并不能让 BTC 同时也能读取 ETH 区块链的信息,在这种跨链方式下,通信是单向的,具有一定局限性

3.5 链联网构想

2016 年 6 月,Kwon 提出了一种支持各种区块链接入与互操作的网络架构 Cosmos10基于建立区块链的互联网构想,Cosmos 网络设计为由枢纽(hub)和分区(zones)组成,其中,分区由 Tendermint11经典拜占庭容错共识算法引擎支持运行,可接入不同区块链,并支持分区数量的扩展。分区载入区块链后,各分区之间通信必须经由枢纽,并且遵照链间通信技术规范(inter blockchain communication protocol,简称 IBC10Cosmos 架构的关键在于 Tendermint 共识引擎和 IBC 协议:Tendermint 是 2014 年 Castro 和 Liskov 基于实用拜占庭容错(PBFT)12算法提出的权益证明 PoS(proof-of-stake)13共识算法改编版,通过验证者(validator)对交易区块进行多轮投票达到共识;IBC 协议则定义了区块链注册、数据包格式、交易类型、数据包交付确认流程等内容。

2017 年 8 月,Aion 项目14定义了一种多层次的区块链网络结构,为不同区块链系统的接入提供通信协议和标准。在 Aion 网络中,定义了“桥梁”实现区块链之间的连接和通信,桥梁也有自己独特的验证者网络。Aion 通过采用基于轻量级 BFT的算法达成共识,并具有注册、竞争、交易奖励分配等功能。Aion 规定了包括发起网络、目的网络、路由信息、路由费用、Merkle 证明等在内的跨链交易格式,还设计了 Aion 虚拟机(AVM)提供对区块连逻辑的抽象以及提供运行应用程序的环境。

4 跨链技术的安全性分析

  1. 公证人信任问题。公证人机制由于引入了第三方机构或组织,安全性主要依赖公证人的诚实性。
  2. 侧链/中继的安全性问题。由于侧链/中继机制主要通过读取区块头来实现对事件或支付的验证,无法像主链全节点获知网络上所有交易的全貌,因此难以实现交易的全面验证。侧链/中继机制依赖于矿工的诚实性,在链失效(chain fail)或 51%攻击情况下,将导致跨链系统无法正常工作。
  3. 哈希锁定的安全性问题。根据哈希锁定的设计原理,其技术安全性主要与资金锁定机制以及锁定时间超时相关。例如,基于哈希锁定的闪电网络在系统设计时就预见到如下安全风险:(1)恶意参与者创建大量交易通道并让所有通道同时超时,导致垃圾交易信息在网络中广播并造成阻塞,从而影响正常交易;(2)交易通道开启阶段必须保证定量的资金处于锁定状态,即用户需要采用“热钱包”保持较长时间连接到区块链网络以便能签名交易,而非“冷钱包”或离线存储等更安全的方式,因而将增加黑客盗取用户私钥的风险;(3)交易一方如果发生数据丢失或者没有在正确的时间内广播交易,将可能存在被另一方盗取资金的风险。
  4. 孤块问题。跨链网络读取所接入区块链的最新区块信息后,该区块先被确认有效,随后被确认无效,导致传递了错误而信息。
  5. 长距离攻击。在采用权益证明(PoS)共识算法的区块链网络中,恶意的节点可能会预先计算出大量区块再一次性放出,导致对应的原始区块链出现重组(block reorganization)。基于替换前的区块完成的跨链交易将均被撤销,跨链网络中的交易因此会被双花(double-spend),智能合约则可能出现满足触发条件并执行结束,但随后触发条件被回滚的情况。应对此类攻击较好的方法之一是设立确定性检查点。
  6. 阻塞超时问题。跨链形成的链联网可能会因为跨链网络的一侧的区块链阻塞导致跨链交易超时且无法及时取消。
  7. 竞争条件攻击。在原子交换类的跨链系统中,尤其容易遭受此类攻击。举例来说,A、B 双方通过跨链系统提供的智能合约,尝试交换 A 的 1 个 BTC 和 B 的 10 个 ETH 资产。A 发送 1 个 BTC 给合约规定的地址,B 此时也发送同样数量的 BTC 到相同地址,并且试图取回自己的 10 个ETH。这两笔交易均有一定概率被先确认,从而导致 B 同时得到 A 的 BTC 并取回自己的 ETH 而 A 一无所获的情况。
  8. 日蚀攻击。区块链以及跨链网络均是以 P2P 网络为基础,由于 P2P 网络单个节点连接至其他节点数量受 TCP 连接限制,攻击者通过控制足够多的地址,可以屏蔽受害节点的所有输入和输出节点,从而使受害节点无法获得真实的网络信息。相较于节点全球分散、数量庞大的大型公有链区块链网络,组成跨链网络的节点数相对更少,更易遭受类似的日蚀攻击。
  9. 区块肿胀。通过存储跨链交易相关区块链的区块头实现数据访问是跨链技术的一种主流做法,由于区块链交易记录的不断累积,截至本文撰写时(2018 年 10 月),比特币区块链大小已达220GB,以太坊区块链为 108GB(fast sync 模式),并在继续快速增长中。尽管区块头的容量占比较低,但跨链接入的区块链越多,需要存储的容量也会相应增多,使得跨链也会面临相同的区块膨胀问题。
  10. 失效蔓延问题。跨链形成的链联网结构中,如果其中一部分区块链因共识失败或 51%攻击成功等,使这些区块链被恶意势力掌控或完全无法正常运转,链联网中错综复杂的跨链通信则会因为部分死链导致连锁式的交互失败,从而使跨链失效在链联网中大面积蔓延。
  11. 跨链重放攻击。区块链网络发生硬分叉(hard fork)后,由于原始链和分叉链的交易地址、交易格式、密钥算法等均可能完全相同,其中一条链上的交易被恶意传送到另外一条或多条链重新广播,该交易也可能得到确认,即重放攻击(replay attacks)。硬分叉是区块链中并不少见,一般出现在区块链系统升级、共识失败,或开发人员将代码进行一定程度修改后另行启动新的区块链系统。跨链重放攻击会导致跨链交易在分叉的区块链同时成立,造成用户区块链资产的损失。
  12. 升级兼容问题。大多数区块链项目在上线后均会通过持续升级更新特性,特别是大版本升级时会影响一些关键特性,如区块大小、共识算法切换、新增功能等。当跨链接入众多区块链时,各链版本升级后对跨链协议、跨链机制的兼容。以及跨链如何应对与自适应,都是需要关注的问题。

5 总结与展望

跨链的初衷在于构建链联网、实现各个区块链的无缝互联,但基于区块链的本质特性以及面对愈加丰富的应用形态时,未来也可能并不会统一成一种通用的跨链技术来满足各类需求。可以预见:随着跨链技术研究的深入和应用的普及,**将发展出类似当前互联网中标准化的数据接口通讯技术,各种不同的区块链系统将尽可能地提供出多种标准跨链通信接口,并抽象出典型的互操作服务供其他系统调用。**跨链技术最终能否形成链联网的 TCP/IP 协议、实现全球区块链的广泛互联,亦或成为多种跨链技术长期共存、实现不同层次的数据连接,将与区块链自身的技术形态、应用模式发展密切相关,也有待跨链技术研究者持续探索实践。


  1. Schwartz D, Youngs N, Britto A. The Ripple protocol consensus algorithm. https://ripple.com/files/ripple_consensus_whitepaper.
    pdf
    ↩︎

  2. Bitcoin cash FAQ. https://www.bitcoincash.org/faq.html ↩︎

  3. Larimer D. EOS.IO technical white paper. https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md ↩︎

  4. Buterin V. Chain interoperability. https://www.r3.com/download/chain-interoperability ↩︎

  5. Nolan T. Alt chains and atomic transfers. https://bitcointalk.org/index.php?topic=193281.0 ↩︎

  6. Back A, Corallo M, Dashjr L, Friedenbach M, Maxwell G, Miller A, Poelstra A, Timón J, Wuille P. Enabling blockchain
    innovations with pegged sidechains. https://blockstream.com/sidechains.pdf ↩︎

  7. Thomas S, Schwartz E. A protocol for interledger payments. https://interledger.org/interledger.pdf ↩︎

  8. Poon J, Dryja T. The Bitcoin lightning network: Scalable off-chain instant payments. https://lightning.network/lightning-network-paper.pdf ↩︎

  9. ConsenSys. BTC Relay’s documentation. http://btc-relay.readthedocs.io/en/latest/ ↩︎

  10. Kwon J, Buchman E. Cosmos: A network of distributed ledgers. https://github.com/cosmos/cosmos/blob/master/WHITEPAPER.md ↩︎ ↩︎

  11. Kwon J. Tendermint: Consensus without mining. https://tendermint.com/static/docs/tendermint.pdf ↩︎

  12. Castro M, Liskov B. Practical Byzantine fault tolerance and proactive recovery. ACM Trans. on Computer Systems, 2002,20(4):
    398−461. [doi: 10.1145/571637.571640] ↩︎

  13. King S. PPCoin: Peer-to-peer crypto-currency with proof-of-stake. http://www.peercoin.net/assets/paper/peercoin-paper.pdf ↩︎

  14. Spoke M, Nuco Engineering Team. Aion: Enabling the decentralized Internet. https://aion.network/media/en-aion-network-technical-introduction.pdf ↩︎