APP下载

区块链互操作性技术研究进展

2024-01-11陈先意丁思哲付章杰

计算机与生活 2024年1期
关键词:公证人侧链哈希

陈先意,王 康+,丁思哲,付章杰,2

1.南京信息工程大学 数字取证教育部工程研究中心,南京 210044

2.西安电子科技大学 综合业务网理论及关键技术国家重点实验室,西安 710126

区块链技术因其去中心化、不可篡改的优良特性引领新一代数据存储技术。然而,区块链数据账本的封闭特性限制了链间数据交流,致使技术应用场景受限。区块链互操作性技术旨在打破链间通信壁垒,实现跨链交互,对区块链技术的发展意义不凡。

目前,区块链互操作性领域已经取得了一些成果,早在2016 年,Buterin、Hardjono 等人[1-2]便阐述了区块链互操作性的定义、分类及其重要意义,但由于技术发展时间较短,该文仅对各类跨链方案进行大致介绍和设想。Lohachab 等人[3]首次对区块链互操作性及其相关问题给出明确的密码学定义,并大概列举相关解决方案的技术特性,但未能对各方案流程给出详细说明。Monika等人[4]更新了分类方法,从公证人、侧链/中继、智能合约方案、桥接方案、路由方案分类介绍跨链技术,但其对技术方案的介绍较为精简,缺少流程分析和特性对比,值得进一步扩展。

国内关于区块链互操作性的相关研究起步较晚,相关研究工作较少。李芳等人[5]最早在国内总结了当时的跨链技术,简要介绍了2018 年之前的24 种主流跨链技术的原理和实现思路,以及跨链技术面临的12 项主要问题。但受限于技术瓶颈,当时的跨链技术或协议多数仅停留在白皮书阶段,无法结合实际探讨及分析,且其中部分技术已经大幅更新。同时期的路爱同等人[6]将主流跨链技术分为四类并从理论上给出解释——公证人机制、侧链/中继、哈希锁定、分布式私钥控制。之后,郭朝等人[7]基于哈希锁定、公证人、侧链中继三个方向介绍了跨链技术,提及了一些更先进的跨链技术,包括微支付通道、闪电网络及简单支付验证(simplified payment verification,SPV)双向锚定等,并结合实例对Polkadot、Cosmos和Plasma三种方案进行流程分析。随着分布式私钥控制技术兴起,李洋等人[8]从分层角度分析了区块链扩容技术,将其分为合约层+应用层、数据层+网络层+共识层+激励层、网络层+传输层协议,对相关技术的原理进行了详细介绍,但未能结合实例进行分析。徐卓嫣等人[9]从安全、连接、信息同步等角度分析了区块链跨链的各种实现方案,具体分析了Interledger、Cosmos和Polkadot三种项目。何帅等人[10]在传统分类基础上,对各方案的性能进行了详细分析对比,做出了一些补充。

区块链作为一门新兴技术,其技术迭代速度极快,现有的归总和讨论亟需进一步更新,尤其需要对项目实例进行技术流程与特性的全面总结分析。本文将结合区块链互操作性技术的最新进展,从最新的技术发展对不同结构的区块链的适用性方面总结现有的区块链互操作技术。

1 区块链及互操作性

1.1 区块链简介

区块链(Blockchain)是一个可以抽象成由多个数据块依照时间顺序串联而成的一条单向数据链,如图1 所示,其中每个数据区块内部包含多个交易(Transaction)。对每一个交易,区块链系统采用哈希算法将其转换成固定长度的字符串,然后把各字符串两两组合作为输入生成新的哈希字符串。多次重复上述流程,直到最后只剩下一个哈希字符串,即Merkle根字符串。

图1 区块结构示意图Fig.1 Block architecture

依据哈希算法的特性,攻击者对已发布区块交易的任何篡改,均会导致Merkle 根字符串不可预测的变化。从而验证者只要查验Merkle 根字符串即可判断区块信息是否遭到篡改,实现对区块内信息正确性的快速验证。将上述思路从单个区块拓展到整个单向数据链即可实现整个区块链系统账本的防篡改。这里,最经典的区块链系统就是比特币(bitcoin,BTC)[11]。

进入区块链2.0 时代,智能合约成为区块链的重要特性,代表性的系统就是以太坊(ethereum,ETH)[12]。以太坊通过对智能合约的支持,降低对区块链应用开发的技术要求,快速丰富了以太坊社区,实现对比特币的弯道超车,两种系统的交易量对比可见图2。智能合约本质上是一段可以自动执行预定合约条款的计算机程序。当智能合约的满足条件被触发时,合约代码将自动执行。智能合约极大提高了区块链的运转效率,预拟定的合约流程也能降低恶意方干预的概率,节省信任成本。

图2 BTC和ETH年平均日交易数量数据图1)数据来源https://bitinfocharts.com/,选取每年每季度第一个月第一个有记录的数据。Fig.2 Annual average daily number of transactions in BTCÐ

现如今,区块链去中心化、安全性、独立运作等优良特性已经得到社会各界的广泛认可,许多区块链项目已经在社会生活的多个方面落地运营。例如美国医疗保健领域的Patientory[13]使用区块链搭建医患沟通平台,维护医疗记录;Shipchain[14]使用区块链追踪记录供应链的物流运输过程;用于政府选票收集的Voatz[15],使用区块链保证公民投票的安全性;用于物联网[16]设备的Xage[17],使用区块链监测违规行为等。我国也在积极探索区块链的应用场景,例如在中国雄安落地的数字人民币穿透支付业务[18],扩展了区块链支付场景;最高人民法院加强区块链在司法取证等方面的应用[19]。

区块链技术之所以跨领域广泛流行,主要由于其具有两个特征:(1)对数据账本采用分布式存储;(2)实行高度封闭管理。前者能够解决传统的单点故障问题,防止数据丢失;后者限制数据的访问与修改权限,防止数据篡改,两者的结合有力地保障了数据账本的安全性。

然而,这种封闭式的数据账本管理,也极大牺牲了区块链系统的兼容性和扩展性。目前全球范围内至少有数十种公共区块链账本在广泛使用(公共区块链账本市值占比见图3),这些账本及其应用相互独立,各自维护自己的账本,不与其他账本进行任何信息交换,导致某一领域的信息始终只在该领域的链上流转,而无法在更广泛的领域内移植利用,从而限制了数据范围,引发对区块链存储方式的质疑。2

