JP2022527610A - ブロックチェーンネットワークにおけるブロックを伝搬する方法及び装置 - Google Patents

ブロックチェーンネットワークにおけるブロックを伝搬する方法及び装置 Download PDF

Info

Publication number
JP2022527610A
JP2022527610A JP2021560040A JP2021560040A JP2022527610A JP 2022527610 A JP2022527610 A JP 2022527610A JP 2021560040 A JP2021560040 A JP 2021560040A JP 2021560040 A JP2021560040 A JP 2021560040A JP 2022527610 A JP2022527610 A JP 2022527610A
Authority
JP
Japan
Prior art keywords
block
transaction
mining node
transactions
message
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.)
Pending
Application number
JP2021560040A
Other languages
English (en)
Inventor
マッケイ,アレックス
ジャーン,ウエイ
スティーヴン ライト,クレイグ
パトリック コグラン,スティーヴン
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.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2022527610A publication Critical patent/JP2022527610A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ブロックチェーンネットワークにおけるブロックを伝搬する方法及び装置。マイニングノードにおいて、第1候補ブロックの第1ブロックヘッダをハッシングしている間に、前記マイニングノードは、他のマイニングノードへ、トランザクションと前記第1候補ブロックに含まれるトランザクションの第1順序付きリストの中の該トランザクションの順序とを指定する第1メッセージを送信する。前記マイニングノードは、トランザクションと、第2マイニングノードによりマイニングされている第2候補ブロックに含まれるトランザクションの第2順序付きセットの中の該トランザクションの順序と、指定する第2メッセージも受信する。前記マイニングノードは、前記候補ブロックのマイニングに成功しなかった場合、他のマイニングノードにコインベーストランザクション、ハッシュ値、及びタイムスタンプを提供することにより、該他のマイニングノードに通知する。別のマイニングノードが成功した場合、前記マイニングノードは、他のマイニングノードから情報を受信する。該情報から、前記マイニングノードは、前記第2メッセージと関連して、前記第2候補ブロックを構成し、それを検証できる。

Description

