WO2024065216A1 - Multi-dimensional blockchain architecture - Google Patents

Multi-dimensional blockchain architecture Download PDF

Info

Publication number
WO2024065216A1
WO2024065216A1 PCT/CN2022/121874 CN2022121874W WO2024065216A1 WO 2024065216 A1 WO2024065216 A1 WO 2024065216A1 CN 2022121874 W CN2022121874 W CN 2022121874W WO 2024065216 A1 WO2024065216 A1 WO 2024065216A1
Authority
WO
WIPO (PCT)
Prior art keywords
blockchain
block
given
blockchains
characteristic values
Prior art date
Application number
PCT/CN2022/121874
Other languages
French (fr)
Inventor
Taiyong ZHANG
Shihua CHENG
Yanbin Liu
Original Assignee
Wormholes Lab Pte. Ltd.
Shanghai Kongdi Science And Technology 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 Wormholes Lab Pte. Ltd., Shanghai Kongdi Science And Technology Ltd. filed Critical Wormholes Lab Pte. Ltd.
Priority to PCT/CN2022/121874 priority Critical patent/WO2024065216A1/en
Publication of WO2024065216A1 publication Critical patent/WO2024065216A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps

Definitions

  • the present disclosure relates generally to blockchain technology, and more particularly, to multi-dimensional blockchain architecture.
  • Blockchain technologies have enormous potentials in creating trustless, decentralized applications that help make everyday tasks and transactions more secure and self-governed.
  • decentralized cryptocurrencies such as Bitcoin and Ethereum have proven that blockchain technologies do indeed have real-world values.
  • both Bitcoin and Ethereum are encountering low efficiency issues with low throughput, high transaction latency, and huge energy consumption. Scalability remains a crucial challenge for blockchains.
  • One solution to the scalability issue and low performance problems of blockchains is to use the sharding technology, which partitions the blockchain network into multiple small groups (called shards) of validators and lets them process transactions in parallel to improve processing efficiency. Instead of validating each and every transaction across every node, the sharding-based system distributes the workload and all shards are vulnerable to a single-shard attack. Consequently, the sharding-based system is made to be scalable at the cost of security.
  • Other solutions to the scalability issue and low performance problems such as off-chain technology and scalable consensus mechanisms may similarly lack the ability in maintaining a blockchain’s network integrity from threats and malicious attacks while increasing scalability.
  • a method for generating a new block of a given blockchain in a blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the method is adapted to be executed on one node of the plurality of nodes that operates on the given blockchain.
  • the method comprises steps of identifying at least one blockchain of the plurality of blockchains that is associated with the given blockchain; obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and generating a new block of the given blockchain based on the respective block characteristic values.
  • the method may include any one or more of the following further examples, either in combination or singularly.
  • the method may comprise steps of identifying all blockchains that are associated with the given blockchain from among the plurality of blockchains; and selecting the at least one blockchain from the identified all blockchains.
  • the plurality of blockchains may contain an index blockchain that stores association information identifying association relationships among the plurality of blockchains.
  • the method comprises steps of obtaining association information from the second blockchain and determining the at least one blockchain based on the association information.
  • the index blockchain may further store a block characteristic value of each block of each blockchain of the plurality of blockchains.
  • the method comprises a step of obtaining the respective block characteristic values from the index blockchain.
  • the method may comprise a step of obtaining the respective block characteristic values of the one or more blocks based on a timestamp or a block height of the new block.
  • the method may comprise a step of obtaining the respective block characteristic values from at least one node of the plurality of nodes that operates on the identified at least one blockchain.
  • the at least one node may include the one node.
  • the method may comprise steps of generating a crosschain characteristic value based on the respective block characteristic values and storing the crosschain characteristic value within a block header of the new block.
  • the crosschain characteristic value may be generated based on the respective block characteristic values by performing Merkle operation.
  • the method may comprise steps of obtaining respective block heights of the one or more blocks within the identified at least one blockchain and generating the new block of the given blockchain based on the respective block characteristic values and the respective block heights.
  • the respective block characteristic value of at least one of the one or more blocks may comprise a header characteristic value generated based on a block header of the at least one of the one or more blocks.
  • the method may comprise a step of generating the new block based on the respective block characteristic values and a block characteristic value of at least one block in the given blockchain that precedes the new block.
  • the at least one block may include a parent block of the new block.
  • the new block of the given blockchain is generated synchronously with a new block of a blockchain of the identified at least one blockchain, so that the new block of the given blockchain and the new block of the blockchain of the identified at least one blockchain have an identical block height or timestamp.
  • the new block of the given blockchain is generated asynchronously with a new block of a blockchain of the identified at least one blockchain, so that the new block of the given blockchain has a different block height or timestamp than the new block of the blockchain of the identified at least one blockchain.
  • the method may further comprise steps of digitally signing the crosschain characteristic value using a private key of a user and storing a public key corresponding to the private key within the block header of the new block.
  • a method for generating a new block of a given blockchain in a blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the method is adapted to be executed on one node of the plurality of nodes that operates on the given blockchain.
  • the method comprises steps of associating at least one blockchain of the plurality of blockchains that is associated with the given blockchain; obtaining respective block characteristic values of one or more blocks of the associated at least one blockchain; and generating a new block of the given blockchain based on the respective block characteristic values.
  • the method may comprise a step of storing association information identifying association relationship between the given blockchain and the associated at least one blockchain within the new block.
  • a method of verifying data authenticity of a block of a given blockchain in a blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the method is adapted to be executed on one node of the plurality of nodes that operates on the given blockchain.
  • the method comprises steps of retrieving a block of the given blockchain; identifying at least one blockchain of the plurality of blockchains that is associated with the first blockchain; obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and verifying data authenticity of the block of the given blockchain based on the respective block characteristic values.
  • the method may include any one or more of the following further examples, either in combination or singularly.
  • the method may comprise steps of obtaining a first crosschain characteristic value within a block header of the block; generating a second crosschain characteristic value based on the respective block characteristic values; and verifying data authenticity of the block of the first blockchain based on whether the first crosschain characteristic value matches the second crosschain characteristic value.
  • the method may comprise steps of obtaining a first crosschain characteristic value, that is digitally signed, within the block; obtaining a public key within the block; verifying data authenticity of the block of the given blockchain based on the public key.
  • an apparatus for generating a new block of a given blockchain in a blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the apparatus comprises an identifying unit configured to identify at least one blockchain of the plurality of blockchains that is associated with the given blockchain; an obtaining unit configured to obtain respective block characteristic values of one or more blocks of the identified at least one blockchain; and a generating unit configured to generate a new block of the given blockchain based on the respective block characteristic values.
  • an apparatus for generating a new block of a given blockchain in a blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the apparatus comprises an associating unit configured to associate at least one blockchain of the plurality of blockchains with the given blockchain; an obtaining unit configured to obtain respective block characteristic values of one or more blocks of the associated at least one blockchain; and a generating unit configured to generate a new block of the given blockchain based on the respective block characteristic values.
  • an apparatus for verifying data authenticity of a block in a blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the apparatus comprises a retrieving unit configured to retrieve a block of the given blockchain; an identifying unit configured to identify at least one blockchain of the plurality of blockchains that is associated with the given blockchain; an obtaining unit configured to obtain respective block characteristic values of one or more blocks of the identified at least one blockchain; and a verifying unit configured to verify data authenticity of the block of the given blockchain based on the respective block characteristic values.
  • an apparatus for generating a new block of a given blockchain in a blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the apparatus comprises means for identifying at least one blockchain of the plurality of blockchains that is associated with the given blockchain; means for obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and means for generating a new block of the given blockchain based on the respective block characteristic values.
  • an apparatus for verifying data authenticity of a block of a given blockchain in a blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the apparatus comprises means for retrieving a block of the given blockchain; means for identifying at least one blockchain of the plurality of blockchains that is associated with the given blockchain; means for obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and means for verifying data authenticity of the block of the given blockchain based on the respective block characteristic values.
  • a blockchain system comprises a plurality of nodes which operate on a plurality of blockchains, wherein each blockchain of the plurality of blockchains is associated with at least one blockchain of the plurality of blockchains, such that each block of the each blockchain is generated based on respective block characteristic values of one or more blocks of the at least one blockchain that is associated with the each blockchain.
  • a computer device comprises at least one processor and a memory storing instructions, which when executed cause the at least one processor to implement any one of the foregoing first, second or third exemplary aspects.
  • a computer readable storage medium stores computer executable instructions for implementing any one of the foregoing first, second or third exemplary aspects.
  • a computer program product tangibly stored in a computer readable storage medium stores computer executable instructions, which when executed cause at least one processor to implement any one of the foregoing first, second or third exemplary aspects.
  • FIG. 1 is a diagram illustrating a conventional single-chain architecture.
  • FIG. 2 is a diagram illustrating a conventional multi-chain architecture.
  • FIG. 3 is a diagram illustrating exemplary blocks of a conventional blockchain of FIG. 1 or FIG. 2.
  • FIG. 4 is a diagram illustrating an exemplary multi-dimensional blockchain architecture according to embodiments of the disclosure.
  • FIG. 5 is a diagram illustrating a logical representation of a first exemplary multi-dimensional blockchain architecture according to embodiments of the disclosure.
  • FIG. 6 is a diagram illustrating a logical representation of a second exemplary multi-dimensional blockchain architecture according to embodiments of the disclosure.
  • FIG. 7 is a diagram illustrating a logical representation of a third exemplary multi-dimensional blockchain architecture according to embodiments of the disclosure.
  • FIG. 8 is a diagram illustrating an exemplary blockchain system according to embodiments of the disclosure.
  • FIG. 9 is a flowchart illustrating an exemplary method for generating a new block of a given blockchain in a blockchain system of FIG. 7.
  • FIG. 10 is a diagram illustrating exemplary blocks of a multi-dimensional blockchain according to embodiments of the disclosure.
  • FIG. 11 is a diagram illustrating an example of blocks of FIG. 9.
  • FIG. 12 is a diagram illustrating an example of generation of the crosschain value in a homogenous multiple chain structure according to embodiments of the disclosure.
  • FIG. 13 is a diagram illustrating an example of generation of the crosschain value in a heterogenous chain structure or a mixed heterogenous-homogenous chain structure.
  • FIG. 14 is a flowchart illustrating another exemplary method for generating a new block of a given blockchain in a blockchain system of FIG. 7.
  • FIG. 15 is a flowchart illustrating an exemplary method for verifying data authenticity of a block of a given blockchain in a blockchain system of FIG. 7.
  • FIG. 16 is a diagram illustrating an exemplary apparatus for generating a new block of a given blockchain in a blockchain system of FIG. 7.
  • FIG. 17 is a diagram illustrating another exemplary apparatus for generating a new block of a given blockchain in a blockchain system of FIG. 7.
  • FIG. 18 is a diagram illustrating an exemplary apparatus for verifying data authenticity of a block of a given blockchain in a blockchain system of FIG. 7.
  • FIG. 19 is a diagram illustrating an exemplary computer device for generating a new block of a given blockchain or verifying data authenticity of a block of a given blockchain in a blockchain system of FIG. 8.
  • a blockchain is a form of distributed ledger.
  • Blockchain creates an unchangeable ledger of records maintained by a decentralized network after a consensus approves all the records.
  • ledger refers to a data storage mechanism for storing blockchain data that has been consented upon.
  • node means a software module residing on a server or other computing device that communicates within the blockchain network for the purpose of completing transactions, establishing a consensus, and storing data related to the blockchain.
  • a node may be represented as a physical server, a physical client, a virtual server, or a container.
  • transaction means any type of blockchain-based transaction, whether referenced as a transaction or as a contract.
  • block characteristic value of a data block (or called as block) of a blockchain refers to a value derived from any portion of the data block, e.g., at least a part of a block header (or called as header) , at least a part of a block body (or called as body) , or the combination thereof.
  • the derivation may be performed at a node that operates on the blockchain.
  • block height of a block of a blockchain refers to a position of the block in the blockchain. For example, when the block height equals 5, it refers to a fifth block in a block chain from an initial block or genius block.
  • FIG. 1 is a diagram illustrating a conventional single-chain architecture 100.
  • the architecture 100 shows a conventional blockchain 110 having a chain of blocks 111 (e.g., block i) linked to a previous block (or called parent block) in the chain.
  • blocks 111 e.g., block i
  • parent block a previous block
  • FIG. 2 is a diagram illustrating a conventional multi-chain architecture 200.
  • the architecture 200 shows four conventional blockchains 210, 220, 230, 240 and the blockchains 210, 220, 230, 240 has a chain of blocks 211, 221, 231 and 241 respectively (e.g., block i) linked to a previous block in the chain. All of the blockchains 210 to 240 are independent from each other to increase scalability. However, each blockchain is only a one-dimensional chain and vulnerable to an attack to each chain.
  • the architecture 200 may be a sharding-based architecture and each of the blockchains 210, 220, 230, 240 is a sharded chain.
  • a main chain is required.
  • a main chain (Beacon Chain) will serve as the consensus and coordination layer for shard chains. All shard chains are tightly coupled with the main chain, strengthening the security of the system. Shard blocks can only be valid if approved by the main chain. However, each sharded chain is only a one-dimensional single chain and vulnerable to an attack to each sharded chain.
  • FIG. 3 is a diagram illustrating exemplary blocks of the conventional blockchain 110 of FIG. 1 or any of the conventional blockchains 210 to 240 of FIG. 2.
  • the blockchain includes a set of data blocks (e.g., blocks i, i+1, m) , in which each data block includes data that represents any transactions (e.g., transactions 1 to n) .
  • each data block includes data that represents any transactions (e.g., transactions 1 to n) .
  • next data block includes a hash of the content of previous (i.e., parent) block (e.g., a header characteristic value of the previous block)
  • the m-th block includes a hash of the content of (m-1) -th block, etc.
  • Examples of the conventional blockchains include Bitcoin, Ethereum, or other similar blockchains. However, they are encountering low efficiency issues with low throughput, high transaction latency, and huge energy consumption. Further, current solutions to the scalability issue and low performance problems may lack the ability in maintaining a blockchain’s network integrity from threats and malicious attacks while increasing scalability.
  • FIG. 4 is a diagram illustrating an exemplary multi-dimensional blockchain architecture 300 according to embodiments of the disclosure.
  • the architecture 300 shows four parallel blockchains 310, 320, 330 and 340, each of which has a chain of blocks (e.g., blocks 311, 321, 331, 341) linked to a previous block in the chain in a conventional manner. Further, a block of each blockchain is generated based on other blocks from other blockchains.
  • block i2 of the blockchain 320 is generated based on block i1 of the blockchain 310 and blocks i3 and i4 of the blockchain 330 (as indicated by the linked lines) .
  • the blockchain 320 is associated with the blockchains 310 and 330.
  • the blockchain 320 is “coupled” to blockchains 310 and 330.
  • block i5 of the blockchain 340 is generated based on block i4 of the blockchain 330 and block i6 of the blockchain 340 itself (as indicated by the linked lines) .
  • the blockchain 340 is associated with the blockchains 330.
  • the blockchain 340 is “coupled” to blockchain 330.
  • each parallel blockchain may be coupled to the preceding blocks of other blockchains at the same or different block height.
  • the multi-dimensional blockchain topology in which the parallel chains are bound together to form a multi-dimensional blockchain network, supports parallelism as a way to linearly increase throughput with each additional chain added to the system. There are no upper bounds on network size.
  • a scaled multi-dimensional blockchain network is capable of running over tens of thousands of chains simultaneously, increasing throughput to feed the requirements from such as modern financial payment systems or other applications. Further, this architecture increases security assurance exponentially. If an attacker wants to replace a given block, every block that directly or indirectly couples with this block must be replaced. Because such an attack would require enormous resource (such as computation and/or stakes) , the existence of the multiple chains of blocks makes the blockchain’s deep history immutable, which is one of the key features of a multi-dimensional blockchain’s security.
  • FIG. 5 is a diagram illustrating a logical representation of a first exemplary multi-dimensional blockchain architecture
  • FIG. 6 is a diagram illustrating a logical representation of a second exemplary multi-dimensional blockchain architecture
  • FIG. 7 is a diagram illustrating a logical representation of a third exemplary multi-dimensional blockchain architecture.
  • the first, second and third exemplary multi-dimensional blockchain architectures show some examples derived from graph theory to make the multi-dimensional blockchain more efficient by increasing the network throughput while keeping the computation power constant.
  • the base graphs (ss shown in FIGS. 5 to 7) are used to structure the interaction of chains in the topology, and can be viewed as the instructions for how to bind the chains together.
  • Each base graph G (V, E) includes a set of vertices V and a set of edges E, where a vertex is represented by a solid circle and an edge is represented by a line extending from one vertex to another.
  • Each base graph G also has a set of rings R, each ring R is a cycle comprised a number of vertices and a number of edges as shown in FIGS.
  • the base graph can be easily configured and extended.
  • Each vertex V in the graphs represents a chain.
  • the number of vertices represents the total chain number (e.g., CH0, CH1, ..., CH (n-1) ) , which prompts the overall throughput of the blockchain network.
  • the degree of each vertex V of the graph represents the number of edges connected between the vertex and other vertices and defines other chains that must couple to a chain represented by the vertex.
  • the edges E of a vertex V indicate links between the specific peer chains with which a given chain must couple.
  • the chain topology can be expressed through the following equations:
  • Nt Np ⁇ Nr, Nr ⁇ 2 (1)
  • Nt is the total number of chains
  • Np is the number of the peer rings in the graph
  • Nr is the number of chains per ring
  • Nr 2m, m ⁇ 2 and m is an integer (2)
  • each vertex is connected to three other vertices and thus each blockchain is coupled to three chains.
  • each chain is coupled to two chains on the same ring and coupled to another chain on another ring.
  • chain CH3 is coupled to chains CH0 and CH2 on the same ring and coupled to chain CH7 on another ring. Also as shown in FIG. 5, chain CH0 is coupled to chains CH1 and CH3 on the same ring and coupled to chain CH (n-4) on another ring.
  • chain CH3 is coupled to chains CH2 and CH4 on the same ring and coupled to chain CH9 on another ring.
  • chain CH0 is coupled to chains CH1 and CH5 on the same ring and coupled to chain CH (n-6) on another ring.
  • chain CH3 is coupled to chains CH2 and CH4 on the same ring and coupled to chain CH19 on another ring.
  • chain CH0 is coupled to chains CH1 and CH15 on the same ring and coupled to chain CH (n-16) on another ring.
  • Each block of each chain as shown in FIGS. 5 to 7 may be generated based on one or more blocks from other chains associated with the each chain, thus the each chain becomes a multi-dimensional chain present in this disclosure.
  • the graphs show the association relationships among a plurality of blockchains.
  • the association information identifying association relationships among the plurality of blockchains may be stored in a separate blockchain (e.g., an index chain) or a database.
  • a separate blockchain e.g., an index chain
  • information of the vertex, degrees of each vertex, and each edge may be stored as association information.
  • association information may be shown as Table 1.
  • the association relationship among the plurality of blockchains may be established in advance and do not change for all blockchains.
  • the association relationship may be established based on base graphs as shown in FIGS. 5 to 7.
  • the first column of Table 1 represents a primary chain and the second column of Table 1 represents secondary chains that are associated with (or called as coupled to) the primary chain.
  • the primary and secondary chains may be any multi-dimensional chain present in this disclosure.
  • association information may be shown as Table 2.
  • the association relationship among the plurality of blockchains may change block-by-block.
  • the first column of Table 2 represents a primary chain
  • the second column of Table 2 represents secondary chains that are associated with (or called as coupled to) the primary chain
  • third column of Table 2 represents a block height for each block in the primary chain.
  • the primary and secondary chains may be any multi-dimensional chain present in this disclosure. As shown in Table 2, at block 1, chain CH0 is coupled to chains CH1, CH 3 and CH (n-3) . At block 2, chain CH0 is changed to be coupled to less chain CH1 and CH3. At block 3, chain CH0 is changed to be coupled to more chains CH1, CH 3 and CH4.
  • the association relationship among the plurality of blockchains may be configured in advance based on a particular rule.
  • the association relationship for each chain in FIGS. 5 to 7 can be easily derived based on a chain number of the chain in the base graph. Hence, only the association information indicating the particular rule need to be stored.
  • association information is exemplary only and not limiting.
  • the association information may also have other forms.
  • FIG. 8 is a diagram illustrating a blockchain system 400 according to embodiments of the disclosure.
  • the blockchain system 400 includes a plurality of nodes 420 that operates on a plurality of blockchains (not shown) , wherein each of the plurality of blockchains may be any multi-dimensional chain present in this disclosure.
  • Nodes 420 may include a storage 421 that stores at least a portion of a ledger 422 of one of blockchains. The at least portion of the ledger contains information about new block that has been validated and added to the blockchain.
  • Each node 420 may store the entire ledger 422 or a portion of ledger 422 of the blockchain.
  • Nodes 420 may communicate with one another via a communication network 410, e.g., wired or wireless connections 430, over the Internet, etc.
  • each node 420 may be configured to operate on one or more blockchains of the plurality of blockchains.
  • Each node 420 may be represented as a physical server, a physical client, a virtual server, or a container.
  • Some nodes 420 may act as validator nodes. Any transactions proposed to a blockchain are validated by a set of validator nodes associated with the blockchain in a conventional manner. For instance, transactions may be broadcast to one or more of the validator nodes of the blockchain and may be shared between the validator nodes for validation and consensus. Each validator node determines whether a transaction is valid and whether the transaction complies with the rules of the blockchain. The validator node adds a set of the validated transactions to a data block and proposes the data block for consensus by all or some of the other validator nodes of the blockchain. The other validator nodes then consensus the data block containing the transactions to the blockchain.
  • nodes 420 may also be validator nodes for different blockchains.
  • nodes that are not validator nodes may perform processing such as receiving transaction submissions, handling application programming interface (API) requests from users, providing application services, or other similar functions. In this manner, the processing power of the validator nodes may be preserved for generating new blocks, reaching consensus, and monitoring the other validator nodes.
  • Validator nodes may communicate with one another via network to send and receive data. For instance, as new data blocks are generated by validator nodes, validator nodes of the blockchain may communicate or share the new data blocks and send and receive consensus messages via the network 410.
  • a peer communication path between one node 420 configured to operate on one blockchain and one node 420 configured to operate on the other blockchain. If a node 420 is configured to operate on the two coupled blockchains, it may directly obtain data from the two blockchains. In some cases, data from another blockchain may be obtained by communication between one node 420 and another node 420 or by invoking data acquiring service or interface of one node 420 from another node 420.
  • each node 420 of the block system 400 can be configured to generate a new block of a given (or called as target) blockchain to form a multi-dimensional blockchain based on block (s) from other blockchain (s) associated with the given blockchain.
  • the given blockchain can be any one of a plurality blockchains operated by a plurality of nodes 420 in the blockchain system 400.
  • each node 420 of the block system 400 can be configured to verify data authenticity of a block of a given (or called as target) blockchain, wherein the block is generated based on block (s) from other blockchain (s) associated with the given blockchain.
  • the given blockchain can be any one of a plurality blockchains operated by a plurality of nodes 420 in the blockchain system 400.
  • FIG. 9 is a flowchart illustrating an exemplary method 500 for generating a new block of a given (or called target) blockchain in a blockchain system 400 of FIG. 8.
  • the method 500 can be implemented by any one of nodes 420 of the blockchain system 400, an apparatus 800 of FIG. 16 or a computer device 1100 of FIG. 19.
  • the method 500 is adapted to be executed on one node of the plurality of nodes that is configured to operate on the given blockchain of a plurality of blockchains.
  • the method 500 includes steps S501, S502 and S503.
  • the method 500 identifies at least one blockchain from among the plurality of blockchains that is associated with the first blockchain.
  • the method 500 may comprise steps of identifying all blockchains that are associated with the given blockchain from among the plurality of blockchains and selecting the at least one blockchain from the identified all blockchains.
  • the method 500 may further include a step of obtaining association information identifying association relationships among the plurality of blockchains.
  • the method 500 may identify the at least one blockchain based on the association information.
  • the association information may be stored in an index chain of the plurality of blockchains or a database separate from the blockchains and obtained from the index blockchain or the database conveniently.
  • the method 500 obtains respective block characteristic values of one or more blocks of the identified at least one blockchain.
  • the one or more blocks may be randomly selected from the identified at least one blockchain. In some examples, the one or more blocks may be selected from the identified at least one blockchain based on a particular rule. For instance, the particular rule may specify that the latest one or more blocks of the identified at least one blockchain are to be selected.
  • the method 500 may obtain the respective block characteristic values of the one or more blocks based on a timestamp or a block height of the new block.
  • the new block must be generated based on one or more blocks that have a timestamp earlier than a timestamp of the new block or have a block height smaller than a block height of the new block. In this case, on one or more blocks that have a timestamp earlier than a timestamp of the new block or have a block height smaller than a block height of the new block are to be selected.
  • the respective block characteristic values of the one or more blocks of the identified at least one blockchain may be stored in the index blockchain or the database and obtained from the second blockchain or the database conveniently.
  • the respective block characteristic values may be obtained from at least one node of the plurality of nodes that operates on the identified at least one blockchain.
  • data from another blockchain may be obtained by communication between one node and another node or by invoking data acquiring service or interface of one node from another node.
  • one node may be configured to operate on two or more blockchains containing the given blockchain and thus the at least one node includes the one node.
  • the at least one node may not include the one node as the one node is not configured to operate on the identified at least one blockchain.
  • the respective block characteristic value of at least one of the one or more blocks may include a header characteristic value generated based on a block header of the at least one of the one or more blocks.
  • the method 500 generates a new block of the given blockchain based on the respective block characteristic values.
  • the method 500 may generate a crosschain characteristic value (simply referred as “crosschain value” ) based on the respective block characteristic values and storing the crosschain characteristic value within a block header of the new block.
  • the crosschain characteristic value may be stored in a block body of the new block.
  • a part of the crosschain characteristic value may be stored in a block header of the new block and the remaining of the crosschain characteristic value may be stored in a block body of the new block.
  • the crosschain characteristic value may be used to verify data authenticity of the generated block because every block from other blockchains that directly or indirectly couples with the generated block must be replaced if an attacker wants to replace a given block.
  • each new data block includes a set of transactions and a hash of the content of the immediately previous data block.
  • blockchain Ci may be a chain CH5 associated with chains CH0, CH4 and CH6 as shown in FIG. 6.
  • the new block may be generated by adding a crosschain value derived from respective block characteristic values of blocks of chains CH0, CH4 and CH6 into the new block.
  • FIG. 11 is a diagram illustrating an example of blocks of FIG. 10 according to embodiments of this disclosure.
  • Block i contains a block header including header characteristic value (i.e., previous hash) of a previous block, root hash of transactions and nonce, and a block body including transactions in a conventional manner.
  • Block i contains a crosschain value derived from block (s) from other blockchain (s) .
  • the crosschain value may be a crosschain hash which may be computed by performing Merkle operation on the respective block characteristic values.
  • the respective block characteristic values may be H1, H2, H3 and H4 and the crosschain hash is derived as Hash (Hash (H1, H2) , Hash (H3, H4) ) , wherein Hash () represents a hash function that can be used to map data of arbitrary size to fixed-size values.
  • Hash () represents a hash function that can be used to map data of arbitrary size to fixed-size values.
  • the Merkle operation consumes little resource for computing and is performed very fast.
  • the crosschain value may also be generated by performing other operation.
  • the method 500 may further include a step of obtaining respective block heights of the one or more blocks within the at least one blockchain.
  • the method 500 may generate the new block of the given blockchain based on the respective block characteristic values and the respective block heights.
  • the block header of the new block may include heights of the secondary (i.e., associated) blockchains, e.g., heights of the one or more blocks from the identified at least one blockchain.
  • heights of the secondary blockchains need not to be included in the new block (e.g., in a header) if the one or more blocks are determined according to a particular rule.
  • the particular rule may specify that the latest one or more blocks of the identified at least one blockchain are used. For instance, the one or more blocks are determined to be blocks having timestamp or block height closest to timestamp or block height of the new block.
  • the method may generate the new block based on the respective block characteristic values of the identified at least one blockchain and a block characteristic value of at least one block in the given blockchain that precedes the new block.
  • the at least one block may include a parent block of the new block.
  • height of the at least one block may be included in the new block.
  • height of the at least one block may not be included in the new block if the at least one block is determined according to a particular rule.
  • the particular rule may specify that the latest one or more blocks closest to the new block in the given blockchain are used. For instance, the one or more blocks are determined to be blocks having block height closest to block height of the new block.
  • the method 500 may further include steps of digitally signing the crosschain characteristic value using a private key of a user and including a public key corresponding to the private key within the block header of the new block.
  • the public key can be used to verify if the crosschain characteristic value is correctly signed by the user.
  • a transaction characteristic value such as a transaction hash (as shown in FIG. 11)
  • the transaction hashes may also be verified using the public key of the user that adds the crosschain value to verify that the crosschain value is actually submitted by the same user.
  • the method 500 may further includes steps of obtaining a set of transactions to be processed and determining a transaction characteristic value based on the set of transactions in a conventional manner.
  • the new block may be generated based on the transaction characteristic value and the crosschain characteristic value. For example, as shown in FIG. 11, the set of transaction are included in a body of the new block and the transaction characteristic value (e.g., root hash of transaction) and the crosschain characteristic value are included in a header of the new block.
  • FIG. 12 shows four blockchains a, b, c and d which are coupled to each other.
  • a crosschain value is added to primary blockchain a.
  • regular transaction flow occurs on each of blockchains a, b, c and d.
  • each of blockchains a, b, c and d has a sufficient number of transactions to not be dormant.
  • a new crosschain value is added to the primary blockchain a.
  • blockchain b receives little or no transaction flow while blockchains a, c and d receive regular transaction flow.
  • blockchain b may be considered dormant.
  • a new crosschain value corresponding to secondary blockchains c and d is added to blockchains a.
  • a new crosschain value corresponding to the hashes of secondary blockchains c and d at t2 and b at t1 is added to blockchains a. From time t2 to time t3, blockchains b and c receive no transaction flow while blockchains a and d receive regular transaction flow. At time t3, a new crosschain value corresponding to secondary blockchains d is added to blockchains a. In some cases, a new crosschain value corresponding to the block characteristic values of secondary blockchains d at t3, b at t1 and c at t2 is added to blockchains a. From time t3 to time t4, regular transaction flow is again experienced by blockchains a, b, c and d.
  • the new block of one blockchain may be generated synchronously with a new block of another blockchain (e.g., blockchain d as shown in FIG. 12) of the blockchains b, c and d, so that the new block of the one blockchain and the new block of another blockchain have an identical block height or timestamp.
  • the new block of one given blockchain e.g., blockchain a as shown in FIG. 12
  • the new block of another blockchain e.g., blockchains b or c as shown in FIG. 12
  • the new block of the one given blockchain has a different block height or timestamp than the new block of another blockchain.
  • the identified at least one blockchain may be selected based on whether transaction flow occurs on blockchains associated with the one given blockchain during a period on which a new block is generated.
  • FIG. 13 shows four blockchains a, b, c and d which are coupled to each other.
  • a crosschain value is added to primary blockchain a. From time t0 to time t1, the block height change occurs on each of blockchains a, b, c and d. For instance, each of blockchains a, b, c and d has a sufficient number of transactions to not be dormant.
  • a new crosschain value is added to the primary blockchain a. From time t1 to time t2, blockchain b gets no block height change while the block height of blockchains a, c and d are changed. At time t2, a new crosschain value corresponding to secondary blockchains c and d is appended to blockchains a.
  • a new crosschain value corresponding to the last block characteristic values of secondary blockchains c and d at t2 and b at t1 is appended to blockchains a. From time t2 to time t3, blockchains b and c have no change while blockchains a and d get the height change. At time t3, a new crosschain value corresponding to secondary blockchains d is appended to blockchains a. In some cases, a new crosschain value corresponding to the last block characteristic values of secondary blockchains d at t3, b at t1 and c at t2 is appended to blockchains a. From time t3 to time t4, the block height change is again experienced by blockchains a, b, c and d.
  • the new block of one given blockchain (e.g., blockchain a as shown in FIG. 13) is generated asynchronously with a new block of another blockchain (e.g., blockchains b or c as shown in FIG. 13) of the blockchains b, c and d, so that the new block of the one given blockchain has a different block height or timestamp than the new block of another blockchain.
  • blockchains b or c as shown in FIG. 13 e.g., blockchains b or c as shown in FIG. 13
  • the identified at least one blockchain may be selected based on whether the block height of blockchains associated with the one given blockchain changes during a period on which a new block is generated.
  • the method may further include broadcasting the generated new block to other nodes that are configured to operate on the given blockchain for consensus and validation.
  • the new block may be sent to the consensus nodes or validator nodes for consensus and validation.
  • the new block has passed consensus and validation, it will be propagated throughout the network to be appended to the given blockchain.
  • the method 500 can increase difficulty in replacing a given block by an attacker and thus enhance the security of a multi-dimensional blockchain while increasing scalability.
  • FIG. 14 is a flowchart illustrating another exemplary method 600 for generating a new block of a given blockchain in a blockchain system 400 of FIG. 8.
  • the method 600 can be implemented by any one of nodes 420 of the blockchain system 400, an apparatus 900 of FIG. 17 or a computer device 1100 of FIG. 19.
  • the method 600 is adapted to be executed on one node of the plurality of nodes that is configured to operate on the given blockchain of the plurality of blockchains.
  • the method 600 includes steps S601, S602 and S603.
  • step S601 the method 600 associating at least one blockchain of the plurality of blockchains with the first blockchain.
  • the association relationship among the plurality of blockchains may be changed for a given blockchains.
  • the given blockchain may be a new blockchain created by a node and no association relationship is established in advance.
  • a dynamic association relationship may be used for a given blockchain for better performance of security.
  • Step S602 the method 600 obtains respective block characteristic values of one or more blocks of the associated at least one blockchain.
  • Step S602 is similar to step 502 of the method 500.
  • Step S603 the method 600 generates a new block of the given blockchain based on the respective block characteristic values.
  • Step S603 is similar to step 503 of the method 500.
  • the method 600 may include a step of storing association information identifying association relationship between the given blockchain and the associated at least one blockchain within the new block.
  • the method 600 may include a step of sending association information identifying association relationship between the given blockchain and the associated at least one blockchain to another node that operates on an index blockchain, so that the association information can be stored in the index blockchain and obtained from the index blockchain conveniently.
  • the association information may be in the form as shown in Table 2. It should be understood that the association information may also have other forms.
  • the method 600 may include steps similar to those steps as described above with reference to the method 500.
  • the method 500 can increase difficulty in replacing a given block by an attacker and thus enhance the security of a multi-dimensional blockchain while increasing scalability.
  • FIG. 15 is a flowchart illustrating an exemplary method 700 for verifying data authenticity of a block of a given (or called target) blockchain in a blockchain system 400 of FIG. 8.
  • the method 700 can be implemented by any one of nodes 420 of the blockchain system 400, an apparatus 900 of FIG. 17 or a computer device 1000 of FIG. 18.
  • the method 700 is adapted to be executed on one node of the plurality of nodes that is configured to operate on the given blockchain of a plurality of blockchains.
  • the method 700 includes steps S701, S702, S703 and S704.
  • the method 500 retrieves a block of a given blockchain in a blockchain system.
  • the block may be a new block generated and sent by another node that is configured to operate on the given blockchain and received at one node for consensus and/or validation before the new block is appended to the given blockchain.
  • the block may be a block that has been appended to the given blockchain, and is retrieved by one node for validation.
  • the method 500 identifies at least one blockchain of the plurality of blockchains that is associated with the given blockchain.
  • step S702 may be similarly implemented as step 502 as described above.
  • the method may include steps of obtaining association information that identifies association relationship between the given blockchain and the at least one blockchain and that is stored in the new block; and identifying the at least one blockchain based on the obtained association information.
  • Step S703 the method 700 obtains respective block characteristic values of one or more blocks of the identified at least one blockchain.
  • Step S703 may be similarly implemented as steps S502 and S602 as described above.
  • step S704 the method 700 verifies data authenticity of the block of the given blockchain based on the respective block characteristic values.
  • the method 700 further includes steps of obtaining a first crosschain characteristic value within a block header (or a block body, or part in a block header and part in a block body) of the block and generating a second crosschain characteristic value based on the respective block characteristic values.
  • the method 700 includes verifying the block of the given blockchain based on whether the first crosschain characteristic value matches the second crosschain characteristic value.
  • the crosschain characteristic value may be derived as described above with reference to the method 500.
  • the method 700 further includes steps of obtaining a first crosschain characteristic value, that is digitally signed, within the block (e.g., in a block header, or in a block body, or part in a block header and part in a block body) ; obtaining a public key within the block; verifying the block of the first blockchain based on the public key.
  • the public key can be used to verify if the crosschain characteristic value is correctly signed by the user.
  • a transaction characteristic value such as a transaction hash (as shown in FIG. 11) , may be generated based on the transactions (e.g., transactions 1 to n) and may also be digitally signed by the private key of a same user. Hence, the transaction hashes may also be verified using the public key of the user that added the crosschain value to verify that the crosschain value is actually submitted by the same user.
  • the method 700 can better check whether a given block is replaced by an attacker and thus enhance the security of a multi-dimensional blockchain while increasing scalability.
  • FIG. 16 is a diagram illustrating an exemplary apparatus 800 for generating a new block of a given block in a blockchain system 400 of FIG. 8.
  • the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the apparatus 800 includes an identifying unit 810, an obtaining unit 820 and a generating unit 830.
  • the identifying unit 810 identifies at least one blockchain of the plurality of blockchains that is associated with the given blockchain.
  • the obtaining unit 820 obtains respective block characteristic values of one or more blocks of the identified at least one blockchain.
  • the generating unit 830 generates a new block of the given blockchain based on the respective block characteristic values.
  • the apparatus 800 can implement the method 500 and thus include any additional units configured to implement any additional steps of the method 500 as described above.
  • FIG. 17 is a diagram illustrating an exemplary apparatus 900 for generating a new block of a given block in a blockchain system 400 of FIG. 8.
  • the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the apparatus 900 includes an associating unit 910, an obtaining unit 920 and a generating unit 930.
  • the associating unit 910 associates at least one blockchain of the plurality of blockchains that is associated with the given blockchain.
  • the obtaining unit 920 obtains respective block characteristic values of one or more blocks of the associated at least one blockchain.
  • the generating unit 930 generates a new block of the given blockchain based on the respective block characteristic values.
  • the apparatus 900 can implement the method 600 and thus include any additional units configured to implement any additional steps of the method 600 as described above.
  • FIG. 18 is a diagram illustrating an exemplary apparatus 1000 for verifying data authenticity of a block of a given (or called as target) blockchain in a blockchain system 400 of FIG. 8.
  • the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain.
  • the apparatus 1000 includes a retrieving unit 1010, an identifying unit 1020, an obtaining unit 1030 and a verifying unit 1040.
  • the retrieving unit 1010 retrieves a block of the given blockchain.
  • the identifying unit 1020 identifies at least one blockchain of the plurality of blockchains that is associated with the given blockchain.
  • the obtaining unit 1030 obtains respective block characteristic values of one or more blocks of the identified at least one blockchain.
  • the verifying unit 1040 verifies data authenticity of the block of the given blockchain based on the respective block characteristic values.
  • the apparatus 1000 can implement the method 700 and thus includes any additional units configured to implement any additional steps of the method 700 as described above.
  • FIG. 19 is a diagram illustrating exemplary computer device 1100 for generating a new block of a given blockchain or verifying a block of a given blockchain in a blockchain system 400 of FIG. 8.
  • the computer device 1100 may include at least one processor 1110 and a memory 1120 coupled to the processor 1110.
  • the processor 1110 may be a general-purpose processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof.
  • the memory 1120 may include random access memory (RAM) and read only memory (ROM) .
  • the memory 1120 may store computer-readable, computer-executable software including instructions that, when executed, cause the processor 1110 to perform various functions described herein (e.g., any or all steps of methods 500, 600 and 700, etc. ) .
  • the blockchain system 400 includes a plurality of nodes 420 which operate on a plurality of blockchains (not shown) .
  • Each blockchain of the plurality of blockchains is associated (or coupled) with at least one blockchain of the plurality of blockchains, such that each block of the each blockchain is generated based on respective block characteristic values of one or more blocks of the at least one blockchain that is associated with the each blockchain.
  • each blockchain is a multi-dimensional blockchain as shown in FIG. 4.
  • each blockchain only needs to be associated (or coupled with) a limited number of other blockchains rather than all blockchains for reduced computation complexity and communication bandwidth, and minimum hardware resource.
  • a general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
  • a processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration) .
  • the functions described herein may be performed by one or more other processing units (or cores) , on at least one integrated circuit (IC) .
  • IC integrated circuit
  • different types of ICs may be used (e.g., Structured/Platform ASICs, an FPGA, or another semi-custom IC) , which may be programmed in any manner known in the art.
  • the functions of each unit may also be implemented, in whole or in part, with instructions embodied in a memory, formatted to be executed by one or more general or application-specific processors.
  • Computer-readable media includes both non-transitory computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
  • a non-transitory storage medium may be any available medium that can be accessed by a general purpose or special purpose computer.
  • non-transitory computer-readable media can comprise RAM, ROM, electrically erasable programmable read only memory (EEPROM) , compact disk (CD) ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to carry or store desired program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor.
  • RAM random access memory
  • ROM read only memory
  • EEPROM electrically erasable programmable read only memory
  • CD compact disk
  • magnetic disk storage or other magnetic storage devices or any other non-transitory medium that can be used to carry or store desired program code means in the form of instructions or
  • any connection is properly termed a non-transitory computer-readable medium.
  • the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) , or wireless technologies such as infrared, radio, and microwave
  • the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.
  • Disk and disc include CD, laser disc, optical disc, digital versatile disc (DVD) , floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above are also included within the scope of computer-readable media.
  • Combinations such as “at least one of A, B, or C, ” “at least one of A, B, and C, ” and “A, B, C, or any combination thereof” include any combination of A, B, and/or C, and may include multiples of A, multiples of B, or multiples of C.
  • combinations such as “at least one of A, B, or C, ” “at least one of A, B, and C, ” and “A, B, C, or any combination thereof” may be A only, B only, C only, A and B, A and C, B and C, or A and B and C, where any such combinations may contain one or more member or members of A, B, or C.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A multi-dimensional blockchain architecture in which parallel blockchains are coupled together to form the network. This multi-dimensional blockchain architecture creates a highly scalable and secure blockchain system without sacrificing decentralization and allows the realization of a linear increase in throughput with each additional blockchain added to the system.

