基于联盟自治的区块链跨链机制
2022-11-30郑建辉林飞龙陈中育胡兆龙唐长兵
郑建辉,林飞龙*,陈中育,胡兆龙,唐长兵
基于联盟自治的区块链跨链机制
郑建辉1,林飞龙1*,陈中育1,胡兆龙1,唐长兵2
(1.浙江师范大学 数学与计算机科学学院,浙江 金华 321004; 2.浙江师范大学 物理与电子信息工程学院,浙江 金华 321004)(∗通信作者电子邮箱bruce_lin@zjnu.edu.cn)
针对目前区块链系统跨链互操作难问题而导致的“信息与价值孤岛”现象,提出一种基于联盟自治的区块链跨链机制。该机制的核心思想是以链治链,通过构建一条由多方共治的中继联盟链来管理跨链网络,用于解决不同区块链系统之间的数据共享、价值流通与业务协同问题。首先,提出了一个基于中继模式的跨链系统为同异构区块链系统提供交互服务;其次,详细设计了中继联盟链,设定了应用链及其用户参与跨链系统的规则;然后,总结了跨链交互的基本类型并制定了基于智能合约的跨链交互实现流程;最后,通过多组实验验证了跨链方案的可行性,评估了跨链系统的性能指标,并且分析了整个跨链网络的安全性。仿真结果与安全性分析证明,所提机制中的通道分配策略与出块权分配方案具有实际可行性,当涉及资产交易时,该机制的吞吐量最高可达到758 TPS,而不涉及资产交易时的吞吐量最高可达到960 TPS,且拥有高级别的安全性与粗细粒度兼具的隐私保护机制。基于联盟自治的区块链跨链机制可提供安全高效的跨链服务,适用于目前大多数跨链场景。
区块链;跨链互操作;信息与价值孤岛;联盟自治;中继联盟链
0 引言
区块链技术被公认为近十几年来最具革命性的技术之一,其源于2008年中本聪发表的论文——《比特币:一种点对点的电子现金系统》[1],它创新的去中心化信任价值体系改变了传统互联网依靠中心化机构建立和维护信任的方式,是未来社会发展中解决信任危机的一种关键性技术[2],有望像互联网一样重塑人类社会的活动形态,推动目前的“信息互联网”向未来的“信任与价值互联网”转变[3]。区块链技术的核心思想是利用块链式数据结构存储与验证数据,利用共识机制保证网络中所有诚实节点拥有一致的数据副本,利用密码学算法保证数据的安全性与用户的隐私性,利用智能合约[4]制定业务与操作数据,区块链技术支持数据安全共享和大规模协同计算,具有去中心化、不可篡改、透明性和可追溯性等特点[5]。
区块链极具潜力,引起了全球各界人士的高度关注[6]。十几年来,随着区块链技术的深入发展与应用场景的不断推广,区块链已经逐渐被应用于物联网、农业、医疗、供应链、法律、政务等各个领域[7],形成了众多的区块链基础设施和业务体系[8],这些区块链应用之间的数据交换、价值流通和应用协同需求日益增长[9],各个行业对跨链交互[10]的诉求越来越突出,如何建立一种通用、安全、高效的跨链体系标准[11],满足链与链之间的数据共享、价值流通与业务协同成为当前区块链研究的热点。但是,不同的区块链项目是不同企业根据不同应用场景和理念设计的,采用了不同的技术框架,它们在系统架构、网络拓扑、底层数据结构、共识算法、加密机制、智能合约等方面都有或多或少的区别,彼此异构化严重,并且区块链天生就具有封闭独立的特性,信息与价值只在各自链上共享与流通,导致大量的区块链项目成为一个个孤立的信息和价值体系,如同一座座漂浮在海中的孤岛[12],要在这些孤岛间进行数据共享与价值流通具有极高技术壁垒[13]。
随着区块链技术持续蓬勃的发展,未来必将形成多链互联共生的局面,跨链技术不仅能够打破各个区块链系统自给自足的现状,实现平行区块链之间的交互[14],而且还能突破单个区块链的性能瓶颈,提升区块链的可扩展性,是推动区块链产业大范围快速落地与跨场景融合发展的强力科技引擎,也是实现链联网和构建信任与价值网络的核心与关键技术[15]。但是,由于区块链之间极高通信壁垒的存在,跨链技术的实现具有相当难度,目前仍处于初步探究阶段,尚未形成统一的跨链标准和稳定通用的跨链体系[16],要真正实现万链互联的信任与价值互联网,未来必然会遇到大量的困难与挑战[17]。
本文提出了一种基于联盟自治的区块链跨链机制,旨在构建一个通用的跨链交互平台,使各个区块链系统能够通过此平台实现安全高效的数据共享、价值流通与业务协同。本文主要工作如下:
1)基于中继模式设计了一个跨链互操作系统,并提出了统一的跨链交互模式,支持同异构区块链的接入。
2)对中继联盟链做了详细设计,设定了应用链接入中继联盟链的规则,以保证跨链参与的有序性;制定了出块权分配方案,以实现联盟共治良好生态;分析并设计了通道分配策略,以达到跨链网络性能、管理成本、安全隐私性三者之间的最佳平衡。
3)将跨链事务总结为四种基本类型,并针对这四种类型设计了详细的跨链交互流程;设计了基于分布式门限签名技术的资产映射方案以确保跨链资产的安全性;设计了跨链事务状态表来保证跨链事务的原子性与一致性。最后,将四种基本类型的跨链交互编写成四个智能合约模板,这四大模板可适用于目前大多数跨链场景。
1 相关工作
跨链的概念首次在2014年由Tendermint团队提出,2016年9月9日,以太坊创始人Vitalik Buterin在R3CEV会议上发布了文章“Chain Interoperability”,正式提出了跨链互操作性问题。跨链,顾名思义,就是通过某些技术手段,使不同区块链的数据和价值能够跨越链与链之间的障碍进行共享与流通。美国国家标准和技术研究所将区块链架构中的互操作性定义为:“可互操作的区块链架构由可区分的区块链系统组成,每个系统代表一个独特的分布式数据账本,交易的执行可能跨越多个区块链系统,在一个区块链中记录的数据可以被另一个区块链上的交易以语义兼容的方式访问、验证和引用。”区块链之间根据系统架构、网络拓扑、共识机制、加密算法、隐私安全机制等方面的区别可分为同构与异构关系。同构区块链之间整体架构都是一致的,因此同构链之间的跨链交互相对简单。然而,在实际应用场景中,更多的是异构区块链之间的跨链交互,异构链在诸多方面都存在较大差异,实现起来要复杂得多。跨链技术从产生、发展到实际应用的过程中,在解决区块链互操作性和可扩展性方面都取得了一定的突破[18]。
1.1 主流跨链方案
跨链技术发展至今,形成了四种主流的跨链方案,分别为:公证人机制、侧链/中继、哈希锁定与分布式私钥控制,它们有着各自的特点与适用场景,在一定程度上解决了不同区块链系统之间的互操作问题。
公证人机制引入了可信的第三方机构作为跨链事务的验证者与协调者,跨链交易发起者在源链上发起一笔交易后,公证人通过监听源链上的事件来验证该交易是否有效,验证通过后,通知目标链执行相应的操作,公证人群体通过特定的共识算法对事件是否发生达成共识。公证人机制相对容易实现,但有中心化风险,不符合区块链的去中心化思想。目前,公证人机制分为单签名、多重签名和分布式签名三种,单签名机制中心化程度最高,后两者则通过密码学算法选择多个实体共同作为公证人,降低了中心化程度,提高了安全性与可靠性。
侧链/中继是一种能够使区块链自行验证数据有效性且具有伸缩性与扩展性的跨链技术。侧链是相对于主链而言的,侧链与主链之间可以进行资产的相互转移,除此之外,侧链还可以扩展主链的性能与功能:当主链上出现性能瓶颈时,可以将主链上的部分事务转移到侧链上处理,从而减轻主链上的压力;当主链缺乏某种功能时,也可以通过侧链来实现。侧链使用双向锚定技术实现,通过分别在侧链和主链中锁定和释放资产,达到在两条链中互相交换资产的目的。双向锚定技术目前可以通过单一托管模式、联盟模式、驱动链模式、混合模式、简单支付验证(Simplified Payment Verification, SPV)模式实现。中继本质上是公证人和侧链机制的融合和扩展,它为各个链构建出一个跨链操作层,提供了统一的跨链交互模式,中继模式不完全依赖于可信第三方的验证,应用链可通过中继链收集其他链的区块数据进行自我验证,具有较高的安全性。侧链/中继都采用SPV模式,即通过区块头与默克尔树来验证一条链上的某个特定事件是否发生。侧链/中继模式成本较高、效率较低,因为该模式下需要等待交易上链,确定不会发生回滚后才可确认。
分布式私钥控制是将数字资产的使用权和所有权进行分离,即将区块链中资产的私钥分割成若干份,交由分布式节点进行管理,没有一个实体能够单独操作资产,能大幅提高数字资产的安全性。分布式私钥控制技术由锁定和解锁两个环节构成:锁定操作是将私钥拆分成若干份后交由去中心化节点进行管理,原有资产被锁定,并将相应的等值代币映射到跨链系统中;解锁操作是收集私钥碎片聚合成完整的私钥之后去释放被锁定的原有资产,同时销毁映射资产,通过分布式私钥控制可以实现不同区块链系统的资产在跨链系统中互相交易流通。与侧链/中继相同,分布式私钥控制也需要等待原链交易上链,且开发难度较大。
1.2 主流跨链项目
为了实现不同区块链系统之间的互操作,业内进行了诸多研究与实践。2012年,Ripple公司提出了InterLedger协议,旨在打造全球统一支付标准,实现不同支付网络或账本系统之间的安全转账;2013年,Nolan在Bitcointalk论坛里提出了原子交换,原子交换经过改进升级后被称为哈希锁定,成为了一种主要的跨链技术手段;2014年,BlockStream公司提出了侧链机制,通过双向锚定技术实现了资产在主链与侧链之间的跨链转移;2015年,闪电网络利用哈希时间锁定机制实现了比特币链下快速交易,提升了比特币系统的交易效率;2016年,BTC‑Relay实现了比特币和以太坊的单向跨链;同年6月,Kwon提出了跨链网络架构Cosmos,Cosmos网络由中央枢纽(hub)和分区(zone)组成,分区由Tendermint经典拜占庭容错共识算法引擎支持运行,可接入不同区块链,分区之间的交互都经由中央枢纽进行处理,并且按照特定的跨链交互协议进行通信;同年11月,Wood提出了一种异构多链跨链平台Polkadot,实现了去中心化、去信任地进行跨链交互,Polkadot的架构与Cosmos类似,由中继链与平行链组成,Polkadot网络中有四类角色:验证人(验证平行链的区块并将其上链)、提名人(选举验证者并为其背书)、收集人(收集平行链的交易并提交给验证者)、钓鱼人(举报非法行为);同年,Fusion公司提出了Fusion跨链项目,运用分布式密钥生成算法实现跨链资产的安全映射;2017年,以太坊创始人Vitalik Buterin与闪电网络发明人Poon提出了Plasma方案,Plasma设计了一种树形架构,主链为树根,其余链为树的分支,并构建了一个智能合约执行框架,Plasma宣称可支持每秒10亿量级的状态更新;同年8月,Aion项目定义了一种多层次的区块链网络结构,其共识机制基于轻量级拜占庭容错算法(Byzantine Fault Tolerance, BFT)[19]实现,并通过“桥梁”实现区块链之间的通信连接,“桥梁”亦有自己的验证者网络;2018年,网录科技开发了Wanchain,Wanchain基于以太坊实现,通过安全多方计算、门限签名技术和环签名技术实现了链上资产的安全性、匿名性及隐私保护的功能;2020年2月,微众银行公布了WeCross白皮书,WeCross是由微众银行自主研发并完全开源的区块链跨链协作平台,支持应用与区块链之间、同异构链之间等多种形式的跨链交互,旨在促进跨行业、跨机构和跨地域的信任传递和商业合作;同年3月,趣链科技自主研发的跨链技术平台BitXHub[20]正式开源,BitXHub基于中继模式实现,通过跨链网关转发网络中的交易,并且设计了链间消息传输协议,BitXhub支持三种架构:链对链架构、主从链架构、中继链架构,可以灵活地应对不同的业务场景,本文在系统架构的设计上也参考了BitXhub项目。
综上所述,虽然跨链技术发展至今已经形成了四种较为成熟的方案并涌现了许多支持跨链互操作的平台,但从宏观来看,各方依旧处于各自为政的状态,没有一种方案或项目在实际应用中得到了广泛的认可,而且现有的研究成果都存在一定局限性,要么只停留在理论阶段,要么应用场景狭窄,离实际落地还有不小的距离。本文提出了一个通用化的跨链互操作平台,能够兼容不同类型的区块链,满足目前大多数跨链场景的需求,为不同区块链的用户提供安全高效的跨链交互服务。
2 本文系统模型
本文提出的跨链互操作系统的体系架构如图1所示,主要组成部分包括:中继联盟链、跨链网关、跨链交互协议(Cross‑Chain Interaction Protocol, CCIP)与应用链。中继联盟链是整个跨链系统的中枢,负责应用链及其用户的管理和跨链事务的管理;跨链网关作为中间路由节点,连通应用链与中继联盟链,并具有协议转换功能;CCIP用于中继联盟链与应用链之间的消息传输;应用链是目前市面上已经投入使用的,需要参与跨链交互的区块链平台,无论是公链、联盟链还是私链都可以参与到本跨链系统中。
图1 系统架构
2.1 中继联盟链
中继联盟链是跨链系统的核心,统筹管理跨链事务。中继联盟链的设计运用以链治链思想,采用联盟链系统实现,因为中继联盟链采用的也是区块链系统,本身就附带了区块链的安全性特点,而且在本文设计中,中继联盟链由所有跨链参与方共同治理,网络中不存在超然于其他参与方的实体,所以整个跨链网络依旧可以保证去中心化或者弱中心化,并且可以完美继承联盟链身份管理与隐私保护等特点。
每一个外部区块链系统都被抽象成一个组织机构,映射到中继联盟链中,可以把中继联盟链看作是一个容纳万链的庞大容器和一个支持万链交互的超级市场。外部区块链中的用户(如果他们需要跨链交互)会以账户的形式映射到中继联盟链中,在遵守跨链规则的前提下,不同区块链平台的用户在中继联盟链这个超级市场中可以进行自由的业务交互。
所有的跨链互操作事务都在中继联盟链中进行,在中继联盟链中发生的所有跨链交互都会在对应的外部区块链系统中同步执行,从而保证整个跨链流程的原子性和一致性[21]。
中继联盟链的具体设计将在第3章中详细介绍。
2.2 跨链交互协议标准
所有的跨链互操作事务都要遵循跨链交互协议,CCIP是针对异构区块链数据结构不同导致的互通难问题而设计的一套用于减少异构区块链之间通信成本的通用型跨区块链消息交互协议,其主要消息字段如图1(b)所示。其中:Initiator字段代表交易发起者的身份标识,发起者需要发送自己的公钥、地址以及对交易提案的数字签名;Type字段为跨链交易类型,本文实现了四种基本类型的跨链交互,并编写了四个智能合约模板,每一笔跨链交互都会根据其类型被提交到对应的跨链合约中执行;Payload为具体交易内容,以JSON字符串格式传输,也可根据实际需求对其进行加密;Signature字段为跨链网关签名,每一个跨链网关都有其自身的证书与私钥,每一笔跨链交易都要经由跨链网关进行签名之后才能在中继联盟链与应用链之间传输;Proof字段是跨链交易合法性的凭证,用来证明来源链上确实发生了某个事件,Proof字段的内容有区块序号、默克尔根哈希与路径哈希。验证交易合法性时,将Payload字段的内容用相应的哈希算法进行运算,得到交易哈希值,将交易哈希值与默克尔路径哈希进行运算,若最终得到的哈希值与默克尔根哈希一致,则说明交易确实在来源链上发生过。
来源链发起的交易提案首先会发送到跨链网关中,跨链网关解析交易提案,验证其合法性,若验证通过,则根据协议规则将其重构为CCIP消息格式,提交给中继联盟链。
2.3 跨链网关
跨链网关是连接应用链与中继联盟链的通信组件,中继联盟链与每条应用链之间都有一组(一个或多个)跨链网关专门负责双方的通信,其结构如图1(c)所示,具有以下功能:
1)充当应用链与中继联盟链之间双向通信的桥梁,接收应用链发送的跨链请求并转发给中继联盟链以及将中继联盟链发送的消息转发给应用链;
2)监听应用链与中继联盟链上的交易事件,监听到特定事件后,获取相应的区块交易信息与默克尔证明并传给相应的链进行处理;
3)协议转换功能,可以将应用链传来的信息转换为CCIP结构的消息,也可以将CCIP结构的消息转换为特定应用链可以识别的交易格式。
3 中继联盟链设计
中继联盟链作为跨链系统的核心组成部分,其主要工作分为两部分:1)对应用链及其用户的身份管理与权限控制;2)对跨链事务的管理,需保证跨链互操作事务的ACID(Atomicity、Consistency、Isolation、Durability)特性,即原子性、一致性、隔离性、持久性。在实践中,本文采用Hyperledger Fabric[22]作为中继联盟链。Hyperledger Fabric是一个开源的企业级许可分布式账本技术平台,是目前广受企业欢迎的优秀联盟链实现,已成为联盟链项目开发的主流框架,深受市场认可。它具有高度模块化和可配置的架构,支持可插拔、可扩展,可以满足不同场景下的需求,并且创新地引入了通道机制、公钥基础设施(Public Key Infrastructure, PKI)、隐私保护机制等等,有着许多经典的设计和先进的理念,十分契合本文对中继联盟链的要求。接下来,将基于Hyperledger Fabric平台设计中继联盟链。
3.1 基于多通道模式的跨链服务
首先需要了解中继联盟链网络中的几个重要概念:
1)通道。通道是基于数据隔离与保密构建的通信信道,是若干个特定网络成员之间通信的专用子网,用于进行私有和机密的交易。网络中每个通道都是独立、隔离的,并且都维护一个账本,保证了一个通道内事务的隐私性与安全性。
2)组织。组织是网络中的参与者,一般代表机构或团体,组织下面有不同类型的成员:节点、管理员与用户。一个组织可以加入不同的通道,若干个组织可组成一个业务联盟。
3)私有数据机制。如果一个通道上的一组组织需要对该通道上的其他组织保持数据私有,则可以选择创建一个私有数据集合,使用私有数据机制之后,数据交互只会在特定的若干组织之间进行,其他组织只能看到私有数据的哈希值,而无法得知具体的数据。
4)成员服务提供者(Membership Service Provider,MSP)。MSP是一个提供抽象化成员操作框架的组件,负责网络中成员的身份管理与权限控制,包括证书管理与策略制定等。
5)背书策略。背书是指特定节点执行合约交易并返回一个提案响应给客户端应用的过程。背书策略定义了哪些组织的节点需要为特定合约的交易背书,执行背书的节点称为背书节点,只有符合背书策略的交易才是有效的。
应用链接入跨链系统如图2所示,外部区块链系统映射成为中继联盟链网络中的组织,一个应用链唯一对应一个组织,如果若干个应用链要进行跨链交互,就将它们一起加入到同一个通道中,也就是将它们所对应的组织加入到通道中。
然而,如果为每一对(或多个)希望跨链交互的应用链都创建一个通道,随着应用链的增多,通道的数量必然迅速增加。举个例子,假设现有A、B、C三条区块链,它们要两两进行跨链交互,那么仅仅为了这三条应用链,就需要创建三个通道,因为一个通道内的所有成员共享账本数据,所以为了数据隐私安全,不能将它们都加入到同一个通道中。由此可见,随着应用链基数的增加,以及考虑到现实场景中更为复杂的业务需求,通道的需求量将会变得极为庞大。而通道是中继联盟链网络中的珍贵资源,若是按上述的方案分配通道:第一,为了维护网络中数量庞大的通道,会产生大量的额外开销(维护每个通道的智能合约、策略、MSP等);第二,极大地浪费了通道资源,因为一个通道可以承载的业务量可以满足十几条、几十条、甚至上百条应用链。所以这样的通道资源分配方案显然是不合理的。
为了解决这个问题,本文采用了私有数据机制。私有数据机制的功能是允许通道内的部分成员在对其他成员保密的情况下进行私密通信。有了私有数据的支持,对于上个段落举的例子,就无需创建三个通道了,只需一个即可,将A、B、C三方都加入一个通道,再通过私有数据将它们两两隔开,就可以满足它们两两交互的跨链需求。这样一来,一个通道中就可以容纳相当数量的应用链,既不会造成资源浪费,也不需要维护大量的通道。
图2 应用链接入中继联盟链
3.2 通道分配策略
3.1节运用了通道机制与私有数据机制为应用链提供了能够保障数据隐私安全的跨链交互方式,本节将详细分析如何为应用链分配通道与私有数据集合以达到隐私安全、管理成本、性能三者之间的最佳平衡。
事实上,有了私有数据的支持,将所有业务都放入一个通道也不会破坏数据的隐私安全性,而且单通道的性能虽然不能达到最高,但也不会太低。但是考虑到单个通道内应用链越多,组织、节点、用户、智能合约、私有数据集合等的数量就越多,业务就越复杂,从而形成复杂的交互网络,导致通道管理复杂度大幅提高,而且会造成通道负担过大、账本过于庞大、数据同步缓慢等不良后果,同时也会增加数据安全性与隐私性风险(虽然技术层面上不会,但是在形成足够复杂的交互网络之后,难免会因为人为管理因素或其他因素导致风险增加);所以无论是从负载、隐私安全还是管理成本来看,都需要创建多个通道来实现对业务和网络资源的合理分配。
将通道分配策略定义为三元组:=(,,)。其中:表示某成员(一个或多个,可以是已经加入跨链系统的老成员,也可以是欲加入跨链系统的新成员)是否要与特定通道内已存在成员建立跨链交互关系,该元素代表隐私安全性。例如某成员与特定通道内已存在成员毫无交互关系,却将其加入到此通道中,便不太合适,因为没有业务往来的合作群体之间互相拥有对方的账本会有破坏数据隐私安全性的风险。表示通道的复杂程度,即通道管理成本,可以用组织、智能合约、节点等的数量以及它们之间交互复杂程度来衡量。表示当前网络中的通道数量,通道数量会影响网络性能。通道分配策略的符号定义如表1所示,算法伪码如算法1所示。
算法1 通道分配策略。
输入 表1中元素与三元组;
输出 创建新通道或私有数据集合。
for:= rangedo
= true;
else
= false;
end if
end for
end if
if≥then
else
end if
else
end if
end if
if== false && end if if== false &&≥then else end if end if 表1 通道分配策略符号定义 跨链互操作流程如图3所示。以应用链A要与应用链B进行跨链交互为例,具体过程如下: 应用链加入跨链系统: 1)建立映射关系、颁发证书。某个区块链平台若想加入到跨链系统中,需经过资格审查,比如有稳定的团队更新维护、受到市场认可等。每个外部区块链系统映射到中继链网络中都将成为一个组织,每个组织都由一个独立的证书授权中心(Certification Authority, CA)颁发数字证书,包括身份证书与TLS(Transport Layer Security)传输加密证书,这就意味着每个组织都拥有一套独立的身份系统,确保了组织之间身份上的安全性隔离。 2)创建通道或私有数据集合。依据通道分配策略选择为应用链创建新的通道或私有数据集合。若选择创建新的通道,则需要编写通道配置文件,将链A、链B所对应的组织与监管组织(每个通道都有一个监管组织,起监管审计作用,在发生纠纷或违规交易时,行使查账仲裁权)的MSP证书信息、不同层级的访问控制策略、不同角色的读写权限等配置信息写入通道配置文件,并以此创建通道,通道创建成功后,会生成该通道的创世区块,创世区块中包含了该通道的成员信息以及权限策略规则。若选择在已有通道内创建新的私有数据集合,需要编写私有数据集合配置文件,包括组织信息、私有数据级别的背书策略、成员读写权限等内容,而后在部署合约时引入私有数据集合配置文件即可。 3)节点加入通道、部署智能合约。通道创建成功后,由于三个组织(链A、链B与监管组织)的MSP配置信息都已载入通道的创世区块中,所以,隶属于这三个组织下的节点都可以加入到该通道中。节点加入通道后,便可部署智能合约以实现跨链业务,智能合约的背书策略默认设置为AND('Org_ChainA.member', 'Org_ChainB.member'),意思是调用智能合约来执行跨链事务需要链A组织与链B组织的共同背书,当然,也可以根据跨链业务的实际需求来灵活更改背书策略。部署与升级智能合约的权限策略为:只有通道内的三个组织共同批准,才能进行合约的部署与升级操作。这样做的意义是:在没有获得三方一致的共识下,杜绝了其中任意一方或两方随意操作智能合约的行为,因为智能合约承载了跨链业务逻辑的实现,在整个跨链体系中至关重要,若是由于误操作或者恶意操作导致智能合约状态出错,将会带来严重后果,所以对智能合约的部署与升级操作进行严格的权限控制非常必要。 通道、私有数据和智能合约部署完成后,应用链A和应用链B下的用户便可以进行跨链交互: 1)应用链A上的用户首先通过链上的跨链智能合约(不支持智能合约的区块链系统可以用脚本程序实现相应功能)发起一笔跨链交易提案,提案会被发送到对应的跨链网关; 2)跨链网关接收到交易提案之后进行解析,验证其来源,检查其签名,核验通过后,将交易提案构造为CCIP消息格式,发送给中继联盟链进行预处理; 3)中继联盟链会对跨链交易做一个初步处理,根据交易内容,生成相应的交易指令,分别发送给应用链A与B; 4)应用链A与B验证交易指令的合法性,确认无误后,根据交易指令执行相应的操作; 5)跨链网关会监听两条链是否成功执行了交易指令所要求的操作,一旦操作成功上链,跨链网关会获取该操作的交易原文与交易存在性证明,返回给中继联盟链; 6)等到跨链交易的所有子事务都成功完成后(若某个环节出现问题,则会回滚,甚至取消交易),中继联盟链会对这笔跨链交易做一个最终处理,处理完成后,会生成一个交易回执,返回给应用链A与B,用于验证与存证。 跨链网关是应用链与其对应组织之间通信的组件,而且是专用组件,某组(一个或多个)跨链网关只为特定应用链服务。在为应用链创建组织的同时也会创建跨链网关,跨链网关作为组织的一员而存在,它会获得其所属组织的成员证书,并以此为凭证与组织通信。 中继联盟链不向应用链旗下的用户发放证书,用户通过其原本在应用链中使用的公钥在中继联盟链创建个人账户,并且设定了只有与该公钥对应的数字签名才能操作此账户,这个账户可以存放多种类型的映射资产,不同链的用户可以在中继联盟链中使用自己的账户进行自由的交易。这么设计的原因是:第一,随着用户数量逐渐庞大,中继联盟链需要发放大量的证书,如此一来,非但证书管理复杂,而且容易产生安全风险;第二,用户可以直接通过其原本拥有的公私钥操作中继联盟链中的账户,也就是说,用户所有的跨链操作都可以在应用链上完成,不需要再另外使用一套证书及私钥去直接操作中继联盟链,更加安全、高效、便捷。 图3 跨链互操作流程 中继联盟链网络中还有一类特殊角色——排序节点,也称共识节点,它是系统级别的存在,不属于任何应用通道。排序节点负责收集每个通道内产生的交易,并将这些交易打包成区块,分发给相应通道上的peer节点。本文方案中,中继联盟链网络采用的是raft共识算法。排序节点掌握区块生成与分发的权力,如何合理分配该权力是实现联盟共治的关键所在。 出块权分配方案如下:每个组织作为一个管控排序节点的团体,根据每个组织在跨链事务中的表现,分配其一定数量的排序节点,表现越好,被分配到的排序节点越多。raft共识算法中由一个领导者节点负责处理所有事务,其余跟随者节点只需复制领导者节点的日志,当领导者节点因故障或延迟等原因不能及时向跟随者节点发送心跳信息时,会有随机的跟随者节点会变为候选者节点(根据随机超时时间),开始新一轮选举。每个跟随者节点都有几率成为领导者,当某个组织拥有的排序节点越多,那它旗下的排序节点成为领导者节点的几率就越大,掌握了领导者节点,就等于掌握了出块权,因此,组织的表现越佳,控制出块权的几率就越大,表现不佳或作恶的组织获得出块权的几率就越小,从而增加了跨链网络的安全性,同时也使每个组织都有机会争得出块权。并且,更大的意义在于,组织表现愈好,说明其信誉愈高,那么愿意与其交互的组织就愈多,该组织所代表的应用链的市场价值就会提升,从而有助于整个跨链网络形成良性经济生态循环。 本文方案为出块权的分配设计了任期制,每个新任期开始时,网络会重新分配排序节点,并重新选举领导者节点,在具体实现中,本文方案通过证书来分配排序节点所有权,并通过将领导者节点短暂宕机以触发新一轮选举。在任期内,组织被分配到的排序节点数量为: 其中: 跨链互操作的形式多种多样,本质上来说可分为两大类:资产交互与信息交互。每大类下面又有不同的交互形式,本文将跨链交互总结为以下四种基本类型: 1)资产交换。跨链资产交换实质上是资产在各自区块链上的流动。例如,Alice和Bob在以太坊和比特币上都有账户,Alice想用20个以太币换取Bob的1个比特币,Alice需要先将自己账户的20个以太币转账给Bob在以太坊上的账户,Bob在收到付款后,将自己在比特币账户上的1个比特币转给Alice在比特币上的账户,这样就完成了比特币和以太坊的资产交换。 2)资产转移。跨链资产转移实际上是资产在一个区块链上的冻结(销毁)和在另一个区块链上的解冻(创建)。例如,假设以太币与比特币的汇率为20∶1,Alice与Bob分别在比特币和以太坊上拥有账户,Alice想将自己的1个比特币转移给Bob,那么Alice需要先将她的比特币转移到一个特殊的地址进行冻结,而后,在以太坊中发行(或解冻)20个以太币给Bob的账户。 3)信息付费。一个区块链平台上的用户按照指定的价格购买另一个区块链平台上出售的信息资源。 4)信息交互。指一个区块链系统获取另一个区块链系统上的信息,或将数据写入另一个区块链系统等操作,但不涉及资金流动。 前三类都涉及到资产流动,资产并不局限于货币,也包括房产证明、知识产权证明等具有实际价值的事物。针对资产类型的交互,设计了基于分布式门限签名技术的资产映射方案;针对信息交互,设计了跨链事务状态表方案。本文为四种基本类型的跨链交互设计了四个智能合约模板,每一笔跨链交易都会根据其交易类型被提交到相应的合约中执行。 4.2.1基于分布式(,)门限签名的资产映射方案 现代密码学体制的核心是密钥的安全性决定密码体制的安全性,密钥一旦泄露,安全性也将不复存在,因此如何对密钥进行安全保密的管理至关重要。以色列密码学家Shamir[23]提出了一个基于Lagrange插值法的(,)秘密共享方案,方案中的密钥被分成份并分配给个参与者,每个参与者都掌握一个密钥份额,只有集齐至少个密钥份额,才能够将密钥恢复。基于Shamir方案,实现了账户密钥所有权的分散化管理,减少集中化风险与密钥遗失后账户无法找回的风险,大大提高了账户的安全性。 Shamir秘密共享方案虽然是一个完备的理想方案,但也存在一些问题:第一,需要存在一个可信的秘密分发中心,但现实场景中往往并不存在这样的可信中心,并且可信中心带有中心化风险;第二,在秘密分发阶段和秘密重构阶段,可能会存在不诚实的秘密分发者与参与者传播无效的秘密份额;第三,在秘密重构的过程中可能会泄露完整的私钥。针对上述问题,本文采用了基于椭圆曲线的分布式(,)门限签名方案[24],该方案有如下优点: 1)椭圆曲线算法是目前区块链技术采用的主流密码学算法,可以兼容大部分区块链系统。而且椭圆曲线算法与RSA(Rivest‑Shamir‑Adleman)、与DSA(Digital Signature Algorithm)等其他加密算法相比,具有安全性能更高、计算量更小、处理速度更快的优点。 2)不需要一个可信中心来做初始工作和分发秘密,更加适用于实际场景,并且避免了集中化风险。 3)签名参与者可以验证其他参与者发送过来的消息是否正确有效。 4)在任何阶段都不会重构完整私钥,避免了私钥泄露的风险,保证了账户的安全可信。 资产映射方案由资产映射与资产释放两个阶段构成:资产映射阶段是通过门限签名算法计算出一个映射地址,然后将资产转入该地址进行锁定;资产释放阶段是通过门限签名算法计算出门限签名,然后去解锁映射地址中的资产。具体实现如下: 1)资产映射阶段: 步骤5 由群公钥得到映射账户地址:=GenerateAddress(),由于不同区块链生成地址的算法不尽相同,所以需要按照对应应用链提供的特定地址生成算法来为应用链计算合法的账户地址。例如比特币和以太坊的私钥都是由伪随机数产生的256位二进制数,公钥都是通过采用secp256k1曲线的椭圆曲线算法生成的,它们唯一的区别就在于公钥推导地址的算法不同。获得映射账户地址后,用户将资产转移到该地址,确认转移成功后,在中继联盟链中为该用户创建相应的资产。 2)资产释放阶段: (,)门限签名机制允许个参与者中的任何个成员执行对消息的签名,每个成员都可以独立生成自己的签名份额,当收集至少个签名份额后,便可以构造出完整的签名。至少个背书节点需要执行以下步骤: 若式(12)成立,则签名份额有效。 步骤7 群签名生成后,可以用群公钥去验证群签名是否有效: 由于在执行门限签名算法的过程中涉及到随机数操作,如果多个背书节点同时执行一次门限任务,那么它们执行完之后所得出的读写集结果会不一致,收集到不一致的读写集会导致交易验证失败。因此,在一次门限任务中涉及到随机数的步骤只能单独执行,同时考虑到私钥份额等数据的安全性,本文方案在执行门限任务时,将其拆分成两部分:涉及到随机数操作与机密参数的为一部分,如构造随机多项式与计算私钥份额等;涉及公共参数的为另一部分,如计算群公钥与群签名等。针对前一部分,使用私有数据机制实现,将任务分别发送给每个背书节点单独执行,将执行后得到的结果存放于节点本地的私有数据库,并且设置了基于证书属性的权限访问控制,除了指定身份之外,没有其他任何节点与用户能够访问到私有数据库中的秘密参数,从而保证了整个门限签名过程的安全性;对于后一部分,只需将公共参数写入公共账本,使相应背书节点能够获取到即可。将资产映射与资产释放的算法封装为两个接口,写入智能合约,供签名参与方调用,为了保护跨链交易中用户的利益不受损害,调用门限签名算法接口的操作有着严格的权限控制。 4.2.2跨链事务状态 为了保证跨链事务的原子性与一致性,在每一笔跨链事务发起时,中继联盟链都会初始化一个事务状态表,如表2所示。CCIP中的Txid字段就是表中的跨链事务ID,跨链事务ID后面加上递增数字作为子事务ID。一个跨链事务通常由多个子事务组成,只有当所有子事务都成功完成时,跨链事务才会被认为已完成,并且设置了超时机制,若中间哪一步出错,或者超时,则会采取相应的回滚操作,回滚一定次数后仍然失败,则该跨链交易失败。本文方案将一笔完整跨链交易中应用链完成的每一个操作作为一个子事务,应用链完成相应操作后都会将相关信息以CCIP格式发送给中继联盟链进行验证,所以在具体实现中,将每一条由应用链发送来的CCIP消息作为子事务进行验证。信息交互类型跨链互操作的实现也采用了事务状态表的方式。 表2 跨链事务状态 下面介绍四种基本类型跨链交互的详细实现过程。 4.3.1资产交换类型 对于资产交换类型的跨链事务,例如链A用户Alice想用10 acoin(链A代币)换取链B用户Bob的20 bcoin(链B代币),双方在两条链上都有账户,交易过程如下: 1)Alice向跨链网关发送交易提案,跨链网关接收到之后,解析交易内容,检查签名,若提案有效,则按照协议规则,将交易提案构造为CCIP消息格式,发送给通道中指定的背书节点,执行资产交换智能合约: 2)每个背书节点分别调用资产映射接口,计算各自的私钥与公钥份额,并将公钥份额聚合成群公钥,生成两个资产映射地址: 4)跨链网关监听到两条链的锁定交易成功上链后,将这两笔交易的交易原文和交易存在性证明提交给中继联盟链。 5)中继联盟链对这两笔锁定交易验证无误后,创建等值的数字资产到Alice与Bob的合约账户地址中(用户在中继联盟链中的账户,可存放资产与数据)。 6)Alice通过资产交换智能合约向Bob发起交易请求,各个背书节点调用资产释放接口,构建出完整的门限签名,发送给Alice。 4.3.2资产转移类型 对于资产转移类型的跨链事务,例如链A用户Alice想将10 acoin送给链B用户Bob,假设acoin与bcoin汇率为1∶20,交易过程如下: 1)与资产交换类似,Alice向跨链网关发送交易提案,每个背书节点分别调用资产映射接口,生成映射账户地址(式(16))。 2)Alice发起交易将自己的10 acoin锁定到映射账户地址中,跨链网关监听到锁定交易成功上链后,将交易原文和交易存在性证明提交给中继联盟链进行验证,验证无误后,创建等值的数字资产10 acoin′到Alice的合约账户中。 3)Alice通过资产转移智能合约发起对Bob的资产转移交易,将自己合约账户内的10 acoin′按照汇率兑换为200 bcoin′转入Bob的合约账户。 4)资产转移交易经过上链确认后,中继联盟链会构造一个交易提案,其中包括资产转移交易的交易原文和交易存在性证明等信息,通过跨链网关发送给链B,链B接收到之后,验证无误后,会创建(或解冻)200 bcoin到Bob的账户。 5)Bob收到200 bcoin的交易经链B确认后,跨链网关会监听到这笔交易,并将交易原文与交易存在性证明返回给中继联盟链验证,验证通过后,销毁Bob合约账户中的200 bcoin′。 转移的资产可以原路返回(当然,Bob也可以将200 bcoin′用作他途),交易过程如下: 1)与资产转移流程中1)~5)相同,只不过将Alice换成Bob; 4.3.3信息付费类型 对于信息付费类型的跨链事务,例如链A用户Alice想购买链B用户Bob出售的信息资源,交易过程如下: 1)与资产转移的1)、2)相同,并且Bob将信息资源用Alice的公钥加密后传输到其合约账户; 2)Alice发起信息付费交易,将合约账户中的数字资产转移到Bob的合约账户地址中,同时将Bob账户中的信息资源发送到Alice的账户中,这是一个原子性操作,只有转账操作与发送信息操作全部成功,这笔交易才会被确认有效; 3)信息付费交易成功上链后,Alice便可在自己本地拉取到信息资源,并使用私钥解密即可,而Bob在链B的账户中也会获得相应资产。 4.3.4信息交互类型 对于信息交互类型的跨链事务,例如链A用户Alice想将某些数据写入链B,并读取这个事件发生后的结果,交互过程如下: 1)Alice发起一个交易提案,里面包含了对目标链的事务请求,经过跨链网关转换后提交给中继联盟链网络; 2)中继联盟链收到并验证后,构建交易指令发送给链B,并创建一个事务状态表,用于记录和追踪事务的状态,待到数据成功写入链B以及获取到该事件发生后的结果,事务被标记完成; 3)事务完成后,返回结果给Alice。 本章首先做了三组实验,对跨链方案的可行性、跨链系统的性能及出块权分配方案做了测评,然后对整个跨链网络的安全性进行了全面的分析。实验环境所使用的服务器配置与Fabric网络配置如表3所示。 本节实验用了一台服务器搭建了5个Orderer节点、4个peer节点(2个组织,每个组织2个节点)的Fabric网络进行测试,背书策略为AND('Org1.peer', 'Org2.peer')。图4使用的测试合约是官方提供的弹珠案例,图5用的是官方提供的basic案例。 图4说明了在通道内使用私有数据与不使用私有数据几乎没有性能上的差别。 表3 服务器配置与fabric网络配置 图4 使用与不使用私有数据的性能比较 图5 事务总量一定时通道数量对于性能的影响 本节测试共使用了7台服务器,其中3台服务器用于搭建中继联盟链,2台作为跨链网关,另外2台搭建了两条应用链,分别是以太坊测试网络与fabric联盟链网络,以模拟真实的跨链场景。中继联盟链共三个组织,一台服务器部署一个组织,其中排序组织5个节点,以太坊组织与fabric组织各4个节点。测试了四条跨链合约的性能,实验中不考虑应用链本身的交易确认时间,直接通过跨链网关中的SDK(Software Development Kit)插件向中继联盟链发送交易。实验设定为:每组测试都以特定的交易发送速率向网络发送持续1 min的交易,客户端数量设为10,即10个客户端同时发送交易。 图6展示了资产交换合约读操作与写操作在不同交易发送速率下的吞吐量与延迟,写操作吞吐量起先随着交易发送率的提高而增加,在发送率为1 000 TPS时达到最高,为960 TPS,随后便略微下降。平均延迟时间起先随着发送率的提高而降低,在发送率超过达到800 TPS之后,延时迅速增加,因为交易发送率高于一定程度后,会积压未完成交易,发送率越高,积压得就越多,导致交易处理的延时增加。读操作吞吐量基本与发送率持平,最高保持在3 000 TPS左右,延时始终保持在0.1 s。资产转移、信息付费与信息交互合约的性能与资产交换合约相差无几,不再另做展示。 图6 资产交换合约性能测评 门限签名算法的测试比较特殊,计算过程中需要计算随机数,而随机数会使得每个背书节点执行生成的读写集不一致,从而导致交易验证失败,所以门限过程中涉及随机数的步骤需要单独发送各个背书节点去执行。为了方便测试,只在一个peer节点上部署了门限签名算法合约。图7测评了门限签名算法的性能情况,因为涉及大量密码学运算,所以相比四个业务合约模板,总体性能偏低,最高只有758 TPS,平均延迟时间也偏高。图8展示了门限签名算法合约容器的CPU平均利用率,利用率先随着交易发送速率的提高而增加,在交易发送率达到400 TPS左右时,CPU利用率达到最高值,在1 900%左右,随后,便开始持续轻微下降。每100%代表一个CPU核心,因为密码学运算是CPU密集型操作,所以CPU的利用率相比业务合约要高得多,但是由于中继联盟链网络事务处理瓶颈的存在,所以随着交易发送速率的增加,CPU利用率并不会一直提高,反而会略微下降。 出块权分配方案的核心在于以更多的排序节点数量来竞争到出块权,本节测试启动了50个排序节点,分别按照1∶3∶6、2∶4∶4、3∶5∶2的比例分配给组织A、B、C,每个比例为一组实验,共3组实验,每组实验都进行了50次选举,实验结果如表4所示,实验数据说明了出块权分配方案确实可行,排序节点的数量越多,竞争到出块权的概率越大。从将领导者节点宕机到重新选举出领导者的时间间隔稳定在5 s左右。 图7 门限签名算法性能测评 图8 门限签名算法合约容器的CPU利用率 表4 出块权分配方案的实验结果 1)数据的安全性与隐私性。首先不同通道之间数据隔离,互相独立;其次在通道内通过私有数据保证不同的合作群体之间有自己的专属隐私信道;再者,在智能合约中通过合约级、私有数据级、键级等三种不同层次的背书策略以及基于证书属性的访问控制可以实现更细粒度的权限控制。通过这三个层级,可以灵活地根据业务需求设定权限策略并有效地保证数据的隐私安全性。 2)出块权竞争方案的安全性。为了达到联盟共治的目的,设计了出块权竞争方案,哪个组织表现越好,竞争到出块权的概率就越大。虽然raft是故障容错算法(Crash Fault Tolerance, CFT),无法防止恶意类节点,但是若某个掌握领导者节点的组织恶意篡改区块数据,peer节点会验证区块失败,从而网络会迅速检测到恶意的领导者节点,停止其运作,注销其证书,并对该组织施以惩罚。所以恶意组织利用出块权作恶的风险可以排除。 3)门限签名算法执行过程中的安全性。因为门限签名算法中涉及到随机值,不能多个背书节点同时执行门限签名算法,否则会导致提案执行结果验证失败,所以涉及到计算随机值的步骤需要单独发送给各个背书节点去执行。本文通过私有数据机制实现这点,每个背书节点单独执行特定步骤,随机数与密钥份额等重要数据存于私有数据库中而不是公共账本中,并设定只有特定身份才可访问这类数据,确保数据不会外泄。椭圆曲线公开参数与公钥份额等共享数据存于公共账本中,合法身份皆可访问。通过私有数据机制将完整的门限过程分割为不同步骤,既使得中继联盟链可以兼容分布式门限签名算法,又保证了重要数据的隐私安全。 4)跨链网络的安全性。整个跨链网络的安全性由三部分组成:应用链、中继联盟链与中间传输信道。应用链与中继联盟链部分由它们本身的安全机制保障,安全重点在于两者之间的中间传输过程,应用链与中继联盟链的中间传输过程可分为三种:应用链与跨链网关之间、应用链与中继联盟链之间以及跨链网关与中继联盟链之间。前两种中间传输过程因为应用链上的用户发送提案需要身份信息(包括公钥与数字签名),而且跨链交易是一个保证原子性与一致性的多步骤流程,涉及应用链与中继联盟链的多轮验证,所以只要作恶者没有盗取到用户的私钥,就不可能冒用他人身份成功完成交易。跨链网关监听、获取并提交给中继联盟链的应用链事件是已经上链确认的交易,是可信的。应用链可以自行验证中继联盟链中发生的事件,排除作恶者中途篡改交易指令的风险。第三种中间传输过程的中继联盟链会给跨链网关颁发数字证书,包括身份证书、TLS传输加密证书与私钥,网关通过合法证书才能连接到中继联盟链,而且每一笔跨链交易都要经由跨链网关的私钥进行签名后才能在网络中传输,并且跨链网关是专属于某个组织的,出了问题可以迅速排查到。综上所述,中继联盟链与应用链之间的通信安全可以得到保障。 5)跨链事务的ACID特性与安全性。本文通过跨链事务状态表来追踪一笔跨链交易的进展情况,只有当所有的跨链交易子事务都完成时,这笔交易才会在中继联盟链与应用链彻底上链成功,如果某个子事务出现问题,则会采取相应的回滚或取消交易操作,从而保证一致性与原子性。每笔跨链交易及其子事务都绑定在一个跨链事务状态表中,由状态表单独管理,不同交易之间互不干涉,保证了隔离性。至于持久性,区块链数据原本就是持久化的。通过分布式门限签名算法将源链资产映射到中继联盟链中,只有参与业务的多个组织的节点共同背书才能操作映射账户,保证了跨链资产的安全性。 本文提出了一种基于联盟自治的区块链跨链机制,通过构建一条由多方共治的中继联盟链以以链治链的方式运营整个跨链网络。运用PKI证书体系、MSP权限策略、通道机制、私有数据机制、背书机制、通道分配策略、出块权分配方案等技术和方案制定了应用链参与跨链交互的规则与方式,为应用链之间的互操作提供了一个安全可靠的技术平台。使用分布式门限签名技术与跨链事务状态表保证了跨链事务的ACID特性与安全隐私性。最后通过实验与分析证明了本文所提出的跨链系统具有良好的性能与高级别的安全性。本文方案支持多方跨链交互,但需要在双方跨链的基础上实现,效率有待提高,因此未来的工作将在本文方案的基础上进一步研究安全高效的多方跨链模式。 [1] NAKAMOTO S. Bitcoin: a peer‑to‑peer electronic cash system[EB/OL]. [2021-09-08].http://bitcoin.org/bitcoin.pdf. [2] 贺海武,延安,陈泽华. 基于区块链的智能合约技术与应用综述[J]. 计算机研究与发展, 2018, 55(11): 2452-2466.(HE H W, YAN A, CHEN Z H. Survey of smart contract technology and application based on blockchain[J]. Journal of Computer Research and Development, 2018, 55(11): 2452-2466.) [3] SUN Y, FAN L J, HONG X H. Technology development and application of blockchain: current status and challenges[J]. Strategic Study of Chinese Academy of Engineering, 2018, 20(2):27-32. [4] GORDON W J, CATALINI C. Blockchain technology for healthcare: facilitating the transition to patient‑driven interoperability[J]. Computational and Structural Biotechnology Journal, 2018, 16: 224-230. [5] 何蒲,于戈,张岩峰,等. 区块链技术与应用前瞻综述[J]. 计算机科学, 2017, 44(4): 1-7, 15.(HE P, YU G, ZHANG Y F, et al. Survey on blockchain technology and its application prospect[J]. Computer Science, 2017, 44(4): 1-7, 15.) [6] 韩璇,袁勇,王飞跃. 区块链安全问题:研究现状与展望[J]. 自动化学报, 2019, 45(1): 206-225.(HAN X, YUAN Y, WANG F Y. Security problems on blockchain: the state of the art and future trends[J]. Acta Automatica Sinica, 2019, 45(1): 206-225.) [7] 袁勇,王飞跃. 区块链技术发展现状与展望[J]. 自动化学报, 2016, 42(4): 481-494.(YUAN Y, WANG F Y. Blockchain: the state of the art and future trends[J]. Acta Automatica Sinica, 2016, 42(4): 481-494.) [8] 喻辉,张宗洋,刘建伟. 比特币区块链扩容技术研究[J]. 计算机研究与发展, 2017, 54(10): 2390-2403.(YU H, ZHANG Z Y, LIU J W. Research on scaling technology of bitcoin blockchain[J]. Journal of Computer Research and Development, 2017, 54(10): 2390-2403.) [9] 张利华,王欣怡,胡方舟,等. 基于双联盟链的智能电网数据共享模型[J]. 计算机应用, 2021, 41(4): 963-969.(ZHANG L H, WANG X Y, HU F Z, et al. Data sharing model of smart grid based on double consortium blockchains[J]. Journal of Computer Applications, 2021, 41(4): 963-969.) [10] 周致成,李立新,李作辉. 基于区块链技术的高效跨域认证方案[J]. 计算机应用, 2018, 38(2): 316-320, 326.(ZHOU Z C, LI L X, LI Z H. Efficient cross‑domain authentication scheme based on blockchain technology[J]. Journal of Computer Applications, 2018, 38(2): 316-320. 326.) [11] DE VOS M, ILERI C U, POUWELSE J. XChange: a universal mechanism for asset exchange between permissioned blockchains[J]. World Wide Web, 2021, 24(5): 1691-1728. [12] 袁勇,王飞跃. 平行区块链:概念、方法与内涵解析[J]. 自动化学报, 2017, 43(10): 1703-1712.(YUAN Y, WANG F Y. Parallel blockchain: concept, methods and issues[J]. Acta Automatica Sinica, 2017, 43(10): 1703-1712.) [13] HUGHES L, DWIVEDI Y K, MISRA S K, et al. Blockchain research, practice and policy: applications, benefits, limitations, emerging research themes and research agenda[J]. International Journal of Information Management, 2019, 49: 114-129. [14] 李芳,李卓然,赵赫. 区块链跨链技术进展研究[J]. 软件学报, 2019, 30(6): 1649-1660.(LI F, LI Z R, ZHAO H. Research on the progress in cross‑chain technology of blockchains[J]. Journal of Software, 2019, 30(6): 1649-1660.) [15] HARDJONO T, LIPTON A, PENTLAND A. Toward an interoperability architecture for blockchain autonomous systems[J]. IEEE Transactions on Engineering Management, 2020, 67(4): 1298-1309. [16] 刘海,李兴华,雒彬,等. 基于区块链的分布式匿名位置隐私保护方案[J]. 计算机学报, 2019, 42(5): 942-960.(LIU H, LI X H, LUO B, et al. Distributedanonymity location privacy protection scheme based on blockchain[J]. Chinese Journal of Computers, 2019, 42(5):942-960.) [17] ASGAONKAR A, KRISHNAMACHARI B. Solving the buyer and seller’s dilemma: a dual‑deposit escrow smart contract for provably cheat‑proof delivery and payment for a digital good without a trusted mediator[C]// Proceedings of the 2019 IEEE International Conference on Blockchain and Cryptocurrency. Piscataway: IEEE, 2009: 262-267. [18] DILLEY J, POELSTRA A, WILKINS J, et al. Strong federations: an interoperable blockchain solution to centralized third‑party risks[EB/OL]. (2017-01-30)[2021-08-23].https://arxiv.org/pdf/1612.05491.pdf. [19] MILLER A, XIA Y, CROMAN K, et al. The honey badger of BFT protocols[C]// Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. New York: ACM, 2016: 31-42. [20] 叶少杰,汪小益,徐才巢,等. BitXHub:基于侧链中继的异构区块链互操作平台[J]. 计算机科学, 2020, 47(6): 294-302.(YE S J, WANG X Y, XU C C, et al. BitXHub: side‑relay chain based heterogeneous blockchain interoperable platform[J]. Computer Science, 2020, 47(6): 294-302.) [21] HERLIHY M. Atomic cross‑chain swaps[C]// Proceedings of the 2018 ACM Symposium on Principles of Distributed Computing. New York: ACM, 2018: 245-254. [22] ANDROULAKI E, BARGER A, BORTNIKOV V, et al. Hyperledger Fabric: a distributed operating system for permissioned blockchains[C]// Proceedings of the 13th EuroSys Conference. New York: ACM, 2018: No.30. [23] SHAMIR A. How to share a secret[J]. Communications of the ACM, 1979, 22(11): 612-613. [24] PEI Q Q, MA J F. ECC‑based threshold digital signature scheme without a trusted party[C]// Proceedings of the 2008 International Conference on Computational Intelligence and Security. Piscataway: IEEE, 2008:288-292. [25] MIYAZAKI K, TAKARAGI K. A threshold digital signature scheme for a smart card based system[J]. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 2001, E84-A(1):205-213. Federated‑autonomy‑based cross‑chain scheme for blockchain ZHENG Jianhui1, LIN Feilong1*, CHEN Zhongyu1, HU Zhaolong1, TANG Changbing2 (1,,321004,;2,,321004,) To deal with the phenomenon of "information and value islands" caused by the lack of interoperation among the increasingly emerging blockchain systems, a federated‑autonomy‑based cross‑chain scheme was proposed. The elemental idea of this scheme is to form a relay alliance chain maintained by participated blockchain systems using blockchain philosophy, which is supposed to solve the data sharing, value circulation and business collaboration problems among different blockchain systems. Firstly, a relay mode based cross‑chain structure was proposed to provide interoperation services for heterogeneous blockchain systems. Secondly, the detailed design of the relay alliance chain was presented as well as the rules for the participated blockchain systems and their users. Then, the basic types of cross‑chain interactions were summarized, and a process for implementing cross‑chain interoperability based on smart contracts were designed. Finally, through multiple experiments, the feasibility of the cross‑chain scheme was validated, the performance of the cross‑chain system was evaluated, and the security of the whole cross‑chain network was analyzed. Simulation results and security analysis prove that the proposed channel allocation strategy and block‑out right allocation scheme of the proposed scheme are practically feasible, the throughput of the proposed shceme can reach up to 758 TPS (Transactions Per Second) when asset transactions are involved, and up to 960 TPS when asset transactions are not involved; the proposed scheme has high‑level security and coarse‑ and fine‑grained privacy protection mechanism. The proposed federated‑autonomy‑based cross‑chain scheme for blockchain can provide secure and efficient cross‑chain services, which is suitable for most of the current cross‑chain scenarios. blockchain; cross‑chain interoperability; information and value island; federated autonomy; relay alliance chain This work is partially supported by Natural Science Foundation of Zhejiang Province (LY22F030006). ZHENG Jianhui, born in 1995, M. S. candidate. His research interests include blockchain. LIN Feilong, born in 1982, Ph. D., associate professor. His research interests include blockchain, industrial Internet of Things. CHEN Zhongyu, born in 1964, Ph. D., professor. His research interests include blockchain, software engineering. HU Zhaolong, born in 1988, Ph. D., associate professor. His research interests include blockchain, complex networks. TANG Changbing, born in 1981, Ph. D., associate professor. His research interests include blockchain, network design and optimization. TP393 A 1001-9081(2022)11-3444-14 10.11772/j.issn.1001-9081.2021111922 2021⁃11⁃13; 2021⁃12⁃27; 2021⁃12⁃28。 浙江省自然科学基金资助项目(LY22F030006)。 郑建辉(1995—),男,浙江湖州人,硕士研究生,主要研究方向:区块链;林飞龙(1982—),男,浙江永康人,副教授,博士,CCF会员,主要研究方向:区块链、工业物联网;陈中育(1964—),男,浙江浦江人,教授,博士,主要研究方向:区块链、软件工程;胡兆龙(1988—),男,江西南昌人,副教授,博士,主要研究方向:区块链、复杂网络;唐长兵(1981—),男,浙江兰溪人,副教授,博士,主要研究方向:区块链、网络设计与优化。3.3 跨链互操作流程
3.4 共识
4 跨链互操作实现方案
4.1 跨链业务类型定义
4.2 跨链方案描述
4.3 跨链业务实现
5 实验与结果分析
5.1 私有数据与通道数量对于性能的影响
5.2 跨链智能合约模板性能测评
5.3 出块权分配
5.4 安全性分析
6 结语