本開示は、ブロックチェーンネットワークに関し、特にマイナーノードの間のブロックの伝搬に関する。
proof-of-workブロックチェーンシステムでは、マイナーは、有効なブロックを見付けると、自身の成功を全ての他のマイナーに素早く通信しようとする。これは、ブロックチェーンネットワークを通じて全てのマイニングノードへブロックに関する情報を伝搬することを含む。幾つかの場合には、これは、フルブロックデータを送信することを含み得る。幾つかの場合には、これは、ブロックヘッダ及びトランザクションリスト情報を送信することを含み得る。受信側のマイナーは、ヘッダをハッシングし、それが成功したマイナーにより提供されたハッシュ値と一致することを確認することにより、新しいブロックを検証する。
ブロックのサイズ及びトランザクション数が増大するにつれ、ブロック伝搬の遅延は一時的な分岐(fork)及び親のない(orphan)ブロックの問題を悪化させ得る。これらの状況は、マイナーにとって及びシステム全体にとって高コストである。
例として、本願の例示的な実施形態を示す以下の添付の図面を参照する。
ブロックチェーンネットワークの例示的なブロック構造を示す。
ブロック伝搬の例示的な方法のフローチャートを示す。
本願によるブロック伝搬の例示的な実装におけるメッセージ及び動作のシーケンスを示す。 本願によるブロック伝搬の例示的な実装におけるメッセージ及び動作のシーケンスを示す。 本願によるブロック伝搬の例示的な実装におけるメッセージ及び動作のシーケンスを示す。 本願によるブロック伝搬の例示的な実装におけるメッセージ及び動作のシーケンスを示す。 本願によるブロック伝搬の例示的な実装におけるメッセージ及び動作のシーケンスを示す。 本願によるブロック伝搬の例示的な実装におけるメッセージ及び動作のシーケンスを示す。 本願によるブロック伝搬の例示的な実装におけるメッセージ及び動作のシーケンスを示す。 本願によるブロック伝搬の例示的な実装におけるメッセージ及び動作のシーケンスを示す。 本願によるブロック伝搬の例示的な実装におけるメッセージ及び動作のシーケンスを示す。
マイニングノードの簡易な例をブロック図形式で示す。
図中の同様の参照符号は同様の要素及び特徴を示すために使用される。
一態様では、ブロックチェーンネットワークにおけるブロック伝搬の、コンピュータにより実施される方法が提供され得る。前記方法は、
第1マイニングノードにおいて第1候補ブロックの第1ブロックヘッダをハッシングしている間に、
他のマイニングノードへ、トランザクションと前記第1候補ブロックに含まれる第1順序付きセットの中の該トランザクションの順序とを指定する第1メッセージを送信するステップと、
トランザクションと第2マイニングノードによりマイニングされている第2候補ブロックに含まれる第2順序付きリストの中の該トランザクションの順序を識別する第2メッセージを受信するステップと、
を含んでよい。
幾つかの実装では、前記第2メッセージを受信するステップは、幾つかの実装では、マイニングノードにあるメモリに、第2マイニングノード識別子に関連付けて、トランザクションの前記第2順序付きセットを格納するステップを含む。
幾つかの実装では、前記方法は、前記第2マイニングノードから、コインベーストランザクションと前記第2候補ブロックに関してproof-of-workの達成に成功したことを示す第2ブロックヘッダ情報を受信するステップであって、前記第2ブロックヘッダ情報は、少なくともタイムスタンプとノンスとを含む、ステップと、
トランザクションの前記第2順序付きセット、前記コインベーストランザクション、及び前記第2ブロックヘッダ情報に基づき、第2ブロックヘッダを構成するステップと、
前記proof-of-workを検証するために、前記第2ブロックヘッダをハッシングすることにより、前記第2候補ブロックを検証するステップと、
を更に含んでよい。幾つかの場合には、構成するステップは、トランザクションの前記第2順序付きセット及び前記コインベーストランザクションから、マークルルートを決定するステップを含む。
幾つかの実装では、前記方法は、前記第1ブロックヘッダをハッシングして採掘難易度閾値より下のハッシュ値を生成することにより、前記第1候補ブロックの前記第1ブロックヘッダにノンスに関連付けられたproof-of-workを発見するステップであって、結果として、
前記他のマイニングノードへ、前記第1候補ブロックからのコインベーストランザクション及び第1ブロックヘッダ情報を送信し、前記第1ブロックヘッダ情報は少なくともタイムスタンプ及び前記ノンスを含み、
前記第1候補ブロックを前記ブロックチェーンのローカルコピーに追加する、
ステップを更に含んでよい。幾つかの場合には、前記第1ブロックヘッダ情報は、少なくとも幾つかのヘッダフィールドを排除する。幾つかの場合には、前記第1マイニングノードは、前記proof-of-workを発見した後に、前記他のマイニングノードへ、トランザクションの前記第1順序付きセットを再送しない。
幾つかの実装では、前記方法は、メモリプールからトランザクションを選択し順序付けて、前記幾つかの実装では、前記方法は候補ブロックを構築し、トランザクションの前記第1順序付きセットを生成し、コインベーストランザクションを追加する、第1構築ステップ、を含んでよい。
幾つかの実装では、前記第1メッセージは、第1マイニングノード識別子及びブロックレベル指示子に基づく第1テンプレート識別子を含む。幾つかの例では、前記第1テンプレート識別子は、(a)前記第1マイニングノード識別子、及び(b)前記ブロックチェーン内の前のブロックに関連付けられたハッシュ値、の連結のハッシュから取得される。
幾つかの実装では、前記第1メッセージ及び前記第2メッセージは、トランザクションの前記第1順序付きリストの中のトランザクション及びトランザクションの前記第2順序付きセットの中のトランザクションを指定圧縮されたトランザクション識別子を含む。幾つかの例では、圧縮されたトランザクション識別子は、トランケートされたトランザクション識別子である。
幾つかの実装では、前記第1メッセージの中のトランザクションの前記第1順序付きリストは暗号化され、トランザクションの前記第1順序付きリストを復号するための復号鍵は、前記第1マイニングノードが前記第1候補ブロックについてproof-of-workを発見した場合にのみ、前記他のマイナーに提供される。
別の態様では、ブロックチェーン上のブロックをマイニングする第1マイニングノードを実装するコンピューティング装置が提供されてよい。前記コンピューティング装置は、メモリと、1つ以上のプロセッサと、実行されると前記プロセッサに本願明細書に記載の方法のうちの1つ以上を実行させるコンピュータ実行可能命令と、を含んでよい。
更に別の態様では、ブロックチェーンネットワークにおけるブロックをマイニングする第1マイニングノードを実装するためのプロセッサ実行可能命令を格納しているコンピュータ可読媒体であって、前記プロセッサ実行可能命令は、1つ以上のプロセッサにより実行されると、前記プロセッサに本願明細書に記載の方法のうちの少なくとも1つを実行させる、コンピュータ可読媒体が提供され得る。
本開示の他の例示的な実施形態は、図面と関連して以下の詳細な説明を読むことから当業者に明らかになるだろう。
本願では、用語「及び/又は」は、列挙された要素単独、任意の一部の組合せ、又は要素の全部、を含む列挙された要素の全部の可能な組合せ及び一部の組合せをカバーすることを意図しており、必ずしも追加要素を排除しない。
本願では、用語「...又は...のうちの少なくとも1つ」は、列挙された要素単独、任意の一部の組合せ、又は要素の全部、を含む列挙された要素の全部の可能な組合せ及び一部の組合せをカバーすることを意図しており、必ずしも追加要素を排除せず、必ずしも全部の要素を必要としない。
本願は、任意のデータセット又は「メッセージ」に適用されるとユニークな固定長英数字文字列を決定論的に(deterministically)生成する多数の暗号ハッシュ関数のうちの任意の1つを含むことを意図している、ハッシング(hashing)又はハッシュ(hash)関数を参照する。ハッシュ関数の結果は、ハッシュ値、フィンガープリント、ハッシュ結果、又はそれらの均等物と呼ばれてよい。例は、限定ではないが、SHA-2、SHA-3、及びBLAKE2を含む。以下で、ブロック又は候補ブロックをハッシングするマイナーへの言及は、暗号ハッシュ関数を候補ブロックのヘッダ部分に適用することを意味すると理解される。
本願明細書では、用語「ブロックチェーン」は、全ての形式の電子的な、コンピュータに基づく、分散型台帳を包含すると理解される。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Bitcoin台帳である。Bitcoin SVプロトコルにより例示されるBitcoinは、ここでは、便宜上及び説明の目的で参照されることがあるが、本発明はBitcoinブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本発明の範囲に包含されることに留意すべきである。
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピアの電子台帳であり、ブロックにより構成され、ブロックはまたトランザクションにより構成される。各トランザクションは、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、これらのブロックは一緒に繋げられて、起源以来ブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能な記録を生成する。トランザクションは、スクリプトとして知られている小さなプログラムを含む。スクリプトは、それらのインプット及びアウトプットを埋め込まれ、トランザクションのアウトプットがどのように及び誰によりアクセス可能であるかを指定する。Bitcoinプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を用いて記述される。
ブロックチェーンは、ノードのネットワークにより実装される。各ノードは、ネットワーク接続と適用可能なブロックチェーンプトロコルを実行する実行ソフトウェアとを有するコンピューティング装置である。ノードは、トランザクションを検証し、それらをネットワーク内の他のノードへ伝搬する。「マイニングノード」又は「マイナー」と呼ばれる専用ネットワークノードは、未確定のトランザクション、つまり保留中のトランザクションのセットを集めて、ブロックにし、該ブロックを「マイニング」しようとする。マイニングは、これらの例では、ネットワーク内の他のマイナーが彼らのそれぞれのブロックのproof-of-workを解くことに成功する前に、proof-of-work(POW)を解くことを表す。Bitcoinの例では、POWは、結果が採掘難易度(difficultly)パラメータにより設定された閾値より下になるまで、ノンス(nonce)を含むブロックヘッダをハッシングすることを含む。ノンスは、繰り返されインクリメントされ、結果が閾値より下になるまで、又は別のマイナーが成功したノンスをマイナーが受信するまで、ハッシングが繰り返される。マイニング処理における変形は、当業者によく知られている。
標準的なブロックは2つのデータ構造:ブロックヘッダ及びトランザクションを含む。図1は、Bitcoinプロトコルからの例示的なブロック構造100を概略的に示す。ブロック構造100は、ブロックヘッダ102と、ペイロード104と、を含む。ブロックヘッダ102は、本例では、バージョン番号106、前のブロックのハッシュ値108、マークルルート110、タイムスタンプ112、目標採掘難易度パラメータ114、及びノンス116のためのフィールドを含む。前のブロックのハッシュ値108は、このブロックを前のブロックに繋げてチェーンにし、それにより、暗号ハッシュを通じて連続するブロックを一緒にリンクする「ブロックチェーン」構造を生じる。マークルルート110は、ブロックに含まれる全部のトランザクションに基づくマークルツリー構造を表す。ノンス116は、マイニングするときに異なるハッシュ結果を生成するためにブロックヘッダ102の内容を変更するためにマイニングノードがインクリメント又はデクリメントを繰り返すことができる任意の値である。
ペイロード104は、トランザクションカウント値118、及びトランザクションのリスト120を含む。トランザクションのリスト120は、幾つかの実装では、トランザクションID番号のリストであってよい。
マイニングノードは、閾値より下であるハッシュ結果を生成するブロックヘッダの発見に成功すると、成功したハッシュ結果値を含む更新したインベントリ(inventory)メッセージを用いて他のノードに通知することに進む。他のノードは、次に、新しいブロックのコピーを要求し、その妥当性を独立に検証する。
ブロックチェーンエコシステムは、トランザクション量が、その結果ブロックサイズが大幅に増大することによる使いやすさを向上することに成熟している。ブロックが大きくなるにつれ、幾つかの場合には128MBを超え、マイニングの成功した新しいブロックをネットワーク全体の他のノードに伝搬することは、多くの時間を要する。伝搬の遅延はコストがかかる。第1に、マイニングに成功したブロックに気付かないマイナーは、彼ら自身の候補ブロックをマイニングしようとし続けるが、新しいブロックが有効であると証明されたならば無駄な努力になる。第2に、伝搬及び検証の遅延は、(一時的な)分岐及び親のないブロックの可能性を増大させ得る。
多くのブロックチェーンプロトコルでは、マイナーはブロックのフルコピーを送信しないが、代わりにインベントリメッセージ内でハッシュ結果を送信することが理解される。受信側のマイニングノードは、彼らがこの疑わしい新しいブロックを知らないと判断し、GETBLOCK又はGETDATAメッセージを成功したマイナーへ送信する。ブロックのフルコピーを送信するのではなく、成功したマイナーは、ブロックヘッダ、ペイロードからのトランザクションコンテンツフィールド、及びブロックに含まれるトランザクションの順序付きリストを送信する。順序付きリストは、トランザクションのフルトランザクションID番号(TXID)のセットを含んでよい。TXIDは、幾つかの実施形態では、トランザクションの固定長ハッシュであってよい。TXIDは、例えばSHA-256を用いてトランザクションをハッシングすることにより取得される256ビット(32バイト)の数値であってよい。受信側ノードは、識別されたトランザクションのTXIDによりメモリプール(mempool)から該トランザクションを読み出すことにより、フルブロックを再構成してよい。
しかしながら、最新のブロックサイズは128MBを超えるまでに増大しているので、送信されるべきデータのサイズは、トランザクションのカウントが大きい場合には依然として相当量であり得る。例えば、50万個のトランザクションを含むブロックは、16MBであるTXIDの順序付きリストを有し得る。
従って、一態様では、本願は、マイニングノードが彼らの候補ブロックをハッシングしながら他のマイナーに彼らのそれぞれの候補ブロックに関する情報を提供するブロックチェーンネットワークのための方法及びシステムを記載する。この方法では、各マイナーは、成功したブロックの発見の間の時間遅延、Bitcoinの例では約10分、を利用し、他のマイナーに候補ブロックの構造及び内容に関する詳細事項を提供する。この情報を予め提供することにより、成功したブロックが見付かったとき、成功したマイナーは、全部の他のノードが完全な新しいブロックを再構成し検証できることを保証するために、ブロックヘッダからの情報、及び幾つかの場合にはコインベース(coinbase)トランザクションを送信するだけでよい。このデータは、数百バイトほどの少なさであってよい。これは、成功した新しいブロックが全ネットワークを通じて伝搬する速度を向上する。
未確定トランザクションが伝搬し、それらが有効なブロックに含まれることにより確定する前に、ノードのネットワークを通じて検証されることが理解される。この未確定状態では、未確定トランザクションがメモリ内に保持される。このメモリは「メモリプール(mempool)」と呼ばれてよい。各マイナーは、幾つかの実装では、自身のメモリプールのコピーを維持してよく、メモリプールから候補ブロックを再構成するためにトランザクションのセットを選択できる。幾つかの代替のアーキテクチャでは、メモリプールは、多数のノードに渡る分散型メモリプールとして実装されてよい。幾つかのアーキテクチャでは、メモリプールを管理しマイニングノードに候補ブロックに包含するためのトランザクションを提供するために、専用ノードがブロックチェーンネットワークにより利用されてよい。本願は、ブロックチェーンネットワークにおける任意のそのような変形と共に記載の方法及び装置を使用することを想定する。説明を簡単にする目的で、ここでは、各マイニングノードが未確定トランザクションの自身のメモリプールを維持すると仮定される。
マイニングノードは、メモリプールを、候補ブロックを構築するための新しいトランザクションのソースとして使用する。マイニングノードは、更に、各ブロックがトランザクションの順序付きリストを含むので、別のマイナーからの新しいブロックを検証するとき、メモリプールを使用してよい。順序付きリストは、TXIDのようなユニークなトランザクション識別子によりトランザクションを識別してよい。従って、受信側のマイニングノードは、順序付きリストからトランザクションを読み出し、ブロックレベルの基準に対してブロックを検証し、トランザクションレベルの基準に対してトランザクションを検証する。この方法では、マイナーは、二重支払い及び他の攻撃に対して防御する。
本願の態様を説明するために、ここで図2を参照する。図2は、ブロックチェーンマイニングの1つの例示的な方法200をフローチャート形式で示す。方法200は、マイニングノードにより実施される。マイニングノードは、1つ以上の処理ユニットを含んでよいコンピューティング装置に実装されてよい。当業者により理解されるように、処理ユニットは、有意な速度及び効率を有するブロックチェーンマイニングに関連付けられた計算演算を実行するよう設計された専用ハードウェアを有する専用処理ユニットを含んでよい。しかしながら、それは、更に又は代替として、汎用コンピューティング装置を含んでよい。コンピューティング装置は、実行されると1つ以上の処理ユニットに記載の動作を実行させるプロセッサ可読命令を含むプロセッサ実行可能ソフトウェアを含む。コンピューティング装置は、メモリと、ネットワーク接続を得るための並びに適用可能なネットワークプロトコルに従いメッセージを送信及び受信するための関連ハードウェア及びソフトウェアとのネットワーク接続と、を含む。
方法200は、動作202で、候補ブロックを構築するために、未確定トランザクションのメモリプールからトランザクションのセットを選択するステップを含む。選択は、トランザクションの年代、トランザクションをマイニングするために支払可能な料金、又は任意の他の因子に基づいてよい。トランザクションは、トランザクションの順序付きリストを形成する。マイニングノードは、更に、トランザクションの順序付きリストに基づきマークルルート(Merkle root)を決定し、ブロックヘッダを形成し、これはヘッダ内のノンスの初期値を設定することを含む。
動作204で、マイニングノードは、ブロックヘッダの反復ハッシング、及び採掘難易度設定の条件を満たすPOWについて検索の部分としてノンスのインクリメントを開始する。動作206により示すように、自身の候補ブロックに関してPOWを検索することに従事している間、マイニングノードは、トランザクションの自身の順序付きリストに関する情報を、他のマイニングノードへ送信する。動作208により示されるように、マイニングノードは、また、動作204が進行している間、他のマイニングノードからメッセージを受信する。該メッセージは、それらの他のマイニングノードにより作業中の候補ブロック内のトランザクションのそれぞれの順序付きリストに関する情報を含む。動作204、206、及び208は直列に示されるが、それらは一般的に並列に生じることが理解される。トランザクションのそれぞれの順序付きリストに関する他のマイナーから受信された情報は、マイニングノードによりローカルに格納される。マイニングノードは、該情報をテーブル又は他のデータ構造で格納してよい。
動作210により示されるように、POWの検索は、マイニングノードがPOWの発見に成功するまで、又は動作212により示されるように、別のマイニングノードからPOWを発見したことの通知を受信するまで、継続する。マイニングノードは、POWを発見した場合、動作214で、ブロックの詳細事項を伝搬するために、他のマイニングノードへ何らかのヘッダ情報を送信する。特に、それは、ペイロードを送信する必要がない。それは、しかしながら、コインベーストランザクションを送信する。
マイニングノードは、別のマイニングノードからヘッダ情報を受信した場合、動作216で、それは、マイニングノードのためのトランザクションの格納された順序付きリストに基づき新しいブロックを構成する。コインベーストランザクションが受信された場合、該トランザクションはブロックに追加され、マイニングノードは、マークルルートが有効であることを確認するためにマークルツリーを構成できる。マイニングノードは、次に、動作218における新しいブロックを検証し、有効ならば、新しいブロックを破棄して、自身のPOWのための検索を続けてよい。特定の有効性チェックがあってよく、失敗した場合には、後述のように、成功したマイニングノードから追加データを要求するような、他のアクションを講じるよう促してよい。ブロックが検証された場合、それは、動作220でブロックチェーンに追加され、更なるマイニングノードへ伝搬される。マイニングノードは、動作202に戻り、新しい候補ブロックを構築し、新たに検索を開始する。
候補ブロック情報を予め配信し、その結果、各マイナーが各々の他のマイナーのトランザクションの順序付きリストを知るようにする、記載の方法は、POWが発見された後に最小量の情報しか伝搬される必要がないことを保証する。これは、マイニングノードが、彼らが新しいブロックをできる限り早く検証するために必要な情報を有することを保証する。それにより、別のマイナーが既に成功しているとき、POWの検索に浪費する時間を低減する。マイニングノードは、新しいブロックをできる限り早く伝搬し及び検証するためのあらゆる動機を有する。その結果、彼らは次のブロックの検索へと移行できる。連続するブロックの間の約10分の期間の間にトランザクションの順序付きリストを予め配信するとき、ネットワーク遅延に起因する起こり得る遅延は、非常に関心が少ない。
1つの例示的な実装では、候補ブロックからのトランザクションの順序付きリストは、トランザクションデータパケットに順序情報を追加することにより、別のマイナーに通信されてよい。各マイナーは、各々の他のマイナーをユニークに識別することができる。1つの例示的な実装では、マイナー及びマイナーが取り組んでいるブロックレベルをユニークに識別する及びマイナーの候補ブロックのTXIDを順にリストするメッセージが、送信されてよい。
別の例示的な実装では、メッセージングプロトコルは、マイナーのために順序付きリストにトランザクションを添付し、順序付きリストからトランザクションを除去又は削除し、トランザクションを別のトランザクションで置き換え、又はトランザクションを並べ替えることを提供してよい。通常の過程で、マイナーは、トランザクションの順序付きリストを指定する「追加(add)」メッセージのみを使用する可能性がある。しかしながら、マイナーがトランザクションを除去し又は置き換え得る幾つかの場合がある。例えば、後に受信される情報は、トランザクションのうちの1つに関する起こり得る二重支払い、又はその有効性に伴う何らかの他の起こり得る問題、を示してよい。別の例では、マイナーは、ノンスの全部のインクリメントを通じて循環してよく、マークルルートを変更しそれによりブロックをマイニングし続けるためにヘッダを変更するためにトランザクションを並べ替え又は調整することを望み得る。メッセージ構造の詳細なフォーマットは実装により変化してよい。
ブロック伝搬メッセージの更なる圧縮波、TXID文字列を短縮することにより達成できる。TXIDは、幾つかの例では32バイト文字列である。しかしながら、幾つかの場合には、圧縮TXIDが使用されてよく、これはTXIDの一部のみを送信することに依存する。一例では、最初の8バイトのみが送信される。
TXIDの最初の8バイトは、トランザクションをユニークに識別することを保証しないが、両者が単一のメッセージ内にある又は一般的に、2つのTXIDが衝突する可能性は小さい。SHA256出力が疑似ランダム256ビット文字列であるならば、2つのランダムなTXIDの衝突の正確な可能性、つまり、任意の2つのTXIDが同じ最初の4バイトを有する可能性は、
Figure 2022527610000002
ここで、TXIDi[0:n]は、「TXIDiの最初のnバイト」を意味する。さらに、N個の圧縮TXIDを含むメッセージが1つ以上の衝突を含む可能性は、次式により表される:
Figure 2022527610000003
例として、ブロックが百万個のトランザクションを含み、メッセージが百万個の圧縮TXID(N=1,000,000)を含むとすると、衝突の可能性は、
Figure 2022527610000004
この確率は非常に小さく、衝突が生じたとしても、メッセージの受信側は、非圧縮形式の同じメッセージを要求するだけでよい。代替として、送信側のマイニングノードは、先ず、送信する前に、圧縮TXIDの順序付きリストが衝突を含まないことを確認するためにチェックを行い、検出された場合には、非圧縮TXIDを有するメッセージを送信してよい。メッセージ内のフラグ又は他の信号は、ペイロード内のTXIDが圧縮又は非圧縮形式であるかを示してよい。
ここに説明される処理に従い、ブロックチェーンネットワークに含まれる各マイナーは、各々の他のマイナーから、他のマイナーの候補ブロックに含まれるトランザクションの順序付きリストを指定するメッセージを受信してよい。この情報を追跡するために、各マイナーは、それぞれのマイナーアイデンティティに関連付けて順序付きリストを格納してよい。マイナーアイデンティティは、IPアドレス又は何らかの他のユニークな識別子により決定されてよい。1つの例示的な実装では、各マイナーは、各行がメモリプール内のトランザクションのうちの1つに関連付けられ、各列がネットワーク内のマイナーに関連付けられる、テーブル又は同様のデータ構造を維持する。順序情報は、次に、各マイナーに、マイナーが自身の候補ブロック内にトランザクションを配置した順序を示すテーブルのセル内に格納されてよい。必ずしも全部のトランザクションが順序値を有さず、必ずしも全部のトランザクションが全ての候補ブロックに含まれないことが理解される。以下の表は、マイナーの順序付きデータテーブルの1つの簡易な例を示す。
Figure 2022527610000005
この簡易な例示的な表では、マイナーID(miner ID)A、B、C、及びDを有する4人のマイナーがいる。各マイナーは、トランザクションTX、TX、TX、TX、TXを受信し検証している。表は、マイナーの順序付きリストにトランザクションを追加するために、順序ないのトランザクションを別のトランザクションで置き換えるために、又は順序付きリストからトランザクションを削除するために、更新され得る。これは、結果として、該順序付きリスト内の残りのトランザクションの順序を調整する。
マイナーAのようなマイナーが、例えばマイナーCから、ブロックが発見されたことを示すブロックヘッダメッセージを受信すると、マイナーAは、TXID及びマイナーCのために指定された順序に基づき、マークルツリーを構築する。マイナーAは、ハッシュ値を検証するために、ブロックヘッダをハッシングする。ブロックが検証された場合、マイナーAは、指定された順序でトランザクションデータを有するフルブロックを構成し、それをブロックチェーンに追加し、そして新しい候補ブロックを構築してマイニングを続ける。
幾つかの例示的な実装では、成功したマイナーにより送信されたブロックヘッダは、全部のフィールドを含まない。例えば、それは、フルブロックヘッダをハッシングするときマイナーCにより取得されたハッシュ値と一緒に、ノンス及びタイムスタンプのみを含んでよい。受信側のマイナーは、バージョン、prev_blockハッシュ、マイナーが計算したマークルルート、及び採掘難易度設定のような失われたフィールドを追加してよい。次に、それをハッシングし、それを受信したハッシュ値と比較することにより、再構成されたヘッダを検証できる。
幾つかの例示的な実装では、マイナーのそれぞれの候補ブロックのトランザクションの該マイナーの順序付きリストを示す該マイナーからのメッセージは、候補ブロックが構築されると1回、自動的に送信される。幾つかの他の例示的な実装では、順序付きリスト情報は、別のマイナーからの要求に応答して提供される。
幾つかの実装では、テンプレート識別子TmIDが定義されてよい。テンプレート識別子は、マイナーに及びブロックレベルに固有であり、その結果、それは、特定の候補ブロック、つまり、トランザクションの特定の順序付きリストを効率的に参照する。トランザクションのマイナーの順序付きリストに関連する該マイナーからの任意のメッセージは、受信側のマイナーがトランザクションの正しい特定の順序付きリストに変更を関連付けることを保証するために、テンプレート識別子を含んでよい。1つの実装では、テンプレート識別子は、ブロックヘッダ内のマイナー識別子(miner ID)及びprev_blockフィールドのハッシュ、つまり前のブロックのハッシュであってよい:
Figure 2022527610000006
これは、テンプレート識別子をブロックレベル及び特定のマイナーに結びつける。
トランザクションの順序付きリストに関連する各メッセージは、テンプレート識別子を含んでよく、シーケンス番号を更に含んでよい。シーケンス番号は、別のマイナーに対するあるマイナーからのメッセージの順序を示すために使用される符号無し整数値であってよい。シーケンスは、幾つかのメッセージが受信されない又は順序が狂って受信された場合に、メッセージ受信者が、特定のマイナーについてTXID順序をユニークに決定するのに役立つ。
上述のように、マイナーIDは、マイニングノードのIPアドレス又はマイニングノードの何らかの他のユニークな識別子であってよい。幾つかの実施形態では、マイナーがネットワークにアタッチするとき、初期認証動作が生じてよく、それは、ユニークなマイナーIDを該マイニングノードに関連付ける。認証動作は、各マイナーが公開鍵及びデジタル署名を提供するハンドシェーク動作を含んでよい。認証は、デジタル署名の検証に接続される。幾つかの場合には、マイナーIDは、公開鍵、デジタル署名、又はそれらの何らかの組合せに基づいてよい。
幾つかの例では、認証段階の間のハンドシェーク動作は、マイナーの間の共有シークレットの確率を含んでよい。共有シークレットを確立する多くの技術が存在する。トランザクションの順序付きリストに関連するメッセージのような後のメッセージは、機密性のために、及びマイニング処理に対する中間者攻撃の可能性を低減するために、暗号化されてよい。
幾つかの実施形態では、マイニングノードは、ネットワークにアタッチし、互いにピアツーピア接続を開設した後に、認証手順を実行する。認証手順は、認証チャレンジメッセージを送信すること、及び認証応答を受信することを含んでよい。有効な認証応答の受信の失敗は、結果として、マイニングノードを閉じる、又は該他のマイニングノードへの接続をドロップする。幾つかの場合には、マイニングノードは、認証接続のために、通常の公衆ネットワーク接続とは異なるエンドポイントを有してよい。
1つの例示的な実装では、認証チャレンジメッセージは、要求側のマイニングノードが、応答側のマイニングノードへメッセージを送信することを含む。メッセージは、応答側のマイニングノードが以前に見たことのないメッセージである。幾つかの場合には、メッセージはランダムコード又は文字列であってよい。メッセージの内容は重要ではないが、応答側のマイニングノードは、以前にその内容を見たことがあってはならない。従って、それは、前に生成された素材を再利用できない。
認証チャレンジメッセージを受信すると、応答側のマイニングノードは、受信したメッセージをノンス値と連結する。ノンス値は、任意の疑似ランダム処理を用いて応答側のマイニングノードにより生成されてよい。応答側のマイニングノードは、次に、連結されたノンス及びメッセージに、予め発行された公開-秘密鍵ペアの秘密鍵を用いて署名する。これらの例では、公開-秘密鍵ペアは、マイナーアイデンティティに関連する。幾つかの場合には、公開鍵は、ブロックチェーンネットワーク上の通信で使用されるマイナーIDであってよい。要求側のマイニングノードは、ブロックチェーンネットワークにアタッチしたマイニングノードのマイナーID(公開鍵)のホワイトリスト又は他のレコードを有してよい。
応答側のマイニングノードは、連結されたノンス及びメッセージに自身の秘密鍵を用いて署名すると、次に、認証応答メッセージを生成し送信する。認証応答メッセージは、公開鍵、例えば、マイナーID、使用されるノンス値、及び生成されたデジタル署名を含んでよい。要求側のマイニングノードは、認証応答メッセージを受信し、公開鍵を用いて、マイニングノードが公開鍵のオーナであること、及び公開鍵が特定のマイニングノードに対応するホワイトリスト上の鍵と一致すること、を検証してよい。
認証応答メッセージは、対応する認証チャレンジメッセージと共に送信されてよい。その結果、応答側のマイニングノードは、要求側のマイニングノードのアイデンティティを相互に認証してよい。
一例では、認証チャレンジメッセージのフォーマットは以下の形式であってよい。
Figure 2022527610000007
一例では、認証応答メッセージのフォーマットは、以下の形式を取り得る。
Figure 2022527610000008
幾つかの実装では、公開鍵はsecp256k1楕円曲線上のECDSA鍵である。署名は、ノンス値と認証チャレンジメッセージからのメッセージフィールドのコンテンツとの連結に対する署名であってよい。連結は、実装に依存して、(ノンス|メッセージ)又は(メッセージ|ノンス)であってよい。
図3A~3Iを参照すると、それらは、本願の実装に従う2つのマイナー間の例示的な動作状態及びメッセージフローを図式的に示す。
図3Aでは、第1マイナー302、マイナーA、及び第2マイナー304、マイナーBが、ブロックチェーンネットワークの部分であること、及び既存のブロックチェーン306が存在することが分かる。第1マイナー302及び第2マイナー304は、両方とも、本例ではブロックチェーン306のローカルに格納されたコピーを有する。ブロックチェーン306は、特定の「高さ」又はブロックレベルである。
図3Bに示すように、マイナー302、304の各々は、それらの個々のメモリプールからトランザクションのセットを選択して、候補ブロックを構築する。具体的に、第1マイナー302は、トランザクションの第1順序付きセットを含む第1候補ブロック308を構築し、第2マイナー304は、トランザクションの第2順序付きセットを含む第2候補ブロック310を構築する。マイナー302、304は、自由に、それらが望むメモリプールからどのトランザクションを選択し、それらが望むどんな順序で該トランザクションをグループ化するので、第1順序付きセット及び第2順序付きセットは、同じトランザクションを含んでよく又はそうでなくてよく、それらを同じ又は部分的に同じ順序で有してよく又はそうでなくてよい。
図3Cに示すように、マイナー302、304は、採掘難易度により設定された閾値より小さいブロックヘッダのハッシュをもたらすノンスを発見しようとするために、それぞれの候補ブロック308、310をマイニングし始める。
成功するproof-of-workを探している間、マイナー302、304は、彼らのそれぞれの候補ブロック308、310の中のトランザクションの順序付きセットに関する情報を交換する。図3Dが示すように、第1マイナー302は、「追加(add)」メッセージ312を第2マイナー304へ送信して、第1候補ブロック308からのトランザクションの第1順序付きリストを提供してよい。その情報から、第2マイナー304は、第1候補ブロック308のテンプレート314を構築してよい。幾つかの例示的な実装では、テンプレート314は、TXID形式のトランザクションの第1順序付きリストであってよい。幾つかの例示的な実装では、テンプレート314は表であってよく、その例は以上に提供された。更に他の例示的な実装では、テンプレート314は、特定の利用不可能なヘッダフィールドを除き、完全なトランザクションデータを含む、完全な候補ブロックのコピーであってよい。
同様の方法で、第2マイナー304は、図3Eに示すように、第1マイナー302に、第2候補ブロック310からのトランザクションの第2順序付きリストを含む「追加」メッセージ316を送信してよい。その情報から、第1マイナー302は、第2候補ブロック310のテンプレート318を構築する。ここで、各マイナーは、彼らそれぞれがマイニングし続ける彼ら自身の候補ブロック、及び他のマイナーが取り組んでいる候補ブロックのテンプレート、を有する。
図3Fは、第1マイナー302が、proof-of-work要件を満たすブロックヘッダハッシュの発見に成功したことを示す。従って、ヘッダ内に最近テストしたノンスを有する第1候補ブロック308は、有効なブロックを生じる。図3G及び3Hは、第1マイナー302が新しいブロック322をブロックチェーン306に追加し、コインベーストランザクション320を含むメッセージ及びブロックヘッダ情報324を含むメッセージを送信することを示す。ブロックヘッダ情報324は、少なくとも、ノンス及びタイムスタンプを含む。それは、merkle_rootフィールドのような他のブロックヘッダフィールドを更に含んでよく又は含まなくてよい。幾つかの場合には、これは、ブロックヘッダ情報324の部分として送信されてよく、それが第2マイナー304により計算できる場合でも、第2マイナー304がそのマークルルート計算を二重チェックすることを可能にする。幾つかの場合には、第1マイナー302は、第2マイナー304に、新しいブロック322のフルブロックヘッダを送信する。第1マイナー302は、第2マイナー304へ、ブロックヘッダをハッシングすることで取得したハッシュ値を送信してもよい。その結果、第2マイナー304は、ハッシュが採掘難易度閾値より下であるだけでなく、それが第1マイナー302が発見したと主張するハッシュと一致することも検証できる。ハッシュ値は、コインベーストランザクション320内で、ブロックヘッダ情報メッセージ324内で、又は別個のメッセージ内で送信されてよい。
第2マイナー304がコインベーストランザクションを有すると、それは、第1候補ブロックのテンプレート314のトランザクション部分を完成でき、従って、マークルルートを計算できる。その計算から、それは、merkle_rootフィールドがブロックヘッダ情報メッセージ324に含まれていた場合に、該フィールドが正確であることを検証できる。含まれていない場合、それは、新しいブロック322のブロックヘッダ326を構成するために、merkle_rootフィールド、及びバージョン、prev_block値、及びビットフィールドのような他の失われているフィールドを完成できる。ノンス及びタイムスタンプのようなブロックヘッダ326の他のフィールドは、ブロックヘッダ情報メッセージ324により提供される。第2マイナー304は、次に、構成されたブロックヘッダ326をハッシングすることにより、新しいブロックを検証してよい。
第2マイナー304において構成されたブロックが検証されるとすると、図3Iに示すように、第2マイナー304は、次に、その新しいブロック322をブロックチェーン306の自身のコピーに追加する。
上述のシーケンスは、コインベーストランザクションメッセージ320がブロックヘッダ情報メッセージ324の前に送信されることを示すが、幾つかの実装では、ブロックヘッダ情報メッセージ324が最初に送信されてよいこと、又は両方のメッセージが単一のメッセージに結合されてよいことが理解される。特定のインスタンスの動作又は実装の詳細の順序における他の変形は、記載のシステム及び方法の全体的な機能的動作を変更せずに行うことができる。
幾つかの場合には、ブロックは予想より早くマイニングされ得ることが、ブロックチェーンネットワークの当業者により理解され得る。Bitcoinでは、例えば、採掘難易度設定は、約10分毎の有効なブロックの発見を提供するが、タイミングは確定しない。有効なブロックはもっと早く発見されることが可能である。更に、トランザクション又はトランザクション順序情報を伝搬する幾つかのメッセージは、ネットワークを通じて伝搬するときに、ネットワーク遅延に遭遇し得る。
従って、低いながらも、有効なブロックがマイナーにより発見され、ヘッダ情報が他のマイナーに送信されるが、それらのマイナーのうちの少なくとも1人が、ブロックに含まれる全部のトランザクションを有しない又は成功したマイナーのトランザクションの不完全な若しくは正しくない順序付きリストを有する可能性がある。マイナーが新しいブロックヘッダのマークルルートフィールドを検証しようとするとき、不一致が見付かり、ブロックが無効であると考えられる。1つのオプションは、ブロックを無効であると判断し、それを破棄することである。しかしながら、別の実施形態では、マイナーは、マークルリーフのセット、つまりTXIDの順序付きリストについて、成功したマイナーに要求メッセージを送信してよい。リーフのセットを受信すると、マイナーは、次に、マークルルート計算に誤りが生じた場所を決定してよい。原因がトランザクションの不正な又は不完全な順序である場合、マイナーは、順序を更新し、新しいブロックを検証してよい。原因が失われたトランザクションである場合、マイナーは、新しいトランザクションを要求し、検証処理を継続してよい。幾つかの実施形態では、別のマイナーの候補ブロックのトランザクションの順序付きリストを受信するマイナーが、自身のメモリプール内のTXIDのうちの1つを有しないことが分かった場合、失われたトランザクションは、ブロックの発見に成功する前に検出されてよい。その場合、受信側のマイナーは、そのトランザクションのコピーを要求し、自身のメモリプールを更新できる。
幾つかの実装では、1人以上のマイナーが、自身のトランザクション選択及び順序に対する何らかの機密性を維持したいと望む場合がある。そのような実装では、マイナーが、マイニング段階の間に配信するとき、トランザクションの自身の順序付きリストを暗号化することが可能であってよい。有効なブロックが見付かった場合、マイナーは、ヘッダ情報及び/又はコインベーストランザクションと一緒に、復号鍵を配信し、次に受信側のマイナーがトランザクションの順序付きリストを復号し、新しいブロックを検証することを可能にする。
以下の表は、マイナーの間の順序付きトランザクションの伝搬のためのメッセージの1つの説明のための実装の例示的なメッセージの1つのセットを示す。
Figure 2022527610000009
Figure 2022527610000010
受信側のマイナーは、メッセージ内のテンプレート識別子に対応する候補ブロックテンプレートを変更する。シーケンス番号に従い、特定のテンプレート識別子についてシーケンスが乱れて受信されたメッセージは、間のメッセージが受信されるまで、キューに入れられてよい。
おそらく、受信側のマイナーは、自身のメモリプール内にTXIDに対応する適切なトランザクションを有するが、トランザクションが失われている場合、それは任意の失われたトランザクションのコピーを要求できる。
上述の説明のためのメッセージプロトコルは1つの例示的な実装であることが理解される。
種々の上述の例示的な方法の上述の動作のうちの一部又は全部は示されたものと異なる順序で実行されてよいこと、及び/又はそれらの方法の全体的な動作を変更することなく同時に実行されてよいことが理解される。
図4を参照すると、本願の例に従う、簡易マイニングノード400をブロック図の形式で示す。マイニングノード400は、1つ以上のマイクロプロセッサ、特定用途向け集積回路(ASIC)、マイクロコントローラ、又は同様のコンピュータ処理装置を含んでよいプロセッサ402を含む。マイニングノード400は、値、変数、及び幾つかの例ではプロセッサ実行可能プログラム命令を格納するための永久及び非永久メモリと、ネットワークインタフェース606と、を含んでよいメモリ404を更に含んでよい。
マイニングノード800は、実行されるとプロセッサ402に本願明細書に記載の機能又は動作のうちの1つ以上を実行させるプロセッサ実行可能命令を含むプロセッサ実行可能ブロックチェーンアプリケーション408を含んでよい。
上述の種々の実施形態は、単なる例であり、本願の範囲を限定することを意味しない。本願の意図された範囲内にある変形のように、ここに記載された種々の技術革新は、当業者に明らかである。特に、上述の例示的な実施形態のうちの1つ以上からの特徴は、以上に明示的に示されない特徴の部分結合を含む代替の例示的な実施形態を生成するために選択されてよい。更に、上述の例示的な実施形態のうちの1つ以上からの特徴は、以上に明示的に示されない特徴の結合を含む代替の例示的な実施形態を生成するために選択され結合されてよい。このような結合及び部分結合に適する特徴は、本願の全体的に吟味することにより当業者に直ちに明らかになるだろう。本願明細書及び請求項に記載された主題は、あらゆる適切な技術的変更をカバーし包含する。

