JP2023522119A - ブロックチェーンネットワークにおけるポイズニングされたトランザクションによるブロック伝搬 - Google Patents
ブロックチェーンネットワークにおけるポイズニングされたトランザクションによるブロック伝搬 Download PDFInfo
- Publication number
- JP2023522119A JP2023522119A JP2022563860A JP2022563860A JP2023522119A JP 2023522119 A JP2023522119 A JP 2023522119A JP 2022563860 A JP2022563860 A JP 2022563860A JP 2022563860 A JP2022563860 A JP 2022563860A JP 2023522119 A JP2023522119 A JP 2023522119A
- Authority
- JP
- Japan
- Prior art keywords
- transactions
- block
- invalid
- mining
- mining node
- 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
Links
- 238000005065 mining Methods 0.000 claims abstract description 171
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000001902 propagating effect Effects 0.000 abstract description 4
- 238000010200 validation analysis Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 8
- 230000001934 delay Effects 0.000 description 6
- 230000000644 propagated effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 231100000572 poisoning Toxicity 0.000 description 1
- 230000000607 poisoning effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1491—Countermeasures against malicious traffic using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
ブロックチェーンネットワークにおいてブロックを伝搬するための方法およびデバイス。第1のマイニングノードにおいて、第1の候補ブロックの第1のブロックヘッダをハッシュしている間に、第1のマイニングノードは、第1の候補ブロックに含まれるトランザクションの第1の順序付きセット内のトランザクションおよびそれらの順序を指定する第1のメッセージを他のマイニングノードに送信する。他のノードが、第1のマイニングノードが候補ブロック内のトランザクションを妥当性確認したことに依拠しないようにするために、第1のマイニングノードは、1つまたは複数の無効なトランザクションで第1の順序付きセットをシードして、ポイズニングされた順序付きセットを作成し、無効なトランザクションを識別する暗号化されたリストを提供する。候補ブロックについてプルーフオブワークが見つかると、第1のマイニングノードは、暗号化されたリストを復号し、無効なトランザクションを識別するための復号鍵を提供する。無効なトランザクションに対して代替トランザクションをさらに提供し得る。
Description
本開示は、ブロックチェーンネットワークに関し、特に、マイナーノード間でのブロックの伝搬に関する。
プルーフオブワークブロックチェーンシステムでは、マイナーは、有効なブロックを見つけると、その成功を他のすべてのマイナーに迅速に伝えようとする。これは、ブロックに関する情報を、ブロックチェーンネットワークを通してすべてのマイニングノードに伝搬することを伴う。場合によっては、これは、完全なブロックデータを送信することを伴い得る。場合によっては、これは、ブロックヘッダおよびトランザクションリスト情報を送信することを伴い得る。受信側マイナーは、ヘッダをハッシュし、成功したマイナーによって提供されたハッシュ値と一致することを確認することによって、新しいブロックを妥当性確認する。
ブロックのサイズおよびトランザクションカウントが増加すると、ブロック伝搬の遅延が一時的なフォークおよびオーファンブロックの問題を悪化させる可能性がある。これらの状況は、マイナーおよびシステム全体にコストがかかる。ブロック伝搬の遅延に対するソリューションは、コンセンサスルールを損なう可能性を防ぐような構造にする必要がある。
ここで、例として、本出願の例示的な実施形態を示す添付の図面を参照する。
ブロックチェーンネットワークのための例示的なブロック構造を示す。
ブロック伝搬の例示的な方法のフローチャートを示す。
本出願によるブロック伝搬の例示的な実装形態におけるメッセージおよび動作のシーケンスを例示的に示す。
本出願によるブロック伝搬の例示的な実装形態におけるメッセージおよび動作のシーケンスを例示的に示す。
本出願によるブロック伝搬の例示的な実装形態におけるメッセージおよび動作のシーケンスを例示的に示す。
本出願によるブロック伝搬の例示的な実装形態におけるメッセージおよび動作のシーケンスを例示的に示す。
本出願によるブロック伝搬の例示的な実装形態におけるメッセージおよび動作のシーケンスを例示的に示す。
本出願によるブロック伝搬の例示的な実装形態におけるメッセージおよび動作のシーケンスを例示的に示す。
本出願によるブロック伝搬の例示的な実装形態におけるメッセージおよび動作のシーケンスを例示的に示す。
本出願によるブロック伝搬の例示的な実装形態におけるメッセージおよび動作のシーケンスを例示的に示す。
本出願によるブロック伝搬の例示的な実装形態におけるメッセージおよび動作のシーケンスを例示的に示す。
ブロックチェーンネットワークにおけるブロック伝搬のための1つの例示的な方法をフローチャート形式で示す。
ブロックチェーンネットワークにおいてブロックを妥当性確認する1つの例示的な方法をフローチャート形式で示す。
マイニングノードの簡略化された例をブロック図形式で示す。
図面において、同様の要素および特徴を示すために同様の参照番号が使用される。
一態様では、ブロックチェーンネットワークにおけるブロック伝搬のコンピュータ実施方法が提供され得る。方法は、第1のマイニングノードにおいて第1の候補ブロックの第1のブロックヘッダをハッシュしている間に、第1の候補ブロックに含まれる第1の順序付きセット内のトランザクションおよびそれらの順序を指定する第1のメッセージを他のマイニングノードに送信するステップと、第2のマイニングノードによってマイニングされている第2の候補ブロックに含まれる第2の順序付きセット内のトランザクションおよびそれらの順序を識別する第2のメッセージを受信するステップとを含み得る。
別の態様では、ブロックチェーンネットワークにおけるブロック伝搬の方法が説明される。方法は、第1のマイニングノードにおいて、第1の順序付きセット内のトランザクションを含む第1の候補ブロックを構築するステップであって、第1の候補ブロックは第1のブロックヘッダを有する、ステップと、ポイズニングされた順序付きセットを作成するために、第1の順序付きセット内に1つまたは複数の無効なトランザクションを入れるステップと、ポイズニングされた順序付きセット内の1つまたは複数の無効なトランザクションを識別するリストを構築し、リストを暗号化して無効なトランザクションの暗号化されたリストを作成するステップと、第1のブロックヘッダをハッシュしている間に、ポイズニングされた順序付きセットと無効なトランザクションの暗号化されたリストとを含む第1のメッセージを他のマイニングノードに送信するステップとを含み得る。
いくつかの実装形態では、方法は、第1のマイニングノードが、第1のブロックヘッダに関するプルーフオブワークを見つけるステップと、結果として、無効なトランザクションの暗号化されたリストのための復号鍵を送信するステップとをさらに含み得る。
いくつかの実装形態では、1つまたは複数の無効なトランザクションを入れるステップは、1つまたは複数の無効なトランザクションをトランザクションの第1の順序付きセットに挿入するステップを含む。
いくつかの実装形態では、1つまたは複数の無効なトランザクションを入れるステップは、1つまたは複数の無効なトランザクション内の各無効なトランザクションについて、第1の順序付きセット内のそれぞれの有効なトランザクションを置き換えるステップを含む。場合によっては、無効なトランザクションの暗号化されたリストは、それぞれの有効なトランザクションをさらに含む。場合によっては、方法は、別のマイニングノードにおいて、無効なトランザクションの暗号化されたリストを復号することによって第1の候補ブロックを構築するステップと、1つまたは複数の無効なトランザクションをポイズニングされた順序付きセット内のそれぞれの有効なトランザクションに置き換えて、第1の順序付きセットを再構築し、第1の候補ブロックを生成するステップとをさらに含み得る。
いくつかの実装形態では、1つまたは複数の無効なトランザクションは、ブロックチェーンネットワークのためのブロックチェーンプロトコルによって規定される少なくとも1つの有効性基準に違反するトランザクションを含み得る。
いくつかの実装形態では、方法は、第1のマイニングノードにおいて、1つまたは複数の無効なトランザクションのうちの少なくとも1つを作成するステップをさらに含み得る。
いくつかの実装形態では、方法は、第1のマイニングノードにおいて、別のマイニングノードから受信された無効なトランザクションを1つまたは複数の無効なトランザクションのうちの1つとして選択するステップをさらに含み得る。
いくつかの実装形態では、方法は、第1のマイニングノードが、第1のブロックヘッダに関してプルーフオブワークを見つるステップと、その結果、プルーフオブワークと、無効なトランザクションの暗号化されたリストのための復号鍵とを送信するステップをさらに含み得、プルーフオブワークが、第1の候補ブロックからのコインベーストランザクションと、第1のブロックヘッダからのナンスおよびタイムスタンプとを含む。
いくつかの実装形態では、方法は、第1のブロックヘッダをハッシュしている間に、第2のマイニングノードによってマイニングされている第2の候補ブロックから導出された第2のポイズニングされた順序付きセット内のトランザクションおよびそれらの順序を識別する第2のメッセージを受信するステップと、第2の暗号化されたリストを受信するステップとをさらに含み得、第2の暗号化されたリストが、第2のポイズニングされた順序付きセット内の無効なトランザクションを識別する。場合によっては、方法は、第2のポイズニングされた順序付きセット内のトランザクションを妥当性確認するステップと、第2のポイズニングされた順序付きセット内の1つまたは複数の無効なトランザクションのセットを識別するステップとをさらに含む。いくつかの例では、方法は、次いで、第2の候補ブロックに関するプルーフオブワークの完了の成功を示すコインベーストランザクション、復号鍵、および第2のブロックヘッダ情報を第2のマイニングノードから受信するステップであって、第2のブロックヘッダ情報は少なくともタイムスタンプおよびナンスを含む、ステップと、復号鍵を使用して第2の暗号化されたリストを復号するステップと、第2の暗号化されたリストが、1つまたは複数の無効なトランザクションのセットにあるものと同じ無効なトランザクションを識別すると決定するステップと、コインベーストランザクション、第2のブロックヘッダ情報、および第2のポイズニングされた順序付きセット内の1つまたは複数の無効なトランザクションを置き換えるように修正された第2のポイズニングされた順序付きセットに基づいて、第2のブロックヘッダを組み立てるステップと、プルーフオブワークを妥当性確認するために、第2のブロックヘッダをハッシュすることによって第2の候補ブロックを妥当性確認するステップとをさらに含み得る。
別の態様では、ブロックチェーン上でブロックをマイニングするための第1のマイニングノードを実装するコンピューティングデバイスが提供され得る。コンピューティングデバイスは、メモリと、1つまたは複数のプロセッサと、コンピュータ実行可能命令とを含み得、コンピュータ実行可能命令は、実行されると、プロセッサに、本明細書で説明される方法のうちの1つまたは複数を実行させる。
さらに別の態様では、ブロックチェーンネットワーク上でブロックをマイニングするための第1のマイニングノードを実装するためのプロセッサ実行可能命令を記憶するコンピュータ可読媒体が提供され得、プロセッサ実行可能命令は、1つまたは複数のプロセッサによって実行されると、プロセッサに、本明細書で説明される方法のうちの少なくとも1つを実行させる命令を含む。
本開示の他の例示的な実施形態は、図面と併せて以下の詳細な説明を検討することにより、当業者には明らかになるであろう。
本出願では、「および/または(and/or)」という用語は、列挙された要素のいずれか1つのみ、任意のサブコンビネーション、または要素のすべてを含むが、必ずしも追加の要素を除外するものではない、列挙された要素のすべての可能な組合せおよびサブコンビネーションをカバーすることを意図している。
本出願では、「…または…のうちの少なくとも1つ(at least one of… or…)」という表現は、列挙された要素のいずれか1つのみ、任意のサブコンビネーション、または要素のすべてを含むが、必ずしも任意の追加の要素を除外することはなく、また必ずしも要素のすべてを必要とすることもない、列挙された要素のいずれか1つまたは複数をカバーすることを意図している。
本出願は、ハッシングまたはハッシュ関数に言及し、これは、データまたは「メッセージ」の任意のセットに適用されると、一意の固定長の英数字文字列を決定論的に作り出すいくつかの暗号ハッシュ関数のいずれか1つを含むことを意図している。ハッシュ関数の結果は、ハッシュ値、フィンガープリント、ハッシュ結果などと呼ばれ得る。例としては、SHA-2、SHA-3、およびBLAKE2が挙げられるが、これらに限定されない。ブロックまたは候補ブロックをハッシュするマイナーへの以下の任意の参照は、候補ブロックのヘッダ部分に暗号ハッシュ関数を適用することを意味すると理解されよう。
本明細書では、「ブロックチェーン」という用語は、電子的な、コンピュータベースの、分散型台帳のすべての形態を含むものと理解される。これらには、コンセンサスベースのブロックチェーンおよびトランザクションチェーン技術、許可されたおよび許可されていない台帳、共有台帳、ならびにそれらの変形が含まれる。ブロックチェーン技術の最も広く知られているアプリケーションはビットコイン台帳であるが、他のブロックチェーン実装も提案され開発されてきた。便宜上および例示のために、本明細書では、ビットコインSVプロトコルによって例示されるようなビットコインに言及し得るが、本発明はビットコインブロックチェーンとの使用に限定されず、代替的なブロックチェーン実装およびプロトコルが本発明の範囲内に含まれることに留意されたい。
ブロックチェーンは、ブロックから構成されるコンピュータベースの非集中型分散システムとして実装されるピアツーピアの電子台帳であり、ブロックはトランザクションから構成される。各トランザクションは、ブロックチェーンシステムの参加者間でのデジタル資産の制御の転送を符号化するデータ構造であり、少なくとも1つの入力および少なくとも1つの出力を含む。各ブロックは、前のブロックのハッシュを含み、それらのブロックが一緒に連鎖されて、開始以来ブロックチェーンに書き込まれてきたすべてのトランザクションの永久的で変更不可能な記録を作成する。トランザクションは、それらの入力および出力に埋め込まれたスクリプトとして知られる小さなプログラムを含み、それは、トランザクションの出力がどのようにおよび誰によってアクセスされ得るかを指定する。ビットコインプラットフォーム上では、これらのスクリプトは、スタックベースのスクリプト言語を使用して書かれる。
ブロックチェーンは、ノードのネットワーク上で実装される。各ノードは、ネットワーク接続性を有し、適用可能なブロックチェーンプロトコルを実行するソフトウェアを実行するコンピューティングデバイスである。ノードはトランザクションを妥当性確認し、それらをネットワーク内の他のノードに伝搬する。「マイニングノード」または「マイナー」と称される特殊化したネットワークノードは、未確認トランザクション、すなわち保留中のトランザクションのセットを収集してブロックにし、そのブロックに「マイニング」を試みる。マイニングは、これらの例では、ネットワーク内の任意の他のマイナーがそれぞれのブロックについてのプルーフオブワークを解決するのに成功する前に、プルーフオブワーク(POW)を解決することを指す。ビットコインの例では、POWは、結果が難易度パラメータによって設定されたしきい値を下回るまで、ナンスを含むブロックヘッダをハッシュすることを伴う。結果がしきい値を下回るまで、またはマイナーが別のマイナーが成功したという通知を受信するまで、ナンスが繰り返し増分され、ハッシングが繰り返される。マイニングプロセスの変形例は、当業者によく知られている。
典型的なブロックは、ブロックヘッダおよびトランザクションという2つのデータ構造を含む。図1は、ビットコインプロトコルからの例示的なブロック構造100を概略的に示す。ブロック構造100は、ブロックヘッダ102とペイロード104とを含む。この例におけるブロックヘッダ102は、バージョン番号106、前のブロックのハッシュ値108、マークルルート110、タイムスタンプ112、ターゲット難易度パラメータ114、およびナンス116のためのフィールドを含む。前のブロックのハッシュ値108は、このブロックをチェーン内の前のブロックに連鎖し、それによって、暗号ハッシュを通して、連続するブロックを互いにリンクする「ブロックチェーン」構造をもたらす。マークルルート110は、ブロックに含まれるすべてのトランザクションに基づくマークルツリー構造を参照する。ナンス116は、マイニング時に異なるハッシュ結果がもたらされるように、マイニングノードが繰り返し増分または減分トしてブロックヘッダ102の内容を変更することができる任意の値である。
ペイロード104は、トランザクションカウント値118とトランザクションのリスト120とを含む。トランザクションのリスト120は、いくつかの実装形態では、トランザクションID番号のリストであり得る。
マイニングノードは、しきい値を下回るハッシュ結果をもたらすブロックヘッダを見つけることに成功すると、続いて、成功したハッシュ結果値を含む更新されたインベントリメッセージを使用して他のノードに通知する。その後、他のノードは、新しいブロックのコピーを要求し、その有効性を独立して検証する。
高速ブロック伝搬
ブロックチェーンエコシステムは、トランザクションの量の大幅な増加と、それに伴うブロックのサイズの拡大とによってユーザビリティの向上を提供するために、成熟している。ブロックが大きくなり、場合によっては128Mバイトを超えると、マイニングに成功した新しいブロックをネットワーク全体にわたって他のノードに伝搬するのに時間がかかるようになる。伝搬の遅延にはコストがかかる。第1に、マイニングに成功したブロックが作成されたことを知らないマイナーは、新しいブロックが有効であると判明した場合、無駄な努力で自身の候補ブロックをマイニングしようとし続けることになる。第2に、伝搬および妥当性確認の遅延により、(一時的な)フォークおよびオーファンブロックの可能性が高まり得る。
ブロックチェーンエコシステムは、トランザクションの量の大幅な増加と、それに伴うブロックのサイズの拡大とによってユーザビリティの向上を提供するために、成熟している。ブロックが大きくなり、場合によっては128Mバイトを超えると、マイニングに成功した新しいブロックをネットワーク全体にわたって他のノードに伝搬するのに時間がかかるようになる。伝搬の遅延にはコストがかかる。第1に、マイニングに成功したブロックが作成されたことを知らないマイナーは、新しいブロックが有効であると判明した場合、無駄な努力で自身の候補ブロックをマイニングしようとし続けることになる。第2に、伝搬および妥当性確認の遅延により、(一時的な)フォークおよびオーファンブロックの可能性が高まり得る。
多くのブロックチェーンプロトコルでは、マイナーはブロックの完全なコピーを送信するのではなく、インベントリメッセージでハッシュ結果を送信することが理解されよう。受信側マイニングノードは、この新しいブロックとされるブロックを見ていないと決定し、成功したマイナーにGETBLOCKまたはGETDATAメッセージを送信する。成功したマイナーは、ブロックの完全なコピーを送信するのではなく、ブロックヘッダ、ペイロードからのトランザクションカウントフィールド、およびブロックに含まれるトランザクションの順序付きリストを送信する。順序付きリストは、トランザクションの完全なトランザクションID(TXID)のセットを含み得る。TXIDは、いくつかの実施形態では、トランザクションの固定長のハッシュであり得る。TXIDは、例えば、SHA-256を使用してトランザクションをハッシュすることによって得られる256ビット(32バイト)の数であり得る。受信側ノードは、識別されたトランザクションをそれらのTXIDによってメムプールから取り出すことによって、完全なブロックを再び組み立て得る。
それにもかかわらず、現代のブロックサイズは128Mバイト以上に成長するので、送信されるべきデータのサイズは、トランザクションのカウントが大きい場合、依然として有意であり得る。例えば、50万個のトランザクションを含むブロックは、16MBであるTXIDの順序付きリストを有するであろう。
したがって、一態様では、本出願は、マイニングノードが、それらの候補ブロックをハッシュすると同時に、それらのそれぞれの候補ブロックについての情報を他のマイナーに提供する、ブロックチェーンネットワークのための方法およびシステムを説明する。このようにして、各マイナーは、成功したブロックの発見の間の時間遅延(ビットコインの例では約10分)を活用して、他のマイナーに、候補ブロックの構造および内容に関する詳細を提供する。この情報を事前に提供することで、成功したブロックが見つかったとき、成功したマイナーは、他のすべてのノードが完全な新しいブロックを組み立てて妥当性確認することができることを保証するためには、ブロックヘッダからの情報を、場合によってはコインベーストランザクションを送信すれだけで済む。このデータは、わずか数百バイトであり得る。これにより、成功した新しいブロックがネットワーク全体を通して伝搬される速度が上がる。
未確認トランザクションは、有効なブロックに含まれていることによって確認される前に、ノードのネットワークを通して伝搬され、妥当性確認されることが理解されよう。この未確認状態にある間、未確認トランザクションはメモリに保持される。このメモリは「メムプール」と称され得る。各マイナーは、いくつかの実装形態では、候補ブロックを組み立てるためのトランザクションのセットを選択することができるメムプールのそれ自体のコピーを維持し得る。いくつかの代替アーキテクチャでは、メムプールは、いくつかのノードにわたる分散型メムプールとして実装されてもよい。いくつかのアーキテクチャでは、メムプールを管理し、候補ブロックに含めるためのトランザクションをマイニングノードに提供するために、ブロックチェーンネットワークは、特殊化したノードを採用し得る。本出願は、ブロックチェーンネットワークアーキテクチャにおける任意のそのような変形例とともに、説明される方法およびデバイスの使用を企図する。説明を簡潔にするために、本明細書では、各マイニングノードが、未確認トランザクションのそれ自体のメムプールを維持すると仮定する。
マイニングノードは、候補ブロックを構築するための新しいトランザクションのソースとしてメムプールを使用する。各ブロックがトランザクションの順序付きリストを含むので、マイニングノードは、別のマイナーからの新しいブロックを妥当性確認するときに、メムプールをさらに使用し得る。順序付きリストは、TXIDのような一意のトランザクション識別子によってトランザクションを識別し得る。したがって、受信側マイニングノードは、順序付きリストからトランザクションを取り出し、ブロックレベルの基準に照らしてブロックを妥当性確認し、トランザクションレベルの基準に照らしてトランザクションを妥当性確認する。こうすることで、マイナーは二重支出(double-spend)および他の攻撃を防ぐ。
本出願の態様を例示するために、ここで、ブロックチェーンマイニングの1つの例示的な方法200をフローチャート形式で示す図2を参照する。方法200は、マイニングノードによって実施される。マイニングノードは、1つまたは複数の処理ユニットを含み得るコンピューティングデバイス上に実装され得る。当業者によって理解されるように、処理ユニットは、ブロックチェーンマイニングに関連付けられた演算動作をかなりの速度および効率性で実行するように設計された専用ハードウェアを有する特殊化した処理ユニットを含み得る。しかしながら、それはまた、または代替的に、汎用コンピューティングデバイスを含んでもよい。コンピューティングデバイスは、実行されると1つまたは複数の処理ユニットに、説明された動作を実行させるプロセッサ可読命令を含むプロセッサ実行可能ソフトウェアを含む。コンピューティングデバイスは、メモリと、ネットワーク接続性を取得し、適用可能なネットワークプロトコルにしたがってメッセージを送受信するための関連ハードウェアおよびソフトウェアとのネットワーク接続とを含む。
方法200は、動作202において、未確認トランザクションのメムプールからトランザクションのセットを選択して、候補ブロックを構築することを含む。選択は、トランザクションの年数、トランザクションのマイニングに支払われるべき手数料、または任意の他の要因に基づき得る。トランザクションは、トランザクションの順序付きリストを形成する。マイニングノードはさらに、トランザクションの順序付きリストに基づいてマークルルートを決定し、ブロックヘッダを形成し、これには、ヘッダ内のナンスの初期値を設定することが含まれる、
動作204において、マイニングノードは、難易度設定の条件を満たすPOWの探索の一部として、ブロックヘッダの繰り返されるハッシングとナンスの増分とを開始する。その候補ブロックに関してPOWを探索することに従事している間、マイニングノードは、動作206によって示されるように、トランザクションのその順序付きリストについての情報を他のマイニングノードに送信する。マイニングノードはまた、動作204が進行している間に、動作208によって示されるように、他のマイニングノードから、それらのマイニングノードによって作業されている候補ブロック内のトランザクションのそれぞれの順序付きリストについての情報を含むメッセージを受信する。動作204、206および208は順に示されているが、それらは一般に並行して行われることが理解されよう。他のマイナーからのトランザクションのそれぞれの順序付きリストについての受信した情報は、マイニングノードによってローカルに記憶される。マイニングノードは、表または他のデータ構造に情報を記憶し得る。
POWの探索は、動作210によって示されるように、マイニングノードが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バイトが同じとなる可能性は、以下のようになる:
この確率は非常に小さく、衝突が発生した場合であっても、メッセージ受信側は、単に、圧縮されていない形態で同じメッセージを要求し得る。代替的に、送信側マイニングノードは、まず、送信の前に、圧縮されたTXIDの順序付きセットが衝突を含まないことを確認するためのチェックを行い、衝突が検出された場合、圧縮されていないTXIDとともにメッセージを送信し得る。メッセージ中のフラグまたは他の信号は、ペイロード中のTXIDが圧縮フォーマットであるか非圧縮フォーマットであるかを示し得る。
本明細書で説明されるプロセスによれば、ブロックチェーンネットワークに関与する各マイナーは、他の各マイナーから、その他のマイナーの候補ブロックに含まれるトランザクションの順序付きリストを指定するメッセージを受信し得る。この情報を追跡するために、各マイナーは、順序付きリストを、それぞれのマイナーアイデンティティに関連付けて記憶し得る。マイナーアイデンティティは、IPアドレスまたは何らかの他の一意の識別子によって決定され得る。1つの例示的な実装形態では、各マイナーは、各行がメムプール内のトランザクションの1つに関連付けられ、各列がネットワーク内のマイナーに関連付けられた表または同様のデータ構造を維持する。次に、各マイナーについて、マイナーがその候補ブロックにトランザクションを配置した順序を示す順序情報を、表のセルに記憶し得る。すべてのトランザクションがすべての候補ブロックに含まれるわけではないので、すべてのトランザクションが順序値を有するわけではないことが理解されよう。以下の表は、マイナー順序付けデータ表の1つの簡略化された例を示す:
この簡略化された例示的な表では、マイナーID A、B、C、およびDを有する4つのマイナーがある。各マイナーは、トランザクションTX1、TX2、TX3、TX4、およびTX5を受信し、妥当性確認している。表を更新して、マイナーの順序付きリストにトランザクションを追加すること、順序内のトランザクションを別のものと置き換えること、または順序付きリストからトランザクションを削除することができ、その結果、その順序付きリスト内の残りのトランザクションの順序付けを調整することができる。
マイナーAなどのマイナーが、例えばマイナーCから、ブロックが見つかったことを示すブロックヘッダメッセージを受信すると、マイナーAは、TXIDとマイナーCに対して指定された順序とに基づいてマークルツリーを構築する。マイナーAは、ブロックヘッダをハッシュしてハッシュ値を検証する。ブロックが検証されると、マイナーAは、指定された順序でトランザクションデータを用いて完全なブロックを構築し、それをブロックチェーンに追加し、新しい候補ブロックを構築してマイニングを継続する。
いくつかの例示的な実装形態では、成功したマイナーによって送信されたブロックヘッダは、すべてのフィールドを含んでいるわけではない。例えば、それは、完全なブロックヘッダをハッシュするときにマイナーCによって得られるハッシュ値とともに、ナンスおよびタイムスタンプのみを含み得る。受信側マイナーは、バージョン、prev_blockハッシュ、マイナーが計算したマークルルート、および難易度設定などの欠けているフィールドを追加し得る。次いで、再構築されたヘッダをハッシュすることによってそれを妥当性確認し、受信したハッシュ値と比較することができる。
いくつかの例示的な実装形態では、マイナーからの、それらのそれぞれの候補ブロックについてのトランザクションのそれらの順序付きリストを示すメッセージングは、候補ブロックが構築されると自動的に送信される。いくつかの他の例示的な実装形態では、順序付きリスト情報は、別のマイナーからの要求に応答して提供される。
いくつかの実装形態では、テンプレート識別子TmIDが定義され得る。テンプレート識別子は、マイナーおよびブロックレベルに固有であり、そのため、特定の候補ブロック、すなわちトランザクションの特定の順序付きリストを効果的に参照することができる。マイナーからの、トランザクションのその順序付きリストに関係する任意のメッセージングは、受信側マイナーが変更をトランザクションの正しい特定の順序付きリストに関連付けることを保証するために、テンプレート識別子を含み得る。一実装形態では、テンプレート識別子は、マイナー識別子(マイナーID)のハッシュ、および、ブロックヘッダ中のprev_blockフィールド、すなわち、以下のような前のハッシュのブロックであり得る:
これは、テンプレート識別子をブロックレベルおよび特定のマイナーに結び付ける。
トランザクションの順序付きリストに関連する各メッセージは、テンプレート識別子を含み得、シーケンス番号をさらに含み得る。シーケンス番号は、あるマイナーからのメッセージの順序を相対的に示すために使用される符号なし整数値であり得る。シーケンシングは、いくつかのメッセージが受信されない場合または順序が狂って受信される場合に、メッセージ受信側が特定のマイナーについてのTXID順序付けを一意に決定するのを助ける。
上述したように、マイナーIDは、マイニングノードのIPアドレス、またはマイニングノードのための何らかの他の一意の識別子であり得る。いくつかの実施形態では、マイナーがネットワークに接続したときに初期の認証動作が行われ、その結果、一意のマイナーIDがそのマイニングノードに関連付けられる。認証動作は、各マイナーが公開鍵およびデジタル署名を提供するハンドシェーキング動作を含み得る。認証は、デジタル署名の検証に結び付いている。場合によっては、マイナーIDは、公開鍵、デジタル署名、またはそれらの何らかの組合せに基づき得る。
いくつかの事例では、認証段階中のハンドシェーキング動作は、マイナー間の共有秘密の確立を含み得る。共有秘密を確立するための多くの技術が存在する。トランザクションの順序付きリストに関連するメッセージングなどの後続のメッセージングは、機密性のために、およびマイニングプロセスに対する中間者攻撃の可能性を低減するために、暗号化され得る。
いくつかの実施形態では、マイニングノードは、ネットワークに接続し、互いにピアツーピア接続を開いた後に、認証手順を実行する。認証手順は、認証チャレンジメッセージを送信することと、認証応答を受信することとを伴い得る。有効な認証応答を受信に失敗すると、マイニングノードはその他のマイニングノードへの接続を閉じるまたはドロップすることになる。場合によっては、マイニングノードは、認証された接続に対して、通常の公衆ネットワーク接続とは異なるエンドポイントを有し得る。
1つの例示的な実装形態では、認証チャレンジメッセージは、要求側マイニングノードが応答側マイニングノードにメッセージを送信することを含む。このメッセージは、応答側マイニングノードが以前に見たことがないメッセージである。場合によっては、メッセージは、ランダムなコードまたは文字列であり得る。メッセージの内容は重要ではないが、応答側マイニングノードは、以前に生成された材料を再利用することができないように、以前に内容を見たことはないはずである。
認証チャレンジメッセージを受信すると、応答側マイニングノードは、受信したメッセージをナンス値と連結する。ナンス値は、任意の疑似ランダムプロセスを使用して応答側マイニングノードによって生成され得る。次いで、応答側マイニングノードは、以前に公開された公開鍵-秘密鍵ペアの秘密鍵を使用して、連結されたナンスおよびメッセージに署名する。これらの例では、公開鍵-秘密鍵ペアはマイナーアイデンティティに関連する。場合によっては、公開鍵は、ブロックチェーンネットワークでの通信に使用されるマイナーIDであり得る。要求側マイニングノードは、ブロックチェーンネットワークに接続されたマイニングノードのためのホワイトリストまたはマイナーID(公開鍵)の他の記録を有し得る。
応答側マイニングノードが、その秘密鍵を使用して、連結されたナンスおよびメッセージに署名すると、次いで、認証応答メッセージを生成し、送信する。認証応答メッセージは、公開鍵、例えば、マイナーID、使用されたナンス値、および生成されたデジタル署名を含み得る。要求側マイニングノードは、認証応答メッセージを受信し、公開鍵を使用して、マイニングノードが公開鍵の所有者であり、公開鍵が特定のマイニングノードに対応するホワイトリスト上の鍵と一致することを検証し得る。
認証応答メッセージは、応答側マイニングノードが要求側マイニングノードのアイデンティティを相互に認証することができるように、対応する認証チャレンジメッセージとともに送信され得る。
いくつかの実装形態では、公開鍵は、secp256k1楕円曲線上のECDSA鍵である。署名は、ナンス値と認証チャレンジメッセージからのメッセージフィールドの内容との連結に対する署名であり得る。連結は、実装形態に応じて、(nonce|message)または(message|nonce)であり得る。
ここで、本出願の一実装形態による、例示的な動作状態と、2つのマイナー間のメッセージングフローとを概略的に示す図3A~図3Iを参照する。
図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のマイニングを開始する。
成功したプルーフオブワークを検索している間、マイナー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に示すように、第2の候補ブロック310からのトランザクションの第2の順序付きリストを含む「add」メッセージ316を第1のマイナー302に送信し得る。そのデータから、第1のマイナー302は、第2の候補ブロック310のテンプレート318を構築する。ここで、各マイナーは、それぞれがマイニングし続ける自身の候補ブロックと、他のマイナーが作業している候補ブロックのテンプレートとを有する。
図3Fは、第1のマイナー302が、プルーフオブワーク要件を満たすブロックヘッダハッシュを見つけることに成功したことを示す。したがって、ヘッダ内に最も最近テストされたナンスを有する第1の候補ブロック308は、有効なブロックになる。次いで、図3Gおよび図3Hは、第1のマイナー302が新しいブロック322をブロックチェーン306に追加し、コインベーストランザクション320を含むメッセージおよびブロックヘッダ情報324を含むメッセージを送信することを示す。ブロックヘッダ情報324は、少なくとも、ナンスおよびタイムスタンプを含む。それは、merkle_rootフィールドのような他のブロックヘッダフィールドをさらに含んでも含まなくてもよい。場合によっては、これは、第2のマイナー304がそのマークルルート計算をダブルチェックすることができるように、第2のマイナー304が計算することができるとしても、ブロックヘッダ情報324の一部として送信され得る。場合によっては、第1のマイナー302は、新しいブロック322の完全なブロックヘッダを第2のマイナー304に送信する。第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における組み立てられたブロックが妥当性確認されたと仮定すると、次いで、第2のマイナー304は、図3Iに示すように、その新しいブロック322をブロックチェーン306のコピーに追加する。
上述のシーケンスは、コインベーストランザクションメッセージ320がブロックヘッダ情報メッセージ324の前に送信されることを示しているが、いくつかの実装形態では、ブロックヘッダ情報メッセージ324が最初に送信されてもよいし、両方のメッセージが単一のメッセージに組み合わされてもよいことが理解されよう。特定のインスタンスの動作の順序または実装の詳細における他の変形は、記載されたシステムおよび方法の全体的な機能的動作を変更することなく行われ得る。
ブロックチェーンネットワークの当業者であれば、場合によっては、ブロックが予想よりも早くマイニングされ得ることが理解され得る。ビットコインでは、例えば、難易度設定により、約10分毎に有効なブロックが発見されるようになっているが、そのタイミングは確実ではない。有効なブロックをはるかに早く見つけることが可能である。さらに、トランザクションまたはトランザクション順序付け情報を伝搬するいくつかのメッセージは、ネットワークを通して伝搬する際にネットワーク遅延に遭遇し得る。
したがって、有効なブロックがマイナーによって見つけられ、ヘッダ情報が他のマイナーに送信されるが、それらのマイナーのうちの少なくとも1つが、ブロックに含まれるすべてのトランザクションは有していないか、または成功したマイナーについてのトランザクションの不完全なまたは不正確な順序付きリストを有する可能性は、低いとはいえ存在する。そのマイナーが新しいブロックヘッダのマークルルートフィールドを妥当性確認しようとするとき、不一致が見つかり、ブロックは無効であると考えられる。1つのオプションは、マイナーがブロックを無効と見なし、それを破棄することである。しかしながら、別の実施形態では、マイナーは、マークルーフのセット、すなわちTXIDの順序付きリストについて、成功したマイナーに要求メッセージを送信し得る。リーフの送信を受信すると、マイナーは、マークルルート計算におけるエラーがどこで生じたかを決定し得る。原因が、トランザクションの不正確または不完全な順序付けである場合、マイナーは、順序付けを更新し、新しいブロックを検証し得る。原因が、欠落しているトランザクションである場合、マイナーは、新しいトランザクションを要求し、検証プロセスを継続し得る。いくつかの実施形態では、別のマイナーの候補ブロックについてのトランザクションの順序付きリストを受信するマイナーが、そのメムプール中にTXIDのうちの1つを有していないことを見つけた場合、ブロックの発見が成功する前に、欠落しているトランザクションが検出され得ることに留意されたい。その場合、受信側マイナーは、そのトランザクションのコピーを要求し、そのメムプールを更新することができる。
いくつかの実装形態では、1つまたは複数のマイナーは、そのトランザクション選択および順序付けに対してある程度の秘密性の維持を望む場合がある。そのような実装形態では、マイナーが、マイニング段階中にトランザクションの順序付きリストを配布するときに、それを暗号化することが可能であり得る。有効なブロックが見つかった場合、マイナーは、ヘッダ情報および/またはコインベーストランザクションとともに復号鍵を配布して、受信側マイナーが、トランザクションの順序付きリストを復号し、新しいブロックを妥当性確認することができるようにする。
受信側マイナーは、メッセージ内のテンプレート識別子に対応する候補ブロックテンプレートを修正する。特定のテンプレート識別子について、シーケンス番号にしたがって、シーケンスから外れて受信されたメッセージは、介在するメッセージが受信されるまでキューに入れられ得る。
おそらく、受信側マイナーは、そのメムプール内にTXIDに対応する適応可能なトランザクションを有するが、トランザクションが欠落している場合には、欠落しているトランザクションのコピーを要求することができる。
上記で説明した例示的なメッセージングプロトコルは、1つの例示的な実装形態であることを理解されよう。
ポイズニングされたトランザクションでのブロック伝搬
あるマイナーから別のマイナーへの候補ブロック詳細の早期の伝搬の結果、別のマイナーは、あるマイナーの妥当性確認作業に依拠し得る。すなわち、各マイニングノードは、メムプールに追加する前にトランザクションを妥当性確認し、それらの妥当性確認されたトランザクションから候補ブロックを構築すると想定される。第1のマイニングノードが、妥当性確認されたトランザクションから候補ブロックを構築し、次いで、ブロックヘッダデータおよびトランザクション識別子の順序付きセットを第2のマイニングノードに送信する場合、その第2のマイニングノードは、第1のマイニングノードがすでにその妥当性確認作業を行っているか、または第1のマイニングノードが、マイニングしている候補ブロックにそれらを含めていないので、基礎となるトランザクションが有効であるという事実に依拠することをおそらく選択することができる。これにより、第2のマイニングノードは、妥当性確認作業の計算コストを回避することができる。十分なマイニングノードが他のマイニングノードの妥当性確認作業へのピギーバックを始めると、ブロックチェーンネットワークのコンセンサスベースのセキュリティが損なわれる可能性がある。
あるマイナーから別のマイナーへの候補ブロック詳細の早期の伝搬の結果、別のマイナーは、あるマイナーの妥当性確認作業に依拠し得る。すなわち、各マイニングノードは、メムプールに追加する前にトランザクションを妥当性確認し、それらの妥当性確認されたトランザクションから候補ブロックを構築すると想定される。第1のマイニングノードが、妥当性確認されたトランザクションから候補ブロックを構築し、次いで、ブロックヘッダデータおよびトランザクション識別子の順序付きセットを第2のマイニングノードに送信する場合、その第2のマイニングノードは、第1のマイニングノードがすでにその妥当性確認作業を行っているか、または第1のマイニングノードが、マイニングしている候補ブロックにそれらを含めていないので、基礎となるトランザクションが有効であるという事実に依拠することをおそらく選択することができる。これにより、第2のマイニングノードは、妥当性確認作業の計算コストを回避することができる。十分なマイニングノードが他のマイニングノードの妥当性確認作業へのピギーバックを始めると、ブロックチェーンネットワークのコンセンサスベースのセキュリティが損なわれる可能性がある。
したがって、一態様では、本出願は、そのような依拠を防止するように構造化されたブロック伝搬の方法およびシステムを提供する。特に、候補ブロックについてのトランザクションの順序付きセットを作成するマイニングノードは、他のマイニングノードに伝搬される順序付きセットに1つまたは複数の無効なトランザクションを入れ得る。候補ブロックのマイニングが成功すると、マイニングノードは、順序付きセット内のどのトランザクションが無効であるかを明らかにする。
このようにして、第2のマイニングノードは、情報が少なくとも1つの無効なトランザクションでシードされているので、妥当性確認されたトランザクションを識別する際に第1のマイニングノードからの伝搬されたブロック情報に依拠することができない。無効なトランザクションは、「ポイズニングされた(poisoned)」トランザクションと呼ばれ得、無効なまたはポイズニングされたトランザクションを含むように修正された順序付きトランザクションのセットは、「ポイズニングされた」順序付きセットと呼ばれ得る。
第1のマイニングノードは、ポイズニングされた順序付きセットを含む候補ブロックをマイニングしない。代わりに、妥当性確認されたトランザクションの順序付きセットを含む候補ブロックを構築する。これは、ナンス値を反復適用し(iterate through)、タイムスタンプおよび/またはコインベーストランザクションデータを変更することにより、第1のマイニングノードがマイニングしようと試みるその有効な候補ブロックのブロックヘッダである。しかしながら、プルーフオブワーク前のブロック伝搬中に他のマイニングノードにフォワードされるブロックデータは、ポイズニングされた順序付きセット情報である。
一実装形態では、第1のマイニングノードは、ブロックのマイニングに成功した後、その1つまたは複数のインデックスデータをPOWソリューションデータ、例えば、そのソリューションのナンス、タイムスタンプ、およびコインベースデータとともに送信することによって、無効なトランザクションの1つまたは複数のインデックスを明らかにし得る。別の実装形態では、第1のマイニングノードは、無効なトランザクションの1つまたは複数のインデックスのリストを事前に提供することによって、無効なトランザクションの事前の知識を証明し得る。リストは、受信側マイニングノードが、ポイズニングされた順序付きセットを直ちに修復しないように暗号化され得、第1のマイニングノードは、第1のマイニングノードが候補ブロックのためのPOWソリューションを見つけた場合に、暗号化されたリストを復号するための復号鍵を提供し得る。
ポイズニングされた順序付きセットに追加される無効なトランザクションは、少なくとも1つの妥当性確認基準に違反するように構築された、マイニングノードによって作成されたトランザクションであり得る。場合によっては、無効なトランザクションは、そのマイニングノードが他のマイニングノードのポイズニングされた順序付きセット内の別のマイニングノードから受信したものであり得る。他のマイニングノードによって使用された無効なトランザクションを再使用することによって、マイニングノードは、単一のソースとしてそのマイニングノードからのみ見られたという理由だけで、受取人が無効なトランザクションを識別することを回避する。
暗号化されたリストは、セット内のそれらのインデックスによって、ポイズニングされた順序付きセット内の無効なトランザクションを識別し得る。いくつかの実装形態では、暗号化されたリストはさらに、各無効なトランザクションのための代替の(replacement)有効なトランザクションを提供する。無効なトランザクションを有効なトランザクションに置き換えることによって、ポイズニングされた順序付きセットは、候補ブロックに一致する順序付きセットに復元される。次いで、受信側ノードは、マークルツリーを完全に構築し、POWソリューションを妥当性確認し得る。無効なトランザクションを単に除去するのではなく代替トランザクション(replacement transaction)を提供することによって、妥当性確認およびマークルハッシュ作業の少なくとも一部が、POWソリューションの受信より前に受信側ノードによって行われ得るように、マークルツリーの構造が維持される。
ここで、ブロックチェーンネットワークにおけるブロック伝搬のための1つの例示的な方法400をフローチャート形式で示す図4を参照する。この例における方法400は、マイニングノードによって実施される。マイニングノードは、管理ブロックチェーンプロトコルにしたがってブロックをマイニングするように構成されたネットワーク連結コンピューティングデバイスであってもよい。ブロックのマイニングは、候補ブロックを構築し、次いで、POWソリューションが見つかるか、または別のマイニングノードがそれ自体の候補ブロックのマイニングに成功したという通知が受信されるまで、候補ブロックヘッダをハッシュすることを含み得る。方法400は、プロセッサによって実行されると、プロセッサに、以下で説明される動作を実行させる、メモリに記憶されたプロセッサ実行可能命令を使用して実施され得る。
動作402において、マイニングノードは、妥当性確認されたトランザクションを含む候補ブロックを構築する。トランザクションは、未確認であるが妥当性確認されたトランザクションのマイニングノードのメムプールに記憶された妥当性確認されたトランザクションであり得る。それはまた、動作404によって示されるように、候補ブロックが構築されるとすぐに候補ブロックのマイニングを開始し得る。マイニングは、候補ブロックヘッダをハッシュすることと、ハッシュ結果が難易度しきい値よりも低いかを決定することと、低くない場合、ヘッダ内のナンス値を反復適用すること、またはタイムスタンプを更新するかもしくはコインベーストランザクションを変更してヘッダの内容を変更することと、その後、繰り返すこととを含む。候補ブロックが、トランザクションの順序付きセットを含むことは理解されよう。
動作406において、マイニングノードは、トランザクションの順序付きセットのコピー内の有効なトランザクションのうちの1つまたは複数を、1つまたは複数の無効なトランザクションに置き換えて、トランザクションのポイズニングされた順序付きセットを作成する。無効なトランザクションは、マイニングノードによって作成されてもよいし、別のマイニングノードによって送信された無効なトランザクションからコピーされてもよい。次いで、マイニングノードは、動作408に示すように、トランザクションのポイズニングされた順序付きセット内の無効なトランザクションを識別するインデックスのリストを作成する。
この例では、暗号化されたリストはまた、代替データ(replacement data)を含み得る。代替データは、無効なトランザクションが置き換わった有効なトランザクションのTXIDであってもよい。場合によっては、代替データは、有効なトランザクション自体であってもよい。代替データにより、受取人は、無効なトランザクションを除去し、それらをそれぞれの有効なトランザクションに置き換えることによって、トランザクションのポイズニングされた順序付きセットを「修復」して、候補ブロックの基礎であるトランザクションの正しい順序付きセットを再構築することができる。無効なトランザクションのインデックスのリストは、マイニングノードによって暗号化される。
いくつかの他の例では、暗号化されたリストは、代替データを含まず、代替データは、マイニングノードが何とかしてPOWソリューションを見つけた場合、マイニングノードによってPOWソリューションとともに提供される。
動作410において、マイニングノードは、トランザクションのポイズニングされた順序付きセットおよび暗号化されたリストを他のマイニングノードに伝搬する。マイニングノードは、ポイズニングされた順序付きセット内の追加、削除、または置き換え対象のトランザクションをシグナリングするために、上記で説明したようなメッセージングプロトコルを採用し得る。
そのポイズニングされた順序付きセットを他のマイニングノードにシグナリングした後、マイニングノードは、動作412によって示されるように、候補ブロックに対するPOWソリューションを探索し続ける。それはまた、動作414によって示されるように、別のマイニングノードがそれ自体の候補ブロックに対するPOWソリューションを見つけたことの通知について監視する。別のノードが有効なブロックを見つけた場合、マイニングノードは動作402に戻り、新しい候補ブロックを構築し、再び試みる。マイニングノードがPOWソリューションを見つけた場合、動作416において、そのソリューションおよび暗号化されたリストのための復号鍵を伝搬する。次いで、ブロックチェーンネットワーク上の他のノードは、暗号化されたリストを復号し、トランザクションの順序付きセットを修復して候補ブロックを構築し、候補ブロックの妥当性確認を終了し、ソリューションおよび復号鍵をさらに伝搬し得る。
図5は、ブロックチェーンネットワークにおけるノードによるブロックの妥当性確認の例示的な方法500を示す。この例における方法500は、マイニングノードによって実施され得る。マイニングノードは、管理ブロックチェーンプロトコルにしたがってブロックをマイニングするように構成されたネットワーク連結コンピューティングデバイスであってもよい。方法500は、プロセッサによって実行されると、プロセッサに、以下で説明される動作を実行させる、メモリに記憶されたプロセッサ実行可能命令を使用して実施され得る。
方法500は、動作502において、候補ブロックテンプレートデータおよび暗号化されたリストをマイニングノードから受信することから始まる。候補ブロックテンプレートデータは、トランザクションの順序付きセットを詳述するデータであり得る。この例では、マイニングノードは、トランザクションの「ポイズニングされた」順序付きセットを送信するように構成され、これは、トランザクションの一部が無効なトランザクションであることを意味する。候補ブロックテンプレートデータは、トランザクションが特定のマイニングノードに関連付けられた候補ブロックテンプレートに追加され、そこから削除され、またはその中で置き換えられ得る、上記で説明されるもののようなメッセージプロトコルに基づいて受信され得る。暗号化されたリストは、復号されると、候補ブロックテンプレートデータ内のポイズニングされたトランザクションを識別する。
動作504において、ノードは、それが識別されたトランザクションのコピーを有するかどうかを決定し得る。トランザクションのコピーは、場合によってはメッセージ自体に含まれてもよいし、ノードのローカルなメムプールから取得されてもよい。場合によっては、ノードは、候補ブロックテンプレート内にトランザクションのコピーを有さなくてもよく、動作506において、マイニングノードに、任意の欠落しているトランザクションのコピーを要求し得る。
動作508において、ノードは、まだ妥当性確認されていない任意のトランザクションを妥当性確認する。いずれかが無効であると識別された場合、ノードは、動作510によって示されるように、それらにフラグを付けるか、または別の方法でそれらを無効であると記録し得る。マイニングノードが、ポイズニングされたトランザクションブロック伝搬プロトコルを使用している場合(これは、候補ブロックテンプレートの伝搬に関連するメッセージングにおいてシグナリングされ得る)、ノードは、無効なトランザクションが順序付きセット内に意図的に入れられている可能性があることを通知される。加えて、ノードは、順序付きセット内に少なくとも1つの無効なトランザクションがあることを暗黙的にシグナリングする暗号化されたリストを受信している可能性がある。
この例では、動作512において、ノードは、マイニングノードがPOWソリューションを見つけたという通知を受信する。通知は、使用されるナンス、タイムスタンプ、およびノードが候補ブロックの再構築および妥当性確認に必要とする任意の他のデータを含む、POWソリューションを含み得る。通知は、ノードが動作514において行う暗号化されたリストの復号ができるように、復号鍵をさらに含む。いくつかの例示的な実装形態では、通知は、無効なトランザクションの代わりにどの有効なトランザクションが使用されるべきかを示す代替データをさらに含む。場合によっては、代替データは、暗号化されたリストに含まれ、復号されると明らかになる。
復号されたリストは、無効なトランザクションのインデックスを明らかにする。ノードはまた、復号されたリストからのまたはPOWソリューションの通知からの代替データを有する。動作516において、ノードは、復号されたリスト内で識別されたインデックスが、動作508および510においてノードが無効であると識別したトランザクションと一致するかどうかを決定する。一致しない場合、動作518において、ブロックは無効として拒否される。すなわち、ノードが候補ブロックテンプレートデータ内の無効なトランザクションを識別し、その同じトランザクションが復号されたリストにおいて無効であると識別されない場合、ブロックは、無効なトランザクションを含み、拒否されるべきである。場合によっては、復号されたリストが、ノードが有効であると決定したトランザクションを無効として識別する場合、置き換えが行われてもよく、ブロックは、それがすべての妥当性確認基準を満たすことを条件に、依然として受け入れられ得る。
動作520において、ノードは、復号されたリスト内の代替データに基づいて、無効なトランザクションを有効なトランザクションに置き換える。次に、動作522においてブロックの妥当性確認を完了する。特に、無効なトランザクションの代わりに有効なトランザクションが挿入されることで、ノードは、マークルツリーのそれらの部分の構築を完了し、マークルルートを見つけ、ブロックヘッダを完成させ、ヘッダをハッシュし、ハッシュが難易度設定未満であることを確認し得る。
いくつかの実装形態では、復号されたリスト内のポイズニングされたトランザクションインデックスは、varintインデックスのアレイである。値0は、ノードが無視することができるダミーエントリとして確保され得る。マイニングノードは、データをパディングすることによってブロック内のポイズニングされたトランザクションの数を難読化するために、1つまたは複数の0値エントリを挿入し得る。
いくつかの実施形態では、代替データは、暗号化されたリストに含まれるのではなく、POWソリューションおよび復号鍵とともに送信される。
上記の例では、template_id_len、template_id、およびsequence_noフィールドは、メッセージが関係するテンプレートを識別し、テンプレートに関係するメッセージ間の適切なシーケンシングを保証する。aes_128_encryption_keyフィールドは、暗号化されたリストの復号を可能にするための復号鍵を記憶する。場合によっては、復号鍵は、暗号化されたAOLデータを復号するために使用され得る。
block_headerおよびcoinbase_txフィールドは、候補ブロックを完成させるために必要とされるデータを記憶する。aolフィールドは、テンプレートに追加される任意の追加のトランザクションを提供するが、このフィールドは空であってもよい。
poison_tx_replacementsフィールドは、代替データ、すなわち、暗号化されたリストにおいて明らかにされた無効なトランザクションを置き換えるためのトランザクションデータを含んでいる。
前述のメッセージ構造は一例であることが理解されよう。他のメッセージ構造は、実装形態に応じて、追加のフィールド、代替フィールド、またはより少ないフィールドを含んでもよい。
様々な上述の例示的な方法の上述の動作の一部または全部は、図示されたもの以外の順序で実行されてもよく、および/またはそれらの方法の全体的な動作を変えることなく同時に実行されてもよいことも理解されよう。
ここで、本出願の一例による、簡略化されたマイニングノード600がブロック図形式で示される図6を参照する。マイニングノード600は、1つまたは複数のマイクロプロセッサ、特定用途向け集積回路(ASIC)、マイクロコントローラ、または同様のコンピュータ処理デバイスを含み得るプロセッサ602を含む。マイニングノード600は、値、変数、およびいくつかの事例ではプロセッサ実行可能プログラム命令を記憶するための永続的および非永続的メモリを含み得るメモリ604と、ネットワークインターフェース606とをさらに含み得る。
マイニングノード600は、実行されると、プロセッサ602に、本明細書で説明される機能または動作のうちの1つまたは複数を実行させるプロセッサ実行可能命令を含むプロセッサ実行可能ブロックチェーンアプリケーション608を含み得る。
上記で提示された様々な実施形態は、単なる例であり、本出願の範囲を限定することを決して意味しない。本明細書で説明される革新の変形は、当業者に明らかであり、そのような変形は、本出願の意図される範囲内である。特に、上述の例示的な実施形態のうちの1つまたは複数からの特徴を選択して、明示的に上述されていない可能性がある特徴のサブコンビネーションを含む代替的な例示的な実施形態を作成することができる。加えて、上述の例示的な実施形態のうちの1つまたは複数からの特徴を選択し、組み合わせて、明示的に上述されていない可能性がある特徴の組合せを含む代替的な例示的な実施形態を作成することができる。そのような組合せおよびサブコンビネーションに適した特徴は、全体として本出願を検討すれば当業者には容易に明らかになるであろう。本明細書および特許請求の範囲で説明される主題は、技術におけるすべての適切な変更をカバーおよび包含することを意図している。
Claims (15)
- ブロックチェーンネットワークにおけるブロック伝搬のコンピュータ実施方法であって、
第1のマイニングノードにおいて、第1の順序付きセット内のトランザクションを含む第1の候補ブロックを構築するステップであって、前記第1の候補ブロックは第1のブロックヘッダを有する、ステップと、
ポイズニングされた順序付きセットを作成するために、前記第1の順序付きセット内に1つまたは複数の無効なトランザクションを入れるステップと、
前記ポイズニングされた順序付きセット内の前記1つまたは複数の無効なトランザクションを識別するリストを構築し、前記リストを暗号化して無効なトランザクションの暗号化されたリストを作成するステップと、
前記第1のブロックヘッダをハッシュしている間に、前記ポイズニングされた順序付きセットと前記無効なトランザクションの暗号化されたリストとを含む第1のメッセージを他のマイニングノードに送信するステップと
を含む方法。 - 前記第1のマイニングノードが、前記第1のブロックヘッダに関するプルーフオブワークを見つけるステップと、結果として、前記無効なトランザクションの暗号化されたリストのための復号鍵を送信するステップとをさらに含む、請求項1に記載の方法。
- 1つまたは複数の無効なトランザクションを入れるステップは、前記1つまたは複数の無効なトランザクションをトランザクションの前記第1の順序付きセットに挿入するステップを含む、請求項1または2に記載の方法。
- 1つまたは複数の無効なトランザクションを入れるステップは、前記1つまたは複数の無効なトランザクション内の各無効なトランザクションについて、前記第1の順序付きセット内のそれぞれの有効なトランザクションを置き換えるステップを含む、請求項1または2に記載の方法。
- 前記無効なトランザクションの暗号化されたリストは、前記それぞれの有効なトランザクションをさらに含む、請求項4に記載の方法。
- 別のマイニングノードにおいて、前記無効なトランザクションの暗号化されたリストを復号することによって前記第1の候補ブロックを構築するステップと、前記1つまたは複数の無効なトランザクションを前記ポイズニングされた順序付きセット内の前記それぞれの有効なトランザクションに置き換えて、前記第1の順序付きセットを再構築し、前記第1の候補ブロックを生成するステップとをさらに含む、請求項4または5に記載の方法。
- 前記1つまたは複数の無効なトランザクションは、前記ブロックチェーンネットワークのためのブロックチェーンプロトコルによって規定される少なくとも1つの有効性基準に違反するトランザクションを含む、請求項1から6のいずれか一項に記載の方法。
- 前記第1のマイニングノードにおいて、前記1つまたは複数の無効なトランザクションのうちの少なくとも1つを作成するステップをさらに含む、請求項1から7のいずれか一項に記載の方法。
- 前記第1のマイニングノードにおいて、別のマイニングノードから受信された無効なトランザクションを前記1つまたは複数の無効なトランザクションのうちの1つとして選択するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
- 前記第1のマイニングノードが、前記第1のブロックヘッダに関してプルーフオブワークを見つるステップと、その結果、前記プルーフオブワークと、前記無効なトランザクションの暗号化されたリストのための復号鍵とを送信するステップとをさらに含み、前記プルーフオブワークが、前記第1の候補ブロックからのコインベーストランザクションと、前記第1のブロックヘッダからのナンスおよびタイムスタンプとを含む、請求項1に記載の方法。
- 前記第1のブロックヘッダをハッシュしている間に、第2のマイニングノードによってマイニングされている第2の候補ブロックから導出された第2のポイズニングされた順序付きセット内のトランザクションおよびそれらの順序を識別する第2のメッセージを受信するステップと、第2の暗号化されたリストを受信するステップとをさらに含み、前記第2の暗号化されたリストが、前記第2のポイズニングされた順序付きセット内の無効なトランザクションを識別する、請求項1に記載の方法。
- 前記第2のポイズニングされた順序付きセット内の前記トランザクションを妥当性確認するステップと、前記第2のポイズニングされた順序付きセット内の1つまたは複数の無効なトランザクションのセットを識別するステップとをさらに含む、請求項11に記載の方法。
- 前記第2の候補ブロックに関するプルーフオブワークの完了の成功を示すコインベーストランザクション、復号鍵、および第2のブロックヘッダ情報を前記第2のマイニングノードから受信するステップであって、前記第2のブロックヘッダ情報は少なくともタイムスタンプおよびナンスを含む、ステップと、
前記復号鍵を使用して前記第2の暗号化されたリストを復号するステップと、
前記第2の暗号化されたリストが、前記1つまたは複数の無効なトランザクションのセットにあるものと同じ無効なトランザクションを識別すると決定するステップと、
前記コインベーストランザクション、前記第2のブロックヘッダ情報、および前記第2のポイズニングされた順序付きセット内の前記1つまたは複数の無効なトランザクションを置き換えるように修正された前記第2のポイズニングされた順序付きセットに基づいて、第2のブロックヘッダを組み立てるステップと、
前記プルーフオブワークを妥当性確認するために、前記第2のブロックヘッダをハッシュすることによって前記第2の候補ブロックを妥当性確認するステップと
をさらに含む、請求項12に記載の方法。 - ブロックチェーンネットワーク上でブロックをマイニングするための第1のマイニングノードを実装するコンピューティングデバイスであって、前記コンピューティングデバイスは、
1つまたは複数のプロセッサと、
メモリと、
前記メモリに記憶されたコンピュータ実行可能命令と
を含み、前記コンピュータ実行可能命令は、前記1つまたは複数のプロセッサによって実行されると、前記プロセッサに、請求項1から13のいずれか一項に記載の方法を実行させる、コンピューティングデバイス。 - ブロックチェーンネットワーク上でブロックをマイニングするための第1のマイニングノードを実装するためのプロセッサ実行可能命令を記憶するコンピュータ可読媒体であって、前記プロセッサ実行可能命令は、1つまたは複数のプロセッサによって実行さると、前記プロセッサに、請求項1から13のいずれか一項に記載の方法を実行させる命令を含む、コンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2005822.8A GB2594295A (en) | 2020-04-21 | 2020-04-21 | Block propagation with poisoned transactions in a blockchain network |
GB2005822.8 | 2020-04-21 | ||
PCT/EP2021/059937 WO2021213922A1 (en) | 2020-04-21 | 2021-04-16 | Block propagation with poisoned transactions in a blockchain network |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023522119A true JP2023522119A (ja) | 2023-05-26 |
Family
ID=70859981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022563860A Pending JP2023522119A (ja) | 2020-04-21 | 2021-04-16 | ブロックチェーンネットワークにおけるポイズニングされたトランザクションによるブロック伝搬 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20230162186A1 (ja) |
EP (1) | EP4122153A1 (ja) |
JP (1) | JP2023522119A (ja) |
KR (1) | KR20230002815A (ja) |
CN (1) | CN115943609A (ja) |
GB (1) | GB2594295A (ja) |
WO (1) | WO2021213922A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230131813A1 (en) * | 2021-10-27 | 2023-04-27 | Mastercard International Incorporated | Method and system for authorization and settlement in blockchain transactions |
CN114697086B (zh) * | 2022-03-17 | 2024-06-18 | 浪潮云信息技术股份公司 | 一种基于深度典型相关分析的挖矿木马检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2582978B (en) * | 2019-04-12 | 2022-05-04 | Nchain Holdings Ltd | Methods and devices for propagating blocks in a blockchain network |
-
2020
- 2020-04-21 GB GB2005822.8A patent/GB2594295A/en active Pending
-
2021
- 2021-04-16 CN CN202180044085.1A patent/CN115943609A/zh active Pending
- 2021-04-16 EP EP21719612.0A patent/EP4122153A1/en active Pending
- 2021-04-16 WO PCT/EP2021/059937 patent/WO2021213922A1/en unknown
- 2021-04-16 US US17/919,996 patent/US20230162186A1/en active Pending
- 2021-04-16 JP JP2022563860A patent/JP2023522119A/ja active Pending
- 2021-04-16 KR KR1020227040162A patent/KR20230002815A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
GB202005822D0 (en) | 2020-06-03 |
KR20230002815A (ko) | 2023-01-05 |
WO2021213922A1 (en) | 2021-10-28 |
GB2594295A (en) | 2021-10-27 |
CN115943609A (zh) | 2023-04-07 |
US20230162186A1 (en) | 2023-05-25 |
EP4122153A1 (en) | 2023-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110998556B (zh) | 区块链网络中的数据隔离 | |
KR102627490B1 (ko) | 스크립트 기반 블록체인 상호작용 | |
US9977918B2 (en) | Method and system for verifiable searchable symmetric encryption | |
US20220156735A1 (en) | Methods and devices for propagating blocks in a blockchain network | |
CN111047324B (zh) | 用于更新区块链节点处的公钥集合的方法及装置 | |
CN115176441A (zh) | 基于身份的公钥生成协议 | |
Weidner et al. | Key agreement for decentralized secure group messaging with strong security guarantees | |
CN111340485B (zh) | 一种用于联盟区块链的数字证书的配置方法、终端和根证书服务器 | |
JP2023522119A (ja) | ブロックチェーンネットワークにおけるポイズニングされたトランザクションによるブロック伝搬 | |
US10122755B2 (en) | Method and apparatus for detecting that an attacker has sent one or more messages to a receiver node | |
CN110620776B (zh) | 一种数据转移信息传输方法及其装置 | |
US20220216999A1 (en) | Blockchain system for supporting change of plain text data included in transaction | |
CN114556864A (zh) | 安全共生挖掘的方法和装置 | |
US11595218B2 (en) | Authorization delegation | |
CN110827034B (zh) | 用于发起区块链交易的方法及装置 | |
CN116918298A (zh) | 用于具有交叉引用的流式区块模板的方法和系统 | |
CN116848529A (zh) | 用于压缩交易标识符的方法和系统 | |
JP2014126577A (ja) | データベースシステム及びその更新方法 | |
CN116830107A (zh) | 用于将流式模板同步到求解出的区块的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240319 |