图3 全球区块链总市值占比图2)数据来源https://www.coincarp.com/zh/,https://bitinfocharts.com/,2023年1月1日。Fig.3 Proportion of global blockchain market capitalization

除此之外,区块链的封闭性导致旧系统难以实现新功能。以比特币为例,尽管以太坊智能合约技术已经发布并流行数年,然而比特币至今仍未找到一种完备的兼容智能合约技术的升级方案,一定程度上导致其存量用户的流失和新用户增长迟滞。

在发展设想中的区块链3.0 时期,区块链技术将成为“万物互联”的一种底层协议,它将在社会治理领域全面铺开,囊括身份认证、公证、仲裁、审计、域名、物流、医疗、邮件、签证、投票等几乎全部的社会领域。而单一的区块链系统不可能承载海量的跨领域信息,因此,发展现有的区块链系统并研究链间互操作技术迫在眉睫。

1.2 互操作性技术简介

区块链互操作性[20]技术,又称为区块链跨链技术,从应用目的上可以分为浅层、中层、深层三种类别:

浅层跨链方法主要指的是区块链扩容方法,该类方法面向已经大规模运营的区块链,在不修改链结构的前提下对现存区块链进行扩容、改善吞吐量、增强安全性,帮助区块链开发并及时兼容更多的新技术特性,使其具备更长的生命周期。然而,这类方案通常只针对某个特定的链(尤其是公链)进行改进,普适性有限。代表性方案包括:用于扩充比特币功能的BTC-Relay 和提升比特币吞吐量的Lightning。

中层跨链方法是面向已经小规模运营的区块链的互操作方案,一般为联盟链或私有链,旨在寻找对已有的区块链仅作少量改动或不做改动的条件下,实现多个同构或异构区块链系统之间的信息交换和资产转移等链间操作,代表性方案是被加密货币交易所青睐的Interledger方案。

深层跨链方法对现存区块链结构的改动较多,通过更改区块链底层架构,建立完备的区块链互联生态系统架构并构筑下一代区块链链间通信协议,如Polkadot 构建了全新的Parachains 链,只通过桥接方式兼容现存的区块链。

上述浅、中、深三类方法各有侧重,但都是为将区块链技术由一条条的独立链,进化为跨链互联、兼收并蓄的多链网络,迈入理想中的区块链互联网时代[21]。

本文将在前述工作之上,就各方案应用的主要目的和链间结构差异总结现有的区块链互操作性技术路线,并介绍已有的链间互操作方案实例,结合实例说明各技术的特性和优缺点。

2 区块链互操作性技术路线

当前,互联网中运行的区块链账本众多,部分区块链系统只运行于局域网中,用于企业内部数据管理等,主要使用私有链和联盟链,它们内部的多条链之间一般采用相似的结构,对区块链互操作性的要求主要是扩充现有链的容量和功能,难度较低。其余区块链系统如公有链一般面向整个互联网,它们对区块链互操作性的要求更高,追求在互联网内不同结构的区块链间建立一套完备的互操作方法。

为方便介绍,本文按照要互操作的区块链间结构差异的大小,将互操作技术分为同构扩容技术和异构互操作技术两种类型进行介绍,细节如图4。

图4 互操作性技术概览图Fig.4 Overview of interoperability technology

2.1 同构扩容技术

同构扩容技术,一般用于特定的某个或某类区块链,旨在对其实行链下扩容,亦或是针对区块结构、共识算法等链结构相同的公链实施互操作。按照提出的时间先后,同构扩容技术主要包含三类:传统侧链技术、支付通道和哈希时间锁、基于智能合约的互操作方法。

2.1.1 传统侧链技术

最先出现的同构扩容技术就是传统侧链技术,Back 等人[22]首先提出并实现用于比特币扩容。该技术指的是以某个区块链作为主链,在主链之外另外搭建一条或多条与其底层架构相似但功能定位不同的子区块链,这些子链被称为侧链。经过Kiayias、Gaži 等人[23-24]从工作量证明(proof of work,PoW)和权益证明(proof of stake,PoS)两种共识下分别构建原始模型并给出安全性证明,侧链的实用性得到肯定。

侧链技术的优势主要在于,可以在不修改原主链结构的前提下,通过与主链的联通,既为主链添加其原来不支持的新功能,还可以将主链的部分交易流程转移到侧链执行,实现主链的“减负”,提升主链的事务处理速度。

侧链技术的核心在于,如何实现资产在两条链上的转移。文献[22]提出了双向锚定技术解决这一问题,双向锚定流程图见图5。双向锚定的思想是,当需要将某资产从链1 移动到链2 时,首先在链1 上对需要转移的资产进行锁定,使之不能再继续流通,之后在链2上将同样价值的资产解锁并投入流通,反之亦然。双向锚定技术分为对称式双向锚定和非对称式双向锚定两种,对称式双向锚定要求主链和侧链均能够相互验证对方的信息,这常要求对主链进行一定的改造,使之能够识别侧链的信息,因此不适用于已经投入运营的大型区块链网络,一般用于新搭建的区块链网络,在搭建主链之初即设计好验证方式。相应地,非对称式双向锚定无需对主链进行额外的改造,一般只要求主链的信息能够被侧链完全验证,这意味主链其实并不“知道”自己存在侧链,两者的关系类似于寄生体之于宿主。这方便主链的资产向侧链转移,但增加侧链资产向主链转移的困难性。而且“宿主”的状态改变极易影响到“寄生体”的稳定性并引发错误。

图5 双向锚定流程图Fig.5 Flow chart of two-way pegging

目前,侧链技术的实现方式,按资产转移的托管方式分为以下几类:单一托管模式、联盟模式、SPV[11]模式、驱动链模式和混合模式。

(1)单一托管模式[25-26],指的是在主链上指派某个节点作为主链和侧链之间的托管方,资产的锁定和解锁均由托管方负责。显然,这会给区块链网络带来中心化的问题。

(2)联盟模式和单一托管模式类似,将托管方由单个节点扩展到了多个节点组成的联盟[27-28],使用动态成员多重签名机制(dynamic members multi signature,DMMS)使联盟节点共同负责资产的锁定和解锁,一定程度上缓解了中心化问题。上述的单一托管模式和联盟模式和下文公证人模式的机制类似,此处不再展开说明。

