基于区块链的智能服务交易跨链服务框架和通信机制

2022-05-10 版权声明 我要投稿

摘要:由于不同区块链上的区块链服务间缺乏有效通信机制,链与链之间难以形成有效互联互通。在智能服务交易过程中,交易主客体之间不仅仅是数据资产的单项转移,而且其服务范围扩展涵盖到更为广阔的数字资产转移场景。设计一种智能服务交易的跨链通信服务框架,并采用基于组件式、模块化设计,使智能服务交易主客体较为容易地接入服务框架,实现跨链可扩展性;提出适用于智能服务交易的三阶段跨链通信机制,保证智能服务交易跨链生态下的原子性和一致性。

1引言

随着区块链底层技术的快速突破和发展,越来越多的企业积极结合其业务需求,加速融入区块链生态,并逐步在跨境支付、供应链金融、电子医疗、物联网、防伪溯源等场景展开落地与应用[1-5]。然而,大多数的区块链应用项目是由不同的企业根据自身的需求开发,这些异构区块链网络之间无法进行互联互通,位于不同区块链上的服务缺乏通信机制,因此逐渐产生对不同区块链的跨链需求[6]。跨链技术的关键在于保障跨链交易的真实性、有效性和原子性,现有主流跨链技术主要分为公证人机制、中继/侧链模式、哈希锁定和分布式密钥控制。表1对这4种跨链机制的实现原理和优缺点进行了简要比较。

公证人机制是一种弱中心化的跨链项目解决方案[7]。公证人是交易双方选举一个或一组具有较高可信度的节点,对不同区块链上的交易事务进行证明和验证。公证人机制最大的优点是实现原理简单且无须复杂工作量证明,但存在中心化公证人机制的缺点。目前,有学者提出了多重签名公证人机制,在交易时随机选取一部分公证人利用密码学技术进行集体签名,从而弱化中心化风险。公证人机制的代表方案主要有Ripple团队提出的Interledger项目。Interledger协议允许两个不同的区块链系统通过第三方“连接器”来实现双方的价值、信息的交互和资产的转移。Wang等[8]提出了区块链路由器的概念,该路由器可根据通信协议动态分析并传输通信请求,维护区块链网络拓扑结构,实现链间通信。文献[9]建立了一种由数据层、网络层、共识层、契约层和应用层构成的新型体系结构,提供对多个异构区块链之间的互操作性。

中继(侧链)模式采用第三方媒介充当客户链的中继器,将跨链子交易的区块中继至相应的区块链上。中继模式与公证人模式的区别在于在该模式下,第三方媒介仅负责数据收集,而交易的确认和验证由目标链负责,Cosmos、Polkadot、BTC-Relay等是该机制的代表项目。Cosmos[10]提出了区块链间通信协议,通过在区块链内集成该协议,即可向目标链发送最新的区块头部信息、交易信息及其Merkle证明,从而达到链间通信的目的。Polkadot[11]提供中继链作为众多异构区块链系统链接的桥梁,中继链的作用类似于一个网关,统一管理共识安全和数据交互。BTC-Realy[12]是一种以以太坊为侧链、比特币为主链,并通过智能合约实现比特币与以太坊连接的技术。此外,Kan等[13]以及Chen等[14]提出了交互式多区块链架构及跨链协议,该架构通过创建多链动态网络实现跨链通信,该协议可为交易提供原子性和一致性保证。叶少杰等[15]提出了一种通用的链间消息传输协议,并实现了同时支持同构及异构区块链间交易的跨链技术示范项目平台BitXHub;Wang等[16]通过在区块链上使用由心跳机制扩展的两阶段提交协议,提出一种无须集中式组件、可在多区块链上进行交易的分布式提交协议。

