JP2022532764A - プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法 - Google Patents

プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法 Download PDF

Info

Publication number
JP2022532764A
JP2022532764A JP2021568510A JP2021568510A JP2022532764A JP 2022532764 A JP2022532764 A JP 2022532764A JP 2021568510 A JP2021568510 A JP 2021568510A JP 2021568510 A JP2021568510 A JP 2021568510A JP 2022532764 A JP2022532764 A JP 2022532764A
Authority
JP
Japan
Prior art keywords
blockchain
transaction
block
output
mining
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
JP2021568510A
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 JP2022532764A publication Critical patent/JP2022532764A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or 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/3297Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/46Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
    • G06F7/462Multiplying; dividing
    • G06F7/466Multiplying; dividing by successive multiplication or division by 2
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • 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
    • 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/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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (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つまたは複数のノードによって実施されてよい。非並列化可能な、本質的に逐次的なアルゴリズムは、以下の演算、すなわち、再帰演算、べき剰余、および/または反復2乗演算のうちの少なくとも1つ、またはそれらの組合せを備える。

Description

本開示は、一般に、ネットワーク内で実行される計算タスクに対する処理効率、信頼性、セキュリティ、およびリソース要件を改善するための方法およびシステムに関する。本開示は、詳細には、限定はしないが、ブロックチェーン関連のマイニング、検証、およびリソース譲渡に関する使用に適する。
本明細書では、すべての形態の電子的なコンピュータベースの分散台帳を含むように「ブロックチェーン」という用語を使用する。これらは、合意ベースのブロックチェーンおよびトランザクションチェーン技術、パーミッション型台帳および非パーミッション型台帳、共有台帳、パブリックブロックチェーンおよびプライベートブロックチェーン、ならびにそれらの変形を含む。ブロックチェーン技術の最も広く知られている適用例はBitcoin台帳であるが、他のブロックチェーン実装形態が提案および開発されている。便宜および例示の目的のために本明細書でBitcoinが参照されることがあるが、本開示がBitcoinブロックチェーンを伴う使用に限定されず、また代替のブロックチェーン実装形態およびプロトコルが本開示の範囲内に入ることに留意されたい。「ユーザ」という用語は、本明細書では人間またはプロセッサベースのリソースを指してよい。"Bitcoin"という用語は、本明細書ではBitcoinプロトコルから派生するかまたはBitcoinプロトコルに基づく任意のバージョンまたは変形を含むように使用される。
ブロックチェーンは、ブロックから構成される、コンピュータベースの非集中的な分散システムとして実施されるピアツーピア電子台帳であり、ブロックはトランザクションから構成される。各トランザクションは、ブロックチェーンシステムにおける参加者の間でのデジタル資産/リソースの制御の譲渡を符号化するデータ構造であり、少なくとも1つの入力および少なくとも1つの出力を含む。各ブロックは、そのブロックに対する前のブロックのハッシュを含み、一緒にチェーン状になって、その始まりからブロックチェーンに書き込まれているすべてのトランザクションの、永続的な変更できないレコードを作成する。トランザクションは、それらの入力および出力の中に埋め込まれた、スクリプトと呼ばれる小さいプログラムを含み、トランザクションの出力がどのようにかつ誰によってアクセスできるのかを指定する。Bitcoinプラットフォーム上では、これらのスクリプトはスタックベースのスクリプト言語を使用して書かれる。
ブロックチェーンの中にトランザクションが書き込まれるために、トランザクションは「有効化」されなければならない。ネットワーク上のノード(「マイナー」)は、各トランザクションが有効であることを保証し、無効なトランザクションはネットワークから拒絶される。ノード上にインストールされたソフトウェアクライアントは、トランザクションがブロックチェーンのプロトコル規則に準拠することをチェックすることによって、また同様にロッキングスクリプトおよび対応するアンロッキングスクリプトを実行することによって、消費されていないトランザクションに対してこの有効化作業を実行する。ロッキングスクリプトおよびアンロッキングスクリプトの実行がTRUEと評価する場合、トランザクションは有効である。したがって、ブロックチェーンの中にトランザクションが書き込まれるために、トランザクションは、i)トランザクションを受信する第1のノードによって有効化されなければならず、トランザクションが有効化される場合、マイニングノードがそれをネットワークの中の他のノードへ中継し、ii)マイナーによって構築された新たなブロックに追加されなければならず、iii)マイニング、すなわち、過去のトランザクションのパブリック台帳に追加されなければならない。
新たなブロックを構築するために、マイナーは、(当技術分野で「パズル」または「チャレンジ」と呼ばれることがある)計算に対する解("PoW"または「ノンス」とも呼ばれるプルーフオブワーク)を最初に見つけることを目的として、リソース集約的な作業を実行することによって競合する。パズルの困難さは、新たなブロックがブロックチェーンに追加されるレートに影響を及ぼすように経時的に調整することができる。このことは、解を見つけることがどのくらい困難であるのかに影響を及ぼす変更可能な困難パラメータを使用して実行され、その結果、プロトコルは、ネットワークのハッシュパワーが変化するにつれて、比較的一貫したレートで新たなブロックの間の平均時間を維持することができる。Bitcoinでは、マイナーは、PoWを見つけるためにSHA256ハッシュアルゴリズムを使用し、PoWは、ハッシュされたとき、ネットワークプロトコルによって設定された現在の困難レベル(パラメータ)よりも小さいかまたはそれに等しいハッシュ値を作り出す。
マイナーが現在のパズルに対するPoWを最初に見つける場合、そのマイナーは新たなブロックを生成し、新たなブロックは、次いで、ネットワーク上の他のマイナーへ、メッセージの中でブロードキャストされる。新たなブロックは、他のマイナーがそれを有効として受け入れることになる場合、検証可能なPoWを含まなければならない。したがって、マイニングは合意メカニズムを提供し、合意メカニズムは、ネットワーク上のノードが同期されるとともにブロックチェーンの正当かつ現在の状態に関して承認していることを保証する。マイニングはまた、いくつかのタイプの潜在的なネットワーク攻撃に対して保護し、ネットワークにセキュリティをもたらす。
Bitcoinの初期の段階では、マイニングの計算要件は、マイナーが標準的なCPUを備える汎用コンピュータを使用できるほど十分に小さかった。しかしながら、より強力なコンピュータを用いるマイナーは、非力なコンピュータを用いるマイナーにまさって競争上の利点を有する。このインセンティブは、パズル困難さの歴史的な増大と組み合わせられて、特定用途向け集積回路(ASIC)マイニングデバイスの広範な使用をもたらしている。その上、PoW解を見つけることに関わる作業を共有するために、ASICデバイスのグループは連結することができる。そのような場合、異なるPoWノンスまたはそれらの範囲を試すために、異なるマシンが使用されることが可能である。したがって、マイニングアルゴリズムはデバイスにわたって並列化することができる。
しかしながら、より強力なデバイスはより高価であり、動作および冷却のためにより多くのエネルギーを必要とする。ハードウェア不均衡がネットワーク内でのマイニングパワーの潜在的な集中化を助長し、可能性のある欠点または脆弱性につながることを唱えている人もいる。これらの懸念は、「ASICに負けない」マイニング解決策の発展における興味を促している。しかしながら、提案された解決策は、衝突に負けないSHA256ハッシュアルゴリズムを、いわゆる「帯域幅に厳しい」関数に変更するための、PoWアルゴリズムの修正を伴い、成果は限定されるかまたは論争の余地がある。
したがって、必要とされるコスト、エネルギー使用量、および計算リソースを低減し、かつ非集中型ネットワークの利点を維持しながら、ブロックチェーンネットワーク上の競合するノードによって提供される合意メカニズムおよびセキュリティをどのように維持するのかという、(少なくとも)技術的課題を解決する必要がある。
本開示は、非並列化可能合意メカニズムを使用する、非並列化マイニング(NPM:non-parallelised mining)技法、ハードウェアおよびソフトウェア構成、ネットワーキング技術および方法、ならびにそれらの組合せを備える、態様および実施形態を提供することによって、少なくともこれらの技術的懸念に対処する。本開示は、ブロックチェーンにセキュリティをもたらし、かつブロックチェーンの状態における合意を確立するために、本質的に逐次的なアルゴリズムを使用してよい。
本明細書では、他の処理が並行して実行することなく初めから終わりまで順々に実行されなければならないアルゴリズムを指すために、「逐次的アルゴリズム」という用語を使用する。例は、Newtonの方法(Lipson、John D.、"Newton's method: a great algebraic algorithm"、記号的および代数的な計算における第3回ACMシンポジウムの議事録、ACM、1976)などの反復数値法、および再帰式を使用して数学的に表現できるアルゴリズムを含む。
「本質的に逐次的な」(または、本明細書で呼ばれることもあるような「非並列化可能な」)アルゴリズムという用語は、並列化可能ルーチン/サブルーチンを使用して最適化できない逐次的アルゴリズムを指すために、本明細書で使用される。その句は本技術分野内で厳格には定義されていないが、本明細書で使用する定義(「調整可能困難マイニング関数」における以下の詳細な説明を参照)は、文献(Greenlaw、Raymond、"A model classifying algorithms as inherently sequential with applications to graph searching"、情報および計算97.2 (1992): 133-149)の中に存在する用語および定義の直感的な使用と互換性があることに留意されたい。
Lipson、John D.、"Newton's method: a great algebraic algorithm"、記号的および代数的な計算における第3回ACMシンポジウムの議事録、ACM、1976 Greenlaw、Raymond、"A model classifying algorithms as inherently sequential with applications to graph searching"、情報および計算97.2 (1992): 133~149 Rivest、Ronald L., Adi Shamir、およびDavid A.Wagner、"Time-lock puzzles and timed-release crypto"、(1996)
図1を参照すると、本開示は、ブロックチェーンマイニングのための代替および改善されたシステムおよび方法を提供する。ブロックチェーン台帳に追加されることになるブロックチェーントランザクション(UTXO)をマイニングするために、非並列化可能マイニング関数またはアルゴリズムが使用される。
要約として、このことは以下のことによって達成することができる。
[ステップ1]: トランザクション(UTXO)の多数状態から1つまたは複数のトランザクション(UTXO)を識別する。この多数状態は、ブロックチェーンに関連するブロックチェーンプロトコル、ブロックチェーンプロトコルおよびブロックチェーンネットワークによる、メモプール(mempool)であってよい。1つまたは複数の実施形態では、これはプルーフオブワークブロックチェーン/プロトコル/ネットワークである。
[ステップ2]: 適用可能な場合、プロトコルに従って報酬トランザクション(TX0)を生成する。
[ステップ3]: 選択されたトランザクション(すなわち、ブロック)の表記Rを生成する。
[ステップ4]: ブロックに対する計算解の証明である計算出力Cを提供するために非並列化可能マイニングアルゴリズムを使用する。これは、プルーフオブワーク解と呼ばれることもある。
[ステップ5]: ブロックチェーンネットワーク上のノードへメッセージを送信し、メッセージは、表記、解C、およびTX0(適用可能な場合)を備える。
[ステップ6]: メッセージの受信時に、ネットワークノードはブロックを検証することを試行する。ネットワーク上のマイナーの大多数によって検証される場合、ブロックはブロックチェーンに追加され、そうでない場合、ブロックは拒絶されブロックチェーンに追加されない。
次に、単に例として、また添付の図面を参照しながら、本開示の態様および実施形態が説明される。
本開示の実施形態の概要を示すフローチャートである。 様々な実施形態が実装できる計算環境を示す概略図である。
ここで、非並列化マイニング(NPM)ブロックチェーンと呼ばれることがある、トランザクションデータのパブリックな時間順序台帳に対する一般化された構造を備える、本開示の一態様を説明する。それは以下の要素を備える。
I. ブロック内に存在するトランザクション、
II. トランザクションのセットを備えるブロック、および
III. ブロック間の暗号化リンク。
一緒に取り上げられると、これらの要素は結合してブロックチェーン台帳を形成し、それによって、すべてのトランザクションデータは、連続するブロックが互いに関係するような標準形式のブロックの中に集約され、前のブロックへの暗号化リンク(たとえば、ハッシュ)を含めることによってチェーンを形成する。
例示的な実施形態の構成要素
次に、本開示の1つまたは複数の実施形態に従って利用されてよい構成要素、およびそれらを参照するために本明細書で使用される用語を説明する。
ブロックチェーントランザクション(TX)とは、第1の当事者から第2の当事者へのいくつかのデジタル資産またはリソースの譲渡を符号化する、標準化されたデータ構造である。高レベルにおいて、各トランザクションは入力および出力を備える。トランザクションの入力は各々、以下の情報を指定する。
i. レコードへのポインタ、すなわち、デジタル資産が存在する台帳上の以前の出力。
ii. 資産の所有権を譲渡する(すなわち、それを消費する)ための権限を送信者(すなわち、第1の当事者)に与える、必須のアンロッキング条件。これは、通常、デジタル署名、または第1の当事者にしか知られていない秘密である。
トランザクションの出力は各々、以下の情報を指定する。
i. デジタル資産の所有権が譲渡される先の受領者(すなわち、第2の当事者)。
ii. その次に受領者がどのようにロック解除してよいのか、したがって、デジタル資産を「消費」してよいのかを指定する、ロッキング条件。
ブロックチェーン台帳上に記録されることになる各トランザクションは、一意識別子が割り当てられる。本明細書における1つまたは複数の例示的な実施形態に対して使用するために選ぶ識別子は、トランザクション識別子と称する。識別子は、トランザクションTXと第2のパラメータXとのハッシュである。
Y(TX,X)=H(TX||X)
パラメータXは、前のブロックヘッダのハッシュである。トランザクションはまた、マイナー/ネットワークノードがいつそれらを最初に見たのかではなく、トランザクションがいつ最初に作成されたのかに依存する、タイムスタンプTTXを含む。
加えて、各トランザクションは、それらがいつ作成されたのかを知らせるためのタイムスタンプを含む。本開示で説明するブロックチェーン実施形態によって使用される非並列化マイニングアルゴリズムは、タイムスタンプ付きのトランザクションを使用する。
TX0と示される報酬トランザクションは、各ブロックの中の最初のトランザクションであり、新たに鋳造されたNPMコインを、有効なブロックを最初に作り出すマイナーに配布する。1つの入力しか有することができないという事実を除いて、報酬トランザクションは上記で説明したような標準トランザクションと構造的に同一である。なぜなら、ブロックをマイニングするための全報酬が、標準的なブロック報酬とトランザクション手数料との組合せとして解釈されるからである。このことは、通常の意味での「入力」の必要がなく、したがって、その入力のフィールドがヌルであり任意のデータを記憶するために使用できることを意味する。一般に、報酬トランザクションは、常にブロックの中の最初のトランザクションであるので、タイムスタンプを必要としないことにも留意されたい。
ブロック(B)は、トランザクションのセットを集約する標準化されたデータ構造であり、パブリックブロックチェーンデジタル台帳に付加される。高レベルにおいて、各ブロックは、標準トランザクションのセットS、単一の報酬トランザクション、およびブロックヘッダを備える。トランザクションセットSは、
S:={TX1,TX2,...,TXN}
として書かれる、ブロックの中に含まれるN個のトランザクションの完全セットである。
報酬トランザクションTX0は、各ブロックの中に含まれることがあり、かつそのブロックをブロックチェーンに付加することを担当するマイナーに報酬を与えるために使用されてよい、トランザクションである。このトランザクションは、それらが両方とも同じブロックの中に含まれてもトランザクションセットSの一部とは見なされない。1つまたは複数のプロトコルによれば、所定のマイニングしきい値に到達していると、報酬トランザクションがブロックの中に含められなくてよいこと、または含められることをやめてよいことに、留意されたい。
ブロックヘッダΦは、ブロック番号、ブロックがブロックチェーンに追加された時間、または使用されるブロックチェーンプロトコル規則のバージョンなどの、それが含むトランザクションのブロックに関係するデータの、多くのフィールドを備えてよい。しかしながら、ブロックヘッダの中に出現しなければならない重要な要素は、
i. 暗号化リンクX、
ii. TX0およびトランザクションセットSの表記R:=G(TX0,S)(ただし、Gはアルゴリズムである)、ならびに
iii. マイニングアルゴリズムに対する計算解
Figure 2022532764000002
iv. ブロックタイムスタンプTBである。
アルゴリズムGの要件は、ブロックの中のトランザクションのセットS全体+報酬トランザクションTX0を入力として取らなければならないこと、およびこれらのN+1個のトランザクションを表すために使用できる単一の値Rを戻さなければならないことである。Gに対する好適な選択はMerkleツリー生成アルゴリズムであることになり、ここで、RはMerkleルートに相当することになる。
暗号化リンクは、デジタル署名またはハッシュダイジェストなどの多くの形態のうちの1つを取ることができる。本明細書では、例示のために、また参照しやすいように、暗号化リンクXを前のブロックヘッダのハッシュであるものと見なす。
計算解
Figure 2022532764000003
(すなわち、C)は、非並列化マイニング技法/アルゴリズムの出力として解釈されるべき値である。この解は、ブロックがブロックチェーンに追加され得る前に計算されなければならず、それを伴わないとブロックが有効と見なすことができない、計算の証明を表す。本明細書で説明するPoC解は、BitcoinのPoWパズル解、すなわち「ノンス」と類似なものとして見ることができる。それは本明細書でCと呼ばれることもある。このPoC解は、本開示の実施形態を実施するノードによって解かれる、計算量的に困難であるが確定的な問題に対する大域解である。
ブロックが不変のチェーンを形成するような、意味のあるやり方でブロックを接続するために、あるブロックを次のブロックにリンクする方法がある必要がある。このことは、ブロックとその直接の先行要素との間に暗号化リンクXを構成することによって達成される。そのような暗号化リンクの、必要とされる特性は次の通りである。
i. 各リンクは一方向でなければならない。
ii. 各リンクは厳密に2つのブロックを接続しなければならない。
iii. 接続されるブロックの各ペアは、ブロックチェーンの中で連続的に出現しなければならない。
これらの特徴は、前のブロックヘッダのハッシュとなるように暗号化リンクXを選ぶための基礎を形成し、暗号化リンクXを
Xi:=H(Φi-1)
のように定義し、ただし、インデックスiはブロック番号を示す。ここで、やはり一方向暗号化ハッシュ関数をHによって示している。新たなブロックは、構成されるたびに、それ自体のブロックヘッダΦi内に前のブロックヘッダH(Φi-1)のハッシュを含まなければならない。「前のブロック」という用語は、ブロックチェーンに首尾よく付加されているべき直近のブロックを意味するために、本明細書で使用される。このことは、最初のブロックB0に到達するまでチェーンを通じて最後まで後方へ、新たな各ブロックが順々に最後のブロックに直接接続されることを意味する。
NPMブロックチェーンの状態を支配する規則は、そのプロトコル規則と呼ばれる。これらの規則は以下のように要約することができる。
i. トランザクションのフォーマット、
ii. ブロックのフォーマット、
iii. トランザクションを有効化するための規則、
iv. ブロックを有効化するための規則、および
v. 新たなブロックが(マイニングプロセスを介して)台帳に付加される方法。
トランザクションの有効化
有効なトランザクションは、最も一般的な事例では、プロトコル規則による、受け入れられる標準フォーマットのものでなければならない。トランザクションに対する一般的な規則は以下の通りである。
・入力の合計値は、合計値出力よりも大きいかまたはそれに等しくなければならない。
・トランザクションタイムスタンプは、ブロックタイムスタンプよりも小さいかまたはそれに等しくなければならない。
本明細書で開示するNPMブロックチェーンシステムの実施形態によれば、トランザクションが有効となるために、それ以上の条件が課される必要はない。しかしながら、NPMブロックチェーンの1つまたは複数の実施形態は、デジタル資産所有権が正しく確立できるように、トランザクション当たりのデジタル資産の最大サイズまたは最大譲渡、入力/出力の数における限定、ならびに入力データおよび出力データにおける要件などの、トランザクションに負わせることができる追加の有効化規則を必要とすることがある。
ブロックの有効化
有効なブロックは、以下のものを含まなければならない。
i. 厳密にN個の標準トランザクションのセットS:={TX1,TX2,...,TXN}、
ii. 厳密に1つの報酬トランザクションT0
iii. 前のブロックへの有効な暗号化リンクX、
iv. トランザクションセットSおよびTX0に合致する表記R、ならびに
v. 計算の有効な証明C。
ブロックは、これらの基準のうちの5つすべてを満たす場合、有効でありブロックチェーンに付加されてよい。任意の所与の時間において、報酬トランザクション、および報酬トランザクションがマイニング報酬を誰に支払うのかによって異なるにすぎない、いくつかの有効な候補ブロックがあってよいことに留意されたい。この状況は、複数のマイナーが、適正なPoC証明Cを独立して計算するときに生じる。
マイニングプロセスは、これらの多くの候補ブロックのうちのどの候補ブロックが、すなわち、成功した各マイナーからの候補ブロックが、ブロックチェーンに付加されるのかを決定する役割を果たす。要するに、計算の証明Cを「最初に」見つけるマイナーが常におり、計算の証明Cは、プロトコルのマイニングアルゴリズムに従ってブロックチェーンに付加される、彼らの報酬トランザクションを有する彼らのブロックである。次に、本明細書で開示するNPMマイニングノードおよびNPMブロックチェーンの実施形態によって使用できる非並列化可能マイニング(NPM)方法の説明に、注意を向ける。
非並列化可能合意メカニズム
本開示の実施形態は、ブロックチェーンの状態における合意を非集中的に獲得するために、マイニング技法を利用する。この技法を実施するノードは、新たなブロックをブロックチェーンに追加するために、非並列化可能な(本質的に逐次的な、または「困惑するほど逐次的な(embarrassingly sequential)」とも呼ばれる)アルゴリズムを使用する。また、ブロックチェーンの状態における合意は、規則的な間隔で獲得される。
このことは、ネットワーク全体が、並列計算に負けないアルゴリズムを使用して新たなブロックを承認できることを保証し、少なくとも上述の技術的困難を回避する。今度は、このことは、CPUクラスタリング、またはハードウェアにおける不均衡を通じて、マイニングする任意のエンティティまたはグループがネットワークの支配(したがって、潜在的な制御)を高めることを困難にする。
非並列化マイニング手法は、ネットワーク上のすべてのマイナーが候補ブロックに対するPoC解を最初に見つけるように競合することを必要とする。これらのノードは、少なくとも以下の要件を含むことができるプロトコル規則を採用する。
1. マイナーは、ブロックの中の厳密にN個のトランザクションをマイニングすることを試行し、ただし、Nは所定の定数である。
2. マイナーは、各サイクルの中の同一の候補ブロックをマイニングすることを試行する。
3. マイニングサイクル時間:
a. マイニングサイクル時間に対する期待値は、常にブロック有効化時間よりも長い。
b. マイニングサイクル時間の中にランダムな分散がある。
4. 以下でより詳細に説明するように、ネットワークレイテンシは十分に小さい。
事前合意の獲得
マイナーは、彼らの候補ブロックの中に含められるべきトランザクションの同じセットを承認する必要がある。言い換えれば、マイナーは、彼らの候補ブロックの中に含められるべきトランザクションのセットおよび順序を承認する。このことを達成するために、ノードは少なくとも以下の規則を実施する。
・各トランザクションは、作成の時点においてタイムスタンプが付けられる。
・すべてのトランザクションは、それらのタイムスタンプによって順序付けられる。
・プロトコルは、候補ブロックごとにタイムスタンプによって表される瞬間を識別することができる。ブロックBiに対してこのタイムスタンプをTBiと呼ぶ。
悪意のあるユーザが必要以上にずっと早いタイムスタンプを選ぶことを防止するために、本開示の一実施形態によるプロトコルは、ブロックチェーン上にすでに記録されている、すなわち、ブロックチェーンに追加された、前のブロックタイムスタンプよりも早いタイムスタンプを有するいかなるトランザクションも、ノードが拒絶することを必要とする。このことは、すべてのマイナーが、(Bitcoinにおけるコインベーストランザクションの類似として見ることができる)報酬トランザクションを除いて、彼らの候補ブロックの中にトランザクションの同じセットを有することを保証する。
共通トランザクションセット
1つまたは複数の実施形態によれば、ネットワーク上のすべてのマイニングノードは、次のブロックの中に含められるべきトランザクションの同じセット(動的メモプール)を有する。このことは、すべてのマイナーが、(報酬トランザクション以外の)同一のトランザクションを含むブロックをマイニングすることを試行することを保証する。このことは、少なくとも次の条件を必要とする。
・各トランザクションは、作成の時点においてタイムスタンプが付けられる。
・すべてのトランザクションは、それらのタイムスタンプによって順序付けられる(大域トランザクション順序付け)。
・TBiよりも早いタイムスタンプを有するすべてのトランザクションが、ブロックBiの中に含められなければならない。
各ブロックBiの中でマイニングされるトランザクションの数Niは、
Figure 2022532764000004
の間に見られる(かつ有効化された)トランザクションの総数に等しい。このことは、以下でより詳細に説明される。
これらの条件がネットワーク合意の確立を可能にする。悪意のある当事者が必要以上に早いタイムスタンプを選ぶことを防止するために、プロトコルは、前のブロックのタイムスタンプよりも早いタイムスタンプを有するいかなるトランザクションも拒絶されることを必要とする。このことは、各マイナーが、報酬トランザクションを除いて、彼らの候補ブロックの中のトランザクションの厳密に同じセットを有することを保証する。
調整可能困難マイニング関数
マイニング関数の中で実行される演算の数によって困難さが見積もられる。標準的なマイニング関数は以下のように定義することができる。
F(Y1,…,YN,X,t)
ただし、{Y1,...,YN}は、N個のトランザクション識別子のセットであり、Xは、前のブロックハッシュであり、tは、ブロックヘッダの中に含まれる困難パラメータである。本明細書で開示するマイニングプロトコルまたはマイニング関数の重要な特徴は、以下を含む。
・非並列化可能アルゴリズム: アルゴリズムは、並列ではなく順々に実行されることだけが可能である中間出力の計算を必要とし、中間出力の計算は、前の中間計算の出力である入力を取り、今度はその結果/出力を後続の中間計算に提供する。停止条件に遭遇するまで、このことが反復してよい。
・調整可能な計算困難さは、整数パラメータtを使用する。
・入力は、トランザクション識別子/ブロックヘッダハッシュおよび困難パラメータを含む。
・Fを計算することは、算術演算のターゲット数Kを必要とする。
非並列化可能アルゴリズムの規範的な例は再帰式であり、ここで、関数の出力は、同じかまたは別の関数の次のインスタンス化における入力として使用される。別の例は、べき剰余または反復2乗である。~Rivest、Ronald L., Adi Shamir、およびDavid A.Wagner、"Time-lock puzzles and timed-release crypto"、(1996)を参照。
再帰と、べき剰余の両方を使用するアルゴリズムの一例が、例として次のように提供される。
{Y0,...,YN}を前提として、
Figure 2022532764000005
を計算し、0からN-1までのiに対して、
Figure 2022532764000006
を計算し、ここでアルゴリズムの実行がYNSを生み出す。この場合、マイニング関数は、
F(Y1,…,YN,X,t)=YNS
としてコンパクトに書くことができる。
マイニング演算ターゲット
大域トランザクションセットおよびマイニング関数は、マイナーがK個の算術演算を実行することを必要とし、ただし、
K=K(N,t)
である。
このことは、ブロック生成時間TGが一貫しておりネットワークによって制御できることを保証する。FがN回の再帰を伴う関数であると仮定すると、KはNにおいて線形であり、困難パラメータtは調整可能でありトランザクションに直接依存せず、その結果、広い範囲のK値が獲得できる。
一例として、上記で説明したようなFを使用して、困難さがt=1000であると考える。このとき、Fを計算することは、YiSごとに2×1000=2000回の反復2乗演算を必要とし、したがって、K=O(2000N)である。代替として、t=1の場合、K=O(2N)である。tは、調整することができ、ブロックヘッダの中に含めることができる。
例1:ブロック当たりのトランザクションの最大数
マイニング技法の一実装形態は、ブロックの中に多くてN個のトランザクションを必要とし、ただし、Nは定数値である。Nを固定することによって、Kの変動性はt単体を通じて制御することができる。
このことはマイナーの計算時間を増やすことになり、彼らの、ブロックを首尾よくマイニングする最初のマイナーとなる確率を低減することになるので、マイナーがまた、ブロックの中にN個よりも多くのトランザクションを含めるように動機づけられないことに留意する価値がある。
ダミートランザクション識別子
メモプールの中の利用可能なトランザクションの数がN個未満である場合には、ダミートランザクション識別子を定義することができる。メモプールの中のトランザクションの総数が、トランザクション識別子Y1,...,Ynを伴うn(n≦N)であることを想定する。シードとしてYnを使用することによって生成されるハッシュチェーンとして、ダミートランザクション識別子のシーケンスを作成する。
Yn+i+1=H(Yn+i||X)
これらのダミートランザクション識別子は、次いで、マイニング関数の中で標準トランザクション識別子と一緒に入力として使用される。ダミートランザクション識別子が逐次的にしか生成できないことに留意されたい。
例2:ブロックごとの可変数のトランザクション
代替実装形態は、ブロックごとに
Figure 2022532764000007
を固定することによって、可変のN値を可能にする。この場合、Kを効果的に制御するために、tはNに依存しなければならず、すなわち、
K=K(N,t)、t=g(N)
であり、ただし、gはNの単関数である。その結果、ダミートランザクション識別子を計算する必要がないことになる。しかしながら、トランザクションボリュームにおける広い範囲を処理するために、tはブロックごとに大幅に変化してよい。
ネットワークレイテンシ
ネットワークレイテンシは、無視できるかまたは適度に0に近いことが好ましい。このことは、あるマイニングノードから別のマイニングノードへ送信されるメッセージが、短い時間期間の中でネットワーク全体を横断して伝搬されることを意味する。より詳細には、メッセージ伝送時間は、マイナー間の分散マイニングサイクル時間よりもずっと短くすべきであり、
ネットワークレイテンシ<<σ2(TG)
となり、ただし、σ2(TG)は、ネットワークに対するブロック生成時間の分散である。この分散がマイナー間の逐次計算速度の差分にすぎないことを想起する。第1のマイナーAliceが(マイニングサイクル分散に起因して)第2のマイナーBobの前に計算解の成功した証明を取得する場合、Aliceの解メッセージを受信する前にBobもその解を見つけている可能性が低い十分短い時間の中で、Aliceは彼女の解をBobに伝搬させることができる必要があることが、ほぼ確実となる必要がある。
マイニングサイクル
候補ブロックの構成~マイナーAlice
図1を参照すると、
Figure 2022532764000008
を前提として、ステップ1においてAliceは時間区間
Figure 2022532764000009
の中で作成されたすべてのトランザクション、たとえば、{TX1,...,TXN}を彼女のメモプールの中に集め、ただし、E(TG)は、上記で説明したような、ネットワーク上のブロックにとっての予想されるブロック生成時間である。
Figure 2022532764000010
をブロックBiに対するトランザクション時間ウィンドウと呼ぶ。
広い範囲のトランザクション時間を設定することにより、ブロック生成時間の変動が許容される。Biに対するブロックタイムスタンプが、トランザクション時間ウィンドウ上限よりも小さくなること、すなわち、
Figure 2022532764000011
が想定される。
ブロック生成時間が3E(TG)を超える場合には、~そのことは極めて可能性が低い~トランザクションは、時間範囲
Figure 2022532764000012
の中ではネットワークによって除外/中継されてはならない。
彼女は、次いで、次のように進む。
2. ステップ2: Aliceは、報酬トランザクションTX0を構成する。報酬トランザクションはブロックの中に常に含まれるとは限らなくてよいので、このステップが任意であることに留意されたい。
3. ステップ3: Aliceは、報酬トランザクションが含められることになる場合は報酬トランザクションを除いて、ブロックの中のすべてのトランザクションの表記Rを計算する。
4. ステップ4: Aliceは、以下のような非並列化可能マイニング技法の一実施形態を実行することによってブロックをマイニングする。
Figure 2022532764000013
5. ステップ5: Aliceは、C=YNSと設定する~ブロックに対する計算解。
6. ステップ6: Aliceは、
Figure 2022532764000014
をネットワークへ伝搬させる。彼女は、計算の証明(PoC:Proof-of-Computation)メッセージをノードへ送信することによってこのことを行う。
7. ステップ7: マイニングノードは、Aliceによって提供されたPoC Cをテストし、適正かつ有効としてNPMネットワークによって受け入れられる場合、AliceのブロックはNPMブロックチェーンに追加される。
注: 明快のために、また理解しやすいように、上記で説明した例示的なマイニング関数を使用した。しかしながら、概して、ステップ2は計算の証明Cを見つけるためのFの実行である。
検証
h(C)を検証するために、マイナーは計算解の証明Cを見つけなければならない。AliceのPoCメッセージの受信時に、他のマイナーは、彼ら自身の解を見つけるための彼らの作業を続ける。マイナーが彼自身の解を見つけると、彼はそれをAliceの解と比較して、彼女のバージョンのCの検証を実行することができる。彼は、彼女の報酬トランザクションを追加しブロックヘッダのハッシュ値をh(Bi)と比較することによってAliceのブロックを構成することによって、このことを行う。それらが等しい場合、Bobは計算のすべての他のスレッドを削除し、Aliceのブロックが適正なブロックであることを想定するスレッドを計算し続ける。それらが等しくない場合、Bobは、ハッシュ値に整合する、次に受信されるYM値のスレッドを見つけ、そのスレッドから続ける。
Bobは、Aliceと同じくらい速やかに新たなブロックをマイニングするように動機づけられ、そうでなければ、Aliceは、すべての報酬を主張するための最も長いチェーンを作り出すことができる。
マイニングサイクル時間
ブロック生成時間
ブロック生成サイクル時間Ti Gは、Ti Gによって示される、提案されるマイニング関数Fを使用してブロックを生成するためにいくつかの第iのマイナーによって費やされる時間である。ブロック生成時間は、所与のマイナーが候補ブロックに対して計算の適正な証明Cを計算するために費やされる時間である。
このサイクル時間Ti Gが、継続的な正規分布確率変数であるものと想定する。マイニングサイクル時間における期待値、分散、および標準偏差が、それぞれ、以下のように示される。
E(TG)、σ2(TG)、σ(TG)。
ブロック生成時間は、期待値がスケーリングされて実装形態による持続時間になることができることを意味する、マイニング技法のパラメータである。たとえば、ある実施形態におけるE(TG)~10分対別の実施形態におけるE(TG)~1分と設定することが望ましい場合がある。いずれの場合も、不等式のセット
E(TG)∝m、
m∝N、m∝t
によれば、期待時間はマイニング技法において実行される演算の数mを増やすことによってスケーリングされ、ただし、Nはブロックの中のトランザクションの数であり、tは困難パラメータである。
ブロック有効化時間
2人のマイナーMAおよびMBが、同じ候補ブロックをマイニングすることを試行することを検討する。これらのマイナーがブロックを首尾よくマイニングするために費やされる、観測される時間は、それぞれ、TA GおよびTB Gによって示され、これらは両方とも上記で規定された正規分布によって支配される。
所与のサイクルに対して、TA G<TB Gの場合、MAは、定義によって候補ブロックを首尾よくマイニングすべき第1のマイナーである。第1のマイナーMAが彼らの計算の証明CAを計算およびブロードキャストすることによって所与のブロックを首尾よくマイニングしていると、第2のマイナーMB(および、すべての他のマイナー)は、マイニングサイクルを独立して完了すること、およびMAによって提供される証明が、独立して計算された彼らの証明CBに等しいことを検証することによって、ブロックを有効化する。CB=CAの場合、第2のマイナーによってブロックは有効と見なされる。第2のマイナーMBがこの有効化プロセスを実行するために費やされる時間は、
Figure 2022532764000015
によって示され、または第iのマイナーのブロックにおいて有効化を実行する任意の第jのマイナーに対する一般的な事例では、
Figure 2022532764000016
によって示される。
マイナーの十分に大きいネットワークに対して、ブロック有効化時間
Figure 2022532764000017
は、その期待値、分散、および標準偏差が同一である2つの独立した正規分布確率変数Ti G
とTj Gとの組合せとして構成できるので、やはり正規分布確率変数であると想定することができる。したがって、ブロック有効化時間の期待値、分散、および標準偏差は、以下の関係、すなわち、
Figure 2022532764000018
によって与えられる。
Tj Gのうちの99.7%が、E(TG)の3標準偏差内に存在することを仮定すると、
Figure 2022532764000019
という近似を行うことができる。
上記で説明した最小生成時間の想定を与えると、予想されるブロック時間は、
Figure 2022532764000020
として計算することができ、標準偏差
Figure 2022532764000021
は、有効化時間に対する範囲が
Figure 2022532764000022
となることを意味し、そのことは、最悪状況、すなわち、
(i) MAが最初にマイニングアルゴリズムを完了し、かつMBができるだけ遅くアルゴリズムを完了すること[RHS条件]、および
(ii) MAが任意の時間においてマイニングアルゴリズムを完了し、かつMBが短い時間だけ後にアルゴリズムを完了すること[LHS条件]、
によって有効化時間を制限するものとして理解することができる。
したがって、本マイニングアルゴリズムの1つまたは複数の実施形態では、ブロック生成時間スケールTi G
は、ブロック有効化時間スケール
Figure 2022532764000023
よりも著しく大きい。その想定を
Figure 2022532764000024
のように書くこと、およびブロック有効化時間を規定する不等式を使用してこれを
Figure 2022532764000025
のように書き直すことによって、このことがブロック生成時間の分布における切迫についての想定であることがわかる。
したがって、参加しているネットワークノードにとって、ブロック生成時間における分散は期待ブロック生成時間自体よりも著しく短い。予想される分散が数秒であって、E(TG)~10分という基準期待時間を前提とすると、これは妥当な想定である。
実際には、マイニング技法は、結果として3つの共通シナリオのうちの1つになることがある。それぞれ、表記MAおよびMBが与えられる、誠実なマイナーAliceおよびBobの観点から、これらのシナリオが詳述される。典型的な非並列化マイニングサイクル中にマイナーがどのように挙動し互いに相互作用することになるのかを示すために、悪意のある第3のマイナーMM(Mallory)も含める。
シナリオ1: 最初にAliceが首尾よくマイニングするとともに有効なブロックをブロードキャストする
Aliceは、いかなる他の成功したブロックがマイニングされていることを聞くこともなく、独立してマイニングサイクルの終了に到達し、彼女のブロックをネットワークへブロードキャストする。
最初にAliceがBobから有効なブロックを受信する
Aliceは、別のマイナーBobからブロックを受信する。彼女は、Bobのブロックを並行して有効化しながら、彼女自身のブロックをマイニングし続ける。
マイニングおよび有効化が並行して行われるにすぎないことに留意されたい~マイニングアルゴリズム自体は並列化可能でない。想定、TA G>Tα Gを使用すると、Aliceは代替物をマイニングする前にBobのブロックを有効化することができる。
最初にAliceがMalloryから無効なブロックを受信する
Aliceは、悪意のあるマイナーMalloryからブロックを受信する。彼女は、Malloryのブロックを並行して有効化しながら、彼女自身のブロックをマイニングし続ける。マイニングおよび有効化が並行して行われるにすぎないことに留意されたい~マイニングアルゴリズム自体はいかなる時点においても並列化可能でない。
DoS攻撃の可能性
マイナーが計算解を送信するたびにマイナーが新たなスレッドをオープンすることを必要とされることを仮定すると、サービス拒否攻撃などの悪用が起動される可能性がある。このことは、いくつかの規則または制約を適用することによって対処することができる。
1. マイナー当たり1つのPoCメッセージしか他のノードによって受け入れられない。
2. マイニングノードは、ネットワーク上で最後のブロックがマイニングされてから十分な時間が経過した後にのみ、PoCメッセージを受け入れることができる。
1つまたは複数の知られているスパム防御が、個々のマイナーが多数の計算スレッドをオープンするように強制されることを防止するために使用されることが可能である。
例示的な、本開示の列挙される実施形態:
1. コンピュータまたはブロックチェーン実装(マイニング)方法であって、
計算困難パラメータ、
少なくとも1つのブロックチェーントランザクションのハッシュ、および/または
少なくとも1つのブロックチェーンブロックヘッダのハッシュ
に基づいて出力を計算するために、非並列化可能アルゴリズムを使用するステップを備える。
非並列化可能アルゴリズムは、逐次的アルゴリズムまたは本質的に逐次的なアルゴリズムと呼ばれることがある。出力は、ある値であってよい。出力は、(代替として、「チャレンジ」、「計算チャレンジ」、または「問題」と呼ばれることがある)パズルに対する解であってよい。出力は、関数または方法の出力であってよい。アルゴリズムは、ブロックチェーンネットワークの1つまたは複数のノードによって実行されてよい。これらはマイニングノードであってよい。アルゴリズムへの入力として、計算困難パラメータならびにトランザクションハッシュおよびブロックヘッダハッシュが使用されてよい。他の入力もアルゴリズムに提供されてよい。出力は、ブロックチェーン上のノードに提供されてよい。
方法は、ブロックチェーンセキュリティ方法、ブロックチェーンマイニング方法、非並列化可能合意メカニズム/方法、ブロックチェーン合意方法、および/またはブロックチェーン実装ブロック生成方法として説明されることがある。
2. 1による方法であって、出力、または出力であるかもしくは出力を備える表記を、ブロックチェーンノードのネットワークへ送信するステップをさらに備える。出力の表記は、出力のハッシュを備えてよい。ノードは、ブロックチェーンネットワークのマイニングノードであってよい。
3. 1または2による方法であって、出力を取得するための非並列化可能アルゴリズムは、以下の演算、すなわち、
再帰演算、
べき剰余、
反復2乗演算
のうちの少なくとも1つを備えてよい。
したがって、NPMアルゴリズムは、これらの演算のうちの1つ、全部、またはいくつかの組合せの実行を備えてよく、かつ/またはそれを必要としてよい。
4. 1~3の任意の組合せによる方法であって、ブロックチェーントランザクションのセットから少なくとも1つのブロックチェーントランザクションを選択するステップを備え、少なくとも1つのブロックチェーントランザクションは、少なくとも1つのブロックチェーントランザクションの中で提供されるタイムスタンプに基づいて選択される。
ブロックチェーントランザクションのセットまたは「多数状態」は、「メモプール」と呼ばれることがある。メモプールは、上記で説明したように構成および/または使用されてよい。メモプールは、消費されていない少なくとも1つの出力(UTXO)を備えるブロックチェーントランザクションを備えてよい。同じメモプールが、ブロックチェーンネットワーク上のすべての(マイニング)ノードによって共有されるかまたはアクセス可能であってよい。ノードのうちの1つまたは複数は、セットのノード自体のコピーを有してよい。
5. 4による方法であって、少なくとも1つの選択されたブロックチェーントランザクションは、ブロックチェーンの状態から導出可能または識別可能であるタイムスタンプを備えてよい。
6. 4または5による方法であって、少なくとも1つの選択されたトランザクションは、ブロックチェーン上に記録されているブロックまたはブロックチェーントランザクションのタイムスタンプよりも後のタイムスタンプを備えてよい。
7. 4、5、または6による方法であって、少なくとも1つの選択されたブロックチェーントランザクションの表記を計算するステップをさらに備える。少なくとも1つの選択されたブロックチェーントランザクションの表記は、ハッシュであってよく、またはハッシュを備えてよい。
8. 1~7の任意の組合せによる方法であって、
第1のブロックチェーンネットワークノードから第2のブロックチェーンネットワークノードにおいて出力の表記を受信するステップを備える。方法はまた、第2のブロックチェーンネットワークノードにおいて(受信された)出力を検証することを備えてよい。出力を検証するステップは、受信された出力(またはそれらのバージョン)を第2のブロックチェーンノードによって計算された検証出力と比較するステップを備えてよく、第2のブロックチェーンノードは、第1のブロックチェーンノードと同じ非並列化可能アルゴリズムおよび同じ入力を使用して検証出力を計算する。
9. 8による方法であって、第2のブロックチェーンネットワークノードにおいて出力を検証するステップは、
第2のブロックチェーンネットワークノードにおいて出力を計算することと、
第2のブロックチェーンネットワークノードにおいて出力の表記を生成することと、
第2のブロックチェーンネットワークノードにおいて生成された表記を、第1のブロックチェーンネットワークノードから受信された表記と比較することとを備えてよい。
10. 1~9の任意の組合せによる方法であって、計算困難パラメータは、出力を計算するために非並列化可能アルゴリズムによって必要とされる演算の数に影響を及ぼすか、それを決定するか、および/またはそれを制御する値である。
11. 1~10の任意の組合せによる方法であって、非並列化可能アルゴリズムは、
i)出力を計算するために1つもしくは複数の中間値の計算を必要とし、かつ/または
ii)並列化された複数の計算リソースによって実行できない。
12. 1~11の任意の組合せによる方法であって、1つまたは複数のブロックチェーントランザクションを備えるブロックチェーンブロックを生成するステップを備える。
13. 12による方法であって、ブロックチェーンブロックをブロックチェーンに追加するステップをさらに備える。このことは、新たに生成されたブロックをブロックチェーン上に記録された(すなわち、ブロックチェーンに追加された)以前の(最後の)ブロックに関連付けるための暗号化リンクを使用して、上記で説明したように達成されてよい。
本開示の別の態様によれば、本明細書で説明または特許請求される任意の方法ステップまたは方法ステップの組合せを実行するように構成された、コンピュータ実装システムが提供される。複数のコンピュータ実装ノードを備えるブロックチェーンシステム(ネットワーク)が提供され、ブロックチェーンネットワークの中の各ノードは、
プロセッサと、
実行可能命令を含むメモリとを備え、実行可能命令は、プロセッサによる実行の結果として、本明細書で特許請求または説明されるコンピュータ実装方法の任意の変形形態をシステムに実行させる。
ネットワークは、本明細書で説明するようにブロックチェーンプロトコルを使用して動作するように構成されてよい。
別の態様によれば、コンピュータシステムのプロセッサによって実行される結果として、本明細書で特許請求または説明される任意のバージョンのコンピュータ実装方法をコンピュータシステムに実行させる実行可能命令が記憶されている、非一時的コンピュータ可読記憶媒体が提供される。
次に図2を参照すると、本開示の少なくとも1つの実施形態を実践するために使用されてよい計算デバイス2600の、例示的な簡略化されたブロック図が提供される。様々な実施形態では、計算デバイス2600は、上記で例示および説明したシステムのうちのいずれかを実施するために使用されてよい。たとえば、計算デバイス2600は、支払いサービスもしくは支払いクライアントエンティティに関連する、すなわち、支払いサービスの供給を担当するホストを実施するための、または支払人もしくは受取人の支払いクライアントエンティティを実施するための、ウェブサーバまたは1つもしくは複数のプロセッサもしくは計算デバイスとしての使用のために構成されてよい。したがって、計算デバイス2600は、ポータブル計算デバイス、パーソナルコンピュータ、または任意の電子計算デバイスであってよい。図2に示すように、計算デバイス2600は、1つまたは複数のレベルのキャッシュメモリ、ならびにメインメモリ2608および永続記憶装置2610を含む記憶サブシステム2606と通信するように構成できるメモリコントローラ(一括して2602とラベル付けされる)とともに、1つまたは複数のプロセッサを含んでよい。メインメモリ2608は、図示のようにダイナミックランダムアクセスメモリ(DRAM)2618および読取り専用メモリ(ROM)2620を含むことができる。記憶サブシステム2606およびキャッシュメモリ2602は、本開示で説明するようなトランザクションおよびブロックに関連する詳細などの情報の記憶のために使用されてよい。プロセッサ2602は、本開示で説明するような任意の実施形態のステップまたは機能を提供するために利用されてよい。
プロセッサ2602はまた、1つまたは複数のユーザインターフェース入力デバイス2612と、1つまたは複数のユーザインターフェース出力デバイス2614と、ネットワークインターフェースサブシステム2616と通信することができる。
バスサブシステム2604は、計算デバイス2600の様々な構成要素およびサブシステムが意図したように互いに通信することを可能にするためのメカニズムを提供してよい。バスサブシステム2604は単一のバスとして概略的に図示されるが、バスサブシステムの代替実施形態は複数のバスを利用してよい。
ネットワークインターフェースサブシステム2616は、他の計算デバイスおよびネットワークへのインターフェースを提供してよい。ネットワークインターフェースサブシステム2616は、計算デバイス2600からの他のシステムからデータを受信するとともにそこへデータを送信するためのインターフェースの働きをしてよい。たとえば、ネットワークインターフェースサブシステム2616は、データ技術者がデバイスをネットワークに接続することを可能にしてよく、その結果、データ技術者は、データセンターなどの遠隔ロケーションにいながらデータをデバイスへ送信するとともにデバイスからデータを受信できる場合がある。
ユーザインターフェース入力デバイス2612は、キーボード、統合型のマウス、トラックボール、タッチパッド、またはグラフィックスタブレットなどのポインティングデバイス、スキャナ、バーコードスキャナ、ディスプレイの中に組み込まれたタッチスクリーン、音声認識システム、マイクロフォンなどのオーディオ入力デバイス、および他のタイプの入力デバイスなどの、1つまたは複数のユーザ入力デバイスを含んでよい。概して、「入力デバイス」という用語の使用は、計算デバイス2600に情報を入力するためのすべての可能なタイプのデバイスおよびメカニズムを含むものとする。
1つまたは複数のユーザインターフェース出力デバイス2614は、ディスプレイサブシステム、プリンタ、またはオーディオ出力デバイスなどの非視覚的ディスプレイなどを含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイなどのフラットパネルデバイス、またはプロジェクションデバイスもしくは他のディスプレイデバイスであってよい。概して、「出力デバイス」という用語の使用は、計算デバイス2600から情報を出力するためのすべての可能なタイプのデバイスおよびメカニズムを含むものとする。1つまたは複数のユーザインターフェース出力デバイス2614は、たとえば、説明するプロセスおよびそれらの変形形態を実行するアプリケーションとのユーザ対話が適切であり得るとき、そのような対話を容易にするためのユーザインターフェースを提示するために使用されてよい。
記憶サブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供してよい基本プログラミングおよびデータ構造を記憶するためのコンピュータ可読記憶媒体を設けてよい。アプリケーション(プログラム、コードモジュール、命令)は、1つまたは複数のプロセッサによって実行されたとき、本開示の1つまたは複数の実施形態の機能を提供してよく、記憶サブシステム2606の中に記憶されてよい。これらのアプリケーションモジュールまたは命令は、1つまたは複数のプロセッサ2602によって実行されてよい。記憶サブシステム2606は、追加として、本開示に従って使用されるデータを記憶するためのリポジトリを提供してよい。たとえば、メインメモリ2608およびキャッシュメモリ2602は、プログラムおよびデータのための揮発性ストレージを提供することができる。永続記憶装置2610は、プログラムおよびデータのための永続的な(不揮発性の)ストレージを提供することができ、フラッシュメモリ、1つまたは複数のソリッドステートドライブ、1つまたは複数の磁気ハードディスクドライブ、関連するリムーバブル媒体を伴う1つまたは複数のフロッピーディスクドライブ、関連するリムーバブル媒体を伴う1つまたは複数の光ドライブ(たとえば、CD-ROMまたはDVDまたはBlue-Ray)ドライブ、および他の同様の記憶媒体を含んでよい。そのようなプログラムおよびデータは、本開示で説明するような1つまたは複数の実施形態のステップを実行するためのプログラム、ならびに本開示で説明するようなトランザクションおよびブロックに関連するデータを含むことができる。
計算デバイス2600は、ポータブルコンピュータデバイス、タブレットコンピュータ、ワークステーション、または以下で説明する任意の他のデバイスを含む、様々なタイプのものであってよい。追加として、計算デバイス2600は、1つまたは複数のポート(たとえば、USB、ヘッドフォンジャック、Lightningコネクタなど)を通じて計算デバイス2600に接続されてよい別のデバイスを含んでよい。計算デバイス2600に接続されてよいデバイスは、光ファイバコネクタを受け入れるように構成された複数のポートを含んでよい。したがって、このデバイスは、処理のためにデバイスを計算デバイス2600に接続するポートを通じて送信されることがある電気信号に、光信号を変換するように構成されてよい。コンピュータおよびネットワークの絶え間なく変化する性質に起因して、図2に示す計算デバイス2600の説明は、デバイスの好ましい実施形態を示すための具体例として意図されるにすぎない。図2に示すシステムよりも多数または少数の構成要素を有する多くの他の構成が可能である。
上述の実施形態が本開示を限定するのではなく本開示を例示すること、および添付の特許請求の範囲によって定義されるような本開示の範囲を逸脱することなく、当業者が多くの代替実施形態を設計できることに留意されたい。特許請求の範囲では、丸括弧の中に置かれた任意の参照符号は、特許請求の範囲を限定するものとして解釈されてはならない。「備えること(comprising)」および「備える(comprises)」などの語は、全体として任意の請求項または明細書の中で列挙されるもの以外の要素またはステップの存在を排除しない。本明細書では、「備える(comprises)」とは「~を含むか、または~から構成される(includes or consists of)」を意味し、「備えること(comprising)」とは「~を含むこと、または~から構成されること(including or consisting of)」を意味する。本明細書全体にわたって、「備える(comprise)」という語、または「含む(includes)」、「備える(comprises)」、もしくは「備えること(comprising)」などの変形は、任意の他の要素、整数、もしくはステップ、または要素、整数、もしくはステップのグループの除外ではなく、述べられた要素、整数、もしくはステップ、または要素、整数、もしくはステップのグループの包含を暗示するものと理解される。要素の単数形の言及は、そのような要素の複数形の言及を排除せず、逆も同様である。本開示は、いくつかの異なる要素を備えるハードウェアによって、また好適にプログラムされたコンピュータによって、実施されてよい。いくつかの手段を列挙するデバイス請求項では、これらの手段のうちのいくつかは、ハードウェアの1つの同じ部材によって埋め込まれてよい。相互に異なる従属請求項の中にいくつかの方策が記載されるという単なる事実は、これらの方策の組合せが、利益をもたらすために使用できないことを示すものではない。
2600 計算デバイス
2602 プロセッサ
2604 バスサブシステム
2606 記憶サブシステム
2608 メインメモリ
2610 永続記憶装置
2612 ユーザインターフェース入力デバイス
2614 ユーザインターフェース出力デバイス
2616 ネットワークインターフェースサブシステム
2618 ダイナミックランダムアクセスメモリ(DRAM)
2620 読取り専用メモリ(ROM)

