CN115034900A - 面向多链服务的Fabric跨链原子交换方法、装置和存储介质 - Google Patents
面向多链服务的Fabric跨链原子交换方法、装置和存储介质 Download PDFInfo
- Publication number
- CN115034900A CN115034900A CN202210636582.7A CN202210636582A CN115034900A CN 115034900 A CN115034900 A CN 115034900A CN 202210636582 A CN202210636582 A CN 202210636582A CN 115034900 A CN115034900 A CN 115034900A
- Authority
- CN
- China
- Prior art keywords
- contract
- asset
- transaction
- random number
- initiator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 239000004744 fabric Substances 0.000 title claims abstract description 63
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 239000003999 initiator Substances 0.000 claims abstract description 95
- 230000000694 effects Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 238000000151 deposition Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 32
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 9
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请提供一种面向多链服务的Fabric跨链原子交换方法、装置和存储介质,属于数据处理技术领域。所述方法包括:发起方生成原像随机数,根据原像随机数在第一Fabric链上创建用于存放第一资产的第一虚拟账户,根据原像随机数的哈希值在第一虚拟账户中部署第一合约,并将哈希值和第一合约发送给交易方;交易方在第二Fabric链上创建用于存放第二资产的第二虚拟账户,根据哈希值在第二虚拟账户中部署第二合约,并将第二合约发送给发起方;发起方根据原像随机数执行第二合约,取出第二资产;交易方获取原像随机数,根据原像随机数执行第一合约,取出第一资产。本申请旨在两条Fabric链上完成发起方与交易方之间的资产交易。
Description
技术领域
本申请实施例涉及数据处理技术领域,具体而言,涉及一种面向多链服务的Fabric跨链原子交换方法、装置和存储介质。
背景技术
哈希时间锁定合约(Hash Time Lock Contract,HTLC)的定义为在规定的时间内,通过此笔智能合约,双方约定转账方先冻结一笔资产,并通过哈希锁将发起方的交易代币锁定,如果在规定时间内有人能够提供之前生成支付的加密证明,并且与之前约定的哈希值一致,交易即可完成。哈希时间锁定机制能够保证区块链上交易的原子性,即只有满足一定的时间条件和哈希条件才能达成该交易,否则就什么也不会发生。
但是上述的哈希时间锁定合约适用于以以太坊为代表的区块链技术中,即存在区块链自身代币,并且智能合约地址本身能够作为账户进行资产的锁定操作的特点,但在以Fabric为代表的区块链结构体系中,不存在前者的上述特点,因此常规哈希时间锁定合约操作并不适用,在Fabric链上的交易难以进行。
发明内容
本申请实施例提供一种面向多链服务的Fabric跨链原子交换方法、装置和存储介质,旨在于两条Fabric链上完成资产交易。
第一方面,本申请实施例提供一种面向多链服务的Fabric跨链原子交换方法,所述方法应用于发起方与交易方之间的资产交易,所述方法包括:
所述发起方生成原像随机数,根据所述原像随机数在第一Fabric链上创建用于存放第一资产的第一虚拟账户,根据所述原像随机数的哈希值在所述第一虚拟账户中部署第一合约,并将所述哈希值和所述第一合约发送给所述交易方;
所述交易方在第二Fabric链上创建用于存放第二资产的第二虚拟账户,根据所述哈希值在所述第二虚拟账户中部署第二合约,并将所述第二合约发送给所述发起方;
所述发起方根据所述原像随机数执行所述第二合约,取出所述第二资产;
所述交易方获取所述原像随机数,根据所述原像随机数执行所述第一合约,取出所述第一资产。
可选地,将所述哈希值和所述第一合约发送给所述交易方,包括:
在所述第一合约上设置第一时间锁,其中,所述第一时间锁表征允许执行所述第一合约的时间;
根据所述哈希值、所述第一虚拟账户的地址以及设置有所述第一时间锁的所述第一合约,生成第一交易地址,将所述第一交易地址发送给所述交易方;
在所述交易方在第二Fabric链上创建用于存放第二资产的第二虚拟账户之前,所述方法还包括:
所述交易方根据接收到的所述第一交易地址进行查询,得到所述哈希值、所述第一虚拟账户的地址以及设置有所述第一时间锁的所述第一合约。
可选地,所述方法还包括:
所述第一合约在所述第一预设时间内未被执行时,所述第一时间锁生效,所述第一时间生效后执行以下步骤:
禁止执行所述第一合约的取出功能,以阻止所述交易方取出所述第一资产;
允许执行所述第一合约的撤回功能,以允许所述发起方撤回所述第一资产。
可选地,所述交易方通过所述哈希值在所述第二虚拟账户中部署第二合约,所述交易方将所述第二合约发送给所述发起方,包括:
所述交易方基于查询所述第一交易地址得到的所述哈希值,在所述第二虚拟账户上部署所述第二合约;
在所述第二合约上设置第二时间锁,其中,所述第二时间锁包含允许执行所述第二合约的时间;
根据所述哈希值、所述第二虚拟账户的地址以及设置有所述第二时间锁的所述第二合约,生成第二交易地址,并将所述第二交易地址发送给所述发起方。
可选地,所述方法还包括:
所述第二合约在所述第二预设时间内未被执行时,所述第二时间锁生效,所述第二时间生效后执行以下步骤:
禁止执行所述第二合约的取出功能,以阻止所述发起方取出所述第二资产;
允许执行所述第二合约的撤回功能,以允许所述交易方撤回所述第二资产。
可选地,所述第二预设时间比所述第一预设时间短。
可选地,所述交易方在所述第二虚拟账户中部署第二合约之后,所述方法还包括:
所述交易方通过预留的接口在所述第一合约上设置优先级高于所述第一时间锁的撤回锁,其中,所述撤回锁用于在所述发起方执行所述第二合约后生效,禁止所述第一合约的撤回功能,以阻止所述发起方撤回所述第一资产。
可选地,所述交易方获取所述原像随机数,根据所述原像随机数执行所述第一合约,取出所述第一资产包括:
所述交易方查询所述第二交易地址,若所述发起方取得第二资产,通过接口调用所述原像随机数,根据所述原像随机数与所述第一交易地址,执行所述第一合约,取出所述第一资产。
第二方面,本实施例提供一种面向多链服务的Fabric跨链原子交换装置,所述装置包括:
第一合约生成模块,用于所述发起方生成原像随机数,根据所述原像随机数在第一Fabric链上创建用于存放第一资产的第一虚拟账户,根据所述原像随机数的哈希值在所述第一虚拟账户中部署第一合约,并将所述哈希值和所述第一合约发送给所述交易方;
第二合约生成模块,用于所述交易方在第二Fabric链上创建用于存放第二资产的第二虚拟账户,根据所述哈希值在所述第二虚拟账户中部署第二合约,并将所述第二合约发送给所述发起方;
第一资产交易模块,用于所述发起方根据所述原像随机数执行所述第二合约,取出所述第二资产;
第二资产交易模块,用于所述交易方获取所述原像随机数,根据所述原像随机数执行所述第一合约,取出所述第一资产。
第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现实施例第一方面所述的一种面向多链服务的Fabric跨链原子交换方法。
有益效果:
发起方与交易方基于Fabric链进行资产交易时,由于在Fabric链上发起方或交易方持有的账户不能够直接进行资产交换,所以本方法采用在第一Fabric链上创建存放第一资产的第一虚拟账户,在第二Fabric链上创建存放第二资产的第二虚拟账户,在进行交易时,发起方首先通过原像随机数执行第二合约,并取得第二资产,然后交易方获取原像随机数后执行第一合约,并取得第一资产,从而完成发起方与交易方之间的资产交换,解决了在第一Fabric链和第二Fabric链上难以进行资产交易的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提出的一种面向多链服务的Fabric跨链原子交换方法的步骤流程图;
图2是本申请实施例提供的发起方取出第二资产的过程的流程图;
图3是本申请实施例提供的发起方撤回第一资产的过程的流程图;
图4是本申请实施例提供的交易方取出第一资产的过程的流程图;
图5是本申请实施例提供的交易方撤回第二资产的过程的流程图;
图6是本申请实施例提出的一种面向多链服务的Fabric跨链原子交换装置的功能模块图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
Fabric是超级账本联盟推出的核心区块链框架,它适合在复杂的企业内和企业间搭建联盟链;根据超级账本联盟的目标,Fabric被建设为一个模块化的、支持可插拔组件的基础联盟链框架。与以太坊系的Quorum不同,Fabric从一开始就只考虑企业间的应用。其独有的channel概念,将企业根据业务目的不同以不同的子网连接起来,每一个子网对应一个channel,而每个channel有自己独立的区块链;而Quorum很显然是只有一个公网(所有企业节点都加入进去),企业与企业间的私有业务是通过Private Manager完成的。
在基于区块链进行交易时,常见的以太坊结构为代表的区块链体系中存在原生账户和原生的以太币资产;在进行跨链资产交换的过程中,可以通过直接使用原生账户及eth代币进行资产交换;并且以太坊区块链机制下,合约地址本身可以用作账户地址,因此在交易过程中,可以直接通过生成的交易合约地址作为账户地址进行资产托管。
但是,在Fabric区块链机制中并没有原生的资产和合约账户的概念,由于Fabric与以太坊的差异性,在以太坊上常用的交易方式在Fabric上并不适用,因此如何在Fabric区块链之间进行交易是一个难题。
基于此,为了减小在Fabric链上进行交易的难度,本申请实施例提供了一种面向多链服务的Fabric跨链原子交换方法。
参照图1,示出了本发明实施例中的一种面向多链服务的Fabric跨链原子交换方法的步骤流程图,所述方法应用于发起方与交易方之间的资产交易,所述方法具体可以包括以下步骤:
S101:所述发起方生成原像随机数,根据所述原像随机数在第一Fabric链上创建用于存放第一资产的第一虚拟账户,根据所述原像随机数的哈希值在所述第一虚拟账户中部署第一合约,并将所述哈希值和所述第一合约发送给所述交易方。
由于Fabric区块链机制中并没有原生的资产和合约账户的概念,因此若要实现在两条Fabric链之间的资产交换,首先需要在创建存放资产的虚拟账户。
具体地,在比特币或者以太坊中,用户是有一套公钥私钥组成的账户,公钥就是账户的地址,私钥相当于账户的密码,将自身的资产交易出去需要自身账户和密码以及对方账户的私钥,交易的表现方式为我使用自身账户向另一个发送的一笔钱(比特币或者以太币)。
而在Fabric机制中本身是不存在用户账户和密码的,其资产一般是通过链码以键值对的形式进行自行定义的:
例如:
key:
"CAR01";
Value:
{"colour":"Black","make":"Honda","model":"Accord","owner":"Tom"},
其中,在key这个键值中,里面的"owner"就是当前持有者,如果现在要发生一笔交易,由Tom发送的Sam,就通过提前定义好的交易接口,将CAR01对应的值的"owner"一项直接修改为"Sam",完成Tom到Sam的交易。
不像在以太坊区块链机制下,合约地址本身可以用作账户地址,直接通过生成的交易合约地址作为账户地址进行资产托管,在Fabric链上的交易合约不能作为托管地址直接托管资产,因此需要首先创建虚拟账户作为托管账户托管资产,即生成一个实际不存在的"owner",在完成跨链交易之前,将资产的持有者设置为这个虚拟账户,这个"owner"在本实施例中就能认为是用于托管资产的虚拟账户。
通常在区块链之间的交易中,需要设置发起方和交易方均能够进行信任的交易手段,而原像随机数就是在其中传递信任的桥梁,发起方首先根据原像随机数在第一Fabric链上创建用于存放第一资产的第一虚拟账户。
然后对原像随机数进行特定的哈希运算,得到原像随机数的哈希值,原像随机数与其哈希值一一对应,并且通过原像随机数可以得到哈希值,但是通过哈希值几乎不能得到原像随机数,所以在交易的过程中,一般以原像随机数来传递能够保证交易过程的安全性。
通过原像随机数的哈希值在第一虚拟账户中部署第一合约,交易方执行第一合约时,需要判断交易方提供的原像随机数的哈希值与部署第一合约时的哈希值是否相同,只有在相同的情况下第一合约才能执行成功;即第一合约内设置有哈希锁,哈希锁将第一资产锁定在第一虚拟账户内,只有提供的原像随机数的哈希值时,解锁哈希锁,进而可以取出第一资产。
在一种可行的实施方式中,在部署第一合约后,还可以在所述第一合约上设置第一时间锁,所述第一时间锁表征了允许执行所述第一合约的时间。
示例地,所述第一合约在所述第一预设时间内未被执行时,所述第一时间锁生效,所述第一时间生效后执行以下步骤:
禁止执行所述第一合约的取出功能,以阻止所述交易方取出所述第一资产;允许执行所述第一合约的撤回功能,以允许所述发起方撤回所述第一资产。
简而言之,交易方需要在第一预设时间内执行第一合约,若是交易方出现了交易异常而未执行第一合约时,在第一时间锁的作用下,第一合约取出功能不可再被执行,即交易方因为超时而不能再取得第一资产,同时发起者可以通过第一合约的撤回功能撤回第一资产,从而具有保护发起者的资产的效果。
当然,在设置第一时间锁后,且第一时间锁未生效前,第一合约的撤回功能是被禁止的,从而发起方不可以在第一预设时间内随意地撤回第一资产,避免发起方突然反悔导致交易方的权益受到影响。
接着,根据所述哈希值、所述第一虚拟账户的地址以及设置有所述第一时间锁的所述第一合约生成第一交易地址,将所述第一交易地址发送给所述交易方,交易方可以通过第一交易地址进行查询,从而获知所述哈希值、所述第一虚拟账户的地址以及设置有所述第一时间锁的所述第一合约。
交易方获知哈希值后可以用于部署第二合约,获知设置第一时间锁的第一合约后可以知晓执行第一合约的有效时间。
S102:所述交易方在第二Fabric链上创建用于存放第二资产的第二虚拟账户,根据所述哈希值在所述第二虚拟账户中部署第二合约,并将所述第二合约发送给所述发起方。
交易方在接收到第一交易地址后,查询到发起方已经部署了第一合约,进而交易方也在第二Fabric链上创建用于存放第二资产的第二虚拟账户,并用查询到的哈希值部署第二合约,第二合约的本质与第一合约的本质一致,第二合约被执行的条件包括:发起方提供的原像随机数的哈希值与部署第二合约时的哈希值一致;即第二合约内也设置有哈希锁,哈希锁将第二资产锁定在第二虚拟账户内,只有提供的原像随机数的哈希值时,解锁哈希锁,进而可以取出第二资产。
在一种可行的实施方式中,在部署第二合约后,还可以在所述第二合约上设置第二时间锁,所述第二时间锁包含允许执行所述第二合约的时间。
示例地,所述第二合约在所述第二预设时间内未被执行时,所述第二时间锁生效,所述第二时间生效后执行以下步骤:
禁止执行所述第二合约的取出功能,以阻止所述发起方取出所述第二资产;允许执行所述第二合约的撤回功能,以允许所述交易方撤回所述第二资产。
简而言之,发起方也需要在第二预设时间内执行第二合约,若是发起方出现了交易异常而未在第二预设时间内执行第二合约,则在第二时间锁生效后,由于第二合约的取出功能被禁止,因此发起方由于超时而不能获得第二资产,同时交易方可以通过第二合约的撤回功能将第二资产撤回,从而保护交易方的资产。
同理,在设置第二时间锁后的第二预设时间内,第二合约的撤回功能是被禁止的,即交易方不能在第二预设时间内随意地撤回第二资产,避免交易方突然反悔导致发起方的权益受到影响。
通常情况下,第二预设时间比第一预设时间短,即留给发起方的有效时间比留给交易方的有效时间短,这是因为交易方需要在第一合约部署完毕后才可以部署第二合约,并且交易方需要在得知随机数后才能够进行交易,所以允许交易方执行第一合约的第一预设时间有空余,以防止因网络连接之类的影响让交易方正在部署第二合约或者还未得知随机数时,第一合约便被第一时间锁锁定。
接着,根据所述哈希值、所述第二虚拟账户的地址以及设置有所述第二时间锁的所述第二合约,生成第二交易地址,并将所述第二交易地址发送给所述发起方,便于发起方得知第二虚拟账户的地址以及允许执行第二合约的时间。
在另一种实施方式中,考虑到交易方执行第一合约或者说交易方取得第一资产在后,若是发起方正常地在第二预设时间内取出第二资产后,交易方因为网络延迟或者其他原因无法在第一预设时间内执行第一合约,则在达到第一预设时间时,由于第一时间锁生效而使得交易方不能再执行第一合约并取出第一资产,但是发起方仍然可以利用撤回功能,将第一资产撤回,则此时发起方既拿到了第二资产,也撤回了第一资产,对交易方造成了巨大的损失。
为了避免在这种特殊情况下对交易方的权益的影响,在交易方在所述第二虚拟账户上部署所述第二合约之后,所述交易方还可以通过预留的接口在所述第一合约上设置撤回锁,所述撤回锁的优先级高于第一时间锁,撤回锁用于在发起方执行所述第二合约后生效,生效的撤回锁可以锁定或者禁止第一合约的撤回功能,即在所述发起方执行所述第二合约后,所述撤回锁生效,禁止所述第一合约的撤回功能,以阻止所述发起方撤回所述第一资产。
通过设置撤回锁,只要发起方执行了第二合约,则发起方不可以再撤回第一资产,并且撤回锁生效后,即使交易方在第一预设时间内未执行第一合约,也不禁止第一合约的取出功能,即允许交易方在超时的情况下强制完成交易,从而保护交易方的权益。
S103:所述发起方根据所述原像随机数执行所述第二合约,取出所述第二资产。
发起方在接收到交易方发送的第二交易地址后,通过查询可以得知第二合约已经部署完毕,并且可以得知允许执行第二合约的时间。
发起方可以在第二预设时间内根据原像随机数执行第二合约,第二合约的内容包括在发起方提供正确的原像随机数时,解锁第二合约,并将第二资产的持有者变更为发起方,使得发起方获得交易方的第二资产。
S104:所述交易方获取所述原像随机数,根据所述原像随机数执行所述第一合约,取出所述第一资产。
当发起方执行第二合约后,可以采用发起方通知交易方关于自身已经执行了第二合约,也可以采用交易方每隔预设时间查询所述第二交易地址,若知道所述发起方已经取得第二资产后,通过接口调用所述原像随机数,并根据所述原像随机数与所述第一交易地址,执行所述第一合约,第一合约的内容包括在交易方提供正确的原像随机数时,解锁第一合约,并将第一资产的持有者变更为交易方,使得交易方获得发起方的第一资产,从而完成整个交易过程。
假设第一合约上设置有第一时间锁与撤回锁,第二合约上设置有第二时间锁,举例说明多种不同的交易执行过程:
参照图2,示出了本申请实施例提供的发起方取出第二资产的过程的流程图,发起方在执行第二合约的取出功能时,判断是否超时,即是否超出第二时间锁规定的第二预设时间,若超时则取出失败;若未超时,则判断发起方提供的原像随机数是否正确,若不正确则取出失败,若正确则取出成功。
参照图3,示出了本申请实施例提供的发起方撤回第一资产的过程的流程图,发起方想执行第一合约的撤回功能时,判断第二合约是否被执行,若是已执行则撤回失败;若是未执行,继续判断是否超出了第一时间锁规定的第一预设时间,若超时则撤回成功;若未超时则撤回失败。
参照图4,示出了本申请实施例提供的交易方取出第一资产的过程的流程图,交易方在执行第一合约的取出功能时,判断是否超时,即是否超出第一时间锁规定的第一预设时间,若未超时,判断交易方提供的原像随机数是否正确,正确则取出成功,若不正确则取出失败;若超时,则判断第二合约是否被执行,若未执行,则取出失败,若已执行,则判断交易方提供的原像随机数是否,正确则取出成功,不正确则取出失败。
参照图5,示出了本申请实施例提供的交易方撤回第二资产的过程的流程图,交易方在执行第二合约的撤回功能时,判断是否超出第二时间锁规定的第二预设时间,若超时则撤回成功,若未超时则撤回失败。
在本实施例,发起方与交易方在进行资产交易时,因为在Fabric链上发起方或交易方持有的账户不能够直接进行资产交换,因此本方法采用在第一Fabric链上创建第一虚拟账户,在第二Fabric链上创建第二虚拟账户,通过第一虚拟账户托管第一资产,第二虚拟账户托管第二资产。
在进行交易时,若发起方能够在第二预设时间内提供生成第二合约的哈希值对应的原像随机数,则可以执行第二合约,取出第二资产;若交易方能够在第一预设时间内提供生成第一合约的哈希值对应的原像随机数,或者在发起方已经获得第二资产后,随时提供生成第一合约的哈希值对应的原像随机数,则可以执行第一合约,取出第一资产,从而完成发起方与交易方之间的资产交换,解决了在第一Fabric链和第二Fabric链上难以进行资产交易的问题。
参照图6,示出了本申请实施例提供的一种面向多链服务的Fabric跨链原子交换装置,所述装置包括:
第一合约生成模块100,用于所述发起方生成原像随机数,根据所述原像随机数在第一Fabric链上创建用于存放第一资产的第一虚拟账户,根据所述原像随机数的哈希值在所述第一虚拟账户中部署第一合约,并将所述哈希值和所述第一合约发送给所述交易方;
第二合约生成模块200,用于所述交易方在第二Fabric链上创建用于存放第二资产的第二虚拟账户,根据所述哈希值在所述第二虚拟账户中部署第二合约,并将所述第二合约发送给所述发起方;
第一资产交易模块300,用于所述发起方根据所述原像随机数执行所述第二合约,取出所述第二资产;
第二资产交易模块400,用于所述交易方获取所述原像随机数,根据所述原像随机数执行所述第一合约,取出所述第一资产。
可选地,所述第一合约生成模块,包括:
第一时间锁生成单元,用于在所述第一合约上设置第一时间锁,其中,所述第一时间锁表征允许执行所述第一合约的时间;
第一交易地址生成单元,用于根据所述哈希值、所述第一虚拟账户的地址以及设置有所述第一时间锁的所述第一合约,生成第一交易地址,将所述第一交易地址发送给所述交易方;
所述装置还包括:
第一查询模块,用于所述交易方根据接收到的所述第一交易地址进行查询,得到所述哈希值、所述第一虚拟账户的地址以及设置有所述第一时间锁的所述第一合约。
可选地,所述装置还包括:
第一时间锁生效模块,用于在所述第一合约在所述第一预设时间内未被执行时,禁止执行所述第一合约的取出功能,以阻止所述交易方取出所述第一资产;允许执行所述第一合约的撤回功能,以允许所述发起方撤回所述第一资产。
可选地,所述第二合约生成模块包括:
第二合约部署单元,用于所述交易方基于查询所述第一交易地址得到的所述哈希值,在所述第二虚拟账户上部署所述第二合约;
第二时间锁生成单元,用于在所述第二合约上设置第二时间锁,其中,所述第二时间锁包含允许执行所述第二合约的时间;
第二交易地址生成单元,用于根据所述哈希值、所述第二虚拟账户的地址以及设置有所述第二时间锁的所述第二合约,生成第二交易地址,并将所述第二交易地址发送给所述发起方。
可选地,所述装置还包括:
第二时间锁生效模块,用于在所述第二合约在所述第二预设时间内未被执行时,禁止执行所述第二合约的取出功能,以阻止所述发起方取出所述第二资产;允许执行所述第二合约的撤回功能,以允许所述交易方撤回所述第二资产。
可选地,所述装置还包括:
撤回锁生成模块,用于所述交易方通过预留的接口在所述第一合约上设置优先级高于所述第一时间锁的撤回锁,其中,所述撤回锁用于在所述发起方执行所述第二合约后生效,禁止所述第一合约的撤回功能,以阻止所述发起方撤回所述第一资产。
可选地,所述第二资产交易模块包括:
第二资产交易查询单元,用于所述交易方查询所述第二交易地址,若所述发起方取得第二资产,通过接口调用所述原像随机数;
第二资产交易单元,用于根据所述原像随机数与所述第一交易地址,执行所述第一合约,取出所述第一资产。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现实施例所述的一种面向多链服务的Fabric跨链原子交换方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种面向多链服务的Fabric跨链原子交换方法,其特征在于,所述方法应用于发起方与交易方之间的资产交易,所述方法包括:
所述发起方生成原像随机数,根据所述原像随机数在第一Fabric链上创建用于存放第一资产的第一虚拟账户,根据所述原像随机数的哈希值在所述第一虚拟账户中部署第一合约,并将所述哈希值和所述第一合约发送给所述交易方;
所述交易方在第二Fabric链上创建用于存放第二资产的第二虚拟账户,根据所述哈希值在所述第二虚拟账户中部署第二合约,并将所述第二合约发送给所述发起方;
所述发起方根据所述原像随机数执行所述第二合约,取出所述第二资产;
所述交易方获取所述原像随机数,根据所述原像随机数执行所述第一合约,取出所述第一资产。
2.根据权利要求1所述的一种面向多链服务的Fabric跨链原子交换方法,其特征在于,将所述哈希值和所述第一合约发送给所述交易方,包括:
在所述第一合约上设置第一时间锁,其中,所述第一时间锁表征允许执行所述第一合约的时间;
根据所述哈希值、所述第一虚拟账户的地址以及设置有所述第一时间锁的所述第一合约,生成第一交易地址,将所述第一交易地址发送给所述交易方;
在所述交易方在第二Fabric链上创建用于存放第二资产的第二虚拟账户之前,所述方法还包括:
所述交易方根据接收到的所述第一交易地址进行查询,得到所述哈希值、所述第一虚拟账户的地址以及设置有所述第一时间锁的所述第一合约。
3.根据权利要求2所述的一种面向多链服务的Fabric跨链原子交换方法,其特征在于,所述方法还包括:
所述第一合约在所述第一预设时间内未被执行时,所述第一时间锁生效,所述第一时间生效后执行以下步骤:
禁止执行所述第一合约的取出功能,以阻止所述交易方取出所述第一资产;
允许执行所述第一合约的撤回功能,以允许所述发起方撤回所述第一资产。
4.根据权利要求2所述的一种面向多链服务的Fabric跨链原子交换方法,其特征在于,所述交易方通过所述哈希值在所述第二虚拟账户中部署第二合约,所述交易方将所述第二合约发送给所述发起方,包括:
所述交易方基于查询所述第一交易地址得到的所述哈希值,在所述第二虚拟账户上部署所述第二合约;
在所述第二合约上设置第二时间锁,其中,所述第二时间锁包含允许执行所述第二合约的时间;
根据所述哈希值、所述第二虚拟账户的地址以及设置有所述第二时间锁的所述第二合约,生成第二交易地址,并将所述第二交易地址发送给所述发起方。
5.根据权利要求4所述的一种面向多链服务的Fabric跨链原子交换方法,其特征在于,所述方法还包括:
所述第二合约在所述第二预设时间内未被执行时,所述第二时间锁生效,所述第二时间生效后执行以下步骤:
禁止执行所述第二合约的取出功能,以阻止所述发起方取出所述第二资产;
允许执行所述第二合约的撤回功能,以允许所述交易方撤回所述第二资产。
6.根据权利要求4所述的一种面向多链服务的Fabric跨链原子交换方法,其特征在于,所述第二预设时间比所述第一预设时间短。
7.根据权利要求2所述的一种面向多链服务的Fabric跨链原子交换方法,其特征在于,所述交易方在所述第二虚拟账户中部署第二合约之后,所述方法还包括:
所述交易方通过预留的接口在所述第一合约上设置优先级高于所述第一时间锁的撤回锁,其中,所述撤回锁用于在所述发起方执行所述第二合约后生效,禁止所述第一合约的撤回功能,以阻止所述发起方撤回所述第一资产。
8.根据权利要求4所述的一种面向多链服务的Fabric跨链原子交换方法,其特征在于,所述交易方获取所述原像随机数,根据所述原像随机数执行所述第一合约,取出所述第一资产包括:
所述交易方查询所述第二交易地址,若所述发起方取得第二资产,通过接口调用所述原像随机数,根据所述原像随机数与所述第一交易地址,执行所述第一合约,取出所述第一资产。
9.一种面向多链服务的Fabric跨链原子交换装置,其特征在于,所述装置包括:
第一合约生成模块,用于所述发起方生成原像随机数,根据所述原像随机数在第一Fabric链上创建用于存放第一资产的第一虚拟账户,根据所述原像随机数的哈希值在所述第一虚拟账户中部署第一合约,并将所述哈希值和所述第一合约发送给所述交易方;
第二合约生成模块,用于所述交易方在第二Fabric链上创建用于存放第二资产的第二虚拟账户,根据所述哈希值在所述第二虚拟账户中部署第二合约,并将所述第二合约发送给所述发起方;
第一资产交易模块,用于所述发起方根据所述原像随机数执行所述第二合约,取出所述第二资产;
第二资产交易模块,用于所述交易方获取所述原像随机数,根据所述原像随机数执行所述第一合约,取出所述第一资产。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的一种面向多链服务的Fabric跨链原子交换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210636582.7A CN115034900A (zh) | 2022-06-07 | 2022-06-07 | 面向多链服务的Fabric跨链原子交换方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210636582.7A CN115034900A (zh) | 2022-06-07 | 2022-06-07 | 面向多链服务的Fabric跨链原子交换方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115034900A true CN115034900A (zh) | 2022-09-09 |
Family
ID=83122204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210636582.7A Pending CN115034900A (zh) | 2022-06-07 | 2022-06-07 | 面向多链服务的Fabric跨链原子交换方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115034900A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046437A (zh) * | 2019-10-31 | 2020-04-21 | 中国科学院计算技术研究所 | 基于同构多链的区块链并行事务处理方法及系统、终端 |
CN113627906A (zh) * | 2021-08-31 | 2021-11-09 | 浙江大学 | 哈希锁定和侧链技术的跨链交易方法、系统、可存储介质 |
CN113689216A (zh) * | 2021-10-26 | 2021-11-23 | 腾讯科技(深圳)有限公司 | 跨链事务处理方法及装置、设备、存储介质、程序产品 |
CN113987526A (zh) * | 2021-09-26 | 2022-01-28 | 海南火链科技有限公司 | 基于区块链的资源兑换方法、装置、设备及可读存储介质 |
CN114240409A (zh) * | 2021-10-29 | 2022-03-25 | 上海对外经贸大学 | 基于改进哈希时间锁的跨链资产交互方法 |
-
2022
- 2022-06-07 CN CN202210636582.7A patent/CN115034900A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046437A (zh) * | 2019-10-31 | 2020-04-21 | 中国科学院计算技术研究所 | 基于同构多链的区块链并行事务处理方法及系统、终端 |
CN113627906A (zh) * | 2021-08-31 | 2021-11-09 | 浙江大学 | 哈希锁定和侧链技术的跨链交易方法、系统、可存储介质 |
CN113987526A (zh) * | 2021-09-26 | 2022-01-28 | 海南火链科技有限公司 | 基于区块链的资源兑换方法、装置、设备及可读存储介质 |
CN113689216A (zh) * | 2021-10-26 | 2021-11-23 | 腾讯科技(深圳)有限公司 | 跨链事务处理方法及装置、设备、存储介质、程序产品 |
CN114240409A (zh) * | 2021-10-29 | 2022-03-25 | 上海对外经贸大学 | 基于改进哈希时间锁的跨链资产交互方法 |
Non-Patent Citations (1)
Title |
---|
郭朝: "区块链跨链技术分析", 《物联网学报》, vol. 4, no. 2, 30 June 2020 (2020-06-30), pages 35 - 48 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI759563B (zh) | 資產管理方法及裝置、電子設備 | |
JP7319404B2 (ja) | ブロックチェーン上の迅速な分散型総意 | |
EP3688929B1 (en) | System and method for providing privacy and security protection in blockchain-based private transactions | |
CN108492180B (zh) | 资产管理方法及装置、电子设备 | |
CN110651291B (zh) | 安全链外区块链交易 | |
EP3816910B1 (en) | Blockchain-based transaction processing method and apparatus, and electronic device | |
JP2023051935A (ja) | ブロックチェーン・ネットワークに関する方法 | |
EP3816922A1 (en) | Blockchain-based transaction processing method and apparatus, and electronic device | |
TW201935375A (zh) | 資產管理方法及裝置、電子設備 | |
TW201935384A (zh) | 資產管理方法及裝置、電子設備 | |
TW201935383A (zh) | 資產管理方法及裝置、電子設備 | |
TW202016789A (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
CN111640017A (zh) | 一种应用于联盟链跨链转账的交易正确性验证方法及装置 | |
CN111383114A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN114902204A (zh) | 分布式区块链交易系统 | |
US20200204338A1 (en) | Securing public key cryptographic algorithms | |
CN112015811A (zh) | 用于区块链系统的节点管理的方法、节点和计算设备 | |
KR20200019944A (ko) | 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법 | |
CN112422341B (zh) | 区块链网络的故障检测方法及相关设备 | |
CN111402033A (zh) | 基于区块链的资产信息管理方法和装置 | |
US20200202349A1 (en) | Multiple asset transactions | |
CN111340628A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN111444530B (zh) | 基于区块链的系统数据访问权限控制方法、装置及各模块 | |
US20200202344A1 (en) | Private asset transactions | |
CN111582845A (zh) | 区块链的跨链交易方法、装置以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |