Search

US-12621363-B2 - Layered network

US12621363B2US 12621363 B2US12621363 B2US 12621363B2US-12621363-B2

Abstract

A computer-implemented method for connecting to a layered network. The layered network comprises a plurality of nodes arranged in an ordered set of layers. The ordered set of layers comprises, in order, a core layer comprising a set of core nodes, a second layer comprising a set of second nodes, and one or more outer layers each comprising a respective set of outer nodes. Each core node is connected to at least one other core node. The method is performed by a connecting node and comprises connecting to the network according to a connection protocol. The connection protocol requires that each node must connect to at least one node of a preceding layer, and each outer node must also connect to at least one core node.

Inventors

  • Owen VAUGHAN
  • Jack Owen Davies
  • Craig Steven Wright

Assignees

  • NCHAIN LICENSING AG

Dates

Publication Date
20260505
Application Date
20240514
Priority Date
20200219

Claims (20)

  1. 1 . A computer-implemented method for connecting to a layered network, wherein the method is performed by a connecting node and comprises: connecting to a layered network according to a connection protocol, wherein the layered network comprises a plurality of nodes arranged in an ordered set of layers, the ordered set of layers comprising, in order, a core layer comprising a set of core nodes, a second layer comprising a set of second nodes, and one or more outer layers each comprising a respective set of outer nodes, wherein each node of the plurality of nodes is comprised in one of: the set of core nodes, the set of second nodes, or one of the respective sets of outer nodes, wherein each core node is connected to at least one other core node, and wherein each core node is a respective blockchain node of a blockchain network configured to operate as a blockchain mining node and/or a blockchain storage node; and wherein the connection protocol requires that: each node must connect to at least one node of a preceding layer; and each outer node must also connect to at least one core node.
  2. 2 . The method of claim 1 , wherein one, some or all of the core nodes are connected to more than one but not all other core nodes.
  3. 3 . The method of claim 1 , wherein the connection protocol requires that one, some or all of the second nodes must connect to at least one other second node.
  4. 4 . The method of claim 1 , wherein the connection protocol requires that each outer node of a given outer layer that is connected to a respective node of a preceding layer must connect to at least one of the core nodes to which that respective node of the preceding layer is connected.
  5. 5 . The method of claim 4 , wherein the connection protocol requires that each outer node of a given outer layer that is connected to the respective node of the preceding layer must connect to all of the core nodes to which that respective node of the preceding layer is connected.
  6. 6 . The method of claim 1 , wherein the connection protocol requires that one, some or all of the outer layers must comprise at least one outer node that is connected to at least one other outer node of the same outer layer.
  7. 7 . The method of claim 1 , wherein the one or more outer layers comprises a plurality of outer layers, each outer node in a given outer layer being connected to a respective one or more outer nodes of a first preceding layer inwards of the given outer layer, each of the one or more outer nodes of the first preceding layer being connected to a respective one or more outer nodes in a second preceding layer inwards of the first preceding layer, and wherein the connection protocol requires that one, some or all of the outer nodes in the given outer layer must connect to at least one of the respective one or more outer nodes of the second preceding layer to which the respective one or more outer nodes of the first preceding layer is connected.
  8. 8 . The method of claim 7 , wherein the connection protocol requires that each respective outer node in a given outer layer must connect to at least one node in each preceding layer of the network.
  9. 9 . The method of claim 1 , wherein each respective second node and/or outer node is configured to transmit a blockchain transaction to one, some or all of the core nodes to which the respective second node is connected.
  10. 10 . The method of claim 1 , wherein each respective second node and/or outer node is configured to request confirmation, from one, some or all of the core nodes to which the respective second node and/or outer node is connected, that a blockchain transaction has been accepted in a pool of transactions that have been validated according to a set of consensus rules of the blockchain network.
  11. 11 . The method of claim 1 , wherein each respective second node and/or outer node is configured to request, from one, some or all of the core nodes to which the respective second node and/or outer node is connected, a Merkle proof of a transaction that has been mined in a block of the blockchain.
  12. 12 . The method of claim 1 , wherein each block of the blockchain comprises a block header, and wherein each respective second node and/or outer node is configured to request one or more block headers from one, some or all of the core nodes to which the respective second node and/or outer node is connected.
  13. 13 . The method of claim 1 , wherein one, some or all of the second nodes and/or outer nodes are configured to identify a respective mining node of the core layer based on a respective mining identifier included in a generation transaction of a block mined by that respective mining node.
  14. 14 . The method of claim 1 , wherein one, some or all of the nodes of the layered network are associated with a respective digital certificate, and wherein one, some or all of the nodes of the network are configured to identify other nodes of the network based on the respective digital certificate associated with that node.
  15. 15 . The method of claim 14 , wherein the connection protocol requires that a given node must only connect to nodes that are associated with a respective digital certificate.
  16. 16 . The method of claim 1 , wherein one, some or all of the core nodes are configured to issue a respective digital certificate to the one or more respective second nodes that are connected to the respective core node.
  17. 17 . The method of claim 1 , wherein one, some or all of the second nodes are configured to issue a respective digital certificate to the one or more respective outer nodes of the first outer layer that are connected to the respective second node.
  18. 18 . The method of claim 1 , wherein one, some or all of the core nodes are configured to transmit a set of transactions to at least one of the second nodes to which that core node is connected, wherein the set of transactions include at least one of: a set of transactions that each comprise a specific protocol flag, a set of transactions that each comprise a specific blockchain address, and/or a set of transactions that each comprise a respective secondary consensus ruleset indicated by a respective control branch of a transaction output.
  19. 19 . Computer equipment comprising: memory comprising one or more memory units, and processing apparatus comprising one or more processing units, and a network interface comprising one or more network interface units; wherein the memory stores code arranged to run on the processing apparatus, the code being configured so as when run on the processing apparatus to operate the computer equipment by performing a method for connecting to a layered network, wherein the method is performed by a connecting node and comprises: connecting to the layered network according to a connection protocol, wherein the layered network comprises a plurality of nodes arranged in an ordered set of layers, the ordered set of layers comprising, in order, a core layer comprising a set of core nodes, a second layer comprising a set of second nodes, and one or more outer layers each comprising a respective set of outer nodes, wherein each node of the plurality of nodes is comprised in one of: the set of core nodes, the set of second nodes, or one of the respective sets of outer nodes, wherein each core node is connected to at least one other core node, and wherein each core node is a respective blockchain node of a blockchain network and is configured to operate as a blockchain mining node and/or a blockchain storage node; and wherein the connection protocol requires that: each node must connect to at least one node of a preceding layer; and each outer node must also connect to at least one core node.
  20. 20 . A computer program embodied on computer readable storage and configured so as when run on one or more processors to perform a method for connecting to a layered network, wherein the method is performed by a connecting node and comprises: connecting to the layered network according to a connection protocol, wherein the layered network comprises a plurality of nodes arranged in an ordered set of layers, the ordered set of layers comprising, in order, a core layer comprising a set of core nodes, a second layer comprising a set of second nodes, and one or more outer layers each comprising a respective set of outer nodes, wherein each node of the plurality of nodes is comprised in one of: the set of core nodes, the set of second nodes, or one of the respective sets of outer nodes, wherein each core node is connected to at least one other core node, and wherein each core node is a respective blockchain node of a blockchain network and is configured to operate as a blockchain mining node and/or a blockchain storage node; and wherein the connection protocol requires that: each node must connect to at least one node of a preceding layer; and each outer node must also connect to at least one core node.

