Search

KR-102964182-B1 - Methods and devices for propagating blocks in a blockchain network

KR102964182B1KR 102964182 B1KR102964182 B1KR 102964182B1KR-102964182-B1

Abstract

A method and device for propagating blocks in a blockchain network. At a mining node, while hashing the first block header of a first candidate block, the mining node transmits a first message to another mining node specifying the transactions and their order within a first sorted set of transactions contained within the first candidate block. Mining also receives a second message specifying the transactions and their order within a second sorted set of transactions contained within a second candidate block mined by a second mining node. When the mining node succeeds in mining the candidate block, it notifies the other mining node by providing the coinbase transaction, hash value, and timestamp. When the other mining node succeeds, the mining node receives information along with the second message from the other mining node and can assemble and validate the second candidate block from it.

Inventors

  • 맥케이, 알렉스
  • 장, 웨이
  • 라이트, 크레이그 스티븐
  • 코글란, 스티븐 패트릭

Assignees

  • 엔체인 라이센싱 아게

Dates

Publication Date
20260512
Application Date
20200409
Priority Date
20190412

Claims (15)

  1. In a computer implementation method for block propagation in a blockchain network, the method is: While hashing the first block header of the first candidate block at the first mining node, Transmitting a first message to another mining node specifying the transactions and their order within a first sorted set of transactions included in the first candidate block; and A method comprising receiving a second message identifying a transaction and its order within a second ordered set of transactions contained within a second candidate block mined by a second mining node.
  2. A method according to claim 1, wherein receiving the second message comprises storing the second aligned transaction set associated with the second mining node identifier in the memory of the first mining node.
  3. In paragraph 1: Receiving second block header information and a coinbase transaction indicating the successful completion of the proof of work regarding the second candidate block from the second mining node—the second block header information includes at least a timestamp and a nonce; Assembling a second block header based on the second aligned transaction set, the coinbase transaction, and the second block header information; and A method further comprising hashing the second block header to validate the second candidate block in order to validate the above proof of work.
  4. In paragraph 3, the method of assembling includes determining the Merkle root from the second aligned set of transactions and the coinbase transaction.
  5. A method according to claim 1, further comprising first constructing the first candidate block by selecting and sorting transactions from a mempool to generate the first sorted set of transactions, and adding a coinbase transaction.
  6. In paragraph 1, Discovering a proof of work associated with a nonce within the first block header of the first candidate block by hashing the first block header to generate a hash value less than a difficulty threshold, and as a result, Transmitting a coinbase transaction from the first candidate block and the first block header information to the other mining node—the first block header information includes at least a timestamp and the nonce; and A method further comprising adding the above-mentioned first candidate block to a local copy of the blockchain.
  7. In paragraph 6, the first block header information is a method of excluding at least the Merkle root field.
  8. In paragraph 6, a method in which the first mining node does not retransmit the first aligned set of transactions to the other mining node after discovering the proof of work.
  9. A method according to claim 1, wherein the first message includes a first template identifier based on a first mining node identifier and a block level indicator.
  10. In claim 9, the first template identifier is obtained from (a) the first mining node identifier and (b) the hash of the concatenation of hash values associated with a previous block in the blockchain.
  11. A method according to claim 1, wherein the first message and the second message include a compressed transaction identifier for identifying the transaction in the first sorted set of transactions and the transaction in the second sorted set of transactions.
  12. In paragraph 11, the method wherein the compressed transaction identifier is a truncated transaction identifier.
  13. A method according to claim 1, wherein the first set of aligned transactions within the first message is encrypted, and a decryption key for decrypting the first set of aligned transactions is provided to the other mining node only when the first mining node discovers a proof of work for the first candidate block.
  14. In a computing device implementing a first mining node that mines blocks in a blockchain network, the computing device comprises: One or more processors; Memory; A computing device comprising computer-executable instructions stored in memory, which, when executed by one or more processors, cause the processor to perform the method claimed in any one of claims 1 to 13.
  15. A computer-readable medium storing a processor-executable instruction for implementing a first mining node for mining blocks in a blockchain network, wherein the processor-executable instruction comprises, when executed by one or more processors, an instruction that causes the processor to perform the method claimed in any one of claims 1 to 13.

Description

Methods and devices for propagating blocks in a blockchain network The present disclosure relates to a blockchain network, and in particular, to the propagation of blocks among miner nodes. In a proof-of-work blockchain system, when a miner finds a valid block, they intend to quickly communicate their success to all other miners. This involves propagating information about the block to all mining nodes through the blockchain network. In some cases, this may involve transmitting the entire block data. In other cases, it may involve transmitting the block header and transaction list information. The receiving miner validates the new block by hashing the header and checking if it matches the hash value provided by the successful miner. As block size and the number of transactions increase, delays in block propagation can exacerbate the problems of temporary forks and orphan blocks. This situation becomes costly for miners and the system as a whole. Now, as an example, we will refer to the accompanying drawings illustrating exemplary embodiments of the present application. Figure 1 illustrates an exemplary block structure for a blockchain network. Figure 2 illustrates a flowchart of an exemplary method of block propagation. FIGS. 3a through 3i exemplarily illustrate a sequence of messages and operations in an exemplary implementation of block propagation according to the present application. Figure 4 shows a simplified example of a mining node in the form of a block diagram. Similar reference numbers are used to indicate similar elements and features in drawings. In one aspect, a computer implementation method for block propagation in a blockchain network may be provided. The method may include transmitting a first message to another mining node, while hashing a first block header of a first candidate block, specifying transactions and their order within a first sorted set contained within the first candidate block; and receiving a second message identifying transactions and their order within a second sorted set contained within a second candidate block mined by a second mining node. In some implementations, receiving the second message includes storing a second set of aligned transactions associated with a second mining node identifier in the memory of the first mining node. In some implementations, the method may further include receiving second block header information and a coinbase transaction from a second mining node indicating the successful completion of a proof of work regarding a second candidate block—the second block header information including at least a timestamp and a nonce; assembling a second block header based on a second set of aligned transactions, a coinbase transaction, and the second block header information; and validating the second candidate block by hashing the second block header to validate the proof of work. In some cases, assembling includes determining a Merkle root from the second set of aligned transactions and the coinbase transaction. In some implementations, the method may further include discovering a proof of work associated with a nonce within the first block header of a first candidate block by hashing the first block header to generate a hash value below a difficulty threshold, and consequently, transferring a coinbase transaction from the first candidate block and first block header information to another mining node—wherein the first block header information includes at least a timestamp and a nonce; and adding the first candidate block to a local copy of the blockchain. In some cases, the first block header information excludes at least some header fields. In some cases, the first mining node does not retransmit the first aligned set of transactions to another mining node after discovering the proof of work. In some implementations, the method may include first constructing a first candidate block by selecting and sorting transactions from a mempool to create a first sorted set of transactions and adding a coinbase transaction. In some implementations, the first message includes a first mining node identifier and a first template identifier based on a block-level indicator. In some examples, the first template identifier is obtained from the hash of a concatenation of (a) the first mining node identifier and (b) hash values associated with a previous block in the blockchain. In some implementations, the first message and the second message include a compressed transaction identifier for identifying a transaction within the first aligned set of transactions and a transaction within the second aligned set of transactions. In some examples, the compressed transaction identifier is a truncated transaction identifier. In some implementations, a first set of aligned transactions within a first message is encrypted, and a decryption key to decrypt the first set of aligned transactions is provided to other miners only when the first mining node discovers a proof of work f