Description

MULTI-DIMENSIONAL BLOCKCHAIN ARCHITECTURE
FIELD OF THE DISCLOSURE
The present disclosure relates generally to blockchain technology, and more particularly, to multi-dimensional blockchain architecture.
BACKGROUND
Blockchain technologies have enormous potentials in creating trustless, decentralized applications that help make everyday tasks and transactions more secure and self-governed. The rise and success of decentralized cryptocurrencies such as Bitcoin and Ethereum have proven that blockchain technologies do indeed have real-world values. However, both Bitcoin and Ethereum are encountering low efficiency issues with low throughput, high transaction latency, and huge energy consumption. Scalability remains a crucial challenge for blockchains.
One solution to the scalability issue and low performance problems of blockchains is to use the sharding technology, which partitions the blockchain network into multiple small groups (called shards) of validators and lets them process transactions in parallel to improve processing efficiency. Instead of validating each and every transaction across every node, the sharding-based system distributes the workload and all shards are vulnerable to a single-shard attack. Consequently, the sharding-based system is made to be scalable at the cost of security. Other solutions to the scalability issue and low performance problems such as off-chain technology and scalable consensus mechanisms may similarly lack the ability in maintaining a blockchain’s network integrity from threats and malicious attacks while increasing scalability.
SUMMARY OF THE DISCLOSURE
In accordance with a first exemplary aspect of the disclosure, a method for generating a new block of a given blockchain in a blockchain system is provided and the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The method is adapted to be executed on one node of the plurality of nodes that operates on the given blockchain. The  method comprises steps of identifying at least one blockchain of the plurality of blockchains that is associated with the given blockchain; obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and generating a new block of the given blockchain based on the respective block characteristic values.
In further accordance with the foregoing first exemplary aspect, the method may include any one or more of the following further examples, either in combination or singularly.
In one embodiment, the method may comprise steps of identifying all blockchains that are associated with the given blockchain from among the plurality of blockchains; and selecting the at least one blockchain from the identified all blockchains.
In one embodiment, the plurality of blockchains may contain an index blockchain that stores association information identifying association relationships among the plurality of blockchains. The method comprises steps of obtaining association information from the second blockchain and determining the at least one blockchain based on the association information.
In another embodiment, the index blockchain may further store a block characteristic value of each block of each blockchain of the plurality of blockchains. The method comprises a step of obtaining the respective block characteristic values from the index blockchain.
In another embodiment, the method may comprise a step of obtaining the respective block characteristic values of the one or more blocks based on a timestamp or a block height of the new block.
In another embodiment, the method may comprise a step of obtaining the respective block characteristic values from at least one node of the plurality of nodes that operates on the identified at least one blockchain.
In another embodiment, the at least one node may include the one node.
In another embodiment, the method may comprise steps of generating a crosschain characteristic value based on the respective block characteristic values and storing the crosschain characteristic value within a block header of the new block. For example, the crosschain characteristic value may be generated based on the respective block characteristic values by performing Merkle operation.
In another embodiment, the method may comprise steps of obtaining respective block heights of the one or more blocks within the identified at least one blockchain and generating the new block of the given blockchain based on the respective block characteristic values and the respective block heights.
In another embodiment, the respective block characteristic value of at least one of the one or more blocks may comprise a header characteristic value generated based on a block header of the at least one of the one or more blocks.
In another embodiment, the method may comprise a step of generating the new block based on the respective block characteristic values and a block characteristic value of at least one block in the given blockchain that precedes the new block. The at least one block may include a parent block of the new block.
In another embodiment, the new block of the given blockchain is generated synchronously with a new block of a blockchain of the identified at least one blockchain, so that the new block of the given blockchain and the new block of the blockchain of the identified at least one blockchain have an identical block height or timestamp.
In another embodiment, the new block of the given blockchain is generated asynchronously with a new block of a blockchain of the identified at least one blockchain, so that the new block of the given blockchain has a different block height or timestamp than the new block of the blockchain of the identified at least one blockchain.
In another embodiment, the method may further comprise steps of digitally signing the crosschain characteristic value using a private key of a user and storing a public key corresponding to the private key within the block header of the new block.
In accordance with a second exemplary aspect of the disclosure, a method for generating a new block of a given blockchain in a blockchain system is provided and the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The method is adapted to be executed on one node of the plurality of nodes that operates on the given blockchain. The method comprises steps of associating at least one blockchain of the plurality of blockchains that is associated with the given blockchain; obtaining respective block characteristic values of one or more blocks of the associated at least one blockchain;  and generating a new block of the given blockchain based on the respective block characteristic values.
In one embodiment, the method may comprise a step of storing association information identifying association relationship between the given blockchain and the associated at least one blockchain within the new block.
In accordance with a third exemplary aspect of the disclosure, a method of verifying data authenticity of a block of a given blockchain in a blockchain system is provided and the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The method is adapted to be executed on one node of the plurality of nodes that operates on the given blockchain. The method comprises steps of retrieving a block of the given blockchain; identifying at least one blockchain of the plurality of blockchains that is associated with the first blockchain; obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and verifying data authenticity of the block of the given blockchain based on the respective block characteristic values.
In further accordance with the foregoing second exemplary aspect, the method may include any one or more of the following further examples, either in combination or singularly.
In one embodiment, the method may comprise steps of obtaining a first crosschain characteristic value within a block header of the block; generating a second crosschain characteristic value based on the respective block characteristic values; and verifying data authenticity of the block of the first blockchain based on whether the first crosschain characteristic value matches the second crosschain characteristic value.
In another embodiment, the method may comprise steps of obtaining a first crosschain characteristic value, that is digitally signed, within the block; obtaining a public key within the block; verifying data authenticity of the block of the given blockchain based on the public key.
In accordance with a fourth exemplary aspect of the disclosure, an apparatus for generating a new block of a given blockchain in a blockchain system is provided and the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The apparatus comprises an identifying unit configured to identify at least one blockchain of the plurality of blockchains that is associated with the given blockchain; an obtaining unit configured to obtain  respective block characteristic values of one or more blocks of the identified at least one blockchain; and a generating unit configured to generate a new block of the given blockchain based on the respective block characteristic values.
In accordance with a fifth exemplary aspect of the disclosure, an apparatus for generating a new block of a given blockchain in a blockchain system is provided and the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The apparatus comprises an associating unit configured to associate at least one blockchain of the plurality of blockchains with the given blockchain; an obtaining unit configured to obtain respective block characteristic values of one or more blocks of the associated at least one blockchain; and a generating unit configured to generate a new block of the given blockchain based on the respective block characteristic values.
In accordance with a sixth exemplary aspect of the disclosure, an apparatus for verifying data authenticity of a block in a blockchain system is provided and the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The apparatus comprises a retrieving unit configured to retrieve a block of the given blockchain; an identifying unit configured to identify at least one blockchain of the plurality of blockchains that is associated with the given blockchain; an obtaining unit configured to obtain respective block characteristic values of one or more blocks of the identified at least one blockchain; and a verifying unit configured to verify data authenticity of the block of the given blockchain based on the respective block characteristic values.
In accordance with a seventh exemplary aspect of the disclosure, an apparatus for generating a new block of a given blockchain in a blockchain system is provided and the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The apparatus comprises means for identifying at least one blockchain of the plurality of blockchains that is associated with the given blockchain; means for obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and means for generating a new block of the given blockchain based on the respective block characteristic values.
In accordance with an eighth exemplary aspect of the disclosure, an apparatus for verifying data authenticity of a block of a given blockchain in a blockchain system is  provided and the blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The apparatus comprises means for retrieving a block of the given blockchain; means for identifying at least one blockchain of the plurality of blockchains that is associated with the given blockchain; means for obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and means for verifying data authenticity of the block of the given blockchain based on the respective block characteristic values.
In accordance with a ninth exemplary aspect of the disclosure, a blockchain system is provided. The blockchain system comprises a plurality of nodes which operate on a plurality of blockchains, wherein each blockchain of the plurality of blockchains is associated with at least one blockchain of the plurality of blockchains, such that each block of the each blockchain is generated based on respective block characteristic values of one or more blocks of the at least one blockchain that is associated with the each blockchain.
In accordance with a tenth exemplary aspect of the disclosure, a computer device is provided. The computer device comprises at least one processor and a memory storing instructions, which when executed cause the at least one processor to implement any one of the foregoing first, second or third exemplary aspects.
In accordance with an eleventh exemplary aspect of the disclosure, a computer readable storage medium is provided. The computer readable storage medium stores computer executable instructions for implementing any one of the foregoing first, second or third exemplary aspects.
In accordance with a twelfth exemplary aspect of the disclosure, a computer program product tangibly stored in a computer readable storage medium is provided. The computer program product stores computer executable instructions, which when executed cause at least one processor to implement any one of the foregoing first, second or third exemplary aspects.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram illustrating a conventional single-chain architecture.
FIG. 2 is a diagram illustrating a conventional multi-chain architecture.
FIG. 3 is a diagram illustrating exemplary blocks of a conventional blockchain of FIG. 1 or FIG. 2.
FIG. 4 is a diagram illustrating an exemplary multi-dimensional blockchain architecture according to embodiments of the disclosure.
FIG. 5 is a diagram illustrating a logical representation of a first exemplary multi-dimensional blockchain architecture according to embodiments of the disclosure.
FIG. 6 is a diagram illustrating a logical representation of a second exemplary multi-dimensional blockchain architecture according to embodiments of the disclosure.
FIG. 7 is a diagram illustrating a logical representation of a third exemplary multi-dimensional blockchain architecture according to embodiments of the disclosure.
FIG. 8 is a diagram illustrating an exemplary blockchain system according to embodiments of the disclosure.
FIG. 9 is a flowchart illustrating an exemplary method for generating a new block of a given blockchain in a blockchain system of FIG. 7.
FIG. 10 is a diagram illustrating exemplary blocks of a multi-dimensional blockchain according to embodiments of the disclosure.
FIG. 11 is a diagram illustrating an example of blocks of FIG. 9.
FIG. 12 is a diagram illustrating an example of generation of the crosschain value in a homogenous multiple chain structure according to embodiments of the disclosure.
FIG. 13 is a diagram illustrating an example of generation of the crosschain value in a heterogenous chain structure or a mixed heterogenous-homogenous chain structure.
FIG. 14 is a flowchart illustrating another exemplary method for generating a new block of a given blockchain in a blockchain system of FIG. 7.
FIG. 15 is a flowchart illustrating an exemplary method for verifying data authenticity of a block of a given blockchain in a blockchain system of FIG. 7.
FIG. 16 is a diagram illustrating an exemplary apparatus for generating a new block of a given blockchain in a blockchain system of FIG. 7.
FIG. 17 is a diagram illustrating another exemplary apparatus for generating a new block of a given blockchain in a blockchain system of FIG. 7.
FIG. 18 is a diagram illustrating an exemplary apparatus for verifying data authenticity of a block of a given blockchain in a blockchain system of FIG. 7.
FIG. 19 is a diagram illustrating an exemplary computer device for generating a new block of a given blockchain or verifying data authenticity of a block of a given blockchain in a blockchain system of FIG. 8.
DETAILED DESCRIPTION
The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well known structures and components are shown in the block diagram form in order to avoid obscuring such concepts.
A blockchain is a form of distributed ledger. Blockchain creates an unchangeable ledger of records maintained by a decentralized network after a consensus approves all the records.
In this disclosure, the term “ledger” refers to a data storage mechanism for storing blockchain data that has been consented upon.
In this disclosure, the term “node” means a software module residing on a server or other computing device that communicates within the blockchain network for the purpose of completing transactions, establishing a consensus, and storing data related to the blockchain. A node may be represented as a physical server, a physical client, a virtual server, or a container.
In this disclosure, the term "transaction" means any type of blockchain-based transaction, whether referenced as a transaction or as a contract.
In this disclosure, the term “block characteristic value” of a data block (or called as block) of a blockchain refers to a value derived from any portion of the data block, e.g., at least a part of a block header (or called as header) , at least a part of a block body (or called as body) , or the combination thereof. The derivation may be performed at a node that operates on the blockchain.
In this disclosure, the term “block height” of a block of a blockchain refers to a position of the block in the blockchain. For example, when the block height equals 5, it refers to a fifth block in a block chain from an initial block or genius block.
FIG. 1 is a diagram illustrating a conventional single-chain architecture 100. The architecture 100 shows a conventional blockchain 110 having a chain of blocks 111 (e.g., block i) linked to a previous block (or called parent block) in the chain.
FIG. 2 is a diagram illustrating a conventional multi-chain architecture 200. The architecture 200 shows four  conventional blockchains  210, 220, 230, 240 and the  blockchains  210, 220, 230, 240 has a chain of  blocks  211, 221, 231 and 241 respectively (e.g., block i) linked to a previous block in the chain. All of the blockchains 210 to 240 are independent from each other to increase scalability. However, each blockchain is only a one-dimensional chain and vulnerable to an attack to each chain.
For example, the architecture 200 may be a sharding-based architecture and each of the  blockchains  210, 220, 230, 240 is a sharded chain. Further, a main chain is required. In a PoS Ethereum, a main chain (Beacon Chain) will serve as the consensus and coordination layer for shard chains. All shard chains are tightly coupled with the main chain, strengthening the security of the system. Shard blocks can only be valid if approved by the main chain. However, each sharded chain is only a one-dimensional single chain and vulnerable to an attack to each sharded chain.
FIG. 3 is a diagram illustrating exemplary blocks of the conventional blockchain 110 of FIG. 1 or any of the conventional blockchains 210 to 240 of FIG. 2. The blockchain includes a set of data blocks (e.g., blocks i, i+1, m) , in which each data block includes data that represents any transactions (e.g., transactions 1 to n) . Once new transactions are proposed to the blockchain and validated by validator nodes, additional data blocks are generated by the validator nodes and appended to the blockchain as a part of the ledger. Each new data block includes a set of validated transactions and a hash of the content of the immediately previous data block. For instance, next data block includes a hash of the content of previous (i.e., parent) block (e.g., a header characteristic value of the previous block) , the m-th block includes a hash of the content of (m-1) -th block, etc.
Examples of the conventional blockchains include Bitcoin, Ethereum, or other similar blockchains. However, they are encountering low efficiency issues with low  throughput, high transaction latency, and huge energy consumption. Further, current solutions to the scalability issue and low performance problems may lack the ability in maintaining a blockchain’s network integrity from threats and malicious attacks while increasing scalability.
FIG. 4 is a diagram illustrating an exemplary multi-dimensional blockchain architecture 300 according to embodiments of the disclosure. The architecture 300 shows four  parallel blockchains  310, 320, 330 and 340, each of which has a chain of blocks (e.g., blocks 311, 321, 331, 341) linked to a previous block in the chain in a conventional manner. Further, a block of each blockchain is generated based on other blocks from other blockchains. In the example of FIG. 4, block i2 of the blockchain 320 is generated based on block i1 of the blockchain 310 and blocks i3 and i4 of the blockchain 330 (as indicated by the linked lines) . Hence, the blockchain 320 is associated with the  blockchains  310 and 330. In other words, the blockchain 320 is “coupled” to  blockchains  310 and 330. Also in the example of FIG. 4, block i5 of the blockchain 340 is generated based on block i4 of the blockchain 330 and block i6 of the blockchain 340 itself (as indicated by the linked lines) . Hence, the blockchain 340 is associated with the blockchains 330. In other words, the blockchain 340 is “coupled” to blockchain 330. In the architecture 300, each parallel blockchain may be coupled to the preceding blocks of other blockchains at the same or different block height.
The multi-dimensional blockchain topology, in which the parallel chains are bound together to form a multi-dimensional blockchain network, supports parallelism as a way to linearly increase throughput with each additional chain added to the system. There are no upper bounds on network size. A scaled multi-dimensional blockchain network is capable of running over tens of thousands of chains simultaneously, increasing throughput to feed the requirements from such as modern financial payment systems or other applications. Further, this architecture increases security assurance exponentially. If an attacker wants to replace a given block, every block that directly or indirectly couples with this block must be replaced. Because such an attack would require enormous resource (such as computation and/or stakes) , the existence of the multiple chains of blocks makes the blockchain’s deep history immutable, which is one of the key features of a multi-dimensional blockchain’s security.
FIG. 5 is a diagram illustrating a logical representation of a first exemplary multi-dimensional blockchain architecture, FIG. 6 is a diagram illustrating a logical representation of a second exemplary multi-dimensional blockchain architecture and FIG. 7 is a diagram illustrating a logical representation of a third exemplary multi-dimensional blockchain architecture.
The first, second and third exemplary multi-dimensional blockchain architectures show some examples derived from graph theory to make the multi-dimensional blockchain more efficient by increasing the network throughput while keeping the computation power constant. The base graphs (ss shown in FIGS. 5 to 7) are used to structure the interaction of chains in the topology, and can be viewed as the instructions for how to bind the chains together. Each base graph G (V, E) includes a set of vertices V and a set of edges E, where a vertex is represented by a solid circle and an edge is represented by a line extending from one vertex to another. Each base graph G also has a set of rings R, each ring R is a cycle comprised a number of vertices and a number of edges as shown in FIGS. 5 to 7. The base graph can be easily configured and extended. Each vertex V in the graphs represents a chain. The number of vertices represents the total chain number (e.g., CH0, CH1, ..., CH (n-1) ) , which prompts the overall throughput of the blockchain network. The degree of each vertex V of the graph represents the number of edges connected between the vertex and other vertices and defines other chains that must couple to a chain represented by the vertex. The edges E of a vertex V indicate links between the specific peer chains with which a given chain must couple. The chain topology can be expressed through the following equations:
Nt = Np·Nr, Nr ≥ 2                      (1)
where Nt is the total number of chains, Np is the number of the peer rings in the graph, and Nr is the number of chains per ring, which could be:
Nr = 2m, m ≥ 2 and m is an integer        (2)
The structure of Nr = 4 is shown in FIG. 4, Nr = 6 is shown in FIG. 5, and Nr = 16 is shown in FIG. 6.
In the examples of FIGS. 5 to 7, each vertex is connected to three other vertices and thus each blockchain is coupled to three chains. For example, each chain is coupled to two chains on the same ring and coupled to another chain on another ring.
In the example of FIG. 5, chain CH3 is coupled to chains CH0 and CH2 on the same ring and coupled to chain CH7 on another ring. Also as shown in FIG. 5, chain CH0 is coupled to chains CH1 and CH3 on the same ring and coupled to chain CH (n-4) on another ring.
In the example of FIG. 6, chain CH3 is coupled to chains CH2 and CH4 on the same ring and coupled to chain CH9 on another ring. Also as shown in FIG. 6, chain CH0 is coupled to chains CH1 and CH5 on the same ring and coupled to chain CH (n-6) on another ring.
In the example of FIG. 7, chain CH3 is coupled to chains CH2 and CH4 on the same ring and coupled to chain CH19 on another ring. Also as shown in FIG. 7, chain CH0 is coupled to chains CH1 and CH15 on the same ring and coupled to chain CH (n-16) on another ring.
Each block of each chain as shown in FIGS. 5 to 7 may be generated based on one or more blocks from other chains associated with the each chain, thus the each chain becomes a multi-dimensional chain present in this disclosure.
The graphs show the association relationships among a plurality of blockchains. The association information identifying association relationships among the plurality of blockchains may be stored in a separate blockchain (e.g., an index chain) or a database. For example, information of the vertex, degrees of each vertex, and each edge may be stored as association information.
In an example, the association information may be shown as Table 1.
Figure PCTCN2022121874-appb-000001
Table 1: Association information
In this example, the association relationship among the plurality of blockchains may be established in advance and do not change for all blockchains. For instance, the association relationship may be established based on base graphs as shown in FIGS. 5 to 7. The first column of Table 1 represents a primary chain and the second column  of Table 1 represents secondary chains that are associated with (or called as coupled to) the primary chain. The primary and secondary chains may be any multi-dimensional chain present in this disclosure.
In another example, the association information may be shown as Table 2.
Figure PCTCN2022121874-appb-000002
Table 2: Association information
In this example, the association relationship among the plurality of blockchains may change block-by-block. The first column of Table 2 represents a primary chain, the second column of Table 2 represents secondary chains that are associated with (or called as coupled to) the primary chain, and third column of Table 2 represents a block height for each block in the primary chain. The primary and secondary chains may be any multi-dimensional chain present in this disclosure. As shown in Table 2, at block 1, chain CH0 is coupled to chains CH1, CH 3 and CH (n-3) . At block 2, chain CH0 is changed to be coupled to less chain CH1 and CH3. At block 3, chain CH0 is changed to be coupled to more chains CH1, CH 3 and CH4.
In some examples, the association relationship among the plurality of blockchains may be configured in advance based on a particular rule. For example, the association relationship for each chain in FIGS. 5 to 7 can be easily derived based on a chain number of the chain in the base graph. Hence, only the association information indicating the particular rule need to be stored.
It should be understood that the above examples for association information are exemplary only and not limiting. The association information may also have other forms.
FIG. 8 is a diagram illustrating a blockchain system 400 according to embodiments of the disclosure. The blockchain system 400 includes a plurality of nodes 420 that operates on a plurality of blockchains (not shown) , wherein each of the plurality of blockchains may be any multi-dimensional chain present in this disclosure. Nodes 420 may include a storage 421 that stores at least a portion of a ledger 422 of one of  blockchains. The at least portion of the ledger contains information about new block that has been validated and added to the blockchain. Each node 420 may store the entire ledger 422 or a portion of ledger 422 of the blockchain. Nodes 420 may communicate with one another via a communication network 410, e.g., wired or wireless connections 430, over the Internet, etc. to transmit and receive related data. For instance, as new data blocks are added to ledger, nodes may communicate or share the new data blocks via the communication network 410. For example, each node 420 may be configured to operate on one or more blockchains of the plurality of blockchains. Each node 420 may be represented as a physical server, a physical client, a virtual server, or a container.
Some nodes 420 may act as validator nodes. Any transactions proposed to a blockchain are validated by a set of validator nodes associated with the blockchain in a conventional manner. For instance, transactions may be broadcast to one or more of the validator nodes of the blockchain and may be shared between the validator nodes for validation and consensus. Each validator node determines whether a transaction is valid and whether the transaction complies with the rules of the blockchain. The validator node adds a set of the validated transactions to a data block and proposes the data block for consensus by all or some of the other validator nodes of the blockchain. The other validator nodes then consensus the data block containing the transactions to the blockchain. A consensus of the set of validator nodes is required to allow or deny the data block to be appended to the blockchain. In some examples, one or more of nodes 420 may also be validator nodes for different blockchains. In some examples, nodes that are not validator nodes may perform processing such as receiving transaction submissions, handling application programming interface (API) requests from users, providing application services, or other similar functions. In this manner, the processing power of the validator nodes may be preserved for generating new blocks, reaching consensus, and monitoring the other validator nodes. Validator nodes may communicate with one another via network to send and receive data. For instance, as new data blocks are generated by validator nodes, validator nodes of the blockchain may communicate or share the new data blocks and send and receive consensus messages via the network 410.
For two blockchains that are coupled together, there may be a peer communication path between one node 420 configured to operate on one blockchain and one node  420 configured to operate on the other blockchain. If a node 420 is configured to operate on the two coupled blockchains, it may directly obtain data from the two blockchains. In some cases, data from another blockchain may be obtained by communication between one node 420 and another node 420 or by invoking data acquiring service or interface of one node 420 from another node 420.
In one example, each node 420 of the block system 400 can be configured to generate a new block of a given (or called as target) blockchain to form a multi-dimensional blockchain based on block (s) from other blockchain (s) associated with the given blockchain. The given blockchain can be any one of a plurality blockchains operated by a plurality of nodes 420 in the blockchain system 400.
In one example, each node 420 of the block system 400 can be configured to verify data authenticity of a block of a given (or called as target) blockchain, wherein the block is generated based on block (s) from other blockchain (s) associated with the given blockchain. The given blockchain can be any one of a plurality blockchains operated by a plurality of nodes 420 in the blockchain system 400.
FIG. 9 is a flowchart illustrating an exemplary method 500 for generating a new block of a given (or called target) blockchain in a blockchain system 400 of FIG. 8. The method 500 can be implemented by any one of nodes 420 of the blockchain system 400, an apparatus 800 of FIG. 16 or a computer device 1100 of FIG. 19. For example, the method 500 is adapted to be executed on one node of the plurality of nodes that is configured to operate on the given blockchain of a plurality of blockchains. The method 500 includes steps S501, S502 and S503.
At step S501, the method 500 identifies at least one blockchain from among the plurality of blockchains that is associated with the first blockchain.
In some examples, the method 500 may comprise steps of identifying all blockchains that are associated with the given blockchain from among the plurality of blockchains and selecting the at least one blockchain from the identified all blockchains.
In some examples, the method 500 may further include a step of obtaining association information identifying association relationships among the plurality of blockchains. At step S501, the method 500 may identify the at least one blockchain based on the association information. As described above, the association information may be stored in an index chain of the plurality of blockchains or a database separate from the blockchains and obtained from the index blockchain or the database conveniently.
At step S502, the method 500 obtains respective block characteristic values of one or more blocks of the identified at least one blockchain.
In some examples, the one or more blocks may be randomly selected from the identified at least one blockchain. In some examples, the one or more blocks may be selected from the identified at least one blockchain based on a particular rule. For instance, the particular rule may specify that the latest one or more blocks of the identified at least one blockchain are to be selected.
In some examples, the method 500 may obtain the respective block characteristic values of the one or more blocks based on a timestamp or a block height of the new block. For example, the new block must be generated based on one or more blocks that have a timestamp earlier than a timestamp of the new block or have a block height smaller than a block height of the new block. In this case, on one or more blocks that have a timestamp earlier than a timestamp of the new block or have a block height smaller than a block height of the new block are to be selected.
In some examples, the respective block characteristic values of the one or more blocks of the identified at least one blockchain may be stored in the index blockchain or the database and obtained from the second blockchain or the database conveniently.
In some examples, the respective block characteristic values may be obtained from at least one node of the plurality of nodes that operates on the identified at least one blockchain. As described above, data from another blockchain may be obtained by communication between one node and another node or by invoking data acquiring service or interface of one node from another node. In some cases, one node may be configured to operate on two or more blockchains containing the given blockchain and thus the at least one node includes the one node. In some cases, the at least one node may not include the one node as the one node is not configured to operate on the identified at least one blockchain.
In some examples, the respective block characteristic value of at least one of the one or more blocks may include a header characteristic value generated based on a block header of the at least one of the one or more blocks.
At step S503, the method 500 generates a new block of the given blockchain based on the respective block characteristic values.
In some examples, the method 500 may generate a crosschain characteristic value (simply referred as “crosschain value” ) based on the respective block characteristic  values and storing the crosschain characteristic value within a block header of the new block. In some cases, the crosschain characteristic value may be stored in a block body of the new block. In some cases, a part of the crosschain characteristic value may be stored in a block header of the new block and the remaining of the crosschain characteristic value may be stored in a block body of the new block. The crosschain characteristic value may be used to verify data authenticity of the generated block because every block from other blockchains that directly or indirectly couples with the generated block must be replaced if an attacker wants to replace a given block.
Now referring to FIG. 10, exemplary blocks of a blockchain of the multi-dimensional blockchain architecture according to embodiments of this disclosure is illustrated. Compared with blocks of the conventional blockchain 110 as shown in FIG. 3, each block of a given blockchain (e.g., chains 310~340 of FIG. 4, chains CHi (i = 0, .., n-1) of FIGS. 5 to 7) includes one or more additional crosschain values generated from one or more blocks of other blockchains that are coupled to the given blockchain. Similar to FIG. 3, each new data block includes a set of transactions and a hash of the content of the immediately previous data block. As an example, blockchain Ci may be a chain CH5 associated with chains CH0, CH4 and CH6 as shown in FIG. 6. For each new block of CH5, the new block may be generated by adding a crosschain value derived from respective block characteristic values of blocks of chains CH0, CH4 and CH6 into the new block.
FIG. 11 is a diagram illustrating an example of blocks of FIG. 10 according to embodiments of this disclosure. As shown in FIG. 11, Block i contains a block header including header characteristic value (i.e., previous hash) of a previous block, root hash of transactions and nonce, and a block body including transactions in a conventional manner. Further, Block i contains a crosschain value derived from block (s) from other blockchain (s) . In the example of FIG. 11, the crosschain value may be a crosschain hash which may be computed by performing Merkle operation on the respective block characteristic values. For example, the respective block characteristic values may be H1, H2, H3 and H4 and the crosschain hash is derived as Hash (Hash (H1, H2) , Hash (H3, H4) ) , wherein Hash () represents a hash function that can be used to map data of arbitrary size to fixed-size values. The Merkle operation consumes little resource for computing and is performed very fast. It should be  understood that the crosschain value may also be generated by performing other operation.
In some examples, the method 500 may further include a step of obtaining respective block heights of the one or more blocks within the at least one blockchain. The method 500 may generate the new block of the given blockchain based on the respective block characteristic values and the respective block heights. As an example shown in FIG. 11, in addition to the crosschain value, the block header of the new block may include heights of the secondary (i.e., associated) blockchains, e.g., heights of the one or more blocks from the identified at least one blockchain. In some cases, heights of the secondary blockchains need not to be included in the new block (e.g., in a header) if the one or more blocks are determined according to a particular rule. In an example, the particular rule may specify that the latest one or more blocks of the identified at least one blockchain are used. For instance, the one or more blocks are determined to be blocks having timestamp or block height closest to timestamp or block height of the new block.
In some examples, the method may generate the new block based on the respective block characteristic values of the identified at least one blockchain and a block characteristic value of at least one block in the given blockchain that precedes the new block. The at least one block may include a parent block of the new block. In some cases, height of the at least one block may be included in the new block. In some cases, height of the at least one block may not be included in the new block if the at least one block is determined according to a particular rule. In an example, the particular rule may specify that the latest one or more blocks closest to the new block in the given blockchain are used. For instance, the one or more blocks are determined to be blocks having block height closest to block height of the new block.
In some examples, the method 500 may further include steps of digitally signing the crosschain characteristic value using a private key of a user and including a public key corresponding to the private key within the block header of the new block. The public key can be used to verify if the crosschain characteristic value is correctly signed by the user. Further, a transaction characteristic value, such as a transaction hash (as shown in FIG. 11) , may be generated based on the transactions (e.g., transactions 1 to n) and may also be digitally signed by the private key of a same user. Hence, the transaction hashes may also be verified using the public key of the user  that adds the crosschain value to verify that the crosschain value is actually submitted by the same user.
In some examples, the method 500 may further includes steps of obtaining a set of transactions to be processed and determining a transaction characteristic value based on the set of transactions in a conventional manner. The new block may be generated based on the transaction characteristic value and the crosschain characteristic value. For example, as shown in FIG. 11, the set of transaction are included in a body of the new block and the transaction characteristic value (e.g., root hash of transaction) and the crosschain characteristic value are included in a header of the new block.
Now referring to FIG. 12, an example of the generation of the crosschain value in a homogenous multiple chain structure according to embodiments of the disclosure is illustrated. FIG. 12 shows four blockchains a, b, c and d which are coupled to each other.
At time t0, a crosschain value is added to primary blockchain a. From time t0 to time t1, regular transaction flow occurs on each of blockchains a, b, c and d. For instance, each of blockchains a, b, c and d has a sufficient number of transactions to not be dormant. At time t1, a new crosschain value is added to the primary blockchain a. From time t1 to time t2, blockchain b receives little or no transaction flow while blockchains a, c and d receive regular transaction flow. For instance, blockchain b may be considered dormant. At time t2, a new crosschain value corresponding to secondary blockchains c and d is added to blockchains a. In some cases, a new crosschain value corresponding to the hashes of secondary blockchains c and d at t2 and b at t1 is added to blockchains a. From time t2 to time t3, blockchains b and c receive no transaction flow while blockchains a and d receive regular transaction flow. At time t3, a new crosschain value corresponding to secondary blockchains d is added to blockchains a. In some cases, a new crosschain value corresponding to the block characteristic values of secondary blockchains d at t3, b at t1 and c at t2 is added to blockchains a. From time t3 to time t4, regular transaction flow is again experienced by blockchains a, b, c and d.
As shown in FIG. 12, in some cases, the new block of one blockchain (e.g., blockchain a as shown in FIG. 12) may be generated synchronously with a new block of another blockchain (e.g., blockchain d as shown in FIG. 12) of the blockchains b, c and d, so that the new block of the one blockchain and the new block of another blockchain  have an identical block height or timestamp. As shown in FIG. 12, in some cases, the new block of one given blockchain (e.g., blockchain a as shown in FIG. 12) is generated asynchronously with a new block of another blockchain (e.g., blockchains b or c as shown in FIG. 12) of the blockchains b, c and d, so that the new block of the one given blockchain has a different block height or timestamp than the new block of another blockchain.
Further, the identified at least one blockchain may be selected based on whether transaction flow occurs on blockchains associated with the one given blockchain during a period on which a new block is generated.
Now referring to FIG. 13, an example of the generation of the crosschain value in a heterogenous chain structure or a mixed heterogenous-homogenous chain structure according to embodiments of the disclosure is illustrated. FIG. 13 shows four blockchains a, b, c and d which are coupled to each other.
At time t0, a crosschain value is added to primary blockchain a. From time t0 to time t1, the block height change occurs on each of blockchains a, b, c and d. For instance, each of blockchains a, b, c and d has a sufficient number of transactions to not be dormant. At time t1, a new crosschain value is added to the primary blockchain a. From time t1 to time t2, blockchain b gets no block height change while the block height of blockchains a, c and d are changed. At time t2, a new crosschain value corresponding to secondary blockchains c and d is appended to blockchains a. In some cases, a new crosschain value corresponding to the last block characteristic values of secondary blockchains c and d at t2 and b at t1 is appended to blockchains a. From time t2 to time t3, blockchains b and c have no change while blockchains a and d get the height change. At time t3, a new crosschain value corresponding to secondary blockchains d is appended to blockchains a. In some cases, a new crosschain value corresponding to the last block characteristic values of secondary blockchains d at t3, b at t1 and c at t2 is appended to blockchains a. From time t3 to time t4, the block height change is again experienced by blockchains a, b, c and d.
As shown in FIG. 13, in some cases, the new block of one given blockchain (e.g., blockchain a as shown in FIG. 13) is generated asynchronously with a new block of another blockchain (e.g., blockchains b or c as shown in FIG. 13) of the blockchains b, c and d, so that the new block of the one given blockchain has a different block height or timestamp than the new block of another blockchain.
Further, the identified at least one blockchain may be selected based on whether the block height of blockchains associated with the one given blockchain changes during a period on which a new block is generated.
Now turning back to FIG. 9, in some examples, the method may further include broadcasting the generated new block to other nodes that are configured to operate on the given blockchain for consensus and validation. For example, the new block may be sent to the consensus nodes or validator nodes for consensus and validation. When the new block has passed consensus and validation, it will be propagated throughout the network to be appended to the given blockchain.
Since the new block is generated based on block (s) of other blockchain (s) , the method 500 can increase difficulty in replacing a given block by an attacker and thus enhance the security of a multi-dimensional blockchain while increasing scalability.
FIG. 14 is a flowchart illustrating another exemplary method 600 for generating a new block of a given blockchain in a blockchain system 400 of FIG. 8. The method 600 can be implemented by any one of nodes 420 of the blockchain system 400, an apparatus 900 of FIG. 17 or a computer device 1100 of FIG. 19. For example, the method 600 is adapted to be executed on one node of the plurality of nodes that is configured to operate on the given blockchain of the plurality of blockchains. The method 600 includes steps S601, S602 and S603.
At step S601, the method 600 associating at least one blockchain of the plurality of blockchains with the first blockchain.
In some cases, the association relationship among the plurality of blockchains may be changed for a given blockchains. As an example, the given blockchain may be a new blockchain created by a node and no association relationship is established in advance. As another example, a dynamic association relationship may be used for a given blockchain for better performance of security.
At step S602, the method 600 obtains respective block characteristic values of one or more blocks of the associated at least one blockchain. Step S602 is similar to step 502 of the method 500.
At step S603, the method 600 generates a new block of the given blockchain based on the respective block characteristic values. Step S603 is similar to step 503 of the method 500.
In some examples, the method 600 may include a step of storing association information identifying association relationship between the given blockchain and the associated at least one blockchain within the new block.
In some examples, the method 600 may include a step of sending association information identifying association relationship between the given blockchain and the associated at least one blockchain to another node that operates on an index blockchain, so that the association information can be stored in the index blockchain and obtained from the index blockchain conveniently.
The association information may be in the form as shown in Table 2. It should be understood that the association information may also have other forms.
The method 600 may include steps similar to those steps as described above with reference to the method 500.
Since the new block is generated based on block (s) of other blockchain (s) , the method 500 can increase difficulty in replacing a given block by an attacker and thus enhance the security of a multi-dimensional blockchain while increasing scalability.
FIG. 15 is a flowchart illustrating an exemplary method 700 for verifying data authenticity of a block of a given (or called target) blockchain in a blockchain system 400 of FIG. 8. The method 700 can be implemented by any one of nodes 420 of the blockchain system 400, an apparatus 900 of FIG. 17 or a computer device 1000 of FIG. 18. For example, the method 700 is adapted to be executed on one node of the plurality of nodes that is configured to operate on the given blockchain of a plurality of blockchains. The method 700 includes steps S701, S702, S703 and S704.
At step S701, the method 500 retrieves a block of a given blockchain in a blockchain system. In one example, the block may be a new block generated and sent by another node that is configured to operate on the given blockchain and received at one node for consensus and/or validation before the new block is appended to the given blockchain. In another example, the block may be a block that has been appended to the given blockchain, and is retrieved by one node for validation.
At step S702, the method 500 identifies at least one blockchain of the plurality of blockchains that is associated with the given blockchain.
In some examples, step S702 may be similarly implemented as step 502 as described above.
In some examples, the method may include steps of obtaining association information that identifies association relationship between the given blockchain and the at least one blockchain and that is stored in the new block; and identifying the at least one blockchain based on the obtained association information.
At step S703, the method 700 obtains respective block characteristic values of one or more blocks of the identified at least one blockchain. Step S703 may be similarly implemented as steps S502 and S602 as described above.
At step S704, the method 700 verifies data authenticity of the block of the given blockchain based on the respective block characteristic values.
In some examples, the method 700 further includes steps of obtaining a first crosschain characteristic value within a block header (or a block body, or part in a block header and part in a block body) of the block and generating a second crosschain characteristic value based on the respective block characteristic values. The method 700 includes verifying the block of the given blockchain based on whether the first crosschain characteristic value matches the second crosschain characteristic value. The crosschain characteristic value may be derived as described above with reference to the method 500.
In some examples, the method 700 further includes steps of obtaining a first crosschain characteristic value, that is digitally signed, within the block (e.g., in a block header, or in a block body, or part in a block header and part in a block body) ; obtaining a public key within the block; verifying the block of the first blockchain based on the public key. The public key can be used to verify if the crosschain characteristic value is correctly signed by the user. Further, a transaction characteristic value, such as a transaction hash (as shown in FIG. 11) , may be generated based on the transactions (e.g., transactions 1 to n) and may also be digitally signed by the private key of a same user. Hence, the transaction hashes may also be verified using the public key of the user that added the crosschain value to verify that the crosschain value is actually submitted by the same user.
Since the new block is generated based on one or more blocks of other blockchain (s) , the method 700 can better check whether a given block is replaced by an attacker and thus enhance the security of a multi-dimensional blockchain while increasing scalability.
FIG. 16 is a diagram illustrating an exemplary apparatus 800 for generating a new block of a given block in a blockchain system 400 of FIG. 8. The blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The apparatus 800 includes an identifying unit 810, an obtaining unit 820 and a generating unit 830.
The identifying unit 810 identifies at least one blockchain of the plurality of blockchains that is associated with the given blockchain.
The obtaining unit 820 obtains respective block characteristic values of one or more blocks of the identified at least one blockchain.
The generating unit 830 generates a new block of the given blockchain based on the respective block characteristic values.
The apparatus 800 can implement the method 500 and thus include any additional units configured to implement any additional steps of the method 500 as described above.
FIG. 17 is a diagram illustrating an exemplary apparatus 900 for generating a new block of a given block in a blockchain system 400 of FIG. 8. The blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The apparatus 900 includes an associating unit 910, an obtaining unit 920 and a generating unit 930.
The associating unit 910 associates at least one blockchain of the plurality of blockchains that is associated with the given blockchain.
The obtaining unit 920 obtains respective block characteristic values of one or more blocks of the associated at least one blockchain.
The generating unit 930 generates a new block of the given blockchain based on the respective block characteristic values.
The apparatus 900 can implement the method 600 and thus include any additional units configured to implement any additional steps of the method 600 as described above.
FIG. 18 is a diagram illustrating an exemplary apparatus 1000 for verifying data authenticity of a block of a given (or called as target) blockchain in a blockchain system 400 of FIG. 8. The blockchain system includes a plurality of nodes which operate on a plurality of blockchains containing the given blockchain. The apparatus  1000 includes a retrieving unit 1010, an identifying unit 1020, an obtaining unit 1030 and a verifying unit 1040.
The retrieving unit 1010 retrieves a block of the given blockchain.
The identifying unit 1020 identifies at least one blockchain of the plurality of blockchains that is associated with the given blockchain.
The obtaining unit 1030 obtains respective block characteristic values of one or more blocks of the identified at least one blockchain.
The verifying unit 1040 verifies data authenticity of the block of the given blockchain based on the respective block characteristic values.
The apparatus 1000 can implement the method 700 and thus includes any additional units configured to implement any additional steps of the method 700 as described above.
FIG. 19 is a diagram illustrating exemplary computer device 1100 for generating a new block of a given blockchain or verifying a block of a given blockchain in a blockchain system 400 of FIG. 8. The computer device 1100 may include at least one processor 1110 and a memory 1120 coupled to the processor 1110. The processor 1110 may be a general-purpose processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof. The memory 1120 may include random access memory (RAM) and read only memory (ROM) . The memory 1120 may store computer-readable, computer-executable software including instructions that, when executed, cause the processor 1110 to perform various functions described herein (e.g., any or all steps of  methods  500, 600 and 700, etc. ) .
Now referring back to FIG. 8, a blockchain system 400 according to embodiments of the disclosure is illustrated. The blockchain system 400 includes a plurality of nodes 420 which operate on a plurality of blockchains (not shown) . Each blockchain of the plurality of blockchains is associated (or coupled) with at least one blockchain of the plurality of blockchains, such that each block of the each blockchain is generated based on respective block characteristic values of one or more blocks of the at least one blockchain that is associated with the each blockchain. In this case, each blockchain is a multi-dimensional blockchain as shown in FIG. 4. Further, each blockchain only needs to be associated (or coupled with) a limited number of other  blockchains rather than all blockchains for reduced computation complexity and communication bandwidth, and minimum hardware resource.
The various illustrative blocks and modules described in connection with the disclosure herein may be implemented or performed with a general-purpose processor, a DSP, an ASIC, a FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration) . Thus, the functions described herein may be performed by one or more other processing units (or cores) , on at least one integrated circuit (IC) . In various examples, different types of ICs may be used (e.g., Structured/Platform ASICs, an FPGA, or another semi-custom IC) , which may be programmed in any manner known in the art. The functions of each unit may also be implemented, in whole or in part, with instructions embodied in a memory, formatted to be executed by one or more general or application-specific processors.
Computer-readable media includes both non-transitory computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A non-transitory storage medium may be any available medium that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, non-transitory computer-readable media can comprise RAM, ROM, electrically erasable programmable read only memory (EEPROM) , compact disk (CD) ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to carry or store desired program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Also, any connection is properly termed a non-transitory computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) , or  wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, include CD, laser disc, optical disc, digital versatile disc (DVD) , floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above are also included within the scope of computer-readable media.
It is understood that the specific order or hierarchy of blocks in the processes /flowcharts disclosed is an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of blocks in the processes /flowcharts may be rearranged. Further, some blocks may be combined or omitted. The accompanying method claims present elements of the various blocks in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more. ” The word “exemplary” is used herein to mean “serving as an example, instance, or illustration. ” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects. Unless specifically stated otherwise, the term “some” refers to one or more. Combinations such as “at least one of A, B, or C, ” “at least one of A, B, and C, ” and “A, B, C, or any combination thereof” include any combination of A, B, and/or C, and may include multiples of A, multiples of B, or multiples of C. Specifically, combinations such as “at least one of A, B, or C, ” “at least one of A, B, and C, ” and “A, B, C, or any combination thereof” may be A only, B only, C only, A and B, A and C, B and C, or A and B and C, where any such combinations may contain one or more member or members of A, B, or C. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of  ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed as a means plus function unless the element is expressly recited using the phrase “means for. ”

