随着区块链技术的持续发展,其具备的多中心化、可信任等特性使其天然适合多方协作的应用场景,已经被广泛应用于各个领域。然而,由于区块链之间的高度异构性,以及其运行非常依赖内部各节点的共识协作,导致其具有一定封闭性,链与链之间以及链上链下的可信数据流通和价值转移成为其所面临的一项技术难题。因此,实现区块链之间以及链上链下的互联互通已成为一项紧迫的任务。 二、区块链互操作性 互操作性又称互用性,是指不同的计算机系统、网络、操作系统和应用程序一起工作并共享信息的能力。区块链互操作性旨在解决不同区块链之间以及链上链下应用和数据的可信互通,是区块链技术发展的重要方向。广义的区块链互操作是指链间互操作、层间互操作和链上链下互操作三种类型。狭义的区块链互操作特指区块链之间的跨链互操作。 本文所述区块链互操作性主要包括链间互操作和链上链下互操作两部分。其中,链间互操作主要通过跨链的方式实现同构或异构区块链之间的互通。而链上链下互操作包括区块链与上层业务系统的应用互通和区块链与外部数据源的数据互通,应用互通主要通过SDK或区块链中间件等方式实现链上链下业务协作,数据互通主要是通过预言机的方式将外部可信数据引入到区块链上。 图1 区块链互操作性组成结构 三、链间互操作 区块链在解决多机构间的信任问题以及实现联盟内部的数据可信互通方面具有显著优势,但由于区块链架构各异,使得数据在跨链互通时面临一定的挑战,进而形成了各个联盟间的数据孤岛。为了解决这一问题,众多跨链技术应运而生。 3.1 主流跨链技术 区块链跨链技术旨在实现区块链之间的数据可信互通,主流的跨链技术涵盖了跨链网关、侧链/中继链、哈希锁定以及公证人四种类别,其主要特征如下: (1)跨链网关:通过构建一个能连接不同区块链网络的通用跨链网关/路由,结合账户控制的方式,实现交易跨链传输和互认,进而实现信息交互和价值转移。 (2)侧链/中继链:通过侧链实现跨链资产转移和交互,或者利用可信任的中继链来连接不同的区块链系统,实现以链治链,确保跨链交易的安全。 (3)哈希时间锁定:利用哈希锁和时间锁的机制,将一条链上的资产映射到另一条链上,确保跨链交易的真实性和不可篡改性,实现链间资产互通。 (4)公证人:通过引入可信第三方机构来实现跨链交易路由和验证,确保不同链之间的安全通信,但该方式存在第三方机构的信任问题。 各类跨链协议在信任机制、复杂度、异构链支持和业务场景方面对比如下: 如表1所示,不同的跨链技术基于不同的信任机制,但大都支持异构链之间的跨链。同时,侧链/中继链技术由于有新链的引入,其实现和治理复杂度相对较高。在支持的业务场景方面,跨链网关和侧链/中继链技术适用于各类跨合约调用场景,公证人技术依赖第三方支持的跨链场景,而哈希时间锁定的方案通常只应用于链间资产交换,存在一定的局限性。 3.2 国内跨链平台 随着国内区块链平台的快速发展,各机构也纷纷推出自己的跨链技术平台,主流开源跨链平台包括BitXHub、陆羽跨链协议、长安链TCIP中继跨链以及WeCross。各跨链技术平台主要情况如下表所示: 如表2所示,当前国产区块链跨链平台在实现方式上大部分实现了跨链网关/路由类的设计方案,并且都选择了开源的方式来实现代码底层的可信任。同时,结合应用场景的不同,还有中继链+跨链网关、哈希时间锁定等方案的应用,兼容多种跨链方式,为用户提供更多选择。在适配的区块链类型方面,Fabric和FISCO BCOS均得到了四个跨链平台的同时适配,行业认可度较高。 3.3链间互操作交易流程 鉴于跨链网关直连模式和中继链+跨链网关模式在国内区块链跨链技术平台中的广泛应用,本文将以这两种跨链模式为例,分析链间互操作的交易流程。 (1)跨链网关直连模式 跨链网关直连模式是在两条不同的区块链之间,通过网关的方式实现跨链交易监听、解析、转换和事件管理等功能,进而实现同构和异构区块链之间的跨链互通。跨链网关的部署在同机构内可以采用中心化的部署方式,在不同机构间可以采用分布式部署的模式。跨链网关直连模式如下图所示: 图2 跨链网关直连模式示意图 以分布式部署为例,跨链网关直连模式简易交易流程如下: 1)用户发起跨链交易,来源链接收到跨链交易后,通过跨链合约等形式将该笔跨链交易的事务状态设置为初始状态; 2)跨链网关监听到来源链的跨链交易后,将其转发至目的链跨链网关,由目的链跨链网关将其转发至目的链; 3)目的链执行跨链交易后,通过跨链网关将执行结果反馈至来源链; 4)来源链收到跨链交易执行结果后,执行跨链交易回调操作,将跨链交易状态置为最终状态。 (2)中继链+跨链网关模式 跨链网关直连模式是在两条不同的区块链之间,通过网关的方式实现跨链交易监听、解析、转换和事件管理等功能,进而实现同构和异构区块链之间的跨链互通。跨链网关的部署在同机构内可以采用中心化的部署方式,在不同机构间可以采用分布式部署的模式。跨链网关直连模式如下图所示: 图3 中继链+跨链网关模式示意图 以集中跨链网关直连的模式(图3模式一)为例,其简易跨链交易流程如下: 1)用户发起跨链交易,来源链接收到跨链交易后,通过跨链合约等形式将该笔跨链交易的事务状态设置为初始状态; 2)跨链网关接收到来源链的跨链交易后,对其进行解析转换并路由至中继链,中继链各节点对交易进行验证和共识确认; 3)目的链跨链网关监听到共识通过的跨链交易,将其路由转发至目的链; 4)目的链执行跨链交易,并通过目的链跨链网关将执行结果返回给中继链; 5)来源链跨链网关监听中继链的交易结果并将其同步至来源链,同时两跨链网关发起回调操作,将来源链和目的链的跨链交易状态置为最终状态。 中继链的模式有效的解决了跨链交易的共识确认问题,可以较好的实现跨链治理,但是该模式引入的新的区块链,相比于跨链网关直连的模式增加了区块链跨链互操作的复杂性和实现难度。 四、链上链下互操作 4.1应用互通 业务应用通过调用智能合约实现数据上链,通过链上事件监听和链上数据查询的方式获取链上信息,进而实现业务应用与区块链系统之间的互通。主流区块链系统均通过提供各类SDK、RESTful API、HTTP/S API、RPC接口等方式提供应用便捷访问入口。区块链统一接入模型如下图所示: 图4 区块链统一接入模型 根据区块链系统的不同,其对外提供的接口类型也有所差异,但通常可以分为系统接口、合约接口、工具接口和事件接口四类。为了简化应用上链对接的复杂度,还可以通过区块链中间件的方式进一步整合和简化接口功能,对业务应用屏蔽复杂的底层接口,仅提供与业务密切相关的上链及查询等接口。 4.2 数据互通 传统的区块链业务处理模式要求每个区块链节点通过智能合约和本地全量账本数据独立处理业务请求,通常无法直接访问链外数据,但许多业务场景需要外部数据参与运算,例如汇率数据等。为确保各区块链节点获取的外部数据一致、可信,需要一个可信服务作为外部数据引入的桥梁,将外部数据安全可靠地引入链上。预言机正是一个能够获取、验证和传输链下可信数据到区块链上的工具。 […]