Claims (15)

  1. ブロックチェーンネットワークにおけるブロック伝搬の、コンピュータにより実施される方法であって、
    第1マイニングノードにおいて第1候補ブロックの第1ブロックヘッダをハッシングしている間に、
    他のマイニングノードへ、トランザクションと前記第1候補ブロックに含まれる第1順序付きセットの中の該トランザクションの順序とを指定する第1メッセージを送信するステップと、
    トランザクションと第2マイニングノードによりマイニングされている第2候補ブロックに含まれる第2順序付きリストの中の該トランザクションの順序を識別する第2メッセージを受信するステップと、
    を含む方法。
  2. 前記第2メッセージを受信するステップは、前記第1マイニングノードにあるメモリに、第2マイニングノード識別子に関連付けて、トランザクションの前記第2順序付きセットを格納するステップを含む、請求項1に記載の方法。
  3. 前記第2マイニングノードから、コインベーストランザクションと前記第2候補ブロックに関してproof-of-workの達成に成功したことを示す第2ブロックヘッダ情報を受信するステップであって、前記第2ブロックヘッダ情報は、少なくともタイムスタンプとノンスとを含む、ステップと、
    トランザクションの前記第2順序付きセット、前記コインベーストランザクション、及び前記第2ブロックヘッダ情報に基づき、第2ブロックヘッダを構成するステップと、
    前記proof-of-workを検証するために、前記第2ブロックヘッダをハッシングすることにより、前記第2候補ブロックを検証するステップと、
    を更に含む請求項1又は2に記載の方法。
  4. 構成するステップは、トランザクションの前記第2順序付きセット及び前記コインベーストランザクションから、マークルルートを決定するステップを含む、請求項3に記載の方法。
  5. メモリプールからトランザクションを選択し順序付けて、前記第1候補ブロックを構築し、トランザクションの前記第1順序付きセットを生成し、コインベーストランザクションを追加する、第1構築ステップ、を更に含む請求項1に記載の方法。
  6. 前記第1ブロックヘッダをハッシングして採掘難易度閾値より下のハッシュ値を生成することにより、前記第1候補ブロックの前記第1ブロックヘッダにノンスに関連付けられたproof-of-workを発見するステップであって、結果として、
    前記他のマイニングノードへ、前記第1候補ブロックからのコインベーストランザクション及び第1ブロックヘッダ情報を送信し、前記第1ブロックヘッダ情報は少なくともタイムスタンプ及び前記ノンスを含み、
    前記第1候補ブロックをブロックチェーンのローカルコピーに追加する、
    ステップを更に含む請求項1に記載の方法。
  7. 前記第1ブロックヘッダ情報は、少なくとも幾つかのヘッダフィールドを排除する、請求項6に記載の方法。
  8. 前記第1マイニングノードは、前記proof-of-workを発見した後に、前記他のマイニングノードへ、トランザクションの前記第1順序付きセットを再送しない、請求項6又は7に記載の方法。
  9. 前記第1メッセージは、第1マイニングノード識別子及びブロックレベル指示子に基づく第1テンプレート識別子を含む、請求項1~8のいずれか一項に記載の方法。
  10. 前記第1テンプレート識別子は、(a)前記第1マイニングノード識別子、及び(b)ブロックチェーン内の前のブロックに関連付けられたハッシュ値、の連結のハッシュから取得される、請求項9に記載の方法。
  11. 前記第1メッセージ及び前記第2メッセージは、トランザクションの前記第1順序付きリストの中のトランザクション及びトランザクションの前記第2順序付きセットの中のトランザクションを指定する圧縮されたトランザクション識別子を含む、請求項1に記載の方法。
  12. 前記圧縮されたトランザクション識別子は、トランケートされたトランザクション識別子である、請求項11に記載の方法。
  13. 前記第1メッセージの中のトランザクションの前記第1順序付きリストは暗号化され、トランザクションの前記第1順序付きリストを復号するための復号鍵は、前記第1マイニングノードが前記第1候補ブロックについてproof-of-workを発見した場合にのみ、前記他のマイナーに提供される、請求項1~12のいずれか一項に記載の方法。
  14. ブロックチェーンネットワーク上のブロックをマイニングする第1マイニングノードを実装するコンピューティング装置であって、前記コンピューティング装置は、
    1つ以上のプロセッサと、
    メモリと、
    前記メモリに格納されたコンピュータ実行可能命令であって、前記1つ以上のプロセッサにより実行されると、前記プロセッサに請求項1~13のいずれか一項に記載の方法を実行させる、コンピュータ実行可能命令と、
    を含むコンピューティング装置。
  15. ブロックチェーンネットワーク上のブロックをマイニングする第1マイニングノードを実装するためのプロセッサ実行可能命令を格納しているコンピュータ可読媒体であって、前記プロセッサ実行可能命令は、1つ以上のプロセッサにより実行されると、前記プロセッサに請求項1~13のいずれか一項に記載の方法を実行させる、コンピュータ可読媒体。