Claims (25)

  1. A method for generating a new block of a given blockchain in a blockchain system, the blockchain system including a plurality of nodes which operate on a plurality of blockchains containing the given blockchain, the method adapted to be executed on one node of the plurality of nodes that operates on the given blockchain, the method comprising steps of:
    identifying at least one blockchain from among the plurality of blockchains that is associated with the given blockchain;
    obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and
    generating a new block of the given blockchain based on the respective block characteristic values.
  2. The method of claim 1, wherein identifying at least one blockchain from among the plurality of blockchains that is associated with the given blockchain comprises steps of:
    identifying all blockchains that are associated with the given blockchain from among the plurality of blockchains; and
    selecting the at least one blockchain from the identified all blockchains.
  3. The method of claim 1, wherein the plurality of blockchains contains an index blockchain that stores association information identifying association relationships among the plurality of blockchains;
    wherein the method further comprises a step of obtaining association information from the index blockchain; and
    wherein identifying at least one blockchain from among the plurality of blockchains that is associated with the given blockchain comprises determining the at least one blockchain based on the association information.
  4. The method of claim 3, wherein the index blockchain further stores a block characteristic value of each block of each blockchain of the plurality of blockchains; and
    obtaining the respective block characteristic values of the one or more blocks of the identified at least one blockchain comprises obtaining the respective block characteristic values from the index blockchain.
  5. The method of claim 1, wherein obtaining the respective block characteristic values of the one or more blocks of the identified at least one blockchain comprises:
    obtaining the respective block characteristic values of the one or more blocks based on a timestamp or a block height of the new block.
  6. The method of claim 1, wherein obtaining the respective block characteristic values of the one or more blocks of the identified at least one blockchain comprises:
    obtaining the respective block characteristic values from at least one node of the plurality of nodes that operates on the identified at least one blockchain.
  7. The method of claim 5, wherein the at least one node comprises the one node.
  8. The method of claim 1, wherein generating a new block of the given blockchain based on the respective block characteristic values comprises:
    generating a crosschain characteristic value based on the respective block characteristic values;
    storing the crosschain characteristic value within a block header of the new block.
  9. The method of claim 1, further comprising steps of:
    obtaining respective block heights of the one or more blocks within the identified at least one blockchain;
    wherein generating a new block of the given blockchain based on the respective block characteristic values comprises generating the new block of the given blockchain based on the respective block characteristic values and the respective block heights.
  10. The method of claim 1, the respective block characteristic value of at least one of the one or more blocks comprises a header characteristic value generated based on a block header of the at least one of the one or more blocks.
  11. The method of claim 1, wherein generating a new block of the given blockchain based on the respective block characteristic values comprises:
    generating the new block based on the respective block characteristic values and a block characteristic value of at least one block in the given blockchain that precedes the new block.
  12. The method of claim 1, wherein the new block of the given blockchain is generated synchronously or asynchronously with a new block of a blockchain of the identified at least one blockchain.
  13. The method of claim 8, further comprising:
    digitally signing the crosschain characteristic value using a private key of a user;
    storing a public key corresponding to the private key within the block header of the new block.
  14. A method for generating a new block of a given blockchain in a blockchain system, the blockchain system including a plurality of nodes which operate on a plurality of blockchains containing the given blockchain, the method adapted to be executed on one node of the plurality of nodes that operates on the given blockchain, the method comprising steps of:
    associating at least one blockchain of the plurality of blockchains with the given blockchain;
    obtaining respective block characteristic values of one or more blocks of the associated at least one blockchain; and
    generating a new block of the given blockchain based on the respective block characteristic values.
  15. The method of claim 14, further comprising:
    storing association information identifying association relationship between the given blockchain and the associated at least one blockchain within the new block.
  16. A method of verifying data authenticity of a block of a given blockchain in a blockchain system, the blockchain system including a plurality of nodes which operate  on a plurality of blockchains containing the given blockchain, the method adapted to be executed on one node of the plurality of nodes that operates on the given blockchain, the method comprising steps of:
    retrieving a block of the given blockchain;
    identifying at least one blockchain from among the plurality of blockchains that is associated with the given blockchain;
    obtaining respective block characteristic values of one or more blocks of the identified at least one blockchain; and
    verifying data authenticity of the block of the given blockchain based on the respective block characteristic values.
  17. The method of claim 16, further comprising:
    obtaining a first crosschain characteristic value within a block header of the block;
    generating a second crosschain characteristic value based on the respective block characteristic values;
    wherein verifying data authenticity of the block of the given blockchain based on the respective block characteristic values comprises verifying the block of the given blockchain based on whether the first crosschain characteristic value matches the second crosschain characteristic value.
  18. The method of claim 16, further comprising:
    obtaining a first crosschain characteristic value, that is digitally signed, within the block;
    obtaining a public key within the block; and
    verifying data authenticity of the block of the given blockchain based on the public key.
  19. An apparatus for generating a new block of a given blockchain in a blockchain system, the blockchain system including a plurality of nodes which operate on a plurality of blockchains containing the given blockchain, the apparatus comprising:
    an identifying unit configured to identify at least one blockchain of the plurality of blockchains that is associated with the given blockchain;
    an obtaining unit configured to obtain respective block characteristic values of one or more blocks of the identified at least one blockchain; and
    a generating unit configured to generate a new block of the given blockchain based on the respective block characteristic values.
  20. An apparatus for generating a new block of a given blockchain in a blockchain system, the blockchain system including a plurality of nodes which operate on a plurality of blockchains containing the given blockchain, the apparatus comprising:
    an associating unit configured to associate at least one blockchain of the plurality of blockchains with the given blockchain;
    an obtaining unit configured to obtain respective block characteristic values of one or more blocks of the associated at least one blockchain; and
    a generating unit configured to generate a new block of the given blockchain based on the respective block characteristic values.
  21. An apparatus for verifying data authenticity of a block of a given blockchain in a blockchain system, the blockchain system including a plurality of nodes which operate on a plurality of blockchains containing the given blockchain, the apparatus comprising:
    a retrieving unit configured to retrieve a block of the given blockchain;
    an identifying unit configured to identify at least one blockchain of the plurality of blockchains that is associated with the given blockchain;
    an obtaining unit configured to obtain respective block characteristic values of one or more blocks of the identified at least one blockchain; and
    a verifying unit configured to verify data authenticity of the block of the given blockchain based on the respective block characteristic values.
  22. A blockchain system, comprising:
    a plurality of nodes which operate on a plurality of blockchains;
    wherein each blockchain of the plurality of blockchains is associated with at least one blockchain of the plurality of blockchains, such that each block of the each blockchain is generated based on respective block characteristic values of one or more blocks of the at least one blockchain that is associated with the each blockchain.
  23. A computer device, comprising:
    at least one processor; and
    a memory storing instructions, which when executed cause the at least one processor to implement a method according to any one of claims 1 to 13, a method according to claim 14 or 15, or a method according to any one of claims 16 to 18.
  24. A computer readable storage medium storing computer executable instructions for implementing a method according to any one of claims 1 to 13, a method according to claim 14 or 15, or a method according to any one of claims 16 to 18.
  25. A computer program product, tangibly stored in a computer readable storage medium, the computer program product storing computer executable instructions, which when executed cause at least one processor to implement a method according to any one of claims 1 to 13, a method according to claim 14 or 15, or a method according to any one of claims 16 to 18.
