CN113922971A - Cross-chain interaction method and device - Google Patents

Cross-chain interaction method and device Download PDF

Info

Publication number
CN113922971A
CN113922971A CN202111406526.6A CN202111406526A CN113922971A CN 113922971 A CN113922971 A CN 113922971A CN 202111406526 A CN202111406526 A CN 202111406526A CN 113922971 A CN113922971 A CN 113922971A
Authority
CN
China
Prior art keywords
node
blockchain
message
network
destination
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
CN202111406526.6A
Other languages
Chinese (zh)
Other versions
CN113922971B (en
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202111406526.6A priority Critical patent/CN113922971B/en
Publication of CN113922971A publication Critical patent/CN113922971A/en
Application granted granted Critical
Publication of CN113922971B publication Critical patent/CN113922971B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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

Abstract

One or more embodiments of the present specification provide a cross-chain interaction method and apparatus. The method comprises the following steps: each destination node in the destination block chain network respectively acquires a cross-chain message sent to the destination block chain network by at least one source node in the source block chain network, verifies the cross-chain message acquired by the destination node, and broadcasts a reconstruction message in the destination block chain network under the condition that the verification is passed; each destination node adds a destination node signature generated by the destination node to the received reconstruction message under the condition that the received reconstruction message passes verification respectively, and continues to broadcast in a destination block chain network; under the condition that any destination node determines that the received reconstruction message passes the Byzantine fault-tolerant check, generating a block chain transaction according to the received reconstruction message and submitting the block chain transaction to the destination block chain network for consensus; each destination node executes the same blockchain transaction in a plurality of blockchain transactions which are commonly identified.

Description

Cross-chain interaction method and device
Technical Field
One or more embodiments of the present disclosure relate to the field of block chain technologies, and in particular, to a method and an apparatus for cross-chain interaction.
Background
The blockchain technique is built on top of a transport network, such as a point-to-point network. Nodes in the blockchain network utilize a chained data structure to validate and store data and employ a distributed node consensus algorithm to generate and update data. In some blockchain networks, there is sometimes a need for some nodes to implement small-scale transactions to avoid other nodes from obtaining these transactions and their related data, so that blockchain subnets can be further established on the basis of blockchain main networks.
However, there may be a need for cross-chain interaction between different blockchain networks, so that a node in the source blockchain network can initiate an interaction request to the destination blockchain network. However, how to ensure that each node in the destination blockchain network obtains a consistent processing result after processing the cross-chain message sent by the source blockchain network is ensured because different nodes in the source blockchain network may receive a plurality of blockchain messages returned by different nodes in the destination blockchain subnet, is an urgent problem to be solved in the cross-chain interaction process.
Disclosure of Invention
In view of this, one or more embodiments of the present disclosure provide a cross-chain interaction method and apparatus.
To achieve the above object, one or more embodiments of the present disclosure provide the following technical solutions:
according to a first aspect of one or more embodiments of the present specification, there is provided a cross-chain interaction method, including:
each destination node in the destination block chain network respectively acquires a cross-chain message sent to the destination block chain network by at least one source node in the source block chain network;
each destination node checks the cross-chain message acquired by itself, and constructs a multi-signature reconstruction message aiming at the message content of the cross-chain message in the destination block chain network under the condition of passing the check;
under the condition that any destination node determines that the signature number of a destination node signature contained in any received reconstruction message passes Byzantine fault-tolerant verification, generating block chain transaction according to any reconstruction message and submitting the block chain transaction to a destination block chain network for consensus;
each destination node executes the same blockchain transaction in a plurality of blockchain transactions which are commonly identified.
According to a second aspect of one or more embodiments of the present specification, there is provided a cross-chain interaction apparatus, including:
the message receiving unit is used for enabling each destination node in the destination block chain network to respectively obtain a cross-chain message sent to the destination block chain network by at least one source node in the source block chain network;
the message construction unit is used for enabling each destination node to verify the acquired cross-link message and constructing a reconstructed message with multiple signatures aiming at the message content of the cross-link message in the destination block chain network under the condition of passing the verification;
the transaction generating unit is used for generating block chain transaction according to any reconstruction message and submitting the block chain transaction to the target block chain network for consensus under the condition that any destination node determines that the signature number of the destination node signature contained in any received reconstruction message passes the Byzantine fault-tolerant check;
and the transaction execution unit enables each destination node to execute the same blockchain transaction in the plurality of commonly-identified blockchain transactions respectively.
According to a third aspect of one or more embodiments of the present specification, there is provided an electronic apparatus including:
a processor;
a memory for storing processor-executable instructions;
wherein the processor implements the method of any of the first aspects by executing the executable instructions.
According to a fourth aspect of one or more embodiments of the present description, there is provided a computer-readable storage medium having stored thereon computer instructions which, when executed by a processor, implement the steps of the method according to any one of the first aspect.
Drawings
FIG. 1 is a schematic diagram of creating an intelligent contract, provided by an exemplary embodiment.
FIG. 2 is a schematic diagram of a calling smart contract provided by an exemplary embodiment.
FIG. 3 is a schematic diagram of creating and invoking an intelligent contract according to an exemplary embodiment.
Fig. 4 is a schematic diagram of building a blockchain subnet based on a blockchain master network according to an exemplary embodiment.
FIG. 5 is a schematic diagram of a cross-chain interaction method provided by an exemplary embodiment.
FIG. 6 is a flowchart of a method for cross-chain interaction provided by an exemplary embodiment.
Fig. 7 is a schematic diagram of an apparatus according to an exemplary embodiment.
FIG. 8 is a block diagram of a cross-chain interaction device, provided in an example embodiment.
Detailed Description
Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, like numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with one or more embodiments of the present specification. Rather, they are merely examples of apparatus and methods consistent with certain aspects of one or more embodiments of the specification, as detailed in the claims which follow.
It should be noted that: in other embodiments, the steps of the corresponding methods are not necessarily performed in the order shown and described herein. In some other embodiments, the method may include more or fewer steps than those described herein. Moreover, a single step described in this specification may be broken down into multiple steps for description in other embodiments; multiple steps described in this specification may be combined into a single step in other embodiments.
Blockchains are generally divided into three types: public chain (Public Blockchain), Private chain (Private Blockchain) and alliance chain (Consortium Blockchain). In addition, there are various types of combinations, such as private chain + federation chain, federation chain + public chain, and other different combinations. The most decentralized of these is the public chain. The public chain is represented by bitcoin and ether house, and the participators joining the public chain can read the data record on the chain, participate in transaction, compete for accounting right of new blocks, and the like. Furthermore, each participant (i.e., node) is free to join and leave the network and perform related operations. Private chains are the opposite, with the network's write rights controlled by an organization or organization and the data read rights specified by the organization. Briefly, a private chain can be a weakly centralized system with strictly limited and few participating nodes. This type of blockchain is more suitable for use within a particular establishment. A federation chain is a block chain between a public chain and a private chain, and "partial decentralization" can be achieved. Each node in a federation chain typically has a physical organization or organization corresponding to it; participants jointly maintain blockchain operation by authorizing to join the network and forming a benefit-related alliance.
Whether public, private, or alliance, may provide the functionality of an intelligent contract. An intelligent contract on a blockchain is a contract that can be executed on a blockchain system triggered by a transaction. An intelligent contract may be defined in the form of code.
Taking the ethernet as an example, the support user creates and invokes some complex logic in the ethernet network, which is the biggest challenge of ethernet to distinguish from bitcoin blockchain technology. The core of the ethernet plant as a programmable blockchain is the ethernet plant virtual machine (EVM), each ethernet plant node can run the EVM. The EVM is a well-behaved virtual machine, which means that a variety of complex logic can be implemented through it. The user issuing and invoking smart contracts in the etherhouse is running on the EVM. In fact, what the virtual machine directly runs is virtual machine code (virtual machine bytecode, hereinafter referred to as "bytecode"). The intelligent contracts deployed on the blockchain may be in the form of bytecodes.
For example, as shown in fig. 1, after Bob sends a transaction containing information to create an intelligent contract to the ethernet network, the EVM of node 1 may execute the transaction and generate a corresponding contract instance. The "0 x6f8ae93 …" in fig. 1 represents the address of the contract, the data field of the transaction holds the byte code, and the to field of the transaction is empty. After agreement is reached between the nodes through the consensus mechanism, this contract is successfully created and can be invoked in subsequent procedures. After the contract is created, a contract account corresponding to the intelligent contract appears on the blockchain and has a specific address, and the contract code is stored in the contract account. The behavior of the intelligent contract is controlled by the contract code. In other words, an intelligent contract causes a virtual account to be generated on a blockchain that contains a contract code and an account store (Storage).
As shown in fig. 2, still taking an ethernet house as an example, after Bob sends a transaction for invoking an intelligent contract to the ethernet house network, the EVM of a certain node may execute the transaction and generate a corresponding contract instance. The from field of the transaction in FIG. 2 is the address of the account of the initiator of the transaction (i.e., Bob), the "0 x6f8ae93 …" in the to field represents the address of the smart contract being invoked, and the value field is the value in EtherFang that is kept in the data field of the transaction as the method and parameters for invoking the smart contract. After invoking the smart contract, the value of balance may change. Subsequently, a client can view the current value of balance through a blockchain node (e.g., node 6 in fig. 2). The intelligent contract is independently executed at each node in the blockchain network in a specified mode, and all execution records and data are stored on the blockchain, so that after the transaction is completed, transaction certificates which cannot be tampered and cannot be lost are stored on the blockchain.
A schematic diagram of creating an intelligent contract and invoking the intelligent contract is shown in fig. 3. To create an intelligent contract in an ethernet workshop, the intelligent contract needs to be compiled, compiled into byte codes, deployed to a block chain and the like. The intelligent contract is called in the Ethernet workshop, a transaction pointing to the intelligent contract address is initiated, and the intelligent contract codes are distributed and run in the virtual machine of each node in the Ethernet workshop network.
It should be noted that, in addition to the creation of the smart contracts by the users, the smart contracts may also be set by the system in the creation block. Such contracts are generally referred to as foundational contracts. In general, the data structure, parameters, attributes and methods of some blockchain networks may be set in the startup contract. Further, an account with system administrator privileges may create a contract at the system level, or modify a contract at the system level (simply referred to as a system contract). In addition to EVM in the ethernet, different blockchain networks may employ various virtual machines, which is not limited herein.
After executing a transaction that invokes a smart contract, a node in the blockchain network generates a corresponding receipt (receipt) for recording information related to executing the smart contract. In this way, information about the contract execution results may be obtained by querying the receipt of the transaction. The contract execution result may be represented as an event (event) in the receipt. The message mechanism can implement message passing through events in the receipt to trigger the blockchain node to execute corresponding processing. The structure of the event may be, for example:
Event:
[topic][data]
[topic][data]
......
in the above example, the number of events may be one or more; wherein, each event respectively comprises fields of a subject (topic) and data (data). The tile chain node may perform the preset process by listening to topic of the event, in case that predefined topic is listened to, or read the related content from the data field of the corresponding event, and may perform the preset process based on the read content.
In the event mechanism, it is equivalent to that there is a client with a monitoring function at a monitoring party (e.g. a user with a monitoring requirement), for example, an SDK or the like for implementing the monitoring function is run on the client, and the client monitors events generated by the blockchain node, and the blockchain node only needs to generate a receipt normally. The passage of transaction information may be accomplished in other ways than through the event mechanism described above. For example, the monitoring code can be embedded in a blockchain platform code running at blockchain nodes, so that the monitoring code can monitor one or more data of transaction content of blockchain transactions, contract states of intelligent contracts, receipts generated by contracts and the like, and send the monitored data to a predefined monitoring party. Since the snoop code is deployed in the blockchain platform code, rather than at the snooper's client, this implementation based on snoop code is relatively more proactive than the event mechanism. The above monitoring code may be added by a developer of the blockchain platform in the development process, or may be embedded by the monitoring party based on the own requirement, which is not limited in this specification.
The blockchain technology is different from the traditional technology in one of decentralization characteristics, namely accounting is performed on each node, or distributed accounting is performed, and the traditional centralized accounting is not performed. To be a difficult-to-defeat, open, non-falsifiable data record decentralized honest and trusted system, the blockchain system needs to be secure, unambiguous, and irreversible in the shortest possible time for distributed data records. In different types of blockchain networks, in order to keep the ledger consistent among the nodes recording the ledger, a consensus algorithm is generally adopted to ensure that the consensus mechanism is the aforementioned mechanism. For example, a common mechanism of block granularity can be implemented between block nodes, such as after a node (e.g., a unique node) generates a block, if the generated block is recognized by other nodes, other nodes record the same block. For another example, a common mechanism of transaction granularity may be implemented between the blockchain nodes, such as after a node (e.g., a unique node) acquires a blockchain transaction, if the blockchain transaction is approved by other nodes, each node that approves the blockchain transaction may add the blockchain transaction to the latest block maintained by itself, and finally, each node may be ensured to generate the same latest block. The consensus mechanism is a mechanism for the blockchain node to achieve a global consensus on the block information (or called blockdata), which can ensure that the latest block is accurately added to the blockchain. The current mainstream consensus mechanisms include: proof of Work (POW), Proof of stock (POS), Proof of commission rights (DPOS), Practical Byzantine Fault Tolerance (PBFT) algorithm, HoneyBadgerBFT algorithm, etc.
Due to the decentralized characteristic of the blockchain network, all blockchain nodes in the blockchain network can maintain the same blockchain data, and the special requirements of part of nodes cannot be met. Taking a federation chain as an example, all federation members (i.e., node members in a federation) may form a blockchain network, and all federation members respectively have corresponding blockchain nodes in the blockchain network, and may obtain all transactions and related data occurring on the blockchain network through the corresponding blockchain nodes. In some cases, however, there may be some security-required transactions that some coalition members wish to complete, which may both wish to be able to verify on the blockchain or to take advantage of other advantages of blockchain technology, and avoid other coalition members from viewing the transactions and associated data. Although the federating members can additionally build a new blockchain network in a manner similar to the blockchain network including all federating members described above, the new blockchain network is built from scratch, which consumes a lot of resources and is time-consuming in both the building process and the post-building configuration process. The demand between the members of the federation is often temporary or has a certain timeliness, so that the newly-built blockchain network can quickly lose significance due to the disappearance of the demand, thereby further increasing the link establishment cost of the blockchain network. The demands among the federation members often change, and the federation members corresponding to each demand often differ, so that a new blockchain network may need to be established whenever a change occurs in a federation member, thereby causing a great waste of resources and time.
For this purpose, the established blockchain network may be used as a blockchain master network, and a blockchain sub-network may be established on the basis of the blockchain master network. Then, in a federation chain scenario such as that described above, federation members can build the required blockchain subnets on a blockchain master basis based on their own needs, already participating in the blockchain master. Because the block chain sub-networks are established on the basis of the block chain main network, compared with the process of completely and independently establishing a block chain network, the block chain sub-networks are greatly reduced in consumed resources, required time consumption and the like, and are extremely high in flexibility.
The process of quickly establishing the block chain sub-network based on the block chain main network comprises the following steps: each main network node in the block chain main network respectively acquires transactions for establishing a block chain sub-network, wherein the transactions comprise configuration information of the block chain sub-network, and the configuration information comprises identity information of node members. Then, each main network node in the block chain main network executes the transaction respectively; when the first main network node belongs to the node member indicated by the configuration information, the node device deploying the first main network node generates an creation block containing the configuration information based on the transaction and starts a first sub-network node belonging to the block chain sub-network.
The transaction for establishing the blockchain sub-network can be initiated by an administrator of the blockchain main network, that is, the administrator is only allowed to establish the blockchain sub-network on the basis of the blockchain main network, and the establishment permission of the blockchain sub-network is prevented from being opened to a common user, so that the security problem caused by the establishment permission can be prevented. In some cases, a common user of the blockchain main network may also be allowed to initiate a transaction for building the blockchain sub-network, so as to meet networking requirements of the common user, and the common user can still quickly build the blockchain sub-network under the condition that an administrator is not convenient to initiate the transaction.
For example, as shown in fig. 4, the main network of the blockchain is subnet0, and the subnet0 includes blockchain link points nodeA, nodeB, nodeC, nodeD, and nodeE. Assume nodeA, nodeB, nodeC, and nodeD wish to build a blockchain subnet: if nodeA is an administrator and only allows the administrator to initiate a transaction to build a blockchain subnet, the transaction to build the blockchain subnet can be initiated by nodeA to subnet 0; if the nodeb is an administrator and only the administrator is allowed to initiate a transaction for building the blockchain subnet, nodeb a to nodeb d need to make a request to nodeb, so that nodeb initiates the transaction for building the blockchain subnet to subnet 0; if nodeE is an administrator but allows a normal user to initiate a transaction for building a blockchain subnet, nodeA-nodeE can both initiate the above transaction for building the blockchain subnet to subnet 0. Of course, the blockchain link point initiating the transaction for building the blockchain subnet does not necessarily participate in the built blockchain subnet, whether it is an administrator or a general user, for example, although the blockchain subnet is finally built by nodeA, nodeB, nodeC and nodeD, the transaction for building the blockchain subnet may be initiated by nodeE to subnet0, but the transaction for building the blockchain subnet is not necessarily initiated by nodeA to nodeD.
When the blockchain sub-network is constructed on the basis of the blockchain main network, it is easy to understand that a logical hierarchical relationship exists between the blockchain sub-network and the blockchain main network. For example, when a blockchain subnet1 is established on the subnet0 shown in fig. 4, it can be considered that the subnet0 is at the first layer, the subnet1 is at the second layer, the subnet0 is the parent network of the subnet1, and the subnet1 is the subnet 0. And the blockchain sub-network may also constitute a corresponding blockchain sub-network, for example, another blockchain sub-network bnet3 may be further constituted on the basis of the sub-net 1 in fig. 4, at this time, it may be considered that the sub-net is in the third layer, the sub-net 1 is the parent network corresponding to the sub-net 3, the sub-net 3 is the subnet of the sub-net 1, and the sub-net 3 is the grandchild network of the sub-net 0, similarly, the sub-net 3 may still newly constitute the blockchain sub-network on the basis thereof, so that such a multi-level tree structure is formed between the blockchain networks, and in this specification, any blockchain network is managed by its corresponding parent network, that is, managed by the blockchain network constituting any blockchain network of the blockchain network, so that in the blockchain sub-network as shown in fig. 4, the main level of the blockchain is the root network, and each blockchain sub-network is the corresponding tree node sub-chain sub-network of the other blockchain sub-network, and its corresponding system is represented by any blockchain sub-chain sub-network of the blockchain system, as a specific example, when the block chain master network is a bottom layer block chain network, the block chain master network is managed by the block chain master network itself. The block chain master network in this specification may be a bottom layer block chain network, where the bottom layer block chain network refers to a block chain sub-network that is not established on the basis of other block chain networks, and therefore there is no other block chain network except the block chain master network and the block chain master network can manage the block chain master network, for example, the subnet0 in fig. 4 may be considered as a block chain master network belonging to a bottom layer block chain network type, and the subnet0 manages the subnet0 itself, and of course, the block chain master network may also be a sub-network of another block chain network, which is not limited in this specification. The block chain network tree system realizes layer-by-layer management by managing the corresponding child nodes through the father nodes, reduces the management pressure of the block chain main network, and simultaneously avoids exposing subnet information of an upper network to a lower network, thereby realizing the secret management of networks at all levels.
After the transaction for establishing the blockchain sub-network is sent to the blockchain main network, the consensus nodes in the blockchain main network perform consensus, and after the consensus is passed, each main network node executes the transaction to complete establishment of the blockchain sub-network. The consensus process depends on the consensus mechanism employed, such as any of the consensus mechanisms described above, and is not limited by the present specification.
The configuration information is included in the transaction of the block chain sub-network, and the configuration information can be used for configuring the block chain sub-network, so that the block chain sub-network meets networking requirements. For example, by including the identity information of the node members in the configuration information, it is possible to specify which blockchain nodes the constructed blockchain subnet includes.
The identity information of the node member may include a public key of the node, or other information capable of representing the node identity, such as a node ID, which is not limited in this specification. Taking a public key as an example, each blockchain node has one or more corresponding sets of public-private key pairs, and the private key is held by the blockchain node and the public key is public and uniquely corresponds to the private key, so that the identity of the corresponding blockchain node can be characterized by the public key. Therefore, for blockchain nodes that are desired to be node members of a blockchain subnet, the public keys of these blockchain nodes can be added to the transaction of the building blockchain subnet as the identity information of the node members.
The first master network node may be a blockchain node on the blockchain master network that belongs to a node member indicated by the configuration information. When the blockchain subnet is established, the first master network node does not directly join the blockchain subnet to become a node member of the blockchain subnet, but the first subnet node needs to be generated by the node device for deploying the first master network node and becomes a node member of the blockchain subnet. The first main network node and the first sub-network node correspond to the same blockchain member, for example, correspond to the same alliance chain member in an alliance chain scene, but the first main network node belongs to a blockchain main network and the first sub-network node belongs to a blockchain sub-network, so that the blockchain member can participate in the transaction of the blockchain main network and the blockchain sub-network respectively; moreover, because the blockchain main network and the blockchain sub-network belong to two mutually independent blockchain networks, the blocks generated by the first main network node and the blocks generated by the first sub-network node are respectively stored in different storages (the adopted storages can be databases, for example) on the node device, so that mutual isolation between the storages used by the first main network node and the first sub-network node respectively is realized, and thus, data generated by the blockchain sub-network can only be synchronized among the node members of the blockchain sub-network, so that the blockchain members only participating in the blockchain main network cannot obtain the data generated by the blockchain sub-network, the data isolation between the blockchain main network and the blockchain sub-network is realized, and the transaction requirements between partial blockchain members (namely, the blockchain members participating in the blockchain sub-network) are met.
It can be seen that the first master network node and the first sub-network node are logically divided block chain link points, and from the perspective of physical devices, the node devices which are equivalent to the first master network node and the first sub-network node are deployed to participate in both the block chain master network and the block chain sub-network. Since the blockchain main network and the blockchain sub-network are independent from each other, so that the identity systems of the two blockchain networks are also independent from each other, even though the first main network node and the first sub-network node may adopt the same public key, the first main network node and the first sub-network node should be regarded as different blockchain nodes. For example, in fig. 4, the nodeA in subnet0 corresponds to a first master network node, and the node device deploying the nodeA generates nodeA1 belonging to subnet1, and the nodeA1 corresponds to a first sub-network node. It can be seen that, since the identity systems are independent of each other, even if the public key adopted by the first subnet node is different from that of the first master network node, the implementation of the solution in this specification is not affected.
Of course, the node members of the blockchain sub-network are not necessarily only part of the node members of the blockchain main network. In some cases, the node members of the blockchain subnet may be completely consistent with the node members of the blockchain main network, and at this time, all the blockchain members may obtain data on the blockchain main network and the blockchain subnet, but data generated by the blockchain main network and the blockchain subnet may still be isolated from each other, for example, one type of service may be implemented on the blockchain main network, and another type of service may be implemented on the blockchain subnet, so that service data generated by the two types of services may be isolated from each other.
In addition to the identity information of the node members described above, the configuration information may include at least one of: the network identifier of the blockchain subnet, the identity information of an administrator of the blockchain subnet, the attribute configuration for the blockchain platform code, and the like, which are not limited in this specification. The network identifier is used to uniquely characterize the blockchain subnet, and thus the network identifier of the blockchain subnet should be distinguished from the blockchain main network and other blockchain subnets established on the blockchain main network. Identity information of an administrator of the blockchain subnet, such as a public key of a node member as the administrator; the administrators of the blockchain main network and the blockchain sub-network may be the same or different.
One of the advantages of building the blockchain subnet by using the blockchain master network is that since the first master network node is already deployed on the node device generating the first subnet node, the blockchain platform code used by the first master network node can be multiplexed on the first subnet node, so that repeated deployment of the blockchain platform code is avoided, and the building efficiency of the blockchain subnet is greatly improved. Then, if the configuration information does not include the attribute configuration for the blockchain platform code, the first subnet node may reuse the attribute configuration adopted on the first master network node; if the configuration information includes the attribute configuration for the blockchain platform code, the first subnet node may adopt the attribute configuration, so that the attribute configuration adopted by the first subnet node is not limited by the attribute configuration of the first main network node and is not related to the first main network node. The attribute configuration for blockchain platform code may include at least one of: code version number, whether consensus is required, type of consensus algorithm, block size, etc., which is not limited in this specification.
The transactions that make up the blockchain subnet include transactions that invoke contracts. The address of the invoked smart contract, the method invoked and the incoming parameters may be specified in the transaction. For example, the contract invoked may be the aforementioned startup contract or system contract, the method invoked may be a method that builds a blockchain subnet, and the incoming parameters may include the configuration information described above. In one embodiment, the transaction may contain the following information:
from:Administrator
to:Subnet
method:AddSubnet(string)
string:genesis
the from field is information of the initiator of the transaction, such as administeror indicating that the initiator is an Administrator; the to field is the address of the intelligent contract being called, for example, the intelligent contract may be a Subnet contract, and the to field is specifically the address of the Subnet contract; the method field is a called method, for example, the method used in the Subnet contract to build the blockchain Subnet may be AddSubnet (string), and string is a parameter in the AddSubnet () method, and the value of the parameter is represented by the aforementioned example, which is specifically the aforementioned configuration information.
Take the example that nodes nodeA-nodeE on Subnet0 execute a transaction that invokes the AddSubnet () method in the Subnet contract. After the transaction passes the consensus, nodeA-nodeE respectively execute the AddSubnet () method and transmit configuration information to obtain corresponding execution results.
The execution result of the contract may include the configuration information, and the execution result may be in the receipt as described above, and the receipt may contain the event related to the execution of the adsubnet () method, i.e., the networking event. The topoc of a networking event may contain a predefined networking event identification to distinguish it from other events. For example, in an event related to the execution of the AddSubnet () method, the content of topic is a keyword subnet, and the keyword is distinguished from topic in the event generated by other methods. Then, nodeb to nodeb can determine to listen to an event related to execution of the AddSubnet () method, that is, a networking event, by listening to topic included in each event in the generated receipt, in the case where topic including the keyword subnet is listened to. For example, the events in the receipt are as follows:
Event:
[topic:other][data]
[topic:subnet][data]
......
then, when nodeA-nodeE monitor 1 st event, because the contained topoic content is other, it is determined that the event is irrelevant to the AddSubnet () method; and when the 2 nd event is monitored, because the contained topic content is subnet, determining that the event is related to the AddSubnet () method, and further reading the data field corresponding to the event, wherein the data field contains the configuration information. Taking the example that the configuration information includes the public key of the node member of the blockchain subnet, the content of the data field may include, for example:
{subnet1;
the public key of nodeA, the IP of nodeA, port number … of nodeA;
public key of nodeB, IP of nodeB, port number … of nodeB;
public key of nodeC, IP of nodeC, port number … of nodeC;
the public key of nodeD, the IP of nodeD, port number … of nodeD;
}
where subnet1 is the network identification of the blockchain subnet that one wishes to create. Each blockchain link point in the blockchain master network may record network identifiers of all blockchain subnets that have been created on the blockchain master network, or other information related to the blockchain subnets, which may be maintained in the Subnet contract, for example, and may specifically correspond to values of one or more contract states included in the Subnet contract. Then, nodeA to nodeE may determine whether the subnet1 already exists according to the recorded network identifiers of all the blockchain subnets that have been created; if not, subnet1 is the new blockchain subnet that needs to be created currently, and if so, subnet1 is already present.
In addition to the network identifier of the new blockchain subnet that is desired to be created, a predefined new network identifier may be used, which indicates that the corresponding networking event is used to create the new blockchain subnet. For example, the subnet1 may be replaced by newsbnet, where newsbnet is a predefined new network identifier, and when the nodeA-nodeE recognizes that the data field includes newsbnet, it may be determined that the event including newsbnet is a networking event and a new blockchain subnet needs to be created.
Besides the network identification subnet1, the data field also contains the identity information of each node member. The node device deploying the first master network node may monitor the generated receipt, and obtain, by the node device deploying the first master network node, configuration information or an innovation block included in the networking event when the networking event is monitored and the content of the networking event indicates that the first master network node belongs to the node member. For example, when determining that subnet1 is a blockchain subnet that needs to be newly built, nodeA to nodeE further identify the identity information of the node members included in the data field to determine their own processing methods. For example, nodeA-nodeD may find that the data field includes identity information such as their own public key, IP address, and port number, assuming nodeA-nodeD are respectively deployed on node devices 1-4, taking nodeA and node device 1 as an example: the nodeA triggers the node device 1, so that the node device 1 obtains the configuration information from the data field based on the message mechanism and generates a created block containing the configuration information, and the node device 1 deploys the nodeA1 locally, and the nodeA1 loads the generated created block, so as to become a subnet node of subnet 1; similarly, nodeB will trigger NodeB1 to be generated by node device 2, nodeC will trigger NodeC1 to be generated by node device 3, and nodeD will trigger NodeD1 to be generated by node device 4. And the nodeE finds that the identity information contained in the data field is not matched with the nodeE, and if the nodeE is deployed on the node device 5, the node device 5 does not generate a creation block according to the configuration information in the data field, and does not generate a node in the subnet 1.
As mentioned above, the first master network node and the first subnet node do not necessarily adopt the same identity information. Therefore, in the above embodiment, the data field may include the identity information generated in advance for nodeA 1-nodeD 1, and be distinguished from the identity information of nodeA-nodeD. Still taking nodeA as an example, if identity information of nodeA1 is found in the data field, nodeA triggers node device 1 to generate a birth block, deploy nodeA1, and load the birth block by nodeA 1; the nodeB-nodeD processing is similar, and is not described in detail here.
In addition to configuration information, the execution results of the contract may include a foundational block. In other words, in addition to including the configuration information in the data field, the created block including the configuration information may be generated directly in the process of executing the contract call, so that the created block is included in the data field, and then for the nodeA to nodeD described above, the corresponding node devices 1 to 4 may obtain the created block directly from the data field through a message mechanism without self-generation, and the deployment efficiency of nodeA1 to nodeD1 may be improved.
In this specification, the transaction for creating the blockchain subnet may not be a transaction for calling an intelligent contract, so that the blockchain network that does not support the intelligent contract may also implement the technical solution of this specification, thereby quickly creating the blockchain subnet on the basis of the blockchain main network. For example, a group network transaction type identifier may be predefined, and when a transaction includes the group network transaction type identifier, it indicates that the transaction is used for building a new blockchain subnet, that is, the transaction is a transaction for building a blockchain subnet. The blockchain platform code may include related processing logic for constructing a blockchain sub-network, so that when a first master network node running the blockchain platform code performs a transaction, if the transaction is found to include the networking transaction type identifier and the first master network node belongs to a node member indicated by configuration information in the transaction, a node device deploying the first master network node may be triggered to generate an innovation block including the configuration information and start the first sub-network node based on the processing logic, and the innovation block is loaded by the first sub-network node to form the blockchain node in the blockchain sub-network.
The node device is equivalent to deploying a blockchain node on the node device by pulling up a process and creating an instance in the process, and running blockchain platform code by the instance. For the first master network node, a first instance is created by the node device in the above process and formed by the first instance running blockchain platform code. Similarly, for the first subnet node, a second instance different from the first instance is created by the node device in the above process, and is formed by the second instance running the blockchain platform code. When the first instance and the second instance are located in the same process, the deployment difficulty of the first subnet node can be reduced and the deployment efficiency can be improved because cross-process interaction is not involved; of course, the second instance may be in a different process on the node device than the first instance, and this specification does not limit this. In fact, each block link point deployed on any node device referred to in the embodiments of this specification is a different block chain instance running on any node device, blocks generated by each block link point deployed on any node device are respectively stored in different storages (for example, a database) on any node device, and the storages used by each block link point deployed on any node device are isolated from each other.
By the method, the block chain sub-network can be created on the block chain main network. Taking fig. 4 as an example, the subnet0 originally includes nodeA to nodeE, and can construct subnet1 on the basis of subnet0, where subnet1 includes nodeA1 to nodeD1, and nodeA1, nodeB and nodeB1, nodeC and nodeC1, and nodeD1 are respectively deployed on the same node device. Similarly, a subnet2 or more block chain subnets can be constructed on subnet0, where subnet2 includes nodeA2, nodeB2, nodeC2, and nodeE2, and nodeA1, nodeA2, nodeB1, nodeB2, nodeC1, nodeD1, and nodeE2 are respectively deployed on the same node device. And, subnet1, subnet2, etc. may be used as a blockchain main network, and a blockchain subnet is further constructed on the basis, for example, a blockchain subnet3 is constructed on the basis of subnet1, the process is similar to the construction of subnet1 or subnet2, only the blockchain is replaced by a main blockchain subnet1, which is not described herein, and finally, the subnet3 includes nodeA3, nodeB3 and nodeC3, so that nodeA and nodeA1, nodeA2, nodeA3, nodeB and nodeB1, nodeB2, nodeB3, nodeC and nodeC1, nodeC2 and nodeC3 are respectively deployed on the same node device.
The cross-chain interaction requirement can exist between different blockchain main networks or between different blockchain sub-networks established in the mode. However, because there are usually a plurality of source blockchain nodes that send a cross-chain message (i.e., initiate a cross-chain request) and a plurality of destination blockchain nodes that respond to the cross-chain message and perform response processing, different destination nodes in the destination blockchain network may receive a plurality of cross-chain messages generated by different source nodes in the source blockchain subnet, and thus how to ensure consistency of the cross-chain messages from the source blockchain network processed by each destination node in the destination blockchain network is an urgent problem to be solved in the cross-chain interaction process.
To solve the problem, the present specification proposes a method for performing a cross-link interaction, after a destination node in a destination block chain network respectively obtains a cross-link message generated by a source node in a source block chain network, constructing a reconstruction message according to the cross-chain message passing the verification and broadcasting the signed reconstruction message in a target block chain network, signing other target nodes receiving the reconstruction message again after passing the verification and continuously broadcasting until any source target node passes the Byzantine fault-tolerant check of the reconstruction message according to the total amount of the target nodes and the signature number of the target node signature contained in the reconstruction message (indicating that enough target nodes approve the reconstruction message at the moment), and generating a blockchain transaction according to the reconstruction message, submitting consensus, and further executing the same blockchain transaction by each destination node. On one hand, the reconstruction message is verified and signed for many times through a plurality of destination nodes, so that the reconstruction message for generating the block chain transaction is ensured to be recognized together by enough destination nodes; on the other hand, the same blockchain transaction is respectively executed by each destination node, so that the blockchain transaction is only executed once by each destination node, and the consistency of the cross-chain messages processed by each destination node is effectively ensured.
The cross-chain interaction scheme of the present specification will first be briefly described in conjunction with fig. 5, which corresponds to fig. 4. Referring to fig. 5, fig. 5 is a schematic diagram of a cross-chain interaction method according to an exemplary embodiment. As shown in fig. 4, a blockchain subnet1 and a blockchain subnet2 are created on the basis of a blockchain main network subnet0, and fig. 5 is a schematic diagram of a process for implementing cross-chain interaction based on subnet0 for subnet1 and subnet 2.
As shown in fig. 5, a node device to which any one of the subnet1 and subnet2 belongs may be deployed with a corresponding database and a corresponding virtual machine, and taking fig. 5 as an example, nodeD1 in subnet1 is specifically a blockchain node instance (hereinafter referred to as blockchain node) formed by the node device 4 running a pre-deployed blockchain platform code in a locally deployed virtual machine, and nodeD1 is stored in a database corresponding to nodeD1 as related data of the blockchain node in the running process. The blockchain network to which the blockchain node deployed in the node device belongs may be a blockchain main network or a blockchain sub-network established in the foregoing manner, and of course, the present solution may also be applied to an independent blockchain network (i.e., the blockchain network is not established based on other blockchain networks, and there is no other blockchain network established based on the blockchain network). In other words, the cross-chain interaction method described in this specification may be applied to any two blockchain networks, and the mutual relationship between the blockchain network and other blockchain networks is not limited in this specification. In addition, a blockchain consensus code can be deployed in the node device, and the node device can run the consensus code to locally form a consensus plug-in instance; and the node device can also be deployed with P2P plug-in codes managed in a plug-in form, and the node device can run the P2P plug-in codes to locally form a P2P plug-in instance, namely a P2P plug-in. The node device is also provided with a blockchain service code, and the node device can run the blockchain service code to locally form a service instance, where any node device can implement at least one service instance, such as a storage instance for implementing a data read/write function, a calculation instance for implementing a calculation function such as privacy calculation, and an encryption instance for implementing a data encryption function, and details are not repeated.
In particular, when the cross-chain interaction method described in this specification is applied to two blockchain subnets under management of a blockchain master network, a master node in the blockchain master network is deployed on node devices to which a source node in a source blockchain network or a destination node in a destination blockchain network belongs, and with reference to fig. 4 and 5, a master node nodeb is also deployed on a node device 4 to which nodeb1 in a subnet1 belongs, and a master node nodeb is also deployed on a node device 5 to which nodeb2 in a subnet2 belongs, since a P2P plug-in on a node device can be shared by each blockchain node on the node device, although there is no direct network connection link between the nodeb net 493 2 and the subnet2, since the nodeb deployed on the node device 4 and the nodeb e deployed on the node device 5 have previously established a network connection link based on a P2, a P4835 connection plug-in a network 466 running through the P2 plug-in the subnet 466, by means of the network connection link realized when the subnet0 is formed, a network connection is established between the P2P plug-in running on the node device (e.g., node device 5) to which each destination node (e.g., node e2) in the subnet2 belongs, thereby further realizing network communication with the destination node, so that network communication between the source node and the destination node in the source blockchain network is realized through the network connection link pre-established by the bottom layer blockchain main network without establishing a new network connection link between the source blockchain network and the destination blockchain network.
Each node in the subnet1 may need to use data stored by each node in the subnet2 in the process of implementing a service function, so that the subnet1 may request the subnet2 to acquire the data, and in the process of acquiring the data through the cross-chain interaction scheme described in this specification, the subnet1 is a source blockchain network, and the subnet2 is a destination blockchain network. For example, subnet1 may send a cross-chaining request to subnet2 in an attempt to obtain the contract state for a particular field in a particular contract held in the subnet 2's node database. It is to be understood that "subnet 1 sends a cross-link request to subnet 2" is "subnet node (i.e., source node) in subnet1 sends a cross-link request to subnet node (i.e., destination node) in subnet 2".
Specifically, when the cross-chain interaction method described in this specification is applied to two blockchain subnets under management of a blockchain main network, any node in the subnet1 may encapsulate a network identifier of the target blockchain network subnet2 in a cross-chain request, and broadcast the cross-chain request to a P2P plug running on each node device deployed with the main network node through a network connection link of the subnet0 by calling a P2P plug locally deployed by the node device and shared with the main network node in the subnet 0. In an embodiment, if the nodeA1 in the subnet1 sends out the cross-link request through the P2P plug-in on the node device 1, then all other node devices 2 to 5 deployed with the main network node will receive the cross-link request, for example, after receiving the cross-link request, the P2P plug-in on the node device 5 will determine, according to the network identifier carried in the cross-link request, whether the node device 5 is locally deployed with a blockchain link point in the blockchain network corresponding to the network identifier, obviously, the nodeE2 in the subnet2 is deployed on the node device 5, and therefore, the P2P plug-in on the node device 5 will further forward the cross-link request to the nodeE2 based on the network identifier, and after receiving the cross-link request, the P2P plug-in the node device 4 will also forward based on the network identifier carried by the plug-in the node device 4, but since the node device 4 is not locally deployed with a blockchain link point in the subnet2, the node device will not retain the cross-link request, but further forwards the cross-link request to other node devices deployed with the primary network node. In addition, any node in the subnet1 can encapsulate, in addition to the network identifier in the cross-link request, the identity information of any node in the destination blockchain network, such as the node ID and the node public key, in the cross-link request, so that, in the process of invoking the P2P plugin to implement the cross-link transmission cross-link request, the P2P plugin can directly send to the node device specified by each node identity information carried in the cross-lead request in a point-to-point communication manner without sending to the node device to which each main network node belongs in a broadcast manner, for example, the nodeD1 in the subnet1 can encapsulate the identity information of the nodeE2 in the cross-link request and invoke the P2P plugin locally running in the node device 4, so that the P2P plugin can send the cross-link request to the nodeE2 deployed in the subnet2 and the node device 355 in the subnet0 in a unicast manner according to the identity information of the nodeE2, and then receive the P2 plugin on the node device 2P in the cross-link request, in addition to forwarding the cross-chain request to nodeE2 through the network identifier carried by the cross-chain request, the cross-chain request may also be forwarded to nodeE2 directly through the identity information of nodeE2 carried by the cross-chain request.
The above process describes a process in which the source blockchain network sends a message request to the destination blockchain network through a network connection link established by the blockchain master network, and similarly, the destination blockchain network may also implement message transmission to the source blockchain network by calling a local P2P plug-in, for example, returning cross-link data corresponding to the blockchain request sent by the source blockchain network to the source blockchain network, thereby implementing network communication between the source node in the source blockchain network and the destination node in the destination blockchain network through a formed bidirectional communication channel between the source blockchain network and the destination blockchain network.
The data acquisition request may be sent to a main network node in the subnet0, and the main network node forwards the request to the corresponding subnet2, where a destination node in the subnet2 may verify the received data acquisition request in order to ensure the validity of the responded data acquisition request, and respond when the verification is passed. The destination node responds to the data acquisition request, that is, determines data executed by the received data acquisition request (i.e., data required by subnet 1), and generates a cross-link message based on the data and returns the cross-link message to subnet1 through the master network node in subnet 0. Similarly, the source node in the subnet1 may also perform validity verification on the received cross-chain message, and if the verification is passed, use the data contained in the cross-chain message to continue implementing the relevant service function.
Fig. 5 is merely an exemplary illustration of the tile chain subnet1 and subnet2 in conjunction with fig. 4. In fact, cross-chain interaction can be implemented between each blockchain network in fig. 4, and the description does not limit the relationship between blockchain networks interacting across chains. For example, cross-chain interaction may be implemented between the blockchain main network subnet0 and the blockchain subnet1, between the blockchain main network subnet0 and the blockchain subnet3 (i.e., the grandchild of subnet 0), between the blockchain subnet2 and the subnet3, and the like, and detailed processes are not described again.
The cross-chain interaction scheme of the present specification is described in detail below with reference to fig. 6. Referring to fig. 6, fig. 6 is a schematic diagram of a cross-chain interaction method according to an exemplary embodiment. As shown in fig. 6, the method is applied to a blockchain system including a source blockchain network and a destination blockchain network, and the method may include the following steps:
step 602, each destination node in the destination blockchain network respectively obtains a cross-chain message sent by at least one source node in the source blockchain network to the destination blockchain network.
Step 604, each destination node checks the cross-link message acquired by itself, and constructs a multi-signature reconstruction message for the message content of the cross-link message in the destination block chain network if the check is passed.
In this embodiment, at least one source node in the source blockchain network may send a cross-chain message to the destination blockchain network, so that each destination node in the destination blockchain network may check the received cross-chain message, and construct a reconstructed message including the message content of the cross-chain message and a destination node signature of itself (that is, the reconstructed message includes the destination node signature of the destination node constructing the reconstructed message) according to the cross-chain message that passes the check under the condition that the check is passed, and further may broadcast the reconstructed message to other destination nodes in the destination blockchain network. Any destination node in the destination block chain network can verify the reconstruction message received by the destination node, and adds a destination node signature generated by the destination node to the reconstruction message under the condition that the verification is passed, and continuously broadcasts the reconstruction message in the destination block chain network. It can be understood that each destination node in the destination block chain network respectively performs the above operations, so that any destination node can respectively process each reconstructed message after receiving the reconstructed message respectively broadcast by each other destination node. Therefore, the reconstructed message is added with multiple signatures by each destination node that receives the message, i.e., the reconstructed message contains multiple signatures.
The cross-chain interaction process between subnet1 and subnet2 in the block chain in the network structure shown in fig. 4 is taken as an example for explanation. At least one source node (source node nodeB1, nodeB1, nodeB1, and/or nodeB 1) in the subnet1 may send a cross-chain message to the subnet2 through the blockchain main network subnet0 in a unicast, multicast, or broadcast manner as described above, and after each destination node (destination nodes nodeB2, nodeB2, nodeB2, and nodeB 2) in the subnet2 acquires the cross-chain message, it may respond to the cross-chain message received by itself, and perform corresponding processing. Taking the destination node nodeb2 as an example, after receiving the inter-link message sent by each source node, nodeb2 may verify each inter-link message, and further generate and broadcast a reconfiguration message in the destination blockchain network according to each inter-link message when the verification passes. It can be understood that, because each of the cross-link messages received by the nodeA2 is generated by each of the source nodes according to the same service event, the message content of each of the cross-link messages is the same, and each of the cross-link messages contains a source node signature generated by the source node of the sender. Thus, nodeA2 may sign the (same) message content contained in each received cross-chain message and construct a reconstructed message from that message content and its own target node signature. Further, the nodeA2 may broadcast the constructed reconfiguration message to other destination nodes, so that the other destination nodes respectively perform corresponding processing, and the specific processing steps refer to the following embodiments, which are not described herein again. The following describes in detail specific processes of acquiring, by a destination node, message content included in a received cross-chain message and verifying each cross-chain message, with reference to a plurality of specific embodiments.
In an embodiment, to ensure the privacy of the sent cross-link message and avoid the leakage of the content of the request, the source node may perform encrypted transmission on the cross-link message to be transmitted by using a digital envelope technology, where the request corresponds to a specific service that the source node needs to complete, and may be used to invoke an intelligent contract, and the message content may include related parameters, contract information of the invoked contract, functional information in the invoked contract, and the like. Specifically, the source node may sign the message content by using its own node private key, encrypt the message content and its signature by using a symmetric key, then encrypt the symmetric key by using the node public key of each destination node, and add the message content encrypted by the symmetric key, its signature, and a digital envelope composed of each symmetric key encrypted by the node public key of each destination node to the cross-link message. Correspondingly, any destination node receiving the cross-link message can decrypt the encrypted symmetric key contained in the request through the node private key of the destination node, further decrypt the encrypted symmetric key to obtain the message content and the signature, and then verify the signature through the node public key of the source node. If the verification passes, it indicates that the received message content is indeed sent by the corresponding source node (has not been tampered), so that the message content can be subsequently processed to return the corresponding cross-link message to the source blockchain network. Therefore, on one hand, the message content with relatively large data volume is encrypted by adopting the symmetric key, and the message content with relatively small data volume is encrypted by adopting the asymmetric key, so that the method not only is favorable for ensuring the relatively high encryption speed, but also can ensure the stricter data privacy of the encrypted message content. On the other hand, because the source node encrypts the symmetric key by using the node public key of each destination node in the destination block chain network, each destination node can decrypt the symmetric key by using the node private key thereof after receiving the cross-chain message, and further decrypt the message content by using the decrypted symmetric key, thereby realizing the effect of broadcasting the cross-chain message in the destination block chain network.
Taking fig. 4 as an example, in a scenario where the subnet1 sends a cross-chain message to the subnet2, the subnet1 is a source blockchain network, and the subnet2 is a destination blockchain network. Any sub-network node a1 in subnet1 may encrypt the symmetric key using the node public keys of the respective sub-network nodes nodeB2, nodeB2, nodeB2, and nodeB2 in subnet2 after encrypting the message content using the symmetric key, and include the encrypted symmetric key and the message content in a cross-chain message to send to subnet2 through subnet 0. After any subnet node (e.g., nodeA2) in subnet2 receives the cross-link message, it is determined that the subnet node is a legal receiver of the cross-link message when it is determined that the private key of the subnet node can decrypt the encrypted symmetric key in the cross-link message, and the decrypted symmetric key can be used to decrypt and obtain the message content.
It can be understood that, by using the digital envelope technology, the node public keys of a plurality of destination nodes can be used to encrypt the symmetric key, so that any source node can encrypt the blockchain message and include the blockchain message in the cross-chain message by using the public keys of all the destination nodes in the destination blockchain network, and then each destination node can decrypt the blockchain message in the cross-chain message according to the own node private key, thereby realizing the message cross-chain transmission effect that the source node broadcasts the cross-chain message to the destination nodes. Of course, under the condition of adopting the digital envelope manner, any source node may also encrypt the symmetric key in the cross-link message only by using the node public key of one (or more) destination node(s), thereby realizing the message cross-link transmission effect of unicast (or multicast) cross-link message from the source node to the destination node(s), and the specific process is not described again. In fact, the present specification does not limit the specific sending method of the cross-link message and the cross-link message, and details are not repeated, for example, the message content in the cross-link message is directly encrypted by using the node public key without using a digital envelope.
As described above, each source node in the source blockchain network may send (i.e., broadcast) a cross-chain message to each destination node in the destination blockchain network; alternatively, each source node may also send (i.e., unicast or multicast) a cross-link message to any one (or multiple) destination nodes in the destination blockchain network, and each destination node synchronizes the cross-link message received by itself to other destination blockchain networks in the destination blockchain network. Therefore, no matter the cross-chain message is sent in a broadcast mode; or the cross-link message is sent in a unicast or multicast mode and is synchronized in the network to which the receiver belongs, so that each destination node in the destination block chain network can be ensured to receive the cross-link message sent by at least one source node in the source block chain network.
In an embodiment, the source blockchain network may be a blockchain subnet managed by a blockchain master network, the blockchain master network may maintain node identity information of each source node in the active blockchain network, and the cross-chain message may include identity identification information used to characterize a node identity of the source node that sends the cross-chain message, at this time, each destination node that receives the cross-chain message may query the blockchain master network for the node identity information of the source node that sends the cross-chain message, so as to check the identity identification information, and respond to the cross-chain message when the check is passed.
Taking fig. 4 as an example, the blockchain master network subnet0 may maintain node identity information of each subnet node in the blockchain subnets subnet1 and subnet 2. It can be understood that the cross-chain message sent by the source node nodeb1 and received by the destination node nodeb2 may include identification information of nodeb1, so that the nodeb2 may determine that the source node corresponding to the request (i.e., the sender of the request) is nodeb1, and thus the nodeb2 may query the blockchain main network subnet0 for node identity information of nodeb1, and determine whether nodeb1 is a legitimate source node according to the node identity information returned by subnet 0. The node identity information stored in the subnet0 may include a network address, a port, a node public key, and/or a node identifier of the node. Taking the node public key as an example, the nodeA2 may send a query request including the node public key of the nodeA1 carried in the cross-link message to the master network node nodeA in the subnet0, at this time, the nodeA may query whether the node public key of the nodeA1 exists in the node public keys of the subnet nodes maintained locally (included in each block chain subnet established based on the subnet 0), and return a corresponding query result to the nodeA2, so that the nodeA2 may implement verification of the node public key of the nodeA1 according to the query result. If the node public key of nodeA1 is inquired, the check is passed, that is, the nodeA1 is really the trusted sender of the cross-chain message received by nodeA2, so that nodeA2 can further respond to the cross-chain message; otherwise, if the node public key of nodeA1 is not queried, the check is failed, that is, nodeA1 is not trusted, and at this time, nodeA2 may directly discard the cross-chain message sent by nodeA 1. In addition, in the case of failed verification, the nodeA2 may also record nodeA1 as an illegal source node, so that in the case of subsequently receiving the cross-chain message sent by nodeA1 again, the request may be directly discarded, thereby avoiding invalid processing and speeding up response. Of course, the nodeA2 can also synchronize illegal records of nodeA1 to other destination nodes in subnet 2.
In the foregoing embodiment in which the source blockchain network is a blockchain subnet, the destination blockchain network may also be a blockchain subnet, and then the master network node in the blockchain master network and the subnet node in the blockchain subnet managed by the blockchain master network may be deployed in the same node device, and the master network node and the subnet node on the node device may share a blockchain plugin running on the node device, at this time, after receiving the cross-chain message, each destination node may query node identity information of the source node through the blockchain plugin, for example, through the blockchain plugin shared with the master network node deployed on its own node device, read identity information of the source node (i.e., a sender of the cross-chain message) corresponding to the cross-chain message maintained by the master network node. Taking fig. 4 as an example, if the master node nodeb and the sub-network node nodeb2 are both deployed in the same node device (hereinafter referred to as node device a), the two may share a blockchain plug-in running on the node device a. At this time, the nodeb2 may query the node identity information of nodeb1 through the blockchain plug-in (of course, if the subnet node nodeb1 is also deployed in the node device a, the nodeb1 may also query the node identity information of nodeb2 through the blockchain plug-in). The blockchain plug-in may be a plug-in deployed in a blockchain main network and used for invoking a subnet management contract, and any blockchain node may query node identity information of the subnet node in a manner that a corresponding main network node sends a transaction (for example, reads subnet node information maintained by the subnet management contract) for invoking the subnet management contract in subnet 0. Of course, to ensure query speed, the transaction may be a transaction that does not require consensus. Obviously, under the condition that network nodes belonging to different blockchain networks are deployed in the same node device, the blockchain plug-ins of the node device are shared by all the nodes, so that the efficient multiplexing of the blockchain plug-ins can be realized, the number of the blockchain plug-ins needing to be deployed in the node device is effectively reduced, the configuration of the node device and the deployment process of the blockchain nodes are facilitated to be simplified, and the deployment efficiency of the blockchain nodes and the management efficiency of the node device are improved. In fact, different block link points deployed in the same node device may also share other functional plug-ins, such as the aforementioned P2P plug-in example, consensus plug-in example, and/or service example, and are not described again.
In the foregoing embodiment in which the source blockchain network is a blockchain subnet, a subnet management contract may be deployed on the blockchain main network, where the subnet management contract is used to maintain node identity information of subnet nodes in each blockchain subnet established based on the blockchain main network; at this time, any destination node may read the node identity information of any source node maintained by the subnet management contract, for example, after receiving the cross-link message, may read the identity information of the source node corresponding to the cross-link message (i.e., the sender of the cross-link message). Taking fig. 4 as an example, because subnet1 to which subnet node nodeA1 belongs and subnet2 to which subnet node nodeA2 belongs are both established on the basis of subnet0, the subnet management contract deployed in subnet0 may be used to manage node identity information of each subnet node in subnet1 and subnet2, and further any destination node may also read node identity information of any source node maintained by the subnet management contract, for example, nodeA2 may read node identity information of nodeA 1. The node identity information of the subnet nodes is maintained through a subnet management contract deployed in the blockchain main network, and efficient management of the node identity information can be guaranteed. And the subnet nodes in the blockchain subnet directly read the node identity information maintained by the subnet management contract, so that the acquisition process of the node identity information does not need the consensus process of the main network nodes in the blockchain main network, and the acquisition efficiency of the node identity information is improved.
In the foregoing embodiment in which the source blockchain network is a blockchain subnet, the identification information of any subnet node may include a node identifier declared by the subnet node and a subnet identifier of the blockchain subnet to which the subnet node belongs; at this time, each destination node may respectively query the blockchain master network whether the node identifier and the subnet identifier declared by the source node that sends the cross-chain message match. Taking fig. 4 as an example, the node identity information contained in the cross-chain message sent by the subnet node nodeb1 to nodeb2 may include the node identifier of nodeb1 and the subnet identifier of subnet 1. Therefore, after receiving the cross-chain message sent by the nodeb1, the nodeb2 may query the subnet0 whether the node identifier and the subnet identifier declared by the nodeb1 match, for example, the nodeb2 may query the main network node a whether the subnet identifier maintained by the main network node a includes the subnet identifier of the subnet1, and if so, further query whether the node identifier of the nodeb1 is included in all the node identifiers corresponding to the subnet identifier of the subnet 1: if the node identifier of the node nodeA1 is included, it indicates that the node identifier declared by the nodeA1 matches with the subnet identifier, and further indicates that the chain crossing message received by the nodeA2 is indeed sent by the nodeA1, so that the nodeA2 can further respond to the message; otherwise, if the node id of nodeA1 is not included, it indicates that the node id declared by nodeA1 and the subnet id do not match, and further indicates that the cross-link message received by nodeA2 may be a false request sent by another node, so that the response to the message may be terminated, such as directly discarding the message. By the method, the node identity information of each subnet node maintained in the block chain main network can be fully utilized to verify the cross-chain message sent by the source node, so that the validity of the cross-chain message actually processed by the target node is ensured.
In the foregoing embodiment in which the source block chain network is a block chain subnet, the identification information of any subnet node may also include a signature generated by the subnet node based on its own node private key; therefore, each destination node can respectively query the block chain master network for the node public key of the source node sending the cross-chain message, and adopt the node public key to verify the signature. Taking fig. 4 as an example, the subnet node nodeb1 may generate a signature for the message content contained in the cross-chain message (or for the cross-chain message) based on its own node private key, and include the signature in the cross-chain message (or send in association with the cross-chain message) to the subnet node nodeb2, so that nodeb2 may query the subnet0 for node identity information of nodeb1 to check the signature, such as checking the signature according to the node public key of nodeb1 queried from the subnet 0. Correspondingly, under the condition that the signature passes, the cross-chain message can be further responded; in the event of a failed signature verification, the response to the cross-chain message may be terminated, such as the cross-chain message may be directly discarded or even nodeA1 may be recorded as an illegal node.
As described above, because multiple inter-link messages received by any destination node are all sent by the same source node, under the condition that there is no illegal node in the source block link network and the destination block link network, multiple inter-link messages acquired by any destination node should contain the same message content. Therefore, for a plurality of cross-link messages received by any destination node, the destination node may first compare message contents included in each cross-link message, and check the cross-link messages including the same message content by using the checking method described in the foregoing embodiments. Alternatively, the destination node may also check multiple cross-link messages containing the same message content by using multiple fault-tolerant algorithms such as a PBFT algorithm and a honeybadgebft algorithm, which is only described below by taking the example that nodeA2 uses the PBFT fault-tolerant algorithm in conjunction with the scenario shown in fig. 4. As can be seen from fig. 4, the subnet1 serving as the source blockchain network includes four subnet nodes, that is, nodeA1, nodeB1, nodeC1 and nodeD1 (the total number of nodes is 3f +1 ═ 4, that is, f ═ 1), so that if the nodeA2 receives a legal interlink message sent by at least f +1 (that is, 2) source nodes and includes the same message content, it can be determined that the interlink messages pass the fault-tolerant check. Of course, in the practice of the solution, the total amount of the nodes and the number of messages received in the cross-chain message may also be other values, and this specification does not limit this. Wherein the cross-chain message (containing the same message content) passing the above check is used to construct the reconstructed message.
Further, in all the interlinkage messages received by the destination nodes, if all or part of the interlinkage messages pass the check of the destination nodes, the destination nodes may adopt the interlinkage messages passing the check to construct the reconstruction message. For example, any destination blockchain network may extract message content contained in a cross-chain message received by itself and passing verification (the message content of each cross-chain message is the same), generate a destination node signature for the message content by using a node private key of itself, and then generate a reconstructed message containing the message content and the destination node signature. After the reconfiguration message is generated, the destination blockchain network may broadcast the reconfiguration message in the destination blockchain network, so that other destination nodes may obtain the reconfiguration message. It can be understood that each reconfiguration message in the destination block chain network generates and broadcasts a corresponding reconfiguration message by using the received cross-chain message passing the verification, so that each destination node can receive reconfiguration messages generated by other destination nodes.
Step 606, under the condition that any destination node determines that the signature number of the destination node signature included in any received reconstruction message passes the Byzantine fault-tolerant check, generating a block chain transaction according to any reconstruction message and submitting the block chain transaction to the destination block chain network for consensus.
After acquiring the reconstruction message broadcast by other nodes, each destination node in the destination block chain network can verify the acquired reconstruction message, add a destination node signature generated by itself (using its own node private key) to the reconstruction message after the verification is passed, and continue to broadcast the reconstruction message to other destination nodes in the destination block chain network. As described above, the reconstructed message includes the message content of the cross-chain message used to construct the reconstructed message and the destination node signature generated by the destination node (i.e., the constructor of the reconstructed message) that constructs the reconstructed message, so the verification process for any reconstructed message may include the verification process for the destination node signature included in the reconstructed message; of course, if the reconfiguration message further includes a source node signature performed by the source node on the cross-link message in which the message content in the reconfiguration message is located, the verification process of the destination node on any reconfiguration message may further include a verification process of the source node signature included in the reconfiguration message, and a specific verification process may refer to the following embodiments, which is not described herein again. It can be understood that, for any reconstructed message, the above-mentioned processing procedure of "receiving reconstructed messages broadcast by other nodes — verifying the reconstructed message by adding a self-generated destination node signature after passing through verification of the self-generated destination node signature — continuing to broadcast the reconstructed message after adding the self-generated destination node signature" may be performed in sequence by a plurality of destination nodes in the source block chain network; and under the condition that any destination node finds that any reconstruction message received by the destination node contains the destination node signature generated by the destination node, the destination node indicates that the destination node has already processed the reconstruction message, so that the reconstruction message can be directly discarded, and repeated processing is avoided.
It can be seen that, each time any reconstructed message is broadcast in the destination block chain network, a new destination node signature is added, so that each destination node receiving the reconstructed message can perform byzantine fault-tolerant check on the reconstructed message, for example, the reconstructed message can be subjected to the byzantine fault-tolerant check according to the number of signatures of destination node signatures included in the received reconstructed message and the total number of destination nodes included in the destination block chain network, and any destination node can generate block chain transactions according to the reconstructed message and submit the block chain transactions to the destination block chain network for consensus when any reconstructed message passes the check. Still taking fig. 4 as an example, the destination node nodeb2 may determine a total number of nodes (i.e., 3f +1) of the subnet2 where the destination node nodeb is located, and then may verify any reconstruction message broadcasted by other destination nodes, and add a destination node signature generated by itself to the reconstruction message after the verification is passed, and further determine whether a signature number of the destination node signature included in the current reconstruction message satisfies (is not less than) the first threshold value f +1 corresponding to the total number of nodes, and generate a block chain transaction based on the reconstruction message when the signature number satisfies (i.e., the reconstruction message is already approved by f +1 destination nodes). Alternatively, to further increase the processing speed, the destination node nodeb2 may determine the signature number of the destination node signature included in the reconstruction message after receiving any reconstruction message broadcast by another destination node, and determine whether the signature number satisfies (is not less than) the second threshold value f corresponding to the total number of nodes, and if the signature number satisfies (i.e., the reconstruction message is already approved by f destination nodes), the destination node may generate the block chain transaction based on the reconstruction message if the reconstruction message passes the verification (at this time, the number of destination nodes that pass the verification of the reconstruction message satisfies f + 1). In this way, when the nodeC2 determines that the reconstructed message satisfies the preset condition, it is not necessary to add a destination node signature generated by itself to the reconstructed message, which is helpful to further increase the processing speed.
In an embodiment, each destination node in the destination blockchain network may verify the received reconfiguration message by using node public keys of other destination nodes. For example, each destination node may verify a destination node signature included in the received reconfiguration message by using a node public key of another destination node maintained by the destination node. Taking fig. 4 as an example, it can be understood that any destination node in subnet2 locally maintains the node public key of other destination nodes, and correspondingly, each other destination node locally also maintains the node public key of the destination node. For example, after the nodeA2 adds the destination node signature generated by using its own node public key to the reconstructed message and broadcasts the reconstructed message, the other destination nodes (nodeB2, nodeC2, and nodeE2) that receive the reconstructed message may respectively verify (i.e., check) the destination node signature added by the nodeA2 included in the reconstructed message by using the node public key of the locally maintained nodeA 2. Similarly, when the nodeB2 verifies the reconfiguration message, the destination node signature generated by using its own node public key may be added to the reconfiguration message, and if it is determined that the current signature number cannot pass the byzantine fault-tolerant check, the broadcast is continued, so that the nodeB2 and nodeB2 may check the destination node signature added by the nodeB2 and nodeB2, respectively, according to the locally maintained node public keys of nodeB2 and nodB2 after receiving the reconfiguration message, add the destination node signature generated by themselves when the check passes, and further determine whether the current reconfiguration message can pass the byzantine fault-tolerant check: if the reconstruction message passes, generating a block chain transaction according to the reconstruction message; otherwise, if not, the reconfiguration message may continue to be broadcast. Of course, if the nodeA2 receives the above reconstruction message broadcast by the nodeB2 again, it finds that the reconstruction message contains the destination node signature added by itself, so that the reconstruction message can be directly discarded, and the destination node signature of the nodeA2 is prevented from being repeatedly added.
In another embodiment, the source blockchain network may be a blockchain subnet managed by a blockchain master network, where the blockchain master network may maintain a node public key of each destination node in the destination blockchain network, and the reconstructed message may further include, in addition to the message content and the destination node signature, a source node signature (i.e., a source node signature carried by each cross-chain message corresponding to the message content included in the reconstructed message) respectively carried in each cross-chain message received by the destination node that constructs the reconstructed message (i.e., the source node signature carried by each cross-chain message corresponding to the message content included in the reconstructed message). For example, each destination node may respectively query the blockchain master network for the node public key of the source node indicated by the received reconfiguration message, and verify the source node signature included in the received reconfiguration message by using the queried node public key. For the specific obtaining manner and the verifying manner of the node public key, reference may be made to the detailed description of the foregoing embodiments, and details are not described herein again. In this embodiment, after receiving the reconfiguration message, any destination node verifies the destination node signature added to the destination node included in the reconfiguration message, and also verifies the source node signature included in the reconfiguration message through the node public key of the corresponding source node in the source blockchain network acquired from the blockchain main network, thereby implementing double verification of the reconfiguration message, further ensuring the reliability of the reconfiguration message used for generating the blockchain transaction, and avoiding inconsistency of processing results of cross-link messages possibly caused by false signatures even on the contents of the reconfiguration message by illegal nodes (bypath nodes) inside the destination blockchain network.
In an embodiment, the blockchain transaction may include data to be processed (for example, the data to be processed may be the message content or is included in the message content), and at this time, each destination node may check the blockchain transaction submitted by another destination node according to first data to be processed included in the cross-chain message acquired by itself and second data to be processed included in the blockchain transaction submitted by another destination node, and perform consensus on the blockchain transactions that pass the check. For example, each destination node in the destination blockchain network may use the to-be-processed data carried in the received cross-chain message (i.e., contained in the message content of the cross-chain message) as the first to-be-processed data (as described above, the cross-chain message received by the same destination node or the cross-chain message passing through the fault-tolerant check carries the same to-be-processed data). Each destination node submits the blockchain transaction generated by the destination node to other destination nodes in the destination blockchain network, so that the to-be-processed data extracted from received blockchain messages submitted by other destination nodes can be used as second to-be-processed data. And then, by comparing whether the first data to be processed and the second data to be processed are the same, the block chain transaction submitted by other destination nodes is verified: under the condition that the first to-be-processed data is the same as the second to-be-processed data, the blockchain transaction can be determined to pass verification; otherwise, under the condition that the first to-be-processed data is different from the second to-be-processed data, the blockchain transaction is determined not to pass the verification.
Or, in order to improve the verification efficiency of the blockchain transaction generated by other destination nodes, the blockchain transaction generated by any destination node may further include the hash of the to-be-processed data, so that the other destination nodes may use the hash as the second hash, and use the hash of the to-be-processed data included in the received cross-chain message as the first hash. And then, by comparing whether the first hash and the second hash are the same, the block chain transaction submitted by other destination nodes is verified: if the first hash is the same as the second hash, the block chain transaction can be determined to pass verification; otherwise, if the first hash is different from the second hash, it may be determined that the blockchain transaction is not verified. In general, the data volume of the data to be processed is much larger than that of the hash, so that the verification efficiency can be effectively improved by comparing the hashes.
It will be appreciated that for each reconstructed message reconstructed by each destination node, only reconstructed messages that pass the aforementioned byzantine fault tolerance check will be used by the corresponding destination node (i.e., the target node that performed the byzantine fault tolerance check on the reconstructed message) to generate the blockchain transaction. For any generated blockchain transaction, each destination node can adopt the aforementioned workload certification, right of stock certification, delegation rights certification, practical Byzantine fault-tolerant algorithm, HoneyBadgerBFT algorithm and the like for consensus, and the specific process is not repeated.
In step 608, each destination node performs the same blockchain transaction among the plurality of blockchain transactions through the common identification.
Because each destination node in the destination block chain network constructs a reconstruction message according to the cross-chain message which is obtained by the destination node and passes the verification, and generates a block chain transaction according to the reconstruction message under the condition that the reconstruction message passes the Byzantine fault-tolerant check, a plurality of block chain transactions corresponding to the cross-chain message may be identified in the destination block chain network, but in order to ensure the consistency of the execution results of the block chain transactions, each destination node is required to execute the same block chain transaction passing the identification, so that the same service effect is realized. In order to ensure that each destination node in the destination blockchain network respectively executes the same blockchain transaction through consensus, each destination node can respectively execute the first blockchain transaction through consensus in the destination blockchain network. Alternatively, the blockchain transaction generated first in the consensus blockchain transactions may be executed separately, for example, each destination node may ensure that the executed blockchain transaction is the first blockchain transaction generated according to the timestamp carried by the blockchain transaction. After any destination node performs the above blockchain transaction, the processing procedure for other blockchain transactions may be terminated. For example, if any blockchain transaction carries a request identifier, the destination node may not execute the new blockchain transaction (i.e., does not execute the contract code related to the specific service) when receiving the new blockchain transaction carrying the same request identifier as the executed blockchain transaction. Certainly, the destination node may also receive a plurality of blockchain transactions carrying the same request identifier in a short time, and perform processing such as checking, execution and the like on each transaction in sequence according to the time sequence of receiving each transaction, so that the processing progress of each blockchain transaction may be different, and after the first blockchain transaction is executed, the destination node may immediately terminate the execution process for other blockchain transactions, so as to ensure that only the first blockchain transaction is smoothly executed, thereby maintaining a consistent transaction execution result with other destination nodes, and reducing computational power loss caused by invalid processing.
Because the source blockchain network may participate in the processing of multiple cross-chain requests at the same time (e.g., each source node generates multiple cross-chain messages in a short time), and the destination blockchain network may respond to multiple cross-chain messages at the same time (e.g., when the response process for the first cross-chain message has not ended, the second cross-chain message is received), in order to avoid confusion between different cross-chain messages or different reconfiguration messages, the association between the cross-chain messages and the reconfiguration messages may be implemented through request identification. For example, in the case where the cross-chain message is generated by the source node executing an intelligent contract, the source node may use the contract identifier of the intelligent contract as the request identifier of the cross-chain message; or, in the case that the cross-link message is generated by the source node executing a certain contract task defined in the intelligent contract, the source node may use a task identifier of the contract task as a request identifier of the cross-link message, and further, a reconfiguration message generated by the destination node in response to each received cross-link message also includes the request identifier of the request, so as to ensure that the cross-link message sent by each source node and the reconfiguration message generated by each destination node both include the request identifier. Namely, each cross-chain message sent by each source node aiming at the same intelligent contract (or contract task) is associated through the request identifier, and each reconstruction message generated by each target node responding to each cross-chain message corresponding to the request identifier is associated through the request identifier, so that the association of all cross-chain messages and all reconstruction messages corresponding to the same intelligent contract (or contract task) is realized, and the effective distinguishing between different cross-chain messages or different reconstruction messages is facilitated.
Of course, the blockchain transaction generated by the destination node based on any reconstruction message may also include the request identifier carried by the reconstruction message, so that the association among the cross-chain message, the reconstruction message, and the blockchain transaction is realized through the same request identifier. It should be noted that the cross-chain message, the reconfiguration message, and the blockchain transaction described in the foregoing embodiments of the present specification are all the cross-chain message, the reconfiguration message, and the blockchain transaction corresponding to the same request identifier. Correspondingly, the destination blockchain network may maintain a request identifier set, where the request identifier set is used to record the request identifier carried in the executed blockchain transaction in the destination blockchain network at the current time. Thus, any destination node may perform a blockchain transaction through consensus by: after determining that a certain blockchain transaction passes consensus, the destination node may extract a target request identifier included in the message, then query the target request identifier in a locally maintained request identifier set, and execute the blockchain transaction if the query result indicates that the target request identifier is not recorded in the request identifier set. It can be understood that, if the request identifier set includes a target request identifier, it indicates that none of the blockchain transactions (generated by a plurality of destination nodes, respectively) corresponding to the target request identifier are executed, and therefore the destination node only needs to execute the blockchain transaction to implement a response to the cross-chain message. Of course, after any destination node completes the execution of the blockchain transaction, the target request identifier may be added to the request identifier set, so as to ensure that other blockchain transactions corresponding to the target request identifier are not repeatedly executed.
In an embodiment, the message content may include data to be processed, and the cross-chain message may be created by a destination node invoking an intelligent contract deployed in a destination blockchain network; correspondingly, the destination node can respond to the cross-link message to call an intelligent contract task callback method so as to return the data to be processed to the intelligent contract. In the embodiment of accepting the automatic login user account, it is assumed that the destination node executes an intelligent contract for implementing login of the user account, but the destination node does not locally store the user account and the login password, so that the destination node may generate a cross-link message for acquiring the user account and the login password, and after the source node in the source block link network returns the cross-link message in response to the request, the destination node may implement automatic login of the user account according to the user account and the login password included in the cross-link message. At this time, the user account and the login password are the data to be processed, and the destination node returns the user account and the login password to the intelligent contract for realizing the service function.
Further, since the request identifier included in the executed blockchain transaction is recorded in the request identifier set, in order to avoid invalid responses to the acquired cross-chain messages and invalid processing of the acquired reconfiguration messages, any target node may query whether the request identifier included in the cross-chain message or the reconfiguration message is recorded in the request identifier set after acquiring any cross-chain message or any reconfiguration message. Furthermore, in the case that it is determined that any request identifier included in the cross-chain message is recorded in the request identifier set, the response process for the cross-chain message may be terminated; alternatively, when it is determined that the request identifier included in any reconfiguration message is recorded in the request identifier set, the processing procedure for the reconfiguration message may be terminated.
In an embodiment, the same intelligent contract may be deployed in the source blockchain network and the destination blockchain network, the cross-chain message may include data to be processed, and the cross-chain message may be created by invoking, by the source node, the intelligent contract deployed in the source blockchain network; accordingly, the source node can call an intelligent contract task callback method in response to the cross-chain message to return the data to be processed to the locally deployed intelligent contract. For example, the above-mentioned intelligent contract may be used to update local data with pending data, or may also be used to implement other business functions, such as participating in privacy computation, using the pending data obtained by the callback method.
Through the embodiment, after the target node in the target block chain network respectively acquires the cross-chain message generated by the source node in the source block chain network, the reconstruction message is constructed according to the cross-chain message passing the verification and the signed reconstruction message is broadcast in the target block chain network, other target nodes receiving the reconstruction message carry out signing again and continue broadcasting after passing the verification until any source target node passes the Byzantine fault-tolerant check of the reconstruction message according to the total amount of the target nodes and the signed number of the target node signature contained in the reconstruction message (indicating that enough target nodes approve the reconstruction message at the moment), block chain transaction is generated according to the reconstruction message and common identification is submitted, and then the same block chain transaction is executed by each target node. On one hand, the reconstruction message is verified and signed for many times through a plurality of destination nodes, so that the reconstruction message for generating the block chain transaction is ensured to be recognized together by enough destination nodes; on the other hand, the consistency of the cross-chain messages processed by each destination node and the processing results is effectively ensured by executing the same blockchain transaction by each destination node, and the problems are solved.
To this end, a complete description of the processing procedure for a destination node in a destination blockchain network to respond to a cross-chain message sent by a source blockchain network is completed. In fact, each destination node may also return a response message to the source blockchain network in response to the cross-chain message (that is, the destination blockchain network uses the cross-chain message sent by the source blockchain network as a cross-chain request initiated by the source blockchain network), or return a response message to the source blockchain network after performing the blockchain transaction, where the response information included in the response message may be a response result of the destination node to the cross-chain message or an execution result of the blockchain transaction, and the source node may perform a corresponding operation according to the response information. The following describes the acquisition, verification and subsequent processing of the response message by the source node.
In an embodiment, to ensure the privacy of the sent response message and avoid the leakage of the response message, any destination node may encrypt and transmit the response message to be transmitted by using a digital envelope technology. For a specific transmission method, reference may be made to the descriptions of the foregoing embodiments, and details are not repeated here.
The destination node in the destination block chain network may send (i.e., broadcast) a response message to each source node in the source block chain network, or each destination node may also send (i.e., unicast or multicast) a response message to any one (or more) source nodes in the source block chain network, and each source node synchronizes its received response message to other source block chain nodes in the source block chain network. Therefore, whether the response message is sent in a broadcast mode or sent in a unicast or multicast mode and is synchronized in the network to which the receiving party belongs, each source node in the source block chain network can be ensured to receive the response message sent by at least one destination node in the destination block chain network. Any destination node can use the broadcast mode (the digital envelope uses the node public key of each subnet node in the source block chain network to encrypt the symmetric key) described in the foregoing embodiment, and can also determine the sender of the cross-chain message according to the cross-chain message received by itself, and further only return a corresponding response message to the sender. For example, after receiving the cross-chain message sent by the source node nodeB1 in the subnet1 in a unicast manner, the destination node nodeB2 in the subnet2 may return a corresponding response message only to the nodeB1, and synchronize the response message to other source nodes such as nodeB1, nodeB1, and nodeB1 in the source block chain network by the nodeB1 after receiving the response message. Obviously, the two manners can ensure that each source node in the source block chain network receives the response message returned by each destination node in the destination block chain network.
In an embodiment, the destination blockchain network may be a blockchain subnet managed by a blockchain master network, where the blockchain master network maintains node identity information of each destination node in the destination blockchain network, the response message includes identity information used to characterize a node identity of the destination node returning the response message, and correspondingly, each source node may respectively query the blockchain master network for the node identity information of the destination node included in the return response message to check the identity information, and generate a blockchain transaction according to the response message passing the check.
Still taking fig. 4 as an example, after receiving the response message returned by the nodeA2, the nodeA1 may also request the a in the subnet0 to query the node identity information of the nodeA2 according to the identity information of the nodeA2 carried in the response message, so as to verify the identity information of the nodeA 2. If the check is passed, it indicates that the nodeb2 is indeed the trusted sender of the response message received by nodeb1, so that nodeb1 may further perform subsequent processing, such as generating a blockchain transaction according to the received response message (for a specific generation process, see the following embodiments, which are not described herein for brevity). Otherwise, if the check is not passed, it indicates that nodeA2 is not authentic, and at this time, nodeA1 may directly discard the response message. Of course, in the case that the verification fails, the nodeb1 may also record nodeb2 as an illegal destination node, so that in the case that a response message returned by nodeb2 is received again in the following, the information may be directly discarded, thereby avoiding invalidation processing and speeding up the response. Of course, in the case of sending the cross-chain message in unicast, if the nodeA1 records nodeA2 as an illegal destination node, nodeA1 may refuse to send the cross-chain message to nodeA2, and may even synchronize the illegal recording of nodeA2 to other source nodes in subnet 1.
In the foregoing embodiment in which the destination blockchain network is a blockchain subnet, when a main network node in a blockchain main network and a subnet node in a blockchain subnet managed by the blockchain main network are deployed in the same node device, the main network node and the subnet node on the node device may share a blockchain plug-in running on the node device, and at this time, the source node may query node identity information of the destination node through the blockchain plug-in, for example, the node identity information of the destination node maintained by the main network node may be read through the blockchain plug-in shared with the main network node deployed on its own node device. The specific reading method can be found in the related description of the foregoing embodiments. Obviously, under the condition that network nodes belonging to different blockchain networks are deployed in the same node device, the blockchain plug-ins of the node device are shared by all the nodes, so that the efficient multiplexing of the blockchain plug-ins can be realized, the number of the blockchain plug-ins needing to be deployed in the node device is effectively reduced, the configuration of the node device and the deployment process of the blockchain nodes are facilitated to be simplified, and the deployment efficiency of the blockchain nodes and the management efficiency of the node device are improved. In fact, different block link points deployed in the same node device may also share other functional plug-ins, such as the aforementioned P2P plug-in example, consensus plug-in example, and/or service example, and are not described again.
In the foregoing embodiment in which the destination blockchain network is a blockchain subnet, a subnet management contract may be deployed on the blockchain main network, where the subnet management contract is used to maintain node identity information of subnet nodes in each blockchain subnet established based on the blockchain main network; at this time, the source node may read the node identity information of the destination node maintained by the subnet management contract. Taking fig. 4 as an example, because the subnet1 to which the subnet node nodeA1 belongs and the subnet2 to which the subnet node nodeA2 belongs are both established on the basis of the subnet0, the subnet management contract deployed in the subnet0 can be used to manage the node identity information of each subnet node in the subnet1 and the subnet2, and further the nodeA1 can read the node identity information of the nodeA2 maintained by the subnet management contract. The node identity information of the subnet nodes is maintained through a subnet management contract deployed in the blockchain main network, and efficient management of the node identity information can be guaranteed. The node identity information of the destination node maintained by the subnet management contract is directly read by the source node, so that the process of acquiring the node identity information does not need the process of consensus of the main network nodes in the block chain main network and the like, and the efficiency of acquiring the node identity information is improved.
In the foregoing embodiment in which the destination blockchain network is a blockchain subnet, the identification information of any subnet node may include a node identifier declared by the subnet node and a subnet identifier of the blockchain subnet to which the subnet node belongs; at this time, the source node may query the blockchain master network whether the node identifier and the subnet identifier declared by the destination node match. Taking fig. 4 as an example, after receiving the response message returned by the nodeb2, the nodeb1 may query the subnet0 whether the node identifier and the subnet identifier declared by nodeb2 match, and then perform corresponding processing according to the query result, for example, in the case that the two match, generate a blockchain transaction according to the received response message; or under the condition that the two are not matched, the direct discarding of the response message is terminated, and the like, which is not described in detail. By the method, the node identity information of each subnet node maintained in the block chain main network can be fully utilized to verify the response message sent by the subnet node, so that the validity of the subsequently processed message is ensured.
In the foregoing embodiment in which the destination blockchain network is a blockchain subnet, the identification information of any subnet node may also include a signature generated by the subnet node based on its own node private key; at this time, querying the node identity information of the destination node from the blockchain master network to check the identity information carried in the response message may include: the source node that receives the response message may query the blockchain master network about the node public key of the destination node that sends the response message, and use the node public key to verify the signature of the destination node included in the response message. Taking fig. 4 as an example, after receiving the response message returned by the nodeA2 and the signature of the corresponding destination node, the nodeA1 may request the subnet0 to acquire the node public key of the nodeA2 and check the signature, and further perform corresponding processing according to the result of checking the signature: when the signature passes, subsequent processing, such as block chain transaction generation, can be performed according to the response message; in case of a failed signature verification, the response to the response message may be terminated, e.g. the response message may be directly discarded or even nodeA2 may be recorded as an illegal node. Of course, in the case where nodeA2 records as an illegal node, nodeA1 may not send the cross-chain message to nodeA2 after subsequent generation of the cross-chain message again (e.g., symmetric keys are not encrypted using the node public key of nodeA2 in the aforementioned digital envelope), thereby avoiding invalid transmission.
As described above, since the multiple response messages received by any source node are generated by the destination node in response to the cross-link message sent by the source node, the multiple response messages received by any source node should include the same response information in the case that there is no illegal node in the source blockchain network and the destination blockchain network. Therefore, for a plurality of response messages received by any source node, the source node may compare the response information included in the respective response messages and check the response messages including the same response information. Or, the source node may also check multiple response messages containing the same response information by using multiple fault-tolerant algorithms such as a PBFT algorithm, a honeybadgebft algorithm, and the like, and the specific process is not described again. Of course, in the practice of the solution, the total amount of the nodes and the number of messages received in the cross-chain message may also be other values, and this specification does not limit this. Wherein the response message (containing the same message content) passing the verification is used for subsequent processing, such as generating a blockchain transaction.
As described above, each destination node in the destination block chain network returns a response message containing the same request identifier to the source block chain network, so that each source node acquires the response message. Because each destination node generates a response message according to the cross-chain message containing the same message content, or generates a response message after performing the blockchain transaction containing the same message content, each response message received by each source node contains the same response message, and each destination node needs to respond to any response message.
The process of responding to the response message includes generating and executing the blockchain transaction according to the response message (obviously, the blockchain transaction generated by the source node is different from the blockchain transaction generated by the source node in the foregoing embodiment). In order to ensure the reliability of the blockchain transaction executed by each source node, the response message returned by the destination node can be processed in various ways. One mode is 'decentralized verification and separate proposal', namely, each source node respectively carries out Byzantine fault-tolerant verification on each received response message and respectively generates block chain transaction according to the verified response message; the other mode is 'decentralized verification and centralized proposal', namely, each source node respectively verifies any received response message and adds a self-generated source node signature, and then, under the condition that the number of the source node signatures of any response message can pass the Byzantine fault-tolerant check, any source node generates the block chain transaction according to the response message. Two modes are described below:
(1) distributed verification and distribution proposal
It should be noted that, in this embodiment, a plurality of response messages acquired by any source node all include the same request identifier. In this embodiment, after acquiring any response message, the source node may first verify whether the response message is legal, determine the number of response messages that are verified to be legal and contain the same response information, and generate a blockchain transaction using the response message that passes the byzantine fault-tolerant check and submit the blockchain transaction to the source blockchain network for consensus under the condition that the number of the messages and the total number of nodes of the destination node in the destination blockchain network enable the response message to pass the byzantine fault-tolerant check.
In one embodiment, D1 may first verify whether each response message it acquires is legal. For example, for any response message, if the response message includes a signature of a destination node that generates the response message (i.e., a generator of the response message), the source node may obtain a node public key of the destination node, and use the node public key to verify the signature: if the signature check passes, the response message is legal; otherwise, the response message is not legal, and the response message can be directly discarded. In the case that the target blockchain network is a blockchain subnet managed by the blockchain master network, the blockchain master network may maintain information such as an IP address, a port, a node public key, and a node identifier of a subnet node of each blockchain subnet created based on the blockchain master network, so that the source node may query the blockchain master network for the node public key of the target node. Or, in the case that the response message includes the subnet identifier of the destination blockchain network and the node identifier of the destination node, the source node may also query the blockchain master network whether the node identifier exists under the subnet identifier: if yes, the response message and the destination node are legal; otherwise, the response message or the destination node is not legal, and the response message can be directly discarded.
As described above, in a normal situation where there is no rogue node in the source blockchain network and the destination blockchain network, all response messages including the same request identifier should include the same response information, so that any source node may compare whether the response information included in the multiple legitimate response messages acquired by the source node is the same. Obviously, if the response information contained in the multiple legal response messages is the same, it indicates that the response information in each response message has not been tampered; otherwise, a response message indicating that the response information is different from the response information in the other response messages (usually the other majority) may be tampered, and the response message may be discarded directly.
In the case that all the above checks pass, the source node may further perform a byzantine fault-tolerant check on a valid response message containing the same response information. For example, fault tolerance verification may be performed on the legal response messages which are acquired by the node and contain the same response information according to the number of the messages of the cross-link messages acquired by the node and the total number of the nodes of the destination node in the destination block link network. The source node may query the block chain master network for the total amount of nodes of the destination node in the destination block chain network. At this time, subnet information of the blockchain subnet maintained by the blockchain main network can be fully utilized, which is helpful for improving interaction efficiency. In addition, after inquiring the relevant information of the target node from the block chain main network, the source node can store the relevant information locally so as to avoid repeated inquiry in the subsequent processing process and further improve the interaction efficiency. Of course, in order to ensure the timeliness of the related information, an effective duration may be set for the locally stored related information, and the related information may be updated in time.
The above process is still described by taking fig. 4 as an example. Assuming that the source node nodeB1 receives response messages returned by the destination nodes nodeB2, nodeB2, nodeB2, and nodeB2, respectively, the nodeB1 may verify the response messages according to information such as destination node signatures carried in the response messages, respectively, to determine whether the response messages are valid; secondly, whether the response information contained in each legal response message is the same or not can be further compared to find out the legal response message containing the same response information; then, the byzantine fault tolerance check can be performed on the legal response messages containing the same response information according to the message quantity of the legal response messages and the total quantity of the nodes of the target block chain network inquired from the master network node. Since the destination blockchain network includes the destination nodes nodeA2, nodeB2, nodeC2 and nodeE2, the total number of nodes 3f +1 is 4 (i.e., f is 1), so the critical number f +1 is 2 — which indicates that if nodeA1 receives 2 legal response messages containing the same response information, the 2 legal response messages pass the bypath fault tolerance check.
In the case where the byzantine fault tolerance check passes, the source node may generate a blockchain transaction using a response message that passes the check. For example, it is not assumed that the number of nodes of the above legal response messages containing the same response information is 3, and since the 3 response messages contain the same response information, the source node may generate a blockchain transaction containing the response information and submit the blockchain transaction to the destination blockchain network for consensus. It can be seen that response messages (containing the same pending data) that pass the byzantine fault tolerance check are only used to generate blockchain transactions.
Obviously, the blockchain transaction generated by any source node needs to be broadcast to other source nodes, and the blockchain transaction generated by other source nodes is also broadcast to the source node, and any source node can verify the received blockchain transaction generated by other source nodes by using the response information or the hash of the response information.
For example, any source node may compare first response information included in a response message acquired by itself with second response information included in a blockchain transaction received by itself, and check the blockchain transaction: in the case that the first response message is the same as the second response message, it may be determined that the blockchain transaction is verified; otherwise, under the condition that the first response information is not the same as the second response information, determining that the blockchain transaction is not verified. Or, in order to improve the verification efficiency of the blockchain transaction generated by other source nodes, the blockchain transaction generated by any source node may also carry the hash of the response information, so that the source node may use the hash as the second hash, and use the hash of the response information carried in the response message received by the source node as the first hash. And then, by comparing whether the first hash and the second hash are the same, the check of the blockchain transaction broadcast by other source nodes is realized: in the case that the first hash is the same as the second hash, it may be determined that the blockchain transaction is verified; otherwise, under the condition that the first hash is not the same as the second hash, determining that the blockchain transaction is not verified. In general, the data volume of the response information is much larger than that of the hash, so that the verification efficiency can be effectively improved by comparing the hashes.
It can be seen that, if the process of generating the blockchain transaction and initiating the consensus is regarded as an "offer" process for the response message, in this embodiment, each source node in the source blockchain network respectively verifies the response message acquired by itself (i.e., decentralized verification), and each source node that passes the verification respectively generates the blockchain transaction and initiates the consensus using the verified response message (i.e., decentralized offer). Obviously, in the method, as many source nodes as possible can all initiate blockchain transactions corresponding to the same request identifier, and it is fully ensured that each source node can execute blockchain transactions, thereby completing a closed loop of response to a cross-chain message (i.e., a cross-chain request initiated by itself) sent by itself.
(2) Distributed verification and centralized proposal
It should be noted that, in this embodiment, a plurality of response messages acquired by any source node all include the same request identifier. After obtaining the response messages respectively returned by each destination node, any source node may check the response message obtained by itself, and construct a reconstruction message including the message content of the response message and the source node signature generated by itself according to the response message obtained by itself under the condition that the verification is passed (obviously, the reconstruction message in the scheme is different from the reconstruction message generated by the destination node according to the cross-link message in the foregoing embodiment), so that the reconstruction message may be broadcast to other source nodes in the source block-link network. It can be understood that each source node in the source blockchain network respectively performs the above operations, so that any source node can verify any reconstruction message broadcast by other source nodes after receiving the reconstruction message, add a source node signature generated by itself to the reconstruction message if the verification is passed, and continue to broadcast the reconstruction message to other source nodes in the source blockchain network. And generating a block chain transaction by any source node according to the received reconstruction message and submitting the block chain transaction to the source block chain network for consensus under the condition that the received reconstruction message passes the Byzantine fault-tolerant check according to the signature quantity of the target node signature contained in the received reconstruction message and the total quantity of the source nodes contained in the source block chain network by the source node.
The reconstruction message includes response information included in a response message used for constructing the reconstruction message and a source node signature generated by a source node (i.e., a constructor of the reconstruction message) which constructs the reconstruction message. It can be understood that, for any reconstructed message, the above-mentioned processing procedure of "receiving reconstructed messages broadcast by other nodes — verifying the reconstructed message by adding a self-generated source node signature after passing through verification-continuing to broadcast the reconstructed message after adding the self-generated source node signature" may be performed sequentially by a plurality of source nodes in the source block chain network; and when any source node finds that any reconstruction message received by the source node contains the self-generated source node signature, the source node indicates that the source node performs the above processing on the reconstruction message, so that the reconstruction message can be directly discarded.
The verification process of any source node on any reconstruction message can comprise a verification process of a source node signature contained in the reconstruction message; of course, if the reconfiguration message further includes a destination node signature performed by the destination node on the response message corresponding to the response information in the reconfiguration message, the verification process for any reconfiguration message may further include a verification process for the destination node signature, which is described below.
In an embodiment, each source node in the source blockchain network may verify the received reconfiguration message with the node public keys of other source nodes. For example, each source node may verify a source node signature included in the received reconfiguration message by using a node public key of another source node maintained by the source node. Taking fig. 4 as an example, it can be understood that any source node in the source block chain network locally maintains the node public key of other source nodes, and correspondingly, each other source node locally also maintains the node public key of the source node. For example, after the nodeA1 adds the source node signature generated by using its own node public key to the reconstructed message and broadcasts the reconstructed message, the other source nodes (nodeB1, nodeC1 and nodeD1) that receive the reconstructed message may respectively verify (i.e., check) the source node signature added by the nodeA1 contained in the reconstructed message by using the node public key of the locally maintained nodeA 1. Similarly, when the nodeB1 verifies the reconfiguration message, the source node signature generated by using its own node public key may be added to the reconfiguration message, and if it is determined that the current signature number cannot pass the byzantine fault-tolerant check, the broadcast is continued, so that the nodeB1 and nodeB1 may check the source node signature added by the nodeB1 and nodeB1, respectively, according to the locally maintained node public keys of nodeB1 and nodeB1 after receiving the reconfiguration message, add the source node signature generated by themselves when the check passes, and further determine whether the current reconfiguration message can pass the byzantine fault-tolerant check: if the reconstruction message passes, generating a block chain transaction according to the reconstruction message; otherwise, if not, the reconfiguration message may continue to be broadcast. Of course, after the nodeA1 receives the reconstruction message broadcast by the nodeB1, it can be determined that the source node signature added by itself is contained in the reconstruction message, and the reconstruction message can be directly discarded.
In another embodiment, the target blockchain network may be a blockchain subnet managed by a blockchain master network, and the blockchain master network may maintain a node public key of each target node in the target blockchain network, where the reconfiguration message includes, in addition to the response information and the source node signature, a target node signature respectively carried in each response message received by a source node that constructs the reconfiguration message (i.e., a target node signature carried by each response message corresponding to the response information included in the reconfiguration message), so that each source node may further verify the reconfiguration message received by itself. For example, each source node may query the blockchain master network about the node public key of the destination node indicated by the received reconfiguration message, and verify the destination node signature included in the received reconfiguration message by using the queried node public key. For a specific obtaining manner and a verification manner of the node public key, reference may be made to the detailed description of the foregoing embodiments, and details are not described herein again. In this embodiment, after receiving the reconfiguration message, the source node verifies the source node signature added to the source node included in the reconfiguration message, and also verifies the destination node signature included in the reconfiguration message by using the node public key of the corresponding destination node acquired from the master network of the block chain, thereby implementing dual verification of the reconfiguration message, further ensuring the reliability of the reconfiguration message used for generating the block chain transaction, and avoiding inconsistency of transaction execution results possibly caused by false reconstruction response information and even signature by an illegal node in the source block chain network.
It can be seen that a new source node signature is added to any reconstructed message every time the reconstructed message is broadcast in the source blockchain network, so that each source node that receives the reconstructed message can perform byzantine fault-tolerant check on the reconstructed message, for example, the reconstructed message can be subjected to the byzantine fault-tolerant check according to the number of signatures of the source node signatures included in the received reconstructed message and the total number of source nodes included in the source blockchain network, and any source node can generate a blockchain transaction according to the reconstructed message and submit the blockchain transaction to the source blockchain network for consensus when any reconstructed message passes the check. For example, taking fig. 4 as an example, the source node nodeb1 may determine the total amount of nodes (3f +1) of the subnet1 where the source node nodeb1 is located, and then may verify any reconstruction message broadcasted by other source nodes, and add a source node signature generated by itself to the reconstruction message after the verification is passed, and further determine whether the signature amount of the source node signature included in the current reconstruction message satisfies (is not less than) the first threshold value f +1 corresponding to the total amount of nodes, and generate a block chain transaction based on the reconstruction message when the signature amount satisfies (i.e., the reconstruction message is already approved by f +1 destination nodes). Or, to further increase the processing speed, the source node nodeb1 may determine, after receiving any reconfiguration message broadcast by another source node, the signature number of the source node signature included in the reconfiguration message, and determine whether the signature number satisfies (is not less than) the second threshold f corresponding to the total number of nodes, and if so, the source node may generate the block chain transaction based on the reconfiguration message when the reconfiguration message is verified (at this time, the number of source nodes that verify the reconfiguration message satisfies f + 1). In this way, when the nodeC1 determines that the reconstructed message satisfies the preset condition, it is not necessary to add the source node signature generated by itself to the reconstructed message, which is helpful to further increase the processing speed.
When the target blockchain network is a blockchain subnet managed by the blockchain master network, the blockchain master network can maintain the total amount of nodes of the target nodes in the target blockchain network, so that each source node can respectively query the total amount of nodes of the target nodes in the target blockchain network from the blockchain master network, and the obtained total amount of nodes is used for performing the byzantine fault-tolerant check. In addition, in the embodiment of the blockchain main network and the blockchain sub-network mentioned in this specification, after querying the corresponding information from the blockchain main network, the blockchain sub-network may store the information locally, so as to avoid repeated querying in a subsequent processing process, and further improve interaction efficiency. Of course, to ensure the timeliness of the information, an effective time duration may be set for the locally stored information, and the information may be updated in real time. It will be appreciated that only reconfiguration messages for byzantine fault tolerance checks by a source node in the source blockchain network will be used to generate blockchain transactions.
So far, two ways of processing the response message returned by the destination node are introduced. For any generated blockchain transaction, a workload certification, a share right certification, a commission right certification, a practical Byzantine fault-tolerant algorithm, a HoneyBadgerBFT algorithm and the like can be adopted for consensus, and the specific process is not repeated.
Because each source node generates a blockchain transaction according to the response message acquired by the source node, or respectively constructs a reconstruction message according to the response message acquired by the source node and passing verification, and generates the blockchain transaction according to the reconstruction message under the condition that the reconstruction message passes the Byzantine fault-tolerant check, a plurality of blockchain transactions corresponding to the same cross-chain request may exist in the source blockchain network and pass through a consensus, but in order to ensure the consistency of execution results of the blockchain transactions, each source node is required to execute the same blockchain transaction passing the consensus, thereby realizing the same service effect. In order to ensure that each source node in the source blockchain network respectively executes the same blockchain transaction through consensus, each source node can respectively execute the first blockchain transaction through consensus in the source blockchain network. Alternatively, the blockchain transaction generated first in the identified blockchain transactions may be executed, for example, each source node may ensure that the executed blockchain transaction is the first blockchain transaction generated according to the timestamp carried by the blockchain transaction. After any source node executes the blockchain transaction, the processing process for other blockchain transactions can be terminated. For example, if any blockchain transaction carries a request identifier, the source node may not execute the new blockchain transaction (i.e., does not execute contract code related to a specific service) when receiving the new blockchain transaction carrying the same request identifier as the executed blockchain transaction. Certainly, the source node may also receive a plurality of blockchain transactions carrying the same request identifier in a short time, and perform processing such as checking, execution and the like on each transaction in sequence according to the time sequence of receiving each transaction, so that the processing progress of each blockchain transaction may be different, and after the first blockchain transaction is executed, the source node may immediately terminate the execution process for other blockchain transactions, so as to ensure that only the first blockchain transaction is executed smoothly, so that a consistent transaction execution result is maintained with other source nodes, and computational power loss caused by invalid processing is reduced.
As described above, the blockchain transaction generated by the source node in response to the response message may include the request identifier carried in the response message, so as to implement the correlation between the cross-chain message, the response message, and the blockchain transaction. The source blockchain network may maintain a request identifier set (obviously, the request identifier set maintained by the source node is different from the request identifier set maintained by the destination node in the foregoing embodiment), where the request identifier set is used to record a request identifier carried in a cross-chain message that has not been responded to in the source blockchain network at the current time (i.e., a cross-chain message that a corresponding blockchain transaction has not been performed yet). Therefore, after determining that a certain blockchain transaction passes consensus, any source node can extract the target request identifier contained in the message, query the target request identifier in a locally maintained request identifier set, and execute the blockchain transaction under the condition that the query result shows that the target request identifier is recorded in the request identifier set. It can be understood that, if the request identifier set includes a target request identifier, it indicates that none of the blockchain transactions (respectively generated by a plurality of source nodes) corresponding to the target request identifier have been executed, so that the source node only needs to execute the blockchain transaction to implement a response to the cross-chain message. Of course, after any source node completes the above blockchain transaction, the target request identifier may be deleted from the request identifier set, so as to ensure that other blockchain transactions corresponding to the target request identifier are not repeatedly executed.
In an embodiment, the cross-chain message may be created by the source node invoking an intelligent contract deployed in the source blockchain network; correspondingly, the source node can call an intelligent contract task callback method in response to the response message so as to return the response message to the intelligent contract. Further, since the request identifier included in the block chain transaction that has not been executed is recorded in the request identifier set, in order to avoid invalid responses to the acquired cross-chain messages and invalid processing of the acquired reconfiguration messages, any target node may query whether the request identifier included in the cross-chain message or the reconfiguration message is recorded in the request identifier set after acquiring any cross-chain message or any reconfiguration message. Furthermore, in the case that it is determined that no request identifier included in any response message is recorded in the request identifier set, the response process for the response message may be terminated; alternatively, when it is determined that the request identifier included in any reconfiguration message is not recorded in the request identifier set, the processing procedure for the reconfiguration message may be terminated.
Through the embodiment, on one hand, through multiple verification and signature of the response message (or the reconstructed message) by the multiple source nodes, the response message (or the reconstructed message) for generating the blockchain transaction is ensured to be commonly approved by enough source nodes; on the other hand, the same blockchain transaction is respectively executed by each source node, so that each source node is ensured to respectively execute only one blockchain transaction, and the consistency of the response result of each source node to the cross-chain message generated by the source node is effectively ensured.
Fig. 7 is a schematic diagram of an apparatus according to an exemplary embodiment. Referring to fig. 7, at the hardware level, the apparatus includes a processor 702, an internal bus 704, a network interface 706, a memory 708, and a non-volatile storage 710, but may also include hardware required for other services. One or more embodiments of the present description can be implemented in software, such as by the processor 702 reading corresponding computer programs from the non-volatile storage 710 into the memory 708 and then executing. Of course, besides software implementation, the one or more embodiments in this specification do not exclude other implementations, such as logic devices or combinations of software and hardware, and so on, that is, the execution subject of the following processing flow is not limited to each logic unit, and may also be hardware or logic devices.
FIG. 8 is a block diagram of a cross-chain interaction device, provided in an example embodiment. Referring to fig. 8, the apparatus may be applied to the device shown in fig. 7 to implement the technical solution of the present specification. Wherein, the cross-chain interaction device may include:
a message receiving unit 801, configured to enable each destination node in a destination block chain network to respectively obtain a cross-chain message sent by at least one source node in a source block chain network to the destination block chain network;
a message constructing unit 802, configured to enable each destination node to verify the inter-link message acquired by the destination node, and construct a reconstructed message with multiple signatures for message content of the inter-link message in the destination blockchain network when the check is passed;
a transaction generating unit 803, configured to generate a blockchain transaction according to any one of the received reconfiguration messages and submit the blockchain transaction to the target blockchain network for consensus when determining that the number of signatures of source node signatures included in any one of the received reconfiguration messages passes byzantine fault-tolerant verification;
the transaction execution unit 804 enables each destination node to execute the same blockchain transaction among a plurality of commonly-identified blockchain transactions.
Optionally, the method further includes:
a message encryption unit 805, configured to enable the source node to sign a blockchain message to be transmitted by using a private key of the source node, encrypt a message content to be transmitted and a signature of the blockchain message by using a symmetric key, encrypt the symmetric key by using a node public key of each destination node, and add the encrypted signature, the encrypted message content, and each encrypted symmetric key to the cross-chain message;
the message decryption unit 806 is configured to enable each destination node to decrypt, through its own node private key, the symmetric key encrypted by its own node public key in the inter-chain message, decrypt, through the decrypted symmetric key, the encrypted message content and the signature, and acquire, under the condition that the signature is verified and signed by the node public key of the source node, the message content for generating the blockchain transaction.
Optionally, the source blockchain network is a blockchain subnet managed by a blockchain master network, the blockchain master network maintains node identity information of each source node in the source blockchain network, and the cross-chain message includes identity identification information used for representing a node identity of a source node that sends the cross-chain message; the device further comprises:
the source node verifying unit 807 is configured to enable each destination node to query the master network of the block chain to send node identity information of the source node of the cross-chain message, so as to verify the identity information, and respond to the cross-chain message when the verification is passed.
Optionally, the target blockchain network is a blockchain subnet managed by a blockchain main network, and when a main network node in the blockchain main network and a subnet node in the blockchain subnet managed by the blockchain main network are deployed in the same node device, the main network node and the subnet node on the node device share a blockchain plug-in running on the node device; the source node verifying unit 807 is further configured to:
and reading the node identity information of the source node which is maintained by the main network node and sends the cross-chain message by each destination node through a block chain plug-in shared with the main network node deployed on the node equipment to which the destination node belongs.
Optionally, a subnet management contract is deployed on the blockchain main network, where the subnet management contract is used to maintain node identity information of subnet nodes in each blockchain subnet established based on the blockchain main network; the source node verifying unit 807 is further configured to:
and enabling each destination node to respectively read the node identity information of the source node which sends the cross-link message and is maintained by the subnet management contract.
Optionally, the identification information of any subnet node includes a node identifier declared by any subnet node and a subnet identifier of a block chain subnet to which the any subnet node belongs; the source node verifying unit 807 is further configured to:
and enabling each destination node to respectively inquire whether the node identifier and the subnet identifier of the source node statement of the cross-link message are matched with each other or not from the block link main network.
Optionally, the identification information of any subnet node includes a signature generated by the subnet node based on its own private key; the source node verifying unit 807 is further configured to:
and enabling each destination node to respectively inquire the node public key of the source node sending the cross-link message to the block chain main network, and adopting the node public key to check and sign the signature.
Optionally, the method further includes:
the destination signature verification unit 808 is configured to enable each destination node to verify a destination node signature included in the received reconfiguration message through node public keys of other destination nodes maintained by the destination node.
Optionally, the source block chain network is a block chain sub-network managed by a block chain master network, the block chain master network maintains a node public key of each source node in the source block chain network, and the reconfiguration message further includes source node signatures carried in each cross-chain message received by a destination node that constructs the reconfiguration message; the device further comprises:
the source signature verification unit 809 is configured to enable each destination node to query, to the block link master network, the node public key of the source node indicated by the received reconfiguration message, and verify, by using the queried node public key, the source node signature included in the received reconfiguration message.
Optionally, the blockchain transaction includes data to be processed, and the apparatus further includes:
the transaction verification unit 810 is configured to enable each destination node to verify the blockchain transactions submitted by other source nodes according to first to-be-processed data included in the acquired cross-chain message and second to-be-processed data included in the blockchain transactions submitted by other destination nodes, or according to a first hash value calculated according to the first to-be-processed data included in the acquired cross-chain message and a second hash value calculated according to the first to-be-processed data included in the blockchain transactions submitted by other source nodes, and to perform consensus on the blockchain transactions passing the verification.
Optionally, the destination blockchain network maintains a request identifier set, a cross-chain message received by any destination node, a reconfiguration message constructed by any destination node according to the cross-chain message received by the destination node, and a blockchain transaction generated according to the reconfiguration message include the same request identifier,
the transaction execution unit 804 is further configured to: enabling any destination node to execute the blockchain transaction under the condition that the target request identifier contained in the blockchain transaction is not recorded in the request identifier set;
the apparatus further comprises an identity adding unit 811: and after the target node successfully executes any blockchain transaction, the target request identifier is added to the request identifier set.
Optionally, the apparatus further comprises:
a response termination unit 812, configured to cause each destination node to terminate a response procedure for any one of the span messages when determining that the request identifier included in the any one of the span messages is recorded in the request identifier set; alternatively, the first and second electrodes may be,
the processing termination unit 813 causes each destination node to terminate the processing procedure for any reconfiguration message when determining that the request identifier included in the reconfiguration message is recorded in the request identifier set.
Optionally, the same intelligent contract is deployed in the source blockchain network and the destination blockchain network, and the message content includes data to be processed, the apparatus further includes:
a message creating unit 814, which causes the source node to invoke the locally deployed intelligent contract to create the cross-chain message;
and a contract callback unit 815 enabling the destination node to call the intelligent contract task callback device in response to the reconfiguration message so as to return the data to be processed to the locally deployed intelligent contract.
Optionally, the intelligent contract is used for updating local data by using the data to be processed.
Optionally, the blockchain transaction performed by each source node is as follows:
transacting through the identified first blockchain; alternatively, the first and second electrodes may be,
through the first blockchain transaction generated in the consensus blockchain transaction.
The systems, devices, modules or units illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. A typical implementation device is a computer, which may take the form of a personal computer, laptop computer, cellular telephone, camera phone, smart phone, personal digital assistant, media player, navigation device, email messaging device, game console, tablet computer, wearable device, or a combination of any of these devices.
In a typical configuration, a computer includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic disk storage, quantum memory, graphene-based storage media or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
The terminology used in the description of the one or more embodiments is for the purpose of describing the particular embodiments only and is not intended to be limiting of the description of the one or more embodiments. As used in one or more embodiments of the present specification and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items.
It should be understood that although the terms first, second, third, etc. may be used in one or more embodiments of the present description to describe various information, such information should not be limited to these terms. These terms are only used to distinguish one type of information from another. For example, first information may also be referred to as second information, and similarly, second information may also be referred to as first information, without departing from the scope of one or more embodiments herein. The word "if" as used herein may be interpreted as "at … …" or "when … …" or "in response to a determination", depending on the context.
The above description is only for the purpose of illustrating the preferred embodiments of the one or more embodiments of the present disclosure, and is not intended to limit the scope of the one or more embodiments of the present disclosure, and any modifications, equivalent substitutions, improvements, etc. made within the spirit and principle of the one or more embodiments of the present disclosure should be included in the scope of the one or more embodiments of the present disclosure.

Claims (23)

1. A cross-chain interaction method comprises the following steps:
each destination node in the destination block chain network respectively acquires a cross-chain message sent to the destination block chain network by at least one source node in the source block chain network; the active blockchain network is a blockchain sub-network created based on a blockchain main network and managed by the blockchain main network, and any main network node in the blockchain main network and a corresponding sub-network node in any blockchain sub-network managed by the blockchain main network are deployed in the same node device;
each destination node checks the cross-chain message acquired by itself, and constructs a multi-signature reconstruction message aiming at the message content of the cross-chain message in the destination block chain network under the condition of passing the check;
under the condition that any destination node determines that the signature number of a destination node signature contained in any received reconstruction message passes Byzantine fault-tolerant verification, generating block chain transaction according to any reconstruction message and submitting the block chain transaction to a destination block chain network for consensus;
each destination node executes the same blockchain transaction in a plurality of blockchain transactions which are commonly identified.
2. The method of claim 1, further comprising:
the source node signs a block chain message to be transmitted by adopting a self node private key, encrypts a message content to be transmitted and a signature of the block chain message by adopting a symmetric key, encrypts the symmetric key by adopting a node public key of each destination node, and adds the encrypted signature, the encrypted message content and each encrypted symmetric key to the cross-chain message;
and each destination node decrypts the symmetric key encrypted by the self node public key in the cross-chain message through the self node private key, decrypts the encrypted message content and the signature through the symmetric key obtained by decryption, and acquires the message content for generating the block chain transaction under the condition that the signature verification passes through the node public key of the source node.
3. The method of claim 1, wherein the blockchain master network maintains node identity information of each source node in the active blockchain network, and the cross-chain message comprises identity information for characterizing the node identity of the source node sending the cross-chain message; the method further comprises the following steps:
and each destination node inquires the node identity information of the source node sending the cross-chain message to the block chain main network respectively so as to verify the identity information, and responds to the cross-chain message when the verification is passed.
4. The method according to claim 3, wherein the destination blockchain network is a blockchain subnet managed by the blockchain main network, and when a main network node in the blockchain main network and a subnet node in the blockchain subnet managed by the blockchain main network are deployed in the same node device, the main network node and the subnet node on the node device share a blockchain plug-in running on the node device; the node identity information of the source node, which is used for inquiring and sending the cross-link message to the block link main network by each destination node, comprises the following steps:
and each destination node reads the node identity information of the source node which is maintained by the main network node and sends the cross-chain message through the block chain plug-in shared with the main network node deployed on the node equipment to which the destination node belongs.
5. The method of claim 4, wherein the blockchain plug-in comprises a P2P plug-in, a network connection link is established between master network nodes deployed in different node devices through the corresponding P2P plug-in, and a source node in any node device sends the cross-chain message to a destination node in another node device, comprising:
and the source node in any node equipment sends the cross-link message to the destination node in another node equipment through the network connection link between any node equipment and another node equipment.
6. The method of claim 1, wherein a subnet management contract is deployed on the blockchain main network, and the subnet management contract is used for maintaining node identity information of subnet nodes in each blockchain subnet established based on the blockchain main network; the node identity information of the source node, which is used for inquiring and sending the cross-link message to the block link main network by each destination node, comprises the following steps:
and each destination node respectively reads the node identity information of the source node which is maintained by the subnet management contract and sends the cross-link message.
7. The method according to claim 1, wherein the identification information of any source node includes a node identifier declared by any source node and a subnet identifier of a blockchain subnet to which any source node belongs; the node identity information of the source node, which is used for inquiring and sending the cross-link message to the block link main network by each destination node, comprises the following steps:
and each destination node respectively inquires whether the node identifier and the subnet identifier of the source node statement of the cross-link message are matched with each other or not from the block link main network.
8. The method of claim 1, wherein the identification information of any source node comprises a signature generated by any source node based on a private key of the source node; the step of checking the identity information by the destination nodes respectively querying the block chain main network and sending the node identity information of the source node of the cross-chain message includes:
and each destination node respectively inquires a node public key of a source node which sends the cross-link message to the block chain main network, and adopts the node public key to verify the signature.
9. The method of claim 1, further comprising:
and each destination node verifies the destination node signature contained in the received reconstruction message through the node public keys of other destination nodes maintained by the destination node.
10. The method according to claim 1, wherein the source blockchain network is a blockchain subnet managed by a blockchain master network, the blockchain master network maintains node public keys of source nodes in the source blockchain network, and the reconfiguration message further includes source node signatures carried in cross-chain messages received by a destination node of the reconfiguration message; the method further comprises the following steps:
and each destination node queries the node public key of the source node indicated by the received reconstruction message from the block chain main network respectively, and verifies the source node signature contained in the received reconstruction message through the queried node public key.
11. The method of claim 1, the blockchain transaction including data to be processed, the method further comprising:
and each destination node checks the block chain transaction submitted by other source nodes according to the first to-be-processed data contained in the acquired cross-chain message and the second to-be-processed data contained in the block chain transaction submitted by other destination nodes, or according to the first hash calculated according to the first to-be-processed data contained in the acquired cross-chain message and the second hash of the second to-be-processed data contained in the block chain transaction submitted by other source nodes, and identifies the block chain transactions passing the check.
12. The method of claim 1, wherein the destination blockchain network maintains a request identifier set, a received cross-chain message of any destination node, a reconstructed message constructed by any destination node according to the received cross-chain message, and a blockchain transaction generated according to the reconstructed message comprise the same request identifier,
any destination node performs the blockchain transaction, including: any destination node executes the blockchain transaction under the condition that the target request identifier contained in the blockchain transaction is not recorded in the request identifier set;
the method further comprises the following steps: and after the block chain transaction is successfully executed, the target request identifier is added to the request identifier set by any destination node.
13. The method of claim 12, further comprising:
each destination node terminates the response process aiming at any cross-link message under the condition that the request identifier contained in any cross-link message is determined to be recorded in the request identifier set; alternatively, the first and second electrodes may be,
and each destination node terminates the processing process aiming at any reconstruction message under the condition that the request identifier contained in any reconstruction message is determined to be recorded in the request identifier set.
14. The method of claim 1, the source blockchain network and the destination blockchain network having the same intelligent contract deployed therein, the message content containing data to be processed, the method further comprising:
the source node calls the locally deployed intelligent contract to create the cross-chain message;
and the destination node responds to the reconstruction message to call the intelligent contract task callback method so as to return the data to be processed to the locally deployed intelligent contract.
15. The method of claim 14, the smart contract to update local data with the pending data.
16. The method of claim 1, wherein the blockchain transaction performed by each source node is:
transacting through the identified first blockchain; alternatively, the first and second electrodes may be,
through the first blockchain transaction generated in the consensus blockchain transaction.
17. The method of claim 1, the destination blockchain network being a blockchain subnet managed by the blockchain master network, the method further comprising:
and each destination node returns a response message to at least one source node in the source blockchain network, wherein the response message comprises an execution result of the blockchain transaction.
18. The method of claim 17, wherein the blockchain master network maintains node identity information of each destination node in the destination blockchain network, and the response message includes identification information for characterizing the node identity of the destination node that sent the response message; the method further comprises the following steps:
and each source node respectively inquires the node identity information of the target node which sends the response message to the block chain main network so as to verify the identity information, and processes the response message under the condition that the verification is passed.
19. The method of claim 18, wherein a master node and a sub-network node on any node device share a blockchain plug running on the node device; the node identity information of the destination node, which is used for inquiring and sending the response message to the block chain main network by each source node, comprises:
and each source node reads the node identity information of the destination node which is maintained by the main network node and sends the response message through the block chain plug-in shared with the main network node deployed on the node equipment to which the source node belongs.
20. The method of claim 17, wherein a subnet management contract is deployed on the blockchain main network, and the subnet management contract is used to maintain node identity information of subnet nodes in each blockchain subnet established based on the blockchain main network; each source node respectively queries the node identity information of the destination node sending the response message to the block chain main network, and the node identity information comprises the following steps:
and each source node respectively reads the node identity information of the destination node which is maintained by the subnet management contract and sends the response message.
21. A cross-chain interaction device, comprising:
the message receiving unit is used for enabling each destination node in the destination block chain network to respectively obtain a cross-chain message sent to the destination block chain network by at least one source node in the source block chain network; the active blockchain network is a blockchain sub-network created based on a blockchain main network and managed by the blockchain main network, and any main network node in the blockchain main network and a corresponding sub-network node in any blockchain sub-network managed by the blockchain main network are deployed in the same node device;
the message construction unit is used for enabling each destination node to verify the acquired cross-link message and constructing a reconstructed message with multiple signatures aiming at the message content of the cross-link message in the destination block chain network under the condition of passing the verification;
the transaction generating unit is used for generating block chain transaction according to any reconstruction message and submitting the block chain transaction to the target block chain network for consensus under the condition that any destination node determines that the signature number of the destination node signature contained in any received reconstruction message passes the Byzantine fault-tolerant check;
and the transaction execution unit enables each destination node to execute the same blockchain transaction in the plurality of commonly-identified blockchain transactions respectively.
22. An electronic device, comprising:
a processor;
a memory for storing processor-executable instructions;
wherein the processor implements the method of any one of claims 1-20 by executing the executable instructions.
23. A computer-readable storage medium having stored thereon computer instructions, which, when executed by a processor, carry out the steps of the method according to any one of claims 1-20.
CN202111406526.6A 2021-06-02 2021-06-02 Cross-chain interaction method and device Active CN113922971B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111406526.6A CN113922971B (en) 2021-06-02 2021-06-02 Cross-chain interaction method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111406526.6A CN113922971B (en) 2021-06-02 2021-06-02 Cross-chain interaction method and device
CN202110611524.4A CN113259456B (en) 2021-06-02 2021-06-02 Cross-chain interaction method and device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202110611524.4A Division CN113259456B (en) 2021-06-02 2021-06-02 Cross-chain interaction method and device

Publications (2)

Publication Number Publication Date
CN113922971A true CN113922971A (en) 2022-01-11
CN113922971B CN113922971B (en) 2023-10-27

Family

ID=77185876

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110611524.4A Active CN113259456B (en) 2021-06-02 2021-06-02 Cross-chain interaction method and device
CN202111406526.6A Active CN113922971B (en) 2021-06-02 2021-06-02 Cross-chain interaction method and device

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110611524.4A Active CN113259456B (en) 2021-06-02 2021-06-02 Cross-chain interaction method and device

Country Status (1)

Country Link
CN (2) CN113259456B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116566710A (en) * 2023-05-28 2023-08-08 易知名国际文化传媒(北京)有限公司 Block chain data management method and system
CN116566710B (en) * 2023-05-28 2024-04-26 深圳市远东数智采技术服务有限公司 Block chain data management method and system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259456B (en) * 2021-06-02 2021-10-15 支付宝(杭州)信息技术有限公司 Cross-chain interaction method and device
CN113886495A (en) * 2021-09-30 2022-01-04 支付宝(杭州)信息技术有限公司 Method and device for verifying block chain data, electronic equipment and storage medium
CN115189965B (en) * 2022-09-06 2022-12-13 浙江数秦科技有限公司 Cross-chain management system and cross-chain operation method of block chain

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301536A (en) * 2017-06-12 2017-10-27 腾讯科技(深圳)有限公司 Resource transfers method and device
CN109286685A (en) * 2018-11-21 2019-01-29 北京蓝石环球区块链科技有限公司 The system architecture of the more subchains of main chain adduction row of subchain can be expanded
US20200007315A1 (en) * 2018-07-02 2020-01-02 International Business Machines Corporation On-chain governance of blockchain
CN110650189A (en) * 2019-09-20 2020-01-03 深圳供电局有限公司 Relay-based block chain interaction system and method
US20200118068A1 (en) * 2018-10-10 2020-04-16 QuestaWeb, Inc. Hierarchical Blockchain Architecture for Global Trade Management
CN111080452A (en) * 2019-12-17 2020-04-28 电子科技大学 Hierarchical transaction method suitable for energy source block chain
US20200252221A1 (en) * 2019-02-05 2020-08-06 Visa International Service Association Optimizations for verification of interactions system and method
CN113259456A (en) * 2021-06-02 2021-08-13 支付宝(杭州)信息技术有限公司 Cross-chain interaction method and device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019103B (en) * 2018-10-16 2024-02-09 陕西医链区块链集团有限公司 Cross-chain system and cross-chain implementation method based on block chain
ES2867423T3 (en) * 2018-11-07 2021-10-20 Advanced New Technologies Co Ltd Facilitate practical Byzantine fault tolerance blockchain consensus and node synchronization
CN111489154A (en) * 2019-01-29 2020-08-04 北京天德科技有限公司 Cross-chain transaction method based on multiple signatures
CN112187490B (en) * 2019-07-01 2023-04-07 深圳法大大网络科技有限公司 Byzantine fault-tolerant consensus method and system
KR102106590B1 (en) * 2019-07-17 2020-05-04 (주)가민정보시스템 Blockchain network system for Internetworking in Heterogeneous Platforms and Method for chaining Block thereof
CN111769957B (en) * 2020-09-02 2020-12-15 百度在线网络技术(北京)有限公司 Block chain cross-chain query method, device, equipment and storage medium
CN112199736B (en) * 2020-10-12 2022-12-02 南京邮电大学 Ordered multi-signature method based on block chain
CN112532393A (en) * 2020-11-20 2021-03-19 杭州趣链科技有限公司 Verification method of cross-link transaction, relay link node equipment and medium
CN112613996A (en) * 2021-01-08 2021-04-06 江苏众享金联科技有限公司 Block chain cross-chain transaction method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301536A (en) * 2017-06-12 2017-10-27 腾讯科技(深圳)有限公司 Resource transfers method and device
US20200007315A1 (en) * 2018-07-02 2020-01-02 International Business Machines Corporation On-chain governance of blockchain
US20200118068A1 (en) * 2018-10-10 2020-04-16 QuestaWeb, Inc. Hierarchical Blockchain Architecture for Global Trade Management
CN109286685A (en) * 2018-11-21 2019-01-29 北京蓝石环球区块链科技有限公司 The system architecture of the more subchains of main chain adduction row of subchain can be expanded
US20200252221A1 (en) * 2019-02-05 2020-08-06 Visa International Service Association Optimizations for verification of interactions system and method
CN110650189A (en) * 2019-09-20 2020-01-03 深圳供电局有限公司 Relay-based block chain interaction system and method
CN111080452A (en) * 2019-12-17 2020-04-28 电子科技大学 Hierarchical transaction method suitable for energy source block chain
CN113259456A (en) * 2021-06-02 2021-08-13 支付宝(杭州)信息技术有限公司 Cross-chain interaction method and device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张亮;刘百祥;张如意;江斌鑫;刘一江;: "区块链技术综述", 计算机工程, no. 05 *
段靓;吕鑫;刘凡;: "基于信任委托的区块链分层共识优化", 计算机工程, no. 10 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116566710A (en) * 2023-05-28 2023-08-08 易知名国际文化传媒(北京)有限公司 Block chain data management method and system
CN116566710B (en) * 2023-05-28 2024-04-26 深圳市远东数智采技术服务有限公司 Block chain data management method and system

Also Published As

Publication number Publication date
CN113259456B (en) 2021-10-15
CN113259456A (en) 2021-08-13
CN113922971B (en) 2023-10-27

Similar Documents

Publication Publication Date Title
CN113259460B (en) Cross-chain interaction method and device
CN113259455B (en) Cross-subnet interaction method and device
CN113259456B (en) Cross-chain interaction method and device
CN113067902B (en) Block chain message transmission method and device
CN113067904B (en) Method for building block chain sub-network and block chain system
CN113067897B (en) Cross-chain interaction method and device
CN113259454B (en) Cross-chain interaction method and device
CN113259453B (en) Cross-chain interaction method and device
WO2023124746A1 (en) Cross-subnet interaction permission control
CN113259457B (en) Information synchronization method and device for block chain sub-network
CN113259461B (en) Cross-chain interaction method and block chain system
CN115134075A (en) Cross-subnet calling method and device, electronic equipment and storage medium
CN113098982B (en) Block chain message transmission method and device
CN113259464B (en) Method for building block chain sub-network and block chain system
CN113067896B (en) Method for adding node in block chain sub-network and block chain system
CN113067838B (en) Cross-chain interaction method and device
CN113259463B (en) Cross-chain interaction method and block chain system
CN113259459B (en) Block chain subnet operation state control method and block chain system
CN113067903B (en) Method for building block chain sub-network and block chain system
CN113259466B (en) Block chain subnet operation state control method and block chain system
CN114363162A (en) Block chain log generation method and device, electronic equipment and storage medium
CN114363349B (en) Block chain sub-network starting method and device
CN116743765A (en) Block chain system and cross-chain interaction method and device

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