哈希锁定是一种实现异链间资产交换的跨链技术,它要求交易的中间人和接收者在给定时间内给出正确哈希值。哈希时间锁定机制的核心思想是在规定时间内提供与哈希值对应的原内容解冻资产,代表项目为闪电网络−HTLC。文献[17]提出了一种哈希时间契约锁(HTDLC,hashedtimeddelylockcontract)协议,通过引入违约锁,从博弈论的角度降低了单方违约的可能性,减少单方违约造成的时间成本浪费。文献[18]提出了一种基于哈希锁定的多方跨链协议,在哈希时间锁定技术的基础上,通过使用自动撮合交易算法解决多方跨链资产转移和清结算的问题。文献[19]针对HTLC会将支付路径公开的缺点,从隐私保护的角度对其进行改进,提出了变色龙哈希时间锁定协议。

分布式私钥控制是将数字资产的所有权和使用权分离来降低中心化的风险。分布式私钥控制的原理是将数字资产的私钥分片并发送给分布式节点进行保存,将原链上的数字资产映射到跨链上,在跨链上根据交易信息部署新的智能合约,从而创建出新的数字资产,完成数字资产的跨链转移。该技术的代表项目是Fusion。Fusion[20]项目旨在构建用于加密金融应用运行的基础平台,通过该平台,多种数字货币可通过智能合约自由交互,实现价值互通。

综上所述,跨链技术作为连接各区块链的桥梁,其主要应用是实现不同区块链之间的资产原子性交易、信息互通、服务互补等功能。目前,由于不同领域的区块链服务没有部署在同一个区块链底层基础设施上,且现有项目及技术对这些基础设施间仍然缺乏相互通信的能力,故存在一定的局限性。本文基于现有研究,在智能服务交易的背景下,提出了可扩展的跨链数字资产模型架构,并针对可信跨链通道的构建方式进行研究,具体如下。

(1)针对智能交易服务的特点,设计一种交互式跨链通信核心流程和框架,该框架对跨链过程中的基础设施采用组件式、模块化设计,可通过这些模块较为容易地接入服务框架。

(2)在跨链通信服务框架基础上,设计了适用于区块链服务跨链需求的跨链通信机制,实现数字资产转移和信息互通,杜绝了中间公证人作恶的可能性,保障跨链交易的有效性。

(3)设计通信报文标准协议,并提出一种基于区块链的三阶段事务提交验证机制,保证跨链交易的原子性。

2跨链通信服务框架

为了便于区块链服务实施跨链通信,实现区块链服务的跨链需求,本文提出了跨链通信服务框架,该框架的通信整体架构是一个多层次的结构框架,采用组件式、模块化设计,降低了各功能的耦合性,如图1所示。

2.1区块链架构层

不同的区块链底层实现机制不同,但是核心模块在于基本数据结构、共识和加密算法。跨链涉及的数据维度包含区块、交易、合约、消息等方面,智能服务交易跨链协议通过提炼通用数据结构,将跨链交易生成标准交易的报文格式。共识机制是区块链系统中各个节点达成一致的策略和方法,根据系统类型及应用场景的不同灵活选取,并封装在区块链的共识模块中;而加密算法封装在区块链加密模块中,区块链系统通过多种密码学原理进行数据加密及隐私保护。此外,根据不同的业务需求,区块链架构层包含沙箱模块等其他模块,用于提供虚拟化隔离的安全容器,为智能合约的执行提供运行环境。

2.2数据服务层

交易相关方实体在接入框架时,通过跨链核心设施组件、密码学组件和存储模块实现跨链功能。跨链核心设施组件包含与应用链唯一对应的网关和基站节点群模块。其中,网关模块通过PC方式连接到应用链节点,监听并对应用链节点跨链交易进行合法性和可信性验证。基站模块本质上是一种连接不同区块链系统的交互组件,各个基站通过P2P组网的方式组成跨链路由网络。每个基站会维护全网的分布式哈希路由表,记录对应网关和应用链、网关与基站间的关联关系。每个基站由权威机构进行背书,并通过集群的方式增强可信度。