(3)SPV 模式[22,29-31],意为简单支付验证,来源于双向锚定技术。资产转出方需要将要转移的链上资产发送到链上的一个特殊地址,发送后等待多个产块时间确认资产确实被转出并锁定(在比特币中,一般为六个区块后确认该交易有效),之后该地址发送一份SPV 证明给侧链,证明资产被锁定,侧链接收到该SPV 证明后,再次验证主链上被锁定的资产,确认无误后解锁对应的资产。SPV 使用规范化的跨链流程,有效避免前两种托管模式下可能存在的托管方信任问题,目前得到广泛使用。

(4)驱动链模式[32],同样采用了资产托管方案。不同点在于将挖出新币的矿工节点作为资金的托管方,矿工节点集体监测侧链状态、共同投票决定资产解锁和转移,理论上该模式可以借助高比例的诚实矿工节点以阻止托管方的恶意行为。然而,随着矿池的出现,本应成为独立节点的零散用户,选择将算力交给少数矿池节点以保证挖币收益,这实质上减少了参与挖币的节点数目,导致诚实矿工节点的比例降低,影响到驱动链模式的安全性,引发较多质疑。

2.1.2 支付通道与哈希时间锁

传统侧链技术初步实现了跨同构链资产转移功能,但其对区块链的吞吐量性能提升效果不佳。为了解决这一问题,支付通道和哈希时间锁技术[33]被开发出来。

支付通道技术起源于对比特币的研究,设计之初并非为链下扩容而设计,而是为提升加密货币交易速度和减少手续费用而开发的一种链下支付技术。网络中的交易双方事先约定在某个通道(channels)中交易,但对通道中已达成共识的交易不会立刻广播给其他节点,双方约定都将比特币存入到由双方控制的多签名地址中,在进行零次或多次交易之后再在延后的某个时间公布通道内的交易,交易结束后智能合约自动调整双方的存款余额来实现链下支付,并将最终交易发布到区块链上。只要交易双方始终能够就交易前后的双方余额达成一致,这种交易模式就不会影响到区块链的稳定性。其原理如图6所示,支付通道以一次最终交易合并了通道内的三次交易,只需向区块链写入一次而非三次。采用先延迟后集中结算的交易模式,能够有效减少无关节点接收到的交易信息量,在不减少交易量和影响信任度的基础上,减轻链上压力。

图6 支付通道原理示意图Fig.6 Principle of payment channel

显然,在支付通道技术中,其设计的关键在于如何在未公布交易的情况下使交易双方无法否认已进行的交易,这一问题主要借助于哈希时间锁来解决。

目前支付通道技术相关研究不在少数,其中最成功的是闪电网络(Lightning Network[34])。

闪电网络使用哈希时间锁来解决跨链支付的原子性问题(即原子跨链交换[35]),利用哈希时间锁定(hash time lock contracts,HTLC)执行的跨链事务,只存在完成交易和不进行交易两种状态,不会有中间态导致资产损失,任何未完成的失败交易,在经过约定时间后都会执行回退,将交易资产返回原账户。

如图7,哈希锁定的原子跨链交换大致遵循以下流程:

图7 原子跨链交换流程图Fig.7 Flow chart of atomic cross-chain swap

(1)甲发起跨链交易,选择随机字符串s和超时时限t1,并经哈希计算得H(s),将H(s)和t1发送给乙;

(2)乙收到H(s) 和t1后,选择超时时限t2(t2<t1);

(3)甲使用H(s)和t1锁定资产,乙使用H(s)和t2锁定资产,双方相互查验锁定;

(4)甲在乙处使用H(s)的输入值s解锁乙的锁定资产,解锁后s的值被暴露给乙;

(5)乙使用s解锁甲的锁定资产;

(6)若在时限t2内,甲未能取走乙的资产,则交易失败,回滚;若时限t1内,乙未能取走甲的资产,则交易失败,回滚。

上述思路中,使用哈希算法保证了加密字符串s不易被破解,使用时间锁防止交易方的不诚信行为,这使得哈希时间锁定不借助可信中介即可实现链间传输。

但是,哈希时间锁定存在如下几个问题。第一,哈希时间锁涉及到链与链之间的直接交互,这种交互要求跨链过程中双方持续在线并监听区块链。同时,为防止链分叉等问题,双方每次的交互均要经历长时间的等待以确保交易得到确认,这要求双方长时间保持在线,严重降低了交互效率,导致该原子跨链交换方案在大型公链上的实用性有限。第二,哈希时间锁定要求通信双方事先通过带外通信约定部分交易参数,这种将安全问题由链本身转移给带外通信信道的方式并不能彻底解决问题。第三,从交易类型上看,哈希时间锁定是基于原子跨链交换的,它要求跨链事务必须是双向的,即双方都需付出资产才能获得对方的资产。这一先天特性决定原子跨链交换只适用于资产交换场景,而无法应用于资产转移,进一步限制了该方案的实用性。

闪电网络的哈希时间锁的实现思路与图7相仿,更多关于Lightning 的实现可以参考文献[36-38]。从实现中容易发现,闪电网络的微支付通道技术具备明显的不足——由于全连接网络的代价是不可承受的,不可能在所有交易节点之间都创建通道。对于两个不共享支付通道的用户来说,尽管使用支付通道网络(payment channel networks,PCNs)[39]可以借助邻居节点的开放通道路径实现相互支付,但PCNs 并不能完全保证安全性、隐私性和互操作性。

2.1.3 基于智能合约的互操作方法

迈入区块链2.0 时代,智能合约技术广泛流行。因此,除链-链跨链方案外,研究者们积极探索基于智能合约的区块链扩容[40]和互操作方法[41-43]。对于支持智能合约的区块链,该类方法可以在不改变其底层设计的前提下实现互操作性,均具备较强的跨链潜力。

此外,不同于传统跨链方法,基于智能合约的互操作方法主要基于浅层的合约层,一般无需深入到共识层以及数据层中协调链间差异,智能合约的开发工具和语言也相对统一,整体实现难度较低。

然而,由于该方法的发展时间较短,相关工作大多仍停留在原型研发阶段,仅能用于链内扩容或功能增强,目前仍未有达到链间互操作级别的、已开源运营的项目。

2.2 异构互操作技术