PCT/CN2022/121874 2022-09-27 2022-09-27 Multi-dimensional blockchain architecture WO2024065216A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/121874 WO2024065216A1 (en) 2022-09-27 2022-09-27 Multi-dimensional blockchain architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/121874 WO2024065216A1 (en) 2022-09-27 2022-09-27 Multi-dimensional blockchain architecture

Publications (1)

Publication Number Publication Date
WO2024065216A1 true WO2024065216A1 (en) 2024-04-04

Family

ID=90475239

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/121874 WO2024065216A1 (en) 2022-09-27 2022-09-27 Multi-dimensional blockchain architecture

Country Status (1)

Country Link
WO (1) WO2024065216A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108615151A (en) * 2018-04-24 2018-10-02 深圳市元征科技股份有限公司 Data processing method, block chain server and node device
CN108664623A (en) * 2018-05-14 2018-10-16 中钞信用卡产业发展有限公司杭州区块链技术研究院 A kind of date storage method, device, equipment and medium
US20210365939A1 (en) * 2018-07-18 2021-11-25 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for processing account of blockchain network, and storage medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108615151A (en) * 2018-04-24 2018-10-02 深圳市元征科技股份有限公司 Data processing method, block chain server and node device
CN108664623A (en) * 2018-05-14 2018-10-16 中钞信用卡产业发展有限公司杭州区块链技术研究院 A kind of date storage method, device, equipment and medium
US20210365939A1 (en) * 2018-07-18 2021-11-25 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for processing account of blockchain network, and storage medium