Claims (13)

  1. コンピュータ実装方法であって、
    計算困難パラメータ、
    少なくとも1つのブロックチェーントランザクションのハッシュ、および/または
    少なくとも1つのブロックチェーンブロックヘッダのハッシュ
    に基づいて出力(4)を計算するために、非並列化可能アルゴリズムを使用するステップ
    を備える、コンピュータ実装方法。
  2. 前記出力または前記出力の表記をブロックチェーンノード(5)のネットワークへ送信するステップ
    をさらに備える、請求項1に記載の方法。
  3. 前記非並列化可能アルゴリズムが、
    再帰演算、
    べき剰余、
    反復2乗演算
    の演算のうちの少なくとも1つを備える、請求項1または2に記載の方法。
  4. ブロックチェーントランザクションのセットから少なくとも1つのブロックチェーントランザクションを選択するステップであって、前記少なくとも1つのブロックチェーントランザクションが、前記少なくとも1つのブロックチェーントランザクションの中で提供されるタイムスタンプに基づいて選択される、ステップを備える、
    請求項1から3のいずれか一項に記載の方法。
  5. 前記少なくとも1つの選択されたブロックチェーントランザクションが、前記ブロックチェーンの状態から導出可能または識別可能であるタイムスタンプを備える、請求項4に記載の方法。
  6. 前記少なくとも1つの選択されたトランザクションが、ブロックチェーン上に記録されているブロックまたはブロックチェーントランザクションの前記タイムスタンプよりも後のタイムスタンプを備える、請求項4または5に記載の方法。
  7. 前記少なくとも1つの選択されたブロックチェーントランザクションの表記(3)を計算するステップ
    をさらに備える、請求項4、5、または6に記載の方法。
  8. 第1のブロックチェーンネットワークノードから第2のブロックチェーンネットワークノードにおいて前記出力の表記を受信するステップと、前記第2のブロックチェーンネットワークノードにおいて前記出力を検証するステップと
    を備える、請求項1から7のいずれか一項に記載の方法。
  9. 前記第2のブロックチェーンネットワークノードにおいて前記出力を検証する前記ステップが、
    前記第2のブロックチェーンネットワークノードにおいて前記出力を計算するステップと、
    前記第2のブロックチェーンネットワークノードにおいて前記出力の表記を生成するステップと、
    前記第2のブロックチェーンネットワークノードにおいて生成された前記表記を、前記第1のブロックチェーンネットワークノードから受信された前記表記と比較するステップと
    を備える、請求項8に記載の方法。
  10. 前記計算困難パラメータが、前記出力を計算するために前記非並列化可能アルゴリズムによって必要とされる演算の数に影響を及ぼすかまたはそれを制御する値である、請求項1から9のいずれか一項に記載の方法。
  11. 前記非並列化可能アルゴリズムが、
    iii)前記出力を計算するために1つもしくは複数の中間値の計算を必要とし、かつ/または
    iv)並列化された複数の計算リソースによって実行できない、
    請求項1から10のいずれか一項に記載の方法。
  12. 複数のノードを備えるブロックチェーンネットワークであって、前記ブロックチェーンネットワークの中の各ノードが、
    プロセッサと、
    実行可能命令を含むメモリであって、前記実行可能命令が、前記プロセッサによる実行の結果として、請求項1から11のいずれか一項に記載のコンピュータ実装方法をシステムに実行させる、メモリと
    を備える、ブロックチェーンネットワーク。
  13. コンピュータシステムのプロセッサによって実行される結果として、請求項1から11のいずれか一項に記載のコンピュータ実装方法を前記コンピュータシステムに実行させる実行可能命令が記憶された、非一時的コンピュータ可読記憶媒体。
