哈希锁定和侧链技术的跨链交易方法、系统、可存储介质

文档序号:1817380 发布日期:2021-11-09 浏览:7次 >En<

阅读说明:本技术 哈希锁定和侧链技术的跨链交易方法、系统、可存储介质 (Cross-chain transaction method, system and storage medium of Hash locking and side chain technology ) 是由 陈艳姣 徐文渊 冉渝阳 于 2021-08-31 设计创作,主要内容包括:本发明公开了一种基于哈希锁定和侧链技术的跨链交易方法,涉及区块链领域。本发明包括以下步骤:创建第一终端和第二终端基于哈希锁定的原子交换数据传输机制;创建基于SPV锚定模式跨链数据转移机制;第一终端和第二终端在所述SPV锚定模式监督状态下,实现基于哈希锁定的原子交换数据传输。本发明利用侧链技术解决哈希锁定技术中的只能实现资产交换而不能解决资产转移的缺点,而利用哈希锁定技术,无需额外增加一条侧链或者中继链就可以实现跨链资产转移。(The invention discloses a cross-chain transaction method based on Hash locking and side chain technology, and relates to the field of block chains. The invention comprises the following steps: creating an atom exchange data transmission mechanism based on hash locking of a first terminal and a second terminal; creating a cross-chain data transfer mechanism based on the SPV anchoring mode; and the first terminal and the second terminal realize the atom exchange data transmission based on the Hash locking under the supervision state of the SPV anchoring mode. The invention solves the defect that only asset exchange can be realized but asset transfer cannot be realized in the Hash locking technology by utilizing the side chain technology, and can realize cross-chain asset transfer by utilizing the Hash locking technology without additionally adding a side chain or a relay chain.)

哈希锁定和侧链技术的跨链交易方法、系统、可存储介质

技术领域

本发明涉及区块链领域,更具体的说是涉及一种基于哈希锁定和侧链技术的跨链交易方法、系统、可存储介质。

背景技术

如今,基于区块链的去中心化电子货币越来越人们受欢迎。比如在比特币中,所有事务记录在由一组分散的对等节点维护的公共交易分类帐本—区块链上。随着技术以及市场的发展,加密货币的种类越来越多,与此同时也涌现出来大量不同的区块链。每一条链都相当于一个独立的账本,通常情况下不同账本之间是无法实现价值转移的。不同链之间的协同从操作以及价值流通成为了用户们的新需求,因此区块链的“跨链技术”应运而生。主流的跨链技术有公证人技术、哈希锁定技术、以及侧链和中继链技术。

公证人技术也称见证人机制,其是一种中介的方式。设区块链A和区块链B本身是不能直接进行互操作的,则可以引入一个共同信任的第三方作为中介,由这个共同信任的中介进行跨链消息的验证和转发。很多时候,这个公证人/中介就是交易所。其优点在于支持异构的区块链跨链,缺点在于有中心化风险,只能实现交换不能实现转移。

哈希锁定的典型实现是哈希时间锁定合约HTLC(Hashed TimeLock Contract)。哈希时间锁定最早出现在比特币的闪电网络。哈希时间锁定巧妙地采用了哈希锁和时间锁,迫使资产的接收方在一定时间内内确定收款并产生一种收款证明给打款人,否则资产会归还给打款人。收款证明能够被付款人用来获取接收人区块链上的等量价值的数量资产或触发其他事件。哈希锁定只能做到交换而不能做到资产或者信息的转移,因此其使用场景有限。

侧链用来指代与主区块链并行的那条区块链。主区块链可以向侧链连接,也可以被侧链连接;这样一来,侧链就可以独立于主区块链进行操作(例如,通过使用备用的记录保持方式)。从主链单链角度讲,侧链可以虚拟化地横向和纵向提升主链的性能。所谓横向,就是将多个侧链与主链互通,将大部分交易放到侧链上,然后再通过与主链互通实现,可以虚拟地提升主链的TPS。所谓纵向,就是侧链可以有主链不具有的功能,通过侧链,主链看上去也像是支持了这些功能。如今,侧链大多数还是指BlockStream所说的锚定式侧链(pegged sidechain)。锚定式侧链主要是指支持资产的双向锚定,即资产在主链与侧链之间的流通。当前,双向锚定侧链的实现方式包括如下4种。

1)单一托管模式单一托管模式是实现双向锚定最简单的方式,其基本原理与单一公证人机制相同。交易参与方把数字资产发送给托管方,托管方在侧链上将相应资产发送给交易方侧链账户。

2)联合锚定模式联合锚定使用公证人联盟的形式作为资产托管方,利用多重签名的方式来减少单中心的风险。

