CN116562872A - 跨链交易方法、系统及计算机可读介质 - Google Patents
跨链交易方法、系统及计算机可读介质 Download PDFInfo
- Publication number
- CN116562872A CN116562872A CN202210103201.9A CN202210103201A CN116562872A CN 116562872 A CN116562872 A CN 116562872A CN 202210103201 A CN202210103201 A CN 202210103201A CN 116562872 A CN116562872 A CN 116562872A
- Authority
- CN
- China
- Prior art keywords
- transaction
- task
- cross
- chain
- blockchain
- 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 60
- 238000013500 data storage Methods 0.000 claims abstract description 92
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 10
- 230000003993 interaction Effects 0.000 abstract description 5
- 239000003795 chemical substances by application Substances 0.000 description 116
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000012795 verification Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种跨链交易方法、系统及计算机可读介质,所述方法包括:将业务系统产生的跨链交易请求发送至第一跨链代理,以对跨链交易请求进行解析,得到第一交易任务;通过第一跨链代理将第一交易任务发送至第一区块链,得到第一交易结果;将第一交易结果和跨链交易请求发送至第二跨链代理,以对跨链交易请求进行解析,得到由预设交易任务和第二交易任务;通过第二跨链代理将第一交易结果写入预设交易任务的交易数据中;通过第二跨链代理将第二交易任务发送至第二区块链,以使第二区块链基于数据存储任务的执行结果执行第二交易任务,得到跨链交易结果。本申请技术方案极大地减少了业务系统与跨链代理或区块链的交互次数,提高了跨链交易效率。
Description
技术领域
本申请属于计算机及区块链技术领域,具体涉及一种跨链交易方法、系统及计算机可读介质。
背景技术
随着区块链技术的快速发展,目前在很多情况下都采用区块链来存储数据,有时候,不同场合下所产生的数据还会存储于不同的区块链中。例如,对于一个业务系统来说,不同业务模块配置了不同的区块链,在业务系统基于某一区块链进行业务交易时,该业务交易的实现可能需要另一区块链中的数据作为支撑,这就需要业务系统首先与提供数据支撑的区块链进行一次交易来获得支撑数据,然后再根据该支撑数据在业务交易所对应的区块链中完成该业务交易。在这种交易方式下,需要业务系统分别与不同的区块链进行交互,不仅增加了业务系统所需处理的流程,而且降低了交易效率。
发明内容
本申请的目的在于提供一种跨链交易方法、系统及计算机可读介质,解决了相关技术中业务系统在使用不同区块链的数据进行业务交易时,与区块链交互次数多的问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种跨链交易方法,包括:
将业务系统产生的跨链交易请求发送至第一跨链代理,以对所述跨链交易请求进行解析,得到由第一区块链执行的第一交易任务;
通过所述第一跨链代理将所述第一交易任务发送至所述第一区块链,得到所述第一区块链执行所述第一交易任务而产生的第一交易结果;
将所述第一交易结果和所述跨链交易请求发送至第二跨链代理,以对所述跨链交易请求进行解析,得到由第二区块链执行的预设交易任务和第二交易任务;
通过所述第二跨链代理将所述第一交易结果写入所述预设交易任务的交易数据中,生成数据存储任务,并将所述数据存储任务发送至所述第二区块链;
当所述第二区块链执行所述数据存储任务后,通过所述第二跨链代理将所述第二交易任务发送至所述第二区块链,以使所述第二区块链基于所述数据存储任务的执行结果执行所述第二交易任务,得到所述跨链交易请求对应的跨链交易结果。
在本申请的一个实施例中,在将业务系统产生的跨链交易请求发送至第一跨链代理之前,所述方法还包括:
通过所述业务系统基于跨链交易数据生成第一交易标识、预置交易标识和第二交易标识;
将所述第一交易标识作为所述第一交易任务的交易标识,将所述跨链交易数据中的第一区块链交易数据作为所述第一交易任务的交易数据,生成所述第一交易任务;
将所述预置交易标识作为所述预设交易任务的交易标识,将预设交易数据作为所述预设交易任务的交易数据,生成所述预设交易任务;
将所述第二交易标识作为所述第二交易任务的交易标识,将所述预置交易标识和所述跨链交易数据中的第二区块链交易数据作为所述第二交易任务的交易数据,生成所述第二交易任务;
根据所述第一交易任务、所述预设交易任务和所述第二交易任务生成所述跨链交易请求。
在本申请的一个实施例中,所述第二跨链代理对所述跨链交易请求进行解析后,还得到所述第一交易任务;在通过所述第二跨链代理将所述第一交易结果写入所述预设交易任务的交易数据中之前,所述方法还包括:
通过所述第二跨链代理将所述第一交易任务和所述第一交易结果发送至所述第一区块链的证明器,以使所述证明器对所述第一交易任务的执行情况进行证明,得到交易证明,所述交易证明用于证明所述第一交易任务是否执行。
在本申请的一个实施例中,通过所述第二跨链代理将所述第一交易结果写入所述预设交易任务的交易数据中,生成数据存储任务,包括:
通过所述第二跨链代理将所述第一交易结果和所述第一交易任务的交易证明写入所述预设交易任务的交易数据中,生成数据存储任务。
在本申请的一个实施例中,在将所述数据存储任务发送至所述第二区块链之后,所述方法还包括:
通过所述第二区块链执行所述数据存储任务,以将所述第一交易结果和所述交易证明存储于所述第二区块链中,并向所述第二跨链代理返回所述数据存储任务执行完毕的应答信息;
当所述第二跨链代理接收到所述应答信息时,确定所述第二区块链已执行所述数据存储任务。
在本申请的一个实施例中,所述第二交易任务包括交易智能合约和所述数据存储任务的交易标识;所述第二区块链基于所述数据存储任务的执行结果执行所述第二交易任务,得到所述跨链交易请求对应的跨链交易结果,包括:
根据所述数据存储任务的交易标识获取所述第二区块链在执行所述数据存储任务时存储的所述第一交易结果和所述交易证明;
若所述交易证明指示所述第一交易任务已执行,则根据所述第一交易结果执行所述交易智能合约,得到所述跨链交易结果;
若所述交易证明指示所述第一交易任务未执行,则生成交易失败的提示信息。
在本申请的一个实施例中,所述证明器对所述第一交易任务的执行情况进行证明,包括:
所述证明器根据所述第一交易任务和所述第一交易结果在所述证明器的交易记录中进行查找;
如果存在与所述第一交易任务和所述第一交易结果相对应的交易记录,则生成所述第一交易任务已执行的交易证明;
如果不存在与所述第一交易任务和所述第一交易结果相对应的交易记录,则生成所述第一交易任务未执行的交易证明。
在本申请的一个实施例中,在将所述数据存储任务发送至所述第二区块链之前,所述方法还包括:
通过所述第二跨链代理从所述第二区块链对应的第二可信账户池中获取预设账户信息,并根据所述预设账户信息生成签名信息;
相应的,将所述数据存储任务发送至所述第二区块链,包括:
通过所述第二跨链代理将所述签名信息和所述数据存储任务发送至所述第二区块链,以使所述第二区块链在对所述签名信息进行验证后,执行所述数据存储任务。
根据本申请实施例的一个方面,提供一种跨链交易系统,包括:
业务系统,用于产生跨链交易请求;
第一跨链代理,用于获取所述跨链交易请求,对所述跨链交易请求进行解析,得到由第一区块链执行的第一交易任务;将所述第一交易任务发送至所述第一区块链,接收所述第一区块链返回的第一交易结果,并将所述第一交易结果和所述跨链交易请求发送至第二跨链代理;
第一区块链,用于执行所述第一交易任务产生第一交易结果,并将所述第一交易结果返回至所述第一跨链代理;
第二跨链代理,用于对所述跨链交易请求进行解析,得到由第二区块链执行的预设交易任务和第二交易任务;将所述第一交易结果写入所述预设交易任务的交易数据中,生成数据存储任务,并将所述数据存储任务发送至所述第二区块链;当所述第二区块链执行所述数据存储任务后,将所述第二交易任务发送至所述第二区块链;
第二区块链,用于执行所述数据存储任务,并基于所述数据存储任务的执行结果执行所述第二交易任务,得到所述跨链交易请求对应的跨链交易结果。
根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的跨链交易方法。
根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的跨链交易方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器执行所述可执行指令使得所述电子设备实现如以上技术方案中的跨链交易方法。
在本申请实施例提供的技术方案中,业务系统生成的跨链交易请求包括第一交易任务、第二交易任务和预设交易任务,首先通过第一跨链代理将第一交易任务发送至第一区块链执行,得到第一交易结果,然后将第一交易结果写入预设交易任务得到数据存储任务,通过第二跨链代理将数据存储任务发送至第二区块链,第二区块链通过执行数据存储任务将第一交易结果存储至第二区块链中,第二区块链可以直接从链上获取第一交易结果来执行第二交易任务,得到跨链交易结果。在整个交易过程中,业务系统只需与第一跨链代理进行一次交互,极大地减少了业务系统与跨链代理或区块链的交互次数,降低业务系统在处理跨链交易时的操作复杂度,提高了跨链交易效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了应用本申请技术方案的跨链交易系统的架构框图。
图2示意性地示出了本申请一个实施例提供的跨链交易方法的流程图。
图3示意性地示出了本申请实施例提供的跨链交易请求中各交易任务的生成过程的示意图。
图4示意性地示出了本申请一个实施例提供的跨链交易系统的结构框图。
图5示意性地示出了本申请一个实施例提供数据存储任务对应的智能合约的示意图。
图6示意性地示出了本申请一个实施例提供的跨链交易方法的流程图。
图7示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、系统、步骤等。在其它情况下,不详细示出或描述公知方法、系统、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器系统和/或微控制器系统中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
可以理解的是,在本申请的具体实施方式中,涉及到账户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面结合具体实施方式对本申请提供的跨链交易方法以及跨链交易系统做出详细说明。
图1示意性地示出了应用本申请技术方案的跨链交易系统的架构框图,图2示意性地示出了本申请一个实施例提供的跨链交易方法的流程图,图1所示的跨链交易系统可以实现图2所示的跨链交易方法,图1所示跨链交易系统的工作原理可以参考图2所示的跨链交易方法中的相关描述。
如图1所示,本申请实施例提供的跨链交易系统包括业务系统110、第一跨链代理120、第一区块链130、第二跨链代理140和第二区块链150。
业务系统110可以终端设备的方式体现,也可以服务器的方式体现,终端设备可以包括但不限于智能手机、平板电脑、笔记本电脑、智能语音交互设备、智能家电、车载终端等等。业务系统110与第一跨链代理120或第二跨链代理140之间可以通过网络进行数据传输,网络可以是能够在业务系统110与第一跨链代理120或第二跨链代理140之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路或者无线通信链路。
在本申请的一个实施例中,跨链代理是为区块链提供代理服务的服务器,第一跨链代理120为第一区块链130提供代理服务,第二跨链代理140为第二区块链150提供代理服务。跨链代理可以是区块链网络中的节点,也可以是独立于区块链网络之外的代理服务器。在一些情况下,第一跨链代理120和第二跨链代理140可以是相同的代理服务器。
第一区块链130和第二区块链150为两个不同的区块链。区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
在本申请的一个实施例中,区块链中的数据由区块链所在区块链网络中的节点来进行维护,例如,区块链执行某任务是指所在区块链网络中的节点对该区块链中的数据进行该任务所指定的运算。
在本申请的一个实施例中,区块链中的数据维护也可以通过智能合约。智能合约则是运行在区块链网络上的一段代码逻辑,它详细约定了区块链上数据的操作与存取方式,并且可以通过自行撰写代码逻辑的方式扩充智能合约的能力,实现链上数据的操作与运转。智能合约极大地扩充了区块链的能力。
在本申请的一个实施例中,第一区块链130和第二区块链150可以同属于一个区块链网络,也可以分别属于不同的区块链网络。
图1所示的跨链交易系统所实现的跨链交易方法应用于业务系统需要以第一区块链的数据作为第二区块链中业务交易的基础数据的场景。具体而言,如图2所示,本申请实施例提供的跨链交易方法包括步骤210至步骤250,具体如下:
步骤210、将业务系统产生的跨链交易请求发送至第一跨链代理,以对跨链交易请求进行解析,得到由第一区块链执行的第一交易任务。
具体的,业务系统为图1所示的业务系统110,是用于处理业务交易的系统,该业务交易是指业务系统所需执行的任务,其可以是数据查询任务、数据计算任务、数据修改任务、两个账户之间的交易任务或其他任务等,该业务交易的实际执行过程,在对应区块链中实现,例如,数据查询任务由存储数据的区块链执行,数据计算任务由计算数据所涉及的区块链执行。
业务系统在处理业务交易时,当该业务交易需要以一个区块链的数据作为另一个区块链的计算依据时,也就是以一个区块链的任务执行结果作为另一个区块链的输入的场景,那么,业务系统将产生跨链交易请求。假设跨链交易请求由第一区块链和第二区块链共同执行,那么跨链交易请求中应包括由第一区块链执行的第一交易任务和由第二区块链执行的第二交易任务。业务系统产生跨链交易请求后,将跨链交易请求发送至第一跨链代理,该第一跨链代理为图1所示的第一跨链代理120。第一跨链代理接收跨链交易请求后,对其进行解析,得到由第一区块链执行的第一交易任务,该第一区块链为图1所示的第一区块链130。
在本申请的一个实施例中,业务系统可以预先安装跨链SDK(SoftwareDevelopment Kit,软件开发工具包),然后通过该跨链SDK产生跨链交易请求。
在本申请的一个实施例中,跨链交易请求用于请求执行跨链交易,其包括不同区块链所需执行的交易任务,交易任务包括交易标识和交易数据。交易标识记为TxID或TxKey,是交易任务的唯一标号,不同的交易任务之间可以通过交易标识进行区分。交易数据记为TxData,是执行交易任务所需要的数据,例如,当交易任务是数据查询任务时,则交易数据可能包括所需查询的数据名称、数据存储地址、执行该交易任务的对象等。
在本申请的一个实施例中,假设第二区块链执行的第二交易任务需要使用第一区块链的第一交易任务的执行结果,跨链交易请求的生成过程包括:通过业务系统基于跨链交易数据生成第一交易标识、预置交易标识和第二交易标识;将第一交易标识作为第一交易任务的交易标识,将跨链交易数据中的第一区块链交易数据作为第一交易任务的交易数据,生成第一交易任务;将预置交易标识作为预设交易任务的交易标识,将预设交易数据作为预设交易任务的交易数据,生成预设交易任务;将第二交易标识作为第二交易任务的交易标识,将预置交易标识和跨链交易数据中的第二区块链交易数据作为第二交易任务的交易数据,生成第二交易任务;根据第一交易任务、预设交易任务和第二交易任务生成跨链交易请求。
具体的,首先业务系统基于跨链交易数据生成第一交易标识、预置交易标识和第二交易标识。当业务系统检测到交易数据为跨链交易数据时,说明当前的业务交易为跨链交易,此时生成第一交易标识、预置交易标识和第二交易标识。第一交易标识是由第一区块链执行的第一交易任务的交易标识,第二交易标识是由第二区块链执行的第二交易任务的交易标识,预置交易标识是由第二区块链执行的预设交易任务的交易标识。
第一交易任务对应于跨链交易中需要第一区块链执行的部分,故而第一交易任务所对应的交易数据为跨链交易数据中第一区块链交易数据,基于第一交易标识和第一区块链交易数据作,即可生成第一交易任务。
预设交易任务的交易标识为预置交易标识,其交易数据可以设置为预设交易数据。预设交易任务是为了将第一交易任务的执行结果存储至第二区块链,故而预设交易任务的交易数据最终需要填充第一交易任务的执行结果,那么,预设交易数据可以不影响第一交易任务的执行结果的任意数据,例如,可以将预设交易数据设为空。
第二交易任务对应于跨链交易中需要第二区块链执行的部分,由于第二区块链执行的第二交易任务需要使用第一区块链的第一交易任务的执行结果,故而第二交易任务的交易数据包括跨链交易数据中的第二区块链交易数据以及第一交易任务的执行结果,然而,在第一交易任务尚未执行时,无法获得第一交易任务的执行结果,故而将预设交易任务的预置交易标识作为第二交易任务的交易数据的一部分。如此,在执行第二交易任务时,通过交易数据中的预置交易标识即可确定预设交易任务所存储的第一交易任务的执行结果,继而可以根据第一交易任务的执行结果执行第二交易任务。
最后,将第一交易任务、预设交易任务和第二交易任务组合,形成跨链交易请求。
示例性的,图3示意性地示出了本申请实施例提供的跨链交易请求中各交易任务的生成过程的示意图。如图3所示,业务系统310安装跨链SDK320,通过跨链SDK 320产生第一区块链操作交易集330和第二区块链操作交易集340。
第一区块链操作交易集330包括第一区块链执行的第一交易任务。当跨链SDK 320是针对一个跨链交易进行处理时,第一区块链操作交易集330中第一交易任务的数量可以是一个或多个。当跨链SDK 320是针对多个跨链交易进行处理时,第一区块链操作交易集330中第一交易任务的数量为多个。第一交易任务的交易标识为第一交易标识,交易数据为跨链交易数据中第一区块链交易数据。
第二区块链操作交易集340包括第二区块链执行的预设交易任务341和第二交易任务342。预设交易任务341用于存储第一交易任务的执行结果,故而也可以称为结果存储交易,其交易标识(TxKey)为预置交易标识,其交易数据(TxData)为空。第二交易任务342为实际的业务交易,其交易标识(TxKey)为第二交易标识,交易数据(TxData)包括跨链交易数据中第二区块链交易数据和预设交易任务341的交易标识(即预置交易标识)。在区块链中,交易通过智能合约实现,执行一次交易相当于执行一次智能合约,故而第二交易任务342的交易数据实际上就是该交易所对应的智能合约信息,而预设交易任务341的交易标识(即预置交易标识)就是该交易的智能合约的输入参数。
最后根据第一区块链操作交易集330和第二区块链操作交易集340生成跨链交易请求(或称为跨链交易请求集),该跨链交易请求中包括至少三个交易任务,至少一个由第一区块链执行的交易任务和至少两个由第二区块链执行的交易任务。
一般而言,业务系统与区块链交互时,当交易任务中数据产生变化,业务系统需要基于变化生成新的交易任务并重新签名。而在本申请实施例中,通过上述方式生成的第二交易任务,其交易标识和交易数据都是确定的,故而第二交易任务实际上是确定的,后续也无需再对该交易任务进行更改,那么业务系统在生成第二交易任务时提供签名即可,后续无需因为第二交易任务中的数据变化而重新签名。
步骤220、通过第一跨链代理将第一交易任务发送至第一区块链,得到第一区块链执行第一交易任务而产生的第一交易结果。
具体的,第一跨链代理将第一交易任务发送至第一区块链之后,第一区块链执行该第一交易任务,得到第一交易任务的执行结果,也就是第一交易结果,然后第一区块链将第一交易结果发送至第一跨链代理,使第一跨链代理获取第一交易结果。
在本申请的一个实施例中,第一交易任务可以是查询任务,也可以是执行任务。查询任务是指进行数据查询的任务,执行任务是指需要经过一定的数据处理或计算的任务,一般的,除查询任务以外的任务都可以记为执行任务。当第一交易任务是查询任务时,第一交易结果为数据查询结果;当第一交易任务为执行任务时,第一交易结果为数据处理或计算的结果。
在本申请的一个实施例中,第一跨链代理将第一交易任务发送至第一区块链时,需要提供签名信息,第一区块链通过对签名信息进行验证来确定第一跨链代理是否为可以合法访问第一区块链的对象。第一跨链代理从第一可信账户池获取预先设置好的账户信息,然后通过该账户信息生成签名信息。可信账户池(trust user pool)中的账户信息是区块链可信任的账户信息,也就是说,通过可信账户池的账户信息可以合法访问区块链。可信账户池中的账户信息是预先配置的账户信息,且该账户信息并非是账户在区块链中的真实信息,而是为区块链中真实账户所设置一种虚拟账户信息,例如,可信账户池中的账户信息是区块链中真实账户岁对应的特定标识符。通过使用可信账户池的账户信息,使得与跨链代理与区块链进行交互时无需使用业务系统的真实账户信息,可以避免业务系统账户信息的泄露。
步骤230、将第一交易结果和跨链交易请求发送至第二跨链代理,以使第二跨链代理对跨链交易请求进行解析,得到由第二区块链执行的预设交易任务和第二交易任务。
具体的,第一跨链代理获取到第一交易结果后,说明第一区块链所需执行的任务已经执行完毕,此时将第一交易结果和跨链交易请求发送至第二跨链代理,以进行第二区块链的相关交易。第二跨链代理为图1所示的第二跨链代理140。第二跨链代理接收到跨链交易请求后,对其进行解析,得到跨链交易请求中由第二区块链执行的交易任务,包括预设交易任务和第二交易任务。
在本申请的一个实施例中,第一跨链代理在将第一交易结果和跨链交易请求发送至第二跨链代理时,将第一交易结果和跨链交易请求进行数据组装后再发送。例如,将第一交易结果和跨链交易请求组装为一个数据包,然后将该数据包发送至第二跨链代理。第二跨链代理对该数据包解析,得到第一交易结果、跨链交易请求、预设交易任务和第二交易任务。
步骤240、通过第二跨链代理将第一交易结果写入预设交易任务的交易数据中,生成数据存储任务,并将数据存储任务发送至第二区块链。
具体的,第二跨链代理将第一交易结果写入预设交易任务的交易数据中,该预设交易任务就转化为用于存储第一交易结果的数据存储任务。第二跨链代理将数据存储任务发送至第二区块链,第二区块链执行该数据存储任务,就可以将第一交易结果存储至第二区块链中。其中,第二区块链为图1所示的第二区块链150。
如前所述,预设交易任务中的交易数据为预设交易数据,该预设交易数据可以为空,也可以是其他数据。在将第一交易结果写入预设交易任务的交易数据中时,若预设交易数据为空,则直接将第一交易结果作为预设交易任务的交易数据进行写入即可。若预设交易数据为其他数据,则需要将预设交易数据删除,然后将第一交易结果写入预设交易任务的交易数据中。
在本申请的一个实施例中,第二跨链代理在将第一交易结果写入预设交易任务的交易数据之前,还需要对第一交易任务的执行情况进行验证,即验证第一交易任务是否已经执行,也就是验证对应的第一交易是否存在。
在本申请的一个实施例中,对第一交易任务的执行情况进行验证通过第一区块链的证明器实施,包括:通过第二跨链代理将第一交易任务和第一交易结果发送至第一区块链的证明器,以使证明器对第一交易任务的执行情况进行证明,得到交易证明,交易证明用于证明第一交易任务是否执行。
具体的,第二跨链代理将第一交易任务和第一交易结果发送至第一区块链的证明器,证明器记录了第一区块链中的所有交易任务。证明器可以根据第一交易任务和第一交易结果在证明器的交易记录中进行查找;如果存在与第一交易任务和第一交易结果相对应的交易记录,则生成第一交易任务已执行的交易证明;如果不存在与第一交易任务和第一交易结果相对应的交易记录,则生成第一交易任务未执行的交易证明。例如,第一交易任务为查询账户余额,第一交易结果为账户余额xx元,若证明器中存在“交易任务:查询账户余额,交易结果:账户余额为xx元”的交易记录,则说明第一交易任务已执行。
证明器对第一交易任务进行验证之后,将交易证明返回至第二跨链代理,第二跨链代理可以将交易证明和第一交易结果一起写入预设交易任务的交易数据中,形成数据存储任务。第二区块链在执行该数据存储任务后,就可以将第一交易结果及其交易证明存储在第二区块链中,以供后续第二区块链执行第二交易任务时使用。可选的,还可以将其他有需要的数据写入预设交易任务的交易数据中形成数据存储任务,如将跨链交易请求写入预设交易任务的交易数据中,后续在执行第二交易任务时,可以确定所需执行的第二交易交易任务是否为跨链交易请求所对应的第二交易任务。
在本申请的一个实施例中,证明器还可以对第一交易任务的正确性进行验证,即证明第一交易任务是否正确执行,这其中包括多第一交易结果是否正确进行验证。例如,第一交易任务为数据查询任务,在证明第一交易任务的正确性时,需要验证第一交易结果是否为数据查询任务所指定的查询对象。
在本申请的一个实施例中,证明器可以通过SPV(Simplified PaymentVerification,简单支付验证)方式对第一交易任务及第一交易结果进行验证。在进行SPV验证时,只需验证与第一交易任务相关的部分默克尔树(Merkle Tree)即可,即根据第一区块链中与第一交易任务相关默克尔树计算得到默克尔根,将该默克尔根与证明器自身所存储的默克尔根进行比较,若两者相同,则证明第一交易任务已执行或第一交易存在;若两者相同,则说明第一交易任务未执行或第一交易不存在。
在本申请的一个实施例中,第二跨链代理向第二区块链发送数据存储任务时,需要生成签名信息。第二区块链对应有一个第二可信账户池,可信账户池的具体定义已在前文描述,在此不再赘述。第二跨链代理从第二可信账户池中获取预设账户信息,然后根据预设账户信息生成签名信息,继而将签名信息和数据存储任务发送至第二区块链。第二区块链接收到信息后,首先对签名信息进行验证,当确定签名信息所对应的账户信息在第二可信账户池中时,则表明验证通过,第二区块链执行数据存储任务,将数据存储任务所包含的第一交易任务和交易证明存储至第二区块链中。
在本申请的一个实施例中,第二区块链在执行数据存储任务时,可以将签名验证结果一同存储至第二区块链中,以便后续作为执行第二交易任务的参考。在这种情况下,无论签名验证是否通过,第二区块链都将执行数据存储任务,那么对于签名信息所对应的账户信息是否可信的问题,由第二区块链在执行第二交易任务时判断,无需由第二跨链代理来判断,减少了第二跨链代理的工作任务,同时验证结果存储至第二区块链中,可以作为溯源信息使用。
步骤250、当第二区块链执行数据存储任务后,通过第二跨链代理将第二交易任务发送至第二区块链,以使第二区块链基于数据存储任务的执行结果执行第二交易任务,得到跨链交易请求对应的跨链交易结果。
具体的,第二区块链在执行数据存储任务之后,将向第二跨链代理返回数据存储任务执行完毕的应答信息,第二跨链代理在接收到该应答信息时,确定数据存储任务执行完毕,此时第二跨链代理将第二交易任务发送至第二区块链,第二区块链便可执行第二交易任务。数据存储任务的执行结果就是将第一交易结果和交易证明存储至第二区块链中,故而第二区块链可以从其自身所存储的数据中获取第一交易结果来执行第二交易任务,得到跨链交易结果。
如前所述,第二交易任务的交易数据实际上就是交易的智能合约,数据存储任务的交易标识为交易智能合约的输入参数,那么第二交易任务的执行过程为:根据数据存储任务的交易标识获取第二区块链在执行数据存储任务时存储的第一交易结果和交易证明;若交易证明指示第一交易任务已执行,则根据第一交易结果执行交易智能合约,得到跨链交易结果;若交易证明指示第一交易任务未执行,则生成交易失败的提示信息。
具体的,首先根据数据存储任务的交易标识确定数据存储任务的执行结果,也就是第二区块链所存储的第一交易结果和交易证明。然后根据交易证明确定第一交易任务是否已经执行。若第一交易任务已经执行,也就说第一交易确实存在,则将第一交易结果作为交易智能合约的输入数据,执行交易执行合约,得到跨链交易结果。若第一交易任务未执行,则说明第一交易不存在,此时所对应的第一交易结果可能是错误数据,故而不执行第二交易任务,生成交易失败的提示信息。
在本申请实施例提供的技术方案中,业务系统生成的跨链交易请求包括第一交易任务、第二交易任务和预设交易任务,首先通过第一跨链代理将第一交易任务发送至第一区块链执行,得到第一交易结果,然后将第一交易结果写入预设交易任务得到数据存储任务,通过第二跨链代理将数据存储任务发送至第二区块链,第二区块链通过执行数据存储任务将第一交易结果存储至第二区块链中,第二区块链可以直接从链上获取第一交易结果来执行第二交易任务,得到跨链交易结果。在整个交易过程中,业务系统只需与第一跨链代理进行一次交互,极大地减少了业务系统与跨链代理或区块链的交互次数,降低业务系统在处理跨链交易时的操作复杂度,提高了跨链交易效率。
图4示意性地示出了本申请一个实施例提供的跨链交易系统的结构框图,如图4所示,该跨链交易系统包括业务系统410、第一跨链代理420、第一区块链430、第二跨链代理440、第二区块链450和证明器460。
图4所示的跨链交易系统的工作原理如下:
S401、业务系统410安装跨链SDK,通过跨链SDK产生跨链交易请求CCTx,并将跨链交易请求CCTx发送至第一跨链代理420。跨链交易请求CCTx可以参考前文步骤210及图3中的相关描述,在此不再赘述。跨链交易请求CCTx包括由第一区块链430执行的第一交易任务CCTx(A)、由第二区块链450执行的预设交易任务和由第二区块链450执行的第二交易任务CCTx(B)。
S402、第一跨链代理420对接收的跨链交易请求CCTx进行解析,得到第一交易任务CCTx(A),并将第一交易任务CCTx(A)发送至第一区块链430。在发送第一交易任务CCTx(A)时,第一跨链代理420从第一可信账户池421获取账户信息生成签名信息,将该签名信息与第一交易任务CCTx(A)一同发送至第一区块链430,以便第一区块链430对第一跨链代理420的账户进行验证。
S403、第一区块链430执行第一交易任务CCTx(A),向第一跨链代理420返回第一交易任务CCTx(A)的第一交易结果。
S404、第一跨链代理420接收到第一交易任务CCTx(A)的第一交易结果后,将第一交易任务CCTx(A)的第一交易结果与跨链交易请求CCTx进行数据组装,形成组装数据,并将组装数据发送至第二跨链代理440。
S405、第二跨链代理440对接收的组装数据进行解析,得到跨链交易请求CCTx、第一交易任务CCTx(A)及其第一交易结果、预设交易任务和第二交易任务CCTx(B),第二跨链代理440将第一交易任务CCTx(A)及其第一交易结果发送至证明器460,请求证明器460进行交易证明。证明器460为第一区块链430的证明器。
S406、证明器460生成第一交易任务CCTx(A)的交易证明,并将交易证明反馈至第二跨链代理440。
S407、第二跨链代理440收到交易证明后,将第一交易任务CCTx(A)的第一交易结果和交易证明写入预设交易任务的交易数据中,形成数据存储任务,并将数据存储任务发送至第二区块链450。可选的,也可以将跨链交易请求CCTx或其他所需信息写入预设交易任务。
在发送数据存储任务时,第二跨链代理440从第二可信账户池441获取账户信息生成签名信息,将该签名信息与数据存储任务一同发送至第二区块链450,以便第二区块链450对第二跨链代理440的账户进行验证或存储该签名信息。
S408、第二区块链450执行数据存储任务,将第一交易任务CCTx(A)的第一交易结果和交易证明存储至第二区块链450,并向第二跨链代理440返回数据存储任务执行完毕的应答信息(Tx响应)。
在本申请的一个实施例中,第二区块链450执行数据存储任务以将第一交易结果和交易证明存储于第二区块链450中,实际上也是执行了一种存储数据的智能合约。该智能合约如图5所示,包括证据留存接口510和证据查询接口520。证据留存接口510就是将相关数据存储于第二区块链450(第二区块链450相当于图5中的数据库)中,其输入数据如图5中标号511所示,包括但不限于:账户可信信息(User Trust)、第一交易任务CCTx(A)的第一交易结果(CCTx(A)Contract Result)和第一交易任务CCTx(A)的交易证明(CCTx(A)VerifyResult)。证据查询接口520主要用于信息追溯与查询,通过跨链标识(CrossKey)进行数据查询,其可查询数据为证据留存接口510所存储的数据,如图5中标号521所示,包括:跨链交易请求(CCTx)、第一交易任务CCTx(A)的第一交易结果(CCTx(A)Contract Result)和第一交易任务CCTx(A)的交易证明(CCTx(A)Verify Result)。
S409、第二跨链代理440接收到数据存储任务执行完毕的应答信息后,向第二区块链450发送第二交易任务CCTx(B)。
S410、第二区块链450执行第二交易任务CCTx(B),得到跨链交易结果,并向第二跨链代理440返回跨链交易结果。第二交易任务CCTx(B)的执行过程可以参考前文步骤250中的相关描述,在此不再赘述。
最后,第二跨链代理440将跨链交易结果返回至第一跨链代理420,第一跨链代理420汇总跨链交易结果和第一交易结果后,一同反馈至业务系统410。由此,业务系统410得到跨链交易结果,同时还可以得到第一交易结果(也就是跨链交易的中间执行结果)。
图6示意性地示出了本申请一个实施例提供的跨链交易方法的流程图,如图6所示,该跨链交易方法包括:
S1、业务系统调用跨链SDK,生成跨链交易CCTx(也就是跨链交易请求)。
S2、业务系统向第一跨链代理发送跨链交易请求CCTx。
S3、第一跨链代理解析跨链交易请求CCTx,得到第一交易任务CCTx(A)。
S4、第一跨链代理发送第一交易任务CCTx(A)至第一区块链。
S5、第一区块链执行第一交易任务CCTx(A),得到第一交易结果。
S6、第一区块链向第一跨链代理返回第一交易任务CCTx(A)的执行信息,也就是返回第一交易结果。
S7、第一跨链代理汇总跨链交易请求CCTx及CCTx(A)执行信息(即第一交易结果)。
S8、第一跨链代理将跨链交易请求CCTx及CCTx(A)执行信息发送至第二跨链代理。
S9、第二跨链代理解析从第一跨链代理处接收到的信息,得到跨链交易请求CCTx、CCTx(A)执行信息和第二交易任务CCTx(B),还包括预设交易任务。
S10、第二跨链代理向证明器请求验证第一交易任务CCTx(A)的执行情况。
S11、证明器对第一交易任务CCTx(A)进行证明,生成交易证明。
S12、证明器向第二跨链代理返回第一交易任务CCTx(A)验证结果,即返回交易证明。
S13、第二跨链代理汇总跨链交易请求CCTx、CCTx(A)执行信息,生成证据交易CCProofTx。即,将跨链交易请求CCTx、第一交易任务CCTx(A)的执行信息和验证结果写入预设交易任务中,形成数据存储任务,该数据存储任务就是证据交易CCProofTx。
S14、第二跨链代理将证据交易CCProofTx发送至第二区块链。
S15、第二区块链执行证据交易CCProofTx,将跨链交易请求CCTx、第一交易任务CCTx(A)的执行信息和验证结果存储至第二区块链中。
S16、第二区块链向第二跨链代理返回证据交易CCProofTx的执行结果(即数据存储任务的应答信息)。
S17、第二跨链代理向第二区块链发送第二交易任务CCTx(B)。
S18、第二区块链执行第二交易任务CCTx(B),得到跨链交易结果。
S19、第二区块链向第二跨链代理返回第二交易任务CCTx(B)执行结果(即跨链交易结果)。
S20、第二跨链代理向第一跨链代理返回第二交易任务CCTx(B)执行结果。
S21、第一跨链代理汇总第二交易任务CCTx(B)执行结果和第一交易结果。
S22、第一跨链代理将第二交易任务CCTx(B)执行结果和第一交易结果返回至业务系统。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
图7示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理器701(Central Processing Unit,CPU),其可以根据存储在只读存储器702(Read-Only Memory,ROM)中的程序或者从存储部分708加载到随机访问存储器703(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器703中,还存储有系统操作所需的各种程序和数据。中央处理器701、在只读存储器702以及随机访问存储器703通过总线704彼此相连。输入/输出接口705(Input/Output接口,即I/O接口)也连接至总线704。
以下部件连接至输入/输出接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至输入/输出接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理器701执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、系统或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种跨链交易方法,其特征在于,包括:
将业务系统产生的跨链交易请求发送至第一跨链代理,以对所述跨链交易请求进行解析,得到由第一区块链执行的第一交易任务;
通过所述第一跨链代理将所述第一交易任务发送至所述第一区块链,得到所述第一区块链执行所述第一交易任务而产生的第一交易结果;
将所述第一交易结果和所述跨链交易请求发送至第二跨链代理,以对所述跨链交易请求进行解析,得到由第二区块链执行的预设交易任务和第二交易任务;
通过所述第二跨链代理将所述第一交易结果写入所述预设交易任务的交易数据中,生成数据存储任务,并将所述数据存储任务发送至所述第二区块链;
当所述第二区块链执行所述数据存储任务后,通过所述第二跨链代理将所述第二交易任务发送至所述第二区块链,以使所述第二区块链基于所述数据存储任务的执行结果执行所述第二交易任务,得到所述跨链交易请求对应的跨链交易结果。
2.根据权利要求1所述的跨链交易方法,其特征在于,在将业务系统产生的跨链交易请求发送至第一跨链代理之前,所述方法还包括:
通过所述业务系统基于跨链交易数据生成第一交易标识、预置交易标识和第二交易标识;
将所述第一交易标识作为所述第一交易任务的交易标识,将所述跨链交易数据中的第一区块链交易数据作为所述第一交易任务的交易数据,生成所述第一交易任务;
将所述预置交易标识作为所述预设交易任务的交易标识,将预设交易数据作为所述预设交易任务的交易数据,生成所述预设交易任务;
将所述第二交易标识作为所述第二交易任务的交易标识,将所述预置交易标识和所述跨链交易数据中的第二区块链交易数据作为所述第二交易任务的交易数据,生成所述第二交易任务;
根据所述第一交易任务、所述预设交易任务和所述第二交易任务生成所述跨链交易请求。
3.根据权利要求1所述的跨链交易方法,其特征在于,所述第二跨链代理对所述跨链交易请求进行解析后,还得到所述第一交易任务;在通过所述第二跨链代理将所述第一交易结果写入所述预设交易任务的交易数据中之前,所述方法还包括:
通过所述第二跨链代理将所述第一交易任务和所述第一交易结果发送至所述第一区块链的证明器,以使所述证明器对所述第一交易任务的执行情况进行证明,得到交易证明,所述交易证明用于证明所述第一交易任务是否执行。
4.根据权利要求3所述的跨链交易方法,其特征在于,通过所述第二跨链代理将所述第一交易结果写入所述预设交易任务的交易数据中,生成数据存储任务,包括:
通过所述第二跨链代理将所述第一交易结果和所述第一交易任务的交易证明写入所述预设交易任务的交易数据中,生成数据存储任务。
5.根据权利要求4所述的跨链交易方法,其特征在于,在将所述数据存储任务发送至所述第二区块链之后,所述方法还包括:
通过所述第二区块链执行所述数据存储任务,以将所述第一交易结果和所述交易证明存储于所述第二区块链中,并向所述第二跨链代理返回所述数据存储任务执行完毕的应答信息;
当所述第二跨链代理接收到所述应答信息时,确定所述第二区块链已执行所述数据存储任务。
6.根据权利要求5所述的跨链交易方法,其特征在于,所述第二交易任务包括交易智能合约和所述数据存储任务的交易标识;所述第二区块链基于所述数据存储任务的执行结果执行所述第二交易任务,得到所述跨链交易请求对应的跨链交易结果,包括:
根据所述数据存储任务的交易标识获取所述第二区块链在执行所述数据存储任务时存储的所述第一交易结果和所述交易证明;
若所述交易证明指示所述第一交易任务已执行,则根据所述第一交易结果执行所述交易智能合约,得到所述跨链交易结果;
若所述交易证明指示所述第一交易任务未执行,则生成交易失败的提示信息。
7.根据权利要求3所述的跨链交易方法,其特征在于,所述证明器对所述第一交易任务的执行情况进行证明,包括:
所述证明器根据所述第一交易任务和所述第一交易结果在所述证明器的交易记录中进行查找;
如果存在与所述第一交易任务和所述第一交易结果相对应的交易记录,则生成所述第一交易任务已执行的交易证明;
如果不存在与所述第一交易任务和所述第一交易结果相对应的交易记录,则生成所述第一交易任务未执行的交易证明。
8.根据权利要求1-7任一项所述的跨链交易方法,其特征在于,在将所述数据存储任务发送至所述第二区块链之前,所述方法还包括:
通过所述第二跨链代理从所述第二区块链对应的第二可信账户池中获取预设账户信息,并根据所述预设账户信息生成签名信息;
相应的,将所述数据存储任务发送至所述第二区块链,包括:
通过所述第二跨链代理将所述签名信息和所述数据存储任务发送至所述第二区块链,以使所述第二区块链在对所述签名信息进行验证后,执行所述数据存储任务。
9.一种跨链交易系统,其特征在于,包括:
业务系统,用于产生跨链交易请求;
第一跨链代理,用于获取所述跨链交易请求,对所述跨链交易请求进行解析,得到由第一区块链执行的第一交易任务;将所述第一交易任务发送至所述第一区块链,接收所述第一区块链返回的第一交易结果,并将所述第一交易结果和所述跨链交易请求发送至第二跨链代理;
第一区块链,用于执行所述第一交易任务产生第一交易结果,并将所述第一交易结果返回至所述第一跨链代理;
第二跨链代理,用于对所述跨链交易请求进行解析,得到由第二区块链执行的预设交易任务和第二交易任务;将所述第一交易结果写入所述预设交易任务的交易数据中,生成数据存储任务,并将所述数据存储任务发送至所述第二区块链;当所述第二区块链执行所述数据存储任务后,将所述第二交易任务发送至所述第二区块链;
第二区块链,用于执行所述数据存储任务,并基于所述数据存储任务的执行结果执行所述第二交易任务,得到所述跨链交易请求对应的跨链交易结果。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任意一项所述的跨链交易方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103201.9A CN116562872A (zh) | 2022-01-27 | 2022-01-27 | 跨链交易方法、系统及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103201.9A CN116562872A (zh) | 2022-01-27 | 2022-01-27 | 跨链交易方法、系统及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116562872A true CN116562872A (zh) | 2023-08-08 |
Family
ID=87490296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210103201.9A Pending CN116562872A (zh) | 2022-01-27 | 2022-01-27 | 跨链交易方法、系统及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116562872A (zh) |
-
2022
- 2022-01-27 CN CN202210103201.9A patent/CN116562872A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109981679B (zh) | 在区块链网络中执行事务的方法和装置 | |
CN110598434B (zh) | 基于区块链网络的房屋信息处理方法、装置、电子设备及存储介质 | |
CN111177246B (zh) | 一种业务数据的处理方法及装置 | |
Sardar et al. | Demystifying attestation in intel trust domain extensions via formal verification | |
CN114626088A (zh) | 基于算法互联的隐私计算平台的任务处理方法及装置 | |
CN111612452A (zh) | 一种基于区块链的知识产权管理系统及方法 | |
CN114221972A (zh) | 中继区块链系统以及跨链交易方法 | |
CN113761497A (zh) | 一种分布式电力交易可信身份管理方法、系统、计算机设备 | |
CN113269639A (zh) | 一种基于区块链智能合约的业务处理方法、装置、设备及介质 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN110766548A (zh) | 基于区块链的信息处理方法、装置、存储介质及电子设备 | |
CN113301163B (zh) | 业务处理方法、系统、电子设备及存储介质 | |
CN108540335A (zh) | 设备分析报告的管理方法及管理装置 | |
CN112291321A (zh) | 业务处理方法、装置及系统 | |
CN116562872A (zh) | 跨链交易方法、系统及计算机可读介质 | |
CN112132588B (zh) | 基于区块链的数据处理方法、装置、路由设备及存储介质 | |
KR20230132878A (ko) | 실행-오더-검증 블록체인 모델들에서 트랜잭션 취소들 감소 | |
Reed et al. | Bulwark: A framework to store iot data in user accounts | |
CN113706261A (zh) | 一种基于区块链的电力交易方法、装置及系统 | |
CN114329368A (zh) | 交易账户的管理方法、装置、计算机可读介质及电子设备 | |
Bavendiek et al. | Privacy-preserving architectures with probabilistic guaranties | |
CN113987035A (zh) | 区块链的外部数据访问方法、装置、系统、设备和介质 | |
CN114024692A (zh) | 签约方法、装置及系统 | |
Sardar et al. | Formal Specification and Verification of Architecturally-defined Attestation Mechanisms in Arm CCA and Intel TDX | |
CN117574320B (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 |