JP2021560040A 2019-04-12 2020-04-09 ブロックチェーンネットワークにおけるブロックを伝搬する方法及び装置 Pending JP2022527610A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1905221.6 2019-04-12
GB1905221.6A GB2582978B (en) 2019-04-12 2019-04-12 Methods and devices for propagating blocks in a blockchain network
PCT/IB2020/053416 WO2020208580A1 (en) 2019-04-12 2020-04-09 Methods and devices for propagating blocks in a blockchain network

Publications (1)

Publication Number Publication Date
JP2022527610A true JP2022527610A (ja) 2022-06-02

Family

ID=66810050

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021560040A Pending JP2022527610A (ja) 2019-04-12 2020-04-09 ブロックチェーンネットワークにおけるブロックを伝搬する方法及び装置
JP2021560041A Active JP7509797B2 (ja) 2019-04-12 2020-04-10 ショートトランザクション識別子衝突検出及び調停

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021560041A Active JP7509797B2 (ja) 2019-04-12 2020-04-10 ショートトランザクション識別子衝突検出及び調停

Country Status (8)

Country Link
US (2) US20220156735A1 (ja)
EP (2) EP3954085A1 (ja)
JP (2) JP2022527610A (ja)
KR (2) KR20210145818A (ja)
CN (2) CN113841359A (ja)
GB (1) GB2582978B (ja)
SG (2) SG11202111214WA (ja)
WO (2) WO2020208580A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2594295A (en) * 2020-04-21 2021-10-27 Nchain Holdings Ltd Block propagation with poisoned transactions in a blockchain network
GB2601540A (en) 2020-12-04 2022-06-08 Nchain Holdings Ltd Methods and systems for synchronizing a streamed template to a solved block
GB2601539A (en) 2020-12-04 2022-06-08 Nchain Holdings Ltd Methods and systems for streaming block templates with cross-references
GB2601538A (en) 2020-12-04 2022-06-08 Nchain Holdings Ltd Methods and systems for compressing transaction identifiers
CN113098677A (zh) * 2021-04-06 2021-07-09 南方科技大学 基于区块链的挖矿方法、装置、计算机设备及存储介质
KR20230153779A (ko) * 2022-04-29 2023-11-07 금오공과대학교 산학협력단 블록체인 무선 통신망을 위한 자동 통합 마이닝 방법

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100668667B1 (ko) * 2005-12-09 2007-01-12 한국전자통신연구원 무선 휴대 인터넷 시스템에서의 트랜잭션 테이블 관리 방법및 그 장치
US7606795B2 (en) * 2007-02-08 2009-10-20 International Business Machines Corporation System and method for verifying the integrity and completeness of records
JP4252608B2 (ja) * 2007-08-30 2009-04-08 株式会社コナミデジタルエンタテインメント 通信システム、通信装置、通信サーバ、通信方法、ならびに、プログラム
KR101072277B1 (ko) * 2009-08-31 2011-10-11 주식회사 아나스타시스 실시간 데이터 무결성 보장 장치 및 방법과 이를 이용한 블랙박스 시스템
KR102137956B1 (ko) * 2013-11-19 2020-07-28 탑 갤로어 리미티드 블록 마이닝 방법 및 장치
GB2525191A (en) * 2014-04-14 2015-10-21 Mastercard International Inc Transaction identification and recognition
US20170178072A1 (en) * 2015-12-22 2017-06-22 Intel Corporation System, Apparatus And Method For Transferring Ownership Of A Smart Delivery Package
KR101780635B1 (ko) * 2016-04-28 2017-09-21 주식회사 코인플러그 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US10198325B2 (en) * 2016-05-24 2019-02-05 Mastercard International Incorporated Method and system for desynchronization recovery for permissioned blockchains using bloom filters
CN106100847B (zh) * 2016-06-14 2021-10-26 惠众商务顾问(北京)有限公司 非对称加密区块链身份信息验证方法及装置
EP3481004B1 (en) * 2016-06-29 2023-08-16 Prosper Creative Co., Ltd. Communications system, communications device used in same, management device, and information terminal
US10841097B2 (en) * 2016-07-08 2020-11-17 Mastercard International Incorporated Method and system for verification of identity attribute information
JP6267761B1 (ja) * 2016-09-20 2018-01-24 本田技研工業株式会社 給電管理装置、取引管理システム、充電用具及びプログラム
CN106506638B (zh) * 2016-11-04 2020-01-07 江苏通付盾科技有限公司 区块链中的区块存储方法及装置
US10229270B2 (en) * 2016-12-23 2019-03-12 Amazon Technologies, Inc. Host attestation
CN107077674B (zh) * 2016-12-29 2021-06-11 达闼机器人有限公司 交易验证处理方法、装置及节点设备
TWI764971B (zh) * 2016-12-30 2022-05-21 美商英特爾公司 物聯網
CN110741373A (zh) * 2017-06-07 2020-01-31 区块链控股有限公司 用于管理区块链网络上的大区块的计算机实现的系统和方法
CN107423961B (zh) * 2017-07-11 2024-06-14 北京泛融科技有限公司 一种基于随机相关性分析的优化共识方法
GB201711879D0 (en) * 2017-07-24 2017-09-06 Nchain Holdings Ltd Computer-implemented system and method
CN109427012B (zh) * 2017-08-22 2021-06-01 汇链丰(北京)科技有限公司 一种基于区块链的交易和验证方法
US11316659B2 (en) * 2017-10-20 2022-04-26 Koninklijke Kpn N.V. Primary and secondary blockchain device
KR101924026B1 (ko) * 2017-11-10 2018-11-30 부산대학교 산학협력단 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법
US11244309B2 (en) * 2017-11-22 2022-02-08 Cornell University Real-time cryptocurrency exchange using trusted hardware
US10250708B1 (en) * 2017-12-26 2019-04-02 Akamai Technologies, Inc. High performance distributed system of record
US11018850B2 (en) * 2017-12-26 2021-05-25 Akamai Technologies, Inc. Concurrent transaction processing in a high performance distributed system of record
US20200366495A1 (en) * 2018-01-29 2020-11-19 Ubiquicorp Limited Proof of majority block consensus method for generating and uploading a block to a blockchain
US10372943B1 (en) * 2018-03-20 2019-08-06 Blockchain Asics Llc Cryptographic ASIC with combined transformation and one-way functions
CN108390891A (zh) * 2018-03-28 2018-08-10 电子科技大学天府协同创新中心 基于私有区块链的信息保护方法
CN109039646B (zh) * 2018-07-12 2021-07-27 北京易智能科技有限公司 一种基于节点能力的区块链区块打包和验证方法及系统
WO2020040482A2 (ko) * 2018-08-24 2020-02-27 김보언 전문가 플랫폼의 제어 방법, 장치 및 프로그램
CN109472696B (zh) * 2018-09-29 2021-07-23 腾讯科技(深圳)有限公司 资产交易方法、装置、存储介质及计算机设备
US11146399B2 (en) * 2018-10-19 2021-10-12 Eygs Llp Methods and systems for retrieving zero-knowledge proof-cloaked data on distributed ledger-based networks
US11133923B2 (en) * 2018-10-24 2021-09-28 Landis+Gyr Innovations, Inc. Cryptographic operations using internet of things device pool
CN109493221B (zh) * 2018-10-26 2021-01-12 全链通有限公司 区块链中交易记录保密方法、设备、网络及存储介质
US11190520B2 (en) * 2018-11-20 2021-11-30 Microsoft Technology Licensing, Llc Blockchain smart contracts for digital asset access
US11228439B2 (en) * 2019-01-02 2022-01-18 Jiaping Wang Scale out blockchain with asynchronized consensus zones
US11868327B2 (en) * 2019-01-08 2024-01-09 Jiheng ZHANG Method and apparatus for creating and adding a block based on a directed acyclic graph and building a ledger
WO2020153552A1 (ko) * 2019-01-22 2020-07-30 인제대학교 산학협력단 기록된 거래의 수정이 가능한 블록체인을 위한 방법 및 장치
KR102544628B1 (ko) * 2019-03-08 2023-06-19 한국전자통신연구원 블록체인 기반의 분산 데이터 공유 환경에서 데이터 공유 플랫폼을 위한 시스템, 상기 시스템에서 데이터 검색 방법 및 상기 시스템에서 검색 인덱스를 제공하는 방법
US10742421B1 (en) * 2019-03-08 2020-08-11 Ares Technologies, Inc. Methods and systems for anonymous hardware attestation
US11038685B1 (en) * 2019-03-22 2021-06-15 Turing Technology, Inc. Correcting blockchain transactions with cryptocurrency type mistakes

Also Published As

Publication number Publication date
KR20210145818A (ko) 2021-12-02
GB2582978A (en) 2020-10-14
WO2020208580A1 (en) 2020-10-15
US20220156735A1 (en) 2022-05-19
SG11202111214WA (en) 2021-11-29
JP7509797B2 (ja) 2024-07-02
GB2582978B (en) 2022-05-04
CN113826355A (zh) 2021-12-21
GB201905221D0 (en) 2019-05-29
KR20210149164A (ko) 2021-12-08
EP3954086A1 (en) 2022-02-16
CN113841359A (zh) 2021-12-24
SG11202111216PA (en) 2021-11-29
JP2022527611A (ja) 2022-06-02
WO2020208596A1 (en) 2020-10-15
GB2582978A8 (en) 2020-12-16
EP3954085A1 (en) 2022-02-16
US20220182241A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
JP2022527610A (ja) ブロックチェーンネットワークにおけるブロックを伝搬する方法及び装置
EP3688929B1 (en) System and method for providing privacy and security protection in blockchain-based private transactions
US20210295321A1 (en) Methods for decentralized digital asset transfer and smart contract state transition
CN111047324B (zh) 用于更新区块链节点处的公钥集合的方法及装置
JP2020522053A (ja) ブロックチェーン状態確認
CN111212139A (zh) 对信任节点信息进行更新的方法及装置
CN114556864A (zh) 安全共生挖掘的方法和装置
JPWO2019142884A1 (ja) ブロック検証装置、ブロック検証方法、及びプログラム
CN110620776B (zh) 一种数据转移信息传输方法及其装置
US20230162186A1 (en) Block propagation with poisoned transactions in a blockchain network
CN110827034B (zh) 用于发起区块链交易的方法及装置
KR20230110628A (ko) 교차-참조를 갖는 스트리밍 블록 템플릿에 대한 방법및 시스템
US20220067727A1 (en) Method for operating a distributed database system, distributed database system, and industrial automation system
US20240223386A1 (en) Blockchain system with improved throughput by splitting blocks, and its computer program
KR20230117389A (ko) 스트리밍된 템플릿을 해결된 블록에 동기화하기 위한방법 및 시스템
KR20230117388A (ko) 트랜잭션 식별자를 압축하기 위한 방법 및 시스템
CN116205650A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240521