一种多公证人处理跨链交易的方法及系统
文献发布时间:2023-06-19 19:30:30
技术领域
本发明涉及区块链交易技术领域,尤其涉及一种多公证人处理跨链交易的方法及系统。
背景技术
基于区块链跨链交易的需求,打破区块链信息孤岛的局面,实现不同区块链之间信息共享和价值互通,从而引入公证人机制。公证人机制,作为常用的跨链交互机制,是使用一个或一组受信任的节点作为中介人协调跨链交互过程。一笔跨链交易一般是由某一个公证人来完成执行整个跨链交易过程。
基于中间公证人处理跨链交易的场景,每个公证人单独处理其对应的跨链交易。一旦某一公证人发生故障或交易量过多可能导致交易处理不及时或交易终止,且各公证人各自单独处理跨链交易的过程中,可能存在公证人处理交易不积极,工作效率低的情况。
发明内容
为解决现有技术的不足,本发明提出一种多公证人处理跨链交易的方法及系统,在某公证人出现故障的情况下可以通过其它公证人继续完成交易,提升跨链交易的完成效率。
为实现以上目的,本发明所采用的技术方案包括:
本发明第一方面公开了一种多公证人处理跨链交易的方法,包括:
第一公证人在第一区块链创建第一跨链交易智能合约,并在第二区块链创建第二跨链交易智能合约;
第一区块链将第一跨链交易智能合约的地址发给第一公证人,且第二区块链将第二跨链交易智能合约的地址发给第一公证人;
第一公证人将第一区块链上的交易资产金额转移到第一跨链交易智能合约的地址,并将第二区块链上的交易资产金额转移到第二跨链交易智能合约的地址;
第一公证人把第一跨链交易智能合约的地址和第二跨链交易智能合约的地址分别发送给发起跨链交易请求的第一用户和第二用户;
第一公证人在公证人平台内部公布第一跨链交易智能合约和第二跨链交易智能合约的秘钥以及第一用户和第二用户的跨链交易信息。
进一步地,在所述第一公证人在第一区块链创建第一跨链交易智能合约,并在第二区块链创建第二跨链交易智能合约之前,所述方法还包括:
位于第一区块链上的所述第一用户向所述第一公证人发送跨链交易请求,请求同位于第二区块链上的所述第二用户进行交易,所述第一公证人为公证人平台的任一公证人;
所述第一公证人查询并校验自己账户的资产余量信息,校验通过后,所述第一公证人把第一区块链上的账户地址发送给所述第一用户,并把第二区块链上的账户地址发送给所述第二用户;
所述第一用户将第一区块链上的交易资产金额转移到所述第一公证人在第一区块链上的账户地址。
进一步地,在所述第一公证人在公证人平台内部公布第一跨链交易智能合约和第二跨链交易智能合约的秘钥以及第一用户和第二用户的跨链交易信息之后,所述方法还包括:
所述第二用户分别对所述第一跨链交易智能合约的信息和所述第二跨链交易智能合约的信息进行校核,校核通过后,所述第二用户将第二区块链上的交易资产金额转移到所述第一公证人在第二区块链上的账户地址;
所述公证人平台的公证人查询并校对所述第一跨链交易智能合约和所述第二跨链交易智能合约的账户余额,校对通过后,使用所述秘钥释放所述第一跨链交易智能合约和所述第二跨链交易智能合约;其中,各个环节由所述公证人平台的各个公证人竞争完成;
所述第二用户在第一区块链上的账户地址获得第一区块链上的交易资产金额,所述第一用户在第二区块链上的账户地址获得第二区块链上的交易资产金额。
进一步地,所述方法还包括公证人分别对所述第一跨链交易智能合约的信息和所述第二跨链交易智能合约的信息进行销毁。
进一步地,所述跨链交易信息包括所述第一用户在所述第一区块链上的账户信息、所述第一区块链上交易资产金额、所述第一用户在所述第二区块链上的账户信息、所述第二用户在所述第二区块链上的账户信息、所述第二区块链上交易资产金额、所述第二用户在所述第一区块链上的账户信息、交易ID信息。
进一步地,所述第一公证人在第一区块链创建第一跨链交易智能合约,并在第二区块链创建第二跨链交易智能合约包括:
所述第一公证人生成随机数S作为所述第一跨链交易智能合约和所述第二跨链交易智能合约的秘密值;
所述第一公证人设计名称、变量、常量参数,以及存款、查询、释放、合约初始化、合约销毁各个步骤的参数和执行流程。
进一步地,所述常量参数包括所述秘密值、时间戳、第一区块链或第二区块链上的交易资产金额、所述第一用户在所述第二区块链上的账户信息或所述第二用户在所述第一区块链上的账户信息。
本发明第二方面公开了一种多公证人处理跨链交易的系统,包括:
创建智能合约模块,第一公证人在第一区块链创建第一跨链交易智能合约,并在第二区块链创建第二跨链交易智能合约;第一区块链将第一跨链交易智能合约的地址发给第一公证人,且第二区块链将第二跨链交易智能合约的地址发给第一公证人;
第一资产交易模块,第一公证人将第一区块链上的交易资产金额转移到第一跨链交易智能合约的地址,并将第二区块链上的交易资产金额转移到第二跨链交易智能合约的地址;
信息传输模块,第一公证人把第一跨链交易智能合约的地址和第二跨链交易智能合约的地址分别发送给发起跨链交易请求的第一用户和第二用户;
信息公布模块,第一公证人在公证人平台内部公布第一跨链交易智能合约和第二跨链交易智能合约的秘钥以及第一用户和第二用户的跨链交易信息。
进一步地,所述系统还包括:
信息校核模块,所述第二用户分别对所述第一跨链交易智能合约的信息和所述第二跨链交易智能合约的信息进行校核,校核通过后,所述第二用户将第二区块链上的交易资产金额转移到所述第一公证人在第二区块链上的账户地址;
公证人竞争处理模块,所述公证人平台的公证人查询并校对所述第一跨链交易智能合约和所述第二跨链交易智能合约的账户余额,校对通过后,使用所述秘钥释放所述第一跨链交易智能合约和所述第二跨链交易智能合约;其中,各个环节由所述公证人平台的各个公证人竞争完成;
第二资产交易模块,所述第二用户在第一区块链上的账户地址获得第一区块链上的交易资产金额,所述第一用户在第二区块链上的账户地址获得第二区块链上的交易资产金额。
本发明第三方面公开了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
本发明第四方面公开了一种电子设备,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行上述的方法。
本发明的有益效果为:
采用本发明所述的多公证人处理跨链交易的方法及系统,在实际跨链交易过程中,首先通过创建部署智能合约,使用秘钥调用智能合约进行待释放的交易资产的锁定,然后启动公证人竞争机制对交易资产进行验证并对交易资产进行释放,最终完成跨链交易,该方法促进所有公证人竞争提高效率,既可以解决各公证人处理交易不积极,效率底低下的问题,又可以避免负责交易的公证人出现故障导致交易处理不及时或无法继续交易等延迟情况的发生,实现跨链交易的安全性和高效性。
附图说明
图1为本发明实施例提供的多公证人处理跨链交易的方法流程示意图。
图2为本发明实施例提供的多公证人处理跨链交易的系统结构示意图。
图3为本发明优选实施例提供的跨链交易发起-响应的时序图。
图4为本发明优选实施例提供的多公证人竞争完成跨链交易的时序图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明第一方面涉及一种流程如图1所示的多公证人处理跨链交易的方法,具体包括:
步骤S1、第一公证人在第一区块链创建第一跨链交易智能合约,并在第二区块链创建第二跨链交易智能合约;
步骤S2、第一区块链将第一跨链交易智能合约的地址发给第一公证人,且第二区块链将第二跨链交易智能合约的地址发给第一公证人;
步骤S3、第一公证人将第一区块链上的交易资产金额转移到第一跨链交易智能合约的地址,并将第二区块链上的交易资产金额转移到第二跨链交易智能合约的地址;
步骤S4、第一公证人把第一跨链交易智能合约的地址和第二跨链交易智能合约的地址分别发送给发起跨链交易请求的第一用户和第二用户;
步骤S5、第一公证人在公证人平台内部公布第一跨链交易智能合约和第二跨链交易智能合约的秘钥以及第一用户和第二用户的跨链交易信息。
在实际跨链交易过程中,本实施例通过通过创建部署智能合约,使用秘钥调用智能合约进行待释放的交易资产的锁定,同时在公证人平台发布交易信息,实现跨链交易的安全性。
在本实施例中,在所述步骤S1之前,所述方法还可选的包括:
步骤N1、位于第一区块链上的所述第一用户向所述第一公证人发送跨链交易请求,请求同位于第二区块链上的所述第二用户进行交易,所述第一公证人为公证人平台的任一公证人;
步骤N2、所述第一公证人查询并校验自己账户的资产余量信息,校验通过后,所述第一公证人把第一区块链上的账户地址发送给所述第一用户,并把第二区块链上的账户地址发送给所述第二用户;
步骤N3、所述第一用户将第一区块链上的交易资产金额转移到所述第一公证人在第一区块链上的账户地址。
在本实施例中,在所述步骤S5之后,所述方法还可选的包括:
步骤S6、所述第二用户分别对所述第一跨链交易智能合约的信息和所述第二跨链交易智能合约的信息进行校核,校核通过后,所述第二用户将第二区块链上的交易资产金额转移到所述第一公证人在第二区块链上的账户地址;
步骤S7、所述公证人平台的公证人查询并校对所述第一跨链交易智能合约和所述第二跨链交易智能合约的账户余额,校对通过后,使用所述秘钥释放所述第一跨链交易智能合约和所述第二跨链交易智能合约;其中,各个环节由所述公证人平台的各个公证人竞争完成;
步骤S8、所述第二用户在第一区块链上的账户地址获得第一区块链上的交易资产金额,所述第一用户在第二区块链上的账户地址获得第二区块链上的交易资产金额。
可选的,在所述步骤S8之后,所述方法还包括:
步骤S9、公证人分别对所述第一跨链交易智能合约的信息和所述第二跨链交易智能合约的信息进行销毁。
所述步骤S1中,所述跨链交易信息优选为包括所述第一用户在所述第一区块链上的账户信息、所述第一区块链上交易资产金额、所述第一用户在所述第二区块链上的账户信息、所述第二用户在所述第二区块链上的账户信息、所述第二区块链上交易资产金额、所述第二用户在所述第一区块链上的账户信息、交易ID信息。
在本实施例中,所述步骤S1还可选的包括以下子步骤:
步骤S101、所述第一公证人生成随机数S作为所述第一跨链交易智能合约和所述第二跨链交易智能合约的秘密值;
步骤S102、所述第一公证人设计名称、变量、常量参数,以及存款、查询、释放、合约初始化、合约销毁各个步骤的参数和执行流程。
其中,所述常量参数包括所述秘密值、时间戳、第一区块链或第二区块链上的交易资产金额、所述第一用户在所述第二区块链上的账户信息或所述第二用户在所述第一区块链上的账户信息。
示例性的,公证人C
名称:M
变量:balancesX:用于记录合约余额;
owner:用于记录合约拥有者。
常量:参数MX1:表示接收方用户B在X链的账户,B
参数MX2:表示秘密值的Hash值,Hash(S);
参数MX3:时间戳,表示合约过期时间;
参数MX4:表示交易资产金额AMT1。
方法:
1)存款
方法参数:无
执行流程:
a:检查合约调用者是否是owner,否则退出,是则执行下一步;
b:balancesY=balancesY+参数MX4
2)查询
方法使用参数:无
执行流程:
a:返回资产余额balancesY
3)释放
方法使用参数:参数1。
执行流程:
a)判断Hash(参数1)与参数MX2是否相等。相等则交易继续,否则退出智能合约。
b)判断当前时间是否小于参数MX3。
小于,则发送合约全部资产给参数MX1;
否则,发送合约全部资产给owner。
4)合约初始化
方法参数:无
执行流程:
a:owner=合约创建者地址
5)合约销毁
方法参数:无
执行流程:
a:拥有者调用,合约者地址以及变量全部被销毁。
采用本实施例所述的所述多公证人处理跨链交易的方法,在实际跨链交易过程中,首先通过创建部署智能合约,使用秘钥调用智能合约进行待释放的交易资产的锁定,然后启动公证人竞争机制对交易资产进行验证并对交易资产进行释放,最终完成跨链交易,该方法促进所有公证人竞争提高效率,既可以解决各公证人处理交易不积极,效率底低下的问题,又可以避免负责交易的公证人出现故障导致交易处理不及时或无法继续交易等延迟情况的发生,实现跨链交易的安全性和高效性。
本发明第二方面涉及一种如图2所示的多公证人处理跨链交易的系统,结构包括:
创建智能合约模块,第一公证人在第一区块链创建第一跨链交易智能合约,并在第二区块链创建第二跨链交易智能合约;第一区块链将第一跨链交易智能合约的地址发给第一公证人,且第二区块链将第二跨链交易智能合约的地址发给第一公证人;
第一资产交易模块,第一公证人将第一区块链上的交易资产金额转移到第一跨链交易智能合约的地址,并将第二区块链上的交易资产金额转移到第二跨链交易智能合约的地址;
信息传输模块,第一公证人把第一跨链交易智能合约的地址和第二跨链交易智能合约的地址分别发送给发起跨链交易请求的第一用户和第二用户;
信息公布模块,第一公证人在公证人平台内部公布第一跨链交易智能合约和第二跨链交易智能合约的秘钥以及第一用户和第二用户的跨链交易信息。
本实施例中,所述系统优选的还包括:
信息校核模块,所述第二用户分别对所述第一跨链交易智能合约的信息和所述第二跨链交易智能合约的信息进行校核,校核通过后,所述第二用户将第二区块链上的交易资产金额转移到所述第一公证人在第二区块链上的账户地址;
公证人竞争处理模块,所述公证人平台的公证人查询并校对所述第一跨链交易智能合约和所述第二跨链交易智能合约的账户余额,校对通过后,使用所述秘钥释放所述第一跨链交易智能合约和所述第二跨链交易智能合约;其中,各个环节由所述公证人平台的各个公证人竞争完成;
第二资产交易模块,所述第二用户在第一区块链上的账户地址获得第一区块链上的交易资产金额,所述第一用户在第二区块链上的账户地址获得第二区块链上的交易资产金额。
本实施例提供的系统能够支持实现上述实施例所示的方法步骤。
在使用上述方法及系统具体执行跨链交易操作,可以参考如下具体实施例进行。
如图3、图4所示的跨链交易操作时序图,优选的包括以下步骤:
本实施例用于解决用户A和用户B的跨链交易,其中用户A在X链账户为A
表1交易前相关账户信息
如图3、图4所示的跨链交易操作时序图,优选的包括以下步骤:
(1)X链用户A发起跨链交易请求,选择公证人C
交易请求内容包含:交易ID信息,用户A的X链账户A
(2)公证人C
(3)解析请求字段成功后,公证人C
①如果大于Y链交易资产80:
1)则返回给用户A,公证人C
2)返回给用户B,公证人C
②如果小于,则交易结束。
此时,公证人C
(4)X链用户A的账户A
账户A
地址C
(5)公证人C
公证人C
其次,在区块链X链创建跨链交易智能合约M
名称:M
变量:balancesX:用于记录合约余额
owner:C
常量:参数MY1:B
参数MY2:Hash(55)
参数MY3:20211225
参数MY4:100
1)存款save功能:
balancesX=balancesX+参数MY4
=balancesX+100
2)查询get功能:
返回balancesX。
3)释放transfer功能:
a.根据传入的参数计算哈希值Hash(参数),判断是否等于参数MY2,如果相等,则交易继续,否则,退出该智能合约;
b.判断当前时间是否小于等于智能合约有效截止时间参数MY3:
a)如果大于,则显示智能合约已过期,将资产交易金额退回给公证人:
合约将发送所有资产至公证人C
若公证人C
b)如果小于等于,则合约将所有资产发送到参数MY1,即用户B在X链上地址。
在区块链Y链创建跨链交易智能合约M
名称:M
变量:balancesY
owner:C
常量:参数MX1:A
参数MX2:Hash(55)
参数MX3:20211225
参数MX4:80
4)存款save功能:
balancesY
=balancesY+参数MX4
5)查询get功能:
返回balancesY。
6)释放transfer功能:
a.根据传入的参数计算Hash(参数),判端是否等于参数MY2,如果相等,则交易继续,否则,退出该智能合约;
b.判断当前时间是否小于等于截止时间参数MY3:
a)如果大于,则显示智能合约已过期,将资产交易金额退回给公证人:
合约将发送所有资产至公证人C
若公证人C
b)如果小于等于,则合约将所有资产发送到参数MY1,即用户A在Y链上地址。
然后,在X链上部署M
(6)区块链X链和Y链向公证人C
(7)公证人C
①X链对智能合约M
1)账户地址C
账户地址C
2)公证人C
balancesX=100
②Y链对智能合约M
1)Y链对智能合约M
公证人C
2)公证人C
balancesY=80
(8)公证人C
公证人C
(9)公证人C
(10)用户B核对智能合约信息:
①用户B在X链核对智能合约M
1)检查参数MX3,当前日期为20211224,当前日期小于智能合约M
2)判断参数MX4与智能合约M
3)判断释放方法transfer中放款地址的值是参数MX1
②用户B在Y链核对智能合约M
1)检查参数MX3,当前日期为20211224,当前日期小于智能合约M
2)判断参数MX4与智能合约M
3)判断释放方法transfer中放款地址的值为参数MX1,则交易继续。(11)用户B核对正确后,用户B向账户地址C
用户B账户地址B
地址B
地址C
(12)公证人C
①通过秘钥M计算哈希值,与参数MX2一致,交易继续;
②当前交易日期20211224小于等于智能合约有效截止时间参数MX3,交易继续;
③账户地址Z
地址Z
地址B
(13)公证人C
①通过秘钥M计算哈希值,与参数MX2一致,交易继续;
②当前交易日期20211224小于等于智能合约有效截止时间参数MX3,交易继续;
③账户地址Z
地址Z
地址A
(14)跨链转账交易完成,向用户A反馈跨链交易结果。相关账户信息如表2所示:
表2交易完成后的相关账户信息
(15)公证人C1在空闲时分别调用智能合约M
本发明的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤。
本发明的实施例还提供一种用于执行上述方法的电子设备,作为该方法的实现装置,所述电子设备至少具备有处理器和存储器,特别是该存储器上存储有执行方法所需的数据和相关的计算机程序,并通过由处理器调用存储器中的数据、程序执行实现方法的全部步骤,并获得对应的技术效果。
优选的,该电子设备可以包含有总线架构,总线可以包括任意数量的互联的总线和桥,总线将包括由一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他系统通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。
额外的,所述电子设备还可以进一步包括通信模块、输入单元、音频处理器、显示器、电源等部件。其所采用的处理器(或称为控制器、操作控件)可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器接收输入并控制电子设备的各个部件的操作;存储器可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种,可储存上述有关的数据信息,此外还可存储执行有关信息的程序,并且处理器可执行该存储器存储的该程序,以实现信息存储或处理等;输入单元用于向处理器提供输入,例如可以为按键或触摸输入装置;电源用于向电子设备提供电力;显示器用于进行图像和文字等显示对象的显示,例如可为LCD显示器。通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到中央处理器,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
- 区块链跨链交易方法、跨链通信装置及存储介质
- 一种跨链交易方法及装置
- 一种跨链交易方法及装置
- 一种交易数据处理方法以及交易数据处理系统
- 一种验证交易的方法、一种节点及一种区块链系统
- 一种基于区块链跨链交易的公证人容错机制处理方法及系统
- 一种基于公证人组的区块链跨链交易方法及系统