EP3970343A1 - Parallel multi-blocks creation scheme for blockchain - Google Patents

Parallel multi-blocks creation scheme for blockchain

Info

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
Application number
EP19928892.9A
Other languages
German (de)
French (fr)
Other versions
EP3970343A4 (en
Inventor
Jingyu FENG
Shaoqing LV
Guangyue LU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of EP3970343A1 publication Critical patent/EP3970343A1/en
Publication of EP3970343A4 publication Critical patent/EP3970343A4/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

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

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; manage each miner leader node to maintain a single chain structure of blockchain.

Description

    PARALLEL MULTI-BLOCKS CREATION SCHEME FOR BLOCKCHAIN Field
  • 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.
  • Background
  • 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)

  1. 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.
  2. 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; 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.
  3. 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.
  4. 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.
  5. 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.
  6. The apparatus as claimed in claim 5, wherein the defined number of miner leader nodes for a group of miner nodes is three.
  7. 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; and
    chain the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
  8. The apparatus as claimed in any of claims 1 to 7, wherein the means comprises:
    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.
  9. The apparatus as claimed in any of claims 1 to 8, wherein the apparatus is user equipment.
  10. The apparatus as claimed in any of claims 1 to 8, wherein the apparatus is an Internet of Things device.
  11. 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; and
    managing each miner leader node to maintain a single chain structure of blockchain.
  12. 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; 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.
  13. 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.
  14. 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.
  15. 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.
  16. The method as claimed in claim 15, wherein the defined number of miner leader nodes for a group of miner nodes is three.
  17. 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; and
    chaining the blocks with the digital signature of the miner leaders sequentially to the blockchain by their timestamp.
  18. 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.
  19. 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.
EP19928892.9A 2019-05-15 2019-05-15 Parallel multi-blocks creation scheme for blockchain Withdrawn EP3970343A4 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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