不同于同构扩容技术,异构互操作技术,不再局限于单一区块链或某类特定链,而是针对于区块结构、共识算法等多处不同的几条相互独立的区块链实现链间互操作。从难度上来说,由于区块链底层技术差别较大,异构链的链间互操作需要从跨链网关、投票机制等多方面进行统一,同时对各种异构链都需要进行针对性桥接和适配,因此异构互操作技术也从应用层的公证人机制逐步向底层的网关层发展。与同构扩容技术相比,异构互操作的实现成本更高、难度更大、效率相对较低,但其适用范围也更宽泛,具备更好的应用前景。

按照核心工作层由浅入深的顺序,异构互操作技术主要包含:公证人机制、中继方案和网络层互操作三类。

2.2.1 公证人机制

公证人机制是异构链间互操作技术中,最早被提出、最成熟的技术,该机制的发展先后经历了单签名公证人机制、多重签名公证人机制和分布式签名公证人机制[44]。该方法通过引入某个可信第三方作为中介(公证人),实现不信任双方的交易过程。公证人的角色类似于国家银行,交易双方相互不信任,但都相信具备公信力的国家银行。于是,银行分别收取双方约定好的欲交易的财产,确认财产品类和数目均满足约定后,将一方的约定物给予另一方。由于公证人机制无需考虑区块链底层的技术细节,只要确认双方的交易发生即可实现,可以普遍适配于各种同构和异构链,而且其本身实现难度低、事务处理速度快,目前常用于数字货币交易所之中。

(1)单签名公证人机制[45-46]。公证人一般由交易双方指定的某个节点或机构担任,跨链事务的全过程——事务收集、共识确认、事务验证等均由该公证人全权负责。显然,这对公证人的选择有着较高的要求,包括持续在线、计算机处理能力强、网络通信稳定等。这些条件决定了公证人一般局限于一些大型节点,因此整个区块链网络中的跨链事务不可避免会向这些节点处进行集中,并由此引发与区块链“去中心化”理念相悖的中心化问题,增加了单点故障和日蚀攻击等安全风险。

(2)多重签名公证人机制[47-49]。相比于单签名公证人机制,多重签名公证人机制将担任可信的公证人,从某个节点或机构拓展为多个节点共同担任的中介联盟,只有当联盟中节点对某事务的投票满足一定数量或比例时,跨链事务才会通过。多重签名公证人机制,一定程度上缓解了单签名公证人机制的中心化问题。然而,整个区块链网络的跨链权限,实际依然由网络中占比极小的一部分节点所掌握,并未完全解决中心化问题。此外,多重签名公证人机制需要在目标区块链上额外支持多重签名机制,增加了成本开销。

(3)分布式签名公证人机制[50]。分布式签名公证人机制主要创新在于使用类似门限签名的思想,将原本各节点分别使用自己密钥对事务进行签名的方式,修改为将一个密钥拆分为多份,每个节点各自保存密钥的一部分(密钥拆分为单向过程,无法还原)。当签名节点数量或比例满足条件后即可通过事务。新机制在事务收集和密钥验证方面强化区块链跨链的安全性,但并未能彻底解决公证人机制下的中心化问题。

三种公证人机制的思路对比见图8。

图8 公证人机制说明图Fig.8 Illustration chart of notary schemes

2.2.2 中继方案

公证人方案与生俱备的逆中心化问题严重限制了它的应用前景。为了摆脱来自主链的限制,一部分侧链方案逐渐发展成了全新的中继方案。中继方案最初是基于现存链搭设链间互通的中心平台,后来为了解决中心化问题,全新的独立区块链被搭建作为中继链,专门处理不同链间的操作,从而具备更加公开透明、兼容性强等特性,是目前最具前景的异构链间互操作性方案。

中继方案的初次尝试是Aion Network[51]。Aion Network 对传统侧链方案进行了改进,通过搭建一个中心hub,使得网络中的每个区块链都可为其他任一区块链创建对应的侧链。通过这种多层次的区块链网络结构,每个链都可以通过中心hub将自己的事务发送到其他区块链。此外,中心hub本身也是通过一个独立的区块链实现,并配备有侧链协议、通信协议及其他标准以连接到其他区块链,显然,Aion 已经具备当今中继链方案的基本雏形。但是,Aion 对侧链协议的要求较高,大部分现有区块链无法满足其要求,不能接入到Aion 网络中。Aion 方案的主要成果是开发Aion-1系统,可以与以太坊互联[52]。令人遗憾的是,Aion-1公司目前已转做基于区块链技术的开放式应用服务平台,该项目的研究已经停止,相关核心技术开发已经陷入停滞。

中继链方案可以视作对公证人机制和侧链方案的结合,其一方面吸纳公证人方案的中介思想,通过中介实现对各种异构链的广泛兼容而无需对原链做出修改,另一方面其使用第三方链作为中介,相当于中继链同时作为两条链的侧链,保证跨链中介的可信性和去中心化特性。

传统方案分类中一般还包含分布式私钥控制,该方案要求对公证人或中继链账户的私钥,使用安全多方计算如门限密钥等方式进行冗余拆分,然后再分发给验证者防止可能存在的恶意验证,强化中继链本身的安全特性。本质上来说,分布式私钥控制并不能算作一种独立的跨链方案,更多是作为公证人和中继链方案的一种改进。

2.2.3 网络层互操作

中继方案既要建立统一的中继链,还要在智能合约设计、产块机制和投票共识等多个方面对不同的区块链进行调整适配,这涉及到区块链六层架构3)现在一般认为区块链具备六层架构,自下而上为:数据层、网络层、共识层、激励层、合约层和应用层。数据层通过区块存储数据,网络层使用对等网络(peer-to-peer,P2P)技术传输数据,共识层维护节点间数据同步,激励层鼓励各节点参与记账,合约层封装智能合约和脚本,应用层部署应用。中的多个层,工作量和工作难度较大。

细究中继方案可以发现,其一般通过桥接或跨链网关实现与外部区块链的交互。跨链网关主要工作在区块链六层架构中的网络层,作用是翻译不同的链发送的信息流,帮助网络节点甄别区块链信息。这种在网络层面做变通的方法精准而高效。

