一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种区块链资产跨链交易方法与流程

2021-10-24 10:52:00 来源:中国专利 TAG:区块 资产 方法 交易


1.本发明涉及区块链技术领域,具体涉及一种区块链资产跨链交易方法。


背景技术:

2.随着区块链技术的火热,越来越多的企业和开发人员加入到区块链的浪潮中,市面上也出现了许多不同类型的链,应用在金融、健康医疗、供应链、资产管理和溯源等领域。然而大部分链上应用(加密货币或者智能合约)都无法跨越当前链的边界,不能与其他链协同合作实现价值的流通从而限制了区块链的发挥空间。如何能让不同类型的链协同合作实现价值的流通成了探索的方向,这也是跨链技术的起因。2013年herlihy提出了原子交换的理念,指出在构成一笔完整跨链交易的子交易中只存在两种情况,即成功和彻底失败。目前主流的跨链机制包括公证人机制、侧链/中继、哈希锁定、分布式私钥控制、公证人 侧链混合机制等。其中哈希锁定不需要中心化的公证人,相对侧链/中继链构建简单快速,成本低,更适合用户与用户之间之间进行跨链资产的交易。但目前的哈希锁定技术需要在线下首先寻找到交易对象,才能进行交易。线下寻找交易对象十分困难,降低了资产跨链流通。因而需要研制一种支持在区块链线上寻找交易对象并完成跨链交易的方法。
3.申请人发现中国专利cn201810841038.x是与本技术最为接近的现有技术,其公开日为2018年12月25日,公开了一种跨链交易校验方法,包括:接收第一交易终端发送的挂单请求信息,根据挂单请求信息在第一区块链上触发第一智能合约,生成第一订单,以供第二交易终端获取第一订单的订单信息后生成接单请求信息;接收接单请求信息,根据第一公钥对订单签名信息进行验证:若验证成功,则接单成功,触发第一智能合约进入校验状态;接收第二交易终端发送的第一交易哈希,根据第一交易哈希获取验证交易信息;根据验证交易信息进行校验:若通过,则触发第一智能合约进入解锁状态。其技术方案避免了在跨链交易中冒用交易信息而导致双花问题的风险。但其要求其中一方首先完成转账,而后通过验证转账后,才操作对等的回馈转账,对双方存在一定的交易风险。且需要验证首笔转账交易中的若干信息,例如txid、vout等信息才能确保避免双花问题,交易效率低,风险高。


技术实现要素:

4.本发明要解决的技术问题是:目前缺乏支持在区块链线上寻找交易对象并完成跨链交易方法的技术问题。提出了一种区块链资产跨链交易方法,通过改进哈希锁技术和挂单、应答机制实现在线寻找交易对象,并快速构建跨链交易,实现资产的跨链交易。
5.为解决上述技术问题,本发明所采取的技术方案为:一种区块链资产跨链交易方法,包括以下步骤:用户a在区块链a上发起挂单,构建挂单智能合约,所述挂单智能合约包括锁定的区块链a资产数额ca、期望交易的区块链b资产数额cb、用户a在区块链b的钱包地址w1、哈希锁、时间锁t1、哈希锁填写函数、时间锁填写函数和哈希锁验证函数,所述哈希锁初值为空,表示不允许哈希验证,所述时间锁t1初值为0,表示时间锁未启动;用户b查看区块链a发现用户a的挂单,并决定与用户a进行交易,用户b在区块链b上发起应答,并构建应
答智能合约,所述应答智能合约包括锁定的区块链b资产数额cb、允许开锁地址、时间锁t2、哈希锁hash(x) 和哈希锁验证函数,所述允许开锁地址取值为用户a在区块链b的钱包地址w1,x为用户b生成的随机数,应答智能合约构建完成时,时间锁t2即启动;用户a在一定时间内查阅区块链b并发现用户b的应答,验证应答智能合约中的允许开锁地址为w1且锁定的区块链b资产数额等于cb,则接受交易,用户a通过调用挂单智能合约的哈希锁填写函数,将hash(x)填入,哈希锁取值不为空时,即允许进行哈希锁验证,通过调用挂单智能合约的时间锁填写函数,将时间锁t1设置为早于于时间锁t2的值,时间锁t1取值不为0时即启动;用户b在一定时间内查阅区块链a发现用户a接受交易,验证挂单智能合约的哈希锁为hash(x),则将x及用户b在区块链a上的钱包地址w2提交给挂单智能合约,挂单智能合约验证x,若验证通过,则将锁定的区块链a资产数额ca转账到用户b在区块链a上的钱包地址w2,将x在区块链a上广播,若验证不通过,则终止交易并将哈希锁置空值,时间锁t1修改为0;用户a收到广播的x,在时间锁t2结束前,将x提交给应答智能合约的哈希锁验证函数,应答智能合约将验证通过,并将锁定的区块链b资产数额cb转账到允许开锁地址,即用户a在区块链b的钱包地址w1,至此完成区块链资产的跨链交易。
6.作为优选,所述挂单智能合约还包括状态标识和状态标识修改函数,所述状态标识初值为有效,用户a离线前,通过状态标识修改函数将状态标识修改为离线暂停,并广播更新挂单智能合约,用户a重新上线时,通过状态标识修改函数将状态标识修改为有效,并广播更新挂单智能合约,用户a接受交易时,通过状态标识修改函数将状态标识修改为交易中,并广播更新挂单智能合约,用户b构建应答智能合约前,验证挂单智能合约的状态标识的值是否为有效,若为有效则构建应答智能合约,反之,则等待直到状态标识的值为有效。
7.作为优选,用户a根据时间锁t2的结束时间设置时间锁t1的值,使时间锁t1比时间锁t2早结束

t时间。
8.作为优选,用户a调用挂单智能合约的哈希锁填写函数时,提交由用户a签名的hash(x),并在区块链a上广播,区块链a上的其他节点收到广播后,使用用户a的公钥解密获得hash(x),验证所存储的挂单智能合约的哈希锁是否为空值,若为空值,则将哈希锁的值更新为hash(x),若不为空值,则不做操作。
9.作为优选,用户a调用挂单智能合约的时间锁填写函数时,提交由用户a签名的时间锁t1的值,并在区块链a上广播,区块链a上的其他节点收到广播后,使用用户a的公钥解密获得时间锁t1的值,验证所存储的挂单智能合约的时间锁t1的值是否为0,若为0,则将时间锁的值更新为用户a广播的时间锁t1的值,若不为空值,则不做操作。
10.本发明的实质性效果是:通过挂单及应答机制,实现为用户在线寻找交易对象,方便交易配对,实现加快链上资产流动的效果;通过改进的哈希锁,生成对应的智能合约,在配对后更新智能合约,实现构建可靠的原子交换的跨链交易,有效保障交易双方的利益,构建跨链交易简单快速;能够天然避免双花的问题,减少交易风险,降低需要验证的内容,加快交易速度;通过状态标识确保交易双方在线,及时完成相应操作,保证交易顺利进行。
附图说明
11.图1为实施例一区块链资产跨链交易方法流程示意图。
具体实施方式
12.下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
13.实施例一:一种区块链资产跨链交易方法,请参阅附图1,本方法包括以下步骤:步骤101)用户a在区块链a上发起挂单,构建挂单智能合约,挂单智能合约包括锁定的区块链a资产数额ca、期望交易的区块链b资产数额cb、用户a在区块链b的钱包地址w1、哈希锁、时间锁t1、哈希锁填写函数、时间锁填写函数和哈希锁验证函数,哈希锁初值为空,表示不允许哈希验证,时间锁t1初值为0,表示时间锁未启动。
14.步骤102)用户b查看区块链a发现用户a的挂单,并决定与用户a进行交易,用户b在区块链b上发起应答,并构建应答智能合约,应答智能合约包括锁定的区块链b资产数额cb、允许开锁地址、时间锁t2、哈希锁hash(x) 和哈希锁验证函数,允许开锁地址取值为用户a在区块链b的钱包地址w1,x为用户b生成的随机数,应答智能合约构建完成时,时间锁t2即启动。
15.步骤103)用户a在一定时间内查阅区块链b并发现用户b的应答,验证应答智能合约中的允许开锁地址为w1且锁定的区块链b资产数额等于cb,则接受交易,用户a通过调用挂单智能合约的哈希锁填写函数,将hash(x)填入,哈希锁取值不为空时,即允许进行哈希锁验证,通过调用挂单智能合约的时间锁填写函数,将时间锁t1设置为早于于时间锁t2的值,时间锁t1取值不为0时即启动。用户a根据时间锁t2的结束时间设置时间锁t1的值,使时间锁t1比时间锁t2早结束

