APP下载

智慧园区区块链系统数据互通技术研究

2021-12-02崔兰清石磊崔文静

电子元器件与信息技术 2021年10期
关键词:背书互通中继

崔兰清,石磊,崔文静

(1.太极计算机股份有限公司,北京 100083;2.山东信息职业技术学院,山东 潍坊 261061)

0 引言

产业园区建设是我国目前很多地区经济发展的核心抓手,园区服务面向的对象包括园区管理者、运营商、政府部门、企业和业主[1]。园区服务内容一般包括物流服务与追溯服务、园区金融服务、推广活动与跟踪、商业综合服务、桌面云服务、虚拟资源租用服务和中小企业软件云服务等。多元的服务对象、种类繁多的园区服务,对园区信息化提出很大挑战。

智慧园区是指通过各类信息化技术的使用,为园区提供统一管理,应急部署,互动展示等方面的有效管理和集成,并为园区内各类服务对象提供各种信息化服务,从而合理利用园区资源,提高园区成熟度,使园区运营者,环境和人形成有机的整体,促进园区可持续发展。

智慧园区面临的普遍问题是存在大量孤立的烟囱式系统,数据不互通,业务难融合。各类园区系统数据很多来自园区服务对象,这些数据有的涉及园区服务对象的业务运行数据,具有隐私保护的需要;有的关注数据来源和流转过程中的真实性、可靠性。

区块链技术在一些园区业务系统建设中得到应用,产生了很多区块链系统,这些系统底层协议各不相同,正在形成一个个新的数据孤岛。无论这些孤岛是基于相同的底层系统还是不同的底层系统,其数据互通都非常困困难,因此,迫切需要解决多链之间融合的问题,从而实现不同链园区系统之间的数据共享互通。本文采用跨链技术解决这一问题。

1 区块链数据互通的主要挑战

区块链数据互通,就是实现相对独立的不同区块链系统之间数据互通。目前,主要挑战有[2]:

生效的原子性。对两个网络分别发起不同交易,如何保证要么都不生效,要么都生效的问题。一般通过经典的两阶段提交来完成,两个交易互为锚点。如果超过一段时间锚点仍然无效,则进行交易回滚。

锚点有效性校验。由于所有区块链节点对锚点的有效性达成没有分歧的判断,因此不能依赖远程访问证明,这样可能会造成验证难的问题。

合约验证的不确定性。区块链系统一般会在每个节点验证交易,但如果一个合约嵌入了外部链的合约调用,则在验证阶段,需要确保各个节点验证的结果的一致性,外链的稳定性也会对此产生影响。

2 数据互通主要模式

目前跨链技术主要有公证人模式、侧链/中继模式和哈希锁定模式。一般通过哈希时间锁可以保证跨链交易的原子性。

根据不同链的交易是异步生效还是同步生效,可以分为异步模式和同步模式。

公证人模式由一个或者一组节点作为公证人参与到两个区块链,进行双方交易的收集和验证。优点是简单,缺点是弱中心化。

侧链/中继链模式是BlockStream于2014年提出的一种方案。与公证人模式主要的区别是其验证是在目标链中进行,通过双向锚定方式实现资产在不同链之间转移。目标链的验证方式一般各不相同。

异步模式是指发起调用的是一个函数,处理调用结果的是另一个回调函数。以太坊上很多预言机类DApp就采用此模式。异步调用模式下,一个完整流程需要3笔交易,其缺点是业务逻辑被迫拆成很多碎片,交互次数多[3]。

同步模式下,一般区块链的上的合约在每个节点都会重复执行,很多区块链系统,例如Fabric采取的是预执行再提交的方式,如何保证重复执行的结果确定性,且具备幂等性是一个重要问题。

3 智慧园区跨链数据互通框架

根据智慧园区业务应用类型多样、应用规模差异大、应用变动较频繁等特点,采用轻量级易于编程的跨链框架,便于适用于不同的智慧园区跨链应用场景。智慧园区跨链数据共享场景主要包括只读事务场景跨链、非事务场景跨链。

互通框架包括3层:基础库层、账本层和合约层。基础库层和账本层是内核层,提供跨区块链域名解析协议、Markle Proof校验、异构区块头解析协议、事务预锁定等基础能力。合约层包括区块头管理合约、链名解析合约、去中心化身份管理等。账本层包括事务预锁定、解锁生效机制和超级回滚机制等实现跨链账本操作的原子性[4]。