密码学组件为跨链应用链提供了密码服务功能。其中,非对称加密模块提供了支持椭圆曲线加密算法的密钥管理工具,可用于快速生成公私钥对、校验签名、解密密文,可在账户生成、访问控制等功能中使用。而哈希加密组件用于标准报文在跨链基站路由间的加密传输,为数据资产交易双方提供安全加密服务。而基站和网关的注册信息、CA证书、公共参数等框架相关信息以及缓存数据存储于存储模块。

2.3链间通信层

链间通信层包括服务链模块、链间通信模块和合约管理模块。其中服务链模块由基站和所属网关共同维护,当服务链节点接收到应用链发送的带有跨链合约调用请求后,首先对其合法性及可信性进行验证,验证通过后将该合约调用请求存入本地内存池中,并向其他节点广播达成共识。链间通信模块主要包含标准报文交易格式、三阶段跨链通信协议和基站分布式路由网络,保证了跨链交易的真实性、有效性和原子性。合约管理模块由跨链交易管理合约、应用链管理合约和服务链管理合约等智能合约构成。

(1)跨链交易管理合约由网关调用,用于记录跨链交易的全过程,从而实现对跨链交易的合法和可信验证。

(2)应用链管理合约由应用链管理员和应用链节点调用,用于创建和管理应用链信息以及节点在链上的权限等。

(3)服务链管理合约主要负责定义应用链上标准报文交易格式,以及存储跨链双方的价值转移规则。

3面向智能服务交易跨链通信机制

考虑到跨链结构的复杂度和可扩展性,本文在链间通信采用星形拓扑结构,为所有接入该集群的区块链提供跨链服务,如图2所示。

(1)应用链负责跨链交易的业务逻辑。

(2)路由网关用于应用链管理以及跨链交易的可信验证与可靠路由。

(3)基站路由网络集群担任区块链间收集信息和传播交易的角色,主要负责跨链交易智能合约收集以及转发等任务,以P2P自组网方式实现跨链交易在应用链之间的路由。

基站节点集群用于对应用链和中继链关联关系的管理以及跨链交易的可信验证与可靠路由。一般来说,不同的区块链之间没有统一的交易格式。

因此,本文设计一种标准交易报文格式T,可自适应转换为任意区块链系统发起的交易。当应用链的跨链交易发生时通过标准的跨链报文进行通信,统一标准交易报文数据结构如表2所示。

From和To字段分别代表主客体来源链和目的链的ID,在应用链向基站注册时生成。

Index是跨链交易的索引,跨链交易按其来源链ID分别进行排序编码。

Timestamp字段是跨链交易的时间标识。

Acknowledgement字段为布尔类型,用于目的链验证确认收到交易信息。

Content字段为跨链调用的内容编码,支持哈希加密,可由应用链的业务需求确定。

Proof字段存储了跨链交易合法性证明,为网关和基站跨链验证引擎提供具体的验证信息。Proof字段内容根据来源链的不同而不同,具体验证规则可通过动态加载的方式注册到网关验证引擎。

扩展字段Extra可根据应用链的业务需求进行自定义。

本文对来源链A中的交易地址A1到目的链B中地址B1的跨链交易Transfer用合约函数义为Tranfer(A1,B1,value)

本文定义TA和TB分别是应用链A和B对应的服务链内交易,并通过标准跨链交易为中介载体进行跨链传输。跨链交易的通信过程将应用链A的交易通过服务链的Package过程封装为标准跨链交易T,再通过对应目的服务链的Unpackage过程将T转换到应用链B中。

根据跨链通信模型,一次完整的跨链交易T的交易过程如下。

(1)交易主体向应用链A发送指令交易函数Transfer。

(2)网关在监听到跨链事件后,通过WASM验证引擎对交易进行真实性验证和合法性验证。验证通过后,构建Merkle证明及签名背书,并构造proof字段。然后,由网关封装成标准跨链交易T,经由服务链节点合法性验证并参与共识后,在服务链上构建跨链交易T的记录,并存储Merkle证明。

