跨链:打破孤岛 万链互联丨区块链技术引卷之七
通证通研究院 × FENBUSHI DIGITAL 联合出品
文:宋双杰,CFA;田志远
特别顾问:沈波;JX
导读
随着区块链行业的蓬勃发展,多种公有链、私有链和联盟链出现,由此自然而然地出现了一个问题:链与链之间如何互联互通?本篇报告梳理了跨链的含义、意义和跨链需要解决的关键问题,回顾了跨链技术的发展历程,分析了主要的跨链模式。
摘要
跨链是通过连接相对独立的区块链系统,实现资产、数据等的跨链互操作,跨链的主要实现形式包括跨链资产互换和跨链资产转移。
2013年之前,区块链的发展主要集中在单一区块链。2013年以来,跨链技术蓬勃发展,跨链的几种主要模式相继被提出。
实现跨链的两个关键问题分别是跨链交易的原子性和跨链交易验证。哈希锁定模式利用哈希锁和时间锁能够保证跨链交易的原子性,即只有满足一定的时间条件和哈希条件交易才能够完成,从而实现跨链资产互换。对于相互独立的两条区块链而言,为实现跨链资产转移,不得不依赖于外部第三方进行信息交互,根据第三方的工作范围可以分为公证人机制和中继模式。在公证人机制下,第三方负责数据收集和交易验证;在中继模式下,第三方仅负责数据收集,交易验证由目标链完成。
总体而言,跨链技术在过去几年间得到了迅速发展,相关的项目层出不穷。现有的跨链相关项目中,基于侧链/中继模式的项目占比最高;基于哈希锁定的闪电网络自主网上线以来节点数量、通道数量和网络容量不断增长,技术可行性得到了较好的验证;通信协议簇(通过规定一系列通信数据格式与协议规范等实现区块链接入)类项目未来能否成为主流跨链方案一定程度上取决于业界对于相关标准规范的接受度。但是目前跨链技术尚未完全成熟和广泛应用,仍有较大的提升空间。此外除了跨链本身的技术形态演进,跨链技术未来的发展也与跨链技术的应用模式密切相关。
风险提示:量子计算机技术突飞猛进
目录
1 跨链概述
1.1 什么是跨链
1.2 为什么跨链
1.3 跨链发展历程
1.4 跨链关键问题
2 跨链的主要模式
2.1 哈希锁定:跨链资产互换
2.1.1 提出背景
2.1.2 基本思路
2.1.3 案例:闪电网络
2.2 公证人机制:依赖第三方验证交易
2.2.1 提出背景
2.2.2 基本思路
2.2.3 案例:Interledger Protocol
2.3 侧链/中继:目标链自行验证交易
2.3.1 提出背景
2.3.2 基本思路
2.3.3 案例:BTC Relay
2.3.4 案例:Cosmos
2.3.5 案例:Polkadot
3 总结
正文
随着区块链行业的蓬勃发展,多种公有链、私有链和联盟链出现,由此自然而然地出现了一个问题:链与链之间如何互联互通?本篇报告梳理了跨链的含义、意义和关键问题,回顾了跨链技术的发展历程,分析了主要的跨链模式。
跨链概述
1.1 什么是跨链
跨链(cross-chain),顾名思义,就是通过连接相对独立的区块链系统,实现资产、数据等的跨链互操作。
跨链的主要实现形式包括跨链资产互换和跨链资产转移。
跨链资产互换指将一条链上的资产兑换成等值的另一条链上的资产,每条链上的资产总量不变。跨链资产互换的一个简单例子如下:
Alice用1个BTC交换Bob的50个ETH,互换成功的结果应该是Alice的ETH地址收到Bob的50个ETH,Bob的BTC地址收到Alice的1个BTC。
跨链资产转移指将一条链上资产转移到另一条链上,原链上的资产锁定,另一条链上重新铸造等量等值的资产,每条链上的资产总值发生变化,但两条链的资产总值之和不变。跨链资产转移的一个简单例子如下:
Alice将BTC区块链上的1个BTC转移到ETH区块链,则BTC区块链上的1个BTC被冻结,ETH区块链上新生成50个ETH。
1.2 为什么跨链
突破底层公链性能和功能瓶颈。随着区块链网络的快速发展,性能逐渐成为制约区块链发展的重大瓶颈,通过将部分事务处理转移到侧链或链下能够提升区块链网络的性能。部分功能创新也可以通过侧链实现,从而保证主链的安全性。
实现跨链互操作。单一的区块链系统相对封闭,随着区块链技术的迅速发展,链与链之间的“互操作性”问题逐渐凸显。跨链互操作的具体应用场景包括但不限于跨链支付结算、非中心化交易所、跨链信息交互等。
1.3 跨链发展历程
2013年之前,区块链的发展主要集中在单一区块链。2013年以来,跨链技术蓬勃发展,跨链的几种主要模式(公证人机制(Notary schemes)、侧链/中继(Sidechains/relays)、哈希锁定(Hash-locking))相继被提出。
2013年5月,Tier Nolan在BitcoinTalk论坛提出了“原子转移(atomic transfers)”,原子转移又称原子交换(atomic swap),指构成一笔完整跨链交易的子交易同时发生或不发生,不存在第三种中间状态。该方案经过改进后成为跨链的一种主要模式,即哈希锁定模式。
2014年10月,BlockStream首次明确提出侧链的概念,锚定式侧链(Pegged Sidechains)利用双向锚定(two-way peg)机制,能够实现加密资产按照某种汇率在侧链和主链之间转移。2016年12月,BlockStream进一步提出了强联邦侧链(Sidechains with Strong Federations),通过引入由多方控制的多重签名地址减少延迟并提升互操作性。
2015年2月,Poon发布了闪电网络(Lightning Network)白皮书,基于哈希锁定实现资产BTC链下交易。
2015年10月,Interledger Protocol白皮书发布,基于公证人机制实现不同账本间资产的转换。
2016年5月,BTC Relay基于中继实现BTC到ETH的单向跨链连接。
2017年,Polkadot和Cosmos提出跨链基础设施中继平台方案。
1.4 跨链关键问题
实现跨链的两个关键问题分别是跨链交易的原子性和跨链交易验证。通过保证跨链交易的原子性能够实现跨链资产互换,具体实践中主要依靠哈希锁定实现。跨链资产转移还需要进行跨链交易验证。
跨链交易的原子性是指跨链交易要么成功,要么失败,不存在第三种中间状态。一个完整的跨链交易由多个子交易构成,子交易分别发生在不同的区块链系统中,彼此相互独立,跨链交易的原子性要求保证一笔子交易成功后,后续的子交易也能够成功,或者后续的子交易失败,前面的子交易能够撤回。
跨链交易验证指对另一条链的交易进行验证。验证包括两个方面,一是交易已经被写入账本并且满足最终确定性,二是进行跨链数据传递,一条链能够验证另一条链的交易状态。
跨链的主要模式
通过哈希锁定能够保证跨链交易的原子性,对于相互独立的两条区块链而言,为实现跨链交易验证不得不依赖于外部第三方进行信息交互,根据第三方的工作范围可以分为公证人机制和中继模式。
在公证人机制下,第三方负责数据收集和交易验证。
在中继模式下,第三方仅负责数据收集,交易验证由目标链完成。
2.1 哈希锁定:跨链资产互换
2.1.1 提出背景
哈希锁定源于原子交换,最早的应用是BTC的闪电网络,闪电网络提供了可扩展的微支付通道,通过将部分交易转移到链下进行解决区块链网络的交易拥堵问题。
2.1.2 基本思路
简单而言,哈希锁定模式利用哈希锁和时间锁保障跨链交易的原子性,即只有满足一定的时间条件和哈希条件交易才能够完成。HTLC(Hashed Time-Lock Contract,哈希时间锁协议)是原子互换协议的具体实现。
哈希锁:Alice对密钥a进行哈希运算得到H(a),并将函数H和H(a)告诉Bob,Bob利用H和H(a)验证Alice提供的密钥的正确性。
时间锁:以BTC系统为例,BTC时间锁的实现方式有两种,一种是绝对锁定,即回撤交易在某个时间范围内不生效,另一种是相对锁定,即相对某个时间或事件锁定交易。
HTLA(Hashed Time-Lock Agreements,哈希时间锁定合约) 是HTLC的泛化协定,由Interledger提出。在该协定下,任何中心化或非中心化账本无论能否支持HTLC,均可利用HTLA 实现跨链资产互换。
2.1.3 案例:闪电网络
闪电网络针对BTC网络提出,其主网已于2018年3月15日上线。2018年3月20日,闪电网络受到DDOS攻击,200多个节点被攻击下线。闪电网络主网上线以来节点数量、通道数量和网络容量不断增长,根据BitcoinVisuals数据,截至2019年4月24日,闪电网络节点数量超过4200个,通道数量超过38000个,网络容量约为575万美元。
闪电网络的两种主要协议分别是RSMC(Revocable Sequence Maturity Contract,序列到期可撤销合约)和HTLC(Hashed Time-Lock Contract,哈希时间锁协议)。RSMC的作用是鼓励交易双方尽可能久的利用通道进行交易,对于主动终止通道的交易方进行惩罚,即主动终止通道的一方资金到账时间更晚。HTLC的存在使得交易双方之间即便没有支付通道,但是只要能够找到一条支付路径即可实现交易。
(1)创建交易
Alice和Bob通过闪电网络转账,双方各拿出0.5BTC,构建一笔保证金交易FundingTx,输出需要Alice和Bob多重签名。此时,双方未对Funding Tx签名,交易不广播到区块链上。
Alice和Bob分别构造Commitment Tx:Alice构造C1a和RD1a, Bob签名后交给Alice;Bob构造C1b和RD1b,Alice签名后交给Bob。双方均完成对commitmentTx的签名并交换后,再对FundingTx进行签名。
C1a的第一个输出需要Alice的另一把私钥Alice2和Bob的多重签名,第二个输出为给Bob 0.5BTC。RD1a为C1a第一个输出的花费交易,输出给Alice 0.5BTC,此类型交易带有sequence,作用是阻止当前交易进块,只有前向交易C1a经过sequence个确认才能被打包进区块。
由于C1a和C1b花费的是同一个输出,故这两个交易中只有一个能被打包进区块。若Alice广播C1a,则Bob立即拿到0.5BTC (C1a的第二个输出),而Alice需要等C1a得到sequence=1000个确认,才能通过RD1a的输出拿到0.5BTC。同理,若Bob广播C1b,则Alice立即拿到0.5BTC,Bob需要等待C1b得到sequence=1000个确认,才能通过RD1b的输出拿到0.5BTC。
(2)交易更新
RSMC更新过程如下:Alice向Bob支付0.1BTC,双方创建新的CommitmentTx,即Alice创建C2a和RD2a,Bob创建C2b和RD2b,此时需要废弃掉无效的状态C1a和C1b。
Alice将Alice2的私钥交给Bob,表示Alice放弃C1a,承认C2a。RD1a中sequence的存在使得Bob可以在Alice违约后有一定的时间实施惩罚交易,即如果Alice违约,Bob能够修改RD1a的输出给自己,即形成交易BR1a,Alice将面临失去全部保证金的处罚。这种机制使得双方都会选择删除旧的状态,广播更新后的状态。
(3)交易关闭
按照最终余额构造Commitment TX,无需设置多重签名和构造惩罚交易等。哈希锁定模式实现了跨链的资产互换,每条链上的资产总量不变,只是资产持有者发生了改变,跨链资产转移需要保证跨链交易的真实性,因此涉及到实现跨链交易验证的两种模式:公证人机制和侧链/中继模式。
2.2 公证人机制:依赖第三方验证交易
2.2.1 提出背景
2015年10月Interledger Protocol(ILP,跨账本协议)白皮书发布,这一协议由Stefan Thomas和Evan Schwartz创建,其目的就是让跨账本交易变得更加方便,瑞波随后引入了这一协议。之所以称为跨账本而不是跨链,是因为该协议不仅支持非中心化的区块链账本,还支持银行等机构的中心化账本,是更广义的“跨链”。
2.2.2 基本思路
由一个或一组节点作为公证人进行数据收集和交易验证。公证人同时跟踪两条链的状态并告知对方,交易双方完全依赖于公证人验证和实现交易。
依据公证人的构成和签名方式,公证人机制具体分为三类。公证人可以由一个或一组节点充当,由一个节点作为公证人即为中心化公证人机制,在由一组节点作为公证人的情况下,根据各个节点的签名方式不同分为多重签名公证人机制和分布式签名公证人机制。
中心化公证人机制:单一节点或机构充当中心化公证人。中心化公证人机制是相对比较简单的模式,与传统的两个主体通过第三方间接交易类似,公证人同时兼容两个或多个系统,其优点在于处理速度较快,技术结构相对简单,但是这种方式的问题也很明显,即中心化的公证人的安全风险。
多重签名公证人机制:多个公证人在各自账本共同签名达成共识。这种机制弱化了中心化公证人机制的中心化问题,安全性相对更高,前提是交易链需要支持多重签名功能。
分布式签名公证人机制:与多重签名公证人机制的主要区别是采用了多方计算的分布式签名。对于跨链交易,系统仅产生一个密钥,密钥以碎片形式发送给每个公证人节点。
2.2.3 案例:Interledger Protocol
Interledger Protocol最初是公证人机制的代表,在发展过程中融入了哈希锁定的理念。在该协议下,处于不同账本系统的发送者与接收者可以通过一个或多个连接者进行跨账本交易,连接者提供转发数据或资金的服务并收取相应的费用。通过为跨账本交易的参与方提供资金托管,只有在分类账收到接收方已经收到资金的证明时,才会将相应的资金发给连接者,同时保证当连接者完全执行协议后将会收到来自发送者的资金。交易托管与执行分为两种方式,其中,“原子模式”是由参与者选出一组公证人来协调交易;“通用模式”无需公证人,通过参与者给予激励以及反向执行指令来确保安全支付。
2.3 侧链/中继:目标链自行验证交易
2.3.1 提出背景
2014年BlockStream首次明确提出侧链概念。2014年10月,BlockStream发布白皮书《Enabling Blockchain Innovations with Pegged Sidechains》,首次明确提出侧链的概念,按照白皮书中的定义,侧链是验证来自另一条区块链的数据的区块链,通过双向锚定(two-way peg)机制,加密资产能够按照某种汇率在侧链和主链之间转移。
侧链提出的背景:BTC创新与安全的权衡。一方面随着区块链技术的发展,越来越多的创新开始出现,Ethereum、Bitshares等带来的智能合约和非中心化应用广受人们追捧,反观BTC则需要在性能和功能等众多方面做出提升,但是出于安全考虑,BTC的创新一直相对保守;另一方面竞争通证和山寨通证的大量出现也引发了BTC核心开发团队对于开发和市场碎片化的忧虑。侧链(sidechain)能够在保证主链安全性的条件下,实现性能和功能方面的扩展,成为BTC的理想选择。在这种情况下,Adam Back、Matt Corallo等BTC核心开发者共同发起成立了BlockSream公司。
2.3.2 基本思路
侧链/中继模式下,目标链不依赖于第三方进行交易验证,而是自行验证来自发送链的数据,具体的验证方式有所不同,如BTC-Relay是通过SPV(Simple Payment Verification,简单支付验证)进行交易验证,Cosmos是通过节点签名数量。
2.3.3 案例:BTC Relay
BTC Relay是ETH上的一个智能合约,通过存储BTC区块头验证BTC交易。由于BTC区块链的交易信息以Merkle tree的形式存储在区块头中,BTC Relay可以利用SPV机制验证BTC交易。BTC Relay的功能实现依赖于Relayer提交正确的区块头数据,及时提交正确的区块头数据的Relayer将会得到奖励。BTC Relay通过相对简单的设计实现了ETH用户能够创建依赖于BTC区块链事件的智能合约,但是BTC Relay只实现了BTC到ETH的单向跨链。
2.3.4 案例:Cosmos
2016年6月,Jae Kwon提出了Cosmos,支持各种区块链接入与互操作。Cosmos由由Hub(枢纽)和Zone(分区)两部分组成,分区采用Tendermint共识,可以支持多种区块链,同时分区数量可以扩展。分区之间通过枢纽遵照IBC协议(Inter Blockchain Communication Protocol,链间通信技术规范)进行交易,IBC协议定义了区块链注册、数据包格式、交易类型和数据包交付确认流程等内容。
Tendermint共识过程与BFT类共识类似,开始时节点对新一轮的区块进行提议,合格的提议区块在预投票(Prevote)环节获得2/3以上投票则进入预认可(Precommit)环节,再次获得2/3以上的预认可后即获得正式认可(Commit)。
2.3.5 案例:Polkadot
2016年11月,Polkadot白皮书发布,提出了一种异构的多链架构,支持多个高度差异化的共识系统去中心化、去信任地进行互操作和访问。Polkadot网络由中继链(Relay chain,负责协调链间的共识和交易)、平行链(Parachains,负责收集和处理交易)和转接桥(Bridges,负责连接其他异构的区块链)组成。
网络中的四类参与方包括验证者(Validators,负责验证平行链的数据)、收集者(Collator,负责采集平行链的数据并提交给验证者)、提名者(Nominator,为验证者提供押金和信用背书)和渔夫(Fisherman,负责举报和证明恶意行为)。
Polkadot跨链交易信息传输的简单过程如下:
(1)平行链A上的收集者收集交易并验证交易的有效性,将交易打包进区块;
(2)验证者验证其收到的只包含有效交易的区块,并支付一定押金;
(3)在提名者为验证者支付了足够的押金后,广播该区块到中继链;
(4)验证人对中继链区块达成共识并将平行链A的交易信息传输到平行链B。
总结
总体而言,跨链技术在过去几年间得到了迅速发展,相关的项目层出不穷。现有的跨链相关项目中,基于侧链/中继模式的项目占比最高;基于哈希锁定的闪电网络自主网上线以来节点数量、通道数量和网络容量不断增长,技术可行性得到了较好的验证;除了上述的三种跨链主要模式,还有一类项目通过规定一系列通信数据格式与协议规范等实现区块链接入,这类项目称为通信协议簇类项目,这类项目未来能否成为主流跨链方案一定程度上取决于业界对于相关标准规范的接受度。
目前跨链技术尚未完全成熟和广泛应用,仍有较大的提升空间。一方面跨链所面临的技术问题具有一定的复杂性,另一方面区块链技术也在飞速发展,区块链的类别和技术复杂度等不断提升,导致对于跨链技术更迭的要求也在不断提升。
跨链技术发展与跨链技术的应用模式密切相关。除了跨链本身的技术形态演进,跨链未来的进一步发展也依赖于跨链应用模式的构建和发展,随着区块链行业应用的逐步落地和不断丰富,对跨链的需求将不再局限于交易。
附注:
因一些原因,本文中的一些名词标注并不是十分精准,主要如:通证、数字通证、数字currency、货币、token、Crowdsale等,读者如有疑问,可来电来函共同探讨。