CN115701078A - 跨链交易处理方法、装置、电子设备以及存储介质 - Google Patents

跨链交易处理方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN115701078A
CN115701078A CN202110853182.7A CN202110853182A CN115701078A CN 115701078 A CN115701078 A CN 115701078A CN 202110853182 A CN202110853182 A CN 202110853182A CN 115701078 A CN115701078 A CN 115701078A
Authority
CN
China
Prior art keywords
cross
blockchain
chain
transaction
chain transaction
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
CN202110853182.7A
Other languages
English (en)
Other versions
CN115701078B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110853182.7A priority Critical patent/CN115701078B/zh
Priority claimed from CN202110853182.7A external-priority patent/CN115701078B/zh
Priority to EP22848107.3A priority patent/EP4287102A1/en
Priority to PCT/CN2022/099545 priority patent/WO2023005500A1/zh
Priority to JP2023548555A priority patent/JP2024506093A/ja
Publication of CN115701078A publication Critical patent/CN115701078A/zh
Priority to US18/135,542 priority patent/US20230259930A1/en
Application granted granted Critical
Publication of CN115701078B publication Critical patent/CN115701078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, 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/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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 involving digital signatures
    • H04L9/3255Cryptographic 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 involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请公开了一种跨链交易处理方法、装置、电子设备以及存储介质,属于区块链技术领域。所述方法通过在接收到终端的跨链交易请求时,区块链系统中的节点设备运行区块链上的业务合约和跨链合约,进行跨链交易,当跨链交易完成后,并向终端返回交易完成响应,在该跨链交易处理的过程中,终端请求进行跨链交易并接收跨链交易的处理结果,并不关心跨链交易的具体处理过程,从而降低了终端的业务负担。

Description