因此,部分研究者们尝试移除中继平台或中继链,转而将链间交互协议[53]直接写入到网络路由层中,实现与合约层、共识层等解耦,实现思路如图9。这种网络层互操作方案,是一种自底向上的链间互操作思路,由于无需考虑冗杂的共识机制与产块机制等,大幅降低了互操作成本。

图9 网络层互操作示意图Fig.9 Chart of network layer interoperability

然而,网络层互操作方案在降低成本的同时,也产生了更多的不确定性。首先,新的底层协议接入到旧协议的顶层应用时,是否会发生冲突是难以预料的,受限于规模,协议在内部测试阶段很难排除所有漏洞;其次,假如区块链网络层协议出现问题,造成的负面影响远大于某个应用层软件所能造成的破坏,其漏洞可能颠覆数个区块链网络;最后,网络层互操作方案可能涉及到硬件协议的更改,其风险更加难以估量,方案落地应用也更加困难。

3 区块链互操作性常见项目

本章将按照同构扩容技术和异构互操作技术两种类型,分析现存的区块链互操作常见项目,详细说明它们的实现思路及发展方向。

3.1 代表性的同构扩容项目简介

与本文第2.1 节部分技术路线对应,本节将结合实际项目介绍同构扩容技术的发展,主要包括:(1)以BTC-Relay 为代表的传统侧链技术;(2)通过分析Lightning 之后的改进介绍支付通道与哈希时间锁;(3)在基于智能合约的互操作方法中,主要对Dinh和Babu两位研究者的方案进行了比较。

3.1.1 传统侧链项目——BTC-Relay

早期侧链技术最成功的代表是BTC-Relay[54],它是区块链网络中的第一条侧链,其研发之初的目的是服务比特币网络,旨在为旧的比特币网络添加智能合约,以及支持正在流行的去中心化应用程序(decentralized application,DApp)功能,帮助比特币实现与其他区块链网络(如以太坊)的互通,扩展区块链生态。根据BTC-Relay的官方描述,其实现原理是在网络中添加一种新角色“relayers”,该角色持续将比特币的最新区块头发送给以太坊上的智能合约“BTC-Relay”,通过在以太坊上同步比特币的区块头,实现对比特币交易的校验功能。从而以太坊上的智能合约即可验证比特币上用户发起的跨链交易,并将验证后的比特币交易转发到以太坊上。当然,这一验证过程不是免费的,用户需要额外支付费用到指定的地址。

尽管BTC-Relay 在理论上存在进一步扩展实现异构链互操作性的潜力,但仔细研究可以发现,BTCRelay 本身完全基于以太坊智能合约技术开发,也仅能部署在以太坊端而非跨链两端,仅支持以太坊单向验证区块链交易,反之则不行,本质上并未解决比特币本身的封闭性问题。因此,这是将以太坊作为比特币的一种锚定,扩展了以太坊的功能而非建立完备的异构跨链体系。在实际使用中,BTC-Relay 的使用人数也非常有限,黯淡的前景导致作为侧链先驱的BTC-Relay技术未能够持续发展壮大,目前仅有一个BTC-Relay项目仍在持续运营,而且长时间未能得到更新。

在BTC-Relay 之后,更多侧链优化的方案被提出。Li等人[55]提出了一种多链互联架构,该模型包含许多“卫星链”(卫星链实际是由网络中某些具备相同目标的用户子集共同维护的分布式私有账本,其应当被视作单个区块链的子链)。卫星链中的用户既可以担任该私有账本的验证者参与共识,也可以担任监管者和审计员,验证者和监管者将共同定义卫星链内部的访问控制、共识协议等策略,这是卫星链与传统侧链最大的不同。卫星链之间配备用于资产转移的原子转移策略,只需发送方和接收方各自在卫星链内部运行一轮共识即可完成资产转移(如果失败则需再运行一轮共识执行回滚)。该系统已实现并集成至Hyperledger Fabric[56]v0.6。卫星链通过支持自定义卫星链内部共识等,降低传统侧链下对主侧链高度同步的要求,缺陷是在系统内生成大量卫星链账本,因此以数据量暴增为代价实现类侧链的异构跨链机制,实用性亟待进一步论证。

侧链方案的研究起步最早,部分技术已经在国内落地实现,尤其是在供应链设计领域应用,可以参见张朝栋等人[57]和夏肇元等人[58]的研究。

3.1.2 支付通道与哈希时间锁项目

除前文提及的Lightning 项目外,有多项研究项目对链下支付渠道的结构细节进一步升级,其中包括Sprites[59]和Plasma[60]。前者提出的新协议,对跨通道支付下锁定抵押品的策略进行了改良,使得时间复杂度从几何级别降低至代数级别,并改进支付通道结构,增加在无链上交易情况下的少量存取款功能;后者将区块链看作一个树状结构,作为叶节点的子区块链定期提交Merkle 计算证明给树根的父区块链,父链只需通过部署的合约即可处理来自子区块链的少量提交,从而实现链规模的扩展。然而,目前该技术主要用于区块链扩容,对区块链互操作性的参考意义有限。

在升级支付通道技术的同时,还有一部分研究者专注于对哈希时间锁技术的研究[61]。Malavolta 等人[62]总结针对支付通道技术的最新攻击——虫洞攻击,该攻击可以借助图7流程中传输的H(s)帮助特定用户排除中间用户实现支付,从而窃取本应付给中间用户的手续费用。Malavolta 针对虫洞攻击提出一种新的加密结构匿名多跳锁(annoymous multi-hop locks,AMHL),并论证该技术可以部署于现有的大部分加密货币。尽管该结构会少量增加系统的运行时间和通信开销,但这部分开销相比于庞大的系统总体成本是可以接受的。

目前,上述哈希时间锁技术已经在新的Lightning Network 版本中进行了部署和测试。该方法的实现难度略低于其他互操作方案,国内已有研究单位实现并改进该方法,例如赛迪(青岛)区块链研究院[63]。

3.1.3 基于智能合约的互操作方法

Dinh 等人[41]旨在设计一种允许一个区块链中的智能合约访问另一个链中的智能合约的数据的方案。为此,Dinh 等人提出了三项实现问题,分别是安全且细粒度的智能合约访问控制、支持一般跨链交易和智能合约之间的通信协议。在上述三个问题基础上,Dinh 给出了初步的实现思路,包括访问控制与智能合约分离框架、支持小事务[64]的跨链事务模型和允许智能合约对外发送和接收消息的发布与订阅框架。目前该工作主要前景在于增强侧链系统中的子链通信技术。

类似地,Pillai 等人[42]提出了一种基于事务的区块链互操作性方法。该方法在应用程序层面构建交叉通信模型。模型中,发送方首先执行交叉通信事务获取链信息,然后将通信事务写入到链中并等待n个区块后确认,之后检索写入后的区块链信息一同发送给接收方以证明跨链事务真实性;接收方收到发送方的区块链信息后在自身的链上执行同类操作;最后,双方都可以把对方链上的事务信息作为有效交易的证明。该方法更多是在链上执行状态查询操作而非状态变更操作,因此具备较低的交叉通信延迟和成本。但需要注意,该方法仍处于早期阶段,其在信息交换过程中的安全性问题仍未得到解决。此外,完全基于智能合约的方法还存在受智能合约漏洞限制的问题。

对于一个区块链互操作方法,影响其性能的主要因素包括:系统处理事务的速度、加密及安全标准、跨链通信成本以及应用前景。为此,本文使用吞吐量、安全性、成本、实现难度、兼容性及适用链等评价指标对各个方案进行分析对比,对比结果见表1、表2。表中,吞吐量代表系统每秒能处理的事务数量上限(transaction per second,TPS),按照不同数量级划定高低;安全性主要取决于项目中共识协议的容错能力和加密技术的安全性,以及是否搭载了额外的抗攻击设计;跨链成本约等于网络通信费用和系统执行链间操作收取的交易费之和;实现难度则与适用链、项目规模等直接相关;对于同构项目,使用兼容性和适用链两项衡量应用前景,兼容性取决于项目与现存链对接时,是否强制修改原生链底层架构或协议等以适配,适用链即项目主要适用于哪种类型的区块链,或对区块链有何种要求。

表1 区块链互操作常见同构项目Table 1 Common homogeneous projects in blockchain interoperability

表2 区块链互操作常见同构项目性能Table 2 Performance of common homogeneous projects in blockchain interoperability

3.2 异构互操作项目

与本文2.2 节技术路线对应,本节结合实际项目介绍了异构互操作技术的发展,主要包括:(1)以经典的Interledger 为代表的公证人机制;(2)中继方案,主要分析了国外的Cosmos、Polkadot 和国内的WeCross、BitXhub;(3)在网络层互操作方法中,对Chain-Net前后的研究方案进行了概述。

3.2.1 公证人机制项目

Interledger[65]是最具代表性的公证人机制项目。它主要解决在资金支付过程中,资金发送方、连接方(connector)和资金接收方三者间的信任问题。通过在其支付协议中引入托管方,Interledger 对资金进行锁定防止连接方挪用,配以两段式提交(two-phase commit)协议实现资金在多方转移中的原子化操作。Interledger 实现了发送方先收到接收方的收款证明,再将资金支付出去,并通过协议保证发送方资金会被支付。

Interledger 存在两种托管和执行模式,在原子模式中,参与者需要选择一组无信任公证人而非高度可信的公证人集合,即可借助上述协议中的密码学原理协调转账;在通用模式下,其高度依靠对理性参与者的激励以消除外部协调需求,这决定其只能在账本和参与者均无错误的情况下使用。Interledger解决了连接方信任的问题,成为公证人机制的代表性案例。然而,Interledger 主要面向的是代币交换支付问题,难以应用到以数据交换为目的的私有和联盟网络,其本身作为网络层协议面对智能合约数据存储等应用层复杂机制也留下许多亟待解决的问题。

在Interledger 之后,公证人方案有了进一步的发展。例如Bifrost[66]采用公证人方案在不同的区块链上存储、检索和迁移数据。在该方案下,用户无需对区块链的底层进行修改,只需连接已有的应用程序接口(application programming interface,API)即可实现跨链。Bifrost 提供的API 极大抽象所需的区块链功能,隐去不同区块链的具体实现和语言差异,方便用户开发新的区块链应用程序和与区块链交互,用户只需按照模板通过API 输入,Bifrost 的链适配器(Adapters)会将用户输入转换为对应链上的事务,转发给链上节点处理,并在数据库中留存事务凭证和哈希以供稍后检索。目前,Bifrost在原型中已经实现了与包括以太坊、比特币在内的七个不同区块链的Adapters,这些Adapters包含了各链专用的事务模板、数据转换和远程过程调用(remote procedure call,RPC)通信等。Bifrost 主要贡献在于,通过公证人方案无需更改链底层,无需承担维护中继链的成本等。然而,它也具有传统公证人方案的缺点,如逆中心化和暂不支持智能合约通信等,这些问题仍然阻碍着公证人机制的改进。

3.2.2 中继项目

中继链作为目前最流行的跨链方案活跃于各大区块链平台,最为火热的两大实现方案是Cosmos[67]和Polkadot[68]。

Cosmos 构建一个由许多独立区块链组成的网络,各独立区块链被看作一个个“zone”,网络内部通过名为“Tendermint”的类实用拜占庭容错(practical Byzantine fault tolerance,PBFT)共识算法防止恶意行为,Cosmos 架构如图10。在Cosmos 网络初期,首先按照预设条件生成名为“Cosmos Hub”的第一个“zone”,这个“zone”即可被视作中继链。

随着其他的独立区块链不断加入到Cosmos 网络中,这些“zone”和Hub 持续交换最新的区块(独立链之间不会交换最新区块),以保证相互间的持续跨链通信能力,这就是Cosmos 中链间通信协议(inter-blockchain communication protocol,IBC)的基础原理。当Cosmos 网络中的独立链1 需要向独立链2 进行跨链交流时,链1 先与Hub 交流,通过IBCBlockCommitTx 事务对外同步自己的最新块哈希值到Hub,Hub接收到后再将其哈希值同步到链2;然后链1 再执行IBCPacketTx 事务发送数据包给Hub,Hub再转发到链2,链2通过已有的链1区块哈希即可验证该数据包确实有效并来自于链1,跨链通信由此完成(描述隐去了桥接Bridge 的细节)。通过上述的IBC 通信协议,各独立区块链均只需与Hub保持同步和直接通信即可实现整个网络中其他区块链的间接跨链通信。