JP2021568510A 2019-05-16 2020-04-28 プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法 Pending JP2022532764A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1906893.1A GB201906893D0 (en) 2019-05-16 2019-05-16 Computer-Implemented system and method
GB1906893.1 2019-05-16
PCT/IB2020/053995 WO2020229922A1 (en) 2019-05-16 2020-04-28 Systems and methods for non-parallelised mining on a proof-of-work blockchain network

Publications (1)

Publication Number Publication Date
JP2022532764A true JP2022532764A (ja) 2022-07-19

Family

ID=67385084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021568510A Pending JP2022532764A (ja) 2019-05-16 2020-04-28 プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法

Country Status (9)

Country Link
US (1) US20220217004A1 (ja)
EP (1) EP3970048A1 (ja)
JP (1) JP2022532764A (ja)
KR (1) KR20220010534A (ja)
CN (1) CN113939821A (ja)
GB (1) GB201906893D0 (ja)
SG (1) SG11202112101SA (ja)
TW (1) TW202109333A (ja)
WO (1) WO2020229922A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157693B (zh) * 2021-03-21 2023-05-19 贵州大学 一种面向数字货币的区块链存储优化方案
WO2023050012A1 (en) * 2021-09-30 2023-04-06 Ureeqa Inc. Groups a and b: system and method for decentralized timestamping of a submission of content onto a blockchain group c: method for timestamping verification of a submission of content onto a blockchain
CN117560161B (zh) * 2024-01-11 2024-04-09 中移信息系统集成有限公司 区块链的共识节点轮换方法及装置、可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10269009B1 (en) * 2013-06-28 2019-04-23 Winklevoss Ip, Llc Systems, methods, and program products for a digital math-based asset exchange
US9898782B1 (en) * 2013-06-28 2018-02-20 Winklevoss Ip, Llc Systems, methods, and program products for operating exchange traded products holding digital math-based assets
US10068228B1 (en) * 2013-06-28 2018-09-04 Winklevoss Ip, Llc Systems and methods for storing digital math-based assets using a secure portal
US10796000B2 (en) * 2016-06-11 2020-10-06 Intel Corporation Blockchain system with nucleobase sequencing as proof of work
US10262140B2 (en) * 2016-09-29 2019-04-16 Intel Corporation Methods and apparatus to facilitate blockchain-based boot tracking
US10397328B2 (en) * 2017-05-17 2019-08-27 Nec Corporation Method and system for providing a robust blockchain with an integrated proof of storage
US11271717B2 (en) * 2018-02-21 2022-03-08 Thunder Token Inc. Blockchain consensus methods and systems
EP3605944B1 (en) * 2018-07-31 2023-08-30 Siemens Healthcare GmbH Documenting timestamps within a blockchain
US10700850B2 (en) * 2018-11-27 2020-06-30 Alibaba Group Holding Limited System and method for information protection