跨链交易处理方法、装置、电子设备以及存储介质
技术领域
本申请涉及区块链技术领域,特别涉及一种跨链交易处理方法、装置、电子设备以及存储介质。
背景技术
随着区块链技术的发展,区块链技术被广泛应用在各个行业,每个行业均可以按照自身需求构建区块链系统,以便采用构建的区块链系统存储各自的资产。不同行业可以为用户提供不同的业务,为了实现不同业务之间的资产转移,跨链互操作技术应运而生,跨链互操作技术可以促进不同区块链系统的链间协同工作,是区块链向着网络效应规模化发展的强力推手,逐渐成为应用需求的新热点。
当前的跨链互操作技术主要包括哈希锁定、公证人机制、侧链/中继等技术。对于当前的这些跨链互操作技术,终端均需要处理跨链事件的一致性以及跨链事件验证等一系列复杂的跨链事务,增加了终端的业务负担。
发明内容
本申请实施例提供了一种跨链交易处理方法、装置、电子设备以及存储介质,能够在进行跨链业务时降低终端的业务负担。所述技术方案如下:
一方面,提供了一种跨链交易处理方法,由区块链系统中的第一节点设备执行,所述区块链系统内配置有第一区块链和第二区块链,所述方法包括:
接收终端的跨链交易请求,所述跨链交易请求指示在所述第一区块链和所述第二区块链之间进行跨链交易;
基于所述跨链交易请求,运行所述第一区块链上的第一业务合约,所述第一业务合约指示所述跨链交易在所述第一区块链上的第一执行方式;
响应于所述第一业务合约,在所述第一区块链上执行所述跨链交易的第一交易事件,运行所述第一区块链上的第一跨链合约,确定在所述第二区块链执行所述跨链交易的第二交易事件,所述第一跨链合约指示所述跨链交易在所述第一区块链上的第二执行方式;
响应于所述第一业务合约,在所述第一区块链上存储第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行所述第一交易事件以及在所述第二区块链上执行所述第二交易事件;
从所述第二区块链获取第二跨链交易数据,所述第二跨链交易数据基于所述第一跨链交易数据得到,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件;
向所述终端发送交易完成响应,所述交易完成响应指示所述跨链交易已经完成。
另一方面,提供了一种跨链交易处理方法,由区块链系统中第二节点设备执行,所述区块链系统内配置有第一区块链和第二区块链,所述方法包括:
从所述第一区块链获取第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行跨链交易的第一交易事件以及在所述第二区块链上执行所述跨链交易的第二交易事件;
基于所述第一跨链交易数据,运行所述第二区块链上的第二跨链合约,所述第二跨链合约指示所述跨链交易在所述第二区块链上的第四执行方式;
响应于所述第二跨链合约,在所述第二区块链上存储所述第一跨链交易数据,运行所述第二区块链上的第二业务合约,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式;
响应于所述第二业务合约,在所述第二区块链上执行所述第二交易事件,继续运行所述第二跨链合约,在所述第二区块链上存储第二跨链交易数据,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件。
另一方面,提供了一种用于跨链交易处理的区块链系统,所述区块链系统包括第一节点设备、第二节点设备、第一网关设备以及第二网关设备,所述区块链系统内配置有第一区块链和第二区块链;
所述第一节点设备用于:
接收终端的跨链交易请求,所述跨链交易请求指示在所述第一区块链和所述第二区块链之间进行跨链交易;
基于所述跨链交易请求,运行所述第一区块链上的第一业务合约,所述第一业务合约指示所述跨链交易在所述第一区块链上的第一执行方式;
响应于所述第一业务合约,在所述第一区块链上执行所述跨链交易的第一交易事件,运行所述第一区块链上的第一跨链合约,确定在所述第二区块链执行所述跨链交易的第二交易事件,所述第一跨链合约指示所述跨链交易在所述第一区块链上的第二执行方式;
响应于所述第一业务合约,在所述第一区块链上存储第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行所述第一交易事件以及在所述第二区块链上执行所述第二交易事件;
所述第一网关设备,用于将所述第一区块链上的所述第一跨链交易数据发送至所述第二网关设备;
所述第二网关设备,用于将所述第一跨链交易数据发送至所述第二节点设备;
所述第二节点设备用于:
基于所述第一跨链交易数据,运行所述第二区块链上的第二跨链合约,所述第二跨链合约指示所述跨链交易在所述第二区块链上的第四执行方式;
响应于所述第二跨链合约,在所述第二区块链上存储所述第一跨链交易数据,运行所述第二区块链上的第二业务合约,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式;
响应于所述第二业务合约,在所述第二区块链上执行所述第二交易事件,继续运行所述第二跨链合约,在所述第二区块链上存储第二跨链交易数据,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件;
所述第二网关设备,还用于将所述第二区块链上的所述第二跨链交易数据发送至所述第一网关设备;
所述第一网关设备,还用于将所述第二跨链交易数据发送至所述第一节点设备;
所述第一节点设备,还用于从所述第一网关设备接收所述第二跨链交易数据,向所述终端发送交易完成响应,所述交易完成响应指示所述跨链交易已经完成。
另一方面,提供了一种跨链交易处理装置,所述装置被配置在区块链系统中,所述区块链系统内还配置有第一区块链和第二区块链,所述装置包括:
接收模块,用于接收终端的跨链交易请求,所述跨链交易请求指示在所述第一区块链和所述第二区块链之间进行跨链交易;
处理模块,用于所述处理模块用于基于所述跨链交易请求,运行所述第一区块链上的第一业务合约,所述第一业务合约指示所述跨链交易在所述第一区块链上的第一执行方式;响应于所述第一业务合约,在所述第一区块链上执行所述跨链交易的第一交易事件,运行所述第一区块链上的第一跨链合约,确定在所述第二区块链执行所述跨链交易的第二交易事件,所述第一跨链合约指示所述跨链交易在所述第一区块链上的第二执行方式;响应于所述第一业务合约,在所述第一区块链上存储第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行所述第一交易事件以及在所述第二区块链上执行所述第二交易事件;
所述接收模块,还用于从所述第二区块链获取第二跨链交易数据,所述第二跨链交易数据基于所述第一跨链交易数据得到,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件;
所述处理模块,还用于向所述终端发送交易完成响应,所述交易完成响应指示所述跨链交易已经完成。
在一些实施例中,所述处理模块还用于:
基于所述第二跨链交易数据,再次运行所述第一跨链合约;
响应于再次运行的所述第一跨链合约,将所述第二跨链交易数据发送至所述第一业务合约,再次运行所述第一业务合约,向所述终端发送所述交易完成响应。
在一些实施例中,所述接收模块,还用于接收所述第二跨链交易数据的数字签名,所述数字签名指示所述第二跨链交易数据已存储至所述第二区块链;
所述将所述第二跨链交易数据发送至所述第一业务合约包括:
若所述第二跨链交易数据的数字签名的个数大于第一阈值,则将所述第二跨链交易数据发送至所述第一业务合约。
在一些实施例中,所述接收模块还用于:
若所述第一区块链对应第一网关设备且所述第二区块链对应第二网关设备,从所述第一网关设备接收所述第二网关设备提供的所述第二区块链上的所述第二跨链交易数据。
在一些实施例中,所述跨链交易请求包括所述跨链交易的交易信息、所述第一业务合约的标识以及所述第二区块链上的第二业务合约的标识,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式。
另一方面,提供了一种跨链交易处理装置,所述装置被配置在区块链系统中,所述区块链系统内还配置有第一区块链和第二区块链,所述装置包括:
获取模块,用于从所述第一区块链获取第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行跨链交易的第一交易事件以及在所述第二区块链上执行所述跨链交易的第二交易事件;
处理模块,用于基于所述第一跨链交易数据,运行所述第二区块链上的第二跨链合约,所述第二跨链合约指示所述跨链交易在所述第二区块链上的第四执行方式;响应于所述第二跨链合约,在所述第二区块链上存储所述第一跨链交易数据,运行所述第二区块链上的第二业务合约,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式;响应于所述第二业务合约,在所述第二区块链上执行所述第二交易事件,继续运行所述第二跨链合约,在所述第二区块链上存储第二跨链交易数据,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件。
在一些实施例中,所述获取模块,还用于接收所述第一跨链交易数据的数字签名,所述数字签名指示所述第一跨链交易数据已存储至所述第一区块链;
所述在所述第二区块链上存储所述第一跨链交易数据包括:
若所述第一跨链交易数据的数字签名的个数大于第二阈值,则在所述第二区块链上存储所述第一跨链交易数据。
在一些实施例中,所述获取模块用于:
若所述第一区块链对应第一网关设备且所述第二区块链对应第二网关设备,从所述第二网关设备接收所述第一网关设备提供的所述第一区块链上的所述第一跨链交易数据。
另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行以实现上述任一方面所述的跨链交易处理方法内所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一段计算机程序,所述至少一段计算机程序由处理器加载并执行以实现如上述任一方面所述的跨链交易处理方法内所执行的操作。
另一方面,提供了一种计算机程序,该计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,电子设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该电子设备执行上述任一方面所提供的方法。
本申请实施例提供的技术方案带来的有益效果是:
通过在接收到终端的跨链交易请求时,区块链系统中的节点设备运行区块链上的业务合约和跨链合约,进行跨链交易,当跨链交易完成后,并向终端返回交易完成响应,在该跨链交易处理的过程中,终端请求进行跨链交易并接收跨链交易的处理结果,并不关心跨链交易的具体处理过程,从而降低了终端的业务负担。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链系统的示意图;
图2是本申请实施例提供的一种跨链交易处理方法的流程图;
图3A是本申请实施例提供的一种第一节点集合处理跨链交易的流程图;
图3B是本申请实施例提供的一种第二节点集合处理跨链交易的流程图;
图4是本申请实施例提供的一种跨链交易处理方法的示意图;
图5是本申请实施例提供的一种跨链交易处理装置的结构示意图;
图6是本申请实施例提供的一种跨链交易处理装置的结构示意图;
图7是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。
这些术语只是用于将一个元素与另一个元素区别开。例如,在不脱离各种示例的范围的情况下,第一元素能够被称为第二元素,并且类似地,第二元素也能够被称为第一元素。第一元素和第二元素都可以是元素,并且在某些情况下,可以是单独且不同的元素。
其中,至少一个是指一个或一个以上,例如,至少一个元素可以是一个元素、两个元素、三个元素等任意大于等于一的整数个元素。而至少两个是指两个或者两个以上,例如,至少两个元素可以是两个元素、三个元素等任意大于等于二的整数个元素。
本申请实施例提供跨链交易处理方案涉及区块链领域。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
下面先对本申请实施例涉及到的缩略语或关键术语进行定义。
智能合约:计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
区块链:包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
互操作:在两种或多种系统与应用之间交换信息,并对所交换信息加以使用的能力。
跨链:在多个区块链之间实现互操作,跨链是互操作的一种。
图1是本申请实施例提供的一种区块链系统的示意图。参见图1,该区块链系统100包括多个节点集群101,每个节点集群101对应一种业务,不同节点集群101对应的业务可以相同也可以不同。例如一个节点集群用于为第一应用程序(如支付宝)的支付业务提供服务,而另一个节点集群用于为第二应用程序(如微信)的支付业务的提供服务。
每个节点集群101用于处理对应业务涉及的交易事件,每个节点集群101中配置至少一个区块链,每个区块链上存储对应业务的交易事件的交易数据。同一个业务的交易数据包括同链交易数据和跨链交易数据。其中,同链交易数据指示针对本节点集群的业务(或者同链交易),在本节点集群的区块链上所执行的交易事件,而跨链交易数据指示针对不同节点集群之间的跨链业务(或者跨链交易),在本节点集群的区块链上所进行的跨链交易事件。
为了使跨链业务的处理透明化、可追溯,在一种可能的实现方式中,每个区块链上存储有业务合约和跨链合约,例如业务合约和跨链合约存储在区块链的创世区块(即该区块链的第一个区块)中。其中,该业务合约为业务层的智能合约,该业务合约具有读写本链(即业务合约所在的区块链)的状态数据的功能,且在处理跨链交易时,还可以调用同一区块链上的跨链合约来处理跨链业务。该跨链合约为用于处理跨链交易的智能合约,可以作为同一链上的业务合约的代理合约,来处理跨链交易。该跨链合约可以接受本链上业务合约的调用(即链内合约调用),基于涉及本链的跨链交易,确定在对方链(即跨链交易涉及的其他节点集群中的区块链)上所要执行的交易事件,验证对方链上存储的跨链交易数据是否合法,回调本链上的业务合约,回滚跨链交易数据等功能。跨链合约是整个跨链过程中的决策者,并且以智能合约的方式在链上公开执行,以实现多方参与(去中心化)的跨链业务。
在一种可能的实现方式中,每个节点集群101包括多个节点设备1011,每个节点集群101中配置的区块链由每个节点集群101中的节点设备1011来维护。该区块链系统100中的每个节点设备1011均可以是用户侧的终端,也可以是服务器。其中,终端也被称为智能终端或移动智能终端,是指一类具备丰富人机交互方式、拥有接入互联网能力、通常搭载各种操作系统、具有较强处理能力的设备。在一些实施例中,移动智能终端的类型包括但不限于智能手机、平板电脑、车载终端、掌上游戏主机等。服务器可以是一个或多个计算机设备所组成的服务器集群。
在一种可能的实现方式中,每个节点集群101还包括网关设备1012,该网关设备1012为所在节点集群对外的接口,负责处理不同节点集群之间的跨链交易数据的传递。在一些实施例中,本申请中涉及的网关设备也可以称为跨链网关。
在一种可能的实现方式中,每个节点集群101还包括验证节点设备1013,一个验证节点设备1013可以为所属节点集群中的区块链上的跨链交易数据,进行合法性证明。可选地,网关设备1012作为跨链过程中的中继角色,通过调用所属节点集群的验证节点设备1013,来对该节点集群中区块链上的跨链交易数据进行合法性证明。需要说明的是,验证节点设备1013为可选设备,在一些实施例中不对跨链交易数据进行合法性证明,则也就不包括验证节点1013。
为了便于管理该区块链系统100中的不同节点集群101,在一种可能的实现方式中,该区块链系统100还包括注册设备102。各个节点集群101内配置的区块链的标识、每个节点集群中对应的业务的标识可以在该注册设备内注册。或者每个节点集群内的各个用户均可以在该注册设备102上注册统一的区块链账户(即区块链上的账户)。不同节点集群101内的用户所注册的区块链账户属于不同的区块链,以便在对应区块链上记录该用户的资产、该用户的资产转移、资产修改的情况。在一种可能的实现方式中,网关设备1012还可以在该注册设备102上查询用户的区块链账户以及该区块链账户所属区块链的标识。需要说明的是,注册设备102为可选设备,例如该区块链系统100内不同集群配置的区块链不需统一管理或者区块链账户不需统一注册的,则此时该区块链系统100可以不包括注册设备102。
为了进一步说明区块链系统中节点设备处理跨链交易的过程,参见图2所示的本申请实施例提供的一种跨链交易处理方法的流程图。该方法由区块链系统中的第一节点设备执行,该区块链系统内配置有第一区块链和第二区块链。
201、该第一节点设备接收终端的跨链交易请求,该跨链交易请求指示在该第一区块链和该第二区块链之间进行跨链交易。
其中,该第一节点设备为该区块链系统中第一节点集群内的任一节点设备,该第一节点集群为该区块链系统中的任一节点集群。该第一节点集群内部署有第一区块链。该终端可以是该第一节点设备,也可以是该第一节点设备以外的电子设备。
该跨链交易请求包括该跨链交易的交易信息、该第一业务合约的标识以及该第二区块链上的第二业务合约的标识。该跨链交易可以是对第二区块链和第二区块链进行跨链操作的交易,例如可以是将第一区块链上第一账户中目标数量的虚拟资源转移至第二区块链上的第二账户,也可以是同步修改该第一区块链和第二区块链上数据。在此,本申请实施例对该跨链交易不进行限定。
该跨链交易的交易信息指示该跨链交易。例如若该跨链交易为将第一区块链上第一账户中目标数量的虚拟资源转移至第二区块链上的第二账户,则该交易信息包括资源转出方账户、资源转入方账户以及资源转移量。其中,该资源转出方账户为该第一账户、该资源转入方账户为第二账户、该资源转移量为目标数量。再例如,若该跨链交易为同步修改该第一区块链和第二区块链上数据,则该交易信息可以包括该第一区块链以及第二区块链上待修改数据的位置以及该第一区块链以及第二区块链上待修改数据的修改后数据。
在一种可能的实现方式中,该跨链交易包括两个交易事件,一个对第一区块链的交易事件,一个是对第二区块链的交易事件,当这两个交易事件在对应的区块链上成功执行后,该跨链交易完成。为了便于描述,将该跨链交易对第一区块链的交易事件记为第一交易事件,将该跨链交易对第二区块链的交易事件记为第二交易事件。例如若该跨链交易为将第一区块链上第一账户中目标数量的虚拟资源转移至第二区块链上的第二账户,则第一交易事件为在第一账户中去除目标数量的虚拟资源,第二交易事件为在第二账户中增加目标数量的虚拟资源。
区块链上的业务合约指示在本链(即业务合约所在区块链)上处理跨链交易的处理逻辑。该处理逻辑包括对于在本链上发起的跨链交易,在本链上执行该跨链交易对本链的交易事件、通过调用本链上的跨链合约以获取该跨链交易对对方链(即跨链交易中涉及的除本链以外的区块链,或者说目标链)的交易事件以及在本链上存储该跨链交易的跨链交易数据。该处理逻辑还包括:对于在对方链上发起的跨链交易,接收本链上跨链合约的调用,以在本链上执行该跨链交易对本链的交易事件。业务合约所指示的各个处理逻辑由该业务合约中的程序代码(或计算机程序)来实现,不同的处理逻辑可以对应不同的程序代码。
一个业务合约的标识指示该业务合约,该业务合约的标识可以是该业务合约的名称。例如第一业务合约为第一区块链上的业务合约,第一业务合约的标识指示该第一业务合约,第二业务合约为第二区块链上的业务合约,第二业务合约的标识指示该第二业务合约。
202、该第一节点设备基于该跨链交易请求,运行该第一区块链上的第一业务合约,该第一业务合约指示该跨链交易在该第一区块链上的第一执行方式。
其中,该第二区块链为该区块链系统中的第二节点集群内配置的区块链,该第二节点集群为该区块链系统中除该第一节点集群以外的任一节点集群。
该第一业务合约为该第一区块链上的业务合约。该跨链交易请求是由该第一节点设备接收,则认为该跨链交易为在第一区块链上发起的跨链交易。该第一执行方式由该第一业务合约中与在本链上发起的跨链交易相关的处理逻辑来实现。该第一执行方式包括:在第一区块链上执行该跨链交易对第一区块链的交易事件、调用第一区块链上的跨链合约以获取该跨链交易对该第二区块链的交易事件、在第一区块链上存储该跨链交易的跨链交易数据。在一种可能的实现方式中,该第一执行方式还包括:向终端返回对该跨链交易的处理结果。
203、响应于该第一业务合约,该第一节点设备在该第一区块链执行该跨链交易的第一交易事件,运行该第一区块链上的第一跨链合约,确定在该第二区块链执行该跨链交易的第二交易事件,该第一跨链合约指示该跨链交易在该第一区块链上的第二执行方式。
区块链上的跨链合约指示跨链交易中与对方链相关的处理逻辑,该处理逻辑包括对于在本链上发起的跨链交易,确定该跨链交易对对方链的交易事件。在一种可能的实现中,该处理逻辑还包括对于在本链上发起的跨链交易,验证对方链上跨链交易的跨链交易数据的合法性、调用本链上的业务合约向终端返回该跨链交易的处理结果。其中,验证对方链上跨链交易的跨链交易数据的合法性为可选地。该处理逻辑还包括对于在对方链上发起的跨链交易,验证对方链上跨链交易的跨链交易数据的合法性、在本链上存储对方链上该跨链交易的跨链交易数据、调用本链上的业务合约执行该跨链交易对本链的交易事件、在本链上存储该跨链交易对本链的交易事件的跨链交易数据。其中,验证验证对方链上跨链交易的跨链交易数据的合法性为可选地。跨链合约所指示的处理逻辑由该跨链合约中的程序代码(或计算机程序)来实现,不同的处理逻辑可以对应不同的程序代码。
该第一跨链合约为该第一区块链上的跨链合约。该第二执行方式由该第一跨链合约中与在本链上发起的跨链交易相关的处理逻辑来实现。该第二执行方式包括确定在该区块链上执行该跨链交易的第二交易事件、验证第二区块链该跨链交易的跨链交易数据的合法性、调用第一业务合约向终端返回对该跨链交易的处理结果。
204、响应于该第一业务合约,该第一节点设备在该第一区块链上存储第一跨链交易数据,该第一跨链交易数据指示已在该第一区块链上执行该第一交易事件以及在该第二区块链上执行该第二交易事件。
其中,该第一跨链交易数据为该跨链交易的一种跨链交易数据。可选地,第一跨链交易数据包括该第一交易事件的处理结果、该第二业务合约的标识、第二交易事件的事件信息。其中,一个交易事件的处理结果包括第一处理结果和第二处理结果,第一处理结果指示已在在区块链上执行该交易事件且该交易事件执行成功,例如该交易事件为在第一账户中扣除目标数量的虚拟资源,若已经在该第一账户中扣除了目标数量的虚拟资源,则该交易事件执行成功。可选地,该第一处理结果包括该交易事件的事件信息以及成功标识,其中,该事件信息用于指示该交易事件,可以包括该交易事件的事件参数,以该交易事件为在第一账户中扣除目标数量的虚拟资源为例,该事件参数包括资源转出方信息、待转移资源量。该成功标识指示该交易事件已执行成功。
该第二处结果指示已在区块链上执行该交易事件且该交易事件执行失败。例如该交易事件为在第一账户中扣除目标数量的虚拟资源,若该第一账户中虚拟资源的个数小于目标数量,则该第一账户中不足以扣除目标数量的虚拟资源,则该交易事件执行失败。可选地,该第二处理结果包括该交易事件的事件信息以及失败标识,该失败标识指示该交易事件执行失败。
在一种可能的实现方式中,第一跨链交易数据还包括第二区块链的标识以及第二区块链上第二业务合约的标识。在一种可能的实现方式中,该第一跨链交易数据还包括第二业务合约中目标程序代码的标识。该目标程序代码用于实现该第二交易事件,该第二交易事件的事件信息为该目标程序代码的输入参数。
205、该第一节点设备从该第二区块链获取第二跨链交易数据,该第二跨链交易数据基于该第一跨链交易数据得到,该第二跨链交易数据指示已在该第二区块链上执行该第二交易事件。
其中,该第二跨链交易数据包括该第二交易事件的处理结果。
206、该第一节点设备向该终端发送该交易完成响应,该交易完成响应指示该跨链交易已经完成。
其中,该交易完成响应包括该跨链交易的交易信息。
本申请实施例提供的方法,通过在接收到终端的跨链交易请求时,区块链系统中的节点设备运行区块链上的业务合约和跨链合约,进行跨链交易,当跨链交易完成后,并向终端返回交易完成响应,在该跨链交易处理的过程中,终端请求进行跨链交易并接收跨链交易的处理结果,并不关心跨链交易的具体处理过程,从而降低了终端的业务负担。
为进一步说明第一节点集群和第二节点集群之间在处理跨链业务的过程中,不同节点集群内的节点设备的交互过程,参见图3所示的本申请实施例提供的一种跨链交易处理方法的流程图。
301、第一节点设备接收终端的跨链交易请求,该跨链交易请求指示在该第一区块链和该第二区块链之间进行跨链交易。
在一种可能的实现方式中,该终端内安装有业务应用,用户采用第一账户在终端上登录该业务应用,并对该业务应用下达向进行该跨链交易的指令。当该业务应用接收到指令后,生成该跨链交易请求,并向终端发送给跨链交易请求。
若该终端为该第一节点设备以外的设备,该终端向该第一节点设备发送该跨链交易请求,相应地,该第一节点设备从该终端接收该跨链交易请求。
若该终端为第一节点设备,则该第一节点设备接收该业务应用发送的该跨链交易请求。
302、该第一节点设备基于该跨链交易请求,运行第一区块链上的第一业务合约,该第一业务合约指示该跨链交易在该第一区块链上的第一执行方式。
当接收到该跨链交易请求后,触发该第一节点设备从本地的第一区块链上获取该第一业务合约,并将该跨链交易请求作为第一业务合约输入参数,输入至该第一业务合约中,并运行该第一业务合约。
303、响应于该第一业务合约,该第一节点设备在该第一区块链上执行该跨链交易的第一交易事件,运行该第一区块链上的第一跨链合约,确定在该第二区块链执行该跨链交易的第二交易事件,该第一跨链合约指示该跨链交易在该第一区块链上的第二执行方式。
响应于该第一业务合约的运行,该第一节点设备基于该跨链交易请求中该跨链交易的交易信息,确定该跨链交易的第一交易事件,并在该第一区块链上执行该第一交易事件,得到该第一交易事件的处理结果。可选地,若该第一交易事件执行成功,则该第一交易事件的处理结果为第一处理结果,若该第一交易事件执行失败,则该第一交易事件的处理结果为第二处理结果。
响应于第一业务合约的运行,当该跨链交易请求输入到该第一业务合约时,触发第一业务合约调用第一区块链上的第一跨链合约。响应于调用第一区块链上的第一跨链合约,该第一节点设备从第一区块链中获取第一跨链合约,将该跨链交易的交易信息作为输入参数输入至该第一跨链合约,并运行该第一跨链合约。
响应于第一跨链合约的运行,该第一节点设备基于该交易信息确定在该第二区块链执行该跨链交易的第二交易事件,当确定出该第二交易事件后,该第一节点设备将该第二交易事件的事件信息返回给第一业务合约。
在一种可能的实现方式中,该区块链系统中每个区块链上均存储有该区块链系统中各个区块链的区块链信息。例如每个区块链的创世区块中均存储有该区块链系统中各个区块链的区块链信息,再例如,每个区块链上的跨链合约或业务合约均存储有该区块链系统中各个区块链的区块链信息。其中,一个区块链的区块链信息包括该区块链所属的节点集合的标识、该区块链的标识。可选地,每个区块链的区块链信息还包括每个区块链上的业务合约的标识、以及业务合约中用于执行跨链交易的交易事件的程序代码(或计算机程序)的标识
在一种可能的实现方式中,响应于第一跨链合约的运行,该第一节点设备还可以基于该第二业务合约的标识以及该第二交易事件,查询该第一区块链上存储的第二区块链的区块链信息,以确定该第二业务合约中用于实现该第二交易事件的目标程序代码,并向该第一业务合约返回该目标程序代码的标识。
304、响应于该第一业务合约,该第一节点设备在该第一区块链上存储第一跨链交易数据,该第一跨链交易数据指示已在该第一区块链上执行该第一交易事件以及在该第二区块链上执行该第二交易事件。
响应于该第一业务合约的运行,该第一节点设备获取该第一交易事件的处理结果以及获取第一跨链合约返回的第二交易事件的事件信息,该第一节点设备基于该第一交易事件的处理结果以及该第二交易事件的事件信息,生成该第一跨链交易数据,并在该第一区块链上存储该第一跨链交易数据。
在一种可能的实现方式中,该第一节点设备基于该第一交易事件的处理结果以及该第二交易事件的事件信息,生成该第一跨链交易数据包括:该第一节点设备基于该第一交易事件的处理结果、该第二交易事件的事件信息、第二业务合约的标识以及该第二业务合约中目标程序代码的标识,生成该第一跨链交易数据。
为了便于描述,将节点集群中用于生成区块的节点设备记为区块生成节点设备,将节点集群中用于共识区块的节点设备记为共识节点设备。在一种可能的实现方式中,该第一节点设备在该第一区块链上存储该第一跨链交易数据包括:该第一节点设备将该第一跨链交易数据在该第一节点集群中广播,该第一节点集群中的区块生成节点设备在接收到该第一跨链交易数据后,将该第一跨链交易数据打包至目标区块中。当该目标区块生成后,该区块生成节点设备在该第一节点集群的共识节点设备之间广播该目标区块。当该第一节点集群中的多数共识节点设备对该目标区块共识通过后,该第一节点集群中的各个第一节点设备均将目标区块存储在本地的第一区块链上,从而实现在第一区块链上存储该第一跨链交易数据。
305、第一网关设备在第一区块链上,获取第一跨链交易数据。
其中,第一网关设备为第一区块链所对应的网关设备。在一种可能的实现方式中,当该第一区块链上每增加至少一个区块时,该第一网关设备查询该至少一个区块中是否包含跨链交易数据。若包含跨链交易数据,则该第一网关设备获取查询到的跨链交易数据。因此,当该第一网关设备从第一区块链上查询到包含该第一跨链交易数据的目标区块后,该第一网关设备从该目标区块内获取到该第一跨链交易数据。
在另一种可能的实现方式中,该第一网关设备监听该第一区块链上的第一跨链合约是否出现调用事件,若出现调用事件,则该第一网关设备从第一区块链上获取与该调用事件相关的跨链交易数据(如第一跨链交易数据)。
需要说明的是,第一跨链交易数据为本申请实施例中涉及的一个跨链交易数据,因此,本步骤305所示的过程也即是区块链系统中的网关设备从该网关设备对应的区块链上,获取跨链交易数据的过程。
306、该第一网关设备向第一验证节点设备发送该第一跨链交易数据的第一签名获取请求,该第一签名获取请求指示获取该第一跨链交易数据的数字签名。
其中,该第一验证节点设备为第一节点集合中的验证节点设备,也即是第一区块链对应的验证节点设备。该第一跨链交易数据的一个数字签名用于指示该第一跨链交易数据存储在该第一区块链上,或者说一个验证节点设备为该第一区块链上存储有第一跨链交易数据做证明。可选地,第一签名获取请求包括该第一跨链交易数据的哈希值以及该第一跨链交易数据所属目标区块的标识。其中,该目标区块的区块标识为目标区块在第一区块链上的块高,以指示该目标区块为第一区块链上的第几个区块。
需要说明的是,第一签名获取请求为本申请实施例中涉及的一种签名获取请求,因此,本步骤306所示的过程也即是区块链系统中的网关设备向验证节点设备发送签名获取请求的过程。
307、第一验证节点设备从第一网关设备,接收该第一签名获取请求。
308、该第一验证节点设备基于该第一签名获取请求,对该第一跨链交易数据进行签名,得到该第一跨链交易数据的数字签名,该第一数字签名指示该第一区块链上存储有该第一跨链交易数据。
在一种可能的实现方式中,该第一节点集合包括至少一个第一验证节点设备,该至少一个第一验证节点设备作为该第一节点集合中的验证节点组。接收到该第一签名获取请求的任一第一验证节点设备在该验证节点组中广播该第一签名获取请求。接收到第一签名获取请求的每个第一验证节点设备均执行本步骤308。
在一种可能的实现方式中,一个第一验证节点设备基于该第一签名获取请求,对该第一跨链交易数据进行签名的方式可以包括下述方式A-D中的任一方式。
方式A、该第一验证节点设备基于该第一签名获取请求,对该第一跨链交易数据进行背书,得到该第一跨链交易数据的数字签名。
该第一验证节点设备基于该第一签名获取请求中目标区块的标识,确定第一区块链上的目标区块,并基于第一签名获取请求中该第一跨链交易数据的哈希值,查询该目标区块中是否存储有该第一跨链交易数据。若该目标区块中存储该第一跨链交易数据,则该第一验证节点设备采用该第一验证节点设备的私钥,对第一跨链交易数据的哈希值进行签名(或者说加密),以完成背书,得到第一验证节点设备对该第一跨链交易数据的数字签名,该数字签名也即是该第一跨链交易数据加密后的哈希值,是该第一验证节点设备对该第一跨链交易数据的合法性证明。
若该目标区块中没有存储该第一跨链交易数据,则该第一验证节点设备不采用该第一验证节点设备的私钥,对第一跨链交易数据的哈希值进行签名。
在一种可能的实现方式中,该第一验证节点设备基于第一签名获取请求中该第一跨链交易数据的哈希值,查询该目标区块中是否存储有该第一跨链交易数据包括:该第一验证节点设备从该目标区块的区块头内获取该目标区块的默克尔根,该目标区块的默克尔根由该目标区块中各个交易数据的哈希值得到,该第一验证节点设备基于该默克尔根,计算该目标区块中各个交易数据的哈希值。若计算出的某一个交易数据的哈希值与该第一跨链交易数据的哈希值相同,则该交易数据为该第一跨链交易数据,也即是该目标区块中存储有该第一跨链交易数据,则该第一验证节点设备确定该第一区块链上存储有该第一跨链交易数据。若计算出的各个交易数据的哈希值均与该第一跨链交易数据的哈希值不同,也即是该目标区块中不包括该第一跨链交易数据,则该第一验证节点设备确定该第一区块链上没有存储该第一跨链交易数据。
在一种可能的实现方式中,第一签名获取请求不包括该第一跨链交易数据的哈希值,包括该第一跨链交易数据,则该第一验证节点设备基于该第一签名获取请求中的第一跨链交易数据,从该目标区块中查询该第一跨链交易数据,若能在该目标区块中查询到该第一跨链交易数据,则该第一验证节点设备确定该第一区块链上存储有该第一跨链交易数据,否则该第一验证节点设备确定该第一区块链上没有存储该第一跨链交易数据。
方式B、该第一验证节点设备为轻节点,轻节点中同步有第一区块链上各个区块的区块信息,则该第一验证节点设备基于该第一签名获取请求中目标区块的标识,从同步的该第一区块链上各个区块的区块信息中,获取该目标区块的区块信息,并从目标区块的区块信息中获取该目标区块的默克尔根。该第一验证节点设备基于获取该目标区块的默克尔根以及该第一签名获取请求中第一跨链交易数据的哈希值,确定该目标区块中是否存储有该第一跨链交易数据,若存储有第一跨链交易数据,则该第一验证节点设备对该第一跨链交易数据的哈希值进行签名,得到该第一跨链交易数据的数字签名。
其中,该第一验证节点设备基于获取该目标区块的默克尔根以及该第一签名获取请求中第一跨链交易数据的哈希值,确定该目标区块中是否存储有该第一跨链交易数据,在上文有相关描述,在此不再赘述。
方式C、该第一验证节点设备配置有该第一区块链的中继链,该中继链中存储有第一区块链上各个区块的区块信息,该第一验证节点设备可以参照方式B的方式,基于中继链上该目标区块的区块信息,得到该第一跨链交易数据的数字签名。
方式D、该第一验证节点设备将该第一签名获取请求发送至该第一验证节点设备的TEE(Trusted Execution Environment,可信执行环境),该TEE中存储有数字签名程序代码,该第一验证节点设备在TEE中运行数字签名程序代码,以使得该第一验证节点设备基于第一签名获取请求,得到该第一跨链交易数据的数字签名。其中,数字签名程序代码用于实现对跨链交易数据进行签名的任一签名机制。该任一签名机制可以与上述方式A-C中的任一种类似或相同,也可以是上述方式A-C不相同。
需要说明的是,本申请所涉及到数字签名是对跨链交易数据的合法性证明。本申请实施例对该第一验证节点设备基于该第一签名获取请求,获取该第一跨链交易数据的数字签名的方式不做限定,可根据实际的应用场景进行设置。本步骤308所示的过程也即是验证节点设备基于该签名获取请求,获取跨链交易数据的数字签名的过程。
309、该第一验证节点设备向第一网关设备发送该第一跨链交易数据的数字签名。
在一种可能的实现方式中,第一节点集群中的每个第一验证节点设备均执行本步骤309。每个第一验证节点设备生成该第一跨链交易数据的第一签名响应,并向该第一网关设备发送该第一签名响应。
其中,若一个第一验证节点设备对该第一跨链交易数据进行了签名,则该第一验证节点设备生成的该第一签名响应包括该第一验证节点设备对该第一跨链交易数据的一个数字签名。若第一验证节点设备对该第一跨链交易数据进行了签名,则该第一签名响应包括该第一跨链交易数据的哈希值,不包括该第一跨链交易数据的数字签名。
310、第一网关设备接收该第一跨链交易数据的数字签名。
可选地,该第一网关设备从每个第一验证节点设备接收该第一签名响应,从接收到的第一签名响应中获取该第一跨链交易数据的数字签名。
需要说明的是,步骤306-310所示的过程为可选过程,在一些实施例中,若无须验证跨链交易数据的合法性,则步骤306-310所示的过程可以不执行。
311、该第一网关设备向第二网关设备发送该第一跨链交易数据以及该第一跨链交易数据的数字签名。
其中,该第二网关设备为第二节点集合中的网关设备,也即是第二区块链对应的网关设备。
在一种可能的实现方式中,为了兼容多个不同节点集群之间的跨链互操作,本申请定义了一套目标跨链协议,该目标跨链协议为该区块链系统中各个网关设备之间进行通信所使用的通用跨链协议,且网关设备与所属节点集群内的通信采用所节点集群的内部协议。即区块链系统内不同节点集合中的网关设备之间通过目标跨链协议进行数据传输。而同一节点集合中的设备之间可以通过特定的传输协议进行数据传输。不同节点集合中所使用的传输协议可以不同。为了便于描述,将第一节点集合中所使用的传输协议记为第一传输协议进行数据传输,将第二节点集合中使用的传输协议记为第二传输协议。
在一种可能的实现方式中,该第一网关设备基于该第一跨链交易数据以及第一跨链交易数据的数字签名,生成符合目标跨链协议的第一跨链消息,并向该第二网关设备发送该第一跨链消息。其中,该第一跨链消息包括该第一跨链交易数据以及第一跨链交易数据的数字签名,该第一跨链消息的数据格式符合目标跨链协议规定的跨链消息数据格式。
在一种可能的实现方式中,若上述步骤306-310所示的过程未执行,则该第一网关设备向第二网关设备发送该第一跨链交易数据,而不向该第二网关设备发送第一跨链交易数据的数字签名,相应地,该第一跨链消息不包括第一数字签名。
312、该第二网关设备接收第一跨链交易数据以及该第一跨链交易数据的数字签名。
在一种可能的实现方式中,该第二网关设备接收第一跨链消息,从该第一跨链消息中获取该第一跨链交易数据以及该第一跨链交易数据的数字签名。
313、该第二网关设备向第二节点设备发送该第一跨链交易数据以及该第一跨链交易数据的数字签名。
其中,该第二节点设备为该第二节点集合中的任一节点设备。
在一种可能的实现方式中,为了使得该第二节点设备能够识别出该第一跨链交易数据以及该第一跨链交易数据的数字签名,该第二网关设备基于第一跨链交易数据以及该第一跨链交易数据的数字签名,生成符合第二传输协议的第二跨链消息。其中,该第二跨链消息包括第一跨链交易数据以及该第一跨链交易数据的数字签名,且第二跨链消息的数据格式符合第二传输协议中跨链消息的数据格式。
当生成该第二跨链消息后,也就完成对第一跨链消息的格式转换,该第二网关设备向第二节点设备发送该第二跨链消息。
314、该第二节点设备接收第一跨链交易数据以及该第一跨链交易数据的数字签名。
在一种可能的实现方式中,该第二节点设备接收第二跨链消息,从该第二跨链消息中获取第一跨链交易数据以及该第一跨链交易数据的数字签名。
上述步骤312-314所示的过程,也即是第二节点设备从该第一区块链获取第一跨链交易数据的过程。
315、该第二节点设备基于该第一跨链交易数据,运行该第二区块链上的第二跨链合约,该第二跨链合约用于指示跨链业务在该第二区块链上的第四执行方式。
其中,该第二跨链合约为该第二区块链上的跨链合约。对于第二节点设备而言,第一区块链为对方链,第二区块链为本链,对于第一节点设备而言,第一区块链为本链,第二区块链为对方链。该第四执行方式由该第二跨链合约中与在对方链上发起的跨链交易相关的处理逻辑来实现。该第四执行方式包括验证第一区块链上第一跨链交易数据的合法性、在第二区块链上存储第一跨链交易数据、调用第二业务合约在第二区块链上执行第二交易事件、在第二区块链上存储第二跨链交易数据。其中,验证第一区块链上第一跨链交易数据的合法性为可选地。
当接收第一跨链交易数据(或者该第一跨链交易数据和第一的跨链交易数据数字签名)后,触发该第二节点设备从本地的第二区块链上获取该第二跨链合约,以调用该第一跨链合约。该第二节点设备将第一跨链交易数据(或者该第一跨链交易数据和第一跨链交易数据的数字签名)作为第二跨链合约的输入参数,输入至该第二跨链合约中,并运行该第二跨链合约。
316、响应于该第二跨链合约,该第二节点设备在该第二区块链上存储该第一跨链交易数据,运行第二业务合约,该第二业务合约指示该跨链业务在该第二区块链上的第三执行方式。
其中,该第二业务合约为该第二区块链上的业务合约。第三执行方式由该第二跨链合约中与在对方链上发起的跨链交易相关的处理逻辑来实现。该第三执行方式包括接收第二跨链合约的调用,在该第二区块链上执行第二交易事件。响应于该第二跨链合约的运行,该第二节点设备在该第二区块链上存储该第一跨链交易数据,以触发调用第二区块链上的第二业务合约。响应于触发调用第二区块链上的第二业务合约,该第二节点设备从本地的第二区块链中获取该第二业务合约,并将该第一跨链交易数据中第二交易事件的事件信息(或该事件信息与目标程序代码的标识)作为该第二业务合约的输入参数,输入至该第二业务合约,该第二节点设备运行该第二业务合约。
在一种可能的实现方式中,该第二节点设备在该第二区块链上存储该第一跨链交易数据包括:该第二节点设备基于该第一跨链交易数据的数字签名,对该第一跨链交易数据进行验证,若该第一跨链交易数据验证通过,该第二节点设备将该第一跨链交易数据存储在第二区块链上,若该第一跨链交易数据验证不通过,则该第二节点设备不执行后续的步骤。
其中,该第二节点设备基于该第一跨链交易数据的数字签名,对该第一跨链交易数据进行验证包括:
若该第一跨链交易数据的数字签名的个数大于第二阈值,则对该第一跨链交易数据验证通过,否则该第二节点设备对该第一跨链交易数据验证不通过。其中,该第二阈值为第一节点集群中验证节点设备的总个数的一半;
或者,第二节点设备对第一跨链交易数据的数据格式进行验证,若第一跨链交易数据的数据格式通过验证且该第二跨链交易数据的数字签名的个数大于第二阈值,则该第一节点设备对该第二跨链交易数据验证通过,否则对该第二跨链交易数据验证不通过。
其中,第二节点设备对第一跨链交易数据的数据格式进行验证包括:该第二节点设备检测该第一跨链交易数据的数据格式是否符合预设的第一数据格式,若该第一跨链交易数据的数据格式符合预设的第一数据格式,则对该第一跨链交易数据的数据格式验证通过,否则对该第二跨链交易数据的数据格式验证不通过。
317、响应于该第二业务合约,该第二节点设备在该第二区块链上执行该第二交易事件,继续运行该第二跨链合约,在该第二区块链上存储第二跨链交易数据,该第二跨链交易数据已在该第二区块链上执行该第二交易事件。
响应于该第二业务合约的运行,该第二节点设备基于该第一跨链交易数据中目标程序代码的标识,将第二交易事件的事件信息作为目标程序代码的输入参数,输入至该业务合约的目标程序代码,并运行该目标程序代码。
响应于该目标程序代码的运行,该第二节点设备在该第二区块链上执行该第二交易事件,向第二跨链合约返回该第二交易事件的处理结果。若该第二交易事件执行成功,则该第二交易事件的处理结果为第一处理结果,若该第二交易事件执行失败,则该第二交易事件的处理结果为第二处理结果。
响应于第二业务合约返回的第二交易事件的处理结果,触发第一节点设备继续执行该第二跨链合约。响应于该第二跨链合约的继续执行,该第二节点设备基于该第二交易事件的处理结果,生成该第二跨链交易数据,并在该第二区块链上存储该第二跨链交易数据。
其中,第二节点设备在该第二区块链上存储该第二跨链交易数据的过程与上述步骤303中第一节点设备在该第一区块链上存储该第一跨链交易数据的过程同理,在此,本申请实施例对第二节点设备在该第二区块链上存储该第二跨链交易数据的过程不做赘述。
318、第二网关设备在第二区块链上,获取第二跨链交易数据。
本步骤318与上述步骤305同理,在此,本申请实施例对本步骤318不做赘述。
319、该第二网关设备向第二验证节点设备发送该第二跨链交易数据的第二签名获取请求,该第二签名获取请求指示获取该第二跨链交易数据的数字签名。
本步骤319与上述步骤306同理,在此,本申请实施例对本步骤319不做赘述。
其中,该第二验证节点设备为第二节点集合中的验证节点设备,也即是第二区块链对应的验证节点设备。该第二跨链交易数据的一个数字签名指示该第二跨链交易数据存储在该第二区块链上。
320、第二验证节点设备从第二网关设备,接收该第二签名获取请求。
本步骤320与上述步骤307同理,在此,本申请实施例对本步骤320不做赘述
321、该第二验证节点设备基于该第二签名获取请求,获取该第二跨链交易数据的数字签名。
本步骤321与上述步骤308同理,在此,本申请实施例对本步骤321不做赘述。
322、该第二验证节点设备向第二网关设备发送该第二跨链交易数据的数字签名。
本步骤322与上述步骤309同理,在此,本申请实施例对本步骤322不做赘述。
323、第二网关设备接收该第二跨链交易数据的数字签名。
本步骤323与上述步骤310同理,在此,本申请实施例对本步骤323不做赘述。
需要说明的是,步骤319-323所示的过程为可选过程,在一些实施例中,若无须验证跨链交易数据的合法性,则步骤319-323所示的过程可以不执行。
324、该第二网关设备向第一网关设备发送该第二跨链交易数据以及该第二跨链交易数据的数字签名。
在一种可能的实现方式中,该第二网关设备基于该第二跨链交易数据以及第二跨链交易数据的数字签名,生成符合目标跨链协议的第三跨链消息,并向该第一网关设备发送该第三跨链消息。其中,该第三跨链消息包括该第二跨链交易数据以及第二跨链交易数据的数字签名,该第三跨链消息的数据格式符合目标跨链协议规定的跨链消息数据格式。
在一种可能的实现方式中,若上述步骤319-323所示的过程未执行,则该第二网关设备向第一网关设备发送该第二跨链交易数据,而不向该第一网关设备发送第二跨链交易数据的数字签名,相应地,该第三跨链消息不包括第二跨链交易数据的数字签名。
325、该第一网关设备接收第二跨链交易数据以及该第二跨链交易数据的数字签名。
本步骤325与上述步骤312同理,在此,本申请实施例对本步骤325不做赘述。
326、该第一网关设备向第一节点设备发送该第二跨链交易数据以及该第二跨链交易数据的数字签名。
在一种可能的实现方式中,为了使得该第一节点设备能够识别出该第二跨链交易数据以及该第二跨链交易数据的数字签名,该第一网关设备基于第二跨链交易数据以及该第二跨链交易数据的数字签名,生成符合第一传输协议的第四跨链消息。其中,该第四跨链消息包括第二跨链交易数据以及该第二跨链交易数据的数字签名,且第四跨链消息的数据格式符合第一传输协议中跨链消息的数据格式。
当生成该第四跨链消息后,也就完成对第三跨链消息的格式转换,该第一网关设备向第一节点设备发送该第四跨链消息。
327、该第一节点设备接收第二跨链交易数据以及该第二跨链交易数据的数字签名。
本步骤327与上述步骤314同理,在此,本申请实施例对本步骤327不做赘述。
上述步骤324-327所示的过程,也即是第一节点设备从第一网关设备接收第二网关设备提供的该第二区块链上的第二跨链交易数据的过程。
328、该第一节点设备向终端发送交易完成响应,该交易完成响应指示该跨链交易已经完成。
当该第一节点设备获取到该第二跨链交易数据后,则若该第二跨链交易数据的处理结果为第一处理结果,则说明已在第二区块链上成功执行该第二交易事件。若该第一跨链交易数据的处理结果为第一处理结果,则说明已在第一区块链上成功执行该第一交易事件。若该第一交易事件与该第二交易事件均已成功执行,则该第二节点设备向终端返回该交易完成响应。若该第二跨链交易数据中第二交易事件的处理结果为第二结果,或者,第一跨链交易数据中的第一交易事件的处理结果为第二处理结果,则该第一节点设备向终端返回交易失败响应,该交易失败响应用于指示该跨链交易处理失败。
在一种可能的实现方式中,该第一节点设备可以通过运行第一区块链上的第一跨链合约,调用第一业务合约,将该交易完成响应或交易失败响应发送给该终端。例如下述步骤3281-3282。
步骤3281、该第一节点设备基于该第二跨链交易数据,再次运行该第一跨链合约。
当接收第二跨链交易数据(或者该第二跨链交易数据和第二跨链交易数据的数字签名)后,触发该第一节点设备将第二跨链交易数据(或者该第二跨链交易数据和第二跨链交易数据的数字签名)作为第一跨链合约输入参数,输入至该第一跨链合约中,并再次运行该第一跨链合约。
步骤3282、响应于再次运行的该第一跨链合约,该第一节点设备将该第二跨链交易数据发送至该第一业务合约,再次运行该第一业务合约,向该终端发送该交易完成响应。
响应于第一跨链合约的再次运行,该第一节点设备在该第一区块链上存储该第二跨链交易数据,以触发调用第一区块链上的第一业务合约。响应于触发调用第一区块链上的第一业务合约,该第一节点设备将该第二跨链交易数据(或者该第二跨链交易数据和第二跨链交易数据的数字签名)作为该第一业务合约的输入参数,输入至该第一业务合约,并再次运行该第一业务合约。响应于该第二业务合约的再次执行,该第一节点设备基于该第一跨链交易数据以及第二跨链交易数据,确定该跨链交易是否已经完成,若已经完成,则向该终端发送该交易完成响应,否则向该终端发送交易失败响应。
在一种可能的实现方式中,该第一节点设备在该第一区块链上存储该第二跨链交易数据包括:该第一节点设备基于该第二跨链交易数据的数字签名,对该第二跨链交易数据进行验证,若该第二跨链交易数据验证通过,则该第一节点设备将该第二跨链交易数据存储在第一区块链上,若该第二跨链交易数据验证不通过,则该第一节点设备不在该第一区块链上存储该第二跨链交易数据。
其中,该第一节点设备基于该第二跨链交易数据的数字签名,对该第二跨链交易数据进行验证包括:
若该第二跨链交易数据的数字签名的个数大于第一阈值,则该第一节点设备对该第二跨链交易数据验证通过,否则对该第二跨链交易数据验证不通过,其中,该第一阈值为第二节点集群中验证节点设备的总个数的一半。
或者,第一节点设备对第二跨链交易数据的数据格式进行验证,若第二跨链交易数据的数据格式通过验证且该第二跨链交易数据的数字签名的个数大于第一阈值,则该第一节点设备对该第二跨链交易数据验证通过,否则对该第二跨链交易数据验证不通过。
其中,第一节点设备对第二跨链交易数据的数据格式进行验证包括:该第一节点设备检测该第二跨链交易数据的数据格式是否符合预设的第二数据格式,若该第二跨链交易数据的数据格式符合预设的第二数据格式,则该第一节点设备对该第二跨链交易数据的数据格式验证通过,否则该第一节点设备对该第二跨链交易数据的数据格式验证不通过。
本申请实施例提供的方法,通过在接收到终端的跨链交易请求时,区块链系统中的节点设备运行区块链上的业务合约和跨链合约,进行跨链交易,当跨链交易完成后,并向终端返回交易完成响应,在该跨链交易处理的过程中,终端请求进行跨链交易并接收跨链交易的处理结果,并不关心跨链交易的具体处理过程,从而降低了终端的业务负担。并且,将跨链合约存储在区块链上,能够使区块链系统中的各个节点设备在区块链上完成跨链交易,避免跨链交易数据被篡改。且将验证节点设备作为一个单独的用于对跨链交易数据进行合法性证明的设备,用户可以在验证节点设备定制对跨链交易数据进行合法性证明的规则,且网关设备无须自己对跨链交易数据进行合法性证明,降低了网关设备的业务负担。通过将跨链交易的执行过程分散在多个设备(节点设备、网关设备以及验证节点设备),从而以分布式的跨链框架,完成跨链交易,这种跨链框架被抽象成通用的服务,内部可以有多种不同的实现方式,对外提供统一的数字签名进行验证,该跨链框架具备很好的可定制性、扩展性,可以应对不同场景的跨链需求。
另外,对于图3还有以下3点需要说明:
第1点,响应于业务合约,节点设备执行的步骤的执行逻辑由该业务合约中的程序代码(或计算机程序)来实现。响应于跨链合约,节点设备执行的步骤的执行逻辑由该跨链合约中的程序代码(或计算机程序)来实现。
第2点、由于图3中涉及到的步骤比较多,为了使得图3清晰,将图3拆分成图3A和图3B,其中,图3A是本申请实施例提供的一种第一节点集合处理跨链交易的流程图,图3A包括第一节点集合中各个设备处理跨链交易所执行的步骤。图3B是本申请实施例提供的一种第二节点集合处理跨链交易的流程图,图3B包括第二节点集合中各个设备处理跨链交易所执行的步骤。
第3点、图3所示的过程是以每个节点集合具有验证节点设备,每个节点集合的区块链上所存储的跨链交易数据,由各自节点集合中的验证节点设备来提供数字签名。在另一种可能的实现方式中,该区块链系统提供节点集合可以共用相同的验证节点设备,由相同的验证节点设备为该区块链系统中的各个节点集合内的跨链交易数据提供数字签名。
为了进一步说明图3所示的过程,以图4所示区块链系统为例,对跨链交易的处理过程进行如下描述:
其中,图4为本申请实施例提供的一种包括跨链交易处理方法的示意图。图4中的区块链系统包括第一节点集群、第二节点集群以及注册设备。第一节点集群中的节点设备为第一节点设备,多个第一节点设备维护区块链1,而第二节点集群中的节点设备为第二节点设备,多个第二节点设备维护区块链2。第一节点集群中的网关设备为第一网关设备,第二节点集群的网关设备为第二网关设备。第一节点集群中的验证节点设备为第一验证节点设备,第二节点集群的验证节点设备为第二验证节点设备。第一节点设备可以接收终端的一个跨链交易请求,该跨链交易请求可以是该终端中的一个业务App(Application,应用)发出(如图4所示),该业务APP可以是跨链应用或去中心化应用Dapp。
当接收到跨链交易请求后,该第一节点设备可以运行该区块链1上的业务合约1,并由该业务合约1在本链(即区块链1)上执行跨链交易的第一交易事件,并调用该区块链1上的跨链合约1,以确定出在对方链(即区块链2)上执行跨链交易的第二交易事件。若在本链上执行完跨链交易的交易事件,且确定出在对方链上要执行的第二交易事件,则业务合约1在本链上存储该跨链交易本链上的跨链交易数据1。第一网关设备可以从第一验证节点设备获取该跨链交易数据1的合法性证明(即数字签名),并将该合法性证明以及该跨链交易数据1发送至第二网关设备。第二网关设备将接收到跨链交易数据1以及合法性证明发送至第二节点设备。第二节点设备基于该跨链交易数据1,运行本链(即区块链2)上的跨链合约2,若该合法性证明通过该跨链合约2的验证,由该跨链合约2将该跨链交易数据1存储在本链上,并调用该本链上的业务合约2,由业务合约2在区块链2执行跨链交易的第二交易事件,并将第二交易事件的处理结果返回给跨链合约2。跨链合约2基于第二交易事件的处理结果,在区块链2上存储跨链交易数据2。第二网关设备从区块链2上获取跨链交易数据2,从第二验证节点设备获取跨链交易数据2的合法性证明(即数字签名),并将该跨链交易数据2以及该合法性证明返回给第一网关设备。第一网关设备再将该跨链交易数据2以及该合法性证明返回给第一节点设备,由该第一节点设备再次运行跨链合约1,若接收到的该合法性证明通过跨链合约1的验证,该跨链合约1调用业务合约1,向发终端或终端内的业务应用发送交易完成响应。
图5是本申请实施例提供的一种跨链交易处理装置的结构示意图,参见图5,所述装置500被配置在区块链系统中,所述区块链系统内还配置有第一区块链和第二区块链,所述装置500包括:
接收模块501,用于接收终端的跨链交易请求,所述跨链交易请求指示在所述第一区块链和所述第二区块链之间进行跨链交易;
处理模块502,用于所述处理模块用于基于所述跨链交易请求,运行所述第一区块链上的第一业务合约,所述第一业务合约指示所述跨链交易在所述第一区块链上的第一执行方式;响应于所述第一业务合约,在所述第一区块链上执行所述跨链交易的第一交易事件,运行所述第一区块链上的第一跨链合约,确定在所述第二区块链执行所述跨链交易的第二交易事件,所述第一跨链合约指示所述跨链交易在所述第一区块链上的第二执行方式;响应于所述第一业务合约,在所述第一区块链上存储第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行所述第一交易事件以及在所述第二区块链上执行所述第二交易事件;
所述接收模块501,还用于从所述第二区块链获取第二跨链交易数据,所述第二跨链交易数据基于所述第一跨链交易数据得到,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件;
所述处理模块502,还用于向所述终端发送交易完成响应,所述交易完成响应指示所述跨链交易已经完成。
在一些实施例中,所述处理模块502还用于:
基于所述第二跨链交易数据,再次运行所述第一跨链合约;
响应于再次运行的所述第一跨链合约,将所述第二跨链交易数据发送至所述第一业务合约,再次运行所述第一业务合约,向所述终端发送所述交易完成响应。
在一些实施例中,所述接收模块501,还用于接收所述第二跨链交易数据的数字签名,所述数字签名指示所述第二跨链交易数据已存储至所述第二区块链;
所述将所述第二跨链交易数据发送至所述第一业务合约包括:
若所述第二跨链交易数据的数字签名的个数大于第一阈值,则将所述第二跨链交易数据发送至所述第一业务合约。
在一些实施例中,所述接收模块501还用于:
若所述第一区块链对应第一网关设备且所述第二区块链对应第二网关设备,从所述第一网关设备接收所述第二网关设备提供的所述第二区块链上的所述第二跨链交易数据。
在一些实施例中,所述跨链交易请求包括所述跨链交易的交易信息、所述第一业务合约的标识以及所述第二区块链上的第二业务合约的标识,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式。
需要说明的是:跨链交易处理装置500在处理跨链交易时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的跨链交易处理装置与跨链交易处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本申请实施例提供了一种跨链交易处理装置的结构示意图,所述装置600被配置在区块链系统中,所述区块链系统内还配置有第一区块链和第二区块链,所述装置600包括:
获取模块601,用于从所述第一区块链获取第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行跨链交易的第一交易事件以及在所述第二区块链上执行所述跨链交易的第二交易事件;
处理模块602,用于基于所述第一跨链交易数据,运行所述第二区块链上的第二跨链合约,所述第二跨链合约指示所述跨链交易在所述第二区块链上的第四执行方式;响应于所述第二跨链合约,在所述第二区块链上存储所述第一跨链交易数据,运行所述第二区块链上的第二业务合约,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式;响应于所述第二业务合约,在所述第二区块链上执行所述第二交易事件,继续运行所述第二跨链合约,在所述第二区块链上存储第二跨链交易数据,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件。
在一些实施例中,所述获取模块601,还用于接收所述第一跨链交易数据的数字签名,所述数字签名指示所述第一跨链交易数据已存储至所述第一区块链;
所述在所述第二区块链上存储所述第一跨链交易数据包括:
若所述第一跨链交易数据的数字签名的个数大于第二阈值,则在所述第二区块链上存储所述第一跨链交易数据。
在一些实施例中,所述获取模块601用于:
若所述第一区块链对应第一网关设备且所述第二区块链对应第二网关设备,从所述第二网关设备接收所述第一网关设备提供的所述第一区块链上的所述第一跨链交易数据。
需要说明的是:跨链交易处理装置600在处理跨链交易时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的跨链交易处理装置与跨链交易处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本申请实施例提供的一种电子设备的结构示意图,参见图7,电子设备700可以被配置为上述介绍的区块链系统中的任一设备,例如任一节点设备、任一网关设备、任一验证节点设备或注册设备,该电子设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上CPU(central processing units,处理器)701和一个或一个以上的存储器702,其中,所述存储器702中存储有至少一段计算机程序,所述至少一段计算机程序由所述处理器701加载并执行以实现上述各个方法实施例提供的方法。当然,该电子设备700还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,电子设备700还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由终端中的处理器执行以完成下述实施例中跨链交易处理方法。例如,所述计算机可读存储介质可以是ROM(Read-Only Memory,只读存储器)、RAM(RandomAccess Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种跨链交易处理方法,其特征在于,由区块链系统中的第一节点设备执行,所述区块链系统内配置有第一区块链和第二区块链,所述方法包括:
接收终端的跨链交易请求,所述跨链交易请求指示在所述第一区块链和所述第二区块链之间进行跨链交易;
基于所述跨链交易请求,运行所述第一区块链上的第一业务合约,所述第一业务合约指示所述跨链交易在所述第一区块链上的第一执行方式;
响应于所述第一业务合约,在所述第一区块链上执行所述跨链交易的第一交易事件,运行所述第一区块链上的第一跨链合约,确定在所述第二区块链执行所述跨链交易的第二交易事件,所述第一跨链合约指示所述跨链交易在所述第一区块链上的第二执行方式;
响应于所述第一业务合约,在所述第一区块链上存储第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行所述第一交易事件以及在所述第二区块链上执行所述第二交易事件;
从所述第二区块链获取第二跨链交易数据,所述第二跨链交易数据基于所述第一跨链交易数据得到,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件;
向所述终端发送交易完成响应,所述交易完成响应指示所述跨链交易已经完成。
2.根据权利要求1所述的方法,其特征在于,所述向所述终端发送交易完成响应包括:
基于所述第二跨链交易数据,再次运行所述第一跨链合约;
响应于再次运行的所述第一跨链合约,将所述第二跨链交易数据发送至所述第一业务合约,再次运行所述第一业务合约,向所述终端发送所述交易完成响应。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第二跨链交易数据,再次运行所述第一跨链合约之前,所述方法还包括:
接收所述第二跨链交易数据的数字签名,所述数字签名指示所述第二跨链交易数据已存储至所述第二区块链;
所述将所述第二跨链交易数据发送至所述第一业务合约包括:
若所述第二跨链交易数据的数字签名的个数大于第一阈值,则将所述第二跨链交易数据发送至所述第一业务合约。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述从所述第二区块链获取第二跨链交易数据包括:
若所述第一区块链对应第一网关设备且所述第二区块链对应第二网关设备,从所述第一网关设备接收所述第二网关设备提供的所述第二区块链上的所述第二跨链交易数据。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述跨链交易请求包括所述跨链交易的交易信息、所述第一业务合约的标识以及所述第二区块链上的第二业务合约的标识,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式。
6.一种跨链交易处理方法,其特征在于,由区块链系统中第二节点设备执行,所述区块链系统内配置有第一区块链和第二区块链,所述方法包括:
从所述第一区块链获取第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行跨链交易的第一交易事件以及在所述第二区块链上执行所述跨链交易的第二交易事件;
基于所述第一跨链交易数据,运行所述第二区块链上的第二跨链合约,所述第二跨链合约指示所述跨链交易在所述第二区块链上的第四执行方式;
响应于所述第二跨链合约,在所述第二区块链上存储所述第一跨链交易数据,运行所述第二区块链上的第二业务合约,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式;
响应于所述第二业务合约,在所述第二区块链上执行所述第二交易事件,继续运行所述第二跨链合约,在所述第二区块链上存储第二跨链交易数据,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第一跨链交易数据,运行所述第二区块链上的第二跨链合约之前,所述方法还包括:
接收所述第一跨链交易数据的数字签名,所述数字签名指示所述第一跨链交易数据已存储至所述第一区块链;
所述在所述第二区块链上存储所述第一跨链交易数据包括:
若所述第一跨链交易数据的数字签名的个数大于第二阈值,则在所述第二区块链上存储所述第一跨链交易数据。
8.根据权利要求6或7所述的方法,其特征在于,所述从所述第一区块链获取第一跨链交易数据包括:
若所述第一区块链对应第一网关设备且所述第二区块链对应第二网关设备,从所述第二网关设备接收所述第一网关设备提供的所述第一区块链上的所述第一跨链交易数据。
9.一种用于跨链交易处理的区块链系统,其特征在于,所述区块链系统包括第一节点设备、第二节点设备、第一网关设备以及第二网关设备,所述区块链系统内配置有第一区块链和第二区块链;
所述第一节点设备用于:
接收终端的跨链交易请求,所述跨链交易请求指示在所述第一区块链和所述第二区块链之间进行跨链交易;
基于所述跨链交易请求,运行所述第一区块链上的第一业务合约,所述第一业务合约指示所述跨链交易在所述第一区块链上的第一执行方式;
响应于所述第一业务合约,在所述第一区块链上执行所述跨链交易的第一交易事件,运行所述第一区块链上的第一跨链合约,确定在所述第二区块链执行所述跨链交易的第二交易事件,所述第一跨链合约指示所述跨链交易在所述第一区块链上的第二执行方式;
响应于所述第一业务合约,在所述第一区块链上存储第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行所述第一交易事件以及在所述第二区块链上执行所述第二交易事件;
所述第一网关设备,用于将所述第一区块链上的所述第一跨链交易数据发送至所述第二网关设备;
所述第二网关设备,用于将所述第一跨链交易数据发送至所述第二节点设备;
所述第二节点设备用于:
基于所述第一跨链交易数据,运行所述第二区块链上的第二跨链合约,所述第二跨链合约指示所述跨链交易在所述第二区块链上的第四执行方式;
响应于所述第二跨链合约,在所述第二区块链上存储所述第一跨链交易数据,运行所述第二区块链上的第二业务合约,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式;
响应于所述第二业务合约,在所述第二区块链上执行所述第二交易事件,继续运行所述第二跨链合约,在所述第二区块链上存储第二跨链交易数据,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件;
所述第二网关设备,还用于将所述第二区块链上的所述第二跨链交易数据发送至所述第一网关设备;
所述第一网关设备,还用于将所述第二跨链交易数据发送至所述第一节点设备;
所述第一节点设备,还用于从所述第一网关设备接收所述第二跨链交易数据,向所述终端发送交易完成响应,所述交易完成响应指示所述跨链交易已经完成。
10.根据权利要求9所述的系统,其特征在于,所述区块链系统还包括验证节点设备;
所述验证节点设备用于:
从网关设备,接收跨链交易数据的签名获取请求,所述网关设备为所述第一网关设备或者所述第二网关设备,所述跨链交易数据为所述第一跨链交易数据或所述第二跨链交易数据;
基于所述签名获取请求,获取所述跨链交易数据的数字签名,所述数字签名指示所述网关设备对应的区块链上存储有所述跨链交易数据;
向所述网关设备发送所述跨链交易数据的数字签名;
所述网关设备,还用于将所述跨链交易数据的数字签名以及所述跨链交易数据发送至对应的节点设备。
11.一种跨链交易处理装置,其特征在于,所述装置被配置在区块链系统中,所述区块链系统内还配置有第一区块链和第二区块链,所述装置包括:
接收模块,用于接收终端的跨链交易请求,所述跨链交易请求指示在所述第一区块链和所述第二区块链之间进行跨链交易;
处理模块,用于所述处理模块用于基于所述跨链交易请求,运行所述第一区块链上的第一业务合约,所述第一业务合约指示所述跨链交易在所述第一区块链上的第一执行方式;响应于所述第一业务合约,在所述第一区块链上执行所述跨链交易的第一交易事件,运行所述第一区块链上的第一跨链合约,确定在所述第二区块链执行所述跨链交易的第二交易事件,所述第一跨链合约指示所述跨链交易在所述第一区块链上的第二执行方式;响应于所述第一业务合约,在所述第一区块链上存储第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行所述第一交易事件以及在所述第二区块链上执行所述第二交易事件;
所述接收模块,还用于从所述第二区块链获取第二跨链交易数据,所述第二跨链交易数据基于所述第一跨链交易数据得到,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件;
所述处理模块,还用于向所述终端发送交易完成响应,所述交易完成响应指示所述跨链交易已经完成。
12.根据权利要求11所述的装置,其特征在于,所述处理模块还用于:
基于所述第二跨链交易数据,再次运行所述第一跨链合约;
响应于再次运行的所述第一跨链合约,将所述第二跨链交易数据发送至所述第一业务合约,再次运行所述第一业务合约,向所述终端发送所述交易完成响应。
13.一种跨链交易处理装置,其特征在于,所述装置被配置在区块链系统中,所述区块链系统内还配置有第一区块链和第二区块链,所述装置包括:
获取模块,用于从所述第一区块链获取第一跨链交易数据,所述第一跨链交易数据指示已在所述第一区块链上执行跨链交易的第一交易事件以及在所述第二区块链上执行所述跨链交易的第二交易事件;
处理模块,用于基于所述第一跨链交易数据,运行所述第二区块链上的第二跨链合约,所述第二跨链合约指示所述跨链交易在所述第二区块链上的第四执行方式;响应于所述第二跨链合约,在所述第二区块链上存储所述第一跨链交易数据,运行第二业务合约,所述第二业务合约指示所述跨链交易在所述第二区块链上的第三执行方式;响应于所述第二业务合约,在所述第二区块链上执行所述第二交易事件,继续运行所述第二跨链合约,在所述第二区块链上存储第二跨链交易数据,所述第二跨链交易数据指示已在所述第二区块链上执行所述第二交易事件。
14.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行权利要求1至8任一项权利要求所述的跨链交易处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储至少一段计算机程序,所述至少一段计算机程序用于执行权利要求1至8任一项权利要求所述的跨链交易处理方法。
CN202110853182.7A 2021-07-27 2021-07-27 跨链交易处理方法、装置、电子设备以及存储介质 Active CN115701078B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202110853182.7A CN115701078B (zh) 2021-07-27 跨链交易处理方法、装置、电子设备以及存储介质
EP22848107.3A EP4287102A1 (en) 2021-07-27 2022-06-17 Cross-chain transaction processing method and apparatus, electronic device, and storage medium
PCT/CN2022/099545 WO2023005500A1 (zh) 2021-07-27 2022-06-17 跨链交易处理方法、装置、电子设备以及存储介质
JP2023548555A JP2024506093A (ja) 2021-07-27 2022-06-17 クロスチェーントランザクション処理方法と装置、電子機器及びコンピュータプログラム
US18/135,542 US20230259930A1 (en) 2021-07-27 2023-04-17 Cross-chain transaction processing method and apparatus, electronic device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110853182.7A CN115701078B (zh) 2021-07-27 跨链交易处理方法、装置、电子设备以及存储介质

Publications (2)

Publication Number Publication Date
CN115701078A true CN115701078A (zh) 2023-02-07
CN115701078B CN115701078B (zh) 2024-06-04

Family

ID=

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111181968A (zh) * 2019-12-30 2020-05-19 北京金山云网络技术有限公司 跨区块链通信方法、装置、跨链服务系统及跨链交易系统
US20200274695A1 (en) * 2019-07-15 2020-08-27 Alibaba Group Holding Limited Transaction processing in a service blockchain
CN111681003A (zh) * 2020-07-07 2020-09-18 腾讯科技(深圳)有限公司 资源跨链转移方法、装置、计算机设备以及存储介质
CN111917865A (zh) * 2020-07-29 2020-11-10 成都质数斯达克科技有限公司 区块链网络系统、网关以及组网方法
WO2020224235A1 (zh) * 2019-05-06 2020-11-12 深圳壹账通智能科技有限公司 跨链交易的方法、装置、设备及存储介质
CN111970129A (zh) * 2020-10-21 2020-11-20 腾讯科技(深圳)有限公司 一种基于区块链的数据处理方法、设备以及可读存储介质
CN112330326A (zh) * 2020-11-27 2021-02-05 中国农业银行股份有限公司 一种应用于银行交易区块链系统的业务处理方法和装置
CN112446785A (zh) * 2020-11-06 2021-03-05 杭州趣链科技有限公司 跨链交易方法、系统、装置、设备和存储介质
CN112508704A (zh) * 2020-12-17 2021-03-16 杭州趣链科技有限公司 区块链跨链交易的方法、装置、计算机设备和存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020224235A1 (zh) * 2019-05-06 2020-11-12 深圳壹账通智能科技有限公司 跨链交易的方法、装置、设备及存储介质
US20200274695A1 (en) * 2019-07-15 2020-08-27 Alibaba Group Holding Limited Transaction processing in a service blockchain
CN111181968A (zh) * 2019-12-30 2020-05-19 北京金山云网络技术有限公司 跨区块链通信方法、装置、跨链服务系统及跨链交易系统
CN111681003A (zh) * 2020-07-07 2020-09-18 腾讯科技(深圳)有限公司 资源跨链转移方法、装置、计算机设备以及存储介质
CN111917865A (zh) * 2020-07-29 2020-11-10 成都质数斯达克科技有限公司 区块链网络系统、网关以及组网方法
CN111970129A (zh) * 2020-10-21 2020-11-20 腾讯科技(深圳)有限公司 一种基于区块链的数据处理方法、设备以及可读存储介质
CN112446785A (zh) * 2020-11-06 2021-03-05 杭州趣链科技有限公司 跨链交易方法、系统、装置、设备和存储介质
CN112330326A (zh) * 2020-11-27 2021-02-05 中国农业银行股份有限公司 一种应用于银行交易区块链系统的业务处理方法和装置
CN112508704A (zh) * 2020-12-17 2021-03-16 杭州趣链科技有限公司 区块链跨链交易的方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
WO2023005500A1 (zh) 2023-02-02
JP2024506093A (ja) 2024-02-08
US20230259930A1 (en) 2023-08-17
EP4287102A1 (en) 2023-12-06

Similar Documents

Publication Publication Date Title
CN111681003B (zh) 资源跨链转移方法、装置、计算机设备以及存储介质
CN111314067B (zh) 区块存储方法、装置、计算机设备及存储介质
CN112632629B (zh) 基于区块链的投票管理方法、装置、介质及电子设备
CN111080295A (zh) 一种基于区块链的电子合同处理方法以及设备
CN110838065A (zh) 一种交易数据处理方法及装置
EP4216077A1 (en) Blockchain network-based method and apparatus for data processing, and computer device
CN111931220B (zh) 区块链网络的共识处理方法、装置、介质及电子设备
CN111291060A (zh) 一种管理区块链节点的方法、装置及计算机可读介质
CN112311772A (zh) 基于Hyperledger的跨域证书管理系统及方法
CN111488372A (zh) 一种数据处理方法、设备及存储介质
CN111416709B (zh) 基于区块链系统的投票方法、装置、设备及存储介质
CN111858751A (zh) 基于区块链的数据存储方法及装置
CN111311211A (zh) 一种基于区块链的数据处理方法以及设备
CN110599175A (zh) 一种区块处理方法及相关设备
CN115277122A (zh) 基于区块链的跨境数据流动与监管系统
CN110990790B (zh) 一种数据处理方法及设备
CN112231755A (zh) 一种基于区块链的数据授权方法、装置及系统
CN116258309A (zh) 基于区块链的业务对象生命周期管理及追溯方法及装置
CN111222963A (zh) 基于区块链的招标信息处理方法及装置
US20230259930A1 (en) Cross-chain transaction processing method and apparatus, electronic device, and storage medium
CN112926981B (zh) 用于区块链的交易信息处理方法、装置、介质及电子设备
CN113869901B (zh) 密钥生成方法、装置、计算机可读存储介质及计算机设备
CN115701078B (zh) 跨链交易处理方法、装置、电子设备以及存储介质
CN112988852A (zh) 基于区块链的数据管理方法、设备以及介质
CN116032494B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40081826

Country of ref document: HK

GR01 Patent grant