CN108734574B - 一种区块链的跨链操作方法及区块链管理系统 - Google Patents
一种区块链的跨链操作方法及区块链管理系统 Download PDFInfo
- Publication number
- CN108734574B CN108734574B CN201710725788.6A CN201710725788A CN108734574B CN 108734574 B CN108734574 B CN 108734574B CN 201710725788 A CN201710725788 A CN 201710725788A CN 108734574 B CN108734574 B CN 108734574B
- Authority
- CN
- China
- Prior art keywords
- chain
- original
- cross
- execution
- executed
- 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.)
- Active
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种区块链的跨链操作方法及区块链管理系统,包括:获取参与跨链操作的各个机构提供的各自区块链的资源锁操作、原始操作和逆操作,首先执行各个资源锁操作,对参与跨链操作的各个机构所需的资源进行锁定;然后按照跨链操作中的各个原始操作的执行顺序,依次执行各个原始操作,在执行过程中判断是否满足跨链操作失败条件,若不满足,在所有原始操作执行完毕后,执行解锁操作释放已锁定的资源;若满足,执行与已执行的原始操作相对应的逆操作,并执行解锁操作释放已锁定的资源,以“复原”已消耗的资源。基于本发明,参与跨链操作的各个机构在保持原有区块链系统的情况下就能实现跨链操作,增强了本发明的实用性。
Description
本申请要求于2017年4月19日提交中国专利局、申请号为201710257367.5、发明名称为“一种区块链的跨链操作方法及区块链管理系统”的国内申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及区块链技术领域,更具体的,涉及一种区块链的跨链操作方法及区块链管理系统。
背景技术
区块链是一种使用共识机制的分布式数据存储技术,具有去中心化,不可篡改,可以运行智能合约等特性。区块链技术的出现为数据存储提供了新的解决方案。
为了保护机构内部数据和避免数据泄漏,很多机构都运行着自己的区块链。随着区块链技术的发展,区块链上的交易趋于复杂化和多样化,某些交易可能涉及多条区块链,这种跨多条区块链的信息交互操作为跨链操作。而对于跨链操作,传统的方法是在所有参与机构间部署联盟链(或者私有链)。这样虽然可以解决多机构间的数据操作的问题,但是由于机构间的业务逻辑不同,数据格式的差异等,替换机构各自的区块链而部署新的联盟链的实施代价大。由于区块链的数据存在于系统中的每个节点中,一些对于数据隐私要求高,且对安全敏感的机构并不愿意把数据部署在联盟链上,这些机构使用的还是各自的私有链。私有链之间的孤立性使得区块链与区块链之间形成了新的信息孤岛,阻碍了不同区块链之间的协同操作,所以区块链之间的跨链协作问题成为了区块链技术发展面临的一个主要问题。
发明内容
有鉴于此,本发明提供了一种区块链的跨链操作方法及区块链管理系统,通过将参与跨链操作的各个机构提供的各自区块链的资源锁操作、原始操作和逆操作进行封装,保证了跨链操作的原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持久性(Durability),即:ACID,使得各个机构在保留原有区块链系统的情况下就能实现跨链操作。区块链管理系统可以通过所述的跨链操作对区块链进行管理和控制。
具体技术方案如下:
一种区块链的跨链操作方法,应用于区块链管理系统,所述方法包括:
获取参与跨链操作的各个机构提供的各自区块链的操作信息,所述操作信息包括:资源锁操作、原始操作,以及与所述原始操作对应的逆操作;
按照所述跨链操作的业务逻辑,确定各个所述操作信息中的多个原始操作的执行顺序;
执行各个所述资源锁操作,对参与所述跨链操作的各个机构的资源进行锁定;
按照所述跨链操作中的各个所述原始操作的执行顺序,依次执行各个所述原始操作,在各个所述原始操作的执行过程中判断是否满足跨链操作失败条件;
若满足,执行与已执行的所述原始操作相对应的逆操作,当所有的逆操作都执行完毕时,执行解锁操作释放已锁定的资源;
若不满足,当所述跨链操作中的所有原始操作都执行完毕时,执行解锁操作释放已锁定的资源。
优选的,所述资源锁操作包括资源锁定范围,所述资源锁定范围为参与所述跨链操作的机构中的交易方所拥有的所有资源,或参与所述跨链操作的机构中的交易方中只涉及所述跨链操作的资源。
可选的,所述资源锁操作包括资源锁定时效;
所述跨链操作失败条件为当前执行跨链操作的时间大于各个所述机构中任一机构的资源锁定时效。
可选的,所述跨链操作失败条件为接收到各个所述机构中任一机构的操作失败信息。
优选的,所述执行与已执行的原始操作相对应的逆操作,包括:
当所述已执行的原始操作的数量为1时,直接执行与已执行的原始操作相对应的逆操作;
当所述已执行的原始操作的数量大于1时,获取已执行的各个原始操作的执行顺序的倒序,并按照所述倒序依次执行与各个所述原始操作相对应的逆操作。
优选的,所述方法还包括:
按照所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作的执行顺序,将所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作,以及各个操作的执行状态记录在日志链中,所述执行状态包括:执行成功和执行失败。
优选的,所述日志链为一个区块链系统。
优选的,所述方法还包括:
将各个所述原始操作的执行顺序发送到每个参与跨链操作的机构;
当每个参与跨链操作的机构都确定所述执行顺序后,将各个所述原始操作的执行顺序记录在所述日志链中。
优选的,所述获取已执行的各个原始操作的执行顺序的倒序,并按照所述倒序依次执行与各个所述原始操作相对应的逆操作,包括:
从所述日志链中获取已执行的各个所述原始操作的执行顺序和执行状态;
根据已执行的各个所述原始操作的执行顺序确定已执行的各个所述原始操作的倒序;
按照已执行的各个所述原始操作的倒序,依次执行与各个所述原始操作相对应的逆操作。
优选的,所述方法还包括:
接收用户对日志链的查询请求,根据所述用户的权限和所述查询请求在所述日志链中对已执行的跨链操作进行查询,并将查询结果发送至所述用户。
一种区块链管理系统,包括:
获取单元,用于获取参与跨链操作的各个机构提供的各自区块链的操作信息,所述操作信息包括:资源锁操作、原始操作,以及与所述原始操作对应的逆操作;
确定单元,用于按照所述跨链操作的业务逻辑,确定各个所述操作信息中的多个原始操作的执行顺序;
锁定单元,用于执行各个所述资源锁操作,对参与所述跨链操作的各个机构所需的资源进行锁定;
第一执行单元,用于按照所述跨链操作中的各个所述原始操作的执行顺序,依次执行各个所述原始操作,在各个所述原始操作的执行过程中判断是否满足跨链操作失败条件;若满足,触发第二执行单元;若不满足,触发第三执行单元;
所述第二执行单元,用于执行与已执行的所述原始操作相对应的逆操作,当所有的逆操作都执行完毕时,执行解锁操作释放已锁定的资源;
所述第三执行单元,用于当所述跨链操作中的所有原始操作都执行完毕时,执行解锁操作释放已锁定的资源。
优选的,所述区块链管理系统还包括:
记录单元,用于按照所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作的执行顺序,将所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作,以及各个操作的执行状态记录在日志链中,所述执行状态包括:执行成功和执行失败。
优选的,所述区块链管理系统还包括:
查询单元,用于接收用户对日志链的查询请求,根据所述用户的权限和所述查询请求在所述日志链中对已执行的跨链操作进行查询,并将查询结果发送至所述用户。
相对于现有技术,本发明的有益效果如下:
本发明提供的区块链的跨链操作方法及区块链管理系统,参与跨链操作的机构只需提供各自区块链的资源锁操作、原始操作和逆操作,使得各个机构在保持原有区块链系统的情况下就能实现跨链操作,最小化了参与机构在实现跨链操作需要付出的代价,增强了本发明的实用性,且参与机构的现有的业务逻辑和数据结构无需变动,从而保证了参与机构数据的独立性。
本发明通过执行资源锁操作,对参与跨链操作的各个机构的资源进行锁定,有效的防止了资源竞争问题。
本发明在各个原始操作的执行过程中,若满足跨链操作失败条件,执行与已执行的所述原始操作相对应的逆操作,并按照所述资源锁定范围执行解锁操作释放已锁定的资源,以“复原”已消耗的资源,使得参与跨链操作的相关资源可以“回滚”到执行跨链操作之前的状态,从而保证了跨链操作的原子性、一致性、独立性和持久性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例一公开的一种区块链的跨链操作方法流程图;
图2为本发明实施例三公开的一种区块链管理系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参阅图1,本实施例公开了一种区块链的跨链操作方法,应用于区块链管理系统,具体包括以下步骤:
S101:获取参与跨链操作的各个机构提供的各自区块链的操作信息,所述操作信息包括:资源锁操作、原始操作,以及与所述原始操作对应的逆操作;
跨链操作是指在多个区块链之间进行的操作,跨链操作是将分散着的区块链孤岛连接起来的桥梁,常见的跨链操作是不同区块链之间的资源访问和资源转移等操作,本实施例提供的区块链的跨链操作方法适用于所有区块链,包括同构或异构区块链、私有链、联盟链和公有链等。
跨链操作可能涉及多个参与机构,每个参与机构都有各自的区块链。跨链操作可能涉及多个原始操作,在一个跨链操作中,每个参与机构都可能涉及若干个原始操作。
各个机构提供的各自区块链的操作信息包括:资源锁操作、原始操作,以及与所述原始操作对应的逆操作。其中,逆操作是相对于原始操作来说的,跨链操作可能涉及交易操作和查询操作。
以在商店购买一个商品为例。这里涉及到买家a和卖家b,商品的价格为m,商品为n。这里跟该交易相关的有两条区块链:资金链A和资产链B。那么该交易的过程在资金链上具体为:在资金链A上买家a向卖家b付钱,在资产链B上卖家b向a交货。具体的,该交易过程可以表示为下面的形式:
①A:a→b,m
②B:b→a,n
其中,“→”表示区块链上资产的转移,a→b,m表示在资金链A上买家a向卖家b转移资源m,b→a,n表示在资产链B上卖家b向买家a转移资源n。
该交易的逆操作可以表示为下面的形式:
③A:b→a,m’
④B:a→b,n’
其中,b→a,m’表示在资金链A上卖家b向买家a转移资源m,a→b,n’表示在资产链B上买家a向卖家b转移资源n。这里使用符号“’”是为了区分普通的操作b→a,m和逆操作b→a,m’的,因为逆操作只针对原始操作才有意义。
当原始操作为不改变数据的操作的时候(例如:查询操作)是没有对应的逆操作的。参与跨链操作的机构只需提供各自区块链的资源锁操作、解锁操作、原始操作,以及与所述原始操作对应的逆操作,使各个机构在保持原有区块链系统的情况下就能实现跨链操作,最小化了参与机构在实现跨链操作需要付出的代价,增强了本发明的实用性。
S102:按照所述跨链操作的业务逻辑,确定各个所述操作信息中的多个原始操作的执行顺序;
按照所述业务逻辑,可以将跨链操作分解为有顺序的多个原始操作。
S103:执行各个所述资源锁操作,对参与所述跨链操作的各个机构的资源进行锁定;
跨链操作可能涉及多种资源,在执行跨链操作时将跨链操作涉及的各种资源锁定在所述跨链操作中,保证跨链操作涉及的各种资源只在跨链操作中使用,防止资源竞争问题。
优选的,所述资源锁操作包括资源锁定范围。
所述资源锁定范围为参与所述跨链操作的机构中的交易方所拥有的所有资源,或参与所述跨链操作的机构中的交易方中只涉及所述跨链操作的资源。
为了对所述资源锁定范围做进一步说明,现举例说明如下:
参与跨链操作的机构包括A、B、C,每个参与机构中可以包括多个交易方,其中,参与机构A中在所述跨链操作中的交易方a所拥有的全部资源为1000,所述跨链操作中交易方a涉及的资源为50。根据参与机构的需要,参与机构A在提供资源锁定范围时,资源锁定范围可以为交易方a所拥有的全部资源为1000,也可以为所述跨链操作中交易方a涉及的资源为50。
若资源锁定范围为参与所述跨链操作的机构中交易方所拥有的所有资源,这种锁定资源的方式实现最为简单,但是由于交易方的资源全部被锁定,参与所述跨链操作的机构必须等待跨链操作结束,资源被释放后才能再次使用相关资源。
若资源锁定范围为参与所述跨链操作的机构中的交易方中只涉及所述跨链操作的资源,相对于上述锁定资源的方式,这种锁定资源的方式需要先构建相关资源(如上述例子中的50),再对资源进行锁定,实现较为复杂,但是参与所述跨链操作的机构能使用跨链操作涉及的资源外的其他资源进行其他操作,使资源使用更加灵活。
当然,下面资源解锁的范围是根据资源锁定范围而定的。
S104:按照所述跨链操作中的各个所述原始操作的执行顺序,依次执行各个所述原始操作,在各个所述原始操作的执行过程中判断是否满足跨链操作失败条件;若是,执行S105;若否,执行S106;
本实施例中,导致操作失败有两种条件,其中一种跨链操作失败条件为接收到各个所述机构中任一机构的操作失败信息。跨链操作涉及多个参与机构,虽然每个机构可以确定自己操作成功或失败,但是却无法知道其他机构的操作成功或失败,但是只要各个参与机构中任一机构的任一原始操作失败,跨链操作就操作失败,所以本实施例引入二阶段提交算法(double commit),以区块链管理系统为第三方充当“协调者”的角色,参与机构充当“参与者”的角色,区块链管理系统可以根据参与机构的原始操作的成功和失败信息,指导跨链操作。
可选的,S101中各个机构提供的各自区块链的资源锁操作还包括资源锁定时效,资源锁定时效是参与机构允许资源被锁定的最大时间,资源锁定时效由跨链操作的原始操作来决定,可以理解的是,当跨链操作包括的原始操作数量较多且操作复杂时,需要的资源锁定时效可能较长。因此,参与机构可以根据跨链操作的业务逻辑自行确定资源锁定时效,并将确定的资源锁定时效提供给区块链管理系统。
在操作信息包括资源锁定时效的基础上,另外一种跨链操作失败条件为当前执行跨链操作的时间大于各个所述机构中任一机构的资源锁定时效。也就是说,区块链管理系统会实时对当前执行跨链操作的时间进行检测,当前执行跨链操作的时间只要大于参与机构中任一机构提供的资源锁定时效时,跨链操作失败。
S105:执行与已执行的所述原始操作相对应的逆操作,当所有的逆操作都执行完毕时,执行解锁操作释放已锁定的资源;
需要说明的是,当所述已执行的原始操作的数量为1时,直接执行与已执行的原始操作相对应的逆操作;
当所述已执行的原始操作的数量大于1时,获取已执行的各个原始操作的倒序,并按照所述倒序依次执行与各个所述原始操作相对应的逆操作。
当所有的逆操作都执行完毕时,执行解锁操作释放已锁定的资源。
可以理解的是,在各个原始操作的执行过程中,若满足跨链操作失败条件,执行与已执行的所述原始操作相对应的逆操作,并执行解锁操作释放已锁定的资源,以“复原”已消耗的资源,使得跨链操作中所涉及的资源可以“回滚”到执行跨链操作之前的状态,从而保证了跨链操作的原子性。
S106:当所述跨链操作中的所有原始操作都执行完毕时,执行解锁操作释放已锁定的资源。
需要说明的是,在实现跨链操作时,各个参与机构现有的区块链系统还可以正常运行,参与机构在访问自己区块链执行操作时,完全独立于其他参与机构的区块链系统,只有少数被锁定的资源会受到限制,但是同时参与跨链操作的机构可以自行定义资源锁定的时效和范围,这种机制最大程度的保证了资源使用的灵活性,而其余资源并不会受到跨链操作或者其他参与机构的影响,从而保证了多个区块链系统之间业务的独立性。
本实施例提供的区块链的跨链操作方法,参与跨链操作的机构只需提供各自区块链的资源锁操作、原始操作和逆操作,使得各个机构在保持原有区块链系统的情况下就能实现跨链操作,最小化了参与机构在实现跨链操作需要付出的代价,增强了本发明的实用性,且参与机构的所有业务逻辑和数据结构都无需变动,从根本上保证了参与机构数据的独立性。
本实施例按照参与跨链操作的机构提供的资源锁操作,对参与跨链操作的各个机构的资源进行锁定,有效的防止了资源竞争问题;在各个原始操作的执行过程中,若满足跨链操作失败条件,执行与已执行的所述原始操作相对应的逆操作,然后执行解锁操作释放已锁定的资源,以“复原”已消耗的资源,使得跨链操作所涉及的资源可以“回滚”到执行跨链操作之前的状态,从而保证了跨链操作的原子性。
实施例二
在实施例一的基础上,本实施例公开的区块链的跨链操作方法还包括:
将各个所述原始操作的执行顺序发送到每个参与跨链操作的机构;
当每个参与跨链操作的机构都确定所述执行顺序后,将各个所述原始操作的执行顺序记录在所述日志链中。
依据日志链中记录的各个所述原始操作的执行顺序,依次执行各个所述原始操作。
按照所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作的执行顺序,将所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作,以及各个操作的执行状态记录在日志链中,所述执行状态包括:执行成功和执行失败。
需要说明的是,日志链是一个区块链系统,日志链中只记录跨链操作中的各个所述资源锁资源、所述原始操作和/或与所述原始操作相对应的逆操作的执行顺序,各个所述原始操作和/或与所述原始操作相对应的逆操作,以及各个操作的执行状态,而具体数据记录在参与机构的区块链上,即,日志链只记录操作和状态,而参与跨链操作的机构的区块链记录结果。所以不能从日志链中获取或改动参与机构的任何数据,从而保证了参与机构的区块链在根本上是隔离的,不会存在数据泄露的问题,保证了数据的安全性和隐私性。
基于上述的日志链记录操作,实施例一中,“获取已执行的各个原始操作的倒序,并按照所述倒序依次执行与各个所述原始操作相对应的逆操作”,包括:
从所述日志链中获取已执行的各个所述原始操作的执行顺序和执行状态;
根据已执行的各个所述原始操作的执行顺序确定已执行的各个所述原始操作的倒序;
按照已执行的各个所述原始操作的倒序,依次执行与各个所述原始操作相对应的逆操作。
还需要说明的是,基于上述日志链记录操作,本实施例公开的区块链的跨链操作方法还包括:
接收用户对日志链的查询请求,根据所述用户的权限和所述查询请求在所述日志链中对已执行的跨链操作进行查询,并将查询结果发送至所述用户。
这里的用户可以是参与机构中的人员,参与机构可以通过日志链查询跨链操作中涉及到参与机构的操作。而非直接参与跨链操作的机构或用户访问日志链的权限是由参与跨链操作的参与机构共同决定的。
为了进一步对上述实施例公开的一种区块链的跨链操作方法的技术方案及有益效果进行详细说明,具体示例如下:
以在商店购买一个商品为例。这里涉及到买家a和卖家b,商品的价格为m,商品为n。为了体现跨链操作的实现方法,现假设交易都发生在区块链上,即:该交易所涉及到的资源和用户都在区块链上进行记录。这里跟该交易相关的有两条区块链:资金链A和资产链B。那么该交易的过程在资金链上具体为:在资金链A上买家a向卖家b付钱,在资产链B上卖家b向a交货。
具体的,该交易过程可以表示为下面的形式:
①A:a→b,m
②B:b→a,n
其中,“→”表示区块链上资产的转移,上述商品的价格m和商品n都为资源。其中,①和②代表操作序号,以方便下文应用,并不是该交易的组成部分。a→b,m表示在资金链A上买家a向卖家b转移资源m,即,在资金链上买家a向卖家b付费。b→a,n表示在资产链B上卖家b向买家a转移资源n。
上述①和②两个操作分别为资金链A和资产链B提供的原始操作。资金链A和资产链B上与原始操作对应的逆操作为以下③和④:
③A:b→a,m’
④B:a→b,n’
资金链A和资产链B上与原始操作①和②对应的资源锁操作为⑤和⑥:
⑤A:a→b,mL
⑥B:b→a,nL
两条链上与锁操作对应的解锁操作为⑦和⑧:
⑦A:a→b,mUL
⑧B:b→a,nUL
由于该交易过程中既涉及到交换资金,也涉及到交换商品,该交易过程中交换资金和交换商品存在相互依赖关系,也就是我们通常所说的“一手交钱,一手交货”的过程。因此,该交易过程涉及到同时访问两条区块链的操作,即:跨链操作。
区块链管理系统在执行跨链操作时,首先按照跨链操作的业务逻辑确定跨链操作的执行顺序。以本实施例为例,买卖商品的过程在现实世界所涉及到的动作为两个:(1)买家给卖家付款,(2)卖家给买家转移物品。这两个现实世界的物理操作在区块链上对应的链上操作就是①和②。而对先付款和先交货是没有要求的,但是付款和交货是要同时完成的。这种必须同时完成的特性也被称为跨链操作中的原子性,即:跨链操作必须要保证两个操作要么执行完,要不一个也不执行。其中如果有一个原始操作执行失败就要“回滚”已经执行的操作。
在跨链操作的执行过程中,将跨链操作的执行步骤记录在区块链管理系统中的日志链上。在进行跨链操作之前,参与方要授权给区块链管理系统,使得区块链管理系统可以访问和执行参与方所涉及到的区块链,即:容许区块链管理系统通过API在链上进行相关操作。在进行跨链操作的过程中,区块链管理系统根据日志链中记录的原始操作的执行顺序,依次执行所有原始操作,同时日志链也会记录所有的操作的执行过程和执行结果,如果涉及到回滚操作,在回滚操作中涉及到的执行过程和结果也会被记录在日志链上。
跨链操作中各个原始操作的执行顺序是经过所有参与方确认的,并且经过确认后的操作步骤要记录在区块链管理系统的日志链上。在区块链技术中智能合约技术就是用来实现多个操作自动执行的,但是现有智能合约技术只能运行在一个区块链上的,不能实现跨链操作。需要说明的是,不通过智能合约技术,通过区块链管理系统,使用日志链将业务逻辑所涉及到的跨链操作中的原始操作按顺序执行也是可以实现的。
具体的跨链操作执行顺序为,首先执行锁操作⑤和⑥以锁定资源,接着执行原始操作①和②进行资源转移,在①和②都执行成功后,执行⑦和⑧进行解锁操作,跨链操作执行完毕。如果①和②在执行中有一个失败,假设②执行失败,因为①已经执行完毕,则执行①对应的逆操作③,然后执行⑦、⑧进行解锁操作,虽然跨链操作执行失败,但是通过回滚区块链上的资源“恢复”到执行跨链操作之前的状态。
若在执行逆操作的时候③由于某种原因执行失败,则区块链管理系统会发出执行错误报告给③的所属链(即:A链)以及跨链操作中涉及到的其他区块链,并同时在预先设定执行回滚操作的时间边界或者执行次数边界内,一直不断的执行③,以尽量保证资源回滚成功。在实践中,③执行失败的概率是很小的,因为要恢复的资源已经被锁定了。
本实施例采用的是先锁定跨链操作所涉及的所有资源,再执行操作的方法。在具体实施的过程中,也可以不预先锁定跨链操作所涉及的所有资源,而是在执行每个原始操作时,锁定相应原始操作所涉及的资源,在执行下一原始操作时再锁定下一原始操作所涉及的资源,以此类推,直到所有操作全部执行完毕,才执行解锁操作。如果,在锁定后操作执行失败,则按照以执行的顺序的倒叙,按步骤一步步执行逆操作以回滚资源,每步逆操作执行成功后则执行逆操作对应的解锁操作,直至所有已执行的操作对应的逆操作都执行完毕。这样资源只有在被用到时,才会被锁定的“按需分配”的方法可以更加灵活的使用和分配区块链上的资源。
区块链管理系统在跨链操作中需要所涉及到的区块链提供原始操作、逆操作,锁操作和解锁操作。这些操作可以以API(应用程序接口)的形式提供,比如现有流行的RESTful API的方式。
原始操作、逆操作、锁操作和解锁操作都涉及到区块链上的资源。一种简单的实现方法是通过UTXO方法,在锁定所需资源的时候找到符合业务需求“未花费”的资源进行标记。在该跨链操作之外的其他操作只能使用没有锁定标记的资源,而在跨链操作内所涉及到解锁和原始操作中,只能访问和操作被标记过的资源。
实施例中提到的RESTful、UTXO和智能合约都是现有技术方案,具体实现过程这里不再赘述。
实施例三
基于上述实施例公开的区块链的跨链操作方法,请参阅图2,本实施例对应公开一种区块链管理系统,包括:
获取单元101,用于获取参与跨链操作的各个机构提供的各自区块链的操作信息,所述操作信息包括:资源锁操作、原始操作,以及与所述原始操作对应的逆操作;
确定单元102,用于按照所述跨链操作的业务逻辑,确定各个所述操作信息中的多个原始操作的执行顺序;
锁定单元103,用于执行各个所述资源锁操作,对参与所述跨链操作的各个机构所需的资源进行锁定;
第一执行单元104,用于按照所述跨链操作中的各个所述原始操作的执行顺序,依次执行各个所述原始操作,在各个所述原始操作的执行过程中判断是否满足跨链操作失败条件;若满足,触发第二执行单元105;若不满足,触发第三执行单元106;
所述第二执行单元105,用于执行与已执行的所述原始操作相对应的逆操作,当所有的逆操作都执行完毕时,执行解锁操作释放已锁定的资源;
所述第三执行单元106,用于当所述跨链操作中的所有原始操作都执行完毕时,执行解锁操作释放已锁定的资源。
优选的,所述区块链管理系统还包括:
记录单元,用于按照所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作的执行顺序,将所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作,以及各个操作的执行状态记录在日志链中,所述执行状态包括:执行成功和执行失败。
查询单元,用于接收用户对日志链的查询请求,根据所述用户的权限和所述查询请求在所述日志链中对已执行的跨链操作进行查询,并将查询结果发送至所述用户。
本实施例提供的区块链管理系统,参与跨链操作的机构只需提供各自区块链的资源锁操作、原始操作和逆操作,使得各个机构在保持原有区块链系统的情况下就能实现跨链操作,最小化了参与机构在实现跨链操作需要付出的代价,增强了本发明的实用性,且参与机构的现有业务逻辑和数据结构无需变动,从而保证参与机构数据的独立性。
本实施例按照参与跨链操作的机构提供的资源锁操作,对参与跨链操作的各个机构的资源进行锁定,有效的防止了资源竞争问题;在各个原始操作的执行过程中,若满足跨链操作失败条件,执行与已执行的所述原始操作相对应的逆操作,然后执行解锁操作释放已锁定的资源,以“复原”已消耗的资源,使得跨链操作中所涉及的资源可以“回滚”到执行跨链操作之前的状态,从而保证了跨链操作的原子性。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种区块链的跨链操作方法,其特征在于,应用于区块链管理系统,所述方法包括:
获取参与跨链操作的各个机构提供的各自区块链的操作信息,所述操作信息包括:资源锁操作、原始操作,以及与所述原始操作对应的逆操作;
按照所述跨链操作的业务逻辑,确定各个所述操作信息中的多个原始操作的执行顺序;
执行各个所述资源锁操作,对参与所述跨链操作的各个机构所需的资源进行锁定;
按照所述跨链操作中的各个所述原始操作的执行顺序,依次执行各个所述原始操作,在各个所述原始操作的执行过程中判断是否满足跨链操作失败条件;
若满足,执行与已执行的所述原始操作相对应的逆操作,当所有的逆操作都执行完毕时,执行解锁操作释放已锁定的资源;
若不满足,当所述跨链操作中的所有原始操作都执行完毕时,执行解锁操作释放已锁定的资源。
2.根据权利要求1所述的方法,其特征在于,所述资源锁操作包括资源锁定范围,所述资源锁定范围为参与所述跨链操作的机构中的交易方所拥有的所有资源,或参与所述跨链操作的机构中的交易方中只涉及所述跨链操作的资源。
3.根据权利要求1所述的方法,其特征在于,所述资源锁操作包括资源锁定时效;
所述跨链操作失败条件为当前执行跨链操作的时间大于各个所述机构中任一机构的资源锁定时效。
4.根据权利要求1所述的方法,其特征在于,所述跨链操作失败条件为接收到各个所述机构中任一机构的操作失败信息。
5.根据权利要求1所述的方法,其特征在于,所述执行与已执行的原始操作相对应的逆操作,包括:
当所述已执行的原始操作的数量为1时,直接执行与已执行的原始操作相对应的逆操作;
当所述已执行的原始操作的数量大于1时,获取已执行的各个原始操作的执行顺序的倒序,并按照所述倒序依次执行与各个所述原始操作相对应的逆操作。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作的执行顺序,将所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作,以及各个操作的执行状态记录在日志链中,所述执行状态包括:执行成功和执行失败。
7.根据权利要求6所述的方法,其特征在于,所述日志链为一个区块链系统。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将各个所述原始操作的执行顺序发送到每个参与跨链操作的机构;
当每个参与跨链操作的机构都确定所述执行顺序后,将各个所述原始操作的执行顺序记录在所述日志链中。
9.根据权利要求5或6所述的方法,其特征在于,获取已执行的各个原始操作的执行顺序的倒序,并按照所述倒序依次执行与各个所述原始操作相对应的逆操作,包括:
从日志链中获取已执行的各个所述原始操作的执行顺序和执行状态;
根据已执行的各个所述原始操作的执行顺序确定已执行的各个所述原始操作的倒序;
按照已执行的各个所述原始操作的倒序,依次执行与各个所述原始操作相对应的逆操作。
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收用户对日志链的查询请求,根据所述用户的权限和所述查询请求在所述日志链中对已执行的跨链操作进行查询,并将查询结果发送至所述用户。
11.一种区块链管理系统,其特征在于,包括:
获取单元,用于获取参与跨链操作的各个机构提供的各自区块链的操作信息,所述操作信息包括:资源锁操作、原始操作,以及与所述原始操作对应的逆操作;
确定单元,用于按照所述跨链操作的业务逻辑,确定各个所述操作信息中的多个原始操作的执行顺序;
锁定单元,用于执行各个所述资源锁操作,对参与所述跨链操作的各个机构所需的资源进行锁定;
第一执行单元,用于按照所述跨链操作中的各个所述原始操作的执行顺序,依次执行各个所述原始操作,在各个所述原始操作的执行过程中判断是否满足跨链操作失败条件;若满足,触发第二执行单元;若不满足,触发第三执行单元;
所述第二执行单元,用于执行与已执行的所述原始操作相对应的逆操作,当所有的逆操作都执行完毕时,执行解锁操作释放已锁定的资源;
所述第三执行单元,用于当所述跨链操作中的所有原始操作都执行完毕时,执行解锁操作释放已锁定的资源。
12.根据权利要求11所述的区块链管理系统,其特征在于,所述区块链管理系统还包括:
记录单元,用于按照所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作的执行顺序,将所述跨链操作的各个所述资源锁操作、所述原始操作和/或与所述原始操作相对应的逆操作,以及各个操作的执行状态记录在日志链中,所述执行状态包括:执行成功和执行失败。
13.根据权利要求12所述的区块链管理系统,其特征在于,所述区块链管理系统还包括:
查询单元,用于接收用户对日志链的查询请求,根据所述用户的权限和所述查询请求在所述日志链中对已执行的跨链操作进行查询,并将查询结果发送至所述用户。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017102573675 | 2017-04-19 | ||
CN201710257367.5A CN107085810A (zh) | 2017-04-19 | 2017-04-19 | 一种区块链的跨链操作方法及区块链管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108734574A CN108734574A (zh) | 2018-11-02 |
CN108734574B true CN108734574B (zh) | 2021-07-23 |
Family
ID=59611689
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710257367.5A Pending CN107085810A (zh) | 2017-04-19 | 2017-04-19 | 一种区块链的跨链操作方法及区块链管理系统 |
CN201710725788.6A Active CN108734574B (zh) | 2017-04-19 | 2017-08-22 | 一种区块链的跨链操作方法及区块链管理系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710257367.5A Pending CN107085810A (zh) | 2017-04-19 | 2017-04-19 | 一种区块链的跨链操作方法及区块链管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN107085810A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI816329B (zh) * | 2021-08-27 | 2023-09-21 | 大陸商中國銀聯股份有限公司 | 一種交易處理方法、裝置、設備及存儲介質 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426949B (zh) * | 2017-08-29 | 2021-02-09 | 华为技术有限公司 | 一种跨链交易方法及装置 |
CN107733855B (zh) * | 2017-08-31 | 2019-11-05 | 中国科学院信息工程研究所 | 一种可同时支持公有链、联盟链及私有链的区块链系统及应用方法 |
CN107888562B (zh) * | 2017-10-13 | 2019-12-27 | 布比(北京)网络技术有限公司 | 一种平行链接入互联链的数据验证和收发方法、节点及系统 |
CN107707410B (zh) * | 2017-10-26 | 2021-04-27 | 上海点融信息科技有限责任公司 | 配置系统审计服务的方法、信息处理装置及可读存储介质 |
US20200356991A1 (en) * | 2017-11-10 | 2020-11-12 | Digital Asset (Switzerland) GmbH | Method And Apparatus For Execution Of Atomic Transactions |
CN112767158A (zh) | 2018-02-27 | 2021-05-07 | 创新先进技术有限公司 | 基于区块链的交易执行方法及装置、电子设备 |
CN108288159A (zh) * | 2018-03-07 | 2018-07-17 | 物数(上海)信息科技有限公司 | 基于多区块链的跨链交易方法、系统、设备及存储介质 |
CN108712257B (zh) * | 2018-04-03 | 2020-04-17 | 阿里巴巴集团控股有限公司 | 跨区块链的认证方法及装置、电子设备 |
CN108492093A (zh) * | 2018-04-09 | 2018-09-04 | 李俊山 | 一种区块链技术在政府效率提升中的应用模型 |
CN108924175A (zh) * | 2018-05-02 | 2018-11-30 | 北京链链信息技术有限公司 | 一种区块链间的通信方法和装置 |
CN108876369B (zh) * | 2018-06-05 | 2021-07-13 | 上海和数软件有限公司 | 基于区块链的数据通信方法、装置及计算机可读存储介质 |
CN108876618A (zh) * | 2018-06-15 | 2018-11-23 | 浙江华信区块链科技服务有限公司 | 一种交换区块链系统及相应的通用区块链互操作方法和网络 |
CN110766401A (zh) * | 2018-07-27 | 2020-02-07 | 翟红鹰 | 数字资产交易方法、装置、计算机设备及存储介质 |
CN109240826B (zh) * | 2018-08-15 | 2020-10-23 | 泰链(厦门)科技有限公司 | 多区块链网络中节点共用计算设备时的计算资源分配方法 |
CN109345251A (zh) * | 2018-08-24 | 2019-02-15 | 深圳壹账通智能科技有限公司 | 可协商的区块链交易方法、装置、设备及存储介质 |
WO2020042934A1 (zh) * | 2018-08-28 | 2020-03-05 | 白杰 | 抗抵赖的跨链交易方法及区块链系统 |
WO2020042930A1 (zh) * | 2018-08-28 | 2020-03-05 | 白杰 | 基于平行链的交易方法及区块链系统 |
CN111091382A (zh) * | 2018-10-24 | 2020-05-01 | 成都高新信息技术研究院 | 一种区块链资产去中心化跨链交易方法与系统 |
CN109523380A (zh) * | 2018-10-29 | 2019-03-26 | 中链科技有限公司 | 跨链交易方法及装置 |
CN110597925B (zh) * | 2019-08-15 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 一种基于区块链的跨链数据处理方法及装置 |
CN110473105B (zh) * | 2019-08-20 | 2024-01-16 | 深圳市迅雷网络技术有限公司 | 一种区块链交易结算方法、系统及相关设备 |
CN110706104B (zh) * | 2019-09-12 | 2022-07-15 | 杭州秘猿科技有限公司 | 专有链构建方法和系统 |
CN110808838B (zh) * | 2019-10-24 | 2020-09-22 | 华东师范大学 | 一种面向联盟链的分片方法 |
CN110929293B (zh) * | 2019-12-11 | 2022-11-15 | 佛山科学技术学院 | 一种基于区块链的美容数据存储系统 |
CN111046109B (zh) * | 2019-12-27 | 2023-09-15 | 深圳市迅雷网络技术有限公司 | 一种跨链任务处理方法、装置、设备及可读存储介质 |
CN111294339B (zh) * | 2020-01-16 | 2021-10-15 | 北京航空航天大学 | 基于Fabric架构的同构联盟链跨链方法及装置 |
CN111339114B (zh) * | 2020-02-28 | 2023-05-09 | 百度在线网络技术(北京)有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN111597077B (zh) * | 2020-05-13 | 2022-04-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备以及存储介质 |
CN112488836B (zh) * | 2020-11-30 | 2023-06-02 | 成都质数斯达克科技有限公司 | 交易发送方法、装置、电子设备及可读存储介质 |
CN112487098A (zh) * | 2020-12-10 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种区块链中跨链的原子变量实现方法及装置、电子设备 |
CN112261160B (zh) * | 2020-12-21 | 2021-04-06 | 支付宝(杭州)信息技术有限公司 | 包含分片的区块链系统中退出跨片事务的方法及系统 |
WO2022227069A1 (en) * | 2021-04-30 | 2022-11-03 | Nokia Technologies Oy | Method and apparatus for cloud federation authorization |
CN113259463B (zh) * | 2021-06-02 | 2021-11-02 | 支付宝(杭州)信息技术有限公司 | 跨链交互方法和区块链系统 |
CN115440332B (zh) * | 2022-11-07 | 2023-02-10 | 南京邮电大学 | 基于公有链和联盟链的临床试验数据存储及共享方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928828A (zh) * | 2005-09-09 | 2007-03-14 | 国际商业机器公司 | 用于执行恢复的方法和系统 |
CN101620703A (zh) * | 2008-07-04 | 2010-01-06 | 阿里巴巴集团控股有限公司 | 一种缓冲记账方法及装置 |
TW201030659A (en) * | 2009-02-10 | 2010-08-16 | Alibaba Group Holding Ltd | Concurrent data processing method, device and electronic bookkeeping system |
CN106447309A (zh) * | 2016-11-13 | 2017-02-22 | 杭州复杂美科技有限公司 | 源链侧链跨链交易 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1531383A3 (en) * | 1999-07-30 | 2005-07-27 | Intertrust Technologies Corp. | Methods and systems for transaction record delivery using thresholds and multi-stage protocol |
-
2017
- 2017-04-19 CN CN201710257367.5A patent/CN107085810A/zh active Pending
- 2017-08-22 CN CN201710725788.6A patent/CN108734574B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928828A (zh) * | 2005-09-09 | 2007-03-14 | 国际商业机器公司 | 用于执行恢复的方法和系统 |
CN101620703A (zh) * | 2008-07-04 | 2010-01-06 | 阿里巴巴集团控股有限公司 | 一种缓冲记账方法及装置 |
TW201030659A (en) * | 2009-02-10 | 2010-08-16 | Alibaba Group Holding Ltd | Concurrent data processing method, device and electronic bookkeeping system |
CN106447309A (zh) * | 2016-11-13 | 2017-02-22 | 杭州复杂美科技有限公司 | 源链侧链跨链交易 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI816329B (zh) * | 2021-08-27 | 2023-09-21 | 大陸商中國銀聯股份有限公司 | 一種交易處理方法、裝置、設備及存儲介質 |
Also Published As
Publication number | Publication date |
---|---|
CN107085810A (zh) | 2017-08-22 |
CN108734574A (zh) | 2018-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108734574B (zh) | 一种区块链的跨链操作方法及区块链管理系统 | |
JP7139499B6 (ja) | ブロックチェーン上のセキュアなピアツーピア通信の方法 | |
CN112837048B (zh) | 跨区块链的数据处理方法、装置、设备及计算机存储介质 | |
WO2021042817A1 (zh) | 一种基于区块链的违约资产处理方法、装置及电子设备 | |
US20210158454A1 (en) | Method and device for data processing based on blockchain | |
CN109886677B (zh) | 一种基于区块链的商品购置方法和装置 | |
JP2022547130A (ja) | ブロックチェーンベースの記録プロセスを提供するシステムおよび方法 | |
US20220230175A1 (en) | Method to be executed by computer system, and computer system | |
CN108694654A (zh) | 一种基于区块链的房屋租赁系统及租赁方法 | |
EP4102768A1 (en) | Blockchain-based transaction methods | |
CN111177797B (zh) | 基于区块链的数据处理方法及装置、电子设备 | |
TW201933204A (zh) | 產生智能合約的方法及裝置 | |
CN109314643A (zh) | 事务处理装置、事务处理方法以及用于其的程序 | |
CN111383117A (zh) | 基于区块链的资产管理方法、装置及电子设备 | |
WO2020247002A1 (en) | Auto-pilot transactions using smart contracts | |
WO2021022369A1 (en) | Distributed blockchain transaction system | |
CN110599182A (zh) | 一种资源管理方法及装置 | |
WO2020001369A1 (zh) | 一种交易组、交易组构造方法、存储介质、设备和系统 | |
WO2019227344A1 (zh) | 一种维修设备的管理方法、系统及数据管理服务器 | |
CN108510315B (zh) | 一种资源发布方法及相关设备 | |
CN111383119A (zh) | 一种基于区块链的资产管理方法、装置及电子设备 | |
CN110717820A (zh) | 基于区块链的资产清偿方法及装置、电子设备 | |
CN111640002A (zh) | 一种基于区块链的货押贷款方法和装置 | |
WO2018192931A1 (en) | Delivery versus payment mechanism | |
CN110659993A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |