EP3970343A1 - Parallel multi-blocks creation scheme for blockchain - Google Patents
Parallel multi-blocks creation scheme for blockchainInfo
- Publication number
- EP3970343A1 EP3970343A1 EP19928892.9A EP19928892A EP3970343A1 EP 3970343 A1 EP3970343 A1 EP 3970343A1 EP 19928892 A EP19928892 A EP 19928892A EP 3970343 A1 EP3970343 A1 EP 3970343A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- miner
- nodes
- node
- blocks
- leader
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 230000007246 mechanism Effects 0.000 claims abstract description 46
- 238000000034 method Methods 0.000 claims description 46
- 238000010200 validation analysis Methods 0.000 claims description 23
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 13
- 238000013461 design Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005065 mining Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000003814 drug Substances 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000010970 precious metal Substances 0.000 description 1
- 238000011045 prefiltration Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000003997 social interaction Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
- H04L9/3239—Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Definitions
- the present application relates to apparatus and methods for parallel multi-blocks creation scheme for blockchain, but not exclusively for parallel multi-blocks creation scheme for blockchain in bitcoin or cryptocurrency applications.
- Blockchain initially gained traction in 2008 as the technology underlying Bitcoin, but now has been employed in a diverse range of applications and created a global market worth.
- blockchain can implement a decentralized credit point-to-point transaction, coordination and cooperation in a distributed system, so as to provide solutions for the high cost, low efficiency and data storage insecurity of centralized institutions.
- Blockchain has been regarded as the fifth subversive computing paradigm after mainframe computer, personal computer, Internet and mobile social interaction, and the fourth milestone after blood relatives'credit, precious metal credit and central bank paper credit in the evolutionary history of human credit.
- Blockchain is likely to receive more and more attention because of the large number of potential applications to which it can be applied.
- Blockchain is a public ledger with a chain of blocks, each of which is made up of several committed transactions. The chain continuously grows in chronological order when new blocks are appended to it.
- the core advantages of blockchain are decentralization, transparency, traceability, and that it is practically tamper-resistant.
- Blockchain has already been applied to many fields, including financial services, medicine, internet of things (IoT) , software engineering, e-government and public services, education.
- Blockchain networks provide the means of peer-to-peer protocol organization. According to the genesis definition of blockchain, the steps to create blocks in the network can be summarised as the following operations:
- Each node collects new transactions into a block.
- Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash.
- the consensus mechanism in distributed blockchain networks are processes which allow the distributed nodes to complete data exchange or transaction without the need for any third-party trusted authority.
- the nodes responsible for creating blocks based on the consensus mechanism are called miners.
- PoW Proof of Work
- PoS proof-of-stake
- Tendermint is a consensus BFT (Byzantine Fault Tolerance) mechanism that can work even if up to one-third of nodes in the network fail in arbitrary ways.
- a proposer proposes a new block, then the validators validate the block.
- a further BFT example is a Hyperledger Fabric. Based on Tendermint, Hyperledger Fabric is a consensus mechanism that exploits randomness and game theory.
- blocks are created one by one using the consensus mechanism. That is, after completing a block creation operation, the miners start to create a new block. This is known as a serial process and there can be many blocks waiting to be created as the number of transactions grow.
- an apparatus comprising means for implementing a consensus mechanism for blockchain, wherein the consensus mechanism is configured to: manage miner nodes into groups of miner nodes; manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; manage for each group of miner nodes a selection of a miner leader node; and manage each miner leader node to maintain a single chain structure of blockchain.
- the means may be further configured to manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes may be configured to create a respective block within a round of blocks to manage one of: a synchronous creation of multiple-blocks by the groups of miner nodes wherein the groups of miner nodes are required to complete all of a first round of blocks before starting a creation of a further round of blocks; and an asynchronous creation of multiple-blocks by the groups of miner nodes wherein a first group of the groups of miner nodes completes a first block from a first round of blocks before starting a creation of a further block from further round of blocks while a second group of the groups of miner nodes is creating a second block from the first round of blocks.
- the means may be further configured to manage for each group of miner nodes a selection of a miner leader node to manage: initialise a list of miner leader nodes for a group of miner nodes; for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- the means may be further configured to manage for each group of miner nodes a selection of a miner leader node to manage update, at a later time, the list of miner leader nodes by: verifying whether the determined miner leader nodes for miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node and removing any miner leader node which fails the verifying; for each miner node within the group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- the means may be further configured to manage for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node to stop when a defined number of miner leader nodes for a group of miner nodes has been determined.
- the defined number of miner leader nodes for a group of miner nodes may be three.
- the means may be further configured to manage each miner leader node to maintain a single chain structure of blockchain to manage: select one of the miner leader node as a main miner leader node; add, by the remaining leader nodes, their digital signatures to the accepted blocks and broadcast the added signature blocks to the main miner leader node; add, by the main miner leader node, the digital signature of the main miner leader node to the received added signature blocks and broadcasts these to all nodes of the network with a timestamp of the main miner leader node; and chain the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
- the means may comprise: at least one processor; and at least one memory including computer program code, the at least one memory and computer program code configured to, with the at least one processor, cause the performance of the apparatus.
- the apparatus may be a user equipment.
- the apparatus may be an Internet of Things device.
- a method for implementing a consensus mechanism for blockchain comprising: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; managing each miner leader node to maintain a single chain structure of blockchain.
- Managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks may comprise managing one of: a synchronous creation of multiple-blocks by the groups of miner nodes wherein the groups of miner nodes are required to complete all of a first round of blocks before starting a creation of a further round of blocks; and an asynchronous creation of multiple-blocks by the groups of miner nodes wherein a first group of the groups of miner nodes completes a first block from a first round of blocks before starting a creation of a further block from further round of blocks while a second group of the groups of miner nodes is creating a second block from the first round of blocks.
- Managing for each group of miner nodes a selection of a miner leader node may comprise managing: initialising a list of miner leader nodes for a group of miner nodes; for each miner node within a group of miner nodes determining the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- Managing for each group of miner nodes a selection of a miner leader node may comprise managing an update, at a later time, of the list of miner leader nodes by: verifying whether the determined miner leader nodes for miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node and removing any miner leader node which fails the verifying; for each miner node within the group of miner nodes determining the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- Managing for each miner node within a group of miner nodes determining the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node may comprise stopping when a defined number of miner leader nodes for a group of miner nodes has been determined.
- the defined number of miner leader nodes for a group of miner nodes may be three.
- Managing each miner leader node to maintain a single chain structure of blockchain may comprise: selecting one of the miner leader node as a main miner leader node; adding, by the remaining leader nodes, their digital signatures to the accepted blocks and broadcasting the added signature blocks to the main miner leader node; adding, by the main miner leader node, the digital signature of the main miner leader node to the received added signature blocks and broadcasting these to all nodes of the network with a timestamp of the main miner leader node; and chaining the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
- an apparatus configured to implement a consensus mechanism for blockchain, the consensus mechanism comprising at least one processor and at least one memory including a computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to: manage miner nodes into groups of miner nodes; manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; manage for each group of miner nodes a selection of a miner leader node; and manage each miner leader node to maintain a single chain structure of blockchain.
- the apparatus caused to manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes may be caused to create a respective block within a round of blocks is configured to manage one of: a synchronous creation of multiple-blocks by the groups of miner nodes wherein the groups of miner nodes are required to complete all of a first round of blocks before starting a creation of a further round of blocks; and an asynchronous creation of multiple-blocks by the groups of miner nodes wherein a first group of the groups of miner nodes completes a first block from a first round of blocks before starting a creation of a further block from further round of blocks while a second group of the groups of miner nodes is creating a second block from the first round of blocks.
- the apparatus caused to manage for each group of miner nodes a selection of a miner leader node may be caused to manage: initialise a list of miner leader nodes for a group of miner nodes; for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- the apparatus caused to manage for each group of miner nodes a selection of a miner leader node may be further caused to manage update, at a later time, the list of miner leader nodes by: verifying whether the determined miner leader nodes for miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node and removing any miner leader node which fails the verifying; for each miner node within the group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- the apparatus caused to manage for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node may be caused to stop when a defined number of miner leader nodes for a group of miner nodes has been determined.
- the defined number of miner leader nodes for a group of miner nodes may be three.
- the apparatus caused to manage each miner leader node to maintain a single chain structure of blockchain may be caused to manage: select one of the miner leader node as a main miner leader node; add, by the remaining leader nodes, their digital signatures to the accepted blocks and broadcast the added signature blocks to the main miner leader node; add, by the main miner leader node, the digital signature of the main miner leader node to the received added signature blocks and broadcasts these to all nodes of the network with a timestamp of the main miner leader node; and chain the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
- an apparatus configured to implement a consensus mechanism, the apparatus comprising: managing circuitry configured to manage miner nodes into groups of miner nodes; managing circuitry configured to manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing circuitry configured to manage for each group of miner nodes a selection of a miner leader node; and managing circuitry configured to manage each miner leader node to maintain a single chain structure of blockchain.
- a computer program comprising instructions [or a computer readable medium comprising program instructions] for causing an apparatus to implement a consensus mechanism and perform at least the following: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; managing each miner leader node to maintain a single chain structure of blockchain.
- a non-transitory computer readable medium comprising program instructions for causing an apparatus to implement a consensus mechanism and perform at least the following: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; managing each miner leader node to maintain a single chain structure of blockchain.
- a computer program comprising instructions for causing an apparatus to perform at least the following: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; and managing each miner leader node to maintain a single chain structure of blockchain.
- a non-transitory computer readable medium comprising program instructions for causing an apparatus to perform at least the following: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; and managing each miner leader node to maintain a single chain structure of blockchain.
- An apparatus comprising means for performing the actions of the method as described above.
- An apparatus configured to perform the actions of the method as described above.
- a computer program comprising program instructions for causing a computer to perform the method as described above.
- a computer program product stored on a medium may cause an apparatus to perform the method as described herein.
- An electronic device may comprise apparatus as described herein.
- a chipset may comprise apparatus as described herein.
- Embodiments of the present application aim to address problems associated with the state of the art.
- Figure 1 shows a schematic block diagram of a system for implementing a blockchain
- Figures 2 and 3 show schematically example apparatus suitable for implementing some embodiments
- Figure 4 shows a schematic view of consensus mechanism implementation functions according to some embodiments
- Figure 5 shows schematically a synchronous creation mechanism according to some embodiments.
- Figure 6 shows schematically an asynchronous creation mechanism according to some embodiments.
- FIG. 1 shows an example system 100 for implementing a blockchain 150.
- the system 100 comprises a packet-switched network 101 such as the Internet.
- the packet-switched network 101 comprises a plurality of nodes 104 arranged to form a peer-to-peer (P2P) overlay network 106 within the packet-switched network 101.
- P2P peer-to-peer
- Each node 104 comprises computer equipment of a peer, with different ones of the nodes 104 belonging to different peers.
- Each node 104 comprises processing apparatus comprising one or more processors, e.g. one or more central processing units (CPUs) , accelerator processors, application specific processors and/or field programmable gate arrays (FPGAs) .
- Each node also comprises memory, i.e.
- the memory may comprise one or more memory units employing one or more memory media, e.g. a magnetic medium such as a hard disk; an electronic medium such as a solid-state drive (SSD) , flash memory or EEPROM; and/or an optical medium such as an optical disk drive.
- a magnetic medium such as a hard disk
- an electronic medium such as a solid-state drive (SSD) , flash memory or EEPROM
- an optical medium such as an optical disk drive.
- FIG. 2 shows in detail an example embodiment of a node.
- the node 104 comprises at least one memory 201, at least one data processing unit 202, 203 and an input/output interface 204. Via the interface 204 the node 104 can be coupled to the packet-switched network 101.
- the blockchain 150 comprises a chain of blocks of data 151, wherein a respective copy of the blockchain 150 is maintained at each of a plurality of nodes in the P2P network 106.
- the chain of blocks 151 goes all the way back to a genesis block (Gb) 153 which was the first block in the chain.
- Each block 151 in the chain comprises one or more transactions 152, wherein a transaction in this context refers to a kind of data structure.
- An example the data structure of each transaction 152 comprises at least one input and at least one output.
- Each output specifies an amount representing a quantity of a digital asset belonging to a user to whom the output is cryptographically locked (requiring a signature of that user in order to be unlocked and thereby redeemed or spent) .
- Each input points back to the output of a preceding transaction 152, thereby linking the transactions.
- At least some of the nodes 104 take on the role of forwarding nodes which forward and thereby propagate transactions 152. At least some of the nodes 104 take on the role of miners which mine blocks 151. At least some of the nodes 104 take on the role of storage nodes (sometimes also called “full-copy” nodes) , each of which stores a respective copy of the same blockchain 150 in their respective memory. Each miner node also maintains a pool 154 of transactions 152 waiting to be mined into blocks 151.
- a given node 104 may be a forwarding node, miner, storage node or any combination of two or all of these.
- the (or each) input comprises a pointer referencing the output of a preceding transaction in the sequence of transactions, specifying that this output is to be redeemed or “spent” in the present transaction.
- the preceding transaction could be any transaction in the pool 154 or any block 151.
- the preceding transaction need not necessarily exist at the time the present transaction is created or even sent to the network 106, though the preceding transaction will need to exist and be validated in order for the present transaction to be valid.
- “preceding” herein refers to a predecessor in a logical sequence linked by pointers, not necessarily the time of creation or sending in a temporal sequence, and hence it does not necessarily exclude that the transactions be created or sent out-of-order.
- the preceding transaction could equally be called the antecedent or predecessor transaction.
- the input of the present transaction 152 also comprises the signature of the user 105a to whom the output of the preceding transaction is locked.
- the output of the present transaction can be cryptographically locked to a new user 105b.
- the present transaction can thus transfer the amount defined in the input of the preceding transaction to the new user 105b as defined in the output of the present transaction 152.
- a transaction 152 may have multiple outputs to split the input amount between multiple users (one of whom could be the original user 105a in order to give change) .
- the transaction can also have multiple inputs to gather together the amounts from multiple outputs of one or more preceding transactions, and redistribute to one or more outputs of the current transaction.
- a user 105 When a user 105 wishes to enact a new transaction, then they send the new transaction from their user device 102 to one of the nodes 104 of the P2P network 106 (which are typically servers or data centres, but could in principle be other user devices) .
- the node 104 then checks whether the transaction is valid.
- the node 104 typically checks that the cryptographic signature in the new transaction 152 matches the expected signature, which depends on the previous transaction in an ordered sequence of transactions. This may comprise checking that the cryptographic signature of the user included in the input of the new transaction 152 matches a condition defined in the output of the preceding transaction which the new transaction spends, wherein this condition typically comprises at least checking that the cryptographic signature in the input of the new transaction 152 unlocks the output of the previous transaction to which the input of the new transaction points.
- the condition may be at least partially defined by a custom script included in the input and/or output. If the new transaction 152 is valid, the current node forwards it to one or more others of the nodes 104 in the P2P network 106.
- At least some of these nodes 104 also act as forwarding nodes, applying the same test according to the same node protocol, and so forward the new transaction 152 on to one or more further nodes 104, and so forth. In this way the new transaction is propagated throughout the network of nodes 104.
- the definition of whether a given output is spent is whether it has yet been validly redeemed by the input of another, onward transaction 152 and that the output of the preceding transition which it attempts to spend or redeem has not already been spent/redeemed by another valid transaction. Again if this is not valid, the transaction 152 will not be propagated or recorded in the blockchain. This guards against double-spending whereby the spender tries to spend the output of the same transaction more than once.
- the nodes 104 also race to be the first to create blocks of transactions in a process known as mining, which is underpinned by the consensus mechanism.
- mining node 104 new transactions are added to a pool of valid transactions that have not yet appeared in a block.
- the miners then race to assemble a new valid block 151 of transactions 152 from the pool of transactions 154 by attempting to solve a cryptographic puzzle.
- this comprises searching for a “nonce” value such that when the nonce is concatenated with the pool of transactions 154 and hashed, then the output of the hash meets a predetermined condition.
- the predetermined condition may be that the output of the hash has a certain predefined number of leading zeros.
- a property of a hash function is that it has an unpredictable output with respect to its input. Therefore this search can only be performed by brute force, thus consuming a substantive amount of processing resource at each node 104 that is trying to solve the puzzle.
- the first miner node 104 to solve the puzzle announces this to the network 106, providing the solution as proof which can then be easily checked by the other nodes 104 in the network (once given the solution to a hash it is straightforward to check that it causes the output of the hash to meet the condition) .
- the pool of transactions 154 for which the winner solved the puzzle then becomes recorded as a new block 151 in the blockchain 150 by at least some of the nodes 104 acting as storage nodes 104, based on having checked the winner’s announced solution at each such node.
- a block pointer 155 is also assigned to the new block Bn pointing back to the previously created block Bn-1 in the chain.
- the consensus mechanism helps reduce the risk of double spending since it takes a large amount of effort to create a new block 151, and as any block containing a double spend is likely to be rejected by other nodes 104, mining nodes are incentivised not to allow double spends to be included in their blocks.
- the block 151 cannot be modified since it is recognized and maintained at each of the storing nodes in the P2P network 106 according to the same protocol.
- the block pointer 155 also imposes a sequential order to the blocks 151. Since the transactions 152 are recorded in the ordered blocks at each storage node in a P2P network 106, this therefore provides an immutable public ledger of the transactions.
- Different miners 104 racing to solve the puzzle at any given time may be doing so based on different snapshots of the unmined transaction pool 154 at any given time, depending on when they started searching for a solution.
- Whoever solves their respective puzzle first defines which transactions 152 are included in the next new block, and the current pool 154 of unmined transactions is updated. The miners then continue to race to create a block from the newly defined outstanding pool 154, and so forth.
- the consensus mechanism may also resolve any “fork” that may arise, which is where two miners solve their puzzle within a very short time of one another such that a conflicting view of the blockchain gets propagated. In short, whichever prong of the fork grows the longest becomes the definitive blockchain 150.
- the winning miner is automatically rewarded with a special kind of new transaction which creates a new quantity of the digital asset out of nowhere (as opposed to normal transactions which transfer an amount of the digital asset from one user to another) .
- This special type of transaction is sometime referred to as a “generation” transaction. It automatically forms part of the new block. This reward gives an incentive for the miners to participate in the consensus mechanism controlled race.
- a regular (non-generation) transaction 152 will also specify an additional transaction fee in one of its outputs, to further reward the winning miner that created the block in which that transaction was included.
- each of the miner nodes takes the form of a server comprising one or more physical server units, or even whole a data centre.
- Each forwarding node and/or storage node may also take the form of a server or data centre.
- any given node could take the form of a user device or terminal or a group of user devices or terminals networked together.
- each node 104 stores software configured to run on the processing apparatus of the node 104 in order to perform its respective role or roles and handle transactions 152. It will be understood that any action attributed herein to a node 104 may be performed by the software run on the processing apparatus of the respective computer equipment.
- blockchain as used herein is a generic term that refers to the kind of technology in general, and does not limit to any particular proprietary blockchain, protocol or service.
- Two parties 105 and their respective user devices 102 are shown for illustrative purposes: a first party 105a and their respective user device 102a, and a second party 105b and their respective user device 102b. It will be understood that many more such parties 105 and their respective user device 102 may be present and participating in the system, but for convenience they are not illustrated.
- Each party 105 may be an individual or an organization.
- first party 105a is referred to herein as Alice and the second party 105b is referred to as Bob, but it will be appreciated that this is not limiting and any reference herein to Alice or Bob may be replaced with “first party” and “second “party” respectively.
- Figure 3 shows an example of a suitable user device 102.
- Figure 3 shows a schematic, partially sectioned view of the user device 102.
- a user device may be referred to as user equipment (UE) or terminal.
- UE user equipment
- Non-limiting examples comprise a mobile station (MS) or mobile device such as a mobile phone or what is known as a ’smart phone’, a computer provided with a wireless interface card or other wireless interface facility (e.g., USB dongle) , personal data assistant (PDA) or a tablet provided with wireless communication capabilities, or any combinations of these or the like.
- a user device may provide, for example, communication of data for carrying communications such as voice, electronic mail (email) , text message, multimedia and so on.
- a user device may be a modem integrated into an IoT device such as a wireless sensor, an actuator (e.g. a robot arm) , an aggregator, a gateway or any combination of these.
- An IoT device may provide machine-to-machine communication to one or more IoT devices either directly or via gateways to servers and non-IoT user devices.
- Connectivity between IoT devices may be provided by a low-power wireless network using standards such as Bluetooth, IEEE 802.15.4 or ZigBee, by a fixed local area network (LAN) such as Ethernet, by a wireless LAN such as IEEE 802.11 WLAN, or by a cellular network using standards such as GSM, GPRS, EDGE, UMTS, LTE, NB-IoT or LTE-M.
- An IoT aggregator may pre-filter and combine the inputs form several IoT devices.
- An IoT gateway may provide connectivity between a low-power wireless network and another type of network, such as a cellular network or Internet.
- a user device is typically provided with at least one data processing entity 301, at least one memory 302 and other possible components 303 for use in software and hardware aided execution of tasks it is designed to perform, including control of access to and communications with access systems and other user devices.
- the data processing, storage and other relevant control apparatus can be provided on an appropriate circuit board and/or in chipsets. This feature is denoted by reference 304.
- the user may control the operation of the user device by means of a suitable user interface such as key pad 305, voice commands, touch sensitive screen or pad, combinations thereof or the like.
- a display 308, a speaker and a microphone can be also provided.
- the user device 102 may receive signals over an air or radio interface 307 via appropriate apparatus for receiving and may transmit signals via appropriate apparatus for transmitting radio signals.
- transceiver apparatus is designated schematically by block 306.
- the transceiver apparatus 306 may be provided for example by means of a radio part and associated antenna arrangement.
- the antenna arrangement may be arranged internally or externally to the mobile device.
- PMBC parallel multi-blocks creation scheme
- a synchronous creation method is implemented.
- miner nodes are grouped into miner groups which can create the current k rounds of blocks synchronously, and then move to the next k rounds of blocks together.
- an asynchronous creation method is implemented.
- the miner nodes are grouped into miner groups where each miner group is configured to complete a block creation respectively in the current k rounds of blocks, and then begins to create a new block asynchronously in the next k rounds of blocks.
- PMBC employs several miner leaders to control or manage the chaining of the multi-blocks sequentially to the blockchain by their timestamp.
- the miner leaders selection is proposed to selected the most credible miners as the miner leaders. To avoid the selection of the miners being fixed this selection is updated as described herein.
- a miners leader is usually employed to broadcast the accepted blocks to the network and if the miners leader is offline, no miners can broadcast the accept blocks.
- the consensus mechanism 400 as shown in Figure 4 is configured to implement a grouping or divide 401 process.
- the grouping or divide 401 process is configured to obtain the selected miner nodes, the selected miner nodes being selected by the consensus mechanism 400 to create blocks. In some embodiments the grouping or divide 401 process is combined with the selection process or is separate from the selection process.
- the (selected) miner nodes can for example be divided into k groups 402.
- the group can be denoted as MG i (1 ⁇ i ⁇ k) .
- the miner node are configured to create one block in the PMBC scheme.
- k rounds of blocks can be created by k miner groups in a parallel manner as discussed hereafter.
- the miner group nodes can be proposer nodes and validator nodes (or a combination thereof) .
- the proposer nodes are configured to take charge of the block proposal and send the block to validator nodes, respectively.
- the validator nodes check the correctness of the block and send the validation vote to each other. They will accept the block when the votes of the majority are correct.
- the validators will also send the accepted blocks 405 to the miner leaders 408 whom are responsible for chaining them sequentially to the blockchain by their timestamp.
- the invoking 403 of the block creation 412 can as described herein be used to support 413 the consensus mechanism 400 according to either of the following block creation methods.
- a first block creation method implemented by the miner groups 402 may be the synchronous creation method 412a.
- the synchronous creation method 412a can be configured such that if T denotes the numbers of transactions which should be verified in a block.
- T denotes the numbers of transactions which should be verified in a block.
- the k miner groups are configured to create the current k-round of blocks synchronously, and then move to the next k-round of blocks together (in other word attempt to create k-blocks as a 1 st round, and then when they are all completed to move on to create the next k-blocks in a 2 nd round.
- the IDs in [1, k*T] 501a can form the 1st k-round of blocks, in other word blocks from Block 1 511 to Block k 513.
- a second block creation method implemented by the miner groups 402 may be the asynchronous creation method 412b.
- the asynchronous creation method 412b may be implemented such that each group MG i starts to complete a block from the current k-rounds of blocks.
- the group MG i once it has created that block is configured to start to create a new block asynchronously in the next k-round of blocks and does not wait for the other miner groups to complete their block.
- the blocks are divided up into k-rounds of blocks as shown by a 1st round of blocks 601a (Block 1 to Block k) 601 and a 2 nd round of blocks 601b (Block k+1 to Block 2k)
- MG 1 602a is configured to create Block 1 in the 1-st k-round of block and then when completed the MG 1 602b continues to create Block k+1 in the 2-nd k-round of blocks.
- MG k 604a is configured to create Block k in the in the 1-st k-round of block and then when completed the MG k 604b continues to create Block 2k in the 2-nd k-round of blocks.
- MG’s there is no requirement for either of the MG’s to determine whether all of the Blocks in the k-round are completed before moving on to the next k-round block.
- the miners groups can send the blocks 405 to the miner leaders 408 which are configured to maintain 409 the single-chain structure 410 of blockchain.
- the single-chain structure is very important to blockchain, since the advantages of blockchain including decentralization, transparency, traceability, and tamper-resistant rely on the single-chain structure.
- the selection 407 of the miner leaders can be implemented by the following selection algorithm
- the apparatus is configured to obtain the set of miners ⁇ .
- the miner leader set ⁇ is initialized and a determined number of miner leaders are selected.
- M j the number of false blocks provided by M j when they were the proposer
- w i the number of wrong validation votes provided by M j when they were validator, respectively.
- the selection 407 can be updated according to the following update algorithm
- the accepted blocks can be chained sequentially to the blockchain in a distributed manner by the following steps.
- Step 1 M j (M j ⁇ ) is randomly/pseudorandomly selected as the main miner leader. When M j is deleted by the update algorithm, another miner leader will be randomly selected as the main miners leader.
- Step 2 The other miner leaders add their digital signature to the accepted blocks and send them to the main miner leader.
- Step 3 The main miner leader also adds their digital signature to the accepted blocks and broadcasts them to all nodes of the network by their timestamp.
- Step 4 All nodes of the network chain the accepted blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
- the division of the miners into k groups can help a consensus mechanism to implement parallel multi-blocks creation.
- the various embodiments of the invention may be implemented in hardware or special purpose circuits, software, logic or any combination thereof.
- some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto.
- firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto.
- While various aspects of the invention may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
- the embodiments of this invention may be implemented by computer software executable by a data processor of the mobile device, such as in the processor entity, or by hardware, or by a combination of software and hardware.
- any blocks of the logic flow as in the Figures may represent program steps, or interconnected logic circuits, blocks and functions, or a combination of program steps and logic circuits, blocks and functions.
- the software may be stored on such physical media as memory chips, or memory blocks implemented within the processor, magnetic media such as hard disk or floppy disks, and optical media such as for example DVD and the data variants thereof, CD.
- the memory may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory.
- the data processors may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) , application specific integrated circuits (ASIC) , gate level circuits and processors based on multi-core processor architecture, as non-limiting examples.
- Embodiments of the inventions may be practiced in various components such as integrated circuit modules.
- the design of integrated circuits is by and large a highly automated process.
- Complex and powerful software tools are available for converting a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
- Programs such as those provided by Synopsys, Inc. of Mountain View, California and Cadence Design, of San Jose, California automatically route conductors and locate components on a semiconductor chip using well established rules of design as well as libraries of pre-stored design modules.
- the resultant design in a standardized electronic format (e.g., Opus, GDSII, or the like) may be transmitted to a semiconductor fabrication facility or "fab" for fabrication.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- The present application relates to apparatus and methods for parallel multi-blocks creation scheme for blockchain, but not exclusively for parallel multi-blocks creation scheme for blockchain in bitcoin or cryptocurrency applications.
- Blockchain initially gained traction in 2008 as the technology underlying Bitcoin, but now has been employed in a diverse range of applications and created a global market worth. By means of data encryption, time stamps, consensus mechanism and smart contract, blockchain can implement a decentralized credit point-to-point transaction, coordination and cooperation in a distributed system, so as to provide solutions for the high cost, low efficiency and data storage insecurity of centralized institutions.
- Blockchain has been regarded as the fifth subversive computing paradigm after mainframe computer, personal computer, Internet and mobile social interaction, and the fourth milestone after blood relatives'credit, precious metal credit and central bank paper credit in the evolutionary history of human credit.
- Blockchain is likely to receive more and more attention because of the large number of potential applications to which it can be applied.
- Blockchain is a public ledger with a chain of blocks, each of which is made up of several committed transactions. The chain continuously grows in chronological order when new blocks are appended to it. The core advantages of blockchain are decentralization, transparency, traceability, and that it is practically tamper-resistant. Blockchain has already been applied to many fields, including financial services, medicine, internet of things (IoT) , software engineering, e-government and public services, education.
- Blockchain networks provide the means of peer-to-peer protocol organization. According to the genesis definition of blockchain, the steps to create blocks in the network can be summarised as the following operations:
- 1) New transactions are broadcast to all nodes.
- 2) Each node collects new transactions into a block.
- 3) Each node works on consensus mechanism.
- 4) When a node is selected to create the block by consensus mechanism, it broadcasts the block to all nodes of the network.
- 5) Nodes accept the block only if all transactions in it are valid and not already spent.
- 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash.
- One of the fundamental aspects of blockchain is the consensus mechanism. The consensus mechanism in distributed blockchain networks, are processes which allow the distributed nodes to complete data exchange or transaction without the need for any third-party trusted authority. The nodes responsible for creating blocks based on the consensus mechanism are called miners.
- The first and most popular consensus mechanism to secure and decentralize blockchains is the Proof of Work (PoW) process. However, PoW requires massive computational efforts to resolve a puzzle, which results in high energy and computing resources consumption. A further consensus mechanism is the proof-of-stake (PoS) process where a miner can be chosen with a probability that is proportional to owned coins or tokens. This may lead to the phenomenon that the rich get richer in using the PoS consensus process.
- Further attention has been paid to the consensus mechanism with multi-miner selection. In such consensus mechanisms, each miner actually plays two roles: the role of proposer who proposes a new block or the role of validator who validates the effectiveness of the block. For example, Tendermint is a consensus BFT (Byzantine Fault Tolerance) mechanism that can work even if up to one-third of nodes in the network fail in arbitrary ways. In Tendermint, a proposer proposes a new block, then the validators validate the block. A further BFT example is a Hyperledger Fabric. Based on Tendermint, Hyperledger Fabric is a consensus mechanism that exploits randomness and game theory.
- Currently, blocks are created one by one using the consensus mechanism. That is, after completing a block creation operation, the miners start to create a new block. This is known as a serial process and there can be many blocks waiting to be created as the number of transactions grow.
- For example in a large scale blockchain network, there may be a large number of nodes and an associated large number of transactions. The creation of the blocks on a one by one basis can result in a large number of blocks waiting to be created. The efficiency of conventional consensus mechanism is thus very low.
- Summary
- There is provided according to a first aspect an apparatus comprising means for implementing a consensus mechanism for blockchain, wherein the consensus mechanism is configured to: manage miner nodes into groups of miner nodes; manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; manage for each group of miner nodes a selection of a miner leader node; and manage each miner leader node to maintain a single chain structure of blockchain.
- The means may be further configured to manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes may be configured to create a respective block within a round of blocks to manage one of: a synchronous creation of multiple-blocks by the groups of miner nodes wherein the groups of miner nodes are required to complete all of a first round of blocks before starting a creation of a further round of blocks; and an asynchronous creation of multiple-blocks by the groups of miner nodes wherein a first group of the groups of miner nodes completes a first block from a first round of blocks before starting a creation of a further block from further round of blocks while a second group of the groups of miner nodes is creating a second block from the first round of blocks.
- The means may be further configured to manage for each group of miner nodes a selection of a miner leader node to manage: initialise a list of miner leader nodes for a group of miner nodes; for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- The means may be further configured to manage for each group of miner nodes a selection of a miner leader node to manage update, at a later time, the list of miner leader nodes by: verifying whether the determined miner leader nodes for miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node and removing any miner leader node which fails the verifying; for each miner node within the group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- The means may be further configured to manage for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node to stop when a defined number of miner leader nodes for a group of miner nodes has been determined.
- The defined number of miner leader nodes for a group of miner nodes may be three.
- The means may be further configured to manage each miner leader node to maintain a single chain structure of blockchain to manage: select one of the miner leader node as a main miner leader node; add, by the remaining leader nodes, their digital signatures to the accepted blocks and broadcast the added signature blocks to the main miner leader node; add, by the main miner leader node, the digital signature of the main miner leader node to the received added signature blocks and broadcasts these to all nodes of the network with a timestamp of the main miner leader node; and chain the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
- The means may comprise: at least one processor; and at least one memory including computer program code, the at least one memory and computer program code configured to, with the at least one processor, cause the performance of the apparatus.
- The apparatus may be a user equipment.
- The apparatus may be an Internet of Things device.
- According to a second aspect there is provided a method for implementing a consensus mechanism for blockchain, the method comprising: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; managing each miner leader node to maintain a single chain structure of blockchain.
- Managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks may comprise managing one of: a synchronous creation of multiple-blocks by the groups of miner nodes wherein the groups of miner nodes are required to complete all of a first round of blocks before starting a creation of a further round of blocks; and an asynchronous creation of multiple-blocks by the groups of miner nodes wherein a first group of the groups of miner nodes completes a first block from a first round of blocks before starting a creation of a further block from further round of blocks while a second group of the groups of miner nodes is creating a second block from the first round of blocks.
- Managing for each group of miner nodes a selection of a miner leader node may comprise managing: initialising a list of miner leader nodes for a group of miner nodes; for each miner node within a group of miner nodes determining the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- Managing for each group of miner nodes a selection of a miner leader node may comprise managing an update, at a later time, of the list of miner leader nodes by: verifying whether the determined miner leader nodes for miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node and removing any miner leader node which fails the verifying; for each miner node within the group of miner nodes determining the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- Managing for each miner node within a group of miner nodes determining the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node may comprise stopping when a defined number of miner leader nodes for a group of miner nodes has been determined.
- The defined number of miner leader nodes for a group of miner nodes may be three.
- Managing each miner leader node to maintain a single chain structure of blockchain may comprise: selecting one of the miner leader node as a main miner leader node; adding, by the remaining leader nodes, their digital signatures to the accepted blocks and broadcasting the added signature blocks to the main miner leader node; adding, by the main miner leader node, the digital signature of the main miner leader node to the received added signature blocks and broadcasting these to all nodes of the network with a timestamp of the main miner leader node; and chaining the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp. According to a third aspect there is provided an apparatus configured to implement a consensus mechanism for blockchain, the consensus mechanism comprising at least one processor and at least one memory including a computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to: manage miner nodes into groups of miner nodes; manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; manage for each group of miner nodes a selection of a miner leader node; and manage each miner leader node to maintain a single chain structure of blockchain.
- The apparatus caused to manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes may be caused to create a respective block within a round of blocks is configured to manage one of: a synchronous creation of multiple-blocks by the groups of miner nodes wherein the groups of miner nodes are required to complete all of a first round of blocks before starting a creation of a further round of blocks; and an asynchronous creation of multiple-blocks by the groups of miner nodes wherein a first group of the groups of miner nodes completes a first block from a first round of blocks before starting a creation of a further block from further round of blocks while a second group of the groups of miner nodes is creating a second block from the first round of blocks.
- The apparatus caused to manage for each group of miner nodes a selection of a miner leader node may be caused to manage: initialise a list of miner leader nodes for a group of miner nodes; for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- The apparatus caused to manage for each group of miner nodes a selection of a miner leader node may be further caused to manage update, at a later time, the list of miner leader nodes by: verifying whether the determined miner leader nodes for miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node and removing any miner leader node which fails the verifying; for each miner node within the group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- The apparatus caused to manage for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node may be caused to stop when a defined number of miner leader nodes for a group of miner nodes has been determined.
- The defined number of miner leader nodes for a group of miner nodes may be three.
- The apparatus caused to manage each miner leader node to maintain a single chain structure of blockchain may be caused to manage: select one of the miner leader node as a main miner leader node; add, by the remaining leader nodes, their digital signatures to the accepted blocks and broadcast the added signature blocks to the main miner leader node; add, by the main miner leader node, the digital signature of the main miner leader node to the received added signature blocks and broadcasts these to all nodes of the network with a timestamp of the main miner leader node; and chain the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
- According to a fourth aspect there is provided an apparatus configured to implement a consensus mechanism, the apparatus comprising: managing circuitry configured to manage miner nodes into groups of miner nodes; managing circuitry configured to manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing circuitry configured to manage for each group of miner nodes a selection of a miner leader node; and managing circuitry configured to manage each miner leader node to maintain a single chain structure of blockchain.
- According to a fifth aspect there is provided a computer program comprising instructions [or a computer readable medium comprising program instructions] for causing an apparatus to implement a consensus mechanism and perform at least the following: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; managing each miner leader node to maintain a single chain structure of blockchain.
- According to a sixth aspect there is provided a non-transitory computer readable medium comprising program instructions for causing an apparatus to implement a consensus mechanism and perform at least the following: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; managing each miner leader node to maintain a single chain structure of blockchain.
- According to a seventh aspect there is provided an apparatus configured to implement a consensus mechanism, the apparatus comprising: means for managing miner nodes into groups of miner nodes; means for managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; means for managing for each group of miner nodes a selection of a miner leader node; means for managing each miner leader node to maintain a single chain structure of blockchain.
- According to an eighth aspect there is provided a computer readable medium comprising program instructions for causing an apparatus to implement a consensus mechanism and to perform at least the following: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; managing each miner leader node to maintain a single chain structure of blockchain.
- According to a ninth aspect there is provided a computer program comprising instructions for causing an apparatus to perform at least the following: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; and managing each miner leader node to maintain a single chain structure of blockchain.
- According to a tenth aspect there is provided a non-transitory computer readable medium comprising program instructions for causing an apparatus to perform at least the following: managing miner nodes into groups of miner nodes; managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks; managing for each group of miner nodes a selection of a miner leader node; and managing each miner leader node to maintain a single chain structure of blockchain.
- An apparatus comprising means for performing the actions of the method as described above.
- An apparatus configured to perform the actions of the method as described above.
- A computer program comprising program instructions for causing a computer to perform the method as described above.
- A computer program product stored on a medium may cause an apparatus to perform the method as described herein.
- An electronic device may comprise apparatus as described herein.
- A chipset may comprise apparatus as described herein.
- Embodiments of the present application aim to address problems associated with the state of the art.
- Summary of the Figures
- For a better understanding of the present application, reference will now be made by way of example to the accompanying drawings in which:
- Figure 1 shows a schematic block diagram of a system for implementing a blockchain;
- Figures 2 and 3 show schematically example apparatus suitable for implementing some embodiments;
- Figure 4 shows a schematic view of consensus mechanism implementation functions according to some embodiments;
- Figure 5 shows schematically a synchronous creation mechanism according to some embodiments; and
- Figure 6 shows schematically an asynchronous creation mechanism according to some embodiments.
- Embodiments of the Application
- The following describes in further detail suitable apparatus and possible mechanisms for the provision of efficient consensus mechanism processes for the implementation of blockchain.
- Figure 1 shows an example system 100 for implementing a blockchain 150. The system 100 comprises a packet-switched network 101 such as the Internet. The packet-switched network 101 comprises a plurality of nodes 104 arranged to form a peer-to-peer (P2P) overlay network 106 within the packet-switched network 101. Each node 104 comprises computer equipment of a peer, with different ones of the nodes 104 belonging to different peers. Each node 104 comprises processing apparatus comprising one or more processors, e.g. one or more central processing units (CPUs) , accelerator processors, application specific processors and/or field programmable gate arrays (FPGAs) . Each node also comprises memory, i.e. computer-readable storage in the form of a non-transitory computer-readable medium or media. The memory may comprise one or more memory units employing one or more memory media, e.g. a magnetic medium such as a hard disk; an electronic medium such as a solid-state drive (SSD) , flash memory or EEPROM; and/or an optical medium such as an optical disk drive.
- Figure 2 shows in detail an example embodiment of a node. The node 104 comprises at least one memory 201, at least one data processing unit 202, 203 and an input/output interface 204. Via the interface 204 the node 104 can be coupled to the packet-switched network 101.
- The blockchain 150 comprises a chain of blocks of data 151, wherein a respective copy of the blockchain 150 is maintained at each of a plurality of nodes in the P2P network 106. The chain of blocks 151 goes all the way back to a genesis block (Gb) 153 which was the first block in the chain. Each block 151 in the chain comprises one or more transactions 152, wherein a transaction in this context refers to a kind of data structure. An example the data structure of each transaction 152 comprises at least one input and at least one output. Each output specifies an amount representing a quantity of a digital asset belonging to a user to whom the output is cryptographically locked (requiring a signature of that user in order to be unlocked and thereby redeemed or spent) . Each input points back to the output of a preceding transaction 152, thereby linking the transactions.
- At least some of the nodes 104 take on the role of forwarding nodes which forward and thereby propagate transactions 152. At least some of the nodes 104 take on the role of miners which mine blocks 151. At least some of the nodes 104 take on the role of storage nodes (sometimes also called “full-copy” nodes) , each of which stores a respective copy of the same blockchain 150 in their respective memory. Each miner node also maintains a pool 154 of transactions 152 waiting to be mined into blocks 151. A given node 104 may be a forwarding node, miner, storage node or any combination of two or all of these.
- In a given transaction, the (or each) input comprises a pointer referencing the output of a preceding transaction in the sequence of transactions, specifying that this output is to be redeemed or “spent” in the present transaction. In general, the preceding transaction could be any transaction in the pool 154 or any block 151. The preceding transaction need not necessarily exist at the time the present transaction is created or even sent to the network 106, though the preceding transaction will need to exist and be validated in order for the present transaction to be valid. Hence “preceding” herein refers to a predecessor in a logical sequence linked by pointers, not necessarily the time of creation or sending in a temporal sequence, and hence it does not necessarily exclude that the transactions be created or sent out-of-order. The preceding transaction could equally be called the antecedent or predecessor transaction.
- The input of the present transaction 152 also comprises the signature of the user 105a to whom the output of the preceding transaction is locked. In turn, the output of the present transaction can be cryptographically locked to a new user 105b. The present transaction can thus transfer the amount defined in the input of the preceding transaction to the new user 105b as defined in the output of the present transaction 152. In some cases a transaction 152 may have multiple outputs to split the input amount between multiple users (one of whom could be the original user 105a in order to give change) . In some cases the transaction can also have multiple inputs to gather together the amounts from multiple outputs of one or more preceding transactions, and redistribute to one or more outputs of the current transaction.
- When a user 105 wishes to enact a new transaction, then they send the new transaction from their user device 102 to one of the nodes 104 of the P2P network 106 (which are typically servers or data centres, but could in principle be other user devices) . The node 104 then checks whether the transaction is valid.
- The node 104 typically checks that the cryptographic signature in the new transaction 152 matches the expected signature, which depends on the previous transaction in an ordered sequence of transactions. This may comprise checking that the cryptographic signature of the user included in the input of the new transaction 152 matches a condition defined in the output of the preceding transaction which the new transaction spends, wherein this condition typically comprises at least checking that the cryptographic signature in the input of the new transaction 152 unlocks the output of the previous transaction to which the input of the new transaction points. The condition may be at least partially defined by a custom script included in the input and/or output. If the new transaction 152 is valid, the current node forwards it to one or more others of the nodes 104 in the P2P network 106. At least some of these nodes 104 also act as forwarding nodes, applying the same test according to the same node protocol, and so forward the new transaction 152 on to one or more further nodes 104, and so forth. In this way the new transaction is propagated throughout the network of nodes 104.
- The definition of whether a given output is spent is whether it has yet been validly redeemed by the input of another, onward transaction 152 and that the output of the preceding transition which it attempts to spend or redeem has not already been spent/redeemed by another valid transaction. Again if this is not valid, the transaction 152 will not be propagated or recorded in the blockchain. This guards against double-spending whereby the spender tries to spend the output of the same transaction more than once.
- As discussed above at least some of the nodes 104 also race to be the first to create blocks of transactions in a process known as mining, which is underpinned by the consensus mechanism. At a mining node 104, new transactions are added to a pool of valid transactions that have not yet appeared in a block. The miners then race to assemble a new valid block 151 of transactions 152 from the pool of transactions 154 by attempting to solve a cryptographic puzzle. Typically this comprises searching for a “nonce” value such that when the nonce is concatenated with the pool of transactions 154 and hashed, then the output of the hash meets a predetermined condition. E. g. the predetermined condition may be that the output of the hash has a certain predefined number of leading zeros. A property of a hash function is that it has an unpredictable output with respect to its input. Therefore this search can only be performed by brute force, thus consuming a substantive amount of processing resource at each node 104 that is trying to solve the puzzle.
- The first miner node 104 to solve the puzzle announces this to the network 106, providing the solution as proof which can then be easily checked by the other nodes 104 in the network (once given the solution to a hash it is straightforward to check that it causes the output of the hash to meet the condition) . The pool of transactions 154 for which the winner solved the puzzle then becomes recorded as a new block 151 in the blockchain 150 by at least some of the nodes 104 acting as storage nodes 104, based on having checked the winner’s announced solution at each such node. A block pointer 155 is also assigned to the new block Bn pointing back to the previously created block Bn-1 in the chain. The consensus mechanism helps reduce the risk of double spending since it takes a large amount of effort to create a new block 151, and as any block containing a double spend is likely to be rejected by other nodes 104, mining nodes are incentivised not to allow double spends to be included in their blocks. Once created, the block 151 cannot be modified since it is recognized and maintained at each of the storing nodes in the P2P network 106 according to the same protocol. The block pointer 155 also imposes a sequential order to the blocks 151. Since the transactions 152 are recorded in the ordered blocks at each storage node in a P2P network 106, this therefore provides an immutable public ledger of the transactions.
- Different miners 104 racing to solve the puzzle at any given time may be doing so based on different snapshots of the unmined transaction pool 154 at any given time, depending on when they started searching for a solution. Whoever solves their respective puzzle first defines which transactions 152 are included in the next new block, and the current pool 154 of unmined transactions is updated. The miners then continue to race to create a block from the newly defined outstanding pool 154, and so forth. The consensus mechanism may also resolve any “fork” that may arise, which is where two miners solve their puzzle within a very short time of one another such that a conflicting view of the blockchain gets propagated. In short, whichever prong of the fork grows the longest becomes the definitive blockchain 150.
- In most blockchains the winning miner is automatically rewarded with a special kind of new transaction which creates a new quantity of the digital asset out of nowhere (as opposed to normal transactions which transfer an amount of the digital asset from one user to another) . Hence the winning node is said to have “mined” a quantity of the digital asset. This special type of transaction is sometime referred to as a “generation” transaction. It automatically forms part of the new block. This reward gives an incentive for the miners to participate in the consensus mechanism controlled race. Often a regular (non-generation) transaction 152 will also specify an additional transaction fee in one of its outputs, to further reward the winning miner that created the block in which that transaction was included.
- Due to the computational resource involved in mining, typically at least each of the miner nodes takes the form of a server comprising one or more physical server units, or even whole a data centre. Each forwarding node and/or storage node may also take the form of a server or data centre. However in principle any given node could take the form of a user device or terminal or a group of user devices or terminals networked together.
- The memory of each node 104 stores software configured to run on the processing apparatus of the node 104 in order to perform its respective role or roles and handle transactions 152. It will be understood that any action attributed herein to a node 104 may be performed by the software run on the processing apparatus of the respective computer equipment. Also, the term “blockchain” as used herein is a generic term that refers to the kind of technology in general, and does not limit to any particular proprietary blockchain, protocol or service.
- Also connected to the network 101 is the user device 102 of each of a plurality of parties 105 in the role of consuming users. These act as payers and payees in transactions but do not necessarily participate in mining or propagating transactions on behalf of other parties. Two parties 105 and their respective user devices 102 are shown for illustrative purposes: a first party 105a and their respective user device 102a, and a second party 105b and their respective user device 102b. It will be understood that many more such parties 105 and their respective user device 102 may be present and participating in the system, but for convenience they are not illustrated. Each party 105 may be an individual or an organization. Purely by way of illustration the first party 105a is referred to herein as Alice and the second party 105b is referred to as Bob, but it will be appreciated that this is not limiting and any reference herein to Alice or Bob may be replaced with “first party” and “second “party” respectively.
- Figure 3 shows an example of a suitable user device 102. Figure 3 shows a schematic, partially sectioned view of the user device 102. Such a user device may be referred to as user equipment (UE) or terminal. Non-limiting examples comprise a mobile station (MS) or mobile device such as a mobile phone or what is known as a ’smart phone’, a computer provided with a wireless interface card or other wireless interface facility (e.g., USB dongle) , personal data assistant (PDA) or a tablet provided with wireless communication capabilities, or any combinations of these or the like. A user device may provide, for example, communication of data for carrying communications such as voice, electronic mail (email) , text message, multimedia and so on.
- In an Internet of Things (IoT) application a user device may be a modem integrated into an IoT device such as a wireless sensor, an actuator (e.g. a robot arm) , an aggregator, a gateway or any combination of these. An IoT device may provide machine-to-machine communication to one or more IoT devices either directly or via gateways to servers and non-IoT user devices. Connectivity between IoT devices may be provided by a low-power wireless network using standards such as Bluetooth, IEEE 802.15.4 or ZigBee, by a fixed local area network (LAN) such as Ethernet, by a wireless LAN such as IEEE 802.11 WLAN, or by a cellular network using standards such as GSM, GPRS, EDGE, UMTS, LTE, NB-IoT or LTE-M. An IoT aggregator may pre-filter and combine the inputs form several IoT devices. An IoT gateway may provide connectivity between a low-power wireless network and another type of network, such as a cellular network or Internet.
- A user device is typically provided with at least one data processing entity 301, at least one memory 302 and other possible components 303 for use in software and hardware aided execution of tasks it is designed to perform, including control of access to and communications with access systems and other user devices. The data processing, storage and other relevant control apparatus can be provided on an appropriate circuit board and/or in chipsets. This feature is denoted by reference 304. The user may control the operation of the user device by means of a suitable user interface such as key pad 305, voice commands, touch sensitive screen or pad, combinations thereof or the like. A display 308, a speaker and a microphone can be also provided.
- The user device 102 may receive signals over an air or radio interface 307 via appropriate apparatus for receiving and may transmit signals via appropriate apparatus for transmitting radio signals. In Figure 3 transceiver apparatus is designated schematically by block 306. The transceiver apparatus 306 may be provided for example by means of a radio part and associated antenna arrangement. The antenna arrangement may be arranged internally or externally to the mobile device.
- The concept as discussed in the embodiments hereafter is the implementation of a parallel multi-blocks creation scheme (PMBC) . This differs from the typical implementation in that PMBC discloses parallel methods to support consensus mechanism in order to implement parallel multi-blocks creation with the help of miner groups.
- In some embodiments a synchronous creation method is implemented. In the synchronous creation method, miner nodes are grouped into miner groups which can create the current k rounds of blocks synchronously, and then move to the next k rounds of blocks together.
- In some embodiments an asynchronous creation method is implemented. In the asynchronous creation method, once again the miner nodes are grouped into miner groups where each miner group is configured to complete a block creation respectively in the current k rounds of blocks, and then begins to create a new block asynchronously in the next k rounds of blocks.
- Both the synchronous and asynchronous two methods are much faster than the current consensus mechanisms which create blocks serially, one by one.
- Furthermore PMBC employs several miner leaders to control or manage the chaining of the multi-blocks sequentially to the blockchain by their timestamp. The miner leaders selection is proposed to selected the most credible miners as the miner leaders. To avoid the selection of the miners being fixed this selection is updated as described herein. Typically a miners leader is usually employed to broadcast the accepted blocks to the network and if the miners leader is offline, no miners can broadcast the accept blocks.
- With respect to Figure 4 is shown a schematic view of a consensus mechanism 400 as implemented in some embodiments.
- The consensus mechanism 400 as shown in Figure 4 is configured to implement a grouping or divide 401 process.
- The grouping or divide 401 process is configured to obtain the selected miner nodes, the selected miner nodes being selected by the consensus mechanism 400 to create blocks. In some embodiments the grouping or divide 401 process is combined with the selection process or is separate from the selection process.
- The (selected) miner nodes can for example be divided into k groups 402. For the i-th miners group, the group can be denoted as MG i (1≤i≤k) . In each miner group MG i the miner node are configured to create one block in the PMBC scheme. Then, k rounds of blocks can be created by k miner groups in a parallel manner as discussed hereafter.
- For each MG i, the miner group nodes can be proposer nodes and validator nodes (or a combination thereof) . The proposer nodes are configured to take charge of the block proposal and send the block to validator nodes, respectively. The validator nodes check the correctness of the block and send the validation vote to each other. They will accept the block when the votes of the majority are correct.
- In some embodiments the validators will also send the accepted blocks 405 to the miner leaders 408 whom are responsible for chaining them sequentially to the blockchain by their timestamp.
- The invoking 403 of the block creation 412 can as described herein be used to support 413 the consensus mechanism 400 according to either of the following block creation methods.
- A first block creation method implemented by the miner groups 402 may be the synchronous creation method 412a. The synchronous creation method 412a can be configured such that if T denotes the numbers of transactions which should be verified in a block. The relationship between k*T transactions and k rounds of blocks and can be described as:
-
- In the synchronous creation method 412a, the k miner groups are configured to create the current k-round of blocks synchronously, and then move to the next k-round of blocks together (in other word attempt to create k-blocks as a 1 st round, and then when they are all completed to move on to create the next k-blocks in a 2 nd round.
- For example as shown in Figure 5, the IDs in [1, k*T] 501a can form the 1st k-round of blocks, in other word blocks from Block 1 511 to Block k 513. The miner groups at time=t 402 can then be configured to create the 1st k-round of blocks.
- Having completed the creation of the 1 st k-round of blocks the k miner groups at time=t+v can then be configured to create the next, for example 2 nd k-round of blocks from Block k+1 521 to Block 2k 523. This can then repeat while there remains blocks to be created.
- A second block creation method implemented by the miner groups 402 may be the asynchronous creation method 412b. The asynchronous creation method 412b may be implemented such that each group MG i starts to complete a block from the current k-rounds of blocks. The group MG i once it has created that block is configured to start to create a new block asynchronously in the next k-round of blocks and does not wait for the other miner groups to complete their block.
- For example as shown in Figure 6 the blocks are divided up into k-rounds of blocks as shown by a 1st round of blocks 601a (Block 1 to Block k) 601 and a 2 nd round of blocks 601b (Block k+1 to Block 2k)
- In the q-th k-round of blocks, the relationship between MG i and Block i can be described as:
-
- For example, MG 1 602a is configured to create Block 1 in the 1-st k-round of block and then when completed the MG 1 602b continues to create Block k+1 in the 2-nd k-round of blocks. Similarly as shown in Figure 6 MG k 604a is configured to create Block k in the in the 1-st k-round of block and then when completed the MG k 604b continues to create Block 2k in the 2-nd k-round of blocks. However there is no requirement for either of the MG’s to determine whether all of the Blocks in the k-round are completed before moving on to the next k-round block.
- Having created the blocks, the miners groups can send the blocks 405 to the miner leaders 408 which are configured to maintain 409 the single-chain structure 410 of blockchain. The single-chain structure is very important to blockchain, since the advantages of blockchain including decentralization, transparency, traceability, and tamper-resistant rely on the single-chain structure.
- In some embodiments the selection 407 of the miner leaders can be implemented by the following selection algorithm
-
- Thus in some embodiments the apparatus is configured to obtain the set of miners Φ. The miner leader set Θ is initialized and a determined number of miner leaders are selected. For the j-th miner (M j) , let f j denote the number of false blocks provided by M j when they were the proposer and w i denote the number of wrong validation votes provided by M j when they were validator, respectively. The miners with f j=0&&w j=0 according to this method are selected as the miner leaders.
- In some embodiments the selection 407 can be updated according to the following update algorithm
-
- Having selected (and updated) the miner leader nodes then the accepted blocks can be chained sequentially to the blockchain in a distributed manner by the following steps.
- Step 1. M j (M j∈Θ) is randomly/pseudorandomly selected as the main miner leader. When M j is deleted by the update algorithm, another miner leader will be randomly selected as the main miners leader.
- Step 2. The other miner leaders add their digital signature to the accepted blocks and send them to the main miner leader.
- Step 3. The main miner leader also adds their digital signature to the accepted blocks and broadcasts them to all nodes of the network by their timestamp.
- Step 4. All nodes of the network chain the accepted blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
- In such embodiments it can be possible to create multi-blocks 416 in blockchain, based on block proposal 423, block validation 425, and block accept 427 procedures implemented 415 by the consensus mechanism. This may be widely applied in financial services, medicine, internet of things (IoT) , software engineering, e-government and public services, education, and other applications.
- Additionally in some embodiments the division of the miners into k groups can help a consensus mechanism to implement parallel multi-blocks creation.
- In general, the various embodiments of the invention may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto. While various aspects of the invention may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
- The embodiments of this invention may be implemented by computer software executable by a data processor of the mobile device, such as in the processor entity, or by hardware, or by a combination of software and hardware. Further in this regard it should be noted that any blocks of the logic flow as in the Figures may represent program steps, or interconnected logic circuits, blocks and functions, or a combination of program steps and logic circuits, blocks and functions. The software may be stored on such physical media as memory chips, or memory blocks implemented within the processor, magnetic media such as hard disk or floppy disks, and optical media such as for example DVD and the data variants thereof, CD.
- The memory may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The data processors may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) , application specific integrated circuits (ASIC) , gate level circuits and processors based on multi-core processor architecture, as non-limiting examples.
- Embodiments of the inventions may be practiced in various components such as integrated circuit modules. The design of integrated circuits is by and large a highly automated process. Complex and powerful software tools are available for converting a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
- Programs, such as those provided by Synopsys, Inc. of Mountain View, California and Cadence Design, of San Jose, California automatically route conductors and locate components on a semiconductor chip using well established rules of design as well as libraries of pre-stored design modules. Once the design for a semiconductor circuit has been completed, the resultant design, in a standardized electronic format (e.g., Opus, GDSII, or the like) may be transmitted to a semiconductor fabrication facility or "fab" for fabrication.
- The foregoing description has provided by way of exemplary and non-limiting examples a full and informative description of the exemplary embodiment of this invention. However, various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. However, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention as defined in the appended claims.
Claims (19)
- An apparatus comprising means for implementing a consensus mechanism for blockchain, wherein the consensus mechanism is configured to:manage miner nodes into groups of miner nodes;manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks;manage for each group of miner nodes a selection of a miner leader node; andmanage each miner leader node to maintain a single chain structure of blockchain.
- The apparatus as claimed in claim 1, wherein the means are further configured to manage the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks to manage one of:a synchronous creation of multiple-blocks by the groups of miner nodes wherein the groups of miner nodes are required to complete all of a first round of blocks before starting a creation of a further round of blocks; andan asynchronous creation of multiple-blocks by the groups of miner nodes wherein a first group of the groups of miner nodes completes a first block from a first round of blocks before starting a creation of a further block from further round of blocks while a second group of the groups of miner nodes is creating a second block from the first round of blocks.
- The apparatus as claimed in any of claims 1 and 2, wherein the means are further configured to manage for each group of miner nodes a selection of a miner leader node to manage:initialise a list of miner leader nodes for a group of miner nodes;for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- The apparatus as claimed in claim 3, wherein the means are further configured to manage for each group of miner nodes a selection of a miner leader node to manage update, at a later time, the list of miner leader nodes by:verifying whether the determined miner leader nodes for miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node and removing any miner leader node which fails the verifying;for each miner node within the group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- The apparatus as claimed in any of claims 3 and 4, wherein the means are further configured to manage for each miner node within a group of miner nodes determine the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node is configured to stop when a defined number of miner leader nodes for a group of miner nodes has been determined.
- The apparatus as claimed in claim 5, wherein the defined number of miner leader nodes for a group of miner nodes is three.
- The apparatus as claimed in any of claims 1 to 6, wherein the means are further configured to manage each miner leader node to maintain a single chain structure of blockchain is configured to manage:select one of the miner leader node as a main miner leader node;add, by the remaining leader nodes, their digital signatures to the accepted blocks and broadcast the added signature blocks to the main miner leader node;add, by the main miner leader node, the digital signature of the main miner leader node to the received added signature blocks and broadcasts these to all nodes of the network with a timestamp of the main miner leader node; andchain the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
- The apparatus as claimed in any of claims 1 to 7, wherein the means comprises:at least one processor; andat least one memory including computer program code, the at least one memory and computer program code configured to, with the at least one processor, cause the performance of the apparatus.
- The apparatus as claimed in any of claims 1 to 8, wherein the apparatus is user equipment.
- The apparatus as claimed in any of claims 1 to 8, wherein the apparatus is an Internet of Things device.
- A method for implementing a consensus mechanism for blockchain, the method comprising:managing miner nodes into groups of miner nodes;managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks;managing for each group of miner nodes a selection of a miner leader node; andmanaging each miner leader node to maintain a single chain structure of blockchain.
- The method as claimed in claim 11, wherein managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks comprises managing one of:a synchronous creation of multiple-blocks by the groups of miner nodes wherein the groups of miner nodes are required to complete all of a first round of blocks before starting a creation of a further round of blocks; andan asynchronous creation of multiple-blocks by the groups of miner nodes wherein a first group of the groups of miner nodes completes a first block from a first round of blocks before starting a creation of a further block from further round of blocks while a second group of the groups of miner nodes is creating a second block from the first round of blocks.
- The method as claimed in any of claims 11 and 12, wherein managing for each group of miner nodes a selection of a miner leader node comprises managing:initialising a list of miner leader nodes for a group of miner nodes;for each miner node within a group of miner nodes determining the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- The method as claimed in claim 13, wherein managing for each group of miner nodes a selection of a miner leader node comprises managing an update, at a later time, the list of miner leader nodes by:verifying whether the determined miner leader nodes for miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node and removing any miner leader node which fails the verifying;for each miner node within the group of miner nodes determining the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node.
- The method as claimed in any of claims 13 and 14, wherein managing for each miner node within a group of miner nodes determining the miner node is a miner leader node when the miner node supplied no false blocks when acting as a proposer node and provided no wrong validation votes when acting as a validator node comprising stopping when a defined number of miner leader nodes for a group of miner nodes has been determined.
- The method as claimed in claim 15, wherein the defined number of miner leader nodes for a group of miner nodes is three.
- The method as claimed in any of claims 11 to 16, wherein managing each miner leader node to maintain a single chain structure of blockchain comprises:selecting one of the miner leader node as a main miner leader node;adding, by the remaining leader nodes, their digital signatures to the accepted blocks and broadcasting the added signature blocks to the main miner leader node;adding, by the main miner leader node, the digital signature of the main miner leader node to the received added signature blocks and broadcasting these to all nodes of the network with a timestamp of the main miner leader node; andchaining the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
- A computer program comprising instructions for causing an apparatus to perform at least the following:managing miner nodes into groups of miner nodes;managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks;managing for each group of miner nodes a selection of a miner leader node; andmanaging each miner leader node to maintain a single chain structure of blockchain.
- A non-transitory computer readable medium comprising program instructions for causing an apparatus to perform at least the following:managing miner nodes into groups of miner nodes;managing the creation of multiple-blocks by the groups of miner nodes, wherein each of the groups of miner nodes are configured to create a respective block within a round of blocks;managing for each group of miner nodes a selection of a miner leader node; andmanaging each miner leader node to maintain a single chain structure of blockchain.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/087085 WO2020227984A1 (en) | 2019-05-15 | 2019-05-15 | Parallel multi-blocks creation scheme for blockchain |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3970343A1 true EP3970343A1 (en) | 2022-03-23 |
EP3970343A4 EP3970343A4 (en) | 2022-12-28 |
Family
ID=73290114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19928892.9A Withdrawn EP3970343A4 (en) | 2019-05-15 | 2019-05-15 | Parallel multi-blocks creation scheme for blockchain |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP3970343A4 (en) |
WO (1) | WO2020227984A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11250430B2 (en) | 2018-06-29 | 2022-02-15 | Paypal, Inc. | Systems and methods for automated transaction management |
CN111461793B (en) * | 2020-04-27 | 2023-10-10 | 吉林省桥王智能科技有限公司 | Integration chain consensus method based on liveness probability selection |
US11625723B2 (en) | 2020-05-28 | 2023-04-11 | Paypal, Inc. | Risk assessment through device data using machine learning-based network |
US20230133349A1 (en) * | 2021-11-03 | 2023-05-04 | Paypal, Inc. | Latency and Computational Performance On A Blockchain |
CN115037756B (en) * | 2022-06-01 | 2024-08-06 | 蚂蚁区块链科技(上海)有限公司 | Method for operating alliance chain network, alliance chain network and node equipment for alliance chain network |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10657526B2 (en) * | 2016-10-28 | 2020-05-19 | International Business Machines Corporation | System and method to dynamically setup a private sub-blockchain based on agility of transaction processing |
GB2574828A (en) * | 2018-06-19 | 2019-12-25 | Setl Ltd | Leader selection for permissioned blockchain |
CN108847925B (en) * | 2018-06-20 | 2020-09-15 | 深圳大学 | Fragment block chain generation method based on tree structure |
CN109246194B (en) * | 2018-08-13 | 2021-06-08 | 佛山市顺德区中山大学研究院 | Practical Byzantine fault-tolerant block chain consensus method and system based on multiple leader nodes |
CN109544334B (en) * | 2018-10-22 | 2020-09-29 | 深圳市哈希树科技有限公司 | Method for realizing network extensible block chain |
US11474994B2 (en) * | 2018-12-27 | 2022-10-18 | Intel Corporation | Distributed blockchain oracle |
-
2019
- 2019-05-15 EP EP19928892.9A patent/EP3970343A4/en not_active Withdrawn
- 2019-05-15 WO PCT/CN2019/087085 patent/WO2020227984A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP3970343A4 (en) | 2022-12-28 |
WO2020227984A1 (en) | 2020-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020227984A1 (en) | Parallel multi-blocks creation scheme for blockchain | |
Xu et al. | Making big data open in edges: A resource-efficient blockchain-based approach | |
US20220147491A1 (en) | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network | |
US11468077B2 (en) | Computer-implemented system and method for managing transactions over a blockchain network | |
US20230161756A1 (en) | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network | |
JP6518838B6 (en) | Method and apparatus for distributed database in a network | |
US11496485B2 (en) | Task completion using a blockchain network | |
KR20200059233A (en) | Smart contract execution with distributed reconciliation | |
US20230315891A1 (en) | Transaction data processing method and apparatus, computer device and storage medium | |
US20210160077A1 (en) | Methods and systems for a consistent distributed memory pool in a blockchain network | |
KR20220088956A (en) | Systems and methods for providing specialized proof of confidential knowledge | |
JP2023524855A (en) | Computer-implemented system and method for efficient and secure processing, access, and transmission of data via blockchain | |
US20240291678A1 (en) | Multi-level blockchain | |
CN118176694A (en) | Method and system for distributed blockchain functionality | |
CN118216121A (en) | Method and system for distributed blockchain functionality | |
CN118805360A (en) | Blockchain transactions | |
JP2024523923A (en) | Tiered Consensus | |
CN110889040B (en) | Method and device for pushing information | |
US20240370866A1 (en) | A computer implemented method and system of maintaining a status of a stream on a blockchain | |
Sharma et al. | Reinshard: An optimally sharded dual-blockchain for concurrency resolution | |
WO2023180486A1 (en) | Ordered, append-only data storage | |
CN118202614A (en) | Sliced merck tree | |
JP2024540057A (en) | Computer-Implemented Systems and Methods | |
CN118369884A (en) | Data structure for isolated transactions | |
CN118633258A (en) | Method and system for distributed blockchain functionality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20211215 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Free format text: PREVIOUS MAIN CLASS: H04L0029080000 Ipc: H04L0009320000 |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 20221128 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 9/00 20220101ALI20221122BHEP Ipc: H04L 67/1023 20220101ALI20221122BHEP Ipc: H04L 9/40 20220101ALI20221122BHEP Ipc: H04L 9/32 20060101AFI20221122BHEP |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20230627 |