t时间,以给自己留有足够的时间,在用户b解锁挂单智能合约后,用于在区块链b上解锁应答智能合约。
16.步骤104)用户b在一定时间内查阅区块链a发现用户a接受交易,验证挂单智能合约的哈希锁为hash(x),则将x及用户b在区块链a上的钱包地址w2提交给挂单智能合约。
17.步骤105)挂单智能合约验证x,若验证通过,则将锁定的区块链a资产数额ca转账到用户b在区块链a上的钱包地址w2,将x在区块链a上广播,若验证不通过,则终止交易并将哈希锁置空值,时间锁t1修改为0。
18.步骤106)用户a收到广播的x,在时间锁t2结束前,将x提交给应答智能合约的哈希锁验证函数,应答智能合约将验证通过,并将锁定的区块链b资产数额cb转账到允许开锁地址,即用户a在区块链b的钱包地址w1,至此完成区块链资产的跨链交易。
19.如果交易最终没有成功,则实际上不会发生任何资产的转移,即不会给交易双方带来资产损失,也不会产生手续费。因而本实施例构建的交易是原子交换的。
20.为避免用户a或者用户b中的一方离线,导致时间锁t1及时间锁t2结束前交易没能及时操作,浪费交易机会,本实施例中的挂单智能合约还包括状态标识和状态标识修改函数,状态标识仅用户提示其他用户当前挂单智能合约的状态,其状态正确与否并不会实质上影响交易,因而区块链a对状态标识的修改仅验证修改来源为用户a即可。状态标识初值为有效,用户a离线前,通过状态标识修改函数将状态标识修改为离线暂停,并广播更新挂单智能合约,用户a重新上线时,通过状态标识修改函数将状态标识修改为有效,并广播更新挂单智能合约,用户a接受交易时,通过状态标识修改函数将状态标识修改为交易中,并广播更新挂单智能合约,用户b构建应答智能合约前,验证挂单智能合约的状态标识的值是否为有效,若为有效则构建应答智能合约,反之,则等待直到状态标识的值为有效。
21.用户a仅能有限的根据交易需要,更新挂单智能合约的状态,以推动交易的进行。具体而言包括:用户a调用挂单智能合约的哈希锁填写函数时,提交由用户a签名的hash(x),并在区块链a上广播,区块链a上的其他节点收到广播后,使用用户a的公钥解密获得hash(x),验证所存储的挂单智能合约的哈希锁是否为空值,若为空值,则将哈希锁的值更新为hash(x),若不为空值,则不做操作。哈希值提取算法hash()需要同时在区块链a和区块链b上得到支持。本实施例采用sha256进行哈希值的提取。
22.以及,用户a调用挂单智能合约的时间锁填写函数时,提交由用户a签名的时间锁t1的值,并在区块链a上广播,区块链a上的其他节点收到广播后,使用用户a的公钥解密获得时间锁t1的值,验证所存储的挂单智能合约的时间锁t1的值是否为0,若为0,则将时间锁的值更新为用户a广播的时间锁t1的值,若不为空值,则不做操作。
23.一旦交易失败,即时间锁t1结束,用户b仍然未提交x,或者提交了错误的x,或者提交了错误的钱包地址x2,则挂单智能合约自动复原,以等待下次的交易。此时用户a又可以根据下次交易的需要,对挂单智能合约进行更新,具体同前述。
24.本实施例的有益技术效果是:通过挂单及应答机制,实现为用户在线寻找交易对象,方便交易配对,实现加快链上资产流动的效果;通过改进的哈希锁,生成对应的智能合约,在配对后更新智能合约,实现构建可靠的原子交换的跨链交易,有效保障交易双方的利益,构建跨链交易简单快速;能够天然避免双花的问题,减少交易风险,降低需要验证的内容,加快交易速度;通过状态标识确保交易双方在线,及时完成相应操作,保证交易顺利进行。
25.实施例二:一种区块链资产跨链交易方法,实际跨链资产交易主要发生在比特币和以太币之间。本实施例演示了用户alice使用10eth和用户bob交易了1btc的过程。
26.用户alice欲使用其掌握的10eth,交易比特币链上的1btc,于是用户alice在以太坊上构建了挂单智能合约。请参阅表1,为用户alice构建的挂单智能合约的内容展示。
27.表1 用户alice构建的挂单智能合约内容合约地址0xffa9972857846fb78c588a9e9ac286aac68c37cd签名用户alice的私钥加密的任意内容状态标识有效锁定资产10eth欲交易资产1btc钱包地址w1@btc哈希锁null时间锁t10用户alice在比特币链上等待了半小时,并没有发现任何的应答,于是暂时离开。离开前将状态标识更改为离线暂停。
28.一小时后,用户alice重新上线,并更新挂单智能合约的状态标识为有效。等待一段时间后,用户alice通过检索比特币链,发现了用户bob构建的应答智能合约。
29.请参阅表2,用户bob构建的应答智能合约内容有:锁定资产1btc,允许开锁地址为用户alice在比特币链上的钱包地址w1,表示仅允许用户alice解锁哈希锁。以太坊和比特
币都至此sha256,因而用户bob使用sha256求随机数x的哈希值。
30.表2 用户bob构建的应答智能合约内容合约地址0xffa9972857846fb78c588a9e9ac286aac68c37cd签名用户bob的私钥加密的任意内容锁定资产1btc允许开锁地址w1@btc时间锁t21.5h哈希锁hash(x)用户alice查看到用户bob构建的应答智能合约后,决定与用户bob进行交易,将应答智能合约中的部分内容同步到挂单智能合约中。具体为将哈希锁hash(x)同步到挂单智能合约的哈希锁中。同时设置时间锁t1为1小时。时间锁t1不为0时,即启动。用户alice应注意,时间锁t1的结束时间应早于时间锁t2。本实施例推荐为早于时间锁t2半小时结束,以留给自己足够的操作时间。
31.用户alice将挂单智能合约更新后,用户bob将x和自己在以太坊的钱包地址w2提交给挂单智能合约。由于x仅bob知晓,能够提交正确的x即表明了bob身份,同时能够确定钱包地址w2为用户bob在以太坊的钱包地址。挂单智能合约验证x通过后,将10eth转账给bob在以太坊的钱包地址w2,同时在以太坊内广播x。
32.用户alice将收到广播的x,由于比特币链上仅允许用户alice在比特币链上的钱包地址w1@btc进行开锁,即开锁后锁定的资产1btc仅有可能转账到钱包地址w1,因而应当智能合约可以不对开锁人进行验证。只要在时间锁t2结束前,提供了正确的x,就将锁定的资产1btc转账到用户alice在比特币链上的钱包地址w1。至此,即完成了用户alice的10eth和用户bob的1btc之间交易的过程,实现了跨链资产的交易。
33.以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