CN112579700A - 一种跨链事务处理方法及装置 - Google Patents

一种跨链事务处理方法及装置 Download PDF

Info

Publication number
CN112579700A
CN112579700A CN202011471245.4A CN202011471245A CN112579700A CN 112579700 A CN112579700 A CN 112579700A CN 202011471245 A CN202011471245 A CN 202011471245A CN 112579700 A CN112579700 A CN 112579700A
Authority
CN
China
Prior art keywords
transaction
preset
triggering
transaction triggering
participant
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.)
Granted
Application number
CN202011471245.4A
Other languages
English (en)
Other versions
CN112579700B (zh
Inventor
石翔
李辉忠
张开翔
范瑞彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202011471245.4A priority Critical patent/CN112579700B/zh
Publication of CN112579700A publication Critical patent/CN112579700A/zh
Application granted granted Critical
Publication of CN112579700B publication Critical patent/CN112579700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种跨链事务处理方法及装置,其中方法适用于N+1个参与方在M+1个区块链上的跨链事务,N,M均为正整数,N大于或等于M,方法具体为:若第一参与方确定跨链转账事务在所述M+1个区块链上待执行的事务触发交易的事务触发条件均为预设事务触发条件,则针对所述M+1个区块链中每个区块链,根据第一事务触发交易的第一事务触发参数调用所述区块链上的目标智能合约;所述目标智能合约成功调用后,执行所述预设事务触发条件在所述区块链上对应的事务触发交易。上述方法应用于金融科技(Fintech)时,只要一个区块链上能成功,其它区块链上的所述预设事务触发条件都会满足,不存在可信性问题。

Description

一种跨链事务处理方法及装置
技术领域
本发明涉及金融科技(Fintech)领域中的区块链(blockchain)领域,尤其涉及一种跨链事务处理方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。目前金融科技(Fintech)常和区块链(blockchain)结合。跨链事务是区块链的一种常见场景,即需要在多条区块链上的操作,并且要保证能够同时成功。例如,跨链资产互换场景。X、Y两个用户分别在A、B两条区块链上有账户。X用A链上的100个A币换取Y在B链上的80个B币,则需要分别在A、B两条链上进行如下操作,在A链上:X给Y 100个A币;在B链上:Y给X 80个B币。若上述A、B链上的两个操作只有一个成功,则另一方会遭受损失。
为了保证上述A、B链上的两个操作能够同时成功,需要采用跨链事务机制。目前的跨链事务机制为2PC机制,2PC机制中,涉及跨链事务的多条区块链受中间方的控制。中间方分别向多条链发送交易来进行跨链事务。在中间方的主导下,多条链分别执行相关的预操作。中间方再确认,所有区块链的预操作执行成功后,向区块链发送确认交易。区块链接收确认交易,将预操作的结果写入真实数据中,实现事务一致性。然而,如果中间方和某个参与方串通作恶,可能会导致另一方遭受损失。如在A链上,X实际上没有给Y 100个A币,但中间方确也向区块链B发送确认交易,要求Y给X 80个B币,会让Y蒙受损失。因此,目前跨链事务机制依赖于中间方,存在可信性问题,这个问题亟待解决。
发明内容
本发明提供一种跨链事务处理方法及装置,解决了现有技术中目前跨链事务机制依赖于中间方,存在可信性风险的问题。
第一方面,本发明提供一种跨链事务处理方法,适用于N+1个参与方在M+1个区块链上的跨链事务,N,M均为正整数,N大于或等于M,所述方法包括:
第一参与方确定跨链转账事务在所述M+1个区块链上待执行的事务触发交易的事务触发条件是否均为预设事务触发条件;
所述第一参与方若确定均为所述预设事务触发条件,则针对所述M+1个区块链中每个区块链,根据第一事务触发交易的第一事务触发参数调用所述区块链上的目标智能合约;
所述第一参与方为所述N+1个参与方中任一参与方;所述第一事务触发交易为所述跨链转账事务中在第一区块链上需执行的事务触发交易;所述跨链转账事务在所述M+1个区块链上均有需执行的事务触发交易;所述预设事务触发条件及在所述M+1个区块链上的事务触发交易是所述第一参与方和N个第二参与方预先协商的;所述预设事务触发条件基于所述N+1个参与方的预设事务触发参数得到;
所述目标智能合约在接收到所述N+1个参与方的预设事务触发参数后调用成功,所述目标智能合约成功调用后,执行所述预设事务触发条件在所述区块链上对应的事务触发交易。
上述方法中,第一参与方确定N个第二参与方在所述M+1个区块链上的事务触发条件均为预设事务触发条件后,说明在所述M+1个区块链上的事务触发交易的事务触发条件确实都相同,都是预设事务触发条件,那么在此基础上,所述第一参与方针对所述M+1个区块链中每个区块链,根据第一事务触发交易的第一事务触发参数调用所述区块链上的目标智能合约,而所述目标智能合约接收到所述N+1个参与方的协商事务触发参数后才调用成功,所述N+1个参与方如实向区块链公开了预设事务触发参数,所述目标智能合约便会成功调用后,进而执行所述预设事务触发条件在所述区块链上对应的事务触发交易,那么只要一个区块链上能成功,意味着所有参与者都如实公开了预设事务触发参数,其它区块链上的所述预设事务触发条件都会满足,所以M+1个区块链上的事务触发交易都能如期执行,所以上述方法已不存在可信性问题,不会使某一参与方蒙受损失。
可选的,所述第一参与方按照以下方式和N个第二参与方协商所述预设事务触发条件:
所述第一参与方生成第一事务触发参数;所述第一参与方根据所述第一事务触发参数,按照预设加密算法对所述第一事务触发参数加密,获得第一密文;
所述第一参与方获取来自所述N个第二参与方的N个第二密文;其中,任一第二参与方的第二密文是根据所述第二参与方的第二事务触发参数,按照预设加密算法加密获得的;
所述第一参与方根据所述第一密文和所述N个第二密文,确定所述第一事务触发条件;
所述第一参与方获取来自所述N个第二参与方的N个第二事务触发条件,若确定所述N个第二事务触发条件和所述第一事务触发条件均一致,则确定所述第一参与方和所述N个第二参与方成功协商所述预设事务触发条件。
上述方法中,所述第一参与方根据所述第一密文和所述N个第二密文,确定所述第一事务触发条件,从而若所述N个第二事务触发条件也根据所述第一密文和所述N个第二密文确定,则所述N个第二事务触发条件和所述第一事务触发条件均一致,所以在每个参与方均按照所述第一密文和所述N个第二密文生成时,得到相同的事务触发条件,从而所述预设事务触发条件的协商需要每个参与方参与,且都提供正确的密文,所以所述预设事务触发条件更加可靠。
可选的,所述预设加密算法为第一加密算法;所述预设事务触发条件具体为:
针对所述N+1个参与方的每个参与方,所述参与方的事务触发参数均满足:所述事务触发参数按照所述第一加密算法得到的加密值,等于所述参与方在所述预设事务触发条件协商期间声明的预设值。
上述方法中,所述预设事务触发条件中要求所述事务触发参数按照所述第一加密算法得到的加密值,等于所述参与方在所述预设事务触发条件协商期间声明的预设值,从而分别对照每个参与方的加密值和预设值,间接检验每个参与方是否照实发送了在所述预设事务触发条件协商期间正确使用的事务触发参数,从而提供了一种分散判断的方法。
可选的,所述预设加密算法为第二加密算法;所述预设事务触发条件具体为:
第一运算结果等于第二运算结果;
所述第一运算结果为:N+1个运算结果按照所述第二加密算法下预设运算的转换运算得到的运算结果;所述N+1个运算结果为所述N+1个参与方调用所述目标智能合约时提交的事务触发参数按照所述第二加密算法得到的运算结果;
所述第二运算结果为:预设运算结果按照所述第二加密算法加密得到的运算结果;所述预设运算结果为所述N+1个参与方调用所述目标智能合约时提交的事务触发参数按照所述预设运算得到的运算结果。
上述方式下,在协商期间,可以通过所述N+1个运算结果以及所述第二加密算法下预设运算的转换运算,得到所述第一运算结果,而在调用所述目标智能合约时,又得到提交的事务触发参数按照所述预设运算得到的运算结果,并按照所述第二加密算法加密得到所述第二运算结果,所以间接检验每个参与方是否照实发送了在所述预设事务触发条件协商期间正确使用的事务触发参数,从而提供了一种整体判断的方法。
可选的,若所述第一参与方确定所述第一区块链上未完全获取到所述N+1个参与方的事务触发参数,且在第二区块链上已执行第二事务触发交易,则所述第一参与方从所述第二区块链上获取所述第一区块链上缺少的事务触发参数;所述第一参与方根据所述缺少的事务触发参数和所述第一区块链上已有的事务触发参数,调用所述第一区块链的目标智能合约。
上述方式下,即便因为网络等传输问题没收到所述缺少的事务触发参数,也能通过第二区块链获得所述缺少的事务触发参数,从而调用所述第一区块链的目标智能合约,从而提高了跨链事务处理的容错性。
可选的,若所述第一参与方确定所述跨链转账事务在所述M+1个区块链上任一事务触发条件不为所述预设事务触发条件,所述第一参与方和所述N个第二参与方重新协商所述预设事务触发条件。
上述方式下,若所述第一参与方确定所述跨链转账事务在所述M+1个区块链上任一事务触发条件不为所述预设事务触发条件,说明在所述M+1个区块链上的事务触发条件不统一,所以重新协商所述预设事务触发条件,以免一方蒙受损失。
可选的,所述目标智能合约每获取一个参与方提交的事务触发参数,判断一次所述预设事务触发条件是否满足。
上述方法下,所述目标智能合约每获取一个参与方提交的事务触发参数,判断一次所述预设事务触发条件是否满足,所以整个过程可以对区块链保密参与方的个数,区块链在不需要知道参与方多少的情况下即可完成所述预设事务触发条件的验证。
第二方面,本发明提供一种跨链事务处理装置,包括:适用于N+1个参与方在M+1个区块链上的跨链事务,N,M均为正整数,N大于或等于M,所述装置包括:
确定模块,用于确定跨链转账事务在所述M+1个区块链上待执行的事务触发交易的事务触发条件是否均为预设事务触发条件;
若所述确定模块确定均为所述预设事务触发条件,则处理模块用于:
针对所述M+1个区块链中每个区块链,根据第一事务触发交易的第一事务触发参数调用所述区块链上的目标智能合约;
第一参与方为所述N+1个参与方中任一参与方;所述第一事务触发交易为所述跨链转账事务中在第一区块链上需执行的事务触发交易;所述跨链转账事务在所述M+1个区块链上均有需执行的事务触发交易;所述预设事务触发条件及在所述M+1个区块链上的事务触发交易是所述第一参与方和N个第二参与方预先协商的;所述预设事务触发条件基于所述N+1个参与方的预设事务触发参数得到;
所述目标智能合约在接收到所述N+1个参与方的预设事务触发参数后调用成功,所述目标智能合约成功调用后,执行所述预设事务触发条件在所述区块链上对应的事务触发交易。
可选的,所述确定模块还用于:
生成第一事务触发参数;根据所述第一事务触发参数,按照预设加密算法对所述第一事务触发参数加密,获得第一密文;
获取来自所述N个第二参与方的N个第二密文;其中,任一第二参与方的第二密文是根据所述第二参与方的第二事务触发参数,按照预设加密算法加密获得的;
根据所述第一密文和所述N个第二密文,确定所述第一事务触发条件;
获取来自所述N个第二参与方的N个第二事务触发条件,若确定所述N个第二事务触发条件和所述第一事务触发条件均一致,则确定所述第一参与方和所述N个第二参与方成功协商所述预设事务触发条件。
可选的,所述预设加密算法为第一加密算法;所述预设事务触发条件具体为:针对所述N+1个参与方的每个参与方,所述参与方的事务触发参数均满足:所述事务触发参数按照所述第一加密算法得到的加密值,等于所述参与方在所述预设事务触发条件协商期间声明的预设值。
可选的,所述预设加密算法为第二加密算法;所述预设事务触发条件具体为:第一运算结果等于第二运算结果;所述第一运算结果为:N+1个运算结果按照所述第二加密算法下预设运算的转换运算得到的运算结果;所述N+1个运算结果为所述N+1个参与方在所述预设事务触发条件协商期间声明的密文;所述第二运算结果为:预设运算结果按照所述第二加密算法加密得到的运算结果;所述预设运算结果为所述N+1个参与方调用所述目标智能合约时提交的事务触发参数按照所述预设运算得到的运算结果。
可选的,所述确定模块还用于:若确定所述第一区块链上未完全获取到所述N+1个参与方的事务触发参数,且在第二区块链上已执行第二事务触发交易,则从所述第二区块链上获取所述第一区块链上缺少的事务触发参数;所述处理模块还用于:根据所述缺少的事务触发参数和所述第一区块链上已有的事务触发参数,调用所述第一区块链的目标智能合约。
可选的,所述确定模块还用于:若确定所述跨链转账事务在所述M+1个区块链上任一事务触发条件不为所述预设事务触发条件,所述第一参与方和所述N个第二参与方重新协商所述预设事务触发条件。
可选的,所述目标智能合约每获取一个参与方提交的事务触发参数,判断一次所述预设事务触发条件是否满足。
上述第二方面及第二方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种跨链事务处理方法对应的流程示意图;
图2为本发明实施例提供的一种跨链事务处理方法对应的具体流程示意图;
图3为本发明实施例提供的一种跨链事务处理装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,常和区块链(blockchain)结合。跨链事务是区块链的一种常见场景,即需要在多条区块链上的操作,并且要保证能够同时成功。目前的跨链事务机制为2PC机制,2PC机制中,涉及跨链事务的多条区块链受中间方的控制。然而,如果中间方和某个参与方串通作恶,可能会导致另一方遭受损失。目前跨链事务机制依赖于中间方,存在可信性问题。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。为此,如图1所示,本申请提供一种跨链事务处理方法。
图1示出的方法适用于N+1个参与方在M+1个区块链上的跨链事务,N,M均为正整数,N大于或等于M,所述方法具体为:
步骤101:第一参与方确定跨链转账事务在所述M+1个区块链上待执行的事务触发交易的事务触发条件是否均为预设事务触发条件。
步骤102:所述第一参与方若确定均为所述预设事务触发条件,则针对所述M+1个区块链中每个区块链,根据第一事务触发交易的第一事务触发参数调用所述区块链上的目标智能合约。
所述第一参与方为所述N+1个参与方中任一参与方;所述第一事务触发交易为所述跨链转账事务中在第一区块链上需执行的事务触发交易;所述跨链转账事务在所述M+1个区块链上均有需执行的事务触发交易;所述预设事务触发条件及在所述M+1个区块链上的事务触发交易是所述第一参与方和N个第二参与方预先协商的;所述预设事务触发条件基于所述N+1个参与方的预设事务触发参数得到。
所述目标智能合约在接收到所述N+1个参与方的预设事务触发参数后调用成功,所述目标智能合约成功调用后,执行所述预设事务触发条件在所述区块链上对应的事务触发交易。
需要说明的是,步骤101~步骤102的方法中,步骤101~步骤102的方法的核心是所述预设事务触发条件。要执行所述跨链转账事务时,参与所述跨链转账事务的多个参与方,所述第一参与方和N个第二参与方预先协商,所述预设事务触发条件。
将所述预设事务触发条件在所述M+1个区块链上均上链,同时设置所述M+1个区块链上的事务触发交易,即所述预设事务触发条件满足后触发的事务操作。在所述N+1个参与方相互确认彼此的预设事务触发条件、事务触发交易符合自身预期后,发送事务触发交易。当所有的参与方都发送了事务触发交易,达到预设事务触发条件,事务操作被触发。由于所有的链上预设事务触发条件相同,多条链上会同时触发跨链事务操作,实现跨链转账事务。
需要说明的是,一种可选实施方式中,所述第一参与方按照以下方式和N个第二参与方协商所述预设事务触发条件:
所述第一参与方生成第一事务触发参数;所述第一参与方根据所述第一事务触发参数,按照预设加密算法对所述第一事务触发参数加密,获得第一密文。
所述第一参与方获取来自所述N个第二参与方的N个第二密文。
其中,任一第二参与方的第二密文是根据所述第二参与方的第二事务触发参数,按照预设加密算法加密获得的。
所述第一参与方根据所述第一密文和所述N个第二密文,确定所述第一事务触发条件。
所述第一参与方获取来自所述N个第二参与方的N个第二事务触发条件,若确定所述N个第二事务触发条件和所述第一事务触发条件均一致,则确定所述第一参与方和所述N个第二参与方成功协商所述预设事务触发条件。
需要说明的是,所述第一参与方和所述N个第二参与方成功协商所述预设事务触发条件指,所述第一参与方和所述N个第二参与方均统一确定了所述预设事务触发条件,即所述N+1个参与方均确定自身的事务触发条件和其他参与方的事务触发条件相同。
上述方法中,所述第一参与方根据所述第一密文和所述N个第二密文,确定所述第一事务触发条件,从而若所述N个第二事务触发条件也根据所述第一密文和所述N个第二密文确定,则所述N个第二事务触发条件和所述第一事务触发条件均一致,所以在每个参与方均按照所述第一密文和所述N个第二密文生成时,得到相同的事务触发条件,从而所述预设事务触发条件的协商需要每个参与方参与,且都提供正确的密文,所以所述预设事务触发条件更加可靠。
预设事务触发条件具有多种实现方式,本申请中并不限定所述预设事务触发条件的具体实现方法,只要满足以下条件均可:
唯一性:每次跨链转账事务对应一个唯一的预设事务触发条件。
完整性:预设事务触发条件的触发,必须由所有参与方参与,缺少任一参与方的操作,都无法触发。
对等性:每条链上的预设事务触发条件相同,任意链上触发预设事务触发条件的操作数据,都可用来触发其它链的预设事务触发条件,一个参与方触发,相当于所有参与方都触发。
一种可选实施方式中,所述预设加密算法为第一加密算法;所述预设事务触发条件具体为:
针对所述N+1个参与方的每个参与方,所述参与方的事务触发参数均满足:所述事务触发参数按照所述第一加密算法得到的加密值,等于所述参与方在所述预设事务触发条件协商期间声明的预设值。
举例来说,第一加密算法为哈希锁加密算法,设共有三个参与方X,Y,Z。三方各自私下生成各自的哈希锁钥匙SX,SY,SZ,计算各自的哈希锁,LX=Hash(SX),LY=Hash(SY),LZ=Hash(LZ),并各自将哈希锁公开。则预设事务触发条件为:
提供事务触发参数a,b,c,使得LX=Hash(a)且LY=Hash(b)且LZ=Hash(c)。
在此方法下,针对每次跨链转账事务,X,Y,Z生成的SX,SY,SZ不同,符合唯一性。当SX,SY,SZ都被公开时,才可达到预设事务触发条件,满足完整性。预设事务触发条件可通过判断多条链上的LX,LY,LZ是否一致,保证对等性。
上述方法中,所述预设事务触发条件中要求所述事务触发参数按照所述第一加密算法得到的加密值,等于所述参与方在所述预设事务触发条件协商期间声明的预设值,从而分别对照每个参与方的加密值和预设值,间接检验每个参与方是否照实发送了在所述预设事务触发条件协商期间正确使用的事务触发参数,从而提供了一种分散判断的方法。
一种可选实施方式中,所述预设加密算法为第二加密算法;所述预设事务触发条件具体为:
第一运算结果等于第二运算结果;
所述第一运算结果为:N+1个运算结果按照所述第二加密算法下预设运算的转换运算得到的运算结果;所述N+1个运算结果为所述N+1个参与方调用所述目标智能合约时提交的事务触发参数按照所述第二加密算法得到的运算结果;
所述第二运算结果为:预设运算结果按照所述第二加密算法加密得到的运算结果;所述预设运算结果为所述N+1个参与方调用所述目标智能合约时提交的事务触发参数按照所述预设运算得到的运算结果。
举例来说,第二加密算法为同态加密方法。
设参与方X,Y,Z。三个参与方各自私下生成随机数RX,RY,RZ,并各自计算同态加密的密文CX=E(RX),CY=E(RY),CZ=E(RZ),各自将密文公开。则预设事务触发条件为:
提供事务触发参数a,b,c,使得CXYZ=E(a+b+c),其中CXYZ=CX+CY+CZ;在此方法下,每次跨链转账事务处理时,X,Y,Z生成的RX,RY,RZ是随机的,符合唯一性。当RX,RY,RZ被公开时,才可达到触发条件,满足完整性,条件可通过判断多条链上的CXYZ是否一致,保证对等性。
上述方式下,在协商期间,可以通过所述N+1个运算结果以及所述第二加密算法下预设运算的转换运算,得到所述第一运算结果,而在调用所述目标智能合约时,又得到提交的事务触发参数按照所述预设运算得到的运算结果,并按照所述第二加密算法加密得到所述第二运算结果,所以间接检验每个参与方是否照实发送了在所述预设事务触发条件协商期间正确使用的事务触发参数,从而提供了一种整体判断的方法。
一种可选实施方式中,若所述第一参与方确定所述第一区块链上未完全获取到所述N+1个参与方的事务触发参数,且在第二区块链上已执行第二事务触发交易,则所述第一参与方从所述第二区块链上获取所述第一区块链上缺少的事务触发参数;所述第一参与方根据所述缺少的事务触发参数和所述第一区块链上已有的事务触发参数,调用所述第一区块链的目标智能合约。
举例来说,共有3个参与方,X、Y和Z;第一参与方X确定第一区块链上的事务触发参数只有参与方X的事务触发参数x和参与方Y的事务触发参数y,也就是说,第一区块链并没有收到参与方Z的事务触发参数z,也可能是参与方Z没有发给第一区块链,也可能是参与方Z发送给了第一区块链,但由于网络传输问题,第一区块链并没有收到。
如果参与方X在第二区块链上找到了z,无论属于哪一种情况,参与方X都可以将z获取到,提交给第一区块链,并调用目标智能合约。
上述方式下,即便因为网络等传输问题没收到所述缺少的事务触发参数,也能通过第二区块链获得所述缺少的事务触发参数,从而调用所述第一区块链的目标智能合约,从而提高了跨链事务处理的容错性。
一种可选实施方式中,若所述第一参与方确定所述跨链转账事务在所述M+1个区块链上任一事务触发条件不为所述预设事务触发条件,所述第一参与方和所述N个第二参与方重新协商所述预设事务触发条件。
上述方式下,若所述第一参与方确定所述跨链转账事务在所述M+1个区块链上任一事务触发条件不为所述预设事务触发条件,说明在所述M+1个区块链上的事务触发条件不统一,所以重新协商所述预设事务触发条件,以免一方蒙受损失。
一种可选实施方式中,所述目标智能合约每获取一个参与方提交的事务触发参数,判断一次所述预设事务触发条件是否满足。
上述方法下,所述目标智能合约每获取一个参与方提交的事务触发参数,判断一次所述预设事务触发条件是否满足,所以整个过程可以对区块链保密参与方的个数,区块链在不需要知道参与方多少的情况下即可完成所述预设事务触发条件的验证。
下面结合图2,详细描述本申请提供的一种跨链事务处理方法。
设参与方为X,Y,Z,分别为A、B、C三条链的用户,要进行三角转账,在A、B、C的三条链上待执行的事务操作如下。三个事务操作属于一个跨链转账事务,需同时成功,在区块链上事务操作的实现形式为执行一个事务触发交易。在A、B、C的三条链上待执行的事务操作具体为:
A链:X给Y 100个A币;
B链:Y给Z 100个B币;
C链:Z给X 100个C币。
步骤(1):参与方X,Y,Z在线下协商,生成预设事务触发条件,举例来说:
X、Y、Z各自生成随机数RX,RY,RZ:
X:RX=111(私下保存);CX=E(RX)=E(111)=698D51A1,即第一密文(公开);
Y:RY=222(私下保存);CY=E(RY)=E(222)=BCBE3365,即Y的第二密文(公开);
Z:RZ=333(私下保存);CZ=E(RZ)=E(333)=310DCBBF(公开),即Z的第二密文。
X计算第一事务触发条件:
CXYZ=CX+CY+CZ=698D51A1+BCBE3365+310DCBBF=1575950C5;则第一事务触发条件为:提供a、b、c,使得E(a+b+c)=1575950C5,若其它两个第二参与方Y、Z的第二事务触发条件和所述第一事务触发条件相同,便确定所述第一事务触发条件为所述预设事务触发条件。
步骤(2):参与方各自将事务触发条件在自己的区块链上链,并设置触发后的事务操作,即:将事务触发条件和事务触发操作写入智能合约中。
举例:
链A上链内容:当满足E(a+b+c)=1575950C5时,进行事务操作:X给Y 100个A币;
链B上链内容:当满足E(a+b+c)=1575950C5时,进行事务操作:Y给Z 100个B币;
链C上链内容:当满足E(a+b+c)=1575950C5时,进行事务操作:Z给X 100个C币。
步骤(3):参与方向其它参与方所属的区块链发起查询操作,查询对方链上的数据,判断其它参与方链上的事务触发条件与自已链上的是否相同,相同,则到步骤(4),若不同,则返回步骤(1),重新协商。举例来说:
X判断:B链是否为1575950C5,C链是否为1575950C5;
Y判断:A链是否为1575950C5,C链是否为1575950C5;
Z判断:A链是否为1575950C5,B链是否为1575950C5。
步骤(4):参与方向其它区块链发起查询操作,查询其它区块链上的数据,判断其它参与方链上触发后的事务操作是否为预设事务触发条件协商期间所声明的事务操作,若符合,则到步骤(5),反之,则返回步骤(1),重新协商预设事务触发条件。
X判断:C链触发后,Z会给自己(X)100个C币;
Y判断:A链触发后,X会给自己(Y)100个A币;
Z判断:B链触发后,Y会给自己(Z)100个B币。
步骤(5):每个参与方向所有参与方的区块链发送事务触发交易,调用目标智能合约的接口,写入事务触发参数;
X向A、B、C链发送交易,事务触发参数:RX=111;
Y向A、B、C链发送交易,事务触发参数:RY=222;
Z向A、B、C链发送交易,事务触发参数:RZ=333;
步骤(6):被调用的目标智能合约,接收事务触发交易,并将交易中包含的触发参数记录下来。
步骤(7):目标智能合约判断收到的多个事务触发参数是否已经达到预设触发条件,若是,则到步骤(10);反之,到步骤(8)。
A链收到了111、222、333,开始判断是否满足预设事务触发条件,通过计算E(111+222+333)=1575950C5,若满足,则到步骤(10)触发事务操作:X给Y 100个A币。
步骤(8):参与方判断其它链上的事务触发条件是否已被触发,若已触发,到步骤(9),反之,回到步骤(6),继续等待接收触发数据。
步骤(9):参与方从相应已触发的链上取到所有的触发数据,用于触发自己的区块链。
B链只收到了111、222,开始判断是否满足预设事务触发条件,发现不满足,则由X去判断其它链是否已触发。发现A链已触发,则将A链的触发数据111、222、333取回,进入步骤(10)触发B链的事务触发交易:Y给Z 100个B币。
C链的情况与上述A链或B链相同,此处不赘述,最终执行事务操作:Z给X 100个C币。只要X、Y、Z达到一个参与方触发,则多个参与方都可触发。
步骤(10):若任一区块链的目标智能合约确定预设事务触发条件满足,则执行相应的事务触发交易,从而触发事务操作。
步骤(11):X,Y,Z三方拿到了各自的资产,流程结束。
如图3所示,本发明提供一种跨链事务处理装置,包括:适用于N+1个参与方在M+1个区块链上的跨链事务,N,M均为正整数,N大于或等于M,所述装置包括:
确定模块301,用于确定跨链转账事务在所述M+1个区块链上待执行的事务触发交易的事务触发条件是否均为预设事务触发条件;
若所述确定模块301确定均为所述预设事务触发条件,则处理模块302用于:
针对所述M+1个区块链中每个区块链,根据第一事务触发交易的第一事务触发参数调用所述区块链上的目标智能合约;
第一参与方为所述N+1个参与方中任一参与方;所述第一事务触发交易为所述跨链转账事务中在第一区块链上需执行的事务触发交易;所述跨链转账事务在所述M+1个区块链上均有需执行的事务触发交易;所述预设事务触发条件及在所述M+1个区块链上的事务触发交易是所述第一参与方和N个第二参与方预先协商的;所述预设事务触发条件基于所述N+1个参与方的预设事务触发参数得到;
所述目标智能合约在接收到所述N+1个参与方的预设事务触发参数后调用成功,所述目标智能合约成功调用后,执行所述预设事务触发条件在所述区块链上对应的事务触发交易。
可选的,所述确定模块301还用于:
生成第一事务触发参数;根据所述第一事务触发参数,按照预设加密算法对所述第一事务触发参数加密,获得第一密文;
获取来自所述N个第二参与方的N个第二密文;其中,任一第二参与方的第二密文是根据所述第二参与方的第二事务触发参数,按照预设加密算法加密获得的;
根据所述第一密文和所述N个第二密文,确定所述第一事务触发条件;
获取来自所述N个第二参与方的N个第二事务触发条件,若确定所述N个第二事务触发条件和所述第一事务触发条件均一致,则确定所述第一参与方和所述N个第二参与方成功协商所述预设事务触发条件。
可选的,所述预设加密算法为第一加密算法;所述预设事务触发条件具体为:针对所述N+1个参与方的每个参与方,所述参与方的事务触发参数均满足:所述事务触发参数按照所述第一加密算法得到的加密值,等于所述参与方在所述预设事务触发条件协商期间声明的预设值。
可选的,所述预设加密算法为第二加密算法;所述预设事务触发条件具体为:第一运算结果等于第二运算结果;所述第一运算结果为:N+1个运算结果按照所述第二加密算法下预设运算的转换运算得到的运算结果;所述N+1个运算结果为所述N+1个参与方在所述预设事务触发条件协商期间声明的密文;所述第二运算结果为:预设运算结果按照所述第二加密算法加密得到的运算结果;所述预设运算结果为所述N+1个参与方调用所述目标智能合约时提交的事务触发参数按照所述预设运算得到的运算结果。
可选的,所述确定模块301还用于:若确定所述第一区块链上未完全获取到所述N+1个参与方的事务触发参数,且在第二区块链上已执行第二事务触发交易,则从所述第二区块链上获取所述第一区块链上缺少的事务触发参数;所述处理模块302还用于:根据所述缺少的事务触发参数和所述第一区块链上已有的事务触发参数,调用所述第一区块链的目标智能合约。
可选的,所述确定模块301还用于:若确定所述跨链转账事务在所述M+1个区块链上任一事务触发条件不为所述预设事务触发条件,所述第一参与方和所述N个第二参与方重新协商所述预设事务触发条件。
可选的,所述目标智能合约每获取一个参与方提交的事务触发参数,判断一次所述预设事务触发条件是否满足。
基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的跨链事务处理方法及任一可选方法被执行。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的跨链事务处理方法及任一可选方法被执行。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种跨链事务处理方法,其特征在于,适用于N+1个参与方在M+1个区块链上的跨链事务,N,M均为正整数,N大于或等于M,所述方法包括:
第一参与方确定跨链转账事务在所述M+1个区块链上待执行的事务触发交易的事务触发条件是否均为预设事务触发条件;
所述第一参与方若确定均为所述预设事务触发条件,则针对所述M+1个区块链中每个区块链,根据第一事务触发交易的第一事务触发参数调用所述区块链上的目标智能合约;
所述第一参与方为所述N+1个参与方中任一参与方;所述第一事务触发交易为所述跨链转账事务中在第一区块链上需执行的事务触发交易;所述跨链转账事务在所述M+1个区块链上均有需执行的事务触发交易;所述预设事务触发条件及在所述M+1个区块链上的事务触发交易是所述第一参与方和N个第二参与方预先协商的;所述预设事务触发条件基于所述N+1个参与方的预设事务触发参数得到;
所述目标智能合约在接收到所述N+1个参与方的预设事务触发参数后调用成功,所述目标智能合约成功调用后,执行所述预设事务触发条件在所述区块链上对应的事务触发交易。
2.如权利要求1所述的方法,其特征在于,所述第一参与方按照以下方式和N个第二参与方协商所述预设事务触发条件:
所述第一参与方生成第一事务触发参数;所述第一参与方根据所述第一事务触发参数,按照预设加密算法对所述第一事务触发参数加密,获得第一密文;
所述第一参与方获取来自所述N个第二参与方的N个第二密文;其中,任一第二参与方的第二密文是根据所述第二参与方的第二事务触发参数,按照预设加密算法加密获得的;
所述第一参与方根据所述第一密文和所述N个第二密文,确定所述第一事务触发条件;
所述第一参与方获取来自所述N个第二参与方的N个第二事务触发条件,若确定所述N个第二事务触发条件和所述第一事务触发条件均一致,则确定所述第一参与方和所述N个第二参与方成功协商所述预设事务触发条件。
3.如权利要求2所述的方法,其特征在于,所述预设加密算法为第一加密算法;所述预设事务触发条件具体为:
针对所述N+1个参与方的每个参与方,所述参与方的事务触发参数均满足:所述事务触发参数按照所述第一加密算法得到的加密值,等于所述参与方在所述预设事务触发条件协商期间声明的预设值。
4.如权利要求2所述的方法,其特征在于,所述预设加密算法为第二加密算法;所述预设事务触发条件具体为:
第一运算结果等于第二运算结果;
所述第一运算结果为:N+1个运算结果按照所述第二加密算法下预设运算的转换运算得到的运算结果;所述N+1个运算结果为所述N+1个参与方在所述预设事务触发条件协商期间声明的密文;
所述第二运算结果为:预设运算结果按照所述第二加密算法加密得到的运算结果;所述预设运算结果为所述N+1个参与方调用所述目标智能合约时提交的事务触发参数按照所述预设运算得到的运算结果。
5.如权利要求1至4任一项所述的方法,其特征在于,还包括:
若所述第一参与方确定所述第一区块链上未完全获取到所述N+1个参与方的事务触发参数,且在第二区块链上已执行第二事务触发交易,则所述第一参与方从所述第二区块链上获取所述第一区块链上缺少的事务触发参数;
所述第一参与方根据所述缺少的事务触发参数和所述第一区块链上已有的事务触发参数,调用所述第一区块链的目标智能合约。
6.如权利要求1至4任一项所述的方法,其特征在于,还包括:
若所述第一参与方确定所述跨链转账事务在所述M+1个区块链上任一事务触发条件不为所述预设事务触发条件,所述第一参与方和所述N个第二参与方重新协商所述预设事务触发条件。
7.如权利要求1至4任一项所述的方法,其特征在于,所述目标智能合约每获取一个参与方提交的事务触发参数,判断一次所述预设事务触发条件是否满足。
8.一种跨链事务处理装置,其特征在于,适用于N+1个参与方在M+1个区块链上的跨链事务,N,M均为正整数,N大于或等于M,所述装置包括:
确定模块,用于确定跨链转账事务在所述M+1个区块链上待执行的事务触发交易的事务触发条件是否均为预设事务触发条件;
若所述确定模块确定均为所述预设事务触发条件,则处理模块用于:
针对所述M+1个区块链中每个区块链,根据第一事务触发交易的第一事务触发参数调用所述区块链上的目标智能合约;
第一参与方为所述N+1个参与方中任一参与方;所述第一事务触发交易为所述跨链转账事务中在第一区块链上需执行的事务触发交易;所述跨链转账事务在所述M+1个区块链上均有需执行的事务触发交易;所述预设事务触发条件及在所述M+1个区块链上的事务触发交易是所述第一参与方和N个第二参与方预先协商的;所述预设事务触发条件基于所述N+1个参与方的预设事务触发参数得到;
所述目标智能合约在接收到所述N+1个参与方的预设事务触发参数后调用成功,所述目标智能合约成功调用后,执行所述预设事务触发条件在所述区块链上对应的事务触发交易。
9.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7中任意一项所述的方法被执行。
10.一种计算机可读存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7中任意一项所述的方法被执行。
CN202011471245.4A 2020-12-14 2020-12-14 一种跨链事务处理方法及装置 Active CN112579700B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011471245.4A CN112579700B (zh) 2020-12-14 2020-12-14 一种跨链事务处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011471245.4A CN112579700B (zh) 2020-12-14 2020-12-14 一种跨链事务处理方法及装置

Publications (2)

Publication Number Publication Date
CN112579700A true CN112579700A (zh) 2021-03-30
CN112579700B CN112579700B (zh) 2024-05-28

Family

ID=75135283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011471245.4A Active CN112579700B (zh) 2020-12-14 2020-12-14 一种跨链事务处理方法及装置

Country Status (1)

Country Link
CN (1) CN112579700B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113315832A (zh) * 2021-05-26 2021-08-27 杭州云象网络技术有限公司 基于云跨链转账协议的跨链信息同步方法、***及装置
CN114185996A (zh) * 2022-02-15 2022-03-15 北京溪塔科技有限公司 一种跨链事务处理方法及装置
CN114363335A (zh) * 2021-12-31 2022-04-15 支付宝(杭州)信息技术有限公司 跨链交互方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108062671A (zh) * 2017-11-03 2018-05-22 深圳市轱辘车联数据技术有限公司 数据交易方法、区块链节点服务器及数据提交终端
CN109087080A (zh) * 2018-07-13 2018-12-25 杭州复杂美科技有限公司 跨链交易方法、设备和存储介质
US20190340266A1 (en) * 2018-05-01 2019-11-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
US20190340267A1 (en) * 2018-05-01 2019-11-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
CN110472974A (zh) * 2019-07-16 2019-11-19 阿里巴巴集团控股有限公司 基于区块链智能合约的资产转移方法、装置及***
CN111310216A (zh) * 2020-02-26 2020-06-19 百度在线网络技术(北京)有限公司 区块链数据处理方法、装置、电子设备和介质
CN111399993A (zh) * 2020-03-25 2020-07-10 百度国际科技(深圳)有限公司 一种关联事务请求的跨链实现方法、装置、设备和介质
US20200274695A1 (en) * 2019-07-15 2020-08-27 Alibaba Group Holding Limited Transaction processing in a service blockchain

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108062671A (zh) * 2017-11-03 2018-05-22 深圳市轱辘车联数据技术有限公司 数据交易方法、区块链节点服务器及数据提交终端
US20190340266A1 (en) * 2018-05-01 2019-11-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
US20190340267A1 (en) * 2018-05-01 2019-11-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
CN109087080A (zh) * 2018-07-13 2018-12-25 杭州复杂美科技有限公司 跨链交易方法、设备和存储介质
US20200274695A1 (en) * 2019-07-15 2020-08-27 Alibaba Group Holding Limited Transaction processing in a service blockchain
CN110472974A (zh) * 2019-07-16 2019-11-19 阿里巴巴集团控股有限公司 基于区块链智能合约的资产转移方法、装置及***
CN111310216A (zh) * 2020-02-26 2020-06-19 百度在线网络技术(北京)有限公司 区块链数据处理方法、装置、电子设备和介质
CN111399993A (zh) * 2020-03-25 2020-07-10 百度国际科技(深圳)有限公司 一种关联事务请求的跨链实现方法、装置、设备和介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113315832A (zh) * 2021-05-26 2021-08-27 杭州云象网络技术有限公司 基于云跨链转账协议的跨链信息同步方法、***及装置
CN113315832B (zh) * 2021-05-26 2022-07-12 杭州云象网络技术有限公司 基于云跨链转账协议的跨链信息同步方法、***及装置
CN114363335A (zh) * 2021-12-31 2022-04-15 支付宝(杭州)信息技术有限公司 跨链交互方法及装置
CN114363335B (zh) * 2021-12-31 2024-03-15 支付宝(杭州)信息技术有限公司 跨链交互方法及装置
CN114185996A (zh) * 2022-02-15 2022-03-15 北京溪塔科技有限公司 一种跨链事务处理方法及装置
CN114185996B (zh) * 2022-02-15 2022-05-13 北京溪塔科技有限公司 一种跨链事务处理方法及装置

Also Published As

Publication number Publication date
CN112579700B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
CN112579700A (zh) 一种跨链事务处理方法及装置
CN110263908B (zh) 联邦学习模型训练方法、设备、***及存储介质
Woo et al. A lesson on authentication protocol design
CN108282334B (zh) 一种基于区块链的多方密钥协商装置、方法及***
CN112907252B (zh) 一种基于多人链下通道的区块链交易方法及***
CN112488682B (zh) 一种区块链的三方转账方法及装置
CN111640017A (zh) 一种应用于联盟链跨链转账的交易正确性验证方法及装置
CN111861477A (zh) 基于区块链的交易后数据处理方法、装置和计算机设备
CN113556339B (zh) 支持异构可信执行环境tee算力节点交互的隐私计算方法
CN113746858A (zh) 一种基于可验证随机函数的跨链通信方法
US20230368195A1 (en) System and method for transferring resources using a blockchain
CN113987526A (zh) 基于区块链的资源兑换方法、装置、设备及可读存储介质
CN113014379A (zh) 支持跨云域数据分享的三方认证和密钥协商方法、***和计算机存储介质
Ye et al. Garou: An efficient and secure off-blockchain multi-party payment hub
CN110413649B (zh) 一种基于区块链的金融大数据处理方法及其***平台
CN111915133A (zh) 一种区块链加权共识的电网调控操作方法和***
CN110351091B (zh) 基于双重签名的资源置换方法、装置和计算机设备
CN112235110B (zh) 区块链的跨链业务处理方法、装置及电子设备
CN114022150A (zh) 资源转移方法、装置、电子设备及存储介质
CN111583002A (zh) 一种数据处理方法、数据处理装置、电子设备及存储介质
CN116743377B (zh) 基于区块链密钥的数据处理方法、装置、设备及存储介质
CN117236961B (zh) 链上链下的多方交易***方法
CN117252676B (zh) 业务处理方法、装置、电子设备和指标策略***
CN117728954B (zh) 线上认证方法、线上数据获取方法、***及电子设备
CN117057921B (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