3)驱动链模式驱动链概念是由Bitcoin Hivemind创始人Paul提出的。在驱动链中,交易处理节点代表公证人组的角色,负责资金托管和解锁。交易处理节点把其他链上的资产锁定信息提交到区块中,发起提案,经过投票与确认之后,在当前链上解锁指定资产。

4)SPV(simple payment verification)锚定模式指的是轻客户端不需要下载所有区块数据就能对某一笔交易的存在性进行验证。一个SPV证明包含两个部分:区块头列表;表示某一输出发生在列表中某一区块的密码学证明,如默克尔证明。如果要证明某笔交易存在于某个区块内,只需要使用此交易的哈希值与其他相关交易的哈希值计算最终的默克尔树根,并与区块头的树根作比较。如果计算结果与区块头的交易树根一致,则证明交易存在于本区块中。而所谓中继是指可以在本链上自行验证另一条链上数据而不需要依赖第三方。

发明内容

有鉴于此,本发明提供了哈希锁定和侧链技术的跨链交易方法、系统、可存储介质,利用侧链技术解决哈希锁定技术中的只能实现资产交换而不能解决资产转移的缺点,而利用哈希锁定技术,无需额外增加一条侧链或者中继链就可以实现跨链资产转移。

为了实现上述目的,本发明采用如下技术方案:

一种基于哈希锁定和侧链技术的跨链交易方法,包括以下步骤:

创建第一终端和第二终端基于哈希锁定的原子交换数据传输机制;

创建基于SPV锚定模式跨链数据转移机制;

第一终端和第二终端在所述SPV锚定模式监督状态下,实现基于哈希锁定的原子交换数据传输。

可选的,所述原子交换数据传输机制具体步骤如下:

A产生随机数,计算所述随机数的哈希值;

A使用所述哈希值并在t1时间产生合约T1,同时锁定A需要传输的数据;

A将所述哈希值发送给B,并发送信息给A,证明已经锁定A需要传输的数据;

B使用所述哈希值在t2时间产生合约T2,同时锁定B需要传输的数据;

A使用随机数构建合约T3解锁合约T2,获取B需要传输的数据,同时,随机数暴露;

B使用暴露的随机数构建合约T3解锁T2,获取A需要传输的数据。

可选的,所述原子交换数据传输机制的原则为数据传输的双方通过哈希值解析双方内部数据,同时哈希锁定的超时时间设置存在时间差。

可选的,SPV锚定模式跨链数据转移机制具体内容如下:

锁定A的数据,并设置一个锁定A数据的确认期限;

当A数据的确认期限结束后,B产生铸币数据传输,并且提供A铸币数据传输的SPV证明,同时生成的B数据传输信息锁定,并等待一个竞争期;

所述竞争期结束后,B获得数据,同时B实现所述数据的传输。

可选的,若在竞争期,A数据丢失,采用新SPV证明数据丢失,B的铸币数据传输失败。

一种基于哈希锁定和侧链技术的跨链交易系统,包括:

机制创建模块:用于创建第一终端和第二终端基于哈希锁定的原子交换数据传输机制;还用于创建基于SPV锚定模式跨链数据转移机制;

数据传输模块:用于第一终端和第二终端在所述SPV锚定模式监督状态下,实现基于哈希锁定的原子交换数据传输。

一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序为被处理器执行时实现所述的一种基于哈希锁定和侧链技术的跨链交易的步骤。

经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于哈希锁定和侧链技术的跨链交易方法,其中,哈希锁定只能做到交换而不能做到资产或者信息的转移,并且进行资产交换的两条链都要支持哈希锁和时间锁,因此其使用场景有限。而侧链技术和中继链技术可以在主链和侧链中互转,可以提高隐私性、降低成本、加速价值转移及结算流程,但是侧链技术也存在缺点,也就是必须存在一个侧链或者一个中继链,间接的增加了跨链过程中的第三方。本发明针对现有哈希锁定跨链技术和侧链跨链技术的缺点,直接在哈希锁定时间内产生新代币,从而实现了跨链原子交易,并且无需侧链或者中继链参与,解决了公链交易吞吐量和交易速度的问题,提高了公有链的可拓展性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明的基于哈希锁定的原子交易示意图;

图2为本发明的SPV模式下的双向锚定。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了哈希锁定和侧链技术的跨链交易方法、系统、可存储介质,包含以下步骤:

步骤1,实现基于哈希锁定的原子交换。

基于哈希锁定的原子交换可以保证不同链间资产交易的安全性与原子性,而不需要第三方参与。哈希时间锁定巧妙地采用了哈希锁和时间锁,迫使资产的接收方在deadline内确定收款并产生一种收款证明给打款人,否则资产会归还给打款人。收款证明能够被付款人用来获取接收人区块链上的等量价值的数量资产或触发其他事件。

如图1所示,A与B的原子交换哈希锁机制可以简单描述如下(设A使用链A上的代币a与B交换链B上的代币b。

1)A产生随机数s,计算哈希值H(s),其中,H表示哈希函数。

2)A使用H(s)和一个时间在链A上产生一个合约交易=T(H(s),t1),会锁定A链上需要交易的代币a,锁定时间为。

3)A把计算的H(s)发送给B,并发送交易至A链上,证明已经锁定了自身的待交易代币a。

4)B使用H(s)与时间生成合约交易,锁定需要交易的代币b并将交易上链,其中,锁定时间为(<)。

5)A使用s构建解锁链B的锁定交易,获取锁定的代b,此时随机数s暴露。

6)B使用公开的s构建解锁链A上的,获取锁定的代币a。

其中哈希函数又称散列函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。从上述的过程可以看出哈希时间锁定合约有一些约束条件:一是双方必须能够解析双方的合约内部数据,例如s,例如锁定资产的证明等;二是哈希锁定的超时时间设置时需要保证存在时间差,这样在单方面作弊时另一方可以及时撤回自己的资产。

对于比特币系统,资产的哈希锁定可以通过构建HTLC完成。假设交易双方为A和B,A构建HTLC需要两笔UTXO。A首先产生一个随机数s,计算H(s),只有提供原像s才能计算出H(s),实现哈希锁定。然后,A生成一笔UTXO发送一定数量的比特币到一个比特币脚本,脚本中设置UTXO的花费条件有两个:1)提供B的签名和原像s;2)提供A和B的签名。通常称这笔交易为存款交易(fundtransaction),表示资产的锁定。A产生另外一笔交易,把存款交易作为第二笔UTXO的输入,输出A的地址,同时设置nTimeLock字段为Tlock,表示到达T后才允许被打包生效,实现时间锁定,称这笔交易为退款交易(redeem transcation)。这两笔交易共同构成了一个比特币系统上的哈希锁定合约。A把这两笔交易发给B,如果B同意则在第二笔交易上签名并发回给A。对于以太坊这种图灵完备的链而言,可以产生一个合约。合约逻辑设为:在t时间内(实现时间锁),如果A的地址能提供哈希原像s(实现哈希锁定),则可取走合约中锁定的资产,然后发送需要锁定的资产到合约上。

步骤2,基于SPV锚定模式的跨链资产转移,如图2所示。

SPV模式指通过将交易发给主链的一个特殊地址,由此会自动创建一个SPV证明给侧链上并发起一个交易在侧链上解锁对应的资产。假设在A链和B链之间进行资产转移,跨链支付有如下几个步骤:

1)锁定A链资产,可以使用多签名账户实现。

2)在A链上等待一个确认期,可以是一天或者两天,以确保生成足够的工作量,从而抵抗拒绝服务攻击。

3)A链确认期结束后,用户可以在B链上产生一笔铸币交易,并且提供A链锁币交易的SPV证明,生成的B链的资产处于锁定状态,需要等待一个竞争期。

4)用户在B链上等待一个竞争期,设置竞争期的目的是防止双重花费。如果在竞争期内,用户把A链上锁定的币转走,其他用户可以用最新的SPV证明此事,则B链铸币交易失效,称此证明为重组证明。

5)竞争期结束后(约1~2天),B链代币生成,可以在B链上流通。

6)B链代币返回A链,流程重复上述5个步骤。

步骤3,实现基于哈希锁定和SPV锚定模式跨链交易。

假设在A链上的用户A和B链上的用户B之间进行跨链交易,跨链交易有如下几个步骤

1)用户A产生随机数s,计算哈希值H(s),其中,H表示哈希函数。

2)用户A使用H(s)和一个确认期时间在A链上锁定需要交易的代币a,锁定时间为。

3)用户A把计算的H(s)发送给用户B,并证明已经锁定了自身的待交易代币a。

4)A链确认期结束后,用户B可以在B链上产生一笔铸币交易,并且提供A链锁币交易的SPV证明,生成的B链的资产处于锁定状态,需要等待一个竞争期。

5)用户B在B链上等待一个竞争期(<)。如果在竞争期内,用户A把A链上锁定的币转走,其他用户可以用最新的SPV证明此事,则B链铸币交易失效,称此证明为重组证明。

6)竞争期结束后,B链代币生成,B用户使用H(s)获得刚生成的代币。

具体的,本发明主要基于区块链技术,利用侧链技术解决哈希锁定技术中的只能实现资产交换而不能解决资产转移的缺点,而利用哈希锁定技术,无需额外增加一条侧链或者中继链就可以实现跨链资产转移。下面将对本发明实施例中的技术方案进行清完整的描述。

步骤1,创建基于哈希锁定交易。

本发明实施例中,用户Alice使用1个BTC和Bob交换50个ETH,跨链交易过程如下:

1.Alice随机构建一个字符串s,并计算出其哈希h(s);

2.Alice将h(s)发送给Bob;

3.Alice通过合约锁定自己的1个BTC资产,设置一个较长的锁定时间,再设置了获取该BTC的条件:Bob提供h(s)的原始值s;

4.Bob锁定50ETH到自己的合约,设置一个相对较短的锁定时间(<)。再设置50ETH的获取条件:Alice提供h(s)的原始值s;

5.Alice将字符串s发送到Bob的合约获得50个ETH;

6.Bob观察到步骤5中Alice的s值,将其发送给Alice的合约成功获取1个BTC;至此完成资产的交换。

7.如果超时,则锁定的资产返回原主。

步骤2,基于SPV锚定模式的跨链资产转移

本发明实施例中,将用户比特币上的1BTC转移到以太坊上变成50ETH。

1)锁定比特币上的1BTC,可以使用多签名账户实现。

2)在比特上上等待一个确认期,时间为,以确保生成足够的工作量,从而抵抗拒绝服务攻击。

3)比特币上确认期结束后,用户可以在以太坊上产生一笔铸币交易,并且提供比特币上锁币交易的SPV证明,生成的以太坊的资产处于锁定状态,需要等待一个竞争期。

4)用户在以太坊上等待一个竞争期(防止双重花费)。如果在竞争期内,用户把比特币上锁定的币转走,其他用户可以用最新的SPV证明此事,则以太坊铸币交易失效,称此证明为重组证明。

其中当比特币网络需要运用SPV进行简单支付验证时步骤如下所示:

1)计算待验证支付的交易哈希值;节点从区块链网络上获取并存储最长链的所有区块头至本地;

2)节点从区块链获取待验证支付对应的默克尔树哈希认证路径;

3)依据哈希认证路径,计算默克尔树的根哈希值,将计算结果与本地区块头中的默克尔树的根哈希值进行比较,定位到包含待验证支付的区块;

4)依据该区块头所处的位置,验证该区块的区块头是不是现已包含在已知最长链中,确定该支付已经获得的确认数量,假如包含则证明支付真实有效。

步骤3,实现基于哈希锁定和SPV锚定模式跨链交易

假设在比特币上的用户Alice和以太坊上的用户Bob之间进行跨链交易,跨链交易有如下几个步骤:

1)用户Alice产生随机数s,计算哈希值H(s),其中,H表示哈希函数。

2)用户Alice使用H(s)和一个确认期时间在比特币上锁定需要交易的代币a,锁定时间为t1。

3)用户Alice把计算的H(s)发送给用户Bob,并证明已经锁定了自身的待交易代币a。

4)比特币在确认期结束后,用户B可以在以太坊上产生一笔铸币交易,并且提供比特币锁币交易的SPV证明,生成的以太坊的资产处于锁定状态,需要等待一个竞争期。

5)用户B在以太坊上等待一个竞争期(<)。如果在竞争期内,用户A把比特币上锁定的币转走,其他用户可以用最新的SPV证明此事,则以太坊铸币交易失效,称此证明为重组证明。

6)竞争期结束后,以太坊代币生成,B用户使用H(s)获得刚生成的代币。

其中当比特币网络需要运用SPV进行简单支付验证时步骤如下所示:

1)计算待验证支付的交易哈希值;节点从区块链网络上获取并存储最长链的所有区块头至本地;

2)节点从区块链获取待验证支付对应的默克尔树哈希认证路径;

3)依据哈希认证路径,计算默克尔树的根哈希值,将计算结果与本地区块头中的默克尔树的根哈希值进行比较,定位到包含待验证支付的区块;

4)依据该区块头所处的位置,验证该区块的区块头是不是现已包含在已知最长链中,确定该支付已经获得的确认数量,假如包含则证明支付真实有效。

一种基于哈希锁定和侧链技术的跨链交易系统,包括:

机制创建模块:用于创建第一终端和第二终端基于哈希锁定的原子交换数据传输机制;还用于创建基于SPV锚定模式跨链数据转移机制;

数据传输模块:用于第一终端和第二终端在SPV锚定模式监督状态下,实现基于哈希锁定的原子交换数据传输。

一种计算机存储介质,计算机存储介质上存储有计算机程序,计算机程序为被处理器执行时实现的一种基于哈希锁定和侧链技术的跨链交易的步骤。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种区块链系统匿名抢红包方法、设备及储存介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!