当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于Dfinity区块链的跨链通信方法技术

技术编号:37986789 阅读:4 留言:0更新日期:2023-06-30 10:01
本发明专利技术公开了一种基于Dfinity区块链的跨链通信方法,由网关合约负责在接入链上收发跨链消息请求,并将跨链消息组织成Merkle树形式;Dfinity链上的验证者合约负责从接入链上定时获取跨链消息Merkle树根,用于验证跨链消息;Dfinity链上的代理合约负责接收来自链外中继的跨链消息,将通过验证的跨链消息转发到指定的接入链上;链外中继负责从所有接入链上获取最新的跨链消息,为每个跨链消息生成Merkle证明并提交给Dfinity链上的代理合约进行处理。本发明专利技术跨链通信方法能够保证安全性,具有较高的扩展性,支持异构链间通信,且能够支持自定义的跨链消息处理逻辑,弥补了现有跨链通信方法的不足。链通信方法的不足。链通信方法的不足。

【技术实现步骤摘要】
一种基于Dfinity区块链的跨链通信方法


[0001]本专利技术属于区块链
,具体涉及一种基于Dfinity区块链的跨链通信方法。

技术介绍

[0002]随着区块链技术及其相关应用的快速发展,目前已经出现了各种各样的独立区块链,区块链间的互通成为了迫切的需求,跨链技术的主要目标就是实现不同链间的价值流转和信息互通。
[0003]针对跨链通信的需求,工业界和学术界提出了一些初步的解决方案,根据验证机制的不同,目前主要的跨链技术包括三种:轻客户端验证、链外第三方验证以及欺诈证明,参见文献[Zamyatin A,Al

Bassam M,Zindros D,et al.SoK:Communication Across Distributed Ledgers.2019]。轻客户端验证方案需要在互相通信的两条链上都允许对方链的轻客户端,利用区块头中的Merkle树根验证来自对方链的消息的真实性,轻客户端方案安全性较高,但实现和运行开销很大,扩展性也较差,典型的轻客户端方案是ConsenSys公司开发的BTC

Relay。链外第三方验证方案存在许多变种,为了解决私钥单点故障问题,演化出了多重签名、门限签名等方案,多重签名方案实现较为简单,扩展性强,但安全性不如门限签名方案,而门限签名方案由于引入了相对更为复杂的密码学过程,实现难度相对更高。欺诈证明方案采用经济激励机制,鼓励监督人举报作恶行为,从而让负责传递跨链消息的角色诚实工作,一旦作恶被举报,则会被处罚。目前的各类方案在安全性、扩展性等方面仍需进一步提升,而且目前的方案都无法支持自定义跨链消息处理逻辑,灵活度较低。
[0004]2022年4月,DFINITY基金会发布DFINITY新版白皮书《The Internet Computer for Geeks》中提出了Dfinity,Dfinity是一条支持智能合约的公有链,Dfinity上的智能合约被称为Canister,运行在Dfinity上的智能合约Canister可以通过调用系统接口进行ECDSA签名操作,采用门限签名实现。另外,与传统的智能合约沙盒环境不同,Dfinity上的智能合约Canister可通过系统接口向外界发起Http请求,当合约发起Http请求时,子网中的每个节点都会独立执行该请求并获取返回结果,最终结果经过共识过程后返回给合约。

技术实现思路

[0005]鉴于上述,本专利技术提供了一种基于Dfinity区块链的跨链通信方法,能够有效实现不同区块链之间的互联互通,且能够支持开发者自定义跨链消息处理逻辑,极大提高了应用开发者开发多链应用的灵活性。
[0006]一种基于Dfinity区块链的跨链通信方法,具体地:对于任一条接入链,由该接入链上的网关智能合约负责接收来自其他链上应用智能合约(App Contracts)的跨链消息请求,所有跨链消息请求被组织成一个Merkle树,当新跨链消息进入时,其哈希值会作为叶子节点被插入Merkle树中,Merkle树根哈希值会随之更新;同时,网关智能合约接收并处理来自其他链的跨链消息,解析跨链消息的接收合约地址,调用接收方的跨链消息处理方法以提醒接收方最新的跨链消息。
[0007]进一步地,所述跨链消息处理方法的步骤如下:
[0008]步骤A.通过链外中继监听所有接入链以获取最新的跨链消息请求;
[0009]步骤B.当收到跨链消息请求后,利用Dfinity链上的验证者合约定期从接入链上查询最新跨链消息的Merkle树根哈希值;
[0010]步骤C.链外中继为收到的每个跨链消息生成对应的Merkle证明,并将跨链消息及Merkle证明提交到Dfinity链上的代理合约;
[0011]步骤D.代理合约收到跨链消息和Merkle证明后,调用对应接入链的验证者合约来对跨链消息进行真实性验证;
[0012]步骤E.代理合约将通过验证的跨链消息转发给目标链上的接收合约;
[0013]步骤F.如果跨链消息的目标链是Dfinity链,代理合约直接调用同在Dfinity链上的应用智能合约,将跨链消息发送给应用智能合约;
[0014]步骤G.如果跨链消息的目标链是另一条接入链,代理合约构造一个目标链交易,利用Dfinity链提供的门限ECDSA签名方法对该交易进行签名,然后将交易发送到目标链上。
[0015]进一步地,每一条接入链在Dfinity链上都会对应一个验证者合约(Validator Canister),验证者合约由代理合约动态创建并控制,验证者合约负责定期从对应的接入链上查询最新跨链消息的Merkle树根哈希值,用于后续验证跨链消息的真实性。
[0016]进一步地,所述代理合约(Proxy Canister)位于Dfinity链上,其用于创建并控制所有的验证者合约,当需要接入新的链时,代理合约会为新的接入链创建一个对应的验证者合约;所述代理合约还用于接收并验证来自链外中继的跨链消息,且转发经过验证的跨链消息。
[0017]进一步地,所述链外中继(Relayer)负责从所有的接入链收集跨链消息请求,随后为每一条跨链消息生成对应的Merkle证明,最后将跨链消息及Merkle证明数据提交至Dfinity链上的代理合约,代理合约会对这些跨链消息进行验证和处理。
[0018]进一步地,所述步骤B中验证者合约采用Dfinity链的心跳方法定期从接入链上查询最新跨链消息的Merkle树根哈希值。
[0019]进一步地,所述步骤B中验证者合约从接入链查询跨链消息的Merkle树根哈希值利用了Dfinity链原生的Http方法,且每次都从多个接入链进行树节点查询,消除了单点故障问题。
[0020]进一步地,所述步骤D中代理合约对收到的跨链消息采用Merkle证明方法进行真实性验证。
[0021]进一步地,所述步骤G中代理合约发送交易时采用的是Dfinity链提供给代理合约的Http调用方法。
[0022]本专利技术跨链通信方法实现了跨链消息传递的可编程性,即支持自定义跨链消息处理逻辑,开发者可将跨链消息接收方设定为Dfinity链上的指定应用合约,应用合约中定义了跨链消息处理逻辑,Dfinity链上代理合约会将跨链消息发送给应用合约,应用合约可以执行自定义跨链消息处理逻辑,并将处理后的消息发回给代理合约,由代理合约转发到目标链上。本专利技术方法能够保证安全性,具有较高的扩展性,支持异构链间通信,且能够支持自定义的跨链消息处理逻辑,弥补了现有跨链通信方法的不足。
附图说明
[0023]图1为本专利技术跨链通信技术方案的整体设计架构示意图。
[0024]图2为网关智能合约发送处理消息的流程示意图。
具体实施方式
[0025]为了更为具体地描述本专利技术,下面结合附图及具体实施方式对本专利技术的技术方案进行详细说明。
[0026]本专利技术跨链通信方法对于任一条接入链,由该接入链上的网关智能合约负责接收来自所在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Dfinity区块链的跨链通信方法,其特征在于:对于任一条接入链,由该接入链上的网关智能合约负责接收来自其他链上应用智能合约的跨链消息请求,所有跨链消息请求被组织成一个Merkle树,当新跨链消息进入时,其哈希值会作为叶子节点被插入Merkle树中,Merkle树根哈希值会随之更新;同时,网关智能合约接收并处理来自其他链的跨链消息,解析跨链消息的接收合约地址,调用接收方的跨链消息处理方法以提醒接收方最新的跨链消息。2.根据权利要求1所述的跨链通信方法,其特征在于:所述跨链消息处理方法的步骤如下:步骤A.通过链外中继监听所有接入链以获取最新的跨链消息请求;步骤B.当收到跨链消息请求后,利用Dfinity链上的验证者合约定期从接入链上查询最新跨链消息的Merkle树根哈希值;步骤C.链外中继为收到的每个跨链消息生成对应的Merkle证明,并将跨链消息及Merkle证明提交到Dfinity链上的代理合约;步骤D.代理合约收到跨链消息和Merkle证明后,调用对应接入链的验证者合约来对跨链消息进行真实性验证;步骤E.代理合约将通过验证的跨链消息转发给目标链上的接收合约;步骤F.如果跨链消息的目标链是Dfinity链,代理合约直接调用同在Dfinity链上的应用智能合约,将跨链消息发送给应用智能合约;步骤G.如果跨链消息的目标链是另一条接入链,代理合约构造一个目标链交易,利用Dfinity链提供的门限ECDSA签名方法对该交易进行签名,然后将交易发送到目标链上。3.根据权利要求2所述的跨链通信方法,其特征在于:每一条接入链在Dfinit...

【专利技术属性】
技术研发人员:邓水光陈岩程冠杰
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1