(3)当对应基站监听到服务链的共识跨链事件,将经哈希加密的标准报文T通过分布式哈希表中继传输到对应目的基站,验证其数字签名,并发送目的服务链节点进行共识。

(4)目的链网关监听到跨链事件后对T进行合法性验证,之后构建Merkle证明并用其私钥签名,发送至应用链B,服务链节点经合法性验证并共识后,更新跨链交易T的状态并存储T的Merkle证明,随后向来源链发送ACK消息进行三阶段交易原子性确认协议。

4跨链通信服务协议

在智能服务跨链交易的应用场景中,来源链需要确认资产交易是否到达目的链。此外,两个涉及交易的应用链在完成跨链交易事务后必须具备相同的记账结果。为了保证智能服务交易跨链交易过程的原子性和一致性,本文在文献[13]提出的三阶段跨链通信协议基础上,进一步适应智能服务交易跨链通信机制的需要,并对该协议添加可信性证明机制,以满足交易主客体之间的安全性需求,使交易结果保持一致。其中,路由网关充当三阶段协议中的协调者和验证者角色,而基站节点负责跨链交易协议下消息中继传输的功能。从Prepare阶段起,网关向全体参与跨链事务的资源发起阶段性请求,如果任意阶段消息返回或验证失败,路由网关就会发起交易的回滚请求(Rollback),进行非法交易的回滚操作,通过这种方式可以在任意阶段做出中止交易的确认请求。协议过程描述如图3所示。

(1)应用链A发起跨链资产交易TA,并向网关请求调用Prepare阶段,之后TA被转发到与应用链A耦合的网关1节点。

(2)网关1经可信和合法验证后,将TA通过Package过程转换成标准交易报文T,在服务链参与共识,并判断目的链地址是否在其管理的应用链地址列表。如果查询到目的链的注册证书位于基站管理地址,则执行Unpackage过程将T转换为TB,经由网关发送到应用链B中,否则通过基站分布式哈希表(DHT)的方式进行寻址,并发送到目的链所关联的基站,之后执行验证、共识和Unpackage过程。

(3))目的链B在接收到报文TB后进入Pre-commit阶段,对数字签名等进行验证,确认交易结果,并将确认结果ACK=1经由网关和中继基站发送给应用链A。

(4)当应用链A收到ACK=1的确认消息后,申请调用进入自身Commit阶段,执行Transfer,将交易T写入自身的本地账本中,并将确认消息ACK=1发送给应用链B。

(5)应用链B在收到ACK=1确认消息后,进入自身Commit阶段并执行Transfer合约,交易T的最终结果被记录到应用链B的本地账本。

(6)若应用链B在Prepare、Pre-commit和Commit任意阶段多次未按时接收到消息响应或交易验证失败,则通过网关和基站路由向应用链A发送ACK=0。

(7)应用链A在收到ACK=0消息后进行跨链交易T的回滚操作。

所有主客体应用链之间的交易通信是基于点对点传输的,然而基于点对点跨链交易事务的报文传输会受到数据包丢失、数据传输错误或其他网络问题的干扰。为避免网络不稳定导致报文传输交易失败,本文设计了一种跨链交易超时重传策略,如图4所示。

(1)应用链A在完成Prepare阶段和Package过程后,设置一个Timer。

(2)当Timer倒计时至0,如果应用链A仍然没有收到目的链B的ACK消息响应,则应用链A重新发送跨链交易T并重置Timer。

(3)应用链A最多重置三次Timer,如果三次始终没有收到目的链ACK消息响应,则应用链A执行跨链交易T的非法交易回滚操作,否则进入Commit阶段。

5安全性分析

5.1智能服务交易跨链协议的可信性分析

