JP7114629B2 - ブロックチェーントランザクションの並列検証のためのシステム及び方法 - Google Patents

ブロックチェーントランザクションの並列検証のためのシステム及び方法 Download PDF

Info

Publication number
JP7114629B2
JP7114629B2 JP2019558667A JP2019558667A JP7114629B2 JP 7114629 B2 JP7114629 B2 JP 7114629B2 JP 2019558667 A JP2019558667 A JP 2019558667A JP 2019558667 A JP2019558667 A JP 2019558667A JP 7114629 B2 JP7114629 B2 JP 7114629B2
Authority
JP
Japan
Prior art keywords
transaction
block
transactions
blockchain
network
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.)
Active
Application number
JP2019558667A
Other languages
English (en)
Other versions
JP2020518907A5 (ja
JP2020518907A (ja
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 JP2020518907A publication Critical patent/JP2020518907A/ja
Publication of JP2020518907A5 publication Critical patent/JP2020518907A5/ja
Priority to JP2022119234A priority Critical patent/JP7434448B2/ja
Application granted granted Critical
Publication of JP7114629B2 publication Critical patent/JP7114629B2/ja
Priority to JP2024016781A priority patent/JP2024036578A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • 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
    • G06Q2220/00Business processing using cryptography
    • 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
    • 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

Landscapes

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

Description

本発明は、概して、ブロックチェーントランザクションに、より具体的には、ブロックチェーンネットワークにおいてブロックの迅速な妥当性確認及び伝播を可能にする方法及びデバイスに関する。
本明細書中で、我々は、あらゆる形式の電子的な、コンピュータに基づく分散台帳(distributed ledgers)を含むよう語「ブロックチェーン」を使用する。それらは、ブロックチェーン及びトランザクションチェーン技術、許可(permissioned)及び無許可(un-permissioned)台帳、共有台帳、並びにこれらの変形を含むが限られない。ブロックチェーン技術の最も広く知られた応用は、他のブロックチェーン実施が提案及び開発されているとはいえ、ビットコイン台帳である。ビットコインが、便宜上、説明のために本明細書で言及され得るが、本発明は、ビットコインブロックチェーンとともに使用することに限られず、代替のブロックチェーン実施及びプロトコルが本発明の適用範囲内にあることが留意されるべきである。
ブロックチェーンは、合意に基づく電子台帳であり、これは、トランザクションから成るブロックで構成された、コンピュータに基づく非中央集権型の分散システムとして実装される。各トランザクション(TX)は、ブロックチェーンシステム内の参加者間のデジタル資産の制御の移行を符号化するデータ構造であり、少なくとも1つの入力及び少なくとも1つの出力を含む。ブロックチェーンにその始まり以来書き込まれてきた全てのトランザクションの永久的且つ不変な記録を構成するようブロックどうしが連鎖するように、各ブロックは前のブロックのハッシュを含む。トランザクションは、それらの入力及び出力に埋め込まれたスクリプトとして知られている小さいプログラムを含む。スクリプトは、如何にして誰によってトランザクションの出力がアクセスされ得るかを特定する。ビットコインプラットフォームで、それらのスクリプトは、スタックに基づくスクリプト言語を用いて書かれている。
新しいトランザクションを受け取るネットワークノードは、直ちに、そのトランザクションをネットワーク内の他のノードへ押し出そうと試みる。新しいトランザクションを他のノードへ送る前に、それは“妥当性確認”(validated)される。つまり、それは、トランザクションが適用可能なプロトコルに従って適切なトランザクションのための基本要件を満たすことを確かにするために、基準の組に対してチェックされる。
トランザクションがブロックチェーンに書き込まれるために、それはノード(“マイナー”(miner))によってブロックに組み込まれる。マイナーは、トランザクションを収集し、それらをブロックへと形成するよう設計される。マイナーは、次いで、ブロックに対して“プルーフ・オブ・ワーク”(proof of work)を完了しようと試みる。複数のマイナーは、ブロックチェーンネットワークにわたって競争して、トランザクションのブロックをアセンブルしそのブロックについての関連するプルーフ・オブ・ワークを完了する最初のものであろうとする。成功したマイナーは、その承認されたブロックをブロックチェーンに加え、ブロックは、ネットワークを通じて伝播される。それにより、ブロックチェーンのコピーを保持する他のノードは、自身の記録を更新することができる。ブロックを受け取るそれらのノードはまた、そのブロックを“妥当性確認”し、それを確かにするその中の全てのトランザクションは、プロトコルの方式要件に従う。例えば、新しいブロックを受け取るノードは、ブロックデータ構造が適用可能なシンタックス規則に従うこと、ブロックが年齢要件に従うタイムスタンプを有していること、ブロックが所定のサイズ制限内にあること、及び他のそのような基準を確かめるようチェックし得る。それはまた、ブロック内のあらゆるトランザクションが妥当であることも確かめる。ビットコインプロトコルに適用可能な基準の例は、ビットコインコア(Bitcoin Core)クライアント関数CheckBlock及びCheckBlockHeaderにおいて定義される。
トランザクションを妥当性確認するための基準は冗長であることがあり得る。例えば、ビットコインプロトコルで適用可能な条件は、ビットコインリファレンス(Bitcoin reference)クライアントにおける関数AcceptToMemoryPool、CheckTransaction及びCheckInputsで詳細に見られ得る。
ブロックチェーン実施に付随した潜在的な障害の1つは、ブロック内の全てのトランザクションを妥当性確認することを含め、ノードがブロック妥当性確認を完了するのにかかる時間である。その遅延は、高速な大容量処理のためのブロックチェーンの使用を阻害し邪魔をすることがある。更に、プルーフ・オブ・ワーク(Proof-of-Work,PoW)ネットワーク内のマイナーが、それ自体のプルーフ・オブ・ワークを終了する前に、ブロックが完成されたとの通知を受けるとき、そのマイナーは自身の活動を放棄し、次のブロックを構築しようと試みることを始める。従って、遅い妥当性確認は、マイナーがそれらの活動を不必要に続けることを意味する。マイニングは、プロセッサ及びエネルギ集約的な活動であるから、無駄なマイニング労力は、リソースに関して高くつく。
このように、ブロックチェーントランザクションの妥当性確認に付随した技術的問題が存在する。それらは、ブロックを妥当性確認する工程に関わる速度、効率及びリソース要件に関する問題を含む。ブロックの妥当性確認及びその後の伝播は、ネットワーク内のノードによってエネルギ、時間及び労力を必要とし、工程に対する改善は、ネットワーク性能及び速度に関してだけでなく、必要とされるリソースの量に関しても、大いに有益である。ビットコインネットワーク内のブロックのより速い伝播を可能にする改善された方法及びデバイスを提供することが望ましい。
従って、本発明によれば、添付の特許請求の範囲で定義される方法及びデバイスが提供される。
本願は、改善されたデバイス及び方法を提供する。方法は、ブロックを妥当性確認する方法であってよい。ブロックは、ブロックチェーントランザクションのブロックであって良い。本発明は、ブロックが妥当であるかそれとも妥当でないかに関するより速い決定を可能にすることができる。より速い妥当性確認は、ブロックがより速くシステム内を伝えられるということで、無駄なリソースの低減をもたらし得る。また、最終的にはコンフリクトに終わり、先立つブロックに取って代わられる競合ブロックを妥当性確認し伝播することに関して無駄にされる時間及びリソースは、少なくなる。本発明は、トランザクションレベルの妥当性確認動作の一部の並列化を可能にすることができる。ブロック内の全てのトランザクションにわたる一意のUTXOの承認は、並列プロセッサの間の費用のかかる同期化を回避するために、並列化されなくてもよい。
追加的に、又は代替的に、本願は、コンピュータにより実施される方法について記載し得る。それは、妥当性確認方法として記載され得る。それは、ブロックチェーンを実装するノードのネットワーク内でブロックを妥当性確認する方法を有してよい。ブロックチェーンは、ブロックチェーンプロトコルに従うか、又はそれに関連して動作してよい。ブロックは、複数の(ブロックチェーン)トランザクションを有してよい。方法は、ブロックがブロックレベルの妥当性確認基準に従うことを決定することと、複数のトランザクションの夫々における入力として参照される各未使用トランザクション出力が一意であることを逐次決定し、該決定に基づいて、複数のトランザクションの中の各トランザクションを2つ以上の並列プロセッサのうちの1つに割り当て、並行して、2つ以上の並列プロセッサによって、複数のトランザクションの中のトランザクションがトランザクションレベルの妥当性確認基準に従うことを検証することとを含んでよい。
方法は更に、トランザクションがトランザクションレベルの妥当性確認基準に従い且つブロックがブロックレベルの妥当性確認基準に従う場合に、ブロックをネットワーク内の1つ以上のピアノードへ転送することを含んでよい。
いくつかの実施において、トランザクションレベルの妥当性確認基準は、ブロックチェーンプロトコルによって規定されるトランザクション特性を含み、各トランザクションは、妥当と見なされるトランザクション特性を持っている必要がある。同様に、いくつかの実施において、ブロックレベルの妥当性確認基準は、ブロックチェーンプロトコルによって規定されるブロック特性であり、各ブロックは、妥当と見なされるブロック特性を持っている必要がある。
いくつかの実施において、複数のトランザクションの中の各トランザクションを2つ以上の並列プロセッサのうちの1つに割り当てることは、ランダム割り当てスキーム又は決定論的割り当てスキームを用いてトランザクションを割り当てることを含む。一例において、スキームは、先着順(first-come first-serve)アルゴリズムを用いて2つ以上の並列プロセッサの間でトランザクションを割り当てることを含む。いくつかの例となる実施では、割り当てることは、各トランザクションに関連する処理費用を決定し、該処理費用を2つ以上の並列プロセッサの間で負荷分散するようにトランザクションを割り当てることを含む。各トランザクションのための処理費用は、そのトランザクションにおけるスクリプト操作の数に基づいてよい。各トランザクションのための処理費用は、スクリプト操作の加重和に更に基づいてよく、各スクリプト操作は、その計算複雑性に基づいた関連した重みを有している。
いくつかの実施において、方法は、各未使用トランザクション出力が複数のトランザクションにおける入力として一度しか現れないことを決定することによって、複数のトランザクションの夫々における入力として参照される各未使用トランザクション出力が一意であることを逐次決定することを含んでよい。
追加的に、又は代替的に、本願は、ブロックチェーンを実装するノードのネットワーク内の計算装置であって、複数のトランザクションを含む、ブロックチェーンプロトコルに従うブロックを妥当性確認するよう構成された前記計算装置について記載する。計算装置は、ブロックチェーンを実装するノードのネットワークへのネットワーク接続性を提供し、ブロックチェーンプロトコルに適合する、複数のトランザクションを含むブロックを受け取るネットワークインターフェイスと、ブロックがブロックレベルの妥当性確認基準に従うことを決定するブロックレベル妥当性確認モジュールと、複数のトランザクションの夫々における入力として参照される各未使用トランザクション出力が一意であることを逐次決定する入力一意性確認モジュールと、複数のトランザクションの中のトランザクションがトランザクションレベルの妥当性確認基準に従うことを並行して検証する2つ以上の並列プロセッサと、複数のトランザクションの中のトランザクションを検証のために2つ以上の並列プロセッサの間で割り当てるトランザクション割り当てユニットとを含んでよい。トランザクションがトランザクションレベルの妥当性確認基準に従い且つブロックがブロックレベルの妥当性確認基準に従う場合に、ネットワークインターフェイスは、ブロックをネットワーク内の1つ以上のピアノードへ転送する。
追加的に、又は代替的に、本願は、実行される場合に、1つ以上のプロセッサに、本明細書で記載されるプロセス及び/又は動作の1つ以上を実行させるプロセッサ実行可能命令を記憶している非一時的なプロセッサ可読媒体について記載し得る。
本発明の1つの態様又は実施形態に関して記載される如何なる特徴も、1つ以上の他の態様/実施形態に関しても使用され得る。本発明のこれら及び他の態様は、本明細書中で記載される実施形態から明らかであり、それを参照して説明される。本発明の実施形態が、これより、単なる一例として、添付の図面を参照して記載される。
ノードのブロックチェーンネットワークの例を表す。 ノードにおけるブロック妥当性確認プロセスの例を図式的に表す。 ブロック妥当性確認方法の一例をフローチャート形式で示す。 ブロックチェーンネットワークにおいてブロックを妥当性確認するノードのブロック図を示す。
本願において、語「及び/又は」(and/or)は、必ずしも追加の要素を除外せずに、挙げられている要素のみ、任意のサブコンビネーション、又は全ての要素、のうちのいずれか1つを含む、挙げられている要素の全ての起こり得る組み合わせ及びサブコンビネーションをカバーするよう意図される。
本願において、「~又は~の少なくとも1つ」(at least one of … or …)との語句は、必ずしも追加の要素を除外することなしに、且つ、必ずしも全ての要素を必要とせずに、挙げられている要素のみ、任意のサブコンビネーション、又は全ての要素、のうちのいずれか1つを含む、挙げられている要素のうちの任意の1つ以上をカバーするよう意図される。
最初に図1を参照する。図1は、ブロックチェーンに関連するブロックチェーンネットワーク100の例をブロック図形式で表す。ブロックチェーンネットワークは、招待なしで又は他のメンバーからの同意なしで誰もが参加することができるピア・ツー・ピアの非会員制ネットワークである。ブロックチェーンネットワーク100が動作するブロックチェーンプロトコルのインスタンスを実行する分散した電子デバイスが、ブロックチェーンネットワーク100に参加し得る。そのような分散した電子デバイスは、ノード102と呼ばれ得る。ブロックチェーンプロトコルは、例えば、ビットコインプロトコル又は他の暗号資産であってよい。
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク100のノード102を形成する電子デバイスは、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータなどのコンピュータ、サーバ、スマートフォンなどのモバイル機器、スマートウォッチなどの装着型コンピュータ、又は他の電子デバイスを含む様々なタイプであってよい。
ブロックチェーンネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いへ結合される。多くの場合に、ブロックチェーンネットワーク100は、少なくとも部分的にインターネット上で実装され、個々のノード102の一部は、地理的に散開した位置に配置されてよい。
ノード102は、ブロックチェーン上の全てのトランザクションの大域的な台帳(global ledger)を保持する。大域的な台帳は分散台帳(distributed ledger)であり、各ノード102は、大域的な台帳の完全なコピー又は部分的なコピーを保管し得る。大域的な台帳に影響を与えるノード102によるトランザクションは、大域的な台帳の妥当性が保たれるように、他のノード102によって検証される。ビットコインプロトコルを使用するもののような、ブロックチェーンネットワークを実装し動作させることの詳細は、当業者によって十分に理解される。
各トランザクションは、通常は、1つ以上の入力及び1つ以上の出力を有する。入力及び出力に埋め込まれたスクリプトは、如何にして誰によってトランザクションの出力がアクセスされ得るかを特定する。トランザクションの出力は、トランザクションの結果として値が移される先のアドレスであることができる。その値は、次いで、未使用トランザクション出力としてその出力アドレスと関連付けられる。その後のトランザクションは、次いで、そのアドレスを、その値を使用又は分散するために、入力として参照してよい。
上述されたように、マイニングノード(“マイナー”)は、ブロックチェーンにおいて次のブロックを作る競争に参加する。ブロックをアセンブルするよう、マイナーは、未承認のトランザクションのプール(“メモリプール”(mempool))からトランザクションの組としてブロックを構築する。マイナーは次いで、自身がアセンブルしたブロックに対してプルーフ・オブ・ワークを完了しようと試みる。マイナーが、いずれかの他のマイナーがブロックを生成しそのプルーフ・オブ・ワークを完了することに成功したとの通知を受ける前に、何とかプルーフ・オブ・ワークを完了する場合には、次いで、マイナーは、ブロックをネットワーク上でピアノードへ送ることによってそのブロックを伝播する。それらのノードは、ブロックを妥当性確認し、次いで、それを更に、ネットワーク上で他のノードへ送る。マイナーが、自身のプルーフ・オブ・ワークを終了する前に、他のブロックが完成されたとの通知を受ける場合には、次いで、マイナーは、その活動を放棄し、次のブロックを構築しようと試みることを開始する。
このように、ブロックの迅速な伝播は、マイナー及び妥当性確認するノードのために無駄な労力を回避するのを助ける。より速い妥当性確認、よってブロックの伝播を可能にする解決法を提供することによって、本発明は、向上したネットワーク性能を提供する。それは、必要とされる計算時間及び労力の量とともに、ネットワークによって必要とされるエネルギの量を減らす。それは、リソース及び時間に関してより効率的であるネットワークを提供する。それは、最終的に、改善された(ブロックチェーン)ネットワークを提供する。
ビットコインネットワークのようなブロックチェーンの現在の実施では、ブロックを受け取る各ノードは、ブロックを他のノードへ送る前に、最初にブロックを妥当性確認する。ブロックを妥当性確認するのにかかる時間は、ネットワークを通るブロックの伝播を遅くする。既存のプロトコルの展開を含むブロックチェーンのいくつかの実施は、ネットワーク内の各ノードよりむしろノードの一部のみによるブロック妥当性確認を提供し得る点に留意されたい。しかし、ほとんどのノードでのブロック妥当性確認は、妥当でないブロックがネットワーク内を伝播することを防ぐための任意のブロックチェーン実施の特徴であることが依然としてあり得る。
ブロックを妥当性確認することは、適用可能なブロックチェーンプロトコルによってセットされた所定の基準をブロックが満足することを確かめることを含む。ビットコインプロトコルに適用可能な基準の例は、ビットコインコアクライアント関数CheckBlock及びCheckBlockHeaderにおいて定義される。ブロック自体が所定の基準に従うことを確かめることに加えて、ブロック内の各トランザクションが、トランザクションレベルの基準に従うことを評価されてもよい。一例として、ビットコインプロトコルに適用可能なトランザクションレベルの基準は、AcceptToMemoryPool、CheckTransaction及びCheckInputsで詳細に見られ得る。
ブロックレベルの基準の具体例は、ビットコインプロトコルに基づき、次を含む:
・ブロックデータ構造が構文的に妥当である。
・ブロックヘッダハッシュが(プルーフ・オブ・ワークを実行する)ターゲットディフィカルティに満たない。
・ブロックタイムスタンプが(時間エラーを許容する)2時間未来より小さい。
・ブロックサイズが許容限界内にある。
・最初のトランザクション(及び最初のみ)がコインベース生成(coinbase generation)トランザクションである。
・ブロック内の全てのトランザクションが妥当である。
トランザクションレベルの基準の具体例は、ビットコインプロトコルに基づき、次を含む:
・トランザクションのシンタックス及びデータ構造が正確でなければならない。
・入力及び出力のいずれのリストも空である。
・各出力値x及び全ての出力の合計が0<x<21・10の範囲内になければならない。
・入力のどれもnullハッシュを有さない。
・nLockTimeがINT_MAX以下である。
・バイト単位のトランザクションサイズが最小値以上且つ最大値未満である。
・署名動作の回数が署名動作限界に満たない。
・アンロックスクリプト(unlocking script)scriptSigがスタックに数字をプッシュすることがしかできず、ロックスクリプト(locking script)scriptPubkeyが標準(Standard)形式である。
・各入力について、参照される出力がプール内のいずれかの他のトランザクションに存在する場合には、トランザクションは拒絶されなければならない。
・各入力について、参照される出力トランザクションがコインベース出力である場合には、それは少なくともCOINBASE_MATURITY(100)承認(confirmation)を有する必要がある。
・各入力について、参照される出力が存在すべきであり、既に使用されていることはあり得ない。
・入力値を得るための参照される出力トランザクションを使用して、各入力値及び和が値xの許容範囲、すなわち、0<x<21・10にあることをチェックする。
・プール内又はメインブランチにおけるブロック内に一致するトランザクションが存在しなければならない。
・入力値の和が出力値の和以上でなければならない。
・トランザクション手数料が空のブロックに入るのに十分でなければならない。
・各入力についてのアンロックスクリプトが対応する出力に対してロックスクリプトを妥当性確認しなければならない。
所定の基準は、異なるプロトコルでは異なることがあり、所与のプロトコルについては、そのプロトコルに対して変更が行われる場合に、時間とともに変化する可能性があるということで、これらの例となる基準は実例であり、全ての実施形態にとって十分又は必要と解釈されるべきではない。一般に、トランザクションレベルの妥当性確認基準は、適用可能なブロックチェーンプロトコルの下でトランザクションが妥当と見なされるべきである特性を規定したものである。同様に、ブロックレベルの妥当性確認基準は、適用可能なブロックチェーンプロトコルの下でブロックが妥当と見なされるべきである特性を規定したものである。
本願によれば、ネットワークにおいてブロックのより速い伝播を容易にするために、ブロック妥当性確認を加速させる方法及びデバイスが、記載される。
一態様において、本願は、個々のトランザクションのトランザクションレベルの妥当性確認を並行して実行することによってブロックを妥当性確認するよう構造化されたノードについて記載する。しかし、トランザクションレベルの特定の基準は、並行して評価されるべきではない。特に、UTXOの一意性は、逐次的に評価されるべきである。従って、ノードは、トランザクションレベルの残りの基準の妥当性確認のために2つの並列プロセッサの組の間でトランザクションを割り当てることより前に、トランザクションの参照される入力(UTXO)の一意性を確認するよう構造化又は配置される。
「プロセッサ」との語は、本明細書中で並列プロセッサの記載に関連して使用される場合に、物理的に相異なるマイクロプロセッサを必ずしも意味せず、プロセッサ機能を独立して且つ並行して実行することができる並列処理リソースを可能にする如何なるハードウェア又はソフトウェア実施も含んでよい。並列プロセッサは、複数のコアを有している1つのプロセッサを含んでよい。いくつかの事例で、並列プロセッサは、複数の別個の処理ユニットを含んでよい。並列プロセッサは、物理メモリを共有してもしなくてもよい。各並列プロセッサは、どんなふうに実施されても、妥当でないトランザクションを識別することに応答して信号を出力することなどのシグナリングのためのソフトウェア又はハードウェアメカニズムを有している。並列プロセッサの実施はまた、割り当てられたトランザクションデータを局所処理のために各々のプロセッサへ転送するよう、ソフトウェア及び/又はハードウェアにおいて、必要なデータ転送メカニズムを提供することを含む。
これより図2を参照すると、図2は、ブロックチェーンネットワークのノードにおけるブロック妥当性確認プロセス200の簡単な例を図式的に示す。プロセス200は、ブロックレベルの妥当性確認段階202を含み、段階202では、入来する新しいブロックがブロックレベルの基準に対して試験される。例となるブロックレベルの基準は上記の通りであり、一般に、ブロック内のトランザクションとは対照的に、ブロック自体に適用される所定のフォーマット要件及び特性又は制限に関係がある。例えば、ブロックサイズ、ブロックヘッダ構造又はコンテンツ、及び同様の基準がある。
プロセス200は、UTXO一意性確認モジュール204を更に含む。モジュール204は、新しいブロックにおけるトランザクションへの入力の夫々、すなわち、各UTXOが一意であるかどうかを評価する。新しいブロックにおいて入力として1回より多く同じUTXOが現れる場合には、それは二重支払い(double-spending)の問題の可能性を示し、UTXO一意性基準に違反する。UTXO一意性確認モジュール204が、新しいブロック内のトランザクション入力の中で1回よりも多く参照されるUTXOを識別する場合には、次いでそれは、ブロックが拒絶されるべきであることを示すようエラー信号又は他のインタラプトを出力する。
新しいブロックが拒絶されないとすれば、すなわち、全てのUTXOが一意であるとすれば、次いで、個々のトランザクションが、トランザクション割り当てユニット206によって並列プロセッサ208の組の間で割り当てられる。トランザクション割り当てユニット206は、ブロック内のトランザクションを個々のプロセッサ208の間で分けるための多数の可能な割り当てスキームのうちのいずれか1つを用いてよい。いくつかの場合に、割り当てスキームは、負荷分散(load balancing)を目的とし得る。割り当ては、処理時間が様々であるジョブの組が、それ自身の処理能力又は出力を夫々が有しているマシン/プロセッサ208の組の間で割り当てられる一方で、プロセッサ208の間で最長の処理時間の長さを最小にしようと試みる“ジョブショップスケジューリング”(job shop scheduling)と見なされ得る。更なる例となる詳細は、以下で与えられる。
個々のプロセッサ208は、それらに割り当てられているトランザクションを、トランザクションレベルの妥当性確認基準に対して妥当性確認する。プロセッサ208は、それらの間の同期化パラダイムを必要としない。すなわち、それらは、それらが割り当てられているトランザクションが妥当であることを検証することに夫々独立して取り組む。各プロセッサ208は、その割り当てられたトランザクションの妥当性を裏付ける結果を出力し、結果は、ブロック内の全てのトランザクションが妥当であることを確認するために加えられる。プロセッサ208のうちの1つが不適合なトランザクション、すなわち、妥当でないトランザクションを識別する場合に、次いでそれは、妥当でないトランザクションが存在することを示すよう、インタラプト又は他の信号などの出力を発してよい。そのインタラプト又は信号は他のプロセッサ208へ送られてよく、それにより、それらは、それらの各々のトランザクションを試験するのを直ちに中止し、拒絶されるべきブロック内のトランザクションを妥当性確認することで更なるリソースを無駄にすることがないようにすることができる。
ブロックレベルの基準は、例となるプロセス200では、最初に試験されるものとして示されているが、ブロックレベルの妥当性確認段階202は、トランザクションレベルの妥当性確認試験の後で、あるいは、いくつかの場合では、トランザクションレベルの妥当性確認試験と並行して、行われてよいことが理解されるだろう。
これより図3を参照すると、図3は、ブロックチェーンネットワークに置いてブロックを妥当性確認する方法300の一例をフローチャート形式で示す。ブロックは複数のトランザクションを含み、各トランザクションは1つ以上の入力を参照し、各入力はUTXOである(コインベース生成トランザクションの場合を除く。)。方法300は、ブロックチェーンネットワークにおけるあるノード内で適切なハードウェア及びプロセッサ実行可能命令を用いて実施される。
動作302で、ノードは新しいブロックを受け取る。新しいブロックは、新しいブロックを生成しプルーフ・オブ・ワークを完了したマイニングノードから受け取られてよい。新しいブロックは、ネットワーク内の他の(非マイニング)ノードから受け取られてもよい。新しいブロックをネットワーク内のいずれかの他のノードへ転送する前に、現在のノードはブロックを妥当性確認する。上述されたように、新しいブロックの妥当性確認は、ブロックがブロックレベルの特定の基準を満足することを確認することと、ブロック内のトランザクションの夫々が妥当であることを確認することとを含む。
動作304で、ノードは、新しいブロックがブロックレベルの基準を満足するかどうかを評価する。上述されたように、この動作304は、いくつかの実施では方法300において後で実行されてもよく、いくつかの場合に、他の動作と並行して実行されてもよい。ブロックレベルの基準は、とりわけ、ブロック構造がシンタックス要件を満足すること、タイムスタンプが通貨要件を満たすこと、及びブロックサイズが所定の制限内にあることを確認することを含んでよい。
新しいブロックがこれらのブロックレベルの基準を満足する場合には、次いで動作306で、ノードは、個々のトランザクションへの入力が一意であるかどうかを評価する。すなわち、ノードは、入力として参照されるUTXOのいずれかがブロックにおいて1回よりも多く現れるかどうかを判定する。そうであるならば、UTXOは一意ではなく、ブロックは拒絶されるべきである。UTXOが一意であるとの決定は、並列処理ユニットの間で計算的に費用のかかる同期化パラダイムを使用しないと、並行して実行され得ない。従って、動作306は、逐次的に実行される。
一例となる実施では、トランザクション入力における参照される出力(UTXO)のハッシュテーブルが使用されてよく、各UTXOは、偽(false)に初期化されたブール値を有する。二重支払い攻撃は、値が予め真(true)にセットされている所与のハッシュテーブル入力が再び参照される場合に起こる。そのような場合に、UTXOは一意ではなく、ブロック全体が妥当でないと見なされ、プロセス300は中止される。
他の例となる実施では、二分探索木が、例えば、C++におけるマップ(map)データ構造を通じて、使用されてよい。マップは、特定の順序に従って、キー値及びマッピングされる値の組み合わせによって形成された要素を格納する連想コンテナである。n個のトランザクションを考えると、探索、挿入及び削除時間複雑性は、平均してO(logn)であり、最悪の場合でO(n)である。
新しいブロック内のUTXOが一意である場合には、次いで動作308で、ノードは、トランザクションを並列プロセッサの間で割り当てる。
追加のハッシュテーブルが、ブロック内の他のトランザクションに依存するトランザクションの経過を追うよう、動作306の直列処理の間に使用されてよい。1つの実施では、識別子iddep(0から始まる。)が、現在解析されているトランザクションに当てがわれる。トランザクションが他のトランザクションに依存する場合には、それは、それが依存するトランザクションと同じ識別子を与えられることになる。すなわち、2つ以上の依存したトランザクションは同じ識別子を有し、まだ見られている如何なるトランザクションにも依存しない夫々の新しいトランザクションは、逓増的なiddep値を有する。依存したトランザクションの各組は、同じ処理ユニットに前もって割り当てられる。例えば、Nが並列処理ユニットの数であるとして、idCPU=iddepmoduloN。依存したトランザクションは、例えば、それが依存するトランザクションからの出力である入力を有するものである。
最も簡単な実施では、プロセッサ間のトランザクションの割り当ては、プロセッサ要求及び/又は能力の差にかかわらず、プロセッサの数及びトランザクションの数に基づく。しかし、利用可能なプロセッサの間で処理負荷をより良く平衡にするよう、いくつかの実施では、ノードは、トランザクションの複雑性、特に、各トランザクションを妥当性確認することの複雑性を考慮に入れてもよい。処理負荷の(又はその代理となる)1つのそのような指標は、トランザクションに関わるスクリプト記述動作の数である。すなわち、個々のトランザクションjを妥当性確認するのに必要な時間は、関連するスクリプト記述動作の数cに比例すると見なされ得る。例えば、P2PKHトランザクションの場合に、cは、署名スクリプト(入力)における操作の数と、公開キースクリプト(参照される出力)における操作の数との和である。
他の例では、異なる重みが異なるスクリプト操作に割り当てられ得る。例えば、OP_HASH160及びOP_CHECKSIGは、単純なOP_EQUAL操作よりもはるかに複雑である。従って、トランザクションjの妥当性確認のための全体の費用cは、そのM個の個別的な重み付けされたスクリプト操作wの和として定義される:
Figure 0007114629000001
重みwは、適用可能なブロックチェーンプロトコルによって規定又は定義されたスクリプト記述動作の複雑性に基づきハードコードされてよい。
ノードの計算リソースに対する何らかの形の攻撃を防ぐために、閾値Tがセットされ得る。任意のトランザクションjについて、c>Tの場合に、ノードは、ブロックを妥当性確認しないことを決定することができる。Tの値は、ヘルツ又は毎秒あたりの命令数で測定される、局所妥当性確認ノードにおける個々の処理ユニットの計算出力に直接比例し得る。
スケジューリングスキームSは、トランザクション妥当性確認のリスト{c},0≦j<nをCPUの間で分配する。この問題は、ジョブショップスケジューリングとして知られており、様々な処理時間のn個のジョブ{J,J,・・・,J}は、様々な処理出力を有するN個のマシンに対してスケジューリングされる必要があり、一方で、スケジュールUの全体の長さ(メイクスパン)、すなわち、並列処理が完了するのにかかる時間を最小にしようと試みる。いくつかの実施では、プロセッサ間のトランザクションの割り当ては、ランダム割り当てスキームに従ってよい。いくつかの実施では、割り当ては、決定論的(deterministic)割り当てスキームに従ってよい。
例となる2つのスケジューリングスキームは、次を含む:
・FCFS(先着順サービス(First Come First Served))は、利用可能な処理ユニットにラウンドロビン(round-robin)様式でトランザクションを順次割り当てる。これは、ランダム割り当てスキームの一種である。ブロックの上からt番目のトランザクションを考えると、IDt modulo Nを有するコアが妥当性確認に関与することになる。このスケジューラは、少なくとも計算的に複雑である。
・LPT(最小処理時間(Longest Processing Time))どん欲法(greedy algorithm)は、より有効な負荷分担解決法を提供し、決定論的割り当てスキームの一例である。ジョブ(トランザクション)は、最初に、それらの各々の処理時間(スクリプト記述動作の数、又は重み付けされたスクリプト記述動作の和に基づく“費用”)によってソートされ、次いで、プロセッサごとの計算負荷を平衡にするように、これまでの最も早い終了時刻を有するマシンに割り当てられ得る。
いくつかの実施で、FCFSスキームは、妥当性確認ノードの並列処理の程度N(例えば、N又はN/2個のトランザクションごとにスクリプトを要求しながらブロックを構築すること)を悪用する悪意のある攻撃を受ける可能性がある。このシナリオを回避するために、本当にランダムなトランザクション妥当性確認割り当てが、余分の費用なしで使用され得る。
LPTアルゴリズムは、理論的な最適条件Uに対して次の上限Uを達成する:

U/U=(4/3)-(1/3N)

マージソート(Mergesort)のようなソートのアルゴリズムは、O(nlogn)の最悪及び平均時間複雑性を特徴とする。しかし、動作306のUTXO一意性評価は、c値をソートしながら実行されてよく、それによって、如何なる余分の計算費用も回避する。
並列プロセッサの間でトランザクションを割り当てると、方法300は次いで、それらのプロセッサの夫々が、割り当てられたトランザクションの各々の組を独立して妥当性確認することを含む。全ての個別的なトランザクションが妥当と検証されると、次いで、動作312によって示されるように、ノードは、ブロックを妥当であるとして受け入れることができる。ブロックを妥当であるとして受け入れること又は指定することは、ブロックチェーンネットワーク上で1つ以上のピアノードへ妥当なブロックを転送することのような、ブロックの妥当性に基づく更なる機能をもたらし得る。いくつかの場合に、それは、現在のノードにローカルで記憶されたブロックチェーンのコピーにブロックを加えることを含んでもよい。
プロセッサのいずれかが、妥当でないトランザクションを検出する場合には、そのプロセッサは妥当性確認方法300を中止し、動作314によって示されるように、ノードはブロックを妥当でないとして拒絶する。
このように、本発明は、先行技術における少なくとも1つの技術的問題に対して1つ以上の技術的解決法を提供する。例えば、既知のブロックチェーン配置は、並列プロセッサ間のトランザクションの割り当てより前に、全てのトランザクションにおける未使用トランザクション出力(UTXO)の妥当性を逐次検証する技術を教示していない。2014年10月8日に公表されたビットコインフォーラムは、例えば、新しいデータ構造(出力セット)を構築し、出力セット構造をチェックすることによって、並列化されたトランザクション検証プロセス内で二重支払いを防ごうと試みることを提案しているように見える(https://bitcointalk.org/index.php?topic=816199.0 [06/10/2017] “Looking Into forking the core wallet to use parallel computing to verify blocks”)。
これより図4を参照すると、図4は、ノード400の簡略化された例をブロック図で示す。ノード400は、複数のプロセッサ402を含む。プロセッサ402には、1つ以上のマイクロプロセッサ、特定用途向け集積回路(ASIC)、マイクロコントローラ、又は同様のコンピュータ処理装置が含まれ得る。プロセッサ402は、マルチコアプロセッサを含んでもよい。
ノード400はメモリ404を更に含む。メモリ404には、値、変数、及びいくつかの事例では、プロセッサにより実行可能なプログラム命令を記憶する永久的且つ非一時的なメモリが含まれ得る。ノード400は、有線又な無線ネットワークにわたってネットワーク接続性を提供するネットワークインターフェイス406を更に含む。
ノード400は、プロセッサ実行可能命令を含むプロセッサ実行可能ブロックチェーンアプリケーション408を含む。プロセッサ実行可能命令は、実行される場合に、プロセッサ402に、本明細書中で記載される機能又は動作の1つ以上を実行させる。
本明細書中で記載されるデバイス及びプロセス、並びにブロックチェーンノードを構成するために、記載される方法/プロセスを実装するあらゆるモジュール、ルーチン、プロセス、スレッド、アプリケーション、又は他のソフトウェアコンポーネントが、標準のコンピュータプログラミング技術及び言語を用いて実現され得ることが理解されるだろう。本願は、特定のプロセッサ、コンピュータ言語、コンピュータプログラミング仕様、データ構造、他のそのような実施詳細に限定されない。
上記の実施形態は、本発明を制限するのではなく説明しているのであって、当業者は、添付の特許請求の範囲によって定義される本発明の適用範囲から外れることなしに、多くの代替の実施形態を設計することが可能である点が留意されるべきである。特許請求の範囲において、かっこ内の如何なる参照符号も、特許請求の範囲を制限するものとして解釈されるべきではない。語「有する」(comprising及びcomprises)などは、いずれかの請求項又は明細書の全文に挙げられているもの以外の要素又はステップの存在を除外しない。本明細書中、「有する」(comprises)は、「含むか、又は~から成る」(includes or consists of)を意味し、「有する」(comprising)は、「含むか、又は~から成る」(including or consisting of)を意味する。要素の単一参照は、そのような要素の複数参照を除外せず、逆もまた同じである。本発明は、いくつかの個別要素を有するハードウェアを用いて、且つ、適切にプログラムされたコンピュータを用いて、実施されてよい。いくつかの手段を列挙している装置クレームでは、それらの手段のうちのいくつかが、ハードウェアの同一アイテムによって具現されてもよい。特定の手段が相互に異なる請求項で挙げられているという単なる事実は、それらの手段の組み合わせが有利に使用され得ないことを示すものではない。

Claims (17)

  1. ブロックチェーンプロトコルに適合するブロックチェーンを実装するノードのネットワーク内で、複数のトランザクションを含むブロックを妥当性確認する、コンピュータにより実施される方法であって、
    ブロックレベルの妥当性確認基準に前記ブロックが従うことを決定することと、
    前記複数のトランザクションの夫々における入力として参照される各未使用トランザクション出力が一意であることを逐次決定し、該決定に基づいて、
    前記複数のトランザクションの中の各トランザクションを2つ以上の並列プロセッサのうちの1つに割り当て、
    並行して、前記2つ以上の並列プロセッサによって、前記複数のトランザクションの中の前記トランザクションがトランザクションレベルの妥当性確認基準に従うことを検証することと、
    前記トランザクションがトランザクションレベルの妥当性確認基準に従い且つ前記ブロックがブロックレベルの妥当性確認基準に従う場合には、前記ブロックを前記ネットワーク内の1つ以上のピアノードへ転送することと
    を有し、
    前記複数のトランザクションの中の各トランザクションを2つ以上の並列プロセッサのうちの1つに割り当てることは、各トランザクションに関連する処理費用を決定し、該処理費用を前記2つ以上の並列プロセッサの間で負荷分散するように前記トランザクションを割り当てることを有する、方法。
  2. 前記トランザクションレベルの妥当性確認基準は、前記ブロックチェーンプロトコルによって規定されるトランザクション特性を有し、
    各トランザクションは、妥当と見なされる前記トランザクション特性を持っている必要がある、
    請求項1に記載の方法。
  3. 前記ブロックレベルの妥当性確認基準は、前記ブロックチェーンプロトコルによって規定されるブロック特性を有し、
    各ブロックは、妥当と見なされる前記ブロック特性を持っている必要がある、
    請求項1又は2に記載の方法。
  4. 前記複数のトランザクションの中の各トランザクションを2つ以上の並列プロセッサのうちの1つに割り当てることは、ランダム割り当てスキーム又は決定論的割り当てスキームを用いて前記トランザクションを割り当てることを有する、
    請求項1乃至3のうちいずれか一項に記載の方法。
  5. 前記トランザクションを割り当てることは、先着順アルゴリズムを用いて前記2つ以上の並列プロセッサの間で前記トランザクションを割り当てることを有する、
    請求項4に記載の方法。
  6. 各トランザクションのための前記処理費用は、当該トランザクションにおけるスクリプト操作の数に基づく、
    請求項1乃至5のうちいずれか一項に記載の方法。
  7. トランザクションのための前記処理費用は、スクリプト操作の加重和に基づき、重みは、各々のスクリプト操作の計算複雑性に基づい各スクリプト操作関連づけられる
    請求項1乃至6のうちいずれか一項に記載の方法。
  8. 前記複数のトランザクションの夫々における入力として参照される各未使用トランザクション出力が一意であることを逐次決定することは、各未使用トランザクション出力が前記複数のトランザクションにおける入力として一度しか現れないことを決定することを有する、
    請求項1乃至7のうちいずれか一項に記載の方法。
  9. ブロックチェーンを実装するノードのネットワーク内の計算装置であって、ブロックチェーンプロトコルに適合するブロックを妥当性確認するよう構成され、該ブロックが複数のトランザクションを含む、前記計算装置において、
    ブロックチェーンを実装するノードのネットワークへのネットワーク接続性を提供し、ブロックチェーンプロトコルに適合する、複数のトランザクションを含むブロックを受け取るネットワークインターフェイスと、
    ブロックレベルの妥当性確認基準に前記ブロックが従うことを決定するブロックレベル妥当性確認モジュールと、
    前記複数のトランザクションの夫々における入力として参照される各未使用トランザクション出力が一意であることを逐次決定する入力一意性確認モジュールと、
    前記複数のトランザクションの中のトランザクションがトランザクションレベルの妥当性確認基準に従うことを並行して検証する2つ以上の並列プロセッサと、
    各トランザクションに関連する処理費用を決定し、該処理費用を前記2つ以上の並列プロセッサの間で負荷分散するように前記トランザクションを割り当てることによって、前記複数のトランザクションの中の前記トランザクションを検証のために前記2つ以上の並列プロセッサの間で割り当てるトランザクション割り当てユニットと
    を有し、
    前記トランザクションがトランザクションレベルの妥当性確認基準に従い且つ前記ブロックがブロックレベルの妥当性確認基準に従う場合には、前記ネットワークインターフェイスは、前記ブロックを前記ネットワーク内の1つ以上のピアノードへ転送する、
    計算装置。
  10. 前記トランザクションレベルの妥当性確認基準は、前記ブロックチェーンプロトコルによって規定されるトランザクション特性を有し、
    各トランザクションは、妥当と見なされる前記トランザクション特性を持っている必要がある、
    請求項9に記載の計算装置。
  11. 前記ブロックレベルの妥当性確認基準は、前記ブロックチェーンプロトコルによって規定されるブロック特性を有し、
    各ブロックは、妥当と見なされる前記ブロック特性を持っている必要がある、
    請求項9又は10に記載の計算装置。
  12. 前記トランザクション割り当てユニットは、ランダム割り当てスキーム又は決定論的割り当てスキームを用いて前記トランザクションを前記2つ以上の並列プロセッサの間で割り当てる
    請求項9乃至11のうちいずれか一項に記載の計算装置。
  13. 前記トランザクションを割り当てることは、先着順アルゴリズムを用いて前記トランザクションを割り当てることを有する、
    請求項12に記載の計算装置。
  14. 各トランザクションのための前記処理費用は、当該トランザクションにおけるスクリプト操作の数に基づく、
    請求項9乃至13のうちいずれか一項に記載の計算装置。
  15. トランザクションのための前記処理費用は、スクリプト操作の加重和に基づき、重みは、各々のスクリプト操作の計算複雑性に基づい各スクリプト操作関連づけられる
    請求項9乃至14のうちいずれか一項に記載の計算装置。
  16. 前記入力一意性確認モジュールは、各未使用トランザクション出力が前記複数のトランザクションにおける入力として一度しか現れないことを決定することによって、前記複数のトランザクションの夫々における入力として参照される各未使用トランザクション出力が一意であることを逐次決定する、
    請求項9乃至15のうちいずれか一項に記載の計算装置。
  17. ブロックチェーンを実装するノードのネットワーク内でプロセッサ実行可能命令を含むプログラムであって、
    前記命令は、ブロックチェーンプロトコルに適合するブロックを妥当性確認し、該ブロックが複数のトランザクションを含み、
    前記命令は、2つ以上のプロセッサによって実行される場合に、該2つ以上のプロセッサに、請求項1乃至8のうちいずれか一項に記載の方法を実行させる、
    プログラム。
JP2019558667A 2017-05-08 2018-05-04 ブロックチェーントランザクションの並列検証のためのシステム及び方法 Active JP7114629B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022119234A JP7434448B2 (ja) 2017-05-08 2022-07-27 ブロックチェーントランザクションの並列検証のためのシステム及び方法
JP2024016781A JP2024036578A (ja) 2017-05-08 2024-02-07 ブロックチェーントランザクションの並列検証のためのシステム及び方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1707296.8 2017-05-08
GBGB1707296.8A GB201707296D0 (en) 2017-05-08 2017-05-08 Computer-implemented system and method
PCT/IB2018/053110 WO2018207064A1 (en) 2017-05-08 2018-05-04 Systems and Methods For Parallel Verification of Blockchain Transactions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022119234A Division JP7434448B2 (ja) 2017-05-08 2022-07-27 ブロックチェーントランザクションの並列検証のためのシステム及び方法

Publications (3)

Publication Number Publication Date
JP2020518907A JP2020518907A (ja) 2020-06-25
JP2020518907A5 JP2020518907A5 (ja) 2021-05-20
JP7114629B2 true JP7114629B2 (ja) 2022-08-08

Family

ID=59065610

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2019558667A Active JP7114629B2 (ja) 2017-05-08 2018-05-04 ブロックチェーントランザクションの並列検証のためのシステム及び方法
JP2022119234A Active JP7434448B2 (ja) 2017-05-08 2022-07-27 ブロックチェーントランザクションの並列検証のためのシステム及び方法
JP2024016781A Pending JP2024036578A (ja) 2017-05-08 2024-02-07 ブロックチェーントランザクションの並列検証のためのシステム及び方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2022119234A Active JP7434448B2 (ja) 2017-05-08 2022-07-27 ブロックチェーントランザクションの並列検証のためのシステム及び方法
JP2024016781A Pending JP2024036578A (ja) 2017-05-08 2024-02-07 ブロックチェーントランザクションの並列検証のためのシステム及び方法

Country Status (6)

Country Link
US (2) US11902441B2 (ja)
EP (1) EP3622463A1 (ja)
JP (3) JP7114629B2 (ja)
CN (1) CN110603559A (ja)
GB (1) GB201707296D0 (ja)
WO (1) WO2018207064A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3468095A1 (en) * 2017-10-06 2019-04-10 Siemens Aktiengesellschaft Transaction selection device for selecting blockchain transactions
US11606190B2 (en) * 2017-12-26 2023-03-14 Akamai Technologies, Inc. High performance distributed system of record with cryptographic service support
US11018850B2 (en) * 2017-12-26 2021-05-25 Akamai Technologies, Inc. Concurrent transaction processing in a high performance distributed system of record
CN109377215B (zh) 2018-08-06 2020-04-21 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
US11048689B2 (en) * 2018-11-08 2021-06-29 International Business Machines Corporation Consensus transaction scheduler
CN109544160B (zh) * 2018-11-20 2020-06-30 杭州呯嘭智能技术有限公司 一种基于区块链和智能合约的交易真实性验证方法及系统
US10700850B2 (en) 2018-11-27 2020-06-30 Alibaba Group Holding Limited System and method for information protection
RU2719423C1 (ru) 2018-11-27 2020-04-17 Алибаба Груп Холдинг Лимитед Система и способ защиты информации
PL3552158T3 (pl) 2018-11-27 2021-07-26 Advanced New Technologies Co., Ltd. System i sposób ochrony informacji
ES2879855T3 (es) 2018-11-27 2021-11-23 Advanced New Technologies Co Ltd Sistema y método para la protección de información
PL3545644T3 (pl) 2018-11-27 2021-06-28 Advanced New Technologies Co., Ltd. System i sposób ochrony informacji
KR102139897B1 (ko) 2018-11-27 2020-07-31 알리바바 그룹 홀딩 리미티드 정보 보호를 위한 시스템 및 방법
US20200175503A1 (en) 2018-11-29 2020-06-04 Paypal, Inc. Resource-based distributed public ledger system
CN109685657B (zh) * 2018-12-25 2023-07-21 众安信息技术服务有限公司 在区块链网络中处理交易的方法和节点设备以及存储介质
RU2731417C1 (ru) 2018-12-28 2020-09-02 Алибаба Груп Холдинг Лимитед Параллельное выполнение транзакций в сети цепочек блоков на основе белых списков смарт-контрактов
RU2738826C1 (ru) 2018-12-28 2020-12-17 Алибаба Груп Холдинг Лимитед Параллельное выполнение транзакций в сети блокчейнов
US11765225B2 (en) * 2019-03-18 2023-09-19 Reliance Jio Infocomm Limited Systems and methods for microservice execution load balancing in virtual distributed ledger networks
US11159308B2 (en) 2019-03-20 2021-10-26 PolySign, Inc. Preventing an erroneous transmission of a copy of a record of data to a distributed ledger system
SG11201909767TA (en) 2019-04-12 2019-11-28 Alibaba Group Holding Ltd Performing parallel execution of transactions in a distributed ledger system
CN111095325B (zh) 2019-04-12 2023-10-27 创新先进技术有限公司 在分布式账本系统中进行交易的并行执行
US11115188B2 (en) * 2019-04-29 2021-09-07 Advanced New Technologies Co., Ltd. Blockchain-based data processing method, apparatus, and blockchain node
WO2019137567A2 (en) * 2019-04-30 2019-07-18 Alibaba Group Holding Limited Method and device for avoiding double-spending problem in read-write set-model-based blockchain technology
CN111767337B (zh) * 2019-05-24 2024-04-05 北京沃东天骏信息技术有限公司 区块的验证方法、装置及设备
US11539527B2 (en) 2019-05-29 2022-12-27 International Business Machines Corporation Peer node recovery via approximate hash verification
US11429738B2 (en) 2019-05-29 2022-08-30 International Business Machines Corporation Blockchain endorsement with approximate hash verification
US11570002B2 (en) 2019-05-29 2023-01-31 International Business Machines Corporation Reduced-step blockchain verification of media file
US11516000B2 (en) * 2019-05-29 2022-11-29 International Business Machines Corporation Approximate hash verification of unused blockchain output
US11711202B2 (en) 2019-05-29 2023-07-25 International Business Machines Corporation Committing data to blockchain based on approximate hash verification
CN110493148B (zh) * 2019-08-12 2022-04-01 深圳前海微众银行股份有限公司 一种区块处理、区块共识和区块同步方法及装置
DE102019216744A1 (de) * 2019-10-30 2021-05-06 Robert Bosch Gmbh Granulare Speicherverwaltung für einen Distributed Ledger
CN111159197A (zh) * 2019-12-31 2020-05-15 深圳市网心科技有限公司 一种数据存储方法、装置、设备及可读存储介质
US11403281B2 (en) * 2020-01-09 2022-08-02 Eternal Paradise Limited Parallel blockchain processing
CN113222590B (zh) * 2020-01-21 2023-10-31 富联精密电子(天津)有限公司 预防双花攻击的方法、装置及计算机可读存储介质
CN111507723A (zh) * 2020-06-18 2020-08-07 海南安迈云网络技术有限公司 一种数字资产管理交易加密的方法
EP3945378A1 (de) * 2020-07-27 2022-02-02 Siemens Aktiengesellschaft Digital-twin basierte prozesssteuerung in einem internet-of-things-netzwerk
US11563559B2 (en) * 2020-07-29 2023-01-24 International Business Machines Corporation Parallel processing of blockchain procedures
CN112887437B (zh) * 2021-04-28 2021-08-03 支付宝(杭州)信息技术有限公司 区块链交易处理方法、区块链节点和区块链系统
KR20240096559A (ko) * 2021-10-28 2024-06-26 엔체인 라이센싱 아게 분산된 블록체인 기능들을 위한 방법들 및 시스템들

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160292680A1 (en) 2015-04-05 2016-10-06 Digital Asset Holdings Digital asset intermediary electronic settlement platform
JP2016218633A (ja) 2015-05-18 2016-12-22 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
US20170091726A1 (en) 2015-09-07 2017-03-30 NXT-ID, Inc. Low bandwidth crypto currency transaction execution and synchronization method and system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7672981B1 (en) * 2007-02-28 2010-03-02 Emc Corporation Object classification and indexing of very large name spaces using grid technology
US9015708B2 (en) * 2011-07-28 2015-04-21 International Business Machines Corporation System for improving the performance of high performance computing applications on cloud using integrated load balancing
CN102299959B (zh) * 2011-08-22 2013-08-14 北京邮电大学 一种数据库集群系统的负载均衡实现方法和装置
CN102681902A (zh) * 2012-05-15 2012-09-19 浙江大学 一种基于多核系统任务分配的负载均衡方法
US9735958B2 (en) 2015-05-19 2017-08-15 Coinbase, Inc. Key ceremony of a security system forming part of a host computer for cryptographic transactions
GB2540975A (en) 2015-07-31 2017-02-08 British Telecomm Mitigating blockchain attack
US9811391B1 (en) * 2016-03-04 2017-11-07 Color Genomics, Inc. Load balancing and conflict processing in workflow with task dependencies
US10255108B2 (en) * 2016-01-26 2019-04-09 International Business Machines Corporation Parallel execution of blockchain transactions
US20170300318A1 (en) * 2016-04-18 2017-10-19 Accenture Global Solutions Limited Identifying low-quality code
US10565570B2 (en) * 2016-09-27 2020-02-18 The Toronto-Dominion Bank Processing network architecture with companion database
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
US11036765B1 (en) * 2017-03-15 2021-06-15 Jpmorgan Chase Bank, N.A. System and method for dynamic data ingestion
CN107196900B (zh) * 2017-03-24 2020-04-24 创新先进技术有限公司 一种共识校验的方法及装置
CN107360206B (zh) * 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160292680A1 (en) 2015-04-05 2016-10-06 Digital Asset Holdings Digital asset intermediary electronic settlement platform
JP2016218633A (ja) 2015-05-18 2016-12-22 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
US20170091726A1 (en) 2015-09-07 2017-03-30 NXT-ID, Inc. Low bandwidth crypto currency transaction execution and synchronization method and system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Developer Guide - Bitcoin,[online],2017年04月09日,[2022年2月18日検索],インターネット<URL:https://web.archive.org/web/20170409021059/http://bitcoin.org/en/developer-guide>
Looking into forking the core wallet to use parallel computing to verify blocks,[online],2016年01月30日,[2022年2月15日検索],インターネット<URL:http://web.archive.org/web/20160130130538/https://bitcointalk.org/index.php?topic=816199.0;all>

Also Published As

Publication number Publication date
CN110603559A (zh) 2019-12-20
JP2024036578A (ja) 2024-03-15
JP2022136219A (ja) 2022-09-15
JP2020518907A (ja) 2020-06-25
EP3622463A1 (en) 2020-03-18
US20240195621A1 (en) 2024-06-13
WO2018207064A1 (en) 2018-11-15
GB201707296D0 (en) 2017-06-21
US20200074424A1 (en) 2020-03-05
JP7434448B2 (ja) 2024-02-20
US11902441B2 (en) 2024-02-13

Similar Documents

Publication Publication Date Title
JP7114629B2 (ja) ブロックチェーントランザクションの並列検証のためのシステム及び方法
JP7472333B2 (ja) バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム
JP7379371B2 (ja) ブロックチェーンネットワークの分割
CN109493050B (zh) 基于区块链主链加并行多子链的转账方法
CN109472572B (zh) 基于区块链主链加并行多子链的合约系统
US20210256016A1 (en) Blockchain system and method
WO2020173287A1 (en) Systems and methods for determining network shards in blockchain network
CN109493052B (zh) 一种基于主链加并行多子链的跨链合约系统
CN109493051B (zh) 可动态进行账户分配及迁移的主链加并行多子链系统架构
CN116703601B (zh) 基于区块链网络的数据处理方法、装置、设备及存储介质
JP2022553701A (ja) コンセンサスメカニズムを有する分散ネットワーク
Tennakoon et al. CollaChain: A BFT collaborative middleware for decentralized applications
CN114140115B (zh) 区块链交易池的分片方法、系统、存储介质和计算机系统
GB2612336A (en) Computer-implemented system and method
GB2612338A (en) Computer-implemented system and method
Mu et al. EfShard: Toward Efficient State Sharding Blockchain via Flexible and Timely State Allocation
CN116805947B (zh) 区块链数据处理方法、装置、设备及计算机可读存储介质
CN117332871A (zh) 一种基于区块链的联邦学习处理方法以及相关设备
CN117408703A (zh) 交易执行方法、装置和区块链系统
GB2618380A (en) Computer-implemented system and method
GB2612339A (en) Computer-implemented system and method
GB2612337A (en) Computer-implemented system and method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210408

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210408

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220520

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220727

R150 Certificate of patent or registration of utility model

Ref document number: 7114629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150