Similar Documents

Publication Publication Date Title
US11871485B2 (en) Verification of interactions system and method
JP6730520B2 (en) Immutable database supported by a cryptographically protected ledger
US11863674B2 (en) DLP appliance and method for protecting data sources used in data matching
US10965448B1 (en) Dynamic distributed storage for scaling blockchain
US11108555B2 (en) Performing map iterations in a blockchain-based system
KR20200107772A (en) Blockchain World State Merkle Patricia Tri Subtree Update
US8301650B1 (en) Bloom filter compaction
EP3769233B1 (en) Performing map iterations in a blockchain-based system
US11128479B2 (en) Method and apparatus for verification of social media information
Zhang et al. HVDB: a hierarchical verifiable database scheme with scalable updates
Najafi et al. Verifiable ranked search over encrypted data with forward and backward privacy
Zhang et al. Multi-copy dynamic cloud data auditing model based on IMB tree
de Ocáriz Borde An overview of trees in blockchain technology: merkle trees and merkle patricia tries
Xu et al. Towards efficient verifiable multi-keyword search over encrypted data based on blockchain
Hua et al. An enhanced wildcard-based fuzzy searching scheme in encrypted databases
WO2024065216A1 (en) Multi-dimensional blockchain architecture
KR102648532B1 (en) Method and device for verifying database query results
US10409845B1 (en) Authenticated pattern matching and exact path queries
US20230076256A1 (en) Using secure mpc and vector computations to protect access to information in content distribution
Yao et al. An anonymous verifiable random function with applications in blockchain
Xiong et al. An efficient searchable symmetric encryption scheme for smart grid data
CN110705935A (en) Logistics document processing method and device
US20240214385A1 (en) Digital content delivery with privacy-preserving membership check
WO2024138114A1 (en) Digital content delivery with privacy-preserving membership check
CN117808466A (en) Transaction pre-execution method and device based on blockchain

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22959865

Country of ref document: EP

Kind code of ref document: A1