与Cosmos 类似,Polkadot 同样是一种以链间协议为基础的网络平台即“Relay Chain”,允许在其上并行多个独立链即“Parachains”或通过桥接Bridge接入其他链如以太坊。Polkadot 将网络中的节点分为四类角色:平行链上的收集者、渔夫和中继链上的提名者和验证者。

(1)收集者Collators 维持特定的平行链的一个“全节点”,其中保留该平行链的全部必要信息,可以与该链的其他节点进行交易,收集者的主要任务是整理和执行链上交易,并将之和零知识证明一起提交给负责的验证者;

(2)提名者Nominators 实际是stake 权益的所有者,主要职责在于挑选可信的验证者;

(3)验证者Validators部署中继链客户端,其验证收集者所提交的证明、批准平行链的产块并随后执行中继链的共识产块过程;

(4)渔夫Fishermen 不参与中继链和平行链的产块过程,其职责在于监督上述角色的非法行为,并从中获得一次性奖励。

当需要跨链交易时,链1将跨链事务和其他事务一起放入自己的输出队列,链1的收集者识别该跨链交易,并打包发送给验证者,其间经受渔夫的合法性检查,验证者验证完跨链交易后,将其放入链2 的输入队列,并将其引用到中继链中,最后链2 执行输入队列交易即可。Cosmos 和Polkadot 之间的区别主要在于网络中子链的主权。Cosmos中子链在维护事务共识时是自治的,而Polkadot要求子链通过中继链形成全局共识以实现安全共享。

在Cosmos 和Polkadot 等研究基础上,更多有价值的中继链方案被提出。

聚焦于区块链互操作问题中可编程性和强通用性,HyperService[69]提出了一个跨异构区块链网络的、构建和执行DApp 的互操作平台,平台构建了一套专门用于编写跨链DApp 的统一状态模型,搭配可证明安全的通用区块链互操作协议以执行DApp。实际上,在HyperService之前,类似方案还有MultiChain[70]和Xclaim[71],遗憾的是前者只能用于同构网络,而后者专门设计了其智能合约,使之可以被网络中的用户公开验证,以智能合约取代可信中介,并结合链中继技术实现跨链状态验证。

上述介绍囊括了目前国外最热门的中继链跨链方案,而在国内最受关注的项目主要是WeCross[72]和BitXhub[73]。

WeCross 是由微众银行自主研发的开源区块链跨链协作平台,与Cosmos、Polkadot 等主要面向公有链比特币、以太坊为主不同,WeCross 目前只针对自有链Fisco Bcos 和联盟链Hyperledger Fabric 实现开发适配。

除应用场景不同以外,WeCross 在跨链技术上更侧重于在跨链路由层面的端口适配,放弃以往的类侧链SPV 证明的跨链流程,而使用哈希时间锁定技术执行跨链资产交换,通过在跨链网关层面构建通用的区块链接入范式与跨链交互模型,解决异构链的通信问题。在执行跨链事务时,WeCross 采用两段式提交协议,将事务分为投票阶段和提交阶段,包含准备、提交和回滚三种接口。流程可简述为:

(1)链1的跨链路由调用链1的跨链资源准备;

(2)链1 的跨链路由与链2 的跨链路由交互,使得链2完成准备;

(3)跨链路由先后向链1和链2提交事务请求;

(4)若执行失败,回滚事务。

整个两段式事务处理过程中,均记录在专门的治理链上,保证跨链事务的安全性。

目前,WeCross 主要应用于司法跨域仲裁、物联网跨平台联动、数字资产交换和个体数据跨域授权等领域。

BitXHub采用中继链+跨链网关的主流路线,构建自有的跨链传输协议(interblockchain transfer protocol,IBTP),协议中的跨链数据格式实现了通用的链间传输,但在跨链数字资产交换上针对不同的链结构提供具有不同特点的多种方案。对于图灵不完备的未消费交易输出模型(unspent transaction output,UTXO)下的区块链如比特币,BitXHub 采用区块头同步+多签地址托管的方式进行数字资产跨链,其流程和侧链SPV 证明大致相同;对于图灵完备的应用链,BitXHub 采用基于安全多方计算和门限签名的跨链方案,其跨链资产锚定流程和前述流程相同,但在资产解锁时,使用安全性更强的门限签名方式保证跨链事务的安全性。

涉及分布式私钥控制的项目主要是WanChain[74]。WanChain 是一个类以太坊的公有链,在以太坊基础上实现用于隐私保护的匿名交易,并专注于区块链互操作性,其使用名为“Galaxy Consensus”的PoS 共识算法,该算法使用分布式密钥共享和门限签名技术来改进随机数生成和区块链产块机制。WanChain本身可以被视作一个大型跨链账户,其中采用安全多方计算和门限密钥方式实现账户控制,而账户私钥本体从未在网络中出现过,只能通过多个参与方达成共识以构造签名。在Wanchain 网络中,由去中心化的跨链桥接节点负责执行和验证跨链交易,跨链桥有多种类型,典型的如直接桥,用户发起跨链交易时先将资产锁定在原链以换取Wanchain 代币,用户可以随时销毁该Wanchain 代币并取回自己的质押资产;在二层桥模式下,原链和目标链各部署着一个资产池,此时用户可以通过质押某代币直接获得另一代币。

3.2.3 网络层互操作

Wang 等人[75]参考互联网中的路由器,提出一种区块链路由器,每个独立的区块链网络都有一个“子链”,子链保存所连接区块链的账本副本。子链通过连接器连接到区块链路由,并经由路由器实现跨链交互。连接器作为子链和路由器之间的连接,本身是一个采用PBFT算法的区块链。

区块链路由和中继思想有异曲同工之处,但它不采用唯一的一个独立中继链,而是通过复数个相关子链加路由器的组合实现了类中继链作用。

Chain-Net[76]参考在不同计算平台之间实现无缝通信的网络路由协议,选择在网络层直接使用跨链网关(跨链网关详细介绍可参考文献[77])执行跨链事务,真正地把链间互操作性研究推进到网络路由层面。

和传统链中继方案不同,Chain-Net 在其构建的跨链通信框架中,不存在一个专门的第三方中继链用于发布、转发和执行跨链事务。这些跨链网关可视为各区块链的轻量级节点,各自拥有与独立的链和网关间的通信算法,从而在网络层实现握手机制、配置交换等。

目前Chain-Net框架已在其预设的健康电子记录(electronic health records,EHR)场景下实现Demo。Chain-Net 通过将跨链实现直接下放至网络层,实现在底层的面对面通信,开拓了一个面向异构链的链间通信新思路。

表3 和表4 对比了常见异构项目的性能。除前述的吞吐量等性能指标外,还需要重点关注异构项目的主要工作层、适用链和自发行代币。主要工作层的深浅直接决定了项目的互操作边界,一般的,底层方案具备更好的互操作性。适用链和自发行代币两项和项目的发展前景直接相关,前者决定了能否快速被市场所接受,后者决定了项目利益划分的话语权归属。

表3 区块链互操作常见异构项目Table 3 Common heterogeneous projects in blockchain interoperability

表4 区块链互操作常见异构项目性能Table 4 Performance of common heterogeneous projects in blockchain interoperability

4 研究展望

区块链技术的发展已有十几年,随着更高效的共识算法、更安全的加密货币、更隐秘的隐私保护技术不断被发掘,其安全性、隐私性等已经得到大众认可,目前正处在发展的快车道上。

然而,主流的区块链公链,为了最大化地保护其隐私,绝大部分不与外部交互数据或不开放对外数据接口,这极易造成区块链应用的固步自封,人为构筑了行业壁垒。随着互联网万物互联世纪的到来,完全封闭的数据账本技术在发展与应用中受到的限制愈发明显,因此,研究区块链互操作技术具有重要意义。

自2016 年Cosmos 和Polkadot 诞生后,近年来大量研究者投入到对中继链的后续研究之中,仅有少数研究者还在探索公证人和哈希时间锁定合约的后续可能性,该方向已少有大规模项目诞生并落地实现,但现有的各种方案仍然存在一定问题,主要包括以下方面:

(1)区块链互操作常存在安全漏洞,破坏了区块链本身的不可篡改特性。尽管大部分区块链互操作方案在流程设计上是安全的,但是将方案落实到智能合约的编程上时,人工编写的代码无法保障绝对安全。以太坊等已经使用专业的区块链编程语言如Golang、Solidity 等来规避语言二义性等问题,还有研究者在讨论智能合约漏洞检测技术[78-80],也是一种优秀的解决思路。

(2)区块链互操作过程出现问题,修复成本高昂。现有的各种方案,面对安全问题的主流解决思路是实现原子化操作,保障跨链流程出现问题后能够及时回退到过往的安全状态。但该方法具备显著的缺点,回退会导致网络中的所有正在进行和刚刚完成的操作均会丢失,如果回退的时间跨度较长,对区块链网络造成的负面影响是难以估量的。此外,考虑到由多个不同区块链共同组成的区块链网络整体协同问题,如何使回退方案在所有区块链管理委员会中一致通过也具备极大的困难。

(3)如何通过区块链互操作技术平衡不同链间的吞吐量差异。如今,如公证人机制和中继链中的部分方案,可以实现较高的处理速度。但互操作技术本身的理论处理速度不等同于实际运行中的速度。随着加入到互操作流程中的链增多,它们之间的速度差异也愈发巨大,由于需要等待区块链确认等因素存在,总体执行速度总是受限于吞吐量最小的某个区块链。现有的一种方案是设置事务缓存[48],以批处理的方式弥合速度差异。但该方案易引发新的安全问题,缓存事务能否被视为已经确认的事务这一问题有待商榷。

虽然存在诸多困难,但随着技术发展,这些问题均有望被逐个解决,该方向未来的发展趋势如下:

(1)同构扩容技术因其实现难度和成本较低,仍然是企业或个人搭建联盟链或私有链的首选。此外,现今许多区块链经过一段时间的运营都将存在扩容或升级需求,市场需求能够促进该技术的快速发展。技术发展前景主要集中于哈希时间锁定的流程改进和跨链智能合约的设计优化。

(2)异构互操作技术随着密码学技术和安全多方计算的发展,能够有力降低少数恶意用户的影响,促进公证人机制的快速发展,并将公证人逐步由少数的可信中介向多数的诚实节点拓展。考虑到恶意方在网络中所占的比例始终有限,公证权利的下放能够有效提升互操作的安全性,并借助规模效应平摊成本。

(3)异构互操作技术中,中继方案和网关层操作协议应当继续深入研究区块链底层,探索自底而上的完整互操作体系,而非局限于仅为某几个链搭建链间桥梁,规范链间底层协议以至于硬件规范等均不失为一种可行的思路。

除此之外,随着区块链发展的深入,对于从事区块链互操作的个人研究者和小型科研团队来说,由于设立的被网络节点广泛信任公证人难度较大,未来可能更多会投入到对小规模的公证人机制(包括门限密钥、多方安全计算等密码学加密存储和传输方面)、哈希时间锁定合约的流程完善和改进以及针对特定公链与联盟链的链下扩容技术的研究中;而对于大型研究团队、机构或公司,未来可能会借助自身的高信誉度建立类似交易所的大规模公证人机制方案,通过中介费等途径带来较高的收益,也可能会搭建自有的公链侧链(中继)生态系统。由于经济投入大、技术实现难度高、工作量庞大,大型机构容易与后续追赶者实现代差。预测未来区块链互操作技术的研究可能会出现“大小头”的两级分化局面,大型联盟或一家独大的可能性较大,需要提前警惕技术垄断风险的出现。

5 结束语

互操作性作为近年区块链的发展热点之一,直接决定了区块链技术能否摆脱单纯的数据存储技术的限制,更深入地参与到各行业应用中,影响区块链的长久发展。本文主要归纳总结了近年来面向不同架构的区块链互操作性技术发展路线,讨论了不同研究者们提出的思路和具体项目并进行分类,从多个角度对比了这些方法的性能和特性,最后总结了现有的主流研究方向适用人群,展望了未来各路线的发展趋势。

猜你喜欢

公证人侧链哈希
基于PageRank改进的公证人节点信用排序算法
酞菁锌的侧链修饰及光动力活性研究
含聚醚侧链梳型聚羧酸盐分散剂的合成及其应用
梳型接枝PVC的性能研究
基于OpenCV与均值哈希算法的人脸相似识别系统
紫杉醇C13侧链的硒代合成及其结构性质
民间借贷公证办理中公证人的职责
基于维度分解的哈希多维快速流分类算法
域外公证监督制度之比较考察及对我国的借鉴
基于同态哈希函数的云数据完整性验证算法