区块链重要的安全假设是“每个参与节点都存在作恶风险”,而在此假设下通过密码学和共识算法构建区块链分布式可信环境。但在跨链的生态环境下,单个区块链内部的可信环境无法被其他区块链所信任,因此需要引入额外的可信证明来实现智能服务跨链的信息交互。智能服务的跨链交易在proof字段中添加了Merkle相关证明,用于对应用链传输交易和回执的可信验证。本文为网关设计了一种高效可插拔的验证引擎,通过智能合约的方式管理多种验证规则,对不同应用链的交易进行合法和可信性检验。验证引擎工作流程分为3个步骤。

(1)协议解析:协议解析是验证引擎内部对跨链交易的解析。由于所有跨链交易都遵循跨链标准报文协议,该步骤可以解析出交易信息和验证信息作为后续验证引擎的输入。

(2)类型匹配:类型匹配是验证引擎根据上述协议解析步骤解析出来的来源链类型,匹配对应的验证规则脚本。

(3)规则执行:规则执行主要通过WASM虚拟机动态加载验证规则脚本,对跨链交易的Proof字段进行校验,保证交易的可信性。

智能服务交易的跨链协议采用区块头同步设计,将节点待跨链同步的区块头信息存储于智能合约。在应用链接入服务链之前,需要进行验证规则的编写和注册,并由服务链审核后部署到网关验证引擎。当进行跨链交互时调用跨链验证合约的接口,状态信息同步者将证明同步给目的链网关后,目的链节点将继续处理交易业务信息,如图5所示。

可靠性交互流程具体流程如下。

(1)来源链的跨链管理合约会为每笔跨链交易分配一个自增ID,并将跨链交易放入MerkleTree,而MerkleRoot会被放入待跨链区块的区块头中,完成后将该ID和区块高度等信息通过package操作生成标准报文推送至对应网关。

(2)服务链上基站负责监听这些跨链事件,当监听到一笔跨链交易时,网关节点根据ID和区块高度到来源链上获取Merkle证明,检验报文的Proof字段,并将Merkle证明和自身签名提交到目的链。

(3)目标链接收到该Merkle证明和网关的检验背书,并将标准报文进行Unpackage操作,获取对应的区块头,得到Merkleroot并验证在来源链上已完成的跨链交易的合法性,然后根据跨链交易的参数,跨合约调用目标链上的智能合约,完成目标链上业务信息的处理。

5.2智能服务交易跨链协议的可扩展性证明

对于区块链的可扩展性,有两个重要的衡量指标:交易的吞吐量(区块链单位时间处理交易的数量)和交易的确认时延(交易被打包到区块中并被确认不可逆的时间)。智能服务交易跨链平台架构的可扩展性表现为随着接入应用链数量的增加以及交易的增多而导致吞吐量和时延的变化情况。本文部署两条Hyperledgerfabric区块链节点集群分别作为主客体的来源链和目的链,并对每条应用链部署一个跨链网关。通过不断提高发起主客体应用链间资产交易来测试上述性能。不同区块链集群的峰值吞吐量如图6所示,不同数量区块链集群的交易确认时延如表3所示。

可以看出,当系统部署应用链大于10条时,智能服务交易跨链通信架构的吞吐量性能由峰值6100TPS显著下降,其原因是在大规模集群应用链上的交易测试采用了基于Hyperledgerfabric区块链内置的kafka共识算法,从而导致大量性能开销。

随着应用链集群的增多,智能服务跨链交易的确认时延显著提升。原因在于跨链模型中随着各个不同异构或同构应用链的接入,节点的网络拓扑结构会愈发复杂,其中主要体现在对不同交易的proof字段检验的开销。此外,随着加入的应用链不断增多,系统对基站分布式网络传输的稳定性提出了更高的要求。

5.3智能服务交易跨链协议的真实性分析

真实性指互不信任的区块链间构建去信任的跨链子交易。跨链模型的跨链交易管理合约由基站和网关调用,用于记录跨链交易的全过程,从而实现对跨链交易的可信验证。当服务链在接收到由网关发送的合约调用请求时,服务链节点首先对网关的身份及其提交的跨链子交易真实性进行验证,之后,根据子交易的内容和当前其涉及的跨链交易状态对该子交易的合法性进行二次验证,验证通过后广播至其他服务链节点做相同的验证操作并等待共识,共识通过后即可根据合约调用请求修改状态机的状态。

6结束语

本文提出了一种智能服务交易跨链通信核心流程和框架,并在跨链通信服务框架基础上,设计了适用于区块链服务跨链需求的跨链通信机制,提出了面向区块链服务的跨链通信服务框架;研究和设计了跨链通信服务框架中各模块的功能和工作流程,设计了跨链用户与跨链通信服务框架的基本交互逻辑;通过区块链的通用跨链协议和三阶段事务提交验证机制,保障跨链交易的可信性、有效性和原子性。未来研究可对服务链共

识机制等进行优化以达到提高服务链的吞吐量的目的,以及对中继基站的功能、模块、激励措施等进行进一步的研究。

参考文献:

[1]AHLUWALIAS,MAHTRV,GUERREROMD.Blockchaintechnologyandstartupfinancing:atransactioncosteconomicsperspective[J].TechnologicalForcastingandSocialChange,2020,(151):1-6.

[2]SUNBL,LYUZH,LIQ.Obstetricsnursingandmedicalhealthsystembasedonblockchaintechnology[J].JournalofHealthcareEngineering,2021(2):1-11.

[3]LIXH,WANGDB,LIML.ConvenienceanalysisofsustainableE-agriculturebasedonblockchaintechnology[J].JournalofClean-erProduction,2020(271).

[4]谭海波,周桐,赵赫,等.基于区块链的档案数据保护与共享方法[J].软件学报,2019,30(9):2620-2635.

[5]何正源,段田田,张颖,等.物联网中区块链技术的应用与挑战[J].应用科学学报,2020,38(1):22-33.

[6]李芳,李卓然,赵赫.区块链跨链技术进展研究[J].软件学报,2019,30(6):1649-1660.

[7]刘海,李兴华,雒彬,等.基于区块链的分布式K匿名位置隐私保护方案[J].计算机学报,2019(5):942-960.

[8]WANGH,CENY,LIX.Blockchainrouter:across-chaincommu-nicationprotocol[C]//Proceedingsofthe6thInternationalConfe-renceonInformatics,Environment,EnergyandApplications.2017.

[9]JINH,DAIX.Towardsanovelarchitectureforenablinginterope-rabilityamongstmultipleblockchains[C]//IEEE38thInternationalConferenceonDistributedComputingSystems.2018.

[10]KWONJ,BUCHMANE.Anetworkofdistributedledgerscos-mos[EB].

[11]WOODG.Polkadot:visionforaheterogeneousmulti-chainframework[EB].

[12]CONSENSYS.BTCrelay’sdocumentation[EB].

[13]KANL,WEIY,MUHAMMADAH,etal.Amultipleblockchainsarchitectureoninter-blockchaincommunication[C]//2018IEEEIn-ternationalConferenceonSoftwareQuality,ReliabilityandSecu-rityCompanion(QRS-C).2018:139-145.

[14]CHENZ,ZHUOYU,DUANZ,etal.Inter-blockchaincommuni-cation[J].DEStechTransactionsonComputerScienceandEngi-neering,2017(cst).

[15]叶少杰,汪小益,徐才巢,等.BitXHub:基于侧链中继的异构区块链互操作平台[J].计算机科学,2020,47(6):294-302.

[16]WANGX,TAWOSEOT,YANF,etal.Distributednonblockingcommitprotocolsformany-partycross-blockchaintransactions[J].arXivpreprintarXiv:2001.01174,2020.

[17]魏昂.一种改进的区块链跨链技术[J].网络空间安全,2019,10(6):40-45.

[18]张诗童,秦波,郑海彬.基于哈希锁定的多方跨链协议研究[J].网络空间安全,2018,9(11):57-62.

上一篇:基因工程课程在生化专业的教学改革与思考下一篇:对高校文学概论课程有效教学的反思