CN112287029B - 一种区块链多链跨链系统及其实现机制 - Google Patents
一种区块链多链跨链系统及其实现机制 Download PDFInfo
- Publication number
- CN112287029B CN112287029B CN202011283243.2A CN202011283243A CN112287029B CN 112287029 B CN112287029 B CN 112287029B CN 202011283243 A CN202011283243 A CN 202011283243A CN 112287029 B CN112287029 B CN 112287029B
- Authority
- CN
- China
- Prior art keywords
- cross
- chain
- transaction
- link
- contract
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Abstract
本发明提供一种区块链多链跨链系统,包括:区块链原有层级的基础层、核心层、业务层以及跨链层,基础层封装了密码学、P2P及数据库技术;核心层由智能合约和共识算法构成,用于实现区块链主要业务逻辑;业务层封装应用场景,为用户提供与区块链交互的接口,跨链层由跨链智能合约及跨链底层合约构成,分别包含跨链通证转移合约及跨链查值合约和跨链通证转移底层合约及跨链查值底层合约,区块链多链跨链系统交互机制可在没有可信第三方情况下,支持异构区块链间资产转移与信息交互,实现链与链的互联互通,支持异构区块链通信的跨链交互机制支持跨链通证转移及跨链查值,并提出了跨链通证转移协议及用于保障跨链交易原子性及安全性的策略。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种区块链多链跨链系统及其实现机制。
背景技术
随着区块链技术的不断创新和持续发展,在全球范围内的金融、电商、溯源、数字版权等领域都与区块链技术有着不同程度的结合,产生了“区块链+行业”的新应用场景。基于不同应用场景的特点及需求,各领域大都搭建了联盟区块链网络实现其业务逻辑,不同区块链网络之间相互隔离,信息交互及业务互通的壁垒高。但是,随着应用场景需求的多样化发展,单个区块链网络无法满足业务需求的不断变化,跨链互操作成为区块链研究的一大发展趋势。
区块链跨链技术是实现区块链间互联互通的重要技术手段。近年来,随着应用场景及业务需求的多样化发展,众多学者针对区块链跨链技术及其应用到某些场景后所表现出的不足做了许多理论方面的研究。同时,已有许多团队开始探索如何利用跨链技术实现不同区块链网络间的互联互通。Wang等人提出一种利用公证人机制实现异构区块链之间评论数据互通的方法,其在智能合约中定义了评论的三个状态:未审查、审查中、审查后。由公证人对评论进行审核与签名,并遵从少数服从多数的原则审核该评论的正确性;张诗童等提出了一种基于哈希锁定的多方跨链协议,并在该协议中融入了交易撮合算法及价格磋商机制,支持实现价格最优的多方跨链资产互换;解雯霖等构建了许可环境下的基于预言机的对等跨链协议,不同区块链的节点可以通过预言机与其他区块链进行交互;Li等提出一种基于多重签名技术的跨链系统——代理链,用户可通过将其资产锚定到代理链实现与现有区块链系统的资产交互;路爱同等通过使用公证人机制构建了基于HyperledgerSawtooth项目的跨链系统,实现了Sawtooth网络与其他区块链的互联互通;Kan等提出了一种支持异构区块链通信的多区块链架构,以及不需可信第三方参与的链间消息传输协议,异构区块链可通过该架构中的链间交互模型实现互联互通;叶少杰等构建了基于侧链中继跨链技术的异构区块链互操作平台BitXhub,并提出了一种支持跨链通信的协议IBTP,实现了异构区块链间的资产互换、信息互通以及服务互补。单向/双向锚定侧链是最早实现跨链资产转移的案例,其实质上是比特币协议的补充,最早于2014年在《Enabling B1ockchainImovations with Pegged Sidechains》中公开,可以实现跨链资产的转移。用户利用已有区块链上的资产可以很容易的与新的区块链系统进行资产交互,由此实现了链间的价值流通。同时,各链之间具有良好的隔离性、不会相互影响,但是目前该项目只支持比特币区块链与其他链之间的资产互换;比特币闪电网络(Lightning Network)于2015年被提出,其采用哈希时间锁机制,通过将交易放到区块链下处理,来扩展比特币的交易处理能力。目前该项目可以实现小额支付的快速确认,但是不适用于大额支付且收款人必须在线才可完成支付,应用场景有限;FUSION是分布式私钥技术的典型项目,其通过将加密资产映射到FUSION公有链来实现自由交互,实现过程分为锁定与解锁两个步骤,锁定过程即分布式生成秘钥的过程,即将秘钥分片并进行分布式管理,而解锁过程负责解除分布式控制权与链间的资产映射,该项目目前仍处于探索阶段;Cosmos和Polkadot项目是关注度比较高的跨链项目,其中,Cosmos是由Tendermint团队于2017年提出的支持跨链交互的网络架构,该架构既支持同构区块链间的交互,也支持通过Bridge部件进行异构区块链间的通信,同时,通过使用Tendermint共识算法及IBC(inter-blockchain communication protocol)通讯协议,可以保障跨链交易在传输过程中的安全;而Polkadot项目是基于Substrate框架构建的可拓展的异构多链区块链,跨链信息的交互遵从跨链信息传递协议(XCMP),可以有效地支持异构区块链间的通信,可拓展性强,符合条件的区块链均可加入Polkadot网络。目前,Cosmos和Polkadot项目均处于比较初级的阶段,各方面都需进一步改进和更新。
目前主流的区块链跨链技术主要有上面详述的公证人机制、侧链/中继技术、哈希锁定技术及分布式私钥控制技术,其中公证人机制依靠可信的第三方做信用背书、处理跨链交易,交易处理速度快且技术架构简单,但存在中心化问题;侧链/中继技术通过锚定技术来实现链与链之间的跨链互操作,其中,侧链技术主要通过锚定现有区块链的功能如比特币来实现跨链操作,而中继技术主要由中继链充当公证人的角色来处理跨链交易,侧链/中继技术具有良好的隔离性,一条链损坏不会影响到其他链的正常运行,但是需要存储锚定链的区块头信息且实现较复杂;哈希锁定技术是指用户在规定时间段内通过对哈希值的原值进行猜测来完成支付的一种机制,依赖区块链智能合约来实现,可以实现小额支付的快速确认,但是不支持跨链资产的转移,只支持资产互换,可应用的场景有限;分布式私钥控制技术通过分布式私钥生成及控制技术,将多条区块链上的资产映射至一条新区块链,在该区块链进行资产的互操作,该方式中跨链所用密钥由用户及区块链网络共同控制,安全性更高,但实现难度较大。
综上所述,现有区块链跨链技术的研究及应用中,仅有少数不需借助可信第三方来实现区块链间的交互,且大多实现复杂、应用场景有限。
发明内容
为了克服现有技术的以上缺陷,本发明针对现有跨链技术研究中存在的中心化风险、实现复杂、应用场景有限、存储代价高等问题,提出了新的跨链交互机制,该机制可在没有可信第三方的情况下,支持异构区块链间的资产转移与信息交互,以此实现链与链的互联互通,即一种支持异构区块链通信的跨链交互机制,支持跨链通证转移及跨链查值两种操作,并提出了用于保障跨链交易原子性及安全性的策略及跨链通证转移协议。其中,跨链交易状态转换模型用于保证跨链交易的原子性,跨链节点动态选择策略及签名跨链交易数据构造策略用于保障跨链交易的安全性,而跨链通证转移协议基于原子性及安全保障策略构建,用于规范链间的交互过程。
本发明的目的在于提供一种区块链多链跨链系统,包括:基础层、核心层、业务层以及核心层和基础层之间的跨链层,其中,所述基础层、核心层及业务层为区块链原有层级,基础层是区块链的最底层,封装了密码学、P2P及数据库技术;核心层由智能合约和共识算法构成,用于实现区块链主要的业务逻辑;业务层封装了区块链的应用场景,为用户提供与区块链交互的接口。
优选的,所述跨链层由跨链智能合约及跨链底层合约两部分构成,所述跨链智能合约包含跨链通证转移合约及跨链查值合约,其与区块链系统上智能合约的编写、部署及调用规则完全一致,负责调用跨链底层合约实现对外交互,并记录交互过程中产生的信息;所述跨链底层合约支持通过发送HTTP请求来获取外部数据,所述跨链底层合约需要在区块链上线时部署且其地址需被提前定义,包含跨链通证转移底层合约及跨链查值底层合约两部分;区块链间的资产转移操作由跨链通证转移合约及跨链通证转移底层合约负责,所述跨链查值合约及所述跨链查值底层合约用于实现链间的查值操作;其中,跨链通证转移合约由路由合约、通证控制合约、跨链交易发起合约及跨链交易接收合约四个合约组成,跨链查值合约由路由合约、用户合约及查询合约组成,所述跨链通证转移底层合约包括转移发送模块和状态查询模块。
优选的,所述区块链多链跨链系统的链间交互方式包括:在没有第三方公证人或区块链的情况下,实现链间直接交互,区块链网络中的节点被分为普通节点及跨链节点,其中,普通节点只参与共识过程,而跨链节点负责跨链交易的接收,其数量为一个或多个,在发起跨链交易前,跨链双方需要在对方区块链上注册跨链节点的链标识chainFlag、IP地址及跨链所用合约的地址,所述链间交互方式的形式包括:链间通证转移以及链间查值,所述跨链通证转移支持链与链的一对一交互方式,所述跨链查值支持一链对多链的链间交互。
优选的,所述区块链多链跨链系统的合约调用关系包括:跨链通证转移以及跨链查值,其中所述跨链通证转移操作通过跨链通证转移跨链合约与跨链通证转移底层合约的相互调用实现,跨链通证转移合约包含4个区块链智能合约:路由合约、通证控制合约、跨链交易发起合约及跨链交易接收合约,其中,路由合约用于跨链节点的选择以及对方跨链节点信息的记录;通证控制合约用于账户注册及通证管理;跨链交易发起合约和跨链交易接收合约负责跨链交易的发送与接收以及交易状态的查询,所述跨链通证转移底层合约支持对外通信的合约,包含转移发送及交易状态查询两个模块,在跨链通证转出链部署路由合约、通证控制合约及跨链交易发起合约,在跨链通证接收链部署路由合约、通证控制合约以及跨链交易接收合约;所述跨链查值操作由跨链查值合约及跨链查值底层合约实现,跨链查值合约包括用户合约、路由合约及查询合约,其中,用户合约负责用户信息及业务信息的记录,路由合约用于存储跨链区块链的节点信息等数据,查询合约用于调用路由合约及跨链查值底层合约完成查值操作,用户合约调用查询合约进行跨链查值操作时,会触发查询合约调用路由合约以获取需要的跨链信息;获取必要的跨链信息后,查询合约发起跨链查询请求,并通过调用跨链查值底层合约调用被查询区块链的用户合约来获取查询结果。
优选的,跨链交易发起合约和跨链交易接收合约是跨链通证转移的主合约,在执行一笔跨链通证转移操作时,转出链及转入链上存在如下的合约调用操作:
(1)转出链上跨链交易发起合约的操作步骤为:调用路由合约获取转入链的跨链信息;调用通证控制合约进行通证的增、减、锁定操作;调用跨链通证转移底层合约,并由其向转入链的跨链交易接收合约发送跨链交易;跨链交易发送完成后,通过底层合约调用转入链上的跨链交易接收合约,并根据查询结果更改本链上该交易的状态;
(2)收到转出链的跨链交易后,转入链上的跨链交易接收合约的操作步骤:调用路由合约获取转出链的跨链信息;通过底层合约调用转出链上的跨链交易发送合约,查询该笔跨链交易在转出链上的状态,并根据查询结果更改该交易在本链的状态;根据查询的状态,调用通证控制合约对收到的跨链通证进行管理。
本发明的目的在于提供一种区块链多链跨链系统的实现机制,包括:原子性保障策略及安全保障策略,其中原子性保障策略基于跨链交易状态转换模型,安全保障策略包括跨链节点动态选择策略和签名跨链交易数据构造策略,由所述原子性保障策略以及安全保障策略构建跨链通证转移协议。
优选的,所述跨链交易状态转换模型定义了交易执行的四个状态以反映跨链交易当前的执行情况以及后续需要执行的操作,其中,“0”为交易的初始状态,“1”为交易的中间状态,即跨链交易执行中但尚未结束的一个状态,“2”、“3”则为交易的最终状态,跨链通证转移交易的执行过程中,跨链交易的发起方与接收方具有如下状态变化过程:
(1)发起方状态变化描述
A.跨链交易发起方的某笔跨链通证转移交易不存在时,其state为0;
B.当跨链交易发起合约执行交易发送方法,且跨链交易数据发送成功时,更新state从0→1,并将需转移的通证转至锁定状态,此时,锁定的通证仍属于发起方,但暂时不能被其使用;若发送失败则更新state从0→3;
C.通过跨链交易发起合约查询到接收方链上该笔交易的状态值为1,则更新本链state从1→2,并减去账户中处于锁定状态的通证,此时,该通证不再属于发起方;若查询结果为3,交易执行失败,更新本链state从1→3,并将锁定的通证解锁,此时,发送方可任意支配该笔通证;若查询结果为0,暂不更新state;
(2)接收方状态变化描述
A.跨链交易接收方的某笔跨链通证转移交易初始state为0,当跨链交易接收合约的交易接收方法被调用且跨链交易被接收时,更新该交易的state从0→1,并将发送方转移的锁定通证加入账户,此时该笔通证属于接收方,但暂时不能被其支配使用;
B.当查询到发送方链上该跨链交易的state为2时,更新本链state从1→2,并将账户中处于锁定状态的通证解锁以供支配使用;若查询结果为3,交易执行失败,更新本链state从1→3并减去账户中的锁定通证,此时,该笔通证不再属于接收方;若查询结果1,暂不更新state;
每次状态的变化都会对应一种通证变化操作;
优选的,所述安全保障策略包括:跨链节点动态选择策略以及签名跨链交易数据构造策略,所述跨链节点动态选择策略为在每笔交易完成后重新选择跨链节点,以此保证跨链节点的安全可信,所述跨链节点动态选择策略使用VRF生成随机数,所述VRF由随机数生成算法、证明生成算法及随机数验证算法构成,其使用前提为各节点都有自己的非对称密钥对,其中公钥用于标识节点账户,在区块链中公开;私钥用于签名,由节点自己保管;跨链节点需从共识节点的集合中进行选择,具体的选择过程由节点选择函数完成,该函数由6个模块构成,分别是初始seed生成模块、随机数生成模块、选择模块、证明生成模块、签名验证模块及随机数验证模块,选择过程的具体描述如下:
第一步:由初始seed生成模块在可信环境SGX中生成初始的种子seed,并将其发送至参与跨链交互的区块链用于生成随机数;
第二步:区块链中的各共识节点调用随机数生成模块中的VRF随机数计算算法,通过输入初始seed及其私钥来生成随机数;
第三步:由选择模块根据随机数对节点进行筛选,筛选不符合条件的节点失去在下一轮交易中成为跨链节点的资格,包括两种筛选的方法:阈值选择方法及排序选择方法,所述阈值选择方法通过判断随机数是否满足预设的阈值条件进行选择,阈值条件不同,选中的节点及其数量也不同,而排序选择方法需将随机数按大小排序,并按排序结果选择需要数目的节点;
第四步:被选中的节点调用证明生成模块中的VRF证明生成算法,通过输入其私钥及随机数可生成该随机数对应的零知识证明,用于随机数的验证;
第五步:生成随机数的证明后,节点需在全网进行广播其生成的随机数及证明,由签名验证模块利用密码学技术,建立节点与其广播消息间的一对一关系,区块链中的其他节点收到广播信息后首先会对节点身份进行验证;身份验证通过后,调用随机数验证模块的VRF随机数验证算法对广播的信息进行验证,验证证明与随机数是否匹配、初始seed是否参与随机数及证明的生成。全部验证通过后,该消息的发送者成为当前区块链的跨链节点,本轮跨链节点选择完成;
经过上述五步,当前区块链的跨链节点选择完毕,为支持跨链交互,所选跨链节点需调用交互区块链上的路由合约,通过输入节点IP地址、节点公钥PK、节点的随机数value和证明proof等信息进行注册,注册成功后,即可进行跨链交易;
所述签名跨链交易数据构造策略用于跨链交易的转移申请阶段,通过签名技术保证交易数据不被篡改,所述签名跨链交易数据构造策略使用的前提为各用户都有自己的非对称密钥对,其中公钥用于标识用户账户,在区块链中公开;私钥用于签名,由用户自己保管,跨链交易所需包含的参数包括跨链交易ID、账户转出金额、期望的账户转入金额、转出链标识、转入链标识、转出链账户地址、交易发起账户地址、智能合约地址、用于交易的GAS、账户交易计数、转入链账户签名数据以及转出链账户签名数据,当chainA为通证转出链而chainB为转入链时,签名数据构造方式包括:首先,使用转入方的账户私钥对交易数据进行签名,生成转入链账户签名交易数据INSDATA,转入链账户签名交易数据将参与整个跨链通证转移交易数据的构建;然后构建完整的跨链通证转移交易的数据,并使用转出方的私钥对其签名,形成转出链账户签名数据OUTSDATA;转入方收到完整的跨链通证转移交易数据OUTSDATA后,对其中的INSDATA进行验证以防止用户在构造跨链交易数据时造假,验证操作如下所示:
1)验证INSDATA中是否包含INSDATA构造所需的全部参数;
2)验证转出链智能合约中记录的跨链交易标识、对方跨链交易接收合约地址、签名跨链交易数据、跨链节点信息以及转出通证数量,与INSDATA中记录的数据是否完全一致;
当INSDATA不符合上述操作的任意一项时,执行失败,更新该跨链交易的状态为失败状态。
优选的,所述跨链通证转移协议包括:整个跨链通证转移操作的完成包括3次互操作:转移申请、发送方查询、接收方查询;对于所述跨链通证转移协议包括在无异常及有异常两种情况下的运行,其中所述异常指发送HTTP请求时遇到的网络故障和/或节点作恶的情况,
优选的,无异常情况:chainA为跨链通证转移交易的发送链,chainB为接收链;
(1)转移申请
chainA通过调用跨链交易发起合约向chainB的跨链交易接收合约发送交易数据INSDATA,完成跨链通证转移申请。发送完成后,chainA更新该交易的状态state从0→1,并将需跨链转移的通证转为锁定状态;
chainB的跨链节点接收该交易后,将其在全网广播,当超过一半的共识节点对该交易进行共识后,该交易才确认被chainB接受,此时,更新chainB中该交易的状态state从0→1并将chainA转移的锁定通证加入账户;
(2)发送方查询
该操作中,chainA查询chainB上跨链交易的状态;chainA利用交易编号txID查询chainB上相应跨链交易的状态,当查询结果为1时,更新chainA上该交易的state为1→2,并减去其账户中处于锁定状态的通证;完成该操作后,chainA上该笔跨链交易执行完成,达到最终状态;
(3)接收方查询
该操作中chainB查询chainA上跨链交易的状态;chainB调用跨链交易接收合约中的方法查询chainA上跨链交易的状态信息,当查询结果为2时,更新chainB上该交易的状态state为1→2,并将其账户中处于锁定状态的通证解锁以供使用,此时,跨链交易在chainB也执行完成并达到了最终状态;
经过以上三次操作,跨链双方可对一笔跨链交易达成一致的共识结果,保证跨链通证转移的原子性;
有异常情况:在跨链通证转移协议的基础上加入交易有效期策略,在发生异常时,该策略可促使跨链双方在有限的时间内就某笔跨链交易达成共识,由此保证了交易的原子性,所述交易有效期以区块高度的形式表述为VBN,根据系统对交易时效性及原子性的需求设计计算公式,加入交易有效期策略后,跨链通证转移协议的运行流程为:每次查询结束后,若chainA未能得到chainB上有用的交易状态信息,则计算交易有效期的块高VBN,并将其与当前区块链的块高BN进行对比,当VBN≤BN时,更新交易状态state 1→3,同时将锁定的通证解锁,判定该交易执行失败,chainA上跨链交易执行完毕;当chainB查询该交易在chainA的状态时,会根据查询结果更新本链上交易状态state 0→3,此时,chainA、chainB就该交易达成失败的共识,保证了该交易执行的原子性。
本发明的有益效果:
针对现有跨链技术研究中存在的中心化风险、实现复杂、应用场景有限、存储代价高等问题,提出了新的跨链交互机制,该机制可在没有可信第三方的情况下,支持异构区块链间的资产转移与信息交互,以此实现链与链的互联互通,即一种支持异构区块链通信的跨链交互机制,支持跨链通证转移及跨链查值两种操作,并提出了用于保障跨链交易原子性及安全性的策略及链间进行资产交互时需遵循的跨链通证转移协议。其中,跨链交易状态转换模型用于保证跨链交易的原子性,跨链节点动态选择策略及签名跨链交易数据构造策略用于保障跨链交易的安全性,而跨链通证转移协议基于上述策略构建,用于规范区块链间交互的过程。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1为根据本发明实施例的跨链区块链架构的系统架构图;
图2为根据本发明实施例的跨链合约调用示意图;
图3为根据本发明实施例的一对多跨链查值链间交互示意图;
图4为根据本发明实施例的跨链通证转移合约调用关系图;
图5为根据本发明实施例的跨链查值合约调用关系图;
图6为根据本发明实施例的可行状态转换关系示意图;
图7为根据本发明实施例的跨链通证转移协议运行流程示意图;
图8为根据本发明实施例的异常时跨链通证转移协议运行流程示意图;
图9为根据本发明实施例的跨链节点动态选择示意图;
图10为根据本发明实施例的签名跨链交易数据构造方式原理图。
具体实施方式
为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
本实施例针对现有跨链技术研究中存在的中心化风险、实现复杂、应用场景有限、存储代价高等问题,提出了新的跨链交互机制,该机制可在没有可信第三方的情况下,支持异构区块链间的资产转移与信息交互,以此实现链与链的互联互通,即一种支持异构区块链通信的跨链交互机制,支持跨链通证转移及跨链查值两种操作,并提出了用于保障跨链交易原子性及安全性的机制及策略。其中,跨链交易状态转换机制及跨链通证转移协议用于保证跨链交易的原子性,而跨链交易的安全性通过跨链节点动态选择策略及签名跨链交易数据构造策略来保障。
如图1所示,本实施例提供一种区块链多链跨链系统,包括:基础层、核心层、业务层以及核心层和基础层之间的跨链层,其中,所述基础层、核心层及业务层为区块链原有层级,基础层是区块链的最底层,封装了密码学、P2P及数据库术;核心层由智能合约和共识算法构成,用于实现区块链主要的业务逻辑;业务层封装了区块链的应用场景,为用户提供与区块链交互的接口。普通业务基于上述三层即可完成,而跨链业务需使用本发明提供的跨链层。
跨链层由跨链智能合约及跨链底层合约两部分构成。跨链智能合约包含跨链通证转移合约及跨链查值合约,其与区块链系统上智能合约的编写、部署及调用规则完全一致,负责调用跨链底层合约实现对外交互,并记录交互过程中产生的信息。跨链底层合约为本发明设计的支持通过发送HTTP请求来获取外部数据的合约,该合约需要在区块链上线时部署且其地址需被提前定义,包含跨链通证转移底层合约及跨链查值底层合约两部分。区块链间的资产转移操作由跨链通证转移合约及跨链通证转移底层合约负责,而跨链查值合约及跨链查值底层合约用于实现链间的查值操作。其中,跨链通证转移合约由路由合约、通证控制合约、跨链交易发起合约及跨链交易接收合约四个合约组成,跨链查值合约由路由合约、用户合约及查询合约组成,而跨链通证转移底层合约包括转移发送模块和状态查询模块。
区块链多链跨链系统的链间交互方式包括:在没有第三方公证人或区块链的情况下,实现链间直接交互。区块链网络中的节点被分为普通节点及跨链节点,其中,普通节点只参与共识过程,而跨链节点负责跨链交易的接收,其数量为一个或多个。在发起跨链交易前,跨链双方需要在对方区块链上注册跨链节点的链标识(chainFlag)、IP地址及跨链所用合约的地址。包括:
1.链间通证转移
如图2所示为两条区块链场景下跨链通证转移示意图。其中,chainA是跨链交易的发起链,chainB是跨链交易的接收链。当chainA向chainB发送交易时,chainA中所有节点都会向chainB上的跨链节点发送跨链信息,由该跨链节点在全网进行广播。除跨链节点外的其他节点收到广播信息后对其进行共识,确认是否接受该交易,当超过一半的节点接受后,该交易被chainB接受。
2.链间查值
相较于跨链通证转移时链与链的一对一交互方式,跨链查值支持一链对多链的链间交互。如3所示,当一个区块链(chainA)查询其他多个区块链(chainB、chainC)上的值时,查询发起区块链(chainA)上的所有节点会向被查询的区块链(chainB、chainC)的跨链节点发起查询请求。
区块链多链跨链系统的合约关系包括:
1、跨链通证转移
跨链通证转移操作通过跨链通证转移跨链合约与跨链通证转移底层合约的相互调用实现,跨链通证转移合约包含4个区块链智能合约:路由合约、通证控制合约、跨链交易发起合约及跨链交易接收合约。其中,路由合约用于跨链节点的选择以及对方跨链节点信息的记录;通证控制合约用于账户注册及通证管理;跨链交易发起合约和跨链交易接受合约负责跨链交易的发送与接收以及交易状态的查询等操作。而跨链通证转移底层合约为本发明设计的支持对外通信的合约,包含交易发送及交易状态查询两个模块。
图4为两条区块链间进行通证转移的场景下合约间的调用关系图,包括链内合约间的调用、链间合约的调用。而链内合约间的调用又包括智能合约与智能合约、智能合约与底层合约间的调用。其中,通证转出链需部署路由合约、通证控制合约及跨链交易发起合约,接收链需要部署路由合约、通证控制合约以及跨链交易接收合约。
跨链交易发起合约和跨链交易接受合跨链通证转移的主合约。在执行一笔跨链通证转移操作时,转出链及转入链上存在如下的合约调用操作:
(1)转出链上跨链交易发起合约的操作步骤为:调用路由合约获取转入链的跨链信息,如跨链节点信息,如图中①所示;调用通证控制合约进行通证的增、减、锁定等操作,如图中②所示;调用跨链通证转移底层合约,并由其向转入链的跨链交易接收合约发送跨链交易,如图中③、④所示;跨链交易发送完成后,可通过底层合约调用转入链上的跨链交易接收合约,并根据查询结果更改本链上该交易的状态,如图中⑧所示。
(2)收到转出链的跨链交易后,转入链上的跨链交易接收合约具有如下的操作步骤:调用路由合约获取转出链的跨链信息,如跨链节点信息,如图中⑤所示;通过底层合约调用转出链上的跨链交易发送合约,查询该笔跨链交易在转出链上的状态,并根据查询结果更改该交易在本链的状态,如图中⑥所示;根据查询的状态,调用通证控制合约对收到的跨链通证进行管理,如图中⑦所示。
2.跨链查值
跨链查值操作由跨链查值合约及跨链查值底层合约实现。跨链查值合约包括用户合约、路由合约及查询合约,其中,用户合约负责用户信息及业务信息的记录,路由合约用于存储跨链区块链的节点信息等数据,而查询合约负责调用路由合约及跨链查值底层合约完成查值操作。图5所示为进行跨链查值操作时合约间的调用关系图。
用户合约调用查询合约进行跨链查值操作时,会触发查询合约调用路由合约以获取需要的跨链信息,如跨链节点信息,如图中①所示。获取必要的跨链信息后,查询合约发起跨链查询请求,并通过调用跨链查值底层合约调用被查询区块链的用户合约来获取查询结果,如图中②所示。
本实施例提供一种区块链多链跨链系统的实现机制,包括:原子性及安全性保障策略以及跨链通证转移协议。
一、原子性保障策略:跨链交易需要解决的核心问题之一是如何保障跨链交易的原子性,即跨链交易要么都发生,要么都不发生,否则两条链的状态不一致将会给参与的区块链带来安全性问题,故本实施例提出一种跨链交易状态转换模型以保证跨链交易的原子性。
(一)跨链交易状态转换模型
为了清晰反映跨链交易当前的执行情况以及后续需要执行的操作,定义了交易执行的四个状态,如表1所示。其中,“0”为交易的初始状态,“1”为交易的中间状态,即跨链交易执行中但尚未结束的一个状态,“2”、“3”则为交易的最终状态,各状态间的可行转换关系如图6所示。
表1跨链交易状态表
状态 | 含义 |
0 | 未注册 |
1 | 执行中 |
2 | 执行成功 |
3 | 执行失败 |
跨链通证转移交易的执行过程中,跨链交易的发起方与接收方具有如下状态变化过程:
(1)发起方状态变化描述
A.跨链交易发起方的某笔跨链通证转移交易不存在时,其state为0;
B.当跨链交易发起合约执行交易发送方法,且跨链交易数据发送成功时,更新state从0→1,并将需转移的通证转至锁定状态,此时,锁定的通证仍属于发起方,但暂时不能被其使用,如图中①所示。若发送失败则更新state从0→3,如图中②所示;
C.跨链交易发起合约查询到接收方链上该笔交易的状态值为1,则更新本链state从1→2,并减去账户中处于锁定状态的通证,此时,该通证不再属于发起方,如图中③所示;若查询结果为3,交易执行失败,更新本链state从1→3,并将锁定的通证解锁,此时,发送方可任意支配该笔通证,如图中④所示;若查询结果为0,暂不更新state。
(2)接收方状态变化描述
A.跨链交易接收方的某笔跨链通证转移交易初始state为0,当跨链交易接收合约的交易接收方法被调用且跨链交易被接收时,更新该交易的state从0→1,并将发送方转移的锁定通证加入账户,此时该笔通证属于接收方,但暂时不能被其支配使用,如图中①所示;
B.当查询到发送方链上该跨链交易的state为2时,更新本链state从1→2,并将账户中处于锁定状态的通证解锁以供支配使用,如图中③所示;若查询结果为3,交易执行失败,更新本链state从1→3并减去账户中的锁定通证,此时,该笔通证不再属于接收方,如图中④所示;若查询结果1,暂不更新state。
每次状态的变化都会对应一种通证变化操作,如表2所示。
表2状态与通证变化操作对应表
状态变化 | 发起方操作 | 接受方操作 |
0→1 | 通证锁定 | 增加锁定通证 |
0→3 | 无操作 | 无操作 |
1→2 | 减去锁定通证 | 通证解锁 |
1→3 | 通证解锁 | 减去锁定通证 |
二、安全保障策略
(一)跨链节点动态选择策略
跨链节点数量相对于区块链中所有的共识节点来说,数量较少且需要直接接触交易的敏感数据,易成为攻击目标。此外,跨链节点作恶会直接影响交易的成败,故本发明提出了一种跨链节点的动态选择策略,在每笔交易完成后重新选择跨链节点,以此保证跨链节点的安全可信。
该节点选择策略主要使用VRF(Verifiable Random Function,可验证随机函数)生成随机数。VRF是目前使用较广泛、用于生成可验证随机数的随机函数之一,与传统随机函数不同的是,VRF不仅可以生成一个不可预测的随机数,还可为该随机数生成证明以验证其随机性。VRF主要由随机数生成算法、证明生成算法及随机数验证算法构成,其使用前提为各节点都有自己的非对称密钥对,其中公钥用于标识节点账户,在区块链中公开;私钥用于签名,由节点自己保管。图9所示为一笔交易完成后,区块链中跨链节点动态选择的示意图。
跨链节点需从共识节点的集合中进行选择,具体的选择过程由节点选择函数完成,该函数由6个模块构成,分别是初始seed生成模块、随机数生成模块、选择模块、证明生成模块、签名验证模块及随机数验证模块,选择过程的具体描述如下:
第一步:由初始seed生成模块在可信环境SGX中生成初始的种子seed,并将其发送至参与跨链交互的区块链用于生成随机数,如图①所示;
第二步:区块链中的各共识节点调用随机数生成模块中的VRF随机数计算算法,通过输入初始seed及其私钥来生成随机数,如图②所示;
第三步:由选择模块根据随机数对节点进行筛选,筛选不符合条件的节点失去在下一轮交易中成为跨链节点的资格。本发明提供了两种筛选的方法:阈值选择方法及排序选择方法。阈值选择方法通过判断随机数是否满足预设的阈值条件进行选择,阈值条件不同,选中的节点及其数量也不同,而排序选择方法需将随机数按大小排序,并按排序结果选择需要数目的节点,如图③所示;
第四步:被选中的节点调用证明生成模块中的VRF证明生成算法,通过输入其私钥及随机数可生成该随机数对应的零知识证明,用于随机数的验证,如图④所示;
第五步:生成随机数的证明后,节点需在全网进行广播其生成的随机数及证明。由签名验证模块利用密码学技术,建立节点与其广播消息间的一对一关系,区块链中的其他节点收到广播信息后首先会对节点身份进行验证,如图⑤所示。身份验证通过后,调用随机数验证模块的VRF随机数验证算法对广播的信息进行验证,验证证明与随机数是否匹配、初始seed是否参与随机数及证明的生成。全部验证通过后,该消息的发送者成为当前区块链的跨链节点,本轮跨链节点选择完成,如图⑥所示。
经过上述五步,当前区块链的跨链节点选择完毕。为支持跨链交互,所选跨链节点需调用交互区块链上的路由合约,通过输入节点IP地址、节点公钥PK、节点的随机数value和证明proof等信息进行注册,注册成功后,即可进行跨链交易。
(二)签名跨链交易数据构造策略
为防止跨链交易数据在区块链节点广播与执行过程中被篡改,导致跨链双方交易的最终状态不一致的情况,本发明提出了用于跨链通证转移协议中“转移申请”阶段的签名交易数据构造策略,通过签名技术保证交易数据不被篡改。
该策略使用的前提为各用户都有自己的非对称密钥对,其中公钥用于标识用户账户,在区块链中公开;私钥用于签名,由用户自己保管。此外,为更好的定义跨链交易的完整性,本发明规定了跨链交易所需包含的参数,如表3所示。其中,跨链交易由跨链交易ID(txID)来唯一标识,该字段支持自定义但不允许重复,一般采用“用户账户前8位+10位数字”的形式,如“aaaaaaaa1234567890”。
表3跨链交易参数表
序号 | 数据名称 | 描述 |
1 | txID | 跨链交易ID |
2 | OutValue | 账户转出金额 |
3 | InValue | 期望的账户转入金额 |
4 | OutChainFlag | 转出链标识 |
5 | inChainFlag | 转入链标识 |
6 | OutAccountAddress | 转出链账户地址 |
7 | From | 交易发起账户地址 |
8 | To | 智能合约地址 |
9 | Gas | 用于交易的GAS |
10 | Nonce | 账户交易计数 |
11 | INSDATA | 转入链账户签名数据 |
12 | OUTSDATA | 转出链账户签名数据 |
以两条区块链进行跨链通证转移的场景为例,当chainA为通证转出链而chainB为转入链时,有下图10所示的签名数据构造方式。首先,使用转入方的账户私钥对交易数据进行签名,生成INSDATA(In Signed Data,转入链账户签名交易数据),该数据将参与整个跨链通证转移交易数据的构建。随后,构建完整的跨链通证转移交易的数据,并使用转出方的私钥对其签名,形成OUTSDATA(Out Signed Data,转出链账户签名数据)。
转入方收到完整的跨链通证转移交易数据OUTSDATA后,需对其中的INSDATA进行验证以防止用户在构造跨链交易数据时造假,具体的验证操作如下所示:
1)验证INSDATA中是否包含图10中INSDATA构造所需的全部参数;
2)验证转出链智能合约中记录的跨链交易标识、对方跨链交易接收合约地址、签名跨链交易数据、跨链节点信息以及转出通证数量,与INSDATA中记录的数据是否完全一致。
当INSDATA不符合上述操作的任意一项时,执行失败,更新该跨链交易的状态为3(失败状态)。
三、跨链通证转移协议
为规范区块链间资产交互的过程,借鉴计算机网络的三次握手协议,在原子性及安全保障策略的基础上设计如下原子跨链通证转移协议。整个跨链通证转移操作的完成包括3次互操作:转移申请、发送方查询、接收方查询。下面就协议在无异常及有异常两种情况下的运行流程进行阐述,其中,异常指发送HTTP请求时遇到的网络故障、节点作恶等情况。
1.无异常情况
图7所示为两条区块链交互的场景下跨链通证转移协议的运行流程,其中,chainA为跨链通证转移交易的发送链,chainB为接收链。
(1)转移申请
chainA通过调用交易发起合约向chainB的跨链交易接收合约发送交易数据INSDATA,完成跨链通证转移申请。发送完成后,chainA更新该交易的状态state从0→1,并将需跨链转移的通证转为锁定状态,如图中①所示。
chainB的跨链节点接收该交易后,会将其在全网广播。当超过一半的共识节点对该交易进行共识后,该交易才确认被chainB接受,此时,更新chainB中该交易的状态state从0→1并将chainA转移的锁定通证加入账户。
(2)发送方查询
该操作中,chainA会查询chainB上跨链交易的状态,如图中②所示。chainA会利用交易编号txID查询chainB上相应跨链交易的状态,当查询结果为1时,更新chainA上该交易的state为1→2,并减去其账户中处于锁定状态的通证。完成该操作后,chainA上该笔跨链交易执行完成,达到最终状态。
(3)接收方查询
该操作中chainB会查询chainA上跨链交易的状态,如图中③所示。chainB会调用跨链交易接收合约中的方法查询chainA上跨链交易的状态信息,当查询结果为2时,更新chainB上该交易的状态state为1→2,并将其账户中处于锁定状态的通证解锁以供使用。此时,跨链交易在chainB也执行完成并达到了最终状态。
经过以上三次操作,跨链双方可对一笔跨链交易达成一致的共识结果,保证跨链通证转移的原子性。
2.异常情况
在实际HTTP请求发送的过程中,网络故障及节点作恶等情况不可避免。跨链双方由于不能确定对方交易状态,会一直处于中间状态、不能就某笔交易达成共识,从而影响交易执行的原子性。针对该问题,本发明在跨链通证转移协议的基础上加入交易有效期机制,在发生异常时,该机制可促使跨链双方在有限的时间内就某笔跨链交易达成共识,由此保证了交易的原子性。
交易有效期在本发明中以区块高度的形式表述为VBN,可根据系统对交易时效性及原子性的需求设计相应的计算公式。加入交易有效期机制后,跨链通证转移协议的运行流程如图8所示。如图中②所示,每次查询结束后,若chainA未能得到chainB上有用的交易状态信息,则计算交易有效期的块高VBN,并将其与当前区块链的块高BN进行对比,当VBN≤BN时,更新交易状态state 1→3,同时将锁定的通证转至正常状态,判定该交易执行失败,chainA上跨链交易执行完毕。当chainB查询该交易在chainA的状态时,会根据查询结果更新本链上交易状态state 0→3,此时,chainA、chainB就该交易达成失败的共识,保证了该交易执行的原子性。
本实施例针对现有跨链技术研究中存在的中心化风险、实现复杂、应用场景有限、存储代价高等问题,提出了新的跨链交互机制,该机制可在没有可信第三方的情况下,支持异构区块链间的资产转移与信息交互,以此实现链与链的互联互通,即一种支持异构区块链通信的跨链交互机制,支持跨链通证转移及跨链查值两种操作,并提出了用于保障跨链交易原子性及安全性的策略及链间进行资产交互时需遵循的跨链通证转移协议。其中,跨链交易状态转换模型用于保证跨链交易的原子性,跨链节点动态选择策略及签名跨链交易数据构造策略用于保障跨链交易的安全性,而跨链通证转移协议基于上述策略构建,用于规范区块链间交互的过程。
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。
Claims (6)
1.一种区块链多链跨链系统,其特征在于包括:基础层、核心层、业务层以及核心层和基础层之间的跨链层,其中,所述基础层、核心层及业务层为区块链原有层级,基础层是区块链的最底层,封装了密码学、P2P及数据库技术;核心层由智能合约和共识算法构成,用于实现区块链主要的业务逻辑;业务层封装了区块链的应用场景,为用户提供与区块链交互的接口;所述跨链层由跨链智能合约及跨链底层合约两部分构成,所述跨链智能合约包含跨链通证转移合约及跨链查值合约,其与区块链系统上智能合约的编写、部署及调用规则完全一致,负责调用跨链底层合约实现对外交互,并记录交互过程中产生的信息;所述跨链底层合约支持通过发送HTTP请求来获取外部数据,所述跨链底层合约需要在区块链上线时部署且其地址需被提前定义,包含跨链通证转移底层合约及跨链查值底层合约两部分;区块链间的资产转移操作由跨链通证转移合约及跨链通证转移底层合约负责,所述跨链查值合约及所述跨链查值底层合约用于实现链间的查值操作;其中,跨链通证转移合约由路由合约、通证控制合约、跨链交易发起合约及跨链交易接收合约四个合约组成,跨链查值合约由路由合约、用户合约及查询合约组成,所述跨链通证转移底层合约包括转移发送模块和状态查询模块;所述区块链多链跨链系统的链间交互方式包括:在没有第三方公证人或区块链的情况下,实现链间直接交互,区块链网络中的节点被分为普通节点及跨链节点,其中,普通节点只参与共识过程,而跨链节点负责跨链交易的接收,其数量为一个或多个,在发起跨链交易前,跨链双方需要在对方区块链上注册跨链节点的链标识chainFlag、IP地址及跨链所用合约的地址,所述链间交互方式的形式包括:链间通证转移以及链间查值,所述跨链通证转移支持链与链的一对一交互方式,所述跨链查值支持一链对多链的链间交互;所述区块链多链跨链系统的合约调用关系包括:跨链通证转移以及跨链查值,其中所述跨链通证转移操作通过跨链通证转移跨链合约与跨链通证转移底层合约的相互调用实现,跨链通证转移合约包含4个区块链智能合约:路由合约、通证控制合约、跨链交易发起合约及跨链交易接收合约,其中,路由合约用于跨链节点的选择以及对方跨链节点信息的记录;通证控制合约用于账户注册及通证管理;跨链交易发起合约和跨链交易接收合约负责跨链交易的发送与接收以及交易状态的查询,所述跨链通证转移底层合约支持对外通信,包含转移发送及交易状态查询两个模块,在跨链通证转出链部署路由合约、通证控制合约及跨链交易发起合约,在跨链通证接收链部署路由合约、通证控制合约以及跨链交易接收合约;所述跨链查值操作由跨链查值合约及跨链查值底层合约实现,跨链查值合约包括用户合约、路由合约及查询合约,其中,用户合约负责用户信息及业务信息的记录,路由合约用于存储跨链区块链的节点信息数据,查询合约用于调用路由合约及跨链查值底层合约完成查值操作,用户合约调用查询合约进行跨链查值操作时,会触发查询合约调用路由合约以获取需要的跨链信息;获取必要的跨链信息后,查询合约发起跨链查询请求,并通过调用跨链查值底层合约调用被查询区块链的用户合约来获取查询结果;跨链交易发起合约和跨链交易接收合约是跨链通证转移的主合约,在执行一笔跨链通证转移操作时,转出链及转入链上存在如下的合约调用操作:
(1)转出链上跨链交易发起合约的操作步骤为:调用路由合约获取转入链的跨链信息;调用通证控制合约进行通证的增、减、锁定操作;调用跨链通证转移底层合约,并由其向转入链的跨链交易接收合约发送跨链交易;跨链交易发送完成后,通过底层合约调用转入链上的跨链交易接收合约,并根据查询结果更改本链上该交易的状态;
(2)收到转出链的跨链交易后,转入链上跨链交易接受合约的操作步骤:调用路由合约获取转出链的跨链信息;通过底层合约调用转出链上的交易发送合约,查询该笔跨链交易在转出链上的状态,并根据查询结果更改该交易在本链的状态;根据查询的状态,调用通证控制合约对收到的跨链通证进行管理。
2.一种基于权利要求1所述的区块链多链跨链系统,其特征在于包括:原子性保障策略以及安全保障策略,其中原子性保障策略基于跨链交易状态转换模型,安全保障策略包括跨链节点动态选择策略和签名跨链交易数据构造策略,由所述原子性保障策略以及安全保障策略构建跨链通证转移协议。
3.根据权利要求2所述的区块链多链跨链系统,其特征在于所述原子性保障策略所基于的跨链交易状态转换模型定义了交易执行的四个状态以反映跨链交易当前的执行情况以及后续需要执行的操作,其中,“0”为交易的初始状态,“1”为交易的中间状态,即跨链交易执行中但尚未结束的一个状态,“2”、“3”则为交易的最终状态,跨链通证转移交易的执行过程中,跨链交易的发起方与接收方具有如下状态变化过程:
(1)发起方状态变化描述
A.跨链交易发起方的某笔跨链通证转移交易不存在时,其state为0;
B.当跨链交易发起合约执行交易发送方法,且跨链交易数据发送成功时,更新state从0→1,并将需转移的通证转至锁定状态,此时,锁定的通证仍属于发起方,但暂时不能被其使用;若发送失败则更新state从0→3;
C.通过跨链交易发起合约查询到接收方链上该笔交易的状态值为1,则更新本链state从1→2,并减去账户中处于锁定状态的通证,此时,该通证不再属于发起方;若查询结果为3,交易执行失败,更新本链state从1→3,并将锁定的通证解锁,此时,发送方可任意支配该笔通证;若查询结果为0,暂不更新state;
(2)接收方状态变化描述
A.跨链交易接收方的某笔跨链通证转移交易初始state为0,当跨链交易接收合约的交易接收方法被调用且跨链交易被接收时,更新该交易的state从0→1,并将发送方转移的锁定通证加入账户,此时该笔通证属于接收方,但暂时不能被其支配使用;
B.当查询到发送方链上该跨链交易的state为2时,更新本链state从1→2,并将账户中处于锁定状态的通证解锁以供支配使用;若查询结果为3,交易执行失败,更新本链state从1→3并减去账户中的锁定通证,此时,该笔通证不再属于接收方;若查询结果1,暂不更新state;
每次状态的变化都会对应一种通证变化操作。
4.根据权利要求2所述的区块链多链跨链系统,其特征在于所述安全保障策略包括:跨链节点动态选择策略以及签名跨链交易数据构造策略;其中所述跨链节点动态选择策略为在每笔交易完成后重新选择跨链节点,以此保证跨链节点的安全可信,所述跨链节点动态选择策略使用VRF生成随机数,所述VRF由随机数生成算法、证明生成算法及随机数验证算法构成,其使用前提为各节点都有自己的非对称密钥对,其中公钥用于标识节点账户,在区块链中公开;私钥用于签名,由节点自己保管;跨链节点需从共识节点的集合中进行选择,具体的选择过程由节点选择函数完成,该函数由6个模块构成,分别是初始seed生成模块、随机数生成模块、选择模块、证明生成模块、签名验证模块及随机数验证模块,选择过程的具体描述如下:
第一步:由初始seed生成模块在可信环境SGX中生成初始的种子seed,并将其发送至参与跨链交互的区块链用于生成随机数;
第二步:区块链中的各共识节点调用随机数生成模块中的VRF随机数计算算法,通过输入初始seed及其私钥来生成随机数;
第三步:由选择模块根据随机数对节点进行筛选,筛选不符合条件的节点失去在下一轮交易中成为跨链节点的资格,包括两种筛选的方法:阈值选择方法及排序选择方法,所述阈值选择方法通过判断随机数是否满足预设的阈值条件进行选择,阈值条件不同,选中的节点及其数量也不同,而排序选择方法需将随机数按大小排序,并按排序结果选择需要数目的节点;
第四步:被选中的节点调用证明生成模块中的VRF证明生成算法,通过输入其私钥及随机数可生成该随机数对应的零知识证明,用于随机数的验证;
第五步:生成随机数的证明后,节点需在全网进行广播其生成的随机数及证明,由签名验证模块利用密码学技术,建立节点与其广播消息间的一对一关系,区块链中的其他节点收到广播信息后首先会对节点身份进行验证;身份验证通过后,调用随机数验证模块的VRF随机数验证算法对广播的信息进行验证,验证证明与随机数是否匹配、初始seed是否参与随机数及证明的生成;全部验证通过后,该消息的发送者成为当前区块链的跨链节点,本轮跨链节点选择完成;
经过上述五步,当前区块链的跨链节点选择完毕,为支持跨链交互,所选跨链节点需调用交互区块链上的路由合约,通过输入节点IP地址、节点公钥PK、节点的随机数value和证明proof信息进行注册,注册成功后,即可进行跨链交易;
所述签名跨链交易数据构造策略用于跨链交易的转移申请阶段,通过签名技术保证交易数据不被篡改,所述签名跨链交易数据构造策略使用的前提为各用户都有自己的非对称密钥对,其中公钥用于标识用户账户,在区块链中公开;私钥用于签名,由用户自己保管,跨链交易所需包含的参数包括跨链交易ID、账户转出金额、期望的账户转入金额、转出链标识、转入链标识、转出链账户地址、交易发起账户地址、智能合约地址、用于交易的GAS、账户交易计数、转入链账户签名数据以及转出链账户签名数据,当chainA为通证转出链而chainB为转入链时,签名数据构造方式包括:首先,使用转入方的账户私钥对交易数据进行签名,生成转入链账户签名交易数据INSDATA,转入链账户签名交易数据将参与整个跨链通证转移交易数据的构建;然后构建完整的跨链通证转移交易的数据,并使用转出方的私钥对其签名,形成转出链账户签名数据OUTSDATA;转入方收到完整的跨链通证转移交易数据OUTSDATA后,对其中的INSDATA进行验证以防止用户在构造跨链交易数据时造假,验证操作如下所示:
1)验证INSDATA中是否包含INSDATA构造所需的全部参数;
2)验证转出链智能合约中记录的跨链交易标识、对方交易接收合约地址、签名跨链交易数据、跨链节点信息以及转出通证数量,与INSDATA中记录的数据是否完全一致;
当INSDATA不符合上述操作的任意一项时,执行失败,更新该跨链交易的状态为失败状态。
5.根据权利要求2所述的区块链多链跨链系统,其特征在于所述跨链通证转移协议包括:
整个跨链通证转移操作的完成包括3次互操作:转移申请、发送方查询、接收方查询;对于所述跨链通证转移协议包括在无异常及有异常两种情况下的运行,其中所述异常指发送HTTP请求时遇到的网络故障和/或节点作恶的情况。
6.根据权利要求5所述的区块链多链跨链系统,其特征在于:
无异常情况:chainA为跨链通证转移交易的发送链,chainB为接收链,
(1)转移申请
chainA通过调用跨链交易发起合约向chainB的跨链交易接收合约发送交易数据INSDATA,完成跨链通证转移申请;发送完成后,chainA更新该交易的状态state从0→1,并将需跨链转移的通证转为锁定状态;
chainB的跨链节点接收该交易后,将其在全网广播,当超过一半的共识节点对该交易进行共识后,该交易才确认被chainB接受,此时,更新chainB中该交易的状态state从0→1并将chainA转移的锁定通证加入账户;
(2)发送方查询
该操作中,chainA查询chainB上跨链交易的状态;chainA利用交易编号txID查询chainB上相应跨链交易的状态,当查询结果为1时,更新chainA上该交易的state为1→2,并减去其账户中处于锁定状态的通证;完成该操作后,chainA上该笔跨链交易执行完成,达到最终状态;
(3)接收方查询
该操作中chainB查询chainA上跨链交易的状态;chainB调用跨链交易接收合约中的方法查询chainA上跨链交易的状态信息,当查询结果为2时,更新chainB上该交易的状态state为1→2,并将其账户中处于锁定状态的通证解锁以供使用,此时,跨链交易在chainB也执行完成并达到了最终状态;
经过以上三次操作,跨链双方可对一笔跨链交易达成一致的共识结果,保证跨链通证转移的原子性;
有异常情况:在跨链通证转移协议的基础上加入交易有效期策略,在发生异常时,该策略可促使跨链双方在有限的时间内就某笔跨链交易达成共识,由此保证了交易的原子性,所述交易有效期以区块高度的形式表述为VBN,根据系统对交易时效性及原子性的需求设计计算公式,加入交易有效期策略后,跨链通证转移协议的运行流程为:每次查询结束后,若chainA未能得到chainB上有用的交易状态信息,则计算交易有效期的块高VBN,并将其与当前区块链的块高BN进行对比,当VBN≤BN时,更新交易状态state 1→3,同时将锁定的通证解锁,判定该交易执行失败,chainA上跨链交易执行完毕;当chainB查询该交易在chainA的状态时,会根据查询结果更新本链上交易状态state
0→3,此时,chainA、chainB就该交易达成失败的共识,保证了该交易执行的原子性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011283243.2A CN112287029B (zh) | 2020-11-17 | 2020-11-17 | 一种区块链多链跨链系统及其实现机制 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011283243.2A CN112287029B (zh) | 2020-11-17 | 2020-11-17 | 一种区块链多链跨链系统及其实现机制 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112287029A CN112287029A (zh) | 2021-01-29 |
CN112287029B true CN112287029B (zh) | 2023-05-16 |
Family
ID=74398909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011283243.2A Active CN112287029B (zh) | 2020-11-17 | 2020-11-17 | 一种区块链多链跨链系统及其实现机制 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112287029B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965985B (zh) * | 2021-02-04 | 2022-04-12 | 复旦大学 | 一种实现跨链互操作的数据一致性维护方法 |
CN112527913A (zh) * | 2021-02-09 | 2021-03-19 | 北京全息智信科技有限公司 | 一种区块链跨链积分共享的方法、装置、电子设备和系统 |
CN112929446A (zh) * | 2021-02-24 | 2021-06-08 | 卓尔智联(武汉)研究院有限公司 | 区块链间的数据传输方法及电子设备 |
CN112732800B (zh) * | 2021-03-30 | 2021-07-13 | 支付宝(杭州)信息技术有限公司 | 提供跨链消息的方法和装置 |
CN113064764B (zh) * | 2021-04-19 | 2023-10-27 | 支付宝(杭州)信息技术有限公司 | 在区块链系统中执行区块的方法及装置 |
CN113364735B (zh) * | 2021-05-01 | 2022-08-19 | 西安电子科技大学 | 多链场景下数据跨链访问控制方法、系统、设备及终端 |
CN113489671B (zh) * | 2021-05-11 | 2023-07-11 | 深圳前海移联科技有限公司 | 一种基于可验证随机函数的跨联盟链通讯方法和装置 |
CN113450113B (zh) * | 2021-06-28 | 2023-05-09 | 上海计算机软件技术开发中心 | 一种跨链交互的智能合约交互模型及协同执行系统 |
CN113452701B (zh) * | 2021-06-28 | 2023-04-18 | 上海计算机软件技术开发中心 | 跨链系统、面向跨链系统的分布式用户身份认证方法 |
CN113467888B (zh) * | 2021-06-29 | 2024-02-23 | 网易(杭州)网络有限公司 | 智能合约的跨链调用方法及装置、电子设备、存储介质 |
CN113781216A (zh) * | 2021-08-27 | 2021-12-10 | 浙商银行股份有限公司 | 基于回调合约机制的异步跨链交易查询方法及设备 |
CN113706148B (zh) * | 2021-08-27 | 2023-09-29 | 杭州云象网络技术有限公司 | 基于渠道权限控制的跨链方法、系统、存储介质及装置 |
CN113918645A (zh) * | 2021-09-02 | 2022-01-11 | 上海柚子工道物联技术有限公司 | 一种基于区块链的非同质资产交易系统、方法和计算机装置 |
CN113746858B (zh) * | 2021-09-10 | 2022-09-30 | 云南大学 | 一种基于可验证随机函数的跨链通信方法 |
CN115834590A (zh) * | 2021-09-15 | 2023-03-21 | 华为技术有限公司 | 一种区块链系统 |
CN113806817B (zh) * | 2021-10-08 | 2022-07-05 | 中科计算技术创新研究院 | 构建孪生nft的方法、全量可信存储的nft协议和系统 |
CN113822763A (zh) * | 2021-10-11 | 2021-12-21 | 上海万向区块链股份公司 | 基于智能合约的区块链积分跨链方法及系统 |
CN113992526B (zh) * | 2021-10-25 | 2023-05-05 | 黑龙江工程学院 | 一种基于可信度计算的联盟链跨链数据融合方法 |
CN113689216A (zh) * | 2021-10-26 | 2021-11-23 | 腾讯科技(深圳)有限公司 | 跨链事务处理方法及装置、设备、存储介质、程序产品 |
CN114024687B (zh) * | 2021-11-11 | 2022-10-28 | 上海证章信息科技有限公司 | 一种通过锁定再发行实现nft可拆分可互换的方法 |
CN114172730B (zh) * | 2021-12-08 | 2023-05-26 | 成都信息工程大学 | 面向链上链下结合文件区块链的跨链方法及中间系统 |
CN114513510A (zh) * | 2022-01-19 | 2022-05-17 | 贵阳信息技术研究院 | 一种面向许可链的分布式跨链事务中继系统及其通信方法 |
CN115065687B (zh) * | 2022-05-12 | 2024-05-07 | 中国科学院计算技术研究所 | Hyperledger Fabric与以太坊间的跨链数据共享方法及系统 |
CN114666068B (zh) * | 2022-05-25 | 2022-10-11 | 南京金宁汇科技有限公司 | 一种基于联盟链的可信随机数生成方法及装置 |
CN115001712A (zh) * | 2022-06-10 | 2022-09-02 | 上海万向区块链股份公司 | 区块链间的价值通讯传输方法、系统及介质 |
CN115170139B (zh) * | 2022-07-04 | 2023-07-18 | 北京天德科技有限公司 | 一种基于区块链数据湖的三阶段金融违规多重裁判系统 |
CN115941693B (zh) * | 2023-03-10 | 2023-05-05 | 中国信息通信研究院 | 链群接入区块链的方法、装置、设备和介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009811A (zh) * | 2017-11-30 | 2018-05-08 | 中国人民解放军国防科技大学 | 一种面向云际计算环境价值交换的跨链通信方法 |
CN108600301A (zh) * | 2018-03-08 | 2018-09-28 | 青岛墨客区块链有限公司 | 一种区块链之间的跨链方法及主区块链 |
CN108768659A (zh) * | 2018-05-24 | 2018-11-06 | 深圳前海益链网络科技有限公司 | 一种不同区块链网络之间Token资产跨链转移系统 |
CN108876370A (zh) * | 2018-06-12 | 2018-11-23 | 北京航空航天大学 | 一种异构多链架构下跨区块链共享开放数据的体系架构 |
CN109035012A (zh) * | 2018-06-11 | 2018-12-18 | 西安纸贵互联网科技有限公司 | 一种区块链系统的跨链处理方法和计算机可读存储介质 |
CN109391619A (zh) * | 2018-10-22 | 2019-02-26 | 昧来网络科技(上海)有限公司 | 基于权限的跨链通证交换方法及计算机可读介质 |
CN109409885A (zh) * | 2018-10-29 | 2019-03-01 | 深圳声笑科技有限公司 | 区块链上的跨链交易方法、装置及存储介质 |
CN111127022A (zh) * | 2020-01-08 | 2020-05-08 | 江苏恒为信息科技有限公司 | 一种区块链跨链通证价值转换算法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190172026A1 (en) * | 2017-12-02 | 2019-06-06 | Alchemy Limited LLC | Cross blockchain secure transactions |
US11416931B2 (en) * | 2018-03-16 | 2022-08-16 | Salt Blockchain Inc. | Investment fund token ownership |
US20190385156A1 (en) * | 2018-04-27 | 2019-12-19 | Bing Liu | Decentralized Crypto Token Swap Platform on Mobile Device Apps |
-
2020
- 2020-11-17 CN CN202011283243.2A patent/CN112287029B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009811A (zh) * | 2017-11-30 | 2018-05-08 | 中国人民解放军国防科技大学 | 一种面向云际计算环境价值交换的跨链通信方法 |
CN108600301A (zh) * | 2018-03-08 | 2018-09-28 | 青岛墨客区块链有限公司 | 一种区块链之间的跨链方法及主区块链 |
CN108768659A (zh) * | 2018-05-24 | 2018-11-06 | 深圳前海益链网络科技有限公司 | 一种不同区块链网络之间Token资产跨链转移系统 |
CN109035012A (zh) * | 2018-06-11 | 2018-12-18 | 西安纸贵互联网科技有限公司 | 一种区块链系统的跨链处理方法和计算机可读存储介质 |
CN108876370A (zh) * | 2018-06-12 | 2018-11-23 | 北京航空航天大学 | 一种异构多链架构下跨区块链共享开放数据的体系架构 |
CN109391619A (zh) * | 2018-10-22 | 2019-02-26 | 昧来网络科技(上海)有限公司 | 基于权限的跨链通证交换方法及计算机可读介质 |
CN109409885A (zh) * | 2018-10-29 | 2019-03-01 | 深圳声笑科技有限公司 | 区块链上的跨链交易方法、装置及存储介质 |
CN111127022A (zh) * | 2020-01-08 | 2020-05-08 | 江苏恒为信息科技有限公司 | 一种区块链跨链通证价值转换算法 |
Non-Patent Citations (2)
Title |
---|
一套基于区块链的可信学历学位认证系统;华芳等;网络空间安全;9-18 * |
基于区块链的传染病监测与预警技术;欧阳丽炜等;智能科学与技术学报;135-143 * |
Also Published As
Publication number | Publication date |
---|---|
CN112287029A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112287029B (zh) | 一种区块链多链跨链系统及其实现机制 | |
Zhu et al. | Applications of distributed ledger technologies to the internet of things: A survey | |
CN110443704B (zh) | 一种跨链发送资源的方法和装置 | |
CN108600301B (zh) | 一种区块链之间的跨链方法及主区块链 | |
CN110958110B (zh) | 一种基于零知识证明的区块链隐私数据管理方法和系统 | |
CN111191283B (zh) | 基于联盟区块链的北斗定位信息安全加密方法及装置 | |
CN109741068B (zh) | 网银跨行签约方法、装置及系统 | |
CN112583917B (zh) | 一种基于cscp的混合链构建方法 | |
CN113746858B (zh) | 一种基于可验证随机函数的跨链通信方法 | |
CN110930153B (zh) | 基于隐藏第三方账号的区块链隐私数据管理方法和系统 | |
CN113850599B (zh) | 一种应用于联盟链的跨链交易方法及系统 | |
CN112866380B (zh) | 一种基于区块链的链网架构 | |
CN111047316A (zh) | 一种反篡改的智能区块链系统及实现方法 | |
CN111737352B (zh) | 一种基于区块链的供应链信息协同管理方法 | |
CN113556393A (zh) | 一种基于区块链的多式联运数据交换系统及方法 | |
CN113328854A (zh) | 基于区块链的业务处理方法及系统 | |
CN114401091B (zh) | 基于区块链的设备跨域认证管理方法及装置 | |
CN115828328A (zh) | 信创环境下基于区块链的涉密非结构化数据全生命周期管理方法、装置、处理器及存储介质 | |
CN115941282A (zh) | 一种基于nft的区块链跨链交互系统及方法 | |
Panduro-Ramirez et al. | Blockchain Approach for Implementing Access Control in IOT | |
CN115708119A (zh) | 跨链交易系统、方法、设备及存储介质 | |
CN112950180A (zh) | 一种基于联盟链的通证方法、系统、电子设备及存储介质 | |
CN113672988A (zh) | 基于区块链的信息管理方法、系统、介质及电子设备 | |
CN115065687B (zh) | Hyperledger Fabric与以太坊间的跨链数据共享方法及系统 | |
CN116777631B (zh) | 基于区块链的交易上链方法及装置、设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |