公开/公告号CN113269545A
专利类型发明专利
公开/公告日2021-08-17
原文格式PDF
申请/专利权人 杭州云象网络技术有限公司;
申请/专利号CN202110580256.4
申请日2021-05-26
分类号G06Q20/06(20120101);G06Q20/38(20120101);G06Q40/04(20120101);H04L9/32(20060101);H04L29/08(20060101);
代理机构33260 杭州五洲普华专利代理事务所(特殊普通合伙);
代理人徐晶晶
地址 310000 浙江省杭州市余杭区仓前街道余杭塘路海智中心7号楼
入库时间 2023-06-19 12:14:58
技术领域
本发明属于区块链技术领域,具体是涉及一种基于云跨链转账协议的哈希时间锁定方法和系统。
背景技术
目前市场上的跨链实现,从技术上划分,可简单分为3种,分别为中继器机制、见证人机制和哈希锁定。
中继器机制构建链与链之间可信中继节点,对不同链上的数据进行中继转移。但是其架构复杂,流程繁琐笨重,并且会引入中继链的组织管理问题,难以落地。
见证人机制则是一种退化的中继器,其通过一个中心化的、可信的见证人来进行不同区块链中数据的转移,需要跨链的区块链网络以及相关操作人完全信任见证人,这也就造成了严重的单点风险问题。
哈希锁定是一种专门用于转移数字货币的跨链方式,其核心思路是使用带有时限的区块链账户对数字货币在链上进行锁定,并在另一个区块链中生成对应的代币。它是数字资产跨链转移的最佳解决方案。
但是哈希锁定方案,只是保证了资产跨链转移的事务性,没法解决信息传输的信任与安全问题。本专利提出了一种新的云跨链转账协议,与哈希时间锁机制配合使用,同时支持跨链与非跨链业务的并发,有效的扩大了业务场景的适用范围,提高了性能,有效推动真实场景落地。
发明内容
本发明在上述背景和现有技术存在的问题中,提出了一种新的云跨链转账协议,从流程和算法上解决上述场景中面临资产信息传输的安全与信任问题,在一定程度上扩大了业务场景的适用范围,提升了性能。所述技术方案如下:
一方面,提供了一种基于云跨链转账协议的哈希时间锁定方法,具体实现步骤包括:
业务端向第一区块链网关发送资产转移请求,所述第一区块链网关连接第二区块链网关,通过基于云跨链转账协议的哈希时间锁定的技术实现了资产转移;
所述第一区块链网关中第一跨链网关接收业务端指令请求,系统监控后记录相关信息,所述第一跨链网关包括跨链路由的功能;所述第一跨链网关发布GRPC服务,通过调用插件与区块链进行交互,将业务敏感信息转化为云跨链转账协议,并进行数据签名,通过SDK执行区块链合约及链路事件监听;
所述第一区块链包括第一跨链合约和第一应用合约,所述第一应用合约连接transfer接口和Lock函数;
所述第二区块链网关通过P2P协议连接第一跨链网关,其内部结构包括第二跨链网关,第二跨链网关发布GRPC服务,调用插件与第二区块链进行交互,实现了跨链资产转移请求;所述第二跨链网关包括第二跨链路由功能。
一方面,所述哈希时间锁定技术的处理流程基于哈希算法,具体实现步骤包括:
第一跨链网关选取一个秘密随机数S,调用第一跨链合约使用哈希算法计算出S的哈希值H,同时调用应用合约A锁定资产a,并创建跨链请求事件,输入两个超时时间T0和T1,确保T0>T1;
第一跨链网关将H和T1发送到第二跨链网关,第二跨链网关确认资产a已被锁定,通过调用第二跨链合约和第二应用合约锁定资产b并发出响应;
第一跨链网关收到响应后确定资产a已被锁定,使用秘密随机数S调第一应用合约进行解锁,并将资产b转移给第一区块链;
第二跨链网关拿到秘密随机数S,调用第二应用合约进行解锁,并将资产a转移给第二区块链。
一方面,所述哈希时间锁定技术的处理流程还基于超时机制,具体实现步骤包括:
第二区块链到达超时时间T1,若第二区块链已被解锁,则发生异常情况,则异常处理机制发出告警;若第二区块链没被解锁,则账户回滚资产。所述发出告警在跨链网关上实现,若收到哈希时间锁定的交易消息,则对每一条交易进行检查并判断交易的状态;若收到哈希时间锁定的跨链事件,则根据事件执行结果来进行交易状态的设置;
第一区块链到达超时时间T0,若第二区块链已被解锁,而第一区块链资产继续被锁定,则发生异常情况,则异常处理机制发出告警;若第二区块链没被解锁,则账户回滚资产。
一方面,所述第一跨链网关将H和T1发送到第二跨链网关,具体实现步骤包括:第一跨链网关通过调用SDK监听跨链请求事件,将其转化为云跨链转账协议,并将请求上链信息进行签名和加密存在云跨链转账协议中,通过跨链路由A转到第二区块链网关,所述上链信息包括秘密随机数S、哈希值H和时间T0和T1。
一方面,第一应用合约参与哈希时间锁定实现资产转移请求提供的主要功能包括业务锁定、业务解锁和业务回滚,其合约的锁定方式为临时账户,具体实现步骤包括:
业务锁定过程将第一区块链账户的可用资产减掉预锁定金额,第二区块链账户的账户余额不变,在应用合约中创建一个临时账户,临时账户余额为预锁定金额;
业务解锁过程的临时账户被清除,跨链资产转移成功;
业务回滚过程的临时账户被清除,业务回滚到锁定前。
一方面,第一应用合约的锁定方式还包括键值对锁定,具体实现步骤包括:
第一应用合约设置冻结字段,业务锁定过程将第一区块链账户的可用资产减掉预冻结金额,将第二区块链账户的账户余额加上预冻结金额,将预冻结金额放在冻结字段中;
业务解锁过程将冻结字段清除,跨链资产转移成功;
业务回滚过程将冻结字段清除,业务回滚到锁定前。
一方面,所述资产转移请求支持跨链业务与非跨链业务并发,具体实现步骤包括:
第一跨链合约通过创建或接收转移请求接口判断资产转移请求的交易类型,通过第一应用合约的锁定方式实现跨链业务与非跨链业务的并发。所述创建或接收转移请求接口分为两个角色,用于指代这条跨链资产请求是属于发起方还是参与方;
所述判断交易类型,若是非跨链业务,则调用第一应用合约的transfer接口,并更新状态为Success或Failed;若是跨链业务,则调用应用合约的Lock函数,并更新状态为LockState或Failed,并创建跨链请求事件。
一方面,提供了一种基于云跨链转账协议的哈希时间锁定系统,具体组成包括合约方法管理模块、系统监控模块、异常处理机制模块和两组区块链网关,两组区块链网关包括第一区块链网关和第二区块链网关,其中第一区块链网关包括第一跨链路由、第一跨链网关和第一区块链,第二区块链网关包括第二跨链路由、第二跨链网关和第二区块链:
所述第一跨链路由和第二跨链路由,用于为入口平台提供标准接口,屏蔽底层设计的差异性。
所述第一跨链网关和第二跨链网关,用于与区块链进行交互和适配哈希时间锁定方法功能;
所述合约方法管理模块,用于根据合约方法的编号,配置可访问网关、区块链合约、方法以及交易的callback处理;
所述系统监控模块,用于跨链路由被业务系统调用时,执行跨链交易时记录交易及交易流水信息;
所述异常处理机制模块,用于在进行资产转移交易时,一方跨链路由已处理,在交易超时时不能收到另一方处理结果通知,记录差错信息。
一方面,跨链网关模块适配哈希时间锁定方法功能具体包括:
管理单元,当收到哈希时间锁定相关交易消息时,对每一条交易进行检查,判断交易的相关状态;当收到哈希时间锁定相关的跨链事件时,根据事件执行结果来进行相应交易状态的设置;
执行单元,用以执行管理单元发送的哈希时间锁定相关执行消息,调相应的合约函数进行处理;
事件监听单元,用以监听跨链返回的哈希时间锁定相关事件,并将事件交给管理单元处理。
与现有的技术相比,本发明采用基于哈希算法和超时机制的哈希时间锁定技术,哈希时间锁定事务机制和架构中应用合约的锁定方式保证了跨链业务与非跨链业务的并发执行,有效的扩大了业务场景的使用范围,提升了性能;其中采用临时账户锁定方式在进行业务解锁操作时不影响原有的合约逻辑,易扩展、易维护,可设置不同的权限管理;采用键值对锁定方式则适用范围较广,其锁定范围也较大,相当于某个key下整个value结构体的锁定;数据信息在传递过程中都是基于云跨链转账协议完成的,保证了资产信息传输的安全与信任。
附图说明
图1为本发明实施例的跨链架构。
图2为本发明实施例的跨链网关与合约的交互逻辑图。
图3为本发明实施例的哈希时间锁定流程图。
图4为本发明实施例的临时账户锁定方式的执行过程示意图。
图5为本发明实施例的键值对锁定方式的执行过程示意图。
具体实施方式
为了将本发明的技术方案和优点阐述更清楚、准确,下面结合本发明实施例中的附图对本发明进一步地详细说明。
如图1所示,跨链架构由几个关键模块组成:
应用链:业务本身所在的区块链,底层区块支持fabric等主流区块链,其中,架构包含了第一区块链和第二区块链,区块链包括了业务合约和跨链合约;
跨链合约:部署在应用链上的智能合约,向外负责对接跨链网关,是跨链网关操作应用链的入口。跨链合约中也包含了事务处理的部分逻辑,创建了跨链资产转移请求和响应事件;
跨链网关:包括第一跨链网关和第二跨链网关,是应用链与外界交互的入口,负责将业务敏感信息转化为YCTP协议并传送到跨链路由;
跨链路由:包括第一跨链路由和第二跨链路由,通过事务处理机制的第一跨链路由接收业务调用请求,发布GRPC服务连接到跨链网关,负责各个跨链网关之间的路由与信息传递,其间使用P2P协议进行信息的通信;
入口平台:嵌入在跨链路由上的一个后端管理程序,是业务端进行操作的入口,也是本链的调用入口;
如图2所示,描述了本发明完成的一次跨链资产转移流程,其包括了第一区块链与第二区块链的跨链网关、跨链合约和业务合约。业务端向第一跨链网关发送资产转移请求,通过基于云跨链转账协议的哈希时间锁定的技术实现了资产转移;所述第一跨链网关包括跨链路由的功能,第一跨链网关发布GRPC服务,以插件形式设计云跨链转账协议和与第一区块链交互,通过SDK执行区块链合约方法及链路事件监听,所述第一区块链包括第一跨链合约和业务合约A;所述第二跨链网关通过P2P协议连接第一跨链网关,实现跨链资产转移请求。
其中,跨链网关与合约的交互逻辑具体步骤如下:
1)第一区块链第二区块链分别在各自业务系统完成账户创建操作,为跨链资产转移的前提条件。
2)第一区块链发起资产转移请求:第一跨链网关调第一跨链合约创建转移提案,跨链合约记录跨链请求,若提案类型为非跨链,则调用业务合约进行资产转移,返回成功,结束。若提案类型为跨链,则调用业务合约锁定账户,并设置跨链请求事件。
3)第二区块链收到第一区块链跨链请求后,第二跨链网关调第二跨链合约接收转移提案,跨链合约记录跨链请求,调用业务合约锁定账户,并设置跨链响应事件。
4)第一区块链收到第二区块链跨链响应后,第一跨链网关调第一跨链合约更新提案状态,并设置跨链响应事件。
5)第二区块链收到第一区块链跨链响应后,第二跨链网关调第二跨链合约解锁资源,第二跨链合约调用业务合约B解锁账户,更新提案状态为成功,并设置跨链响应事件。
6)第一区块链收到第二区块链跨链响应后,第一跨链网关调第一跨链合约解锁资源,第一跨链合约调用业务合约A解锁账户,更新提案状态为成功。
7)若业务合约收到跨链网关的回滚请求,则业务合约进行资产回滚,并调用跨链合约,更新提案状态为失败。
其中,哈希时间锁定方法的过程是在跨链路由的跨链事务入口发起的,交由跨链网关,跨链网关调用跨链合约,跨链合约再调用应用合约。如图3所示,具体实现步骤包括:跨链事务入口首先选取一个秘密随机数S,使用特定的哈希算法计算出S的哈希值H,之后哈希H在上面的调用的过程当中会依次传递,并最终传递到应用合约的两个接口lock和rollback。随机数S在上面的调用的过程当中会依次传递,并最终传递到应用合约的接口unlock。
其中,合约的锁定方式包括临时账户锁定方式和键值对锁定方式两种,假设一种业务场景:以跨链操作A账户减少10元,在跨链操作中同时并发执行非跨链转账20元为例,展示业务合约的两种锁定方案下账户的余额变动情况,如图4是临时账户锁定方式,在整个lock调用过程的状态变化如下:
假设初始资产为100元,执行跨链资产转移操作从A账户中转移10元,在lock之后A账户对应资产减少10,临时账户hash+account的资产发送了加10的操作;在lock后,unlock前第一应用合约并发执行非跨链转账资产转移操作,从A账户中再次转移20元,A账户对应资产减少20元,临时账户不变;在执行业务解锁unlock操作后,将临时账户清除,实质业务真实落地,对于第一应用合约来说,它所做的解锁处理是将A账户余额不变,临时账户清除;业务回滚rollback将临时账户清除,实质业务回退到lock之前,对于第一应用合约来说,它所做的回滚处理是将A账户的可用余额加上冻结金额,临时账户清除。
如图5是键值对锁定方式,在整个lock调用过程的状态变化如下:假设初始资产为100元,执行跨链资产转移操作从A账户中转移10元,在lock之后A账户的账户余额必变,可用资产减少10,将10冻结在一个单独的字段中,即冻结金额为10;在lock后,unlock前,第一应用合约并发执行非跨链资产转移操作,从A账户再次转账20元,则A账户的账户余额和可用余额同时减少20,冻结金额保持不变;在执行业务解锁unlock操作之后,对于第一应用合约来说,它所做的解锁处理是将A账户的账户余额减掉冻结金额,清除冻结字段,实质业务真实落地;执行业务回滚rollback是将冻结字段清除,实质业务回退到lock前,对于第一应用合约来说,它所做的回滚处理是将A账户的可用余额加上冻结金额,账户余额不变。
临时账户方式的优点是在进行解锁时不影响原有合约逻辑,并且对原账户的操作不影响临时账户延时回退的场景,易扩展,易维护,可设置不同的权限管理;而键值对锁定方式需对应用合约的原结构体进行字段扩展,适用范围比较广,锁定范围大,相当于某个key下整个value结构体的锁定。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。应当理解的是,本发明不局限于应用上述举例,熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
机译: 基于父级和子级存储位置哈希值的基于云的目录系统的系统和方法
机译: 可以通过基于主云或更新的优先级信息提供的服务水平的跟踪记录值动态确定服务水平协议来提供服务的云系统,还提供云控制方法和计算机程序
机译: 在基于云的计算环境中将文档历史图和哈希值与区块链相对应的系统,方法和装置