Description

CROSS REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. patent application Ser. No. 17/798,036 filed on Aug. 5, 2022, which is the U.S. National Stage of International Application No. PCT/IB2021/050367 filed on Jan. 19, 2021, which claims the benefit of United Kingdom Patent Application No. 2002273.7, filed on Feb. 19, 2020, the contents of which are incorporated herein by reference in their entireties. TECHNICAL FIELD The present disclosure relates to a method of connecting a layered network according to a connection protocol. BACKGROUND A blockchain refers to a form of distributed data structure, wherein a duplicate copy of the blockchain is maintained at each of a plurality of nodes in a peer-to-peer (P2P) network. The blockchain comprises a chain of blocks of data, wherein each block comprises one or more transactions. Each transaction may point back to a preceding transaction in a sequence which may span one or more blocks. Transactions can be submitted to the network to be included in new blocks. New blocks are created by a process known as “mining”, which involves each of a plurality of mining nodes competing to perform “proof-of-work”, i.e. solving a cryptographic puzzle based on a pool of the pending transactions waiting to be included in blocks. Each node in the network can have any one, two or all of three roles: forwarding, mining and storage. Forwarding nodes propagate transactions throughout the nodes of the network. Mining nodes perform the mining of transactions into blocks. Storage nodes each store their own copy of the mined blocks of the blockchain. In order to have a transaction recorded in the blockchain, a party sends the transaction to one of the nodes of the network to be propagated. Mining nodes which receive the transaction may race to mine the transaction into a new block. Each node is configured to respect the same node protocol, which will include one or more conditions for a transaction to be valid. Invalid transactions will not be propagated nor mined into blocks. Assuming the transaction is validated and thereby accepted onto the blockchain, then the transaction (including any user data) will thus remain stored at each of the nodes in the P2P network as an immutable public record. The miner who successfully solved the proof-of-work puzzle to create the latest block is typically rewarded with a new transaction called a “generation transaction” which generates a new amount of the digital asset. The proof-of work incentivises miners not to cheat the system by including double-spending transactions in their blocks, since it requires a large amount of compute resource to mine a block, and a block that includes an attempt to double spend is likely not be accepted by other nodes. In an “output-based” model (sometimes referred to as a UTXO-based model), the data structure of a given transaction comprises one or more inputs and one or more outputs. Any spendable output comprises an element specifying an amount of the digital asset, sometimes referred to as a UTXO (“unspent transaction output”). The output may further comprise a locking script specifying a condition for redeeming the output. Each input comprises a pointer to such an output in a preceding transaction, and may further comprise an unlocking script for unlocking the locking script of the pointed-to output. So consider a pair of transactions, call them a first and a second transaction (or “target” transaction). The first transaction comprises at least one output specifying an amount of the digital asset, and comprising a locking script defining one or more conditions of unlocking the output. The second, target transaction comprises at least one input, comprising a pointer to the output of the first transaction, and an unlocking script for unlocking the output of the first transaction. In such a model, when the second, target transaction is sent to the P2P network to be propagated and recorded in the blockchain, one of the criteria for validity applied at each node will be that the unlocking script meets all of the one or more conditions defined in the locking script of the first transaction. Another will be that the output of the first transaction has not already been redeemed by another, earlier valid transaction. Any node that finds the target transaction invalid according to any of these conditions will not propagate it nor include it for mining into a block to be recorded in the blockchain. Conventionally the transactions in the blockchain are used to convey a digital asset, i.e. a number of digital tokens. However, a blockchain can also be exploited in order to superimpose additional functionality on top of the blockchain. For instance, blockchain protocols may allow for storage of additional user data in an output of a transaction. Modern blockchains are increasing the maximum data capacity that can be stored within a single transaction, enabling more complex data to be incorporated. For ins