CN114785804B - 用于跨区块链交互的系统及方法 - Google Patents

用于跨区块链交互的系统及方法 Download PDF

Info

Publication number
CN114785804B
CN114785804B CN202210466076.8A CN202210466076A CN114785804B CN 114785804 B CN114785804 B CN 114785804B CN 202210466076 A CN202210466076 A CN 202210466076A CN 114785804 B CN114785804 B CN 114785804B
Authority
CN
China
Prior art keywords
blockchain network
upper layer
routing node
node
cross
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210466076.8A
Other languages
English (en)
Other versions
CN114785804A (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.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai 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 Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202210466076.8A priority Critical patent/CN114785804B/zh
Publication of CN114785804A publication Critical patent/CN114785804A/zh
Priority to PCT/CN2022/135441 priority patent/WO2023207083A1/zh
Application granted granted Critical
Publication of CN114785804B publication Critical patent/CN114785804B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • 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

Abstract

本公开涉及用于跨区块链交互的系统及方法。该系统包括第一区块链网络、第二区块链网络及其上层区块链网络,其中,所述上层区块链网络被配置为通过将第一区块链网络和第二区块链网络中的每个区块链网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一区块链网络和第二区块链网络中的每个区块链网络的共识节点。

Description

用于跨区块链交互的系统及方法
技术领域
本公开一个或多个实施例涉及区块链技术领域,并且更具体地,涉及一种用于跨区块链交互的系统、方法、装置、计算设备和存储介质。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
随着区块链技术的高速发展,区块链技术被应用在金融、物流、供应链、医疗、司法、资产管理等诸多领域中。可以构建不同的区块链网络来处理不同类型的业务。在很多应用场景下,需要在不同的区块链网络之间进行交互来实现一些复杂的业务。
发明内容
本公开的一个或多个实施例的一个目的是提供一种用于跨区块链交互的系统、方法、装置、计算设备和存储介质。
根据本公开的一个或多个实施例的一个方面,提供了一种用于跨区块链交互的系统,包括:第一区块链网络,所述第一区块链网络包括相互通信的第一路由节点和多个第一共识节点;第二区块链网络,所述第二区块链网络包括相互通信的第二路由节点和多个第二共识节点;以及第一区块链网络和第二区块链网络的上层区块链网络,所述上层区块链网络被第一区块链网络和第二区块链网络二者信任,并且包括与第一路由节点通信的第一上层路由节点、与第二路由节点通信的第二上层路由节点、以及多个上层共识节点,第一上层路由节点、第二上层路由节点与所述多个上层共识节点相互通信,其中,所述上层区块链网络被配置为通过将第一区块链网络和第二区块链网络中的每个区块链网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一区块链网络和第二区块链网络中的每个区块链网络的共识节点。
根据本公开的一个或多个实施例的另一个方面,提供了一种用于跨区块链交互的方法,包括:通过第一区块链网络的第一路由节点获得来自第一区块链网络的要在第二区块链网络中执行的跨链交易并将跨链交易传输至第一区块链网络和第二区块链网络的上层区块链网络的与第一路由节点通信的第一上层路由节点,所述上层区块链网络被第一区块链网络和第二区块链网络二者信任;通过第一上层路由节点将从第一路由节点接收到的跨链交易传输至所述上层区块链网络的与第二区块链网络的第二路由节点通信的第二上层路由节点;通过第二上层路由节点将从第一上层路由节点接收到的跨链交易传输至第二路由节点;以及通过第二路由节点在第二区块链网络中广播从第二上层路由节点接收到的跨链交易,使得第二区块链网络的多个第二共识节点接收并执行所述跨链交易,其中,所述上层区块链网络被配置为通过将第一区块链网络和第二区块链网络中的每个区块链网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一区块链网络和第二区块链网络中的每个区块链网络的共识节点。
根据本公开的一个或多个实施例的另一个方面,提供了一种用于跨区块链交互的装置,包括:收集模块,被配置用于通过第一区块链网络的第一路由节点获得来自第一区块链网络的要在第二区块链网络中执行的跨链交易;传输模块,被配置用于通过第一路由节点将跨链交易传输至第一区块链网络和第二区块链网络的上层区块链网络的与第一路由节点通信的第一上层路由节点,所述上层区块链网络被第一区块链网络和第二区块链网络二者信任,通过第一上层路由节点将从第一路由节点接收到的跨链交易传输至所述上层区块链网络的与第二区块链网络的第二路由节点通信的第二上层路由节点,通过第二上层路由节点将从第一上层路由节点接收到的跨链交易传输至第二路由节点;以及执行模块,被配置用于通过第二路由节点在第二区块链网络中广播从第二上层路由节点接收到的跨链交易,使得第二区块链网络的多个第二共识节点接收并执行所述跨链交易,其中,所述上层区块链网络被配置为通过将第一区块链网络和第二区块链网络中的每个区块链网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一区块链网络和第二区块链网络中的每个区块链网络的共识节点。
根据本公开的一个或多个实施例的又一个方面,提供了一种用于跨区块链交互的计算设备,包括:一个或多个处理器;以及存储计算机可执行指令的存储器,所述计算机可执行指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行根据本公开的任一实施例所述的方法。
根据本公开的一个或多个实施例的又一个方面,提供了一种其上存储有计算机可执行指令的非瞬态存储介质,所述计算机可执行指令在被计算机执行时使得计算机执行根据本公开的任一实施例所述的方法。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的一个或多个实施例,并且连同说明书一起用于解释本公开一个或多个实施例的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开一个或多个实施例,其中:
图1是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图2是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图3是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图4是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图5是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图6是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图7是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图8是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图9是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图10是根据本公开的一个或多个示例性实施例的用于跨区块链交互的系统的示意图;
图11是根据本公开的一个或多个示例性实施例的用于跨区块链交互的方法的流程图;
图12是根据本公开的一个或多个示例性实施例的用于跨区块链交互的装置的示意性框图;
图13是图示可以在其上实现本公开的一个或多个示例性实施例的计算机系统的示意性框图;
图14是根据本公开的一个或多个示例性实施例的用于跨区块链交互的计算设备的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。然而应当理解的是,本公开一个或多个实施例可以以多种不同的方式呈现出来,并不局限于下文描述的实施例。还应当理解的是,本公开一个或多个实施例能够以各种方式进行组合,从而提供更多额外的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
应当理解的是,在所有附图中,相同的附图标记表示相同的元件。在附图中,为清楚起见,某些特征的尺寸可以进行变形。
应当理解的是,本文中的用语仅用于描述特定的实施例,并不旨在限定。本文使用的所有术语(包括技术术语和科学术语)除非另外定义,均具有本领域技术人员通常理解的含义。为简明和/或清楚起见,公知的功能或结构可以不再详细说明。
在本文中,用语“连接”意图包含一个特征与另一个特征的物理、电性、和/或通信连接,并且这一个特征与另一个特征之间可以存在也可以不存在中间特征。当连接为通信连接时,即使提及A与B“直接连接”,只是意图强调A与B的连接之间不存在本公开一个或多个实施例所强调的一个或多个特征,但并不代表限制A与B之间不经过任何元件而连接,本领域技术人员应理解,A与B之间可以通过线缆、路由器、网关、信道、链路、网络等相连接。需要说明的是,在本公开一个或多个实施例的附图中,A与B之间的无论是直接连接还是间接连接都通过连接在A与B之间的直线或其他图形元素来表示。
在本文中,用语“A或B”包括“A和B”以及“A或B”,而不是排他地仅包括“A”或者仅包括“B”,除非另有特别说明。
在本文中,用语“示例性的”意指“用作示例、实例或说明”,而不是作为将被精确复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开一个或多个实施例不受在上述技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。
在本文中,用语“基本上”意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。用语“基本上”还允许由寄生效应、噪声以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
另外,仅仅为了参考的目的,还可以在本文中使用“第一”、“第二”等类似术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语“第一”、“第二”和其它此类数字词语并没有暗示顺序或次序。
还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
为便于理解,下面对本公开中涉及的一些术语进行说明。
区块链网络:由分布式网络上的多个参与者通过共识规则共同维护基于区块链技术的链式数据的系统。
区块链共识节点:区块链网络中的网络节点,具有一份完整的账本拷贝,并且具有参与区块链网络共识和账本维护的能力。
区块链路由节点:区块链网络中的网络节点,具有跨区块链通信的能力但不具有参与区块链网络共识和账本维护的能力,有时可以被配置为具有一份完整的账本拷贝。
同构区块链(在本文中也可简称为同构链):基于相同区块链底层技术平台构建的区块链,同构链之间安全机制、共识算法、网络拓扑、区块生成验证逻辑都一致,一般采用同一套协议、请求格式、验证方式等。
异构区块链(在本文中也可简称为异构链):基于不同区块链底层技术平台构建的区块链,异构链之间安全机制、共识算法、网络拓扑、区块生成验证逻辑不一致,一般采用不同的协议、请求格式、验证方式等。比如比特币采用工作量证明PoW共识算法而联盟链Fabric采用传统确定性共识算法,二者的区块组成形式和确定性保证机制等均有很大不同。
跨链交易:一个区块链的交易在执行过程中需要调用部署在另一区块链中的智能合约(在本文中也可简称为合约),或者需要另一区块链的合约执行结果作为输入。
上链存证:经过各共识节点的共识确认后成功地被各共识节点执行(也就是“共识上链”或“上链”),执行结果可供日后查询。此术语在本文中可与“共识上链”可互换地使用。
随着区块链规模的日益扩大,加入到区块链网络中的节点的数量越来越多,并且涉及的业务的类型也越来越多,使得单一链的结构很难保持较高的性能。另外,从业务角度来看,一些松耦合的业务并没有必要运行在同一条链上,而且一些节点可能存在实现小范围交易的需求而不期望其它节点获得这些小范围交易及相关数据。因此,可以构建不同的区块链网络来处理不同类型的业务。在很多应用场景下,属于不同区块链网络的节点之间可能具有跨区块链(在本文中也可简称为跨链)交互的需求,以实现其业务往来。由于这些节点分属于不同区块链网络,因此它们之间的跨链交易存在相互信任问题。
为此,本公开在一方面提供了一种用于跨区块链交互的系统,其构建了具有高可扩展性的多层区块链网络架构,能够通过在同一上层区块链网络之下部署多个下层区块链网络来允许下层区块链网络之间通过共同的上层区块链网络进行跨链交互,并且能够通过允许各个下层区块链网络在上层区块链网络中查询其它下层区块链网络的当前节点成员情况来实现下层区块链网络之间的信任。下面将结合图1至图10细描述根据本公开的各种示例性实施例的用于跨区块链交互的系统100。
如图1所示,系统100可以包括第一区块链网络1110、第二区块链网络1120以及它们的上层区块链网络1100。换言之,第一区块链网络1110和第二区块链网络1120是上层区块链网络1100的下层区块链网络。由此,第一区块链网络1110、第二区块链网络1120与上层区块链网络1100构成二层区块链网络架构。例如,上层区块链网络1100可以是中继链网络,中继链网络是大规模区块链网络的主网络,而第一区块链网络1110、第二区块链网络1120可以是中继链网络的不同子网络。上层区块链网络1100可以部署在中继层,而第一区块链网络1110、第二区块链网络1120可以部署在位于中继层之下的网络层。当然,上层区块链网络1100以及第一区块链网络1110、第二区块链网络1120不限于是上述中继链网络及其子网络,也可以是其它二层区块链网络架构中的上层区块链网络及下层区块链网络。例如,上层区块链网络1100也可以部署在网络层,而第一区块链网络1110、第二区块链网络1120可以部署在位于网络层之下的服务层。可以理解,上层区块链网络1100以及第一区块链网络1110、第二区块链网络1120可以分别部署在多层区块链网络架构中的任意相邻两层中,只要上层区块链网络1100是第一区块链网络1110、第二区块链网络1120共同的上层区块链网络即可。
第一区块链网络1110可以包括相互通信的第一路由节点BR11和多个第一共识节点X1、X2、X3、X4。第一共识节点X1、X2、X3、X4可以用于实现第一区块链网络1110的具体业务,负责对交易进行验证和共识上链。虽然第一共识节点X1、X2、X3、X4的数量被图示为4个,但这仅仅是示例性而非限制性的,实际的第一区块链网络1110可以包括任何数量的共识节点。第一路由节点BR11可以用于与上层区块链网络1100中的第一上层路由节点BR1通信,负责发送和接收跨链消息。这可以通过专用于区块链的通信网络来实现,也可以通过互联网等其它通信网络来实现。
第二区块链网络1120可以包括相互通信的第二路由节点BR21和多个第二共识节点Y1、Y2、Y3、Y4。第二共识节点Y1、Y2、Y3、Y4可以用于实现第二区块链网络1120的具体业务,负责对交易进行验证和共识上链。虽然第二共识节点Y1、Y2、Y3、Y4的数量被图示为4个,但这仅仅是示例性而非限制性的,实际的第二区块链网络1120可以包括任何数量的共识节点。第二路由节点BR21可以用于与上层区块链网络1100中的第二上层路由节点BR2通信,负责发送和接收跨链消息。这可以通过专用于区块链的通信网络来实现,也可以通过互联网等其它通信网络来实现。
如前面已经提到的,上层区块链网络1100可以包括与第一路由节点BR11通信的第一上层路由节点BR1以及与第二路由节点BR21通信的第二上层路由节点BR2。另外,上层区块链网络1100还可以包括多个上层共识节点A1、A2、A3、A4。上层共识节点A1、A2、A3、A4可以用于实现上层区块链网络1100的具体业务,负责对交易进行验证和共识上链。虽然上层共识节点A1、A2、A3、A4的数量被图示为4个,但这仅仅是示例性而非限制性的,实际的上层区块链网络1100可以包括任何数量的共识节点。第一上层路由节点BR1、第二上层路由节点BR2与上层共识节点A1、A2、A3、A4相互通信。这可以通过专用于区块链的通信网络来实现,也可以通过互联网等其它通信网络来实现。上层区块链网络1100的上层路由节点(例如第一上层路由节点BR1、第二上层路由节点BR2)是上层区块链网络1100与其下层区块链网络通信的桥梁,可以负责转发下层区块链网络之间的跨链请求,以及响应下层区块链网络对上层区块链网络1100的请求。
第一区块链网络1110和第二区块链网络1120中的每一个在接入上层区块链网络1100时可以向第一上层路由节点BR1和第二上层路由节点BR2中的相应一个进行注册,并在注册成功后获得由第一上层路由节点BR1和第二上层路由节点BR2中的所述相应一个分配的网络标识。由于第一区块链网络1110和第二区块链网络1120都注册在上层区块链网络1100之下,因此第一区块链网络1110和第二区块链网络1120是同构的。作为非限制性示例,可以采用四字节来表示网络标识,其中首字节可以表示最上层(第一层)区块链网络(例如中继链网络)节点标识,后续字节可以表示下层网络节点标识(例如第二字节表示第二层网络节点标识,第三字节表示第三层网络节点标识,第四字节表示第四层网络节点标识),这种标识方式保证了网络的可扩展性。假设BR1的标识为81,BR2的标识为82,则注册在第一上层路由节点BR1中的第一区块链网络1110的网络标识可以是81000000,注册在第二上层路由节点BR2中的第二区块链网络1120的网络标识可以是82000000。假设第一区块链网络1110对应区块链X,第二区块链网络1120对应区块链Y,则可以通过URI的方式(比如网络标识/链标识)表示一个区块链,例如区块链X的URI标识为81000000/X,区块链Y的URI标识为82000000/Y。如果第一区块链网络1110或第二区块链网络1120要在上层区块链网络1100中发布一个服务,则也可以通过URI的方式(比如网络标识/链标识/服务标识)表示一个服务,例如区块链Y在上层区块链网络1100中发布合约C服务的URI标识为82000000/Y/C,并且在服务发布后,注册在上层区块链网络1100之下的任何下层区块链网络(例如,第一区块链网络1110和第二区块链网络1120)中的节点都可以通过该服务的URI标识调用该服务。
另外,上层区块链网络1100还被配置为通过将第一区块链网络1110和第二区块链网络1120中的每个区块链网络的共识节点的变更在上层区块链网络1100中上链存证来管理第一区块链网络1110和第二区块链网络1120中的每个区块链网络的共识节点。也就是说,上层区块链网络1100可以对注册在其下的所有下层区块链网络的节点成员信息进行管理,下层区块链网络的节点的任何变更(加入、退出)都必须在上层区块链网络1100中上链存证。这样,上层区块链网络1100的任意节点(例如,第一上层路由节点BR1,第二上层路由节点BR2,上层共识节点A1、A2、A3、A4)都知道注册在上层区块链网络1100下的各个下层区块链网络的节点成员信息,并因此能够通过验证签名集合或聚合签名的方式对下层区块链网络的交易进行简单支付确认(Simplified Payment Verification,SPV)验证,而不需要维护下层区块链网络的链上数据。
在一些实施例中,对于上层区块链网络1100的每个下层区块链网络,例如在图1中对于第一区块链网络1110和第二区块链网络1120中的每个区块链网络:当新节点要加入该区块链网络作为共识节点时,所述新节点可以被配置为从上层区块链网络1100获取证书并基于所获取的证书在该区块链网络中调用部署在该区块链网络中的第一加入合约的用于请求加入区块链网络的第一方法(此时,所述新节点的状态可以被标记为“待决(pending)”,并不算该区块链网络的正式共识节点),该区块链网络可以被配置为响应于执行所述第一方法而在上层区块链网络1100中调用部署在上层区块链网络1100中的第二加入合约来向上层区块链网络1100请求在该区块链网络中加入所述新节点,上层区块链网络1100可以被配置为在执行所述第二加入合约后将所述第二加入合约的执行结果在上层区块链网络1100中上链存证(此时,该节点在上层区块链网络1100中被标记为“加入”)并将上链证明传输至该区块链网络,该区块链网络可以被配置为基于所述上链证明在该区块链网络中调用所述第一加入合约的用于确认加入区块链网络的第二方法,以将所述新节点设置为该区块链网络的共识节点(此时,所述新节点的状态可以被标记为“有效(active)”,成为该区块链网络的正式共识节点)。前述证书可以是指身份证书(例如可以包括节点的公钥信息,或节点标识ID等其它能表征节点身份的信息),其例如可以通过信任根下发。新节点需要先有身份证书,才能让区块链网络认识它从而决定是否允许它加入。另外,在一些实施例中,对于上层区块链网络1100的每个下层区块链网络,例如在图1中对于第一区块链网络1110和第二区块链网络1120中的每个区块链网络:当该区块链网络的共识节点要退出该区块链网络时,该共识节点可以被配置为在该区块链网络中调用部署在该区块链网络中的第一退出合约以退出该区块链网络(此时,该节点可立刻不再参与共识),该区块链网络可以被配置为响应于执行所述第一退出合约而在上层区块链网络1100中调用部署在上层区块链网络1100中的第二退出合约来向上层区块链网络1100请求使该共识节点退出该区块链网络,上层区块链网络1100可以被配置为在执行所述第二退出合约后将所述第二退出合约的执行结果在上层区块链网络1100中上链存证(此时,该节点在上层区块链网络1100中被标记为“退出”)。
第一区块链网络1110和第二区块链网络1120都信任上层区块链网络1100,无须信任上层区块链网络1100中的某个或某些上层路由节点。也就是说,第一区块链网络1110信任上层区块链网络1100本身而无须委托上层区块链网络1100中与它通信的第一上层路由节点BR1作为它在上层区块链网络1100中设置的信任代表,第二区块链网络1120信任上层区块链网络1100本身而无须委托上层区块链网络1100中与它通信的第二上层路由节点BR2作为它在上层区块链网络1100中设置的信任代表。上层区块链网络1100不需要知道第一区块链网络1110和第二区块链网络1120中的每一者的链上数据而只需要管理第一区块链网络1110和第二区块链网络1120中的每一者的节点成员信息。由于上层区块链网络1100中的任一上层路由节点(例如,第一上层路由节点BR1、第二上层路由节点BR2)都既知道第一区块链网络1110的节点成员信息也知道第二区块链网络1120的节点成员信息,所以在第一区块链网络1110和第二区块链网络1120之间的跨链交互可以通过第一区块链网络1110和第二区块链网络1120共同信任的上层区块链网络1100进行背书从而得到信任。第一区块链网络1110和第二区块链网络1120中的一者不需要维护第一区块链网络1110和第二区块链网络1120中的另一者的链上数据和节点成员信息,只需要向上层区块链网络1100查询第一区块链网络1110和第二区块链网络1120中的另一者的节点成员信息就能彼此进行跨链交互。由此,在第一区块链网络1110和第二区块链网络1120之间经由上层区块链网络1100实现了信任传递,而不需要第一区块链网络1110和第二区块链网络1120彼此信任。这样,既能够促进第一区块链网络1110和第二区块链网络1120之间的跨链交互,又能够保证第一区块链网络1110和第二区块链网络1120之间的信息隔离,使得对方只需知道执行所请求的跨链交易所需的信息而不会知道自己的其它信息,还能够减轻上层区块链网络1100、第一区块链网络1110和第二区块链网络1120的各个节点的数据维护负担。
接下来继续参考图1,描述从第一区块链网络1110到第二区块链网络1120的跨链交互的示例过程。如图1所示,当第一区块链网络1110发起要在第二区块链网络1120中执行的跨链交易时:第一路由节点BR11可以被配置为获得来自第一区块链网络1110的要在第二区块链网络1120中执行的跨链交易msg_req并将跨链交易msg_req传输至第一上层路由节点BR1。在一些实施例中,跨链交易可以由第一区块链网络1110的第一共识节点发送给第一路由节点BR11。在一些实施例中,也可以由第一路由节点BR11自己收集第一区块链网络1110中的跨链交易。在一些示例中,第一路由节点BR11自己也可以是全节点。例如,在第一区块链网络1110中产生跨链请求后,该跨链请求在本区块链内进行共识。在共识完成后,生成跨链交易打包出块。于是第一路由节点BR11可以通过监视区块来查询区块中的跨链交易。在一些实施例中,第一路由节点BR11还可以被配置为将跨链交易构造为特定的跨链消息格式,以便进行跨链交互。接下来,第一上层路由节点BR1可以被配置为将从第一路由节点BR11接收到的跨链交易msg_req传输至第二上层路由节点BR2。第二上层路由节点BR2可以被配置为将从第一上层路由节点BR1接收到的跨链交易msg_req传输至第二路由节点BR21。第二路由节点BR21可以被配置为在第二区块链网络1120中广播从第二上层路由节点BR2接收到的跨链交易msg_req,使得第二区块链网络1120的所述多个第二共识节点Y1、Y2、Y3、Y4接收并执行所述跨链交易。在一些实施例中,可以由第二区块链网络1120的所述多个第二共识节点Y1、Y2、Y3、Y4中的主节点接收并执行所述跨链交易,该主节点是可以由第二区块链网络1120的具体共识机制决定的。由此,由第一区块链网络1110请求的跨链交易在第二区块链网络1120中被执行。
在将跨链交易从第一区块链网络1110传递到第二区块链网络1120的过程中,既不需要第一区块链网络1110的各个第一共识节点进行签名,也不需要途经的各个路由节点对跨链交易进行验证和/或加签自己的签名。实际上,只要产生跨链交易的请求的节点在上层区块链网络1100的网络架构中具有合法身份,该节点就可以调用第二区块链网络1120中的智能合约或者说服务。
例如,跨链交易可以包括作为发送方的第一区块链网络1110的网络标识和作为接收方的第二区块链网络1120的网络标识。第一上层路由节点BR1可以被配置为根据跨链交易中包括的第二区块链网络1120的网络标识查询在上层区块链网络1100中与第二区块链网络1120通信的第二上层路由节点BR2,并将跨链交易传输至第二上层路由节点BR2。例如,在前面提到的示例中,第二区块链网络1120的区块链Y在上层区块链网络1100中发布合约C服务的URI标识为82000000/Y/C,假设第一区块链网络1110的区块链X想要调用合约C服务,则其跨链交易中包括合约C服务的URI标识为82000000/Y/C,那么第一上层路由节点BR1可以检查目标服务即合约C服务的URI标识中的网络标识,根据网络标识的首字节82确定在上层区块链网络1100中与目标区块链网络即第二区块链网络1120通信的上层路由节点是第二上层路由节点BR2,然后可以将跨链交易传输至第二上层路由节点BR2。接下来,第二上层路由节点BR2还可以被配置为根据跨链交易中包括的第二区块链网络1120的网络标识(例如,后续字节)查找自己本地注册的第二区块链网络1120的第二路由节点BR21,并将跨链交易传输至第二路由节点BR21。跨链交易可以包括第一区块链网络1110想要调用的服务的URI标识,第二区块链网络1120的主节点可以根据服务标识执行相应的服务。
在一些实施例中,当跨链交易在第二区块链网络1120中被执行后,还可以将跨链交易的执行结果(例如包括但不限于回执消息)从第二区块链网络1120传输到第一区块链网络1110。图2描述了从第二区块链网络1120到第一区块链网络1110的跨链交互的示例过程。
如图2所示,在所述跨链交易在第二区块链网络中被执行后,第二路由节点BR21可以被配置为获得来自第二区块链网络1120的指示跨链交易被执行的执行结果以及针对所述执行结果的上链证明并将执行结果和上链证明传输至第二上层路由节点BR2。上链证明可以指第二共识节点的签名,其例如可以采用签名的集合或聚合签名的方式。在一些实施例中,执行结果和上链证明可以由第二区块链网络1120的第二共识节点发送给第二路由节点BR21。在一些实施例中,也可以由第二路由节点BR21自己收集第二区块链网络1120中的执行结果和上链证明。在一些示例中,第二路由节点BR21自己也可以是全节点。例如,在第二区块链网络1120中执行跨链交易后,该执行结果在本区块链内进行共识。在共识完成后,将执行结果打包出块并产生上链证明。于是第二路由节点BR21可以通过监视区块来查询执行结果和上链证明。在一些实施例中,第二路由节点BR21还可以被配置为将执行结果构造为特定的跨链消息格式,以便进行跨链交互。
在一些实施例中,第二路由节点BR21也可以被配置为在获得来自第二区块链网络1120的指示跨链交易被执行的执行结果后请求第二区块链网络1120的所述多个第二共识节点Y1、Y2、Y3、Y4对执行结果进行签名,并在接收到的第二共识节点的签名的数量达到预设阈值时将执行结果和包括接收到的第二共识节点的签名的上链证明传输至第二上层路由节点BR2。该预设阈值是可配置的。在本文中,预设阈值可以是任何与数量有关的量,其例如可以表现为数值,或者可以表现为比例或百分比。例如,在一些实施例中,可以要求第二路由节点BR21在接收到第二区块链网络1120中的所有第二共识节点Y1、Y2、Y3、Y4的签名后才将执行结果和上链证明传输至第二上层路由节点BR2;在另一些实施例中,也可以要求第二路由节点BR21在接收到第二区块链网络1120中的预设比例以上(例如,超过三分之二、超过二分之一等等)的第二共识节点的签名后才将执行结果和上链证明传输至第二上层路由节点BR2;在另一些实施例中,也可以要求第二路由节点BR21只要接收到第二区块链网络1120中的预设个数以上(例如,超过两个、超过三个、超过五个等等)的第二共识节点的签名后就将执行结果和上链证明传输至第二上层路由节点BR2。第二路由节点BR21可以只对第二共识节点的签名进行收集和转发,而不验证这些签名是否正确,也无需验证执行结果。在图2的示例中,第二路由节点BR21接收到了包括所有第二共识节点Y1、Y2、Y3、Y4的签名的上链证明sign(Y1,Y2,Y3,Y4)并将其与执行结果msg_resp一起传输至第二上层路由节点BR2。
接下来,第二上层路由节点BR2可以被配置为将从第二路由节点BR21接收到的执行结果和上链证明传输至第一上层路由节点BR1。第一上层路由节点BR1可以被配置为将从第二上层路由节点BR2接收到的执行结果和上链证明传输至第一路由节点BR11。在一些实施例中,执行结果可以包括作为发送方的第二区块链网络1120的网络标识和作为接收方的第一区块链网络1110的网络标识,并且第二上层路由节点BR2可以被配置为根据执行结果中包括的第一区块链网络1110的网络标识查询在上层区块链网络1100中与第一区块链网络1110通信的第一上层路由节点BR1,并将执行结果和上链证明传输至第一上层路由节点BR1。例如,在前面提到的示例中,第一区块链网络1110的区块链X调用了合约C服务,并且区块链Y响应于此而执行了合约C服务,则其执行结果可以包括区块链X的URI标识81000000/X,那么第二上层路由节点BR2可以检查目标区块链即区块链X的URI标识中的网络标识,根据网络标识的首字节81确定在上层区块链网络1100中与目标区块链网络即第一区块链网络1110通信的上层路由节点是第一上层路由节点BR1,然后可以将执行结果和上链证明传输至第一上层路由节点BR1。接下来,第一上层路由节点BR1还可以被配置为根据跨链交易中包括的第一区块链网络1110的网络标识(例如,后续字节)查找自己本地注册的第一区块链网络1110的第一路由节点BR11,并将执行结果和上链证明传输至第一路由节点BR11。第二上层路由节点BR2和第一上层路由节点BR1中的每一者可以只对执行结果和上链证明进行转发,而无需对执行结果和上链证明中的任何一者进行验证。在图2的示例中,第二上层路由节点BR2将执行结果msg_resp和上链证明sign(Y1,Y2,Y3,Y4)传输至第一上层路由节点BR1,第一上层路由节点BR1将执行结果msg_resp和上链证明sign(Y1,Y2,Y3,Y4)传输至第一路由节点BR11。
第一路由节点BR11可以被配置为在第一区块链网络1110中广播从第一上层路由节点BR1接收到的执行结果和上链证明,使得第一区块链网络1110的所述多个第一共识节点X1、X2、X3、X4接收执行结果和上链证明。第一路由节点BR11可以只对执行结果和上链证明进行转发,而无需对执行结果和上链证明中的任何一者进行验证。此时,第一共识节点由于不维护第二区块链网络1120的节点成员信息,因此不认识第二区块链网络1120中的共识节点,进而暂时无法验证接收到的上链证明。因此,第一共识节点(例如,所述多个第一共识节点X1、X2、X3、X4中的主节点,这可以由具体共识机制决定)可以被配置为向上层区块链网络1100发送用于查询第二区块链网络1120的共识节点公钥列表的查询请求,基于查询到的第二区块链网络1120的共识节点公钥列表验证接收到的上链证明是否正确,并在验证通过时信任接收到的执行结果。例如,如图2所示,第一路由节点BR11可以被配置为获得来自第一共识节点的用于查询第二区块链网络1120的共识节点公钥列表的查询请求msg_query并将查询请求msg_query传输至第一上层路由节点BR1。由于第一上层路由节点BR1知道第二区块链网络1120的节点成员信息,因此第一上层路由节点BR1可以被配置为响应于从第一路由节点BR11接收到查询请求而对第二区块链网络1120的共识节点公钥列表进行只读查询,并将查询到的第二区块链网络1120的共识节点公钥列表msg_list传输至第一路由节点BR11。第一上层路由节点BR1无需在上层区块链网络1100中将该只读查询上链存证。第一路由节点BR11可以被进一步配置为在第一区块链网络1110中广播从第一上层路由节点BR1接收到的第二区块链网络1120的共识节点公钥列表msg_list,使得第一共识节点接收到第二区块链网络1120的共识节点公钥列表msg_list。第一共识节点可以被配置为基于第二区块链网络的共识节点公钥列表msg_list验证接收到的上链证明msg_resp是否正确,并在验证通过时信任接收到的执行结果。可以配置具体的信任策略来确定在上链证明满足什么样的条件时验证通过。例如,当上链证明sign(Y1,Y2,Y3,Y4)是第二共识节点Y1、Y2、Y3、Y4的签名的集合时,信任策略可以要求在接收到的签名全部正确时验证通过,也可以要求接收到的签名中的正确签名占预设比例以上(例如,超过三分之二、超过二分之一等等)时验证通过,在此不对其作特别限制。第一区块链网络1110可以在信任执行结果后对其进行后续处理,例如将执行结果在第一区块链网络1110中上链存证和/或输入到后续合约操作中。
如果在第二区块链网络1120向第一区块链网络1110返回执行结果和上链证明(第二路由节点BR21获得执行结果和上链证明并将其传输至第二上层路由节点BR2)之后并且在第一上层路由节点BR1执行从第一路由节点BR11接收到来自第一共识节点的用于查询第二区块链网络1120的共识节点公钥列表的查询请求并返回查询到的第二区块链网络1120的共识节点公钥列表之前,第二区块链网络1120的节点成员恰好发生了变更,则可能导致第一共识节点验证上链证明失败,此时第一共识节点可以重新向上层区块链网络1100发送查询请求。由于区块链网络的节点成员变更通常是低频操作的,因此这种失败的发生频率通常较低,一般是可以容忍的。如果重新查询到的第二区块链网络1120的共识节点公钥列表确实与之前查询到的第二区块链网络1120的共识节点公钥列表不一致,则上次失败可能是由于第二区块链网络1120的节点成员变更导致的,因而可以用重新查询到的第二区块链网络1120的共识节点公钥列表再次验证上链证明。
在图1的示例中,第一区块链网络1110设置有一个第一路由节点BR11,但是在其它一些示例中,第一区块链网络1110也可以设置有多个第一路由节点。例如,A机构和B机构共同参与了第一区块链网络1110的区块链X,但是A机构和B机构虽然在一定程度上相互信任但是可能也没有非常信任对方,因此A机构和B机构可以分别在第一区块链网络1110中设置自己的第一路由节点以用于与上层区块链网络1100通信。因此,在一些实施例中,第一区块链网络1110可以包括多个所述第一路由节点,每个第一路由节点可以与第一上层路由节点BR1通信。当第一区块链网络1100发起要在第二区块链网络1120中执行的跨链交易时,每个所述第一路由节点可以被配置为单独地获得来自第一区块链网络1110的要在第二区块链网络1120中执行的跨链交易并将跨链交易传输至第一上层路由节点BR1。在一些示例中,第一上层路由节点BR1可以进一步被配置为从每个所述第一路由节点接收跨链交易,验证从每个所述第一路由节点接收到的跨链交易的哈希值是否一致,并在验证通过时将经过去重的跨链交易传输至第二上层路由节点BR2。换言之,第一上层路由节点BR1可能从多个第一路由节点重复多次接收到相同跨链交易,但第一上层路由节点BR1可以对接收到的跨链交易进行去重并把去重后的跨链交易传输至第二上层路由节点BR2。在一些示例中,当第一上层路由节点BR1验证从每个第一路由节点接收到的跨链交易的哈希值不一致(即哈希验证不通过)时,第一上层路由节点BR1可以向第一路由节点返回失败消息。另外,在所述跨链交易在第二区块链网络1120中被执行后,每个所述第一路由节点可以被配置为单独地从第一上层路由节点BR1接收执行结果和上链证明,并在第一区块链网络1110中广播接收到的执行结果和上链证明。在一些示例中,第一共识节点还可以被配置为经由每个第一路由节点分别向上层区块链网络1100查询第二区块链网络1120的共识节点公钥列表。例如,每个第一路由节点还可以被配置为单独地获得来自第一共识节点的用于查询第二区块链网络1120的共识节点公钥列表的查询请求并将所述查询请求传输至第一上层路由节点BR1,以及单独地从第一上层路由节点BR1接收第二区块链网络1120的共识节点公钥列表并在第一区块链网络1110中广播接收到的第二区块链网络1120的共识节点公钥列表。在一些示例中,第一共识节点可以被配置为基于从每个第一路由节点接收到的第二区块链网络1120的共识节点公钥列表验证从该第一路由节点接收到的上链证明是否正确,并在所述多个所述第一路由节点中的通过验证的第一路由节点的数量达到预设阈值时信任接收到的执行结果。进一步地,第一共识节点例如还可以被配置为在验证上链证明通过后进一步验证从每个第一路由节点接收到的执行结果的哈希值是否一致,并在验证通过时信任经过去重的执行结果。在另一些示例中,第一共识节点也可以被配置为基于从所述多个所述第一路由节点中的一个第一路由节点接收到的第二区块链网络1120的共识节点公钥列表验证从所述多个所述第一路由节点中的另一个第一路由节点接收到的上链证明是否正确。这可以被视为交叉验证。第一共识节点可以被配置为在所述多个所述第一路由节点中的通过交叉验证的第一路由节点的数量达到预设阈值时信任接收到的执行结果。同样,上述预设阈值是可配置的,在此不受特别限制。在一些示例中,第一共识节点可以进一步验证从所述多个所述第一路由节点中的每个第一路由节点接收到的执行结果的哈希值是否一致,并在验证通过时信任经过去重的执行结果。
例如,参考图3,第一区块链网络1110设置有两个第一路由节点BR11和BR12。第一路由节点BR11和第一路由节点BR12各自单独地获得来自第一区块链网络1110的要在第二区块链网络1120中执行的跨链交易并将跨链交易传输至第一上层路由节点BR1,第一上层路由节点BR1将经过去重的跨链交易传输至第二上层路由节点BR2进而传输至第二路由节点BR21。第二路由节点BR21在第二区块链网络1120中广播接收到的跨链交易使得该跨链交易在第二区块链网络1120中被执行上链。然后,第二路由节点BR21获得来自第二区块链网络1120的指示跨链交易被执行的执行结果以及针对所述执行结果的上链证明,并且执行结果和上链证明被依次传输至第二上层路由节点BR2、第一上层路由节点BR1,第一上层路由节点BR1将执行结果和上链证明传输至每个第一路由节点BR11和BR12。每个第一路由节点BR11和BR12可以分别在第一区块链网络1110中广播接收到的执行结果和上链证明。每个第一路由节点BR11和BR12还可以各自单独地获得来自第一共识节点的用于查询第二区块链网络1120的共识节点公钥列表的查询请求并将所述查询请求传输至第一上层路由节点BR1,以及单独地从第一上层路由节点BR1接收第二区块链网络1120的共识节点公钥列表并在第一区块链网络1100中广播接收到的第二区块链网络1120的共识节点公钥列表。如果第二区块链网络1120也设置有多个第二路由节点,则第二上层路由节点BR2可以将接收到的跨链交易传输至每个第二路由节点以及可以从每个第二路由节点分别接收该第二路由节点所获得的执行结果和上链证明。
在图1的示例中,第二区块链网络1120设置有一个第二路由节点BR21,但是在其它一些示例中,第二区块链网络1120也可以设置有多个第二路由节点。例如,C机构和D机构共同参与了第二区块链网络1120的区块链Y,但是C机构和D机构虽然在一定程度上相互信任但是可能也没有非常信任对方,因此C机构和D机构可以分别在第二区块链网络1120中设置自己的第二路由节点以用于与上层区块链网络1100通信。因此,在一些实施例中,第二区块链网络1120可以包括多个所述第二路由节点,每个第二路由节点可以与第二上层路由节点BR2通信。当第一区块链网络1100发起要在第二区块链网络1120中执行的跨链交易时,每个所述第二路由节点可以被配置为单独地从第二上层路由节点BR2接收跨链交易并在第二区块链网络1120中广播接收到的跨链交易。在一些示例中,第二共识节点还可以被配置为验证从每个所述第二路由节点接收到的跨链交易的哈希值是否一致,并在验证通过时执行经过去重的跨链交易。另外,在所述跨链交易在第二区块链网络1120中被执行后,每个所述第二路由节点可以被配置为单独地获得来自第二区块链网络1120的指示跨链交易被执行的执行结果以及针对所述执行结果的上链证明并将执行结果和上链证明传输至第二上层路由节点BR2。在一些示例中,第二上层路由节点BR2可以进一步被配置为从每个所述第二路由节点接收执行结果和上链证明,验证从每个所述第二路由节点接收到的执行结果的哈希值以及上链证明的哈希值是否一致,并在验证通过时将经过去重的执行结果和上链证明传输至第一上层路由节点BR1。换言之,第二上层路由节点BR2可能从多个第二路由节点重复多次接收到相同执行结果和上链证明,但第二上层路由节点BR2可以对接收到的执行结果和上链证明进行去重并把去重后的执行结果和去重后的上链证明传输至第一上层路由节点BR1。在一些示例中,当第二上层路由节点BR2验证从每个第二路由节点接收到的执行结果的哈希值和/或上链证明的哈希值不一致(即哈希验证不通过)时,第二上层路由节点BR2可以向第二路由节点返回失败消息。
例如,参考图4,第二区块链网络1120设置有两个第二路由节点BR21和BR22。第一路由节点BR1获得来自第一区块链网络1110的要在第二区块链网络1120中执行的跨链交易并且跨链交易被依次传输至第一上层路由节点BR1和第二上层路由节点BR2。第二上层路由节点BR2将接收到的跨链交易传输至每个第二路由节点BR21和BR22。每个第二路由节点BR21和BR22各自在第二区块链网络1120中广播接收到的跨链交易使得该跨链交易在第二区块链网络1120中被执行上链。然后,每个第二路由节点BR21和BR22分别获得来自第二区块链网络1120的指示跨链交易被执行的执行结果以及针对所述执行结果的上链证明并将执行结果和上链证明传输至第二上层路由节点BR2,第二上层路由节点BR2将经过去重的执行结果和上链证明依次传输至第一上层路由节点BR1、第一路由节点BR11。第一路由节点BR11在第一区块链网络1110中广播接收到的执行结果和上链证明。如果第一区块链网络1110也设置有多个第一路由节点,则第一上层路由节点BR1可以从每个第一路由节点分别接收该第一路由节点所获得的跨链交易以及可以将接收到的执行结果和上链证明传输至每个第一路由节点。
另外,在图1的示例中,第一区块链网络1110与上层区块链网络1100中的一个第一上层路由节点BR1通信。考虑到一个第一上层路由节点可能存在单点故障不可靠的问题,因此可以通过设置集群来解决这个问题。也就是说,第一区块链网络1110可以在上层区块链网络1100中设置通信节点集合,这样的通信节点集合可以包括多个与第一区块链网络1110的第一路由节点BR11通信的第一上层路由节点。
在一些实施例中,上层区块链网络1100可以包括与第一路由节点BR11通信的多个所述第一上层路由节点。当第一区块链网络1110发起要在第二区块链网络1120中执行的跨链交易时,第一路由节点BR11可以被配置为将跨链交易传输至每个所述第一上层路由节点,即每个所述第一上层路由节点可以被配置为单独地从第一路由节点BR11接收跨链交易。每个所述第一上层路由节点可以被配置为将接收到的跨链交易传输至第二上层路由节点BR2。在一些示例中,第二上层路由节点BR2可以被配置为从每个所述第一上层路由节点接收跨链交易,验证从每个所述第一上层路由节点接收到的跨链交易的哈希值是否一致,并在验证通过时将经过去重的跨链交易传输至第二路由节点BR21。另外,在所述跨链交易在第二区块链网络1120中被执行后,第二上层路由节点BR2可以被配置为将从第二路由节点BR21接收到的执行结果以及针对所述执行结果的上链证明传输至每个所述第一上层路由节点,即每个所述第一上层路由节点被配置为单独地从第二上层路由节点BR2接收执行结果和上链证明。每个所述第一上层路由节点可以被配置为将执行结果和上链证明传输至第一路由节点。在一些示例中,第一路由节点BR11可以被配置为在第一区块链网络1110中广播从每个所述第一上层路由节点接收到的执行结果和上链证明,使得第一区块链网络的所述多个第一共识节点接收来自每个所述第一上层路由节点的执行结果和上链证明。在一些示例中,第一共识节点可以被配置为向上层区块链网络1100发送用于查询第二区块链网络1120的共识节点公钥列表的查询请求,基于查询到的第二区块链网络1120的共识节点公钥列表验证接收到的来自每个所述第一上层路由节点的上链证明是否正确,并在所述多个所述第一上层路由节点中的通过验证的第一上层路由节点的数量达到预设阈值时信任接收到的执行结果。同样,该预设阈值是可配置的,在此不受特别限制。例如,第一路由节点BR11还可以被配置为获得来自第一共识节点的用于查询第二区块链网络1120的共识节点公钥列表的查询请求并将所述查询请求传输至每个所述第一上层路由节点,以及分别从每个所述第一上层路由节点接收第二区块链网络1120的共识节点公钥列表并在第一区块链网络1110中广播从每个所述第一上层路由节点接收到的第二区块链网络1120的共识节点公钥列表。在一些示例中,第一共识节点可以被配置为基于来自每个所述第一上层路由节点的第二区块链网络1120的共识节点公钥列表验证来自该第一上层路由节点的上链证明是否正确,并在所述多个所述第一上层路由节点中的通过验证的第一上层路由节点的数量达到预设阈值时信任接收到的执行结果。进一步地,第一共识节点例如还可以被配置为在验证上链证明通过后进一步验证来自每个所述第一上层路由节点的执行结果的哈希值是否一致,并在验证通过时信任经过去重的执行结果。替代地,对执行结果的哈希验证与去重可以由第一路由节点BR11提前执行。在另一些示例中,第一共识节点也可以被配置为基于来自所述多个所述第一上层路由节点中的一个第一上层路由节点的第二区块链网络1120的共识节点公钥列表验证来自所述多个所述第一上层路由节点中的另一个第一上层路由节点的上链证明是否正确。这可以被视为交叉验证。第一共识节点可以被配置为在所述多个所述第一上层路由节点中的通过交叉验证的第一上层路由节点的数量达到预设阈值时信任接收到的执行结果。
例如,参考图5,上层区块链网络1100可以包括与第一路由节点BR11通信的两个第一上层路由节点BR1和BR1’,第一路由节点BR11可以将跨链交易传输至每个第一上层路由节点BR1、BR1’,每个第一上层路由节点BR1、BR1’可以将接收到的跨链交易传输至第二上层路由节点BR2,并且第二上层路由节点BR2可以将经过去重的跨链交易至第二路由节点BR21。在跨链交易在第二区块链网络1120中被执行后,第二路由节点B21可以将执行结果和上链证明传输至第二上层路由节点BR2进而传输至每个第一上层路由节点BR1和BR1’,每个第一上层路由节点BR1和BR1’分别将从第二上层路由节点BR2接收到的执行结果和上链证明传输至第一路由节点BR11。另外,每个第一上层路由节点BR1和BR1’还可以分别响应于从第一路由节点BR11接收到用于查询第二区块链网络1120的共识节点公钥列表的查询请求而对第二区块链网络1120的共识节点公钥列表进行只读查询,并将查询到的第二区块链网络1120的共识节点公钥列表传输至第一路由节点BR11。
替代地,当上层区块链网络1100包括与第一路由节点BR11通信的多个第一上层路由节点时,也可以不使每个第一上层路由节点都单独地执行数据的查询与收发二者,而是可以使其中一个或多个第一上层路由节点执行数据的收发并且使另外一个或多个第一上层路由节点执行数据的查询。这样既可以防止单点故障不可靠,又可以节省计算资源。具体地,在一些实施例中,与第一路由节点BR11通信的多个第一上层路由节点可以包括第一第一上层路由节点和第二第一上层路由节点。当第一区块链网络1110发起要在第二区块链网络1120中执行的跨链交易时,第一路由节点BR11可以被配置为将跨链交易传输至第一第一上层路由节点,即第一第一上层路由节点可以被配置为从第一路由节点BR11接收跨链交易并将接收到的跨链交易传输至第二上层路由节点BR2。在所述跨链交易在第二区块链网络1120中被执行后,第二上层路由节点BR2可以被配置为将执行结果以及针对所述执行结果的上链证明传输至第一第一上层路由节点,即第一第一上层路由节点可以被配置为从第二上层路由节点BR2接收执行结果和上链证明并将接收到的执行结果和上链证明传输至第一路由节点。第一路由节点BR11可以进一步被配置为在第一区块链网络1110中广播从第一第一上层路由节点接收到的执行结果和上链证明,使得第一区块链网络1110的所述多个第一共识节点X1、X2、X3、X4接收执行结果和上链证明。第一共识节点X1、X2、X3、X4(例如,其中的主节点)可以被配置为向上层区块链网络1100发送用于查询第二区块链网络1120的共识节点公钥列表的查询请求。如此,在一些示例中,第一第一上层路由节点可以被配置为从第一路由节点BR11接收来自第一共识节点的用于查询第二区块链网络1120的共识节点公钥列表的查询请求并将所述查询请求传输至第二一上层路由节点,第二第一上层路由节点可以被配置为响应于从第一第一上层路由节点接收到所述查询请求而对第二区块链网络1120的共识节点公钥列表进行只读查询,并将查询到的第二区块链网络1120的共识节点公钥列表传输至第一第一上层路由节点,并且第一第一上层路由节点还可以被配置为将从第二第一上层路由节点接收到的第二区块链网络1120的共识节点公钥列表传输至第一路由节点BR11。第一路由节点BR11可以被配置为在第一区块链网络1110中广播从第一第一上层路由节点接收到的第二区块链网络1120的共识节点公钥列表,使得第一区块链网络1110的所述多个第一共识节点X1、X2、X3、X4接收第二区块链网络1120的共识节点公钥列表、基于接收到的第二区块链网络1120的共识节点公钥列表验证接收到的上链证明是否正确、并在验证通过时信任接收到的执行结果。
例如,参考图6,上层区块链网络1100包括与第一路由节点BR11通信的第一第一上层路由节点BR1和第二第一上层路由节点BR1’。第一路由节点BR11可以将跨链交易传输至第一第一上层路由节点BR1,第一第一上层路由节点BR1可以将跨链交易传输至第二上层路由节点BR2进而传输至第二路由节点BR21以在第二区块链网络1120中广播并执行上链。第二路由节点BR21可以将执行结果和上链证明传输至第二上层路由节点BR2进而传输至第一第一上层路由节点BR1、第一路由节点BR11以在第一区块链网络1110中广播。第一共识节点X1、X2、X3、X4(例如,其中的主节点)可以经由第一路由节点BR11向上层区块链网络1100的第一第一上层路由节点BR1发送用于查询第二区块链网络1120的共识节点公钥列表的查询请求。第一第一上层路由节点BR1可以将从第一路由节点BR11接收到的来自第一共识节点的用于查询第二区块链网络1120的共识节点公钥列表的查询请求传输至第二一上层路由节点BR1’。第二第一上层路由节点BR1’可以响应于从第一第一上层路由节点BR1接收到所述查询请求而对第二区块链网络1120的共识节点公钥列表进行只读查询,并将查询到的第二区块链网络1120的共识节点公钥列表传输至第一第一上层路由节点BR1。第一第一上层路由节点BR1可以进一步将从第二第一上层路由节点BR1’接收到的第二区块链网络1120的共识节点公钥列表传输至第一路由节点BR11。第一路由节点BR11可以在第一区块链网络1110中广播从第一第一上层路由节点BR1接收到的第二区块链网络1120的共识节点公钥列表,使得第一区块链网络1110的所述多个第一共识节点X1、X2、X3、X4(例如,其中的主节点)接收第二区块链网络1120的共识节点公钥列表、基于接收到的第二区块链网络1120的共识节点公钥列表验证接收到的上链证明是否正确、并在验证通过时信任接收到的执行结果。
虽然以上只描述了第一区块链网络1110在上层区块链网络1100中部署的通信节点集合中的一个上层路由节点负责数据收发并且另一个上层路由节点负责数据查询,但这仅仅是示例性的而非限制性的。例如,还可以使第一区块链网络1110在上层区块链网络1100中部署的通信节点集合包括与第一区块链网络1110通信的上层路由节点的一个或多个组,每组包括一个或多个负责数据收发的收发路由节点以及一个或多个负责数据查询的查询路由节点。如果需要进行查询,则来自第一路由节点BR11的查询请求会传输至每组中的一个或多个收发路由节点,然后每组中的各个收发路由节点会单独地将查询请求传输至该组中的每个查询路由节点进行查询,该组中的各个查询路由节点将查询结果传输至该组中的每个收发路由节点,之后每组中的各个收发路由节点将查询结果传输至第一路由节点BR11。如果不需要进行查询,则每组中的各个收发路由节点可以直接将来自第一路由节点BR11或第二上层路由节点BR2的数据传输至第二上层路由节点BR2或第一路由节点BR11。
在另一些示例中,第一共识节点可以在接收到所述多个所述第一上层路由节点中的一个或多个第一上层路由节点(例如,第一第一上层路由节点BR1)的执行结果和上链证明后,经由第一路由节点BR11向所述多个所述第一上层路由节点中的其它一个或多个第一上层路由节点(例如,第二第一上层路由节点BR1’)直接发送查询请求,并且基于直接从所述多个所述第一上层路由节点中的所述其它一个或多个第一上层路由节点(例如,第二第一上层路由节点BR1’)接收到的第二区块链网络1120的共识节点公钥列表验证从所述多个所述第一上层路由节点中的所述一个或多个第一上层路由节点(例如,第一第一上层路由节点BR1)接收到的上链证明是否正确,并在验证通过时信任从所述多个所述第一上层路由节点中的所述一个或多个第一上层路由节点(例如,第一第一上层路由节点BR1)接收到的执行结果。
另外,在图1的示例中,第二区块链网络1120与上层区块链网络1100中的一个第二上层路由节点BR2通信。考虑到一个第二上层路由节点可能存在单点故障不可靠的问题,因此可以通过设置集群来解决这个问题。也就是说,第二区块链网络1120可以在上层区块链网络1100中设置通信节点集合,这样的通信节点集合可以包括多个与第二区块链网络1120的第二路由节点BR21通信的第二上层路由节点。
在一些实施例中,上层区块链网络1100可以包括与第二路由节点BR21通信的多个所述第二上层路由节点。当第一区块链网络1110发起要在第二区块链网络1120中执行的跨链交易时,第一上层路由节点BR1可以被配置为将跨链交易传输至每个所述第二上层路由节点,即每个所述第二上层路由节点可以被配置为单独地从第一上层路由节点BR1接收跨链交易。每个所述第二上层路由节点可以被配置为将接收到的跨链交易传输至第二路由节点BR21。在一些示例中,第二路由节点BR2可以被配置为在第二区块链网络1120中广播从每个所述第二上层路由节点接收到的跨链交易,第二共识节点可以被配置为验证来自每个所述第二上层路由节点的跨链交易的哈希值是否一致,并在验证通过时执行经过去重的跨链交易。替代地,对跨链交易的哈希验证与去重可以由第二路由节点BR21提前执行。另外,在所述跨链交易在第二区块链网络1120中被执行后,第二路由节点BR21可以被配置为将所获得的执行结果以及针对所述执行结果的上链证明传输至每个所述第二上层路由节点,即每个所述第二上层路由节点被配置为单独地从第二路由节点BR21接收执行结果和上链证明。每个所述第二上层路由节点可以被配置为将接收到的执行结果和上链证明传输至第一上层路由节点BR1。在一些示例中,第一上层路由节点BR1可以被配置为验证从每个所述第二上层路由节点接收到的执行结果的哈希值以及上链证明的哈希值是否一致,并在验证通过时将经过去重的执行结果和上链证明传输至第一路由节点BR11。换言之,第一上层路由节点BR1可能从多个第二上层路由节点重复多次接收到相同执行结果和上链证明,但第一上层路由节点BR1可以对接收到的执行结果和上链证明进行去重并把去重后的执行结果和去重后的上链证明传输至第一路由节点BR11。在一些示例中,当第一上层路由节点BR1验证从每个第二上层路由节点接收到的执行结果的哈希值和/或上链证明的哈希值不一致(即哈希验证不通过)时,第一上层路由节点BR1可以向第二上层路由节点返回失败消息。
例如,参考图7,上层区块链网络1100可以包括与第二路由节点BR21通信的两个第二上层路由节点BR2和BR2’,第一路由节点BR11可以将跨链交易传输至第一上层路由节点BR1进而传输至每个第二上层路由节点BR2和BR2’,每个第二上层路由节点BR2和BR2’可以将接收到的跨链交易传输至第二路由节点BR21以在第二区块链网络1120中广播并执行上链。在跨链交易在第二区块链网络1120中被执行后,第二路由节点B21可以将执行结果和上链证明传输至每个第二上层路由节点BR2和BR2’。每个第二上层路由节点BR2和BR2’可以分别将执行结果和上链证明传输至第一上层路由节点BR1,第一上层路由节点BR1可以将经过去重的执行结果和经过去重的上链证明传输至第一路由节点BR11进而在第一区块链网络1110中广播。
替代地,当上层区块链网络1100包括与第二路由节点BR21通信的多个第二上层路由节点时,也可以不使每个第二上层路由节点都单独地执行数据的查询与收发二者,而是可以使其中一个或多个第二上层路由节点执行数据的收发并且使另外一个或多个第二上层路由节点执行数据的查询。这样既可以防止单点故障不可靠,又可以节省计算资源。具体地,在一些实施例中,与第二路由节点BR21通信的多个第二上层路由节点可以包括第一第二上层路由节点和第二第二上层路由节点。当第一区块链网络1110发起要在第二区块链网络1120中执行的跨链交易时,第一上层路由节点BR1可以被配置为将跨链交易传输至第一第二上层路由节点,即第一第二上层路由节点可以被配置为从第一上层路由节点BR1接收跨链交易并将接收到的跨链交易传输至第二路由节点BR21。在所述跨链交易在第二区块链网络1120中被执行后,第二路由节点BR21可以被配置为将执行结果以及针对所述执行结果的上链证明传输至第一第二上层路由节点,即第一第二上层路由节点被配置为从第二路由节点BR21接收执行结果和上链证明并将接收到的执行结果和上链证明传输至第一上层路由节点BR1。
例如,参考图8,上层区块链网络1100包括与第二路由节点BR21通信的第一第二上层路由节点BR2和第二第二上层路由节点BR2’。第一路由节点BR11可以将跨链交易传输至第一上层路由节点BR1,第一上层路由节点BR1可以将跨链交易传输至第一第二上层路由节点BR2进而传输至第二路由节点BR21以在第二区块链网络1120中广播并执行上链。第二路由节点BR21可以将执行结果和上链证明传输至第一第二上层路由节点BR2进而传输至第一上层路由节点BR1、第一路由节点BR11以在第一区块链网络1110中广播。第一第二上层路由节点BR2可以负责数据的收发,第二第二上层路由节点BR2’可以负责数据的查询,例如当第二区块链网络1120发起要在第一区块链网络1110中的跨链交易时,第二第二上层路由节点BR2’可以经由第一第二上层路由节点BR2接收并执行来自第二路由节点BR21的用于查询第一区块链网络1110的共识节点公钥列表的查询请求,并将查询到的第一区块链网络1110的共识节点公钥列表经由第一第二上层路由节点BR2传输至第二路由节点BR21以在第二区块链网络1120中广播,以供第二共识节点验证来自第一区块链网络1110的上链证明并在验证通过时信任来自第一区块链网络1110的执行结果。
虽然以上只描述了第二区块链网络1120在上层区块链网络1100中部署的通信节点集合中的一个上层路由节点负责数据收发并且另一个上层路由节点负责数据查询,但这仅仅是示例性的而非限制性的。例如,还可以使第二区块链网络1120在上层区块链网络1100中部署的通信节点集合包括与第二区块链网络1120通信的上层路由节点的一个或多个组,每组包括一个或多个负责数据收发的收发路由节点以及一个或多个负责数据查询的查询路由节点。如果需要进行查询,则来自第二路由节点BR21的查询请求会传输至每组中的一个或多个收发路由节点,然后每组中的各个收发路由节点会单独地将查询请求传输至该组中的每个查询路由节点进行查询,该组中的各个查询路由节点将查询结果传输至该组中的每个收发路由节点,之后每组中的各个收发路由节点将查询结果传输至第二路由节点BR21。如果不需要进行查询,则每组中的各个收发路由节点可以直接将来自第二路由节点BR21或第一上层路由节点BR1的数据传输至第一上层路由节点BR1或第二路由节点BR21。
在另一些示例中,当第二区块链网络1120发起的要在第一区块链网络1110中的跨链交易在第一区块链网络1110中被执行后,第二共识节点可以在接收到所述多个所述第二上层路由节点中的一个或多个第二上层路由节点(例如,第一第二上层路由节点BR2)的执行结果和上链证明后,经由第二路由节点BR21向所述多个所述第二上层路由节点中的其它一个或多个第二上层路由节点(例如,第二第二上层路由节点BR2’)直接发送查询请求,并且基于直接从所述多个所述第二上层路由节点中的所述其它一个或多个第二上层路由节点(例如,第二第二上层路由节点BR2’)接收到的第一区块链网络1110的共识节点公钥列表验证从所述多个所述第二上层路由节点中的所述一个或多个第二上层路由节点(例如,第一第二上层路由节点BR2)接收到的上链证明是否正确,并在验证通过时信任从所述多个所述第二上层路由节点中的所述一个或多个第二上层路由节点(例如,第一第二上层路由节点BR2)接收到的执行结果。
虽然在图1至图8的示例中将第一路由节点、第一上层路由节点、第二上层路由节点和第二路由节点的数量图示为一个或两个,但这仅仅是示例性的而非限制性的,系统100可以包括任何合适数量的第一路由节点、第一上层路由节点、第二上层路由节点和第二路由节点,并且可以相应地将前述一个或多个实施例任意组合,以实现各种替代的跨链交互过程。
虽然在图1至图8的示例中将系统100图示为在同一上层区块链网络1100之下包括两个下层区块链网络1110和1120,但是这仅仅是示例性的而非限制性的,系统100是可横向扩展的,可以在同一上层区块链网络1100之下注册两个或更多个下层区块链网络,并且这些下层区块链网络中的任何两个下层区块链网络都可以通过前述过程实现跨链交互。
虽然在图1至图8的示例中将系统100图示为二层区块链网络架构,但是这仅仅是示例性的而非限制性的,系统100是可纵向扩展的,可以将系统100部署为二层或更多层区块链网络架构,例如第一区块链网络1110和第二区块链网络1120中的每一个都可以作为其它一个或多个区块链网络的上层区块链网络,并且上层区块链网络1100的任何两个下层区块链网络(不必在同一层)都可以通过前述过程类似地实现跨链交互。
虽然在图1至图8的示例中将系统100图示为用于在同构链之间进行跨链交互,但是这仅仅是示例性的而非限制性的,系统100也可以进一步被配置用于在异构链之间进行跨链交互。下面将结合图9和图10示例性地描述用于跨异构链交互的系统100。
在图9中,为了使图示简洁,第二区块链网络1120已被省略,使得图9着重描述在第一区块链网络1110和与之异构的区块链网络之间进行的跨链交互。具体地,如图9所示,系统100还可以包括第一转接桥网络1130和第一异构区块链网络1131。
第一转接桥网络1130可以部署在上层区块链网络1100的下层,即与第一区块链网络1110和第二区块链网络1120同层。第一转接桥网络1130可以包括相互通信的第一转接桥路由节点BR31和多个第一转接桥共识节点I1、I2、I3、I4。第一转接桥网络1130可以信任上层区块链网络1100,并且第一转接桥路由节点BR31可以与上层区块链网络1100中的第三上层路由节点BR3通信。第一转接桥网络1130在接入上层区块链网络1100时可以向第三上层路由节点BR3进行注册,并在注册成功后获得由第三上层路由节点BR3分配的网络标识。第一转接桥网络1130和上层区块链网络1100、第一区块链网络1110、第二区块链网络1120都是同构的。在一些实施例中,第一转接桥网络1130可以是区块链网络。在一些实施例中,第一转接桥网络1130也可以不形成区块链网络,而仅仅是进行签名投票。在本文中,为了描述简单,可以将与上层区块链网络1100同构的区块链或区块链网络描述为同构链或同构链网络,并将与上层区块链网络1100异构的区块链或区块链网络描述为异构链或异构链网络。因此,相对于上层区块链网络1100而言,第一转接桥网络1130、第一区块链网络1110、第二区块链网络1120可以是同构链网络。
第一异构区块链网络1131可以部署在第一转接桥网络1130的下层并且包括多个第一异构共识节点P1、P2、P3、P4。第一异构共识节点P1、P2、P3、P4可以用于实现第一异构区块链网络1131的具体业务,负责对交易进行验证和共识上链。虽然第一异构共识节点P1、P2、P3、P4的数量被图示为4个,但这仅仅是示例性而非限制性的,实际的第一异构区块链网络1131可以包括任何数量的共识节点。
第一异构区块链网络1131与上层区块链网络1100、第一区块链网络1110和第二区块链网络1120是异构的,因此相对于上层区块链网络1100而言,第一异构区块链网络1131可以是异构链网络。第一异构区块链网络1131的所述多个第一异构共识节点P1、P2、P3、P4与第一转接桥共识节点I1、I2、I3、I4通信。可以理解,在图9(以及稍后描述的图10)中,为了使图示简洁,仅描绘了第一异构共识节点P1与第一转接桥共识节点I1、I2、I3、I4通信,但实际上,尽管未图示,其它各个第一异构共识节点P2、P3、P4也同样分别与第一转接桥共识节点I1、I2、I3、I4通信。虽然第一转接桥共识节点I1、I2、I3、I4的数量被图示为4个,但这仅仅是示例性而非限制性的。在一些示例中,不同的第一转接桥共识节点I1、I2、I3、I4可以是由上层区块链网络1100的需要与第一异构区块链网络1131进行跨链交易的不同下层区块链网络设置在第一转接桥网络1130中的,比如第一转接桥共识节点I1可以是由第一区块链网络1110设置在第一转接桥网络1130中的而第一转接桥共识节点I2可以是由第二区块链网络1120设置在第一转接桥网络1130中的。这是因为不同下层区块链网络(其背后往往例如是不同机构)彼此可能相互不信任,所以期望在第一转接桥网络1130中自己配置第一转接桥共识节点。第一异构区块链网络1131在接入第一转接桥网络1130时可以向第一转接桥共识节点提交注册请求从而获得网络标识,也可以替代地由第一转接桥网络1130将提前分配好的网络标识提供给第一异构区块链网络1131,然后第一异构区块链网络1131可以使用得到的网络标识进行绑定注册。即使第一转接桥网络1130中存在多个第一转接桥共识节点导致第一异构区块链网络1131进行多次注册,也不会导致问题,因为这至多使得多个网络标识对应于第一异构区块链网络1131,并不会导致无法寻址到第一异构区块链网络1131。
第一转接桥网络1130的所述多个第一转接桥共识节点I1、I2、I3、I4中的每个第一转接桥共识节点可以被配置为具有简单支付确认(SPV)能力,以监视和验证第一异构区块链网络1131中的区块行为。为了便于理解,每个第一转接桥共识节点可以被视为第一异构区块链网络1131的上层路由节点。当第一异构区块链网络1131需要发起跨链交易时,可以将该跨链交易打包出块,然后第一转接桥共识节点可以收集第一异构区块链网络1131中的区块、验证第一异构区块链网络1131中的区块以及第一异构共识节点的签名。
与第一区块链网络1110、第二区块链网络1120类似的,上层区块链网络1100可以被配置为通过将第一转接桥网络1130的共识节点的变更在上层区块链网络1100中上链存证来管理第一转接桥网络1130的共识节点。也就是说,上层区块链网络1100的任意节点(例如第一上层路由节点BR1、第二上层路由节点BR2、第三上层路由节点BR3)都知道第一转接桥网络1130的节点成员信息,而不用维护第一转接桥网络1130的其它数据,更不用维护第一异构区块链网络1131的链上数据和节点成员信息。
接下来继续参考图9,描述从第一区块链网络1110到第一异构区块链网络1131的示例跨链交互过程。在图9的示例中,当第一区块链网络1110发起要在第一异构区块链网络1131中执行的跨链交易时,第一路由节点BR11可以被配置为获得来自第一区块链网络1110的要在第一异构区块链网络1131中执行的跨链交易并将跨链交易传输至第一上层路由节点BR1。第一上层路由节点BR1可以被配置为将从第一路由节点BR11接收到的跨链交易传输至第三上层路由节点BR3。第三上层路由节点BR3可以被配置为将从第一上层路由节点BR1接收到的跨链交易传输至第一转接桥路由节点BR31。第一转接桥路由节点BR31可以被配置为在第一转接桥网络1130中广播从第三上层路由节点BR3接收到的跨链交易,使得第一转接桥网络1130的所述多个第一转接桥共识节点I1、I2、I3、I4(例如,其中的主节点,这可以由具体共识机制决定)接收并将所述跨链交易转换为具有适配第一异构区块链网络1131的格式,并将转换后的跨链交易传输至第一异构区块链网络1131,使得第一异构区块链网络1131的所述多个第一异构共识节点P1、P2、P3、P4(例如,其中的主节点,这可以由具体共识机制决定)接收并执行转换后的跨链交易。在一些实施例中,第一转接桥网络1130的所述多个第一转接桥共识节点I1、I2、I3、I4还可以被配置为将接收到的跨链交易在第一转接桥网络1130中上链存证,以供日后查询。在一些实施例中,在转换后的跨链交易在第一异构区块链网络1131中被执行后,第一转接桥网络1130的所述多个第一转接桥共识节点I1、I2、I3、I4可以被配置为获得转换后的跨链交易的执行结果并将执行结果在第一转接桥网络1130中上链存证。例如,第一转接桥共识节点可以被配置为监视并验证第一异构区块链网络1131中的区块从而收集到第一异构区块链网络1131中的关于转换后的跨链交易的执行结果。第一转接桥路由节点BR31可以被配置为获得针对所述执行结果的上链证明并将上链证明传输至第三上层路由节点BR3。第三上层路由节点BR3可以被配置为将从第一转接桥路由节点BR31接收到的上链证明传输至第一上层路由节点BR1。第一上层路由节点BR1可以被配置为将从第三上层路由节点BR3接收到的上链证明传输至第一路由节点BR11。第一路由节点BR11可以被配置为在第一区块链网络中广播从第一上层路由节点BR1接收到的上链证明,使得第一区块链网络的所述多个第一共识节点X1、X2、X3、X3接收上链证明。第一共识节点可以被配置为向上层区块链网络1100发送用于查询第一转接桥网络1130的共识节点公钥列表的查询请求,基于查询到的第一转接桥网络1130的共识节点公钥列表验证接收到的上链证明是否正确,并在验证通过时信任接收到的上链证明。例如,第一路由节点BR11可以被配置为获得来自第一共识节点的用于查询第一转接桥网络1130的共识节点公钥列表的查询请求并将查询请求传输至第一上层路由节点BR1。由于第一上层路由节点BR1知道第一转接桥网络1130的节点成员信息,因此第一上层路由节点BR1可以被配置为响应于从第一路由节点BR11接收到查询请求而对第一转接桥网络1130的共识节点公钥列表进行只读查询,并将查询到的第一转接桥网络1130的共识节点公钥列表传输至第一路由节点BR11。第一上层路由节点BR1无需在上层区块链网络1100中将该只读查询上链存证。第一路由节点BR11可以被进一步配置为在第一区块链网络1110中广播从第一上层路由节点BR1接收到的第一转接桥网络1130的共识节点公钥列表,使得第一共识节点接收到第一转接桥网络1130的共识节点公钥列表。第一共识节点可以被配置为基于第一转接桥网络1130的共识节点公钥列表验证接收到的上链证明是否正确,并在验证通过时信任接收到的执行结果。可以配置具体的信任策略来确定在上链证明满足什么样的条件时验证通过。
这里,由于第一区块链网络1110与第一异构区块链网络1131异构,所以第一区块链网络1110的所述多个第一共识节点X1、X2、X3、X4是看不懂第一异构区块链网络1131中产生的关于跨链交易的执行结果的。由于第一区块链网络1110的所述多个第一共识节点X1、X2、X3、X4通过基于从第一区块链网络1110所信任的上层区块链网络1100查询到的第一转接桥网络1130的共识节点公钥列表验证并信任第一转接桥网络1130的上链证明,由此相信它所发起的跨链交易在第一异构区块链网络1131中被成功执行。因此,第一区块链网络1110不需要查询第一异构区块链网络1131,而是通过第一转接桥网络1130进行信任背书。然后,第一区块链网络1110可以在信任接收到的上链证明后对其进行后续处理,例如将接收到的上链证明在第一区块链网络1110中上链存证,或用于后续合约操作。第一异构区块链网络1131发起在第一区块链网络1110中的跨链交易的过程与以上是类似的,在此不再赘述。另外,第一异构区块链网络1131与第二区块链网络1120或上层区块链网络1100的其它下层区块链网络(不限于在上层区块链网络1100之下的哪一层中)的跨链交互也是类似的。
当要在系统100中接入多个异构区块链网络时,可以相应地构建多个转接桥网络。图10描述了系统100中接入两个异构区块链网络的示例情况。在图10中,为了使图示简洁,第一区块链网络1110和第二区块链网络1120已被省略,使得图10着重描述在第一异构区块链网络1131和第二异构区块链网络1141之间进行的跨链交互。可以理解,第二异构区块链网络1141也可以如上所述那样与第一区块链网络1110、第二区块链网络1120或上层区块链网络1100的其它下层区块链网络(不限于在上层区块链网络1100之下的哪一层中)进行跨链交互。具体地,如图10所示,系统100还可以包括第二转接桥网络1140和第二异构区块链网络1141。
第二转接桥网络1140可以部署在上层区块链网络1100的下层,即与第一区块链网络1110、第二区块链网络1120、第一转接桥网络1130同层。第二转接桥网络1140可以包括相互通信的第二转接桥路由节点BR41和多个第二转接桥共识节点J1、J2、J3、J4。第二转接桥网络1140可以信任上层区块链网络1100,并且第二转接桥路由节点BR41可以与上层区块链网络1100中的第四上层路由节点BR4通信。第二转接桥网络1140在接入上层区块链网络1100时可以向第四上层路由节点BR4进行注册,并在注册成功后获得由第四上层路由节点BR4分配的网络标识。第二转接桥网络1140和上层区块链网络1100、第一区块链网络1110、第二区块链网络1120、第一转接桥网络1130都是同构的。在一些实施例中,第二转接桥网络1140可以是区块链网络。在一些实施例中,第二转接桥网络1140也可以不形成区块链网络,而仅仅是进行签名投票。
第二异构区块链网络1141可以部署在第二转接桥网络1140的下层并且包括多个第二异构共识节点Q1、Q2、Q3、Q4。第二异构共识节点Q1、Q2、Q3、Q4可以用于实现第二异构区块链网络1141的具体业务,负责对交易进行验证和共识上链。虽然第二异构共识节点Q1、Q2、Q3、Q4的数量被图示为4个,但这仅仅是示例性而非限制性的,实际的第二异构区块链网络1141可以包括任何数量的共识节点。
第二异构区块链网络1141与上层区块链网络1100、第一区块链网络1110和第二区块链网络1120是异构的。在一些实施例中,第二异构区块链网络1141与第一异构区块链网络1131异构。在另一些实施例中,第二异构区块链网络1141与第一异构区块链网络1131可以是同构的,但是在这种情况下,可能更优选的是使第二异构区块链网络1141与第一异构区块链网络1131经由它们的共同上层区块链网络进行跨同构链交互,例如采用以上结合图1至图8所述的过程。因此在下文中,可以以第二异构区块链网络1141与第一异构区块链网络1131彼此异构为例进行描述。第二异构区块链网络1141的所述多个第二异构共识节点Q1、Q2、Q3、Q4与第二转接桥共识节点J1、J2、J3、J4通信。可以理解,在图10中,为了使图示简洁,仅描绘了第二异构共识节点Q1与第二转接桥共识节点J1、J2、J3、J4通信,但实际上,尽管未图示,其它各个第二异构共识节点Q2、Q3、Q4也同样分别与第二转接桥共识节点J1、J2、J3、J4通信。虽然第二转接桥共识节点J1、J2、J3、J4的数量被图示为4个,但这仅仅是示例性而非限制性的。在一些示例中,不同的第二转接桥共识节点J1、J2、J3、J4可以是由上层区块链网络1100的需要与第二异构区块链网络1141进行跨链交易的不同下层区块链网络设置在第二转接桥网络1140中的,比如第二转接桥共识节点J1可以是由第一区块链网络1110设置在第二转接桥网络1140中的,第二转接桥共识节点J2可以是由第二区块链网络1120设置在第二转接桥网络1140中的,而第三转接桥共识节点J3可以是由第一异构区块链网络1131设置在第二转接桥网络1140中的。这是因为不同下层区块链网络(其背后往往例如是不同机构)彼此可能相互不信任,所以期望在第二转接桥网络1140中自己配置第二转接桥共识节点。第二异构区块链网络1141在接入第二转接桥网络1140时可以向第二转接桥共识节点提交注册请求从而获得网络标识,也可以替代地由第二转接桥网络1140将提前分配好的网络标识提供给第二异构区块链网络1141,然后第二异构区块链网络1141可以使用得到的网络标识进行绑定注册。即使第二转接桥网络1140中存在多个第二转接桥共识节点导致第二异构区块链网络1141进行多次注册,也不会导致问题,因为这至多使得多个网络标识对应于第二异构区块链网络1141,并不会导致无法寻址到第二异构区块链网络1141。
第二转接桥网络1140的所述多个第二转接桥共识节点J1、J2、J3、J4中的每个第二转接桥共识节点可以被配置为具有简单支付确认(SPV)能力,以监视和验证第二异构区块链网络1141中的区块行为。为了便于理解,每个第二转接桥共识节点可以被视为第二异构区块链网络1141的上层路由节点。当第二异构区块链网络1141需要发起跨链交易时,可以将该跨链交易打包出块,然后第二转接桥共识节点可以收集第二异构区块链网络1141中的区块、验证第二异构区块链网络1141中的区块以及第二异构共识节点的签名。
与第一区块链网络1110、第二区块链网络1120、第一转接桥网络1130类似的,上层区块链网络1100可以被配置为通过将第二转接桥网络1140的共识节点的变更在上层区块链网络1100中上链存证来管理第二转接桥网络1140的共识节点。也就是说,上层区块链网络1100的任意节点(例如第一上层路由节点BR1、第二上层路由节点BR2、第三上层路由节点BR3、第四上层路由节点BR4)都知道第二转接桥网络1140的节点成员信息,而不用维护第二转接桥网络1140的其它数据,更不用维护第二异构区块链网络1141的链上数据和节点成员信息。
接下来继续参考图10,描述从第一异构区块链网络1131到第二异构区块链网络1141的示例跨链交互过程。在图10的示例中,当第一异构区块链网络1131发起要在第二异构区块链网络1141中执行的跨链交易时,第一转接桥共识节点可以被配置为获得第一异构区块链网络1131要在第二异构区块链网络1141中执行的跨链交易。例如,第一转接桥共识节点可以被配置为监视并验证第一异构区块链网络1131中的区块从而收集到第一异构区块链网络1131要在第二异构区块链网络1141中执行的跨链交易。第一转接桥路由节点BR31可以被配置为将来自第一异构区块链网络1131的要在第二异构区块链网络1141中执行的跨链交易传输至第三上层路由节点BR3,所述跨链交易已被第一转接桥网络1130的所述多个第一转接桥共识节点I1、I2、I3、I4验证并转换为具有适配上层区块链网络1100的格式。第三上层路由节点BR3可以被配置为将从第一转接桥路由节点BR31接收到的跨链交易传输至第四上层路由节点BR4。第四上层路由节点BR4可以被配置为将从第三上层路由节点BR3接收到的跨链交易传输至第二转接桥路由节点BR41。第二转接桥路由节点BR41可以被配置为在第二转接桥网络1140中广播从第四上层路由节点BR4接收到的跨链交易,使得第二转接桥网络1140的所述多个第二转接桥共识节点J1、J2、J3、J4(例如,其中的主节点,这可以由具体共识机制决定)接收并将所述跨链交易转换为具有适配第二异构区块链网络1141的格式,并将转换后的跨链交易传输至第二异构区块链网络1141,使得第二异构区块链网络1141的所述多个第二异构共识节点Q1、Q2、Q3、Q4(例如,其中的主节点,这可以由具体共识机制决定)接收并执行转换后的跨链交易。在一些实施例中,第二转接桥网络1140还可以被配置为将所述跨链交易在第二转接桥网络1140中上链存证,以供日后查询。在一些实施例中,在转换后的跨链交易在第二异构区块链网络1141被执行后,第二转接桥网络1140的所述多个第二转接桥共识节点J1、J2、J3、J4可以被配置为获得转换后的跨链交易的执行结果并将执行结果在第二转接桥网络1140中上链存证。例如,第二转接桥共识节点可以被配置为监视并验证第二异构区块链网络1141中的区块从而收集到第二异构区块链网络1141中的关于转换后的跨链交易的执行结果。第二转接桥路由节点BR41可以被配置为获得针对所述执行结果的上链证明并将上链证明传输至第四上层路由节点BR4。第四上层路由节点BR4可以被配置为将从第二转接桥路由节点BR41接收到的上链证明传输至第三上层路由节点BR3。第三上层路由节点BR3可以被配置为将从第四上层路由节点BR4接收到的上链证明传输至第一转接桥路由节点BR31。第一转接桥路由节点BR31可以被配置为在第一转接桥网络1130中广播从第三上层路由节点BR3接收到的上链证明,使得第一转接桥网络1130的所述多个第一转接桥共识节点I1、I2、I3、I4接收上链证明。第一转接桥共识节点还可以被配置为向上层区块链网络1100发送用于查询第二转接桥网络1140的共识节点公钥列表的查询请求,基于查询到的第二转接桥网络1140的共识节点公钥列表验证接收到的上链证明是否正确,并在验证通过时信任接收到的上链证明。例如,第一转接桥路由节点BR31可以被配置为获得来自第一转接桥共识节点的用于查询第二转接桥网络1140的共识节点公钥列表的查询请求并将查询请求传输至第三上层路由节点BR3。由于第三上层路由节点BR3知道第二转接桥网络1140的节点成员信息,因此第三上层路由节点BR3可以被配置为响应于从第一转接桥路由节点BR31接收到查询请求而对第二转接桥网络1140的共识节点公钥列表进行只读查询,并将查询到的第二转接桥网络1140的共识节点公钥列表传输至第一转接桥路由节点BR31。第三上层路由节点BR3无需在上层区块链网络1100中将该只读查询上链存证。第一转接桥路由节点BR31可以被进一步配置为在第一转接桥网络1130中广播从第三上层路由节点BR3接收到的第二转接桥网络1140的共识节点公钥列表,使得第一转接桥共识节点接收到第二转接桥网络1140的共识节点公钥列表。第一转接桥共识节点可以被配置为基于第二转接桥网络1140的共识节点公钥列表验证接收到的上链证明是否正确,并在验证通过时信任接收到的执行结果。可以配置具体的信任策略来确定在上链证明满足什么样的条件时验证通过。第一转接桥共识节点还可以被配置为在信任接收到的上链证明之后将上链证明转换为具有适配第一异构区块链网络1131的格式,并将转换后的上链证明传输至第一异构区块链网络1131。这里,由于第一异构区块链网络1131与第二异构区块链网络1141异构,所以第一异构区块链网络1131的所述多个第一异构共识节点P1、P2、P3、P4是看不懂第二异构区块链网络1141中产生的关于跨链交易的执行结果的。由于第一异构区块链网络1131的所述多个第一异构共识节点P1、P2、P3、P4通过第一转接桥共识节点基于从第二转接桥网络1130所信任的上层区块链网络1100查询到的第二转接桥网络1140的共识节点公钥列表验证并信任第二转接桥网络1140的上链证明,由此相信它所发起的跨链交易在第二异构区块链网络1141中被成功执行。因此,第一异构区块链网络1131不需要查询第二异构区块链网络1141,而是通过第二转接桥网络1140进行信任背书。然后,第一异构区块链网络1131可以在信任接收到的经第一转接桥网络1130转换的上链证明后对其进行后续处理,例如将接收到的上链证明在第一异构区块链网络1131中上链存证,或用于后续合约操作。第二异构区块链网络1141发起在第一异构区块链网络1131中的跨链交易的过程与以上是类似的,在此不再赘述。
根据本公开的各种实施例的用于跨区块链交互的系统可以容易地在横向和纵向进行扩展,并且能够在解决跨链交互的信任问题的同时,实现跨链信息隔离并减轻节点的数据维护负担,在大规模网络下高效地实现跨同构链交互和跨异构链交互。
参考图11,本公开还在另一方面提供了一种用于跨区块链交互的方法200。方法200可以包括:在步骤S202处,通过第一区块链网络的第一路由节点获得来自第一区块链网络的要在第二区块链网络中执行的跨链交易并将跨链交易传输至第一区块链网络和第二区块链网络的上层区块链网络的与第一路由节点通信的第一上层路由节点,所述上层区块链网络被第一区块链网络和第二区块链网络二者信任;在步骤S204处,通过第一上层路由节点将从第一路由节点接收到的跨链交易传输至所述上层区块链网络的与第二区块链网络的第二路由节点通信的第二上层路由节点;在步骤S206处,通过第二上层路由节点将从第一上层路由节点接收到的跨链交易传输至第二路由节点;以及在步骤S208处,通过第二路由节点在第二区块链网络中广播从第二上层路由节点接收到的跨链交易,使得第二区块链网络的多个第二共识节点接收并执行所述跨链交易,其中,所述上层区块链网络被配置为通过将第一区块链网络和第二区块链网络中的每个区块链网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一区块链网络和第二区块链网络中的每个区块链网络的共识节点。方法200的实施例基本类似于前述用于跨区块链交互的系统的实施例,因此在此不再赘述,相关之处可参见系统实施例部分的说明。
参考图12,本公开还在另一方面提供了一种用于跨区块链交互的装置300。装置300可以包括收集模块302、传输模块304和执行模块306。收集模块302可以被配置用于通过第一区块链网络的第一路由节点获得来自第一区块链网络的要在第二区块链网络中执行的跨链交易。传输模块304可以被配置用于:通过第一路由节点将跨链交易传输至第一区块链网络和第二区块链网络的上层区块链网络的与第一路由节点通信的第一上层路由节点,所述上层区块链网络被第一区块链网络和第二区块链网络二者信任;通过第一上层路由节点将从第一路由节点接收到的跨链交易传输至所述上层区块链网络的与第二区块链网络的第二路由节点通信的第二上层路由节点;通过第二上层路由节点将从第一上层路由节点接收到的跨链交易传输至第二路由节点。执行模块306可以被配置用于通过第二路由节点在第二区块链网络中广播从第二上层路由节点接收到的跨链交易,使得第二区块链网络的多个第二共识节点接收并执行所述跨链交易。所述上层区块链网络被配置为通过将第一区块链网络和第二区块链网络中的每个区块链网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一区块链网络和第二区块链网络中的每个区块链网络的共识节点。装置300的实施例基本类似于前述用于跨区块链交互的系统和方法的实施例,因此在此不再赘述,相关之处可参见系统实施例和方法实施例部分的说明。
图13是图示了可以在其上实现本公开的一个或多个示例性实施例的计算机系统600的示意性框图。计算机系统600包括总线602或用于传送信息的其它通信机构,以及与总线602耦合的用于处理信息的处理装置604。计算机系统600还包括与总线602耦合的用于存储要由处理装置604执行的指令的存储器606,存储器606可以是随机存取存储器(RAM)或其它动态存储设备。存储器606还可以被用于在要由处理装置604执行的指令的执行期间存储临时变量或其它中间信息。计算机系统600还包括耦合到总线602的用于为处理装置604存储静态信息和指令的只读存储器(ROM)608或其它静态存储设备。诸如磁盘或光盘之类的存储装置610被提供并且被耦合到总线602以用于存储信息和指令。计算机系统600可以经由总线602耦合到用于向用户提供输出的输出设备612,例如但不限于显示器(诸如阴极射线管(CRT)或液晶显示器(LCD))、扬声器等。诸如键盘、鼠标、麦克风等之类的输入设备614被耦合到总线602,以用于将信息和命令选择传送给处理装置604。计算机系统600可以执行本公开的实施例。与本公开的某些实现方式一致,由计算机系统600响应于处理装置604执行存储器606中所包含的一个或多个指令的一个或多个序列来提供结果。可以将这种指令从诸如存储装置610之类的另一计算机可读介质读取到存储器606中。存储器606中所包含的指令序列的执行使处理装置604执行本文描述的方法。可替代地,可以使用硬连线电路系统取代软件指令或者结合软件指令来实现本教导。因此,本公开的实现方式不限于硬件电路系统与软件的任何特定组合。在各种实施例中,计算机系统600可以经由网络接口616跨网络连接到如计算机系统600一样的一个或多个其它计算机系统,以形成联网系统。该网络可以包括专用网络或诸如互联网之类的公共网络。在联网系统中,一个或多个计算机系统可以存储数据并且将数据供应给其它计算机系统。如本文使用的术语“计算机可读介质”是指参与向处理装置604提供指令以供执行的任何介质。这种介质可以采用许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如诸如存储装置610之类的光盘或磁盘。易失性介质包括诸如存储器606之类的动态存储器。传输介质包括同轴电缆、铜线和光纤,包括包含总线602的布线。常见形式的计算机可读介质或计算机程序产品包括例如软盘、柔性盘、硬盘、磁带、或任何其它磁性介质、CD-ROM、数字视频盘(DVD)、蓝光盘、任何其它光学介质、拇指驱动器、存储器卡、RAM、PROM和EPROM、快速EPROM、任何其它存储器芯片或盒、或计算机可以从中读取的任何其它有形介质。在将一个或多个指令的一个或多个序列携带到处理装置604以供执行时可以涉及各种形式的计算机可读介质。例如,指令最初可以被携带在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中并且使用调制解调器通过电话线发送指令。计算机系统600本地的调制解调器可以在电话线上接收数据,并且使用红外发射器将数据转换成红外信号。耦合到总线602的红外检测器可以接收在红外信号中携带的数据,并且将数据置于总线602上。总线602将数据携带到存储器606,处理装置604从存储器606中检索指令并执行指令。可选地,由存储器606接收到的指令可以在由处理装置604执行之前或之后被存储在存储装置610上。
根据各种实施例,被配置为由处理装置执行以执行方法的指令被存储在计算机可读介质上。计算机可读介质可以是存储数字信息的设备。例如,计算机可读介质包括如本领域中已知用于存储软件的致密盘只读存储器(CD-ROM)。计算机可读介质由适合于执行被配置为被执行的指令的处理器访问。
例如,本公开还可以提供一种计算设备,该计算装置可以包括一个或多个处理器以及存储计算机可执行指令的存储器,计算机可执行指令在被一个或多个处理器执行时使得一个或多个处理器执行根据本公开的前述任一实施例所述的方法。如图14所示,计算设备700可以包括(一个或多个)处理器701以及存储计算机可执行指令的存储器702,计算机可执行指令在被(一个或多个)处理器701执行时使得(一个或多个)处理器701执行根据本公开的前述任一实施例所述的方法。(一个或多个)处理器701例如可以是计算装置700的中央处理单元(CPU)。(一个或多个)处理器701可以是任何类型的通用处理器,或者可以是专门设计用于跨区块链交互的处理器,诸如专用集成电路(“ASIC”)。存储器702可以包括可由(一个或多个)处理器701访问的各种计算机可读介质。在各种实施例中,本文描述的存储器702可以包括易失性和非易失性介质、可移除和不可移除介质。例如,存储器702可以包括以下的任何组合:随机存取存储器(“RAM”)、动态RAM(“DRAM”)、静态RAM(“SRAM”)、只读存储器(“ROM”)、闪存、高速缓冲存储器和/或任何其它类型的非瞬态计算机可读介质。存储器702可以存储在被处理器701执行时使得处理器701执行根据本公开的前述任一实施例所述的方法。
另外,本公开还可以提供一种其上存储有计算机可执行指令的非瞬态存储介质,计算机可执行指令在被计算机执行时使得计算机执行根据本公开的前述任一实施例所述的方法。
上述对本公开一个或多个示例性实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (52)

1.一种用于跨区块链交互的系统,包括:
第一区块链网络,所述第一区块链网络包括相互通信的第一路由节点和多个第一共识节点;
第二区块链网络,所述第二区块链网络包括相互通信的第二路由节点和多个第二共识节点;以及
第一区块链网络和第二区块链网络的上层区块链网络,所述上层区块链网络被第一区块链网络和第二区块链网络二者信任,并且包括与第一路由节点通信的第一上层路由节点、与第二路由节点通信的第二上层路由节点、以及多个上层共识节点,第一上层路由节点、第二上层路由节点与所述多个上层共识节点相互通信,
其中,所述上层区块链网络被配置为通过将第一区块链网络和第二区块链网络中的每个区块链网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一区块链网络和第二区块链网络中的每个区块链网络的共识节点,从而使得所述上层区块链网络的每个节点知道第一区块链网络和第二区块链网络中的每个区块链网络的节点成员信息。
2.根据权利要求1所述的系统,其中,对于第一区块链网络和第二区块链网络中的每个区块链网络:
当新节点要加入该区块链网络作为共识节点时,所述新节点被配置为从所述上层区块链网络获取证书并基于所获取的证书在该区块链网络中调用部署在该区块链网络中的第一加入合约的用于请求加入区块链网络的第一方法,该区块链网络被配置为响应于执行所述第一方法而在所述上层区块链网络中调用部署在所述上层区块链网络中的第二加入合约来向所述上层区块链网络请求在该区块链网络中加入所述新节点,所述上层区块链网络被配置为在执行所述第二加入合约后将所述第二加入合约的执行结果在所述上层区块链网络中上链存证并将上链证明传输至该区块链网络,该区块链网络被配置为基于所述上链证明在该区块链网络中调用所述第一加入合约的用于确认加入区块链网络的第二方法,以将所述新节点设置为该区块链网络的共识节点。
3.根据权利要求1所述的系统,其中,对于第一区块链网络和第二区块链网络中的每个区块链网络:
当该区块链网络的共识节点要退出该区块链网络时,该共识节点被配置为在该区块链网络中调用部署在该区块链网络中的第一退出合约以退出该区块链网络,该区块链网络被配置为响应于执行所述第一退出合约而在所述上层区块链网络中调用部署在所述上层区块链网络中的第二退出合约来向所述上层区块链网络请求使该共识节点退出该区块链网络,所述上层区块链网络被配置为在执行所述第二退出合约后将所述第二退出合约的执行结果在所述上层区块链网络中上链存证。
4.根据权利要求1所述的系统,其中,当第一区块链网络发起要在第二区块链网络中执行的跨链交易时:
第一路由节点被配置为获得来自第一区块链网络的要在第二区块链网络中执行的跨链交易并将跨链交易传输至第一上层路由节点;
第一上层路由节点被配置为将从第一路由节点接收到的跨链交易传输至第二上层路由节点;
第二上层路由节点被配置为将从第一上层路由节点接收到的跨链交易传输至第二路由节点;以及
第二路由节点被配置为在第二区块链网络中广播从第二上层路由节点接收到的跨链交易,使得第二区块链网络的所述多个第二共识节点接收并执行所述跨链交易。
5.根据权利要求4所述的系统,其中,在所述跨链交易在第二区块链网络中被执行后:
第二路由节点被配置为获得来自第二区块链网络的指示跨链交易被执行的执行结果以及针对所述执行结果的上链证明并将执行结果和上链证明传输至第二上层路由节点;
第二上层路由节点被配置为将从第二路由节点接收到的执行结果和上链证明传输至第一上层路由节点;
第一上层路由节点被配置为将从第二上层路由节点接收到的执行结果和上链证明传输至第一路由节点;
第一路由节点被配置为在第一区块链网络中广播从第一上层路由节点接收到的执行结果和上链证明,使得第一区块链网络的所述多个第一共识节点接收执行结果和上链证明;以及
第一共识节点被配置为向所述上层区块链网络发送用于查询第二区块链网络的共识节点公钥列表的查询请求,基于查询到的第二区块链网络的共识节点公钥列表验证接收到的上链证明是否正确,并在验证通过时信任接收到的执行结果。
6.根据权利要求5所述的系统,其中,第一区块链网络包括多个所述第一路由节点,每个所述第一路由节点与第一上层路由节点通信,并且其中,
当第一区块链网络发起要在第二区块链网络中执行的跨链交易时:
每个所述第一路由节点被配置为单独地获得来自第一区块链网络的要在第二区块链网络中执行的跨链交易并将跨链交易传输至第一上层路由节点;
在所述跨链交易在第二区块链网络中被执行后:
每个所述第一路由节点被配置为单独地从第一上层路由节点接收执行结果和上链证明,并在第一区块链网络中广播接收到的执行结果和上链证明。
7.根据权利要求6所述的系统,其中,当第一区块链网络发起要在第二区块链网络中执行的跨链交易时:第一上层路由节点被配置为从每个所述第一路由节点接收跨链交易,对从每个所述第一路由节点接收到的跨链交易进行去重,并将经过去重的跨链交易传输至第二上层路由节点。
8.根据权利要求6所述的系统,其中,在所述跨链交易在第二区块链网络中被执行后,每个所述第一路由节点还被配置为单独地获得来自第一共识节点的用于查询第二区块链网络的共识节点公钥列表的查询请求并将所述查询请求传输至第一上层路由节点,以及单独地从第一上层路由节点接收第二区块链网络的共识节点公钥列表并在第一区块链网络中广播接收到的第二区块链网络的共识节点公钥列表。
9.根据权利要求5所述的系统,其中,第二区块链网络包括多个所述第二路由节点,每个所述第二路由节点与第二上层路由节点通信,并且其中,
当第一区块链网络发起要在第二区块链网络中执行的跨链交易时:
每个所述第二路由节点被配置为单独地从第二上层路由节点接收跨链交易并在第二区块链网络中广播接收到的跨链交易;
在所述跨链交易在第二区块链网络中被执行后:
每个所述第二路由节点被配置为单独地获得来自第二区块链网络的指示跨链交易被执行的执行结果以及针对所述执行结果的上链证明并将执行结果和上链证明传输至第二上层路由节点。
10.根据权利要求9所述的系统,其中,在所述跨链交易在第二区块链网络中被执行后:第二上层路由节点被配置为从每个所述第二路由节点接收执行结果和上链证明,对从每个所述第二路由节点接收到的执行结果以及上链证明进行去重,并将经过去重的执行结果和上链证明传输至第一上层路由节点。
11.根据权利要求5所述的系统,其中,所述上层区块链网络包括与第一路由节点通信的多个所述第一上层路由节点。
12.根据权利要求11所述的系统,其中,
当第一区块链网络发起要在第二区块链网络中执行的跨链交易时:
每个所述第一上层路由节点被配置为单独地从第一路由节点接收跨链交易并将接收到的跨链交易传输至第二上层路由节点;
在所述跨链交易在第二区块链网络中被执行后:
每个所述第一上层路由节点被配置为单独地从第二上层路由节点接收执行结果以及针对所述执行结果的上链证明并将执行结果和上链证明传输至第一路由节点。
13.根据权利要求12所述的系统,其中,当第一区块链网络发起要在第二区块链网络中执行的跨链交易时:第二上层路由节点被配置为从每个所述第一上层路由节点接收跨链交易,对从每个所述第一上层路由节点接收到的跨链交易进行去重,并将经过去重的跨链交易传输至第二路由节点。
14.根据权利要求12所述的系统,其中,在所述跨链交易在第二区块链网络中被执行后:
第一路由节点被配置为在第一区块链网络中广播从每个所述第一上层路由节点接收到的执行结果和上链证明,使得第一区块链网络的所述多个第一共识节点接收来自每个所述第一上层路由节点的执行结果和上链证明;以及
第一共识节点被配置为向所述上层区块链网络发送用于查询第二区块链网络的共识节点公钥列表的查询请求,基于查询到的第二区块链网络的共识节点公钥列表验证接收到的来自每个所述第一上层路由节点的上链证明是否正确,并在所述多个所述第一上层路由节点中的通过验证的第一上层路由节点的数量达到预设阈值时信任接收到的执行结果。
15.根据权利要求11所述的系统,其中,所述多个所述第一上层路由节点包括第一第一上层路由节点和第二第一上层路由节点,并且其中,
当第一区块链网络发起要在第二区块链网络中执行的跨链交易时:
第一第一上层路由节点被配置为从第一路由节点接收跨链交易并将接收到的跨链交易传输至第二上层路由节点;
在所述跨链交易在第二区块链网络中被执行后:
第一第一上层路由节点被配置为从第二上层路由节点接收执行结果以及针对所述执行结果的上链证明并将接收到的执行结果和上链证明传输至第一路由节点。
16.根据权利要求15所述的系统,其中,在所述跨链交易在第二区块链网络中被执行后:
第一第一上层路由节点被配置为从第一路由节点接收来自第一共识节点的用于查询第二区块链网络的共识节点公钥列表的查询请求并将所述查询请求传输至第二一上层路由节点;
第二第一上层路由节点被配置为响应于从第一第一上层路由节点接收到所述查询请求而对第二区块链网络的共识节点公钥列表进行只读查询,并将查询到的第二区块链网络的共识节点公钥列表传输至第一第一上层路由节点;
第一第一上层路由节点还被配置为将从第二第一上层路由节点接收到的第二区块链网络的共识节点公钥列表传输至第一路由节点。
17.根据权利要求5所述的系统,其中,所述上层区块链网络包括与第二路由节点通信的多个所述第二上层路由节点。
18.根据权利要求17所述的系统,其中,
当第一区块链网络发起要在第二区块链网络中执行的跨链交易时:
每个所述第二上层路由节点被配置为单独地从第一上层路由节点接收跨链交易并将接收到的跨链交易传输至第二路由节点;
在所述跨链交易在第二区块链网络中被执行后:
每个所述第二上层路由节点被配置为单独地从第二路由节点接收执行结果以及针对所述执行结果的上链证明,并将接收到的执行结果和上链证明传输至第一上层路由节点。
19.根据权利要求18所述的系统,其中,在所述跨链交易在第二区块链网络中被执行后:第一上层路由节点还被配置为对从每个所述第二上层路由节点接收到的执行结果以及上链证明进行去重,并将经过去重的执行结果和上链证明传输至第一路由节点。
20.根据权利要求17所述的系统,其中,所述多个所述第二上层路由节点包括第一第二上层路由节点和第二第二上层路由节点,并且其中,
当第一区块链网络发起要在第二区块链网络中执行的跨链交易时:
第一第二上层路由节点被配置为从第一上层路由节点接收跨链交易并将接收到的跨链交易传输至第二路由节点;
在所述跨链交易在第二区块链网络中被执行后:
第一第二上层路由节点被配置为从第二路由节点接收执行结果以及针对所述执行结果的上链证明并将接收到的执行结果和上链证明传输至第一上层路由节点。
21.根据权利要求1所述的系统,还包括:
第一转接桥网络,部署在所述上层区块链网络的下层并且信任所述上层区块链网络,所述第一转接桥网络包括相互通信的第一转接桥路由节点和多个第一转接桥共识节点,第一转接桥路由节点与所述上层区块链网络中的第三上层路由节点通信;以及
第一异构区块链网络,部署在所述第一转接桥网络的下层并且包括多个第一异构共识节点,所述多个第一异构共识节点与第一转接桥共识节点通信,
其中,所述第一转接桥网络与所述上层区块链网络、第一区块链网络和第二区块链网络同构,并且所述第一异构区块链网络与所述上层区块链网络、第一区块链网络和第二区块链网络异构,
其中,所述多个第一转接桥共识节点中的每个第一转接桥共识节点被配置为具有简单支付确认能力,以监视和验证第一异构区块链网络中的区块行为,
并且其中,所述上层区块链网络被配置为通过将第一转接桥网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一转接桥网络的共识节点。
22.根据权利要求21所述的系统,其中,第一转接桥网络是区块链网络。
23.根据权利要求21所述的系统,其中,当第一区块链网络发起要在第一异构区块链网络中执行的跨链交易时:
第一路由节点被配置为获得来自第一区块链网络的要在第一异构区块链网络中执行的跨链交易并将跨链交易传输至第一上层路由节点;
第一上层路由节点被配置为将从第一路由节点接收到的跨链交易传输至第三上层路由节点;
第三上层路由节点被配置为将从第一上层路由节点接收到的跨链交易传输至第一转接桥路由节点;以及
第一转接桥路由节点被配置为在第一转接桥网络中广播从第三上层路由节点接收到的跨链交易,使得第一转接桥网络的所述多个第一转接桥共识节点接收并将所述跨链交易转换为具有适配第一异构区块链网络的格式,并将转换后的跨链交易传输至第一异构区块链网络,使得第一异构区块链网络的所述多个第一异构共识节点接收并执行转换后的跨链交易。
24.根据权利要求23所述的系统,其中,当第一区块链网络发起要在第一异构区块链网络中执行的跨链交易时:第一转接桥网络的所述多个第一转接桥共识节点还被配置为将接收到的跨链交易在第一转接桥网络中上链存证。
25.根据权利要求23所述的系统,其中,在转换后的跨链交易在第一异构区块链网络中被执行后:
第一转接桥网络的所述多个第一转接桥共识节点被配置为获得转换后的跨链交易的执行结果并将执行结果在第一转接桥网络中上链存证;
第一转接桥路由节点被配置为获得针对所述执行结果的上链证明并将上链证明传输至第三上层路由节点;
第三上层路由节点被配置为将从第一转接桥路由节点接收到的上链证明传输至第一上层路由节点;
第一上层路由节点被配置为将从第三上层路由节点接收到的上链证明传输至第一路由节点;
第一路由节点被配置为在第一区块链网络中广播从第一上层路由节点接收到的上链证明,使得第一区块链网络的所述多个第一共识节点接收上链证明;以及
第一共识节点被配置为向所述上层区块链网络发送用于查询第一转接桥网络的共识节点公钥列表的查询请求,基于查询到的第一转接桥网络的共识节点公钥列表验证接收到的上链证明是否正确,并在验证通过时信任接收到的上链证明。
26.根据权利要求21所述的系统,还包括:
第二转接桥网络,部署在所述上层区块链网络的下层并且信任所述上层区块链网络,所述第二转接桥网络包括相互通信的第二转接桥路由节点和多个第二转接桥共识节点,第二转接桥路由节点与所述上层区块链网络中的第四上层路由节点通信;以及
第二异构区块链网络,部署在所述第二转接桥网络的下层并且包括多个第二异构共识节点,所述多个第二异构共识节点与第二转接桥共识节点通信,
其中,所述第二转接桥网络与所述上层区块链网络、第一区块链网络、第二区块链网络和第一转接桥网络同构,并且所述第二异构区块链网络与所述上层区块链网络、第一区块链网络、第二区块链网络和第一异构区块链网络异构,
其中,所述多个第二转接桥共识节点中的每个第二转接桥共识节点被配置为具有简单支付确认能力,以监视和验证第二异构区块链网络中的区块行为,
并且其中,所述上层区块链网络被配置为通过将第二转接桥网络的共识节点的变更在所述上层区块链网络中上链存证来管理第二转接桥网络的共识节点。
27.一种用于跨区块链交互的方法,包括:
通过第一区块链网络的第一路由节点获得来自第一区块链网络的要在第二区块链网络中执行的跨链交易并将跨链交易传输至第一区块链网络和第二区块链网络的上层区块链网络的与第一路由节点通信的第一上层路由节点,所述上层区块链网络被第一区块链网络和第二区块链网络二者信任;
通过第一上层路由节点将从第一路由节点接收到的跨链交易传输至所述上层区块链网络的与第二区块链网络的第二路由节点通信的第二上层路由节点;
通过第二上层路由节点将从第一上层路由节点接收到的跨链交易传输至第二路由节点;以及
通过第二路由节点在第二区块链网络中广播从第二上层路由节点接收到的跨链交易,使得第二区块链网络的多个第二共识节点接收并执行所述跨链交易,
其中,所述上层区块链网络被配置为通过将第一区块链网络和第二区块链网络中的每个区块链网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一区块链网络和第二区块链网络中的每个区块链网络的共识节点,从而使得所述上层区块链网络的每个节点知道第一区块链网络和第二区块链网络中的每个区块链网络的节点成员信息。
28.根据权利要求27所述的方法,其中,对于第一区块链网络和第二区块链网络中的每个区块链网络,当新节点要加入该区块链网络作为共识节点时,所述方法包括:
通过所述新节点从所述上层区块链网络获取证书并基于所获取的证书在该区块链网络中调用部署在该区块链网络中的第一加入合约的用于请求加入区块链网络的第一方法;
通过该区块链网络响应于执行所述第一方法而在所述上层区块链网络中调用部署在所述上层区块链网络中的第二加入合约来向所述上层区块链网络请求在该区块链网络中加入所述新节点;
通过所述上层区块链网络在执行所述第二加入合约后将所述第二加入合约的执行结果在所述上层区块链网络中上链存证并将上链证明传输至该区块链网络;以及
通过该区块链网络基于所述上链证明在该区块链网络中调用所述第一加入合约的用于确认加入区块链网络的第二方法,以将所述新节点设置为该区块链网络的共识节点。
29.根据权利要求27所述的方法,其中,对于第一区块链网络和第二区块链网络中的每个区块链网络,当该区块链网络的共识节点要退出该区块链网络时:
通过该共识节点在该区块链网络中调用部署在该区块链网络中的第一退出合约以退出该区块链网络;
通过该区块链网络响应于执行所述第一退出合约而在所述上层区块链网络中调用部署在所述上层区块链网络中的第二退出合约来向所述上层区块链网络请求使该共识节点退出该区块链网络;以及
通过所述上层区块链网络在执行所述第二退出合约后将所述第二退出合约的执行结果在所述上层区块链网络中上链存证。
30.根据权利要求27所述的方法,还包括:
通过第二路由节点获得来自第二区块链网络的指示跨链交易被执行的执行结果以及针对所述执行结果的上链证明并将执行结果和上链证明传输至第二上层路由节点;
通过第二上层路由节点将从第二路由节点接收到的执行结果和上链证明传输至第一上层路由节点;
通过第一上层路由节点将从第二上层路由节点接收到的执行结果和上链证明传输至第一路由节点;
通过第一路由节点在第一区块链网络中广播从第一上层路由节点接收到的执行结果和上链证明,使得第一区块链网络的多个第一共识节点接收执行结果和上链证明;以及
通过第一共识节点向所述上层区块链网络发送用于查询第二区块链网络的共识节点公钥列表的查询请求,基于查询到的第二区块链网络的共识节点公钥列表验证接收到的上链证明是否正确,并在验证通过时信任接收到的执行结果。
31.根据权利要求30所述的方法,其中,第一区块链网络包括多个所述第一路由节点,每个所述第一路由节点与第一上层路由节点通信,并且其中,所述方法包括:
通过每个所述第一路由节点单独地获得来自第一区块链网络的要在第二区块链网络中执行的跨链交易并将跨链交易传输至第一上层路由节点;
通过每个所述第一路由节点单独地从第一上层路由节点接收执行结果和上链证明,并在第一区块链网络中广播接收到的执行结果和上链证明。
32.根据权利要求31所述的方法,还包括:在通过每个所述第一路由节点单独地将跨链交易传输至第一上层路由节点之后,通过第一上层路由节点对从每个所述第一路由节点接收到的跨链交易进行去重,并将经过去重的跨链交易传输至第二上层路由节点。
33.根据权利要求31所述的方法,还包括:
通过每个所述第一路由节点单独地获得来自第一共识节点的用于查询第二区块链网络的共识节点公钥列表的查询请求并将所述查询请求传输至第一上层路由节点;以及
通过每个所述第一路由节点单独地从第一上层路由节点接收第二区块链网络的共识节点公钥列表并在第一区块链网络中广播接收到的第二区块链网络的共识节点公钥列表。
34.根据权利要求30所述的方法,其中,第二区块链网络包括多个所述第二路由节点,每个所述第二路由节点与第二上层路由节点通信,并且其中,所述方法包括:
通过每个所述第二路由节点单独地从第二上层路由节点接收跨链交易并在第二区块链网络中广播接收到的跨链交易;
通过每个所述第二路由节点单独地获得来自第二区块链网络的指示跨链交易被执行的执行结果以及针对所述执行结果的上链证明并将执行结果和上链证明传输至第二上层路由节点。
35.根据权利要求34所述的方法,还包括:在通过每个所述第二路由节点单独地将执行结果和上链证明传输至第二上层路由节点之后,通过第二上层路由节点对从每个所述第二路由节点接收到的执行结果以及上链证明进行去重,并将经过去重的执行结果和上链证明传输至第一上层路由节点。
36.根据权利要求30所述的方法,其中,所述上层区块链网络包括与第一路由节点通信的多个所述第一上层路由节点。
37.根据权利要求36所述的方法,包括:
通过每个所述第一上层路由节点单独地从第一路由节点接收跨链交易并将接收到的跨链交易传输至第二上层路由节点;
通过每个所述第一上层路由节点单独地从第二上层路由节点接收执行结果以及针对所述执行结果的上链证明并将执行结果和上链证明传输至第一路由节点。
38.根据权利要求37所述的方法,还包括:在通过每个所述第一上层路由节点将跨链交易至第二上层路由节点之后,通过第二上层路由节点对从每个所述第一上层路由节点接收到的跨链交易进行去重,并将经过去重的跨链交易传输至第二路由节点。
39.根据权利要求37所述的方法,还包括:
通过第一路由节点在第一区块链网络中广播从每个所述第一上层路由节点接收到的执行结果和上链证明,使得第一区块链网络的所述多个第一共识节点接收来自每个所述第一上层路由节点的执行结果和上链证明;以及
通过第一共识节点向所述上层区块链网络发送用于查询第二区块链网络的共识节点公钥列表的查询请求,基于查询到的第二区块链网络的共识节点公钥列表验证接收到的来自每个所述第一上层路由节点的上链证明是否正确,并在所述多个所述第一上层路由节点中的通过验证的第一上层路由节点的数量达到预设阈值时信任接收到的执行结果。
40.根据权利要求36所述的方法,其中,所述多个所述第一上层路由节点包括第一第一上层路由节点和第二第一上层路由节点,并且其中,所述方法包括:
通过第一第一上层路由节点从第一路由节点接收跨链交易并将接收到的跨链交易传输至第二上层路由节点;
通过第一第一上层路由节点从第二上层路由节点接收执行结果以及针对所述执行结果的上链证明并将接收到的执行结果和上链证明传输至第一路由节点。
41.根据权利要求40所述的方法,还包括:
通过第一第一上层路由节点从第一路由节点接收来自第一共识节点的用于查询第二区块链网络的共识节点公钥列表的查询请求并将所述查询请求传输至第二一上层路由节点;
通过第二第一上层路由节点响应于从第一第一上层路由节点接收到所述查询请求而对第二区块链网络的共识节点公钥列表进行只读查询,并将查询到的第二区块链网络的共识节点公钥列表传输至第一第一上层路由节点;
通过第一第一上层路由节点将从第二第一上层路由节点接收到的第二区块链网络的共识节点公钥列表传输至第一路由节点。
42.根据权利要求30所述的方法,其中,所述上层区块链网络包括与第二路由节点通信的多个所述第二上层路由节点。
43.根据权利要求42所述的方法,还包括:
通过每个所述第二上层路由节点单独地从第一上层路由节点接收跨链交易并将接收到的跨链交易传输至第二路由节点;
通过每个所述第二上层路由节点单独地从第二路由节点接收执行结果以及针对所述执行结果的上链证明,并将接收到的执行结果和上链证明传输至第一上层路由节点。
44.根据权利要求43所述的方法,还包括:通过第一上层路由节点对从每个所述第二上层路由节点接收到的执行结果以及上链证明进行去重,并将经过去重的执行结果和上链证明传输至第一路由节点。
45.根据权利要求42所述的方法,其中,所述多个所述第二上层路由节点包括第一第二上层路由节点和第二第二上层路由节点,并且其中,所述方法包括:
通过第一第二上层路由节点从第一上层路由节点接收跨链交易并将接收到的跨链交易传输至第二路由节点;
通过第一第二上层路由节点从第二路由节点接收执行结果以及针对所述执行结果的上链证明并将接收到的执行结果和上链证明传输至第一上层路由节点。
46.根据权利要求27所述的方法,还包括:
通过第一路由节点获得来自第一区块链网络的要在第一异构区块链网络中执行的跨链交易并将跨链交易传输至第一上层路由节点;
通过第一上层路由节点将从第一路由节点接收到的跨链交易传输至所述上层区块链网络的与第一转接桥网络的第一转接桥路由节点通信的第三上层路由节点,所述第一转接桥网络部署在所述上层区块链网络的下层并且部署在第一异构区块链网络的上层,所述第一转接桥网络信任所述上层区块链网络;
通过第三上层路由节点将从第一上层路由节点接收到的跨链交易传输至第一转接桥路由节点;以及
通过第一转接桥路由节点在第一转接桥网络中广播从第三上层路由节点接收到的跨链交易,使得第一转接桥网络的多个第一转接桥共识节点接收并将所述跨链交易转换为具有适配第一异构区块链网络的格式,并将转换后的跨链交易传输至第一异构区块链网络,使得第一异构区块链网络的多个第一异构共识节点接收并执行转换后的跨链交易,
其中,所述第一转接桥网络与所述上层区块链网络、第一区块链网络和第二区块链网络同构,并且所述第一异构区块链网络与所述上层区块链网络、第一区块链网络和第二区块链网络异构,
其中,所述多个第一转接桥共识节点中的每个第一转接桥共识节点被配置为具有简单支付确认能力,以监视和验证第一异构区块链网络中的区块行为,
并且其中,所述上层区块链网络被配置为通过将第一转接桥网络的共识节点的变更在所述上层区块链网络中上链存证来管理第一转接桥网络的共识节点。
47.根据权利要求46所述的方法,其中,第一转接桥网络是区块链网络。
48.根据权利要求46所述的方法,还包括:通过第一转接桥网络的所述多个第一转接桥共识节点将接收到的跨链交易在第一转接桥网络中上链存证。
49.根据权利要求46所述的方法,还包括:
通过第一转接桥网络的所述多个第一转接桥共识节点获得转换后的跨链交易的执行结果并将执行结果在第一转接桥网络中上链存证;
通过第一转接桥路由节点获得针对所述执行结果的上链证明并将上链证明传输至第三上层路由节点;
通过第三上层路由节点将从第一转接桥路由节点接收到的上链证明传输至第一上层路由节点;
通过第一上层路由节点将从第三上层路由节点接收到的上链证明传输至第一路由节点;
通过第一路由节点在第一区块链网络中广播从第一上层路由节点接收到的上链证明,使得第一区块链网络的多个第一共识节点接收上链证明;以及
通过第一共识节点向所述上层区块链网络发送用于查询第一转接桥网络的共识节点公钥列表的查询请求,基于查询到的第一转接桥网络的共识节点公钥列表验证接收到的上链证明是否正确,并在验证通过时信任接收到的上链证明。
50.根据权利要求46所述的方法,还包括:
通过第一转接桥网络的第一转接桥路由节点将来自第一异构区块链网络的要在第二异构区块链网络中执行的跨链交易传输至第三上层路由节点,所述跨链交易已被第一转接桥网络的所述多个第一转接桥共识节点验证并转换为具有适配所述上层区块链网络的格式;
通过第三上层路由节点将从第一转接桥路由节点接收到的跨链交易传输至所述上层区块链网络的与第二转接桥网络的第二转接桥路由节点通信的第四上层路由节点,所述第二转接桥网络部署在所述上层区块链网络的下层并且部署在第二异构区块链网络的上层,所述第二转接桥网络信任所述上层区块链网络;
通过第四上层路由节点将从第三上层路由节点接收到的跨链交易传输至第二转接桥路由节点;以及
通过第二转接桥路由节点在第二转接桥网络中广播从第四上层路由节点接收到的跨链交易,使得第二转接桥网络的多个第二转接桥共识节点接收并将所述跨链交易转换为具有适配第二异构区块链网络的格式,并将转换后的跨链交易传输至第二异构区块链网络,使得第二异构区块链网络的多个第二异构共识节点接收并执行转换后的跨链交易,
其中,所述第二转接桥网络与所述上层区块链网络、第一区块链网络、第二区块链网络和第一转接桥网络同构,并且所述第二异构区块链网络与所述上层区块链网络、第一区块链网络、第二区块链网络和第一异构区块链网络异构,
其中,所述多个第二转接桥共识节点中的每个第二转接桥共识节点被配置为具有简单支付确认能力,以监视和验证第二异构区块链网络中的区块行为,
并且其中,所述上层区块链网络被配置为通过将第二转接桥网络的共识节点的变更在所述上层区块链网络中上链存证来管理第二转接桥网络的共识节点。
51.一种用于跨区块链交互的计算设备,包括:
一个或多个处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行根据权利要求27至50中任一项所述的方法。
52.一种其上存储有计算机可执行指令的非瞬态存储介质,所述计算机可执行指令在被计算机执行时使得计算机执行根据权利要求27至50中任一项所述的方法。
CN202210466076.8A 2022-04-29 2022-04-29 用于跨区块链交互的系统及方法 Active CN114785804B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210466076.8A CN114785804B (zh) 2022-04-29 2022-04-29 用于跨区块链交互的系统及方法
PCT/CN2022/135441 WO2023207083A1 (zh) 2022-04-29 2022-11-30 用于跨区块链交互的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210466076.8A CN114785804B (zh) 2022-04-29 2022-04-29 用于跨区块链交互的系统及方法

Publications (2)

Publication Number Publication Date
CN114785804A CN114785804A (zh) 2022-07-22
CN114785804B true CN114785804B (zh) 2024-03-29

Family

ID=82436027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210466076.8A Active CN114785804B (zh) 2022-04-29 2022-04-29 用于跨区块链交互的系统及方法

Country Status (2)

Country Link
CN (1) CN114785804B (zh)
WO (1) WO2023207083A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114793235B (zh) * 2022-04-29 2024-03-29 蚂蚁区块链科技(上海)有限公司 用于跨区块链交互的系统及方法
CN114785804B (zh) * 2022-04-29 2024-03-29 蚂蚁区块链科技(上海)有限公司 用于跨区块链交互的系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019211225A1 (en) * 2018-05-01 2019-11-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
CN111741114A (zh) * 2020-06-24 2020-10-02 陈鹏 基于区块链的可监管跨链交互系统、方法及设备
WO2021136251A1 (zh) * 2019-12-30 2021-07-08 北京金山云网络技术有限公司 跨区块链通信方法、装置、跨链服务系统及跨链交易系统
CN114221972A (zh) * 2020-09-03 2022-03-22 中国电信股份有限公司 中继区块链系统以及跨链交易方法
WO2022062976A1 (zh) * 2020-09-23 2022-03-31 华为技术有限公司 用于执行交易的跨区块链的系统、跨链交易方法及设备
CN114793235A (zh) * 2022-04-29 2022-07-26 蚂蚁区块链科技(上海)有限公司 用于跨区块链交互的系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194837B2 (en) * 2018-05-01 2021-12-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
CN109088881B (zh) * 2018-09-12 2020-11-03 杭州趣链科技有限公司 一种实现跨平台数据交换的共享链平台及数据交换方法
BR112019008025B1 (pt) * 2018-11-16 2022-03-15 Advanced New Technologies Co., Ltd Método implementado por computador, meio legível por computador e sistema para implementar um método
CN114844904B (zh) * 2022-04-29 2024-03-29 蚂蚁区块链科技(上海)有限公司 用于跨区块链交互的系统及方法
CN114785804B (zh) * 2022-04-29 2024-03-29 蚂蚁区块链科技(上海)有限公司 用于跨区块链交互的系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019211225A1 (en) * 2018-05-01 2019-11-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
WO2021136251A1 (zh) * 2019-12-30 2021-07-08 北京金山云网络技术有限公司 跨区块链通信方法、装置、跨链服务系统及跨链交易系统
CN111741114A (zh) * 2020-06-24 2020-10-02 陈鹏 基于区块链的可监管跨链交互系统、方法及设备
CN114221972A (zh) * 2020-09-03 2022-03-22 中国电信股份有限公司 中继区块链系统以及跨链交易方法
WO2022062976A1 (zh) * 2020-09-23 2022-03-31 华为技术有限公司 用于执行交易的跨区块链的系统、跨链交易方法及设备
CN114793235A (zh) * 2022-04-29 2022-07-26 蚂蚁区块链科技(上海)有限公司 用于跨区块链交互的系统及方法

Also Published As

Publication number Publication date
WO2023207083A1 (zh) 2023-11-02
CN114785804A (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
CN114793235B (zh) 用于跨区块链交互的系统及方法
CN114785804B (zh) 用于跨区块链交互的系统及方法
Li et al. An optimized byzantine fault tolerance algorithm for consortium blockchain
EP3639465B1 (en) Improved hardware security module management
US9967334B2 (en) Computing device configuration and management using a secure decentralized transaction ledger
CN112673350B (zh) 用于在具有非受信实体的分布式计算系统中实现动作的协调执行的方法和装置
CN107908979B (zh) 用于在区块链中进行配置和背书的方法和电子设备
CN111713088B (zh) 处理数据的方法、处理数据的装置和处理数据的设备
US11379213B1 (en) Decentralized identifiers for securing device registration and software updates
CN110866289B (zh) 基于区块链的数据处理方法、装置、服务器及存储介质
JP2024505692A (ja) ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器
US11876913B2 (en) Control method, control system, first server, and data structure
KR20210130825A (ko) 분산 원장 시스템으로의 데이터 기록의 카피의 잘못된 전송 방지
CN114390063B (zh) 用于区块链网络的消息广播方法、区块链节点和区块链系统
US20200394162A1 (en) Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system
CN114844904B (zh) 用于跨区块链交互的系统及方法
CN111385096B (zh) 一种区块链网络系统、签名处理方法、终端及存储介质
US11556103B2 (en) Control method, control system, first server, and data structure
CN112037055A (zh) 交易处理方法、装置、电子设备及可读存储介质
CN114844905B (zh) 用于跨区块链交互的系统及方法
CN117319412A (zh) 一种区块链网络的管理方法及相关设备
JP2023518004A (ja) ネットワークへのアクセスの取り消し
EP3346638B1 (en) Method, apparatus, and computer-readable storage medium comprising instructions for vehicle-to-vehicle communication
CN117056084B (zh) 基于分层区块链网络的数据处理方法、装置、设备及介质
CN115174572B (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