一种面向通用场景的跨链互换操作方法技术

技术编号:27462365 阅读:23 留言:0更新日期:2021-02-25 05:26
本发明专利技术提供了一种面向通用场景的跨链互换操作方法,跨链互换操作的参与方包括发起方和接收方,涉及的区块链包括发起请求的发送链和接收请求的接收链。本发明专利技术无需在跨链互换的参与方之间引入负责验证交易存在性和负责数据格式转换的第三方,参与方的跨链账户和所在链的共识节点直接验证签名交易的存在性及输出结果,遵循了发送链和接收链原有的权限管理和共识机制。本发明专利技术基于签名交易与WorldState世界状态访问的映射关系建立的“条件执行”操作的锁定、解锁和执行机制,能够将通用场景下的任意合约方法调用通过签名交易以“条件执行”操作参与跨链互换。操作参与跨链互换。操作参与跨链互换。

【技术实现步骤摘要】
一种面向通用场景的跨链互换操作方法


[0001]本专利技术涉及区块链的跨链
,具体涉及一种在两条以上的链之间实现多个参与方原子性跨链互换操作方法。

技术介绍

[0002]哈希时间锁定合约,英文为HTLC(Hash Time Lock Contract),是闪电网络中提出的一种跨链方法,它在智能合约的基础上,让交易参与双方先在两条不同链上以约定的哈希值锁定资产,如果都在规定的时间内输入哈希值正确的原像,通过两条链上的原子性操作实现资产交换。该方法的局限在于:仅适用于资产交换单一场景,其中的资产锁定、解锁、条件执行等方法不适用于任意合约方法跨链互换操作的通用场景;现有其他跨链方法存在的主要局限和问题包括:1)在解决通用场景下跨链互换操作的原子性方面,现有方法是要求参与跨链调用的方法能够“回滚”或者“逆操作”,在实际应用中,绝大多数场景难以满足(例如转账合约方法,需要“回滚”时余额不足,或者合约方法绑定有线下的交割行为等);2)在解决跨链操作出块证明方面,引入了中心化信任的跨链操作存在性验证方,一方面可能破坏链本身的访问控制和共识机制。另一方面由于验证方本身不是跨链互换的参与方,一旦出现非预期结果,缺少追责机制;3)现有方法在解决异构链之间的数据交换时,通过链外适配机制将异构的签名交易、跨链请求等转换为中间格式。由于跨链互换的参与方是通过第三方适配器间接解析操作内容,降低了安全强度。

技术实现思路