Also Published As

Publication number Publication date
TW202109333A (zh) 2021-03-01
GB201906893D0 (en) 2019-07-03
EP3970048A1 (en) 2022-03-23
SG11202112101SA (en) 2021-11-29
US20220217004A1 (en) 2022-07-07
CN113939821A (zh) 2022-01-14
KR20220010534A (ko) 2022-01-25
WO2020229922A1 (en) 2020-11-19

Similar Documents

Publication Publication Date Title
JP7472338B2 (ja) ブロックチェーンにおける擬似乱数生成
CN111316615B (zh) 使用调解器计算机系统确保计算机程序正确执行的系统和方法
EP3811259B1 (en) Method for signing a new block in a decentralized blockchain consensus network
US11228439B2 (en) Scale out blockchain with asynchronized consensus zones
KR20210003234A (ko) 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것
KR20200096790A (ko) 증명 검증에 기초하여 오프-체인 데이터를 인증하기 위한 시스템 및 방법
JP7428704B2 (ja) デジタルリソースへのアクセスを移転するための、コンピュータにより実施されるシステム及び方法
JP2022520656A (ja) ブロックチェーンネットワークを介した移転を実施するためのコンピュータで実施されるシステムおよび方法
EP4333357A2 (en) Hash function attacks
US20230412358A1 (en) Blockchain-implemented security systems and methods for blinded outcome selection
JP2022532764A (ja) プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法
Al-Bassam et al. Airtnt: Fair exchange payment for outsourced secure enclave computations
US20230316241A1 (en) Partitioning a request into transactions for a blockchain
CN112970227A (zh) 包括公钥组合验证的计算机实现的系统和方法
JP2022511971A (ja) ブロックチェーン上で行われる移転の実行を制御又は強制するためのコンピュータにより実現されるシステム及び方法
Sharma et al. Reinshard: An optimally sharded dual-blockchain for concurrency resolution
US20230067629A1 (en) Cryptographic techniques for updating a distributed data structure

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240325