跨链涉及到不同链资源的互操作,由于不同的链的协议互不相同,通过定义跨链寻址协议,实现对不同链的资源进行统一定义,结合链名解析合约,可以实现对任何协议链的统一资源寻址。

跨链寻址协议定义如下:

chain_scheme:跨链链类型标识符,用于标识链的具体类型;

chain_name:所跨链的链名,定位某一个具体的链,同一Scheme下链名是唯一的;

path:不同Scheme的链类型扩展字段;

query:用于定位某个链内的某项资源,比如对于超级链,声明调用的合约名、方法名和参数等信息。

为了实现跨链请求,需要在链名跨链寻址协议基础上,在跨链发起的原链上部署链名解析合约,对链名进行解析。解析合约主要包括如下内容:

注册一个网络,同时包含网络初始meta信息;

定义目标网络meta信息、背书信息和目标网络CrossQuery完整信息;

更新网络的meta信息,例如修改网络的背书策略;

根据网络名解析所有背书节点;

插入一个背书节点;

更新背书节点信息;

删除背书节点。

4 不同场景互通

4.1 只读事务场景跨链

只读事务场景是从一个园区应用链能够查询到另一个链的数据,并且能够满足稳定性、幂等性和安全性。典型场景如园区人员身份认证、园区企业资质认证等。采用目标链背书的方式,包括预执行再提交的二阶段处理过程。

预执行阶段,原链节点远程访问目标链背书服务,背书服务预执行该合约,并且对合约结果进行签名背书,原链会将该合约的结果和背书信息写进写集中一个特殊的bucket中。

在提交阶段,不需要再进行远程调用,原链节点在验证合约时,先解析出该特殊的写集中的跨链结果和背书签名信息,以填充合约执行的上下文环境,当执行到只读跨链原语时,原链节点不再进行远程调用,而是验证预执行的背书签名,当签名满足背书策略的要求后,就直接使用写集中的跨链合约结果继续后续的合约逻辑,否则验证失败[5]。

4.2 非事务场景跨链

非事务场景跨链是指跨链行为并不是要求不同链上的交易具备事务性,即不要求不同链上的跨链交易同时生效或同时失败,跨链交易只对当时被跨链的交易状态进行确认,并根据目标交易状态执行交易后续操作。

非事务跨链的典型园区应用场景,例如园区不同企业资产跨链转移等,主要强调跨链交易的存在性证明,不要求跨链交易的原子性。

非事务跨链通过中继机制实现,通过对目标链的区块头同步,以及Markle验证技术,可以做到在原链上直接验证目标链的交易是否存在。

中继机制主要包括链上中继合约和中继同步进程。链上中继合约是部署在原链上的一个智能合约,保存目标链的所有块头信息,并提供基于Markle证明的目标链交易存在性验证。在目标链和原链之间,有一个或多个中继进程,持续监听目标链的最新出块信息,并抽取出块头信息写入。

链上中继合约是跨链存在性证明的核心,提供对目标链中的区块头同步存储,并通过Markle验证技术提供交易查询接口。链上中继合约主要解决三个问题,交易的真实性、及时性证明、区块头分叉管理。真实性证明证明交易确实存在,主要通过Merkle Proof证明交易是否真的存在于链中以及是否在主干上。及时性证明即证明交易是否确认,跟目标链采用的共识算法相关。对于同步Byzantine类共识算法,及时性是内置的,只要交易在区块头中,那么交易必定在原链处于上链状态。对于Pow类共识算法,一般要求交易所在块距主干最新高度相差6个块以上。区块头分叉管理即对同步的区块头按照树形结构维护依赖关系,并根据目标链的主干选择算法即使调整目标链的主干区块状态。

5 结语

智慧园区应用场景多样,不同区块链系统底层协议和框架也在不断发展。智慧园区跨链数据共享需要增强不同区块链协议的兼容能力,并进一步轻量化框架,便于跨链数据互通和共享的快速实施和灵活运维,这也是未来工作的重要方向。

猜你喜欢

背书互通中继
背书是写作的基本功
背书
自适应多中继选择系统性能分析
编读互通
中日ETF互通“活水来”
编读互通
一种基于无线蜂窝网络的共享中继模型
面向VDC组网的VXLAN控制面互通方案探讨
中继测控链路动态分析与计算方法研究
背书连续性若干问题探析