[0003]本申请提供了一种面向通用场景的跨链互换操作方法,以解决上述提到的一种或多种技术问题,本申请所采用的技术方案如下:一种面向通用场景的跨链互换操作方法,跨链互换操作的参与方包括发起方和接收方,所述区块链包括发起请求的发送链和接收请求的接收链;步骤1、在接收链部署包含参与互换操作r_oper合约方法的合约rsc,在发送链部署包含参与互换操作s_oper合约方法的合约ssc;步骤2、参与跨链互换操作的发送方和接收方分别在发送链上注册账户sa、sb,分别在接收链上注册账户ra、rb;所述注册账户有调用互换操作和获得与账户相关的区块数据的权限;步骤3、在接收链上提供用于区块数据的检索接口,并向发送链上的共识节点提供交易检索和交易出块证明,发送链上的共识节点能够依据接收链上的交易ID获取并验证交易内容和出块证明;步骤4、所述注册账户sa在发送链构造和提交所述条件执行操作的交易ctx,并指定交
易ctx的执行条件ctx.commit为包含所述执行操作r_oper的交易在接收链出块,指定待执行的操作ctx.oper为所述执行操作s_oper,指定所述注册账户sb为接收方账户ctx.receiver,所述注册账户sb对所述条件执行交易的合约csc的解锁方法为ctx.receiver调用指定解锁条件ctx.unlock;步骤5、所述注册账户sb从交易ctx接收方账户ctx.receiver获得与该账户有关的所述条件执行操作的交易ctx出块之后,接收方分析跨链互换请求并决策是否接受互换请求,根据决策结果来执行相应操作。
[0004]进一步的,在所述步骤1中,在所述在发送链部署包含参与互换操作s_oper合约方法的合约ssc之前,还包括:发送链的数据结构定义:在发送链的签名交易tx数据项中,增加执行条件commit、解锁条件unlock、解锁区块高度expired、接收链ID、以及接收方账户receiver,当所述执行条件commit不为空时,所述签名交易tx为包含条件执行操作的交易ctx;发送链的合约容器增强:对于所述条件执行操作的交易ctx,发送链的合约容器基于合约方法与世界状态WorldState读写操作的映射关系,采用对存在相互影响的交易集合进行仿真预执行的方法,提供对所述条件执行操作的锁定、解锁、以及执行机制;在发送链部署处理条件执行交易的合约csc,具体包括:所述条件执行交易的合约csc中包含对所述条件执行操作的条件解锁方法csc.unlock、过期解锁方法csc.expire、执行方法csc.commit。
[0005]进一步的,在所述步骤2中,所述注册账户有获得与该账户相关的区块数据的权限,具体包括:在所述步骤2中,所述注册账户有获得与完成互换操作相关的权限,具体包括:所述注册账户有获得所在区块链的区块数据的权限;所述注册账户sa拥有在发送链上通过签名交易rtx调用合约方法来执行操作s_oper和调用所述条件执行交易的合约csc的权限;所述注册账户sb拥有在发送链上通过签名交易rtx调用所述条件执行交易的合约csc的权限;所述注册账户ra拥有在接收链上通过签名交易rtx调用合约方法来执行操作r_oper的权限;其中,所述执行操作s_oper和所述执行操作r_oper是一对原子性互换操作。
[0006]进一步的,所述步骤4中,所述指定解锁条件ctx.unlock具体包括:当所述注册账户sb在发送链提交解锁签名交易stx_unlock出块,或者当发送链区块高度expired达到ctx.expired。
[0007]进一步的,所述步骤5中,在接收方分析跨链互换请求并决策是否接受互换请求之前,还包括:发送链共识节点验证所述注册账户sa对所述执行操作s_oper的权限,发送链共识节点的合约容器预执行获得与所述执行操作s_oper相关的世界状态WorldState的key值集合,并将所述条件执行操作的交易ctx与所述key值集合相关联,以完成所述执行操作s_oper的锁定,在后续预执行普通签名交易时 ,将排除导致所述执行操作s_oper的锁定的无效签名交易出块,后续预执行的签名交易包括普通签名交易和条件执行签名交易。
[0008]进一步的,所述步骤5中,所述根据决策结果来执行相应操作具体包括:
如果接收方愿意接受互换操作请求,所述注册账户rb在接收链按照发送方执行条件ctx.commit构造包含所述执行操作r_oper的签名交易rtx_accept并提交;接收链共识节点验证所述注册账户rb对所述执行操作r_oper的权限,验证通过之后签名交易rtx出块,所述执行操作r_oper被执行;接收方所述注册账户rb收到所述条件执行操作的交易ctx出块事件之后,通过在发送链上的所述注册账户sb,通过签名交易stx_commit调用csc.commit方法,传入参数为ctx.txId和rtx.txId,并触发发送链的条件执行签名交易中的所述执行操作s_oper;发送链共识节点依据接收链ID,即ctx.targetChain,以及传入参数rtx.txId向接收链请求交易内容和出块证明,获得所述交易内容和出块证明之后,发送链共识节点来验证签名交易rtx_accept是否符合ctx.commit要求,若符合,则签名交易stx_commit出块,从所述条件执行操作的交易ctx相关key值中移除所述条件执行操作的交易ctx,所述执行操作s_oper被执行,完成跨链互换操作。
[0009]进一步的,所述步骤5中,所述根据决策结果来执行相应操作,具体包括:如果接收方不愿意接受互换操作请求,则在发送链上,按照发送方要本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向通用场景的跨链互换操作方法,其特征在于,跨链互换操作的参与方包括发起方和接收方,区块链包括发起请求的发送链和接收请求的接收链;步骤1、在接收链部署包含参与互换操作r_oper合约方法的合约rsc,在发送链部署包含参与互换操作s_oper合约方法的合约ssc;步骤2、参与跨链互换操作的发送方和接收方分别在发送链上注册账户sa、sb,分别在接收链上注册账户ra、rb;所述注册账户有调用互换操作和获得与账户相关的区块数据的权限;步骤3、在接收链上提供用于区块数据的检索接口,并向发送链上的共识节点提供交易检索和交易出块证明,发送链上的共识节点能够依据接收链上的交易ID获取并验证交易内容和出块证明;步骤4、所述注册账户sa在发送链构造和提交条件执行操作的交易ctx,并指定交易ctx的执行条件ctx.commit为包含所述执行操作r_oper的交易在接收链出块,指定待执行的操作ctx.oper为所述执行操作s_oper,指定所述注册账户sb为接收方账户ctx.receiver,所述注册账户sb对条件执行交易的合约csc的解锁方法为ctx.receiver调用指定解锁条件ctx.unlock;步骤5、所述注册账户sb从交易ctx接收方账户ctx.receiver获得与该账户有关的所述条件执行操作的交易ctx出块之后,接收方分析跨链互换操作请求并决策是否接受互换操作请求,根据决策结果来执行相应操作。2.根据权利要求1所述的跨链互换操作方法,其特征在于,在所述步骤1中,在所述在发送链部署包含参与互换操作s_oper合约方法的合约ssc之前,还包括:发送链的数据结构定义:在发送链的签名交易tx数据项中,增加执行条件commit、解锁条件unlock、解锁区块高度expired、接收链ID、以及接收方账户receiver,当所述执行条件commit不为空时,所述签名交易tx为包含条件执行操作的交易ctx;发送链的合约容器增强:对于所述条件执行操作的交易ctx,发送链的合约容器基于合约方法与世界状态WorldState读写操作的映射关系,采用对存在相互影响的交易集合进行仿真预执行的方法,提供对所述条件执行操作的锁定、解锁、以及执行机制;在发送链部署处理条件执行交易的合约csc,具体包括:所述条件执行交易的合约csc中包含对所述条件执行操作的条件解锁方法csc.unlock、过期解锁方法csc.expire、执行方法csc.commit。3.根据权利要求1所述的跨链互换操作方法,其特征在于,在所述步骤2中,所述注册账户有获得与完成互换操作相关的权限,具体包括 :所述注册账户有获得所在区块链的区块数据的权限;所述注册账户sa拥有在发送链上通过签名交易rtx调用合约方法来执行操作s_oper和调用所述条件执行交易的合约csc的权限;所述注册账户sb拥有在发送链上通过签名交易rtx调用所述条件执行交易的合约csc的权限;所述注册账户ra拥有在接收链上通过签名交易rtx调用合约方法来执行操作r_oper的权限;其中,所述执行操作s_oper和所述执行操作r_oper是一对原子性互换操作。
4.根据权利要求1所述的跨链互换操作方法,其特征在于,所述步骤4中,所述指定解锁条件ctx.unlock具体包括:当所述注册账户sb在发送链提交解锁签名交易stx_unlock出块,或者当发送链区块高度expired达到ctx.expired。5.根据权利要求1所述的跨链互换操作方法,其...

【专利技术属性】
技术研发人员:蒋步云陈胜
申请(专利权)人:北京连琪科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1