JP7190481B2 - 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法 - Google Patents

複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法 Download PDF

Info

Publication number
JP7190481B2
JP7190481B2 JP2020502349A JP2020502349A JP7190481B2 JP 7190481 B2 JP7190481 B2 JP 7190481B2 JP 2020502349 A JP2020502349 A JP 2020502349A JP 2020502349 A JP2020502349 A JP 2020502349A JP 7190481 B2 JP7190481 B2 JP 7190481B2
Authority
JP
Japan
Prior art keywords
blockchain
computer
transactions
node
implemented method
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
JP2020502349A
Other languages
English (en)
Other versions
JP2020528691A (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 JP2020528691A publication Critical patent/JP2020528691A/ja
Priority to JP2022194142A priority Critical patent/JP2023024499A/ja
Application granted granted Critical
Publication of JP7190481B2 publication Critical patent/JP7190481B2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, 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/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic 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 challenge-response
    • 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
    • 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

Description

本明細書は、概して、ブロックチェーンネットワークのノードにおける実装に適したコンピュータにより実現される方法及びシステムに関する。多数のトランザクション及び大きいトランザクションブロックを扱うための修正されたブロックチェーンノード構造、ネットワークアーキテクチャ、及びプロトコルが説明される。本発明は、これに限られないが、ビットコインブロックチェーンで使用するのに特に適する。
本文献では、用語「ブロックチェーン」を用いて、電子的なコンピュータベースの分散台帳の全ての形態を含める。これらには、ブロックチェーン及びトランザクションチェーン技術、許可あり(permissioned)及び許可なし(un-permissioned)台帳、共有台帳、及びこれらの変形が含まれるが、これらに限られない。ブロックチェーン技術の最も広く知られている適用はビットコイン(登録商標)台帳であるが、他のブロックチェーン実装が提案され、開発されている。本明細書では、簡便さ及び例示の目的でビットコインが参照されることがあるが、本発明はビットコインブロックチェーンでの使用に限定されず、代替的なブロックチェーンの実装及びプロトコルが本発明の範囲内に入ることに留意されたい。
ブロックチェーンは合意に基づく電子台帳であり、これは、ブロックから構成されるコンピュータベースの非中央集権的な分散システムとして実現され、同様に、ブロックはトランザクション及び他の情報から構成される。ビットコインの場合、各トランザクションは、ブロックチェーンシステム内の参加者間のデジタル資産の制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、それにより、ブロックが一緒にチェーン化されて、ブロックチェーンの開始以降にそれに書き込まれた全てのトランザクションの永続的で改変不可能なレコードを作成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さいプログラムを含み、これは、トランザクションのアウトプットに如何にして及び誰がアクセスできるかを指定する。ビットコインプラットフォームでは、これらのスクリプトはスタックベースのスクリプト言語を使用して書かれる。
トランザクションがブロックチェーンに書き込まれるためには、それは「検証され」なければならない。いくつかのネットワークノードが、マイナーとして動作し、作業を実行して各トランザクションが有効であることを保証し、無効なトランザクションはネットワークから拒否される。例えば、ノードにインストールされたソフトウェアクライアントは、未使用トランザクションアウトプット(unspent transaction、UTXO)を参照するトランザクションに対してこの検証作業を実行する。検証は、そのロック及びロック解除スクリプトを実行することにより行われてもよい。ロック及びロック解除スクリプトの実行がTRUEの評価である場合、及び特定の他の条件が満たされる場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれてもよい。ゆえに、トランザクションがブロックチェーンに書き込まれるためには、それは、i)トランザクションを受信したノードにより検証され、トランザクションが検証された場合、ノードはそれをネットワーク内の他のノードに中継する、ii)マイナーにより構築された新しいブロックに追加される、iii)マイニングされる、すなわち過去のトランザクションの公開台帳に追加される、がなされなければならない。トランザクションは、十分な数のブロックがブロックチェーンに追加されてトランザクションを事実上不可逆にしたとき、確認されたと考えられる。
ブロックチェーン技術は、暗号通貨実装の使用に対して最も広く知られているが、デジタル起業家は、新しいシステムを実現するために、ビットコインが基礎とする暗号セキュリティシステムとブロックチェーンに記憶できるデータとの双方の使用を探求し始めている。ブロックチェーンが暗号通貨で表される支払いに純粋に限定されない自動化されたタスク及び処理に使用できる場合、かなり有利であろう。このような解決策は、その適用においてより多目的に使用できると同時に、ブロックチェーンの利点(例えば、イベントの永続的な改ざん防止のレコード、分散処理等)を利用することができる。
研究の1つの分野は、「スマートコントラクト」の実装のためのブロックチェーンの使用である。これらは、マシン読取可能な契約又は同意の条件の履行を自動化するように設計されたコンピュータプログラムである。自然言語で書かれる従来の契約と異なり、スマートコントラクトは、インプットを処理して結果を生成することができるルールを含むマシン実行可能プログラムであり、これは次いで、これら結果に依存してアクションを実行させることができる。
ブロックチェーン関連の関心のある別の領域は、ブロックチェーンを介して実世界のエンティティを表現及び移転するための「トークン」(又は「カラードコイン(coloured coins)」)の使用である。潜在的に機密又は秘密のアイテムは、認識可能な意味又は値を有さないトークンにより表現できる。ゆえに、トークンは、実世界のアイテムがブロックチェーンから参照されることを可能にする識別子として機能する。
ブロックチェーンベースの暗号通貨の健全性を測定するための重要な要素の1つは、ブロックチェーンを実際に記憶しているノードの数である。ブロックチェーンは、秒あたりのトランザクション数に従って成長する。しかし、暗号通貨が普及すると、秒あたりの支払い数は増加し、ブロックチェーンの成長率も増加する。次いで、記憶コストが法外に高くなる。
ゆえに、1つの技術的な問題は、ブロックチェーンネットワークがかなり大きいブロックチェーンを記憶するよう適合されるように、ブロックチェーンネットワークを再構成する方法である。さらなる技術的な問題は、ブロックチェーンネットワーク上のすべてのノードにそのようなかなり大きいブロックチェーンを記憶することを求めずに、これを達成する方法である。また、さらなる技術的な問題は、専門化されたストレージノードが、それらがそのようなかなり大きいブロックチェーンの少なくとも一部分を記憶していることを証明できるように、ブロックチェーンネットワークを再構成する方法である。また、さらなる技術的な問題は、専門化されたストレージノードがそのようなかなり大きいブロックチェーンの少なくとも一部分を記憶するよう動機づけされるように、ブロックチェーンネットワークを再構成する方法である。
本発明の一目的は、本明細書に記載される技術的解決策を提供することにより、これらの技術的問題に対処することである。詳細には、本明細書は、(i)ストレージノードが公開ブロックチェーンを維持することに対して報酬を与えられることを可能にし、(ii)プルーフオブブロックチェーンストレージ(PoBS)スキームを用いてブロックチェーンの完全性を立証するプロトコルを説明する。このプロトコルは、チャレンジレスポンス方法を使用してリモートのサーバに記憶されたデータファイルが損なわれていないかを暗号でチェックする方法を提供する。このプロトコルは、中間者攻撃に対して安全にされる。悪意のあるピアは、データを記憶している第三者にチャレンジを渡してレスポンスを返すことができない。該スキームは、公に立証可能でもある。
本発明の実施形態は、様々な形式で提供できる。例えば、コンピュータ実行可能命令を含むコンピュータ読取可能記憶媒体を提供でき、該コンピュータ実行可能命令は、実行されたときに、本明細書に記載される方法を実行するように1つ以上のプロセッサを構成する。また、インターフェースデバイスと、インターフェースデバイスに結合された1つ以上のプロセッサと、1つ以上のプロセッサに結合されたメモリであり、該メモリは、コンピュータ実行可能命令を記憶し、該コンピュータ実行可能命令は、実行されたとき、本明細書に記載される方法を実行するように1つ以上のプロセッサを構成する、メモリと、を含む電子デバイスを提供できる。さらに、ブロックチェーンネットワークのノードを提供でき、ノードは、本明細書に記載される方法を実行するように構成される。
本発明のこれら及び他の態様が、本明細書に記載した実施形態から明らかであり、それらを参照して明らかにされるであろう。次に、本発明の一実施形態が、単なる例として、添付の図面を参照して説明される。
プルーフオブブロックチェーンストレージ(PoBS)プロトコルのステップ1を例示する図を示す。 プルーフオブブロックチェーンストレージ(PoBS)プロトコルにおけるステップ3を例示する図を示す。 分布関数f(T)を釣鐘状曲線の形式で示す。 プルーフオブブロックチェーンストレージ(PoBS)プロトコルで使用されるトランザクションの一例を示す。 プルーフオブブロックチェーンストレージ(PoBS)プロトコルにおけるランダムオラクルの使用を示す。
発明の概要セクションに記載されるように、ブロックチェーンは、秒あたりのトランザクション数に従って成長する。しかし、暗号通貨が普及すると、秒あたりの支払い数は増加し、ブロックチェーンの成長率も増加する。次いで、記憶コストが法外に高くなる。
(i)ストレージノードが公開ブロックチェーンを維持することに対して報酬を与えられることを可能にし、(ii)プルーフオブブロックチェーンストレージ(Proof-of-Blockchain Storage、PoBS)スキームを用いてブロックチェーンの完全性を立証するプロトコルを我々は説明する。このプロトコルは、チャレンジレスポンス方法を使用してリモートのサーバに記憶されたデータファイルが損なわれていないかを暗号でチェックする方法を提供する。このプロトコルは、中間者攻撃に対して安全にされる。悪意のあるピアは、データを記憶している第三者にチャレンジを渡してレスポンスを返すことができない。該スキームは、公に立証可能でもある。
システムが提供され、(例えば)マイナーにより実行され、これにおいて、(例えば)毎分、各マイナーがブロックチェーンからランダムに取引をサンプリングする(マイナーは必ずしも同期されない)。
ブロックチェーンネットワークのノードのための、コンピュータにより実現される方法が提供され、当該コンピュータにより実現される方法は、
ブロックチェーンから、プルーフオブストレージがチャレンジされる(challenged)べき1つ以上のトランザクションを選択するステップであり、上記選択された1つ以上のトランザクションはトランザクション深さを有する、ステップと、
プルーフオブストレージがチャレンジされるべき上記1つ以上の選択されたブロックチェーントランザクションを示すプルーフオブブロックチェーンストレージトランザクションと、上記1つ以上の選択されたトランザクションを記憶するストレージノードによりロック解除できるプルーフオブブロックチェーンストレージ報酬とを作成するステップと、
上記プルーフオブブロックチェーンストレージトランザクションを上記ブロックチェーンネットワーク上の1つ以上のストレージノードに送信するステップと、
を含む。
本方法は、ブロックチェーンネットワーク上のマイナーがブロックチェーンネットワーク上のストレージノードにチャレンジして、これらがブロックチェーン又はその少なくとも一部を記憶していることを証明できる手段を提供する。
上記1つ以上の選択されたブロックチェーントランザクションは、上記ブロックチェーンにおける上記1つ以上のトランザクションの深さに対応するトランザクション深さdを有し、上記プルーフオブブロックチェーンストレージ報酬は、上記トランザクション深さdに従って設定でき、それにより、上記トランザクション深さdがより大きいほど上記報酬がより大きい。
この特徴は、ストレージノードがブロックチェーンのうちより多くを記憶するよう奨励し、なぜならば、これらは、より深いトランザクションを記憶することに対してより大きい報酬を受けるからである。
上記1つ以上のブロックチェーントランザクションは上記ブロックチェーンからランダムに選択できる。ブロックチェーントランザクションのリストが選択されてもよい。ランダムな選択を導入することは、システムのセキュリティを増大させることに役立つ。セキュリティは、上記1つ以上のトランザクションが上記ブロックチェーン上で複数の確認(confirmations)を受信した1つ以上のブロックから選択されることを保証することにより、さらに向上する。
上記プルーフオブブロックチェーンストレージトランザクションは、上記ブロックチェーン上に記憶されるべき新たにマイニングされたブロックに関連づけられたデータを含むことができる。上記新たにマイニングされたブロックに関連づけられた上記データは、例えば、上記新たにマイニングされたブロックのブロックヘッダデータであり得る。そのようなものとして、マイナーは、それらがストレージノード上への記憶の準備ができた新たにマイニングされたブロックを有するとき、ブロックチェーン上のストレージノードにチャレンジすることができ、チャレンジは、記憶されるべき新たにマイニングされたブロックに関連づけられる。
新たにマイニングされたブロックに関連づけられた上記データは、上記ブロックチェーンから選択された上記1つ以上のブロックチェーントランザクションに関連づけられたデータと組み合わせられ得る。例えば、上記新たにマイニングされたブロックに関連づけられた上記データは、XOR演算又は連結により、上記ブロックチェーンから選択された上記1つ以上のブロックチェーントランザクションに関連づけられた上記データと組み合わせられ得る。さらに、上記プルーフオブブロックチェーンストレージトランザクションは、
上記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータの暗号関数、
上記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータと組み合わせられた新たにマイニングされたブロックに関連づけられたデータの暗号関数、
のうち1つを含むことができる。
このような特徴は、報酬をロック解除するために1つ以上の選択されたブロックチェーントランザクションを所有するストレージノードにより算出できる暗号関数をセットアップする。
上記プルーフオブブロックチェーンストレージトランザクションは、上記ブロックチェーンネットワーク上の上記1つ以上のストレージノードに関連づけられた1つ以上のブロックチェーンネットワークアドレスをさらに含む。これらのアドレスは、認定されたブロックチェーンネットワークアドレスでもよく、認定は、(後により詳細に説明されるように)システムのセキュリティを増大させるために、秘密鍵シェアスキームを介して達成される。
当該方法は、上記1つ以上の選択されたブロックチェーントランザクションの識別番号を含むチャレンジプレフィックスを生成するステップ、をさらに含むことができ、上記チャレンジプレフィックス及び上記プルーフオブブロックチェーンストレージトランザクションは、上記ブロックチェーンネットワーク上の上記1つ以上のストレージノードに送信できる。チャレンジプレフィックスは、1つ以上のストレージノードにより、そのブロックチェーンのコピーから1つ以上の選択されたブロックチェーントランザクションを識別及び抽出するために使用できる。システムのセキュリティをさらに増大させるために、ランダムオラクルが使用されて、上記チャレンジプレフィックス、及び、上記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータの暗号関数と上記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータと組み合わせられた新たにマイニングされたブロックに関連づけられたデータの暗号関数とのうち1つを生成することができる。上記チャレンジプレフィックスは、完全性及び認証に対するデジタル署名を添えられてもよく、あるいは、チャレンジプレフィックスメッセージが、非トランザクションフィールドでストレージノードに送信されてもよい。
上記プルーフオブブロックチェーンストレージトランザクションを受信すると、上記1つ以上のストレージノードは、それらノードに記憶された上記1つ以上の選択されたブロックチェーントランザクションにアクセスし、上記報酬をロック解除するために上記1つ以上の選択されたブロックチェーントランザクションを使用することができる。例えば、前に説明された例に続き、上記報酬は、
上記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータの暗号関数、
上記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータと組み合わせられた新たにマイニングされたブロックに関連づけられたデータの暗号関数、
のうち1つを算出することによりロック解除できる。
コンピュータ実行可能命令を含むコンピュータ読取可能記憶媒体が提供されてもよく、上記コンピュータ実行可能命令は、実行されたときに、本明細書に記載の方法を実行するように1つ以上のプロセッサを構成する。
電子デバイスがさらに提供されてもよく、当該電子デバイスは、
インターフェースデバイスと、
上記インターフェースデバイスに結合された1つ以上のプロセッサと、
上記1つ以上のプロセッサに結合されたメモリであり、上記メモリは、コンピュータ実行可能命令を記憶し、上記コンピュータ実行可能命令は、実行されたときに、本明細書に記載の方法を実行するように上記1つ以上のプロセッサを構成する、メモリと、
を含む。
またさらに、ブロックチェーンネットワークのノードが提供でき、当該ノードは、本明細書に記載の方法を実行するように構成される
次に、プルーフオブブロックチェーンストレージプロトコルの一例が説明される。このセクションでは、我々は、
Figure 0007190481000001
と書いて、元xが集合Xからランダムにサンプリングされることを表す。我々は時に、y:=A(x)と書いて、インプットxに対するアルゴリズムAの実行の決定的結果を表す。文字列連結は縦棒(||)で表される。XOR演算はシンボル(
Figure 0007190481000002
)で表される。ブロックチェーントランザクションの集合はシンボルBで表される。
[各マイナーにより実行されるプロトコル]
1.時間τにおいて、ランダムに選ばれたトランザクションの集合がブロックチェーンから選定される(図1)。トランザクションのリストがローカルに記憶される(GenList機能)。
2.新しいブロックの成功裏のマイニングにおいて、成功したマイナーは多くのチャレンジを作成する(GenChal機能)。チャレンジ収益、すなわち$R:=GetRew(d)が算出され、dはトランザクション深さ(transaction depth)である。
3.マイナーは、プルーフオブストレージ(proof of storage)に関連づけられたチャレンジを含むコインベーストランザクションを含む新たにマイニングされたブロックデータをブロードキャストする(図2)。
次に、PoBS構築で使用される機能を我々は定義する。
前処理(PrePROCESSING):トランザクション深さdに対して演算するPoBS報酬関数Rewを設定する。トランザクションTがブロックチェーン内でより深いほど、PoBS報酬はより高い。
GetReward機能:
Rewを報酬関数とする。深さdを受信すると、
GetReward(d):
1.Return Rew(d)
GenList機能:
nを、必要とされるトランザクションの総数とする。ブロックチェーンBを調べる(interrogating)と、リストLが作成される。
GenList(n):
Figure 0007190481000003
セットアップ(SETUP):(i)新たにマイニングされたもののブロックヘッダHeadと、(ii)確認されたトランザクションのリストLと、を保持するマイナーMを所与として、Mは、チャレンジChalを生成し、該チャレンジは、とりわけ、Mが所有の証明(proof of possession)を望む特定のトランザクションT∈Lを示す。トランザクションは、複数の確認を受けたブロックに記録される。
GenChal機能:
前に定義されたように、Headをブロックヘッダとし、Lを確認されたトランザクションのリストとし、Hを暗号ハッシュ関数とする。dをトランザクションの深さ(ブロック又はその後の確認の数)とする。GenChal(Head,L)機能は、以下のように定義される。
GenChal(Head,L):
Figure 0007190481000004
上記では、分布関数f(T)の形状を我々は示さなかったことに留意されたい。関数は一様であってもよく、あるいは釣鐘状曲線に従ってもよい(図3参照)。
コインベースTXの準備(PREPARE COINBASE TX):Mは、コインベーストランザクションを、Chalとストレージノードの受領者ビットコインアドレスとを使用して完了する。例示の目的で、簡素な例が図4に与えられる。
チャレンジ(CHALLENGE):Mは、トランザクション識別番号を含むチャレンジプレフィックスpref=Tidを生成する。そのメッセージは、(i)完全性及び認証に対するデジタル署名を添えられてもよく、あるいは(ii)非トランザクションフィールドに、例えば、OP_RETURNの後に含まれもよい。Mは、pref及びchalをストレージノードSに送信する。Chalを受信すると、サーバは、彼/彼女が資金をロック解除することを可能にするH(Head||T)を計算する。
上述された手法は、プロトコルにランダムオラクル(random oracle)を追加することからの恩恵を受けることもできる。ランダムオラクルは、あらゆるクエリに対して、(正直者を表す)ランダムに選ばれたレスポンスで応答するオラクルである。このシナリオでは、マイナーMは、ブロックヘッダHeadについてランダムオラクル(RO)にクエリする。Headを受信すると、ROは、あらゆるクエリに対して、真にランダムなレスポンスH(Head||T)、pref=Tidで応答する(図5参照)。
[認定されたビットコインアドレス]
さらに、認定されたビットコインアドレスを使用して、セキュリティの目的でマイナーとストレージノードとの間の共謀を防止することを我々は提案する。この点に関して、非中央集権的なピアツーピアシステムにおける挑戦の1つは、ノードが信頼ベースでネットワーク内の別のノードと通信できることを保証することである。いくつかの実装のネットワークアーキテクチャが進化したとき、いくつかのノードは、より専門化されたタスクを引き受ける可能性があり、他のノードは、(前に記載されたような)特定のデータのソースとして又は特定の機能の実行者としてこれらの専門化されたノードに依存する可能性がある。ノードが、情報のために又は正当なソースとして別のノードに依存しようとする場合、それは、そのノードと通信するために信頼された関係を確立できる必要がある。複数のノードが異なる役割を有する可能性がある場合、ノードの役割を決定及び立証するメカニズムを有することが有利である。さらに、ノードが違法又は悪意があることが判明した場合、他のノードがそれを覚えておき、そのようなノードからの将来の通信を無視することが可能であるべきである。ピアツーピアシステムでは、中央の権限を課すことによりシステムのピアツーピアの性質を妥協することなく、これらの問題を解決することが挑戦である。
ゆえに、自律的な専門化されたノードのグループから要求ノードへのクレデンシャルのセキュアな配布を管理する方法及びデバイスを提供できる。クレデンシャルのセキュアな配布は、秘密シェア(secret share)と、ノードのいずれも再構築又は所有しないグループ秘密鍵とを使用してもよい。クレデンシャルは、要求ノードの識別子と、秘密点(secret point)とを含み、ノードは、該秘密点を、複数の専門化されたノードの各々により提供される秘密点の部分から組み立て、秘密点は、グループ秘密鍵と、要求ノードの識別子のマップツーポイント(map-to-point)ハッシュとに基づく。ノードは、いくつかの実装においてブロックチェーンノードであってもよい。
2つのノードが、自律的な専門化されたノードのグループにより認定されているとして、グループを伴うこと又は中央集権的な認定管理者若しくは承認者を伴うことなく互いを認証することができる。この方法は、第1のノード及び第2のノードがそのそれぞれの識別子及び秘密点を伴う双線形ペアリング演算を使用して同じ鍵を導出することを伴ってもよい。秘密点及び識別子がグループ秘密鍵を使用してグループから取得されたという条件で、双線形ペアリング演算は、2つのノードの各々における同じ鍵の生成をもたらし、それにより、そのそれぞれのクレデンシャルを認証し、2つのノード間の信頼された通信を可能にする。
ノードは、専門化されたノードのグループからクレデンシャルを取得することができ、専門化されたノードの各々は、グループ秘密鍵の秘密鍵シェアを有する。この方法は、ノードから複数の専門化されたノードにクレデンシャルの要求を送信することであり、ノードは識別子を有する、ことと、複数の専門化されたノード内の各ノードから、識別子とそのノードの秘密鍵シェアとからそのノードにより生成された秘密点の一部分を受信することと、秘密点の受信部分を組み合わせることにより秘密点を生成することと、を含んでもよく、秘密点は、グループ秘密鍵に識別子のマップツーポイントハッシュを掛けたもの(times)であり、クレデンシャルは、識別子及び秘密点である。専門化されたノード又はノードのいずれも、グループ秘密鍵の完全なコピーを取得するよう求められなくてもよい。
いくつかの実装において、要求を送信することは、複数の専門化されたノードの各々に別個の要求を送信することを含んでもよい。識別子は、ノードを識別する識別子文字列と、専門化されたノードのグループの役割を識別する役割文字列とを含んでもよい。いくつかの場合、識別子は、クレデンシャルの満了時間をさらに含み、いくつかのさらなる場合、要求を送信することは、識別子文字列を送信することを含み、受信することは、識別子を受信することを含む。
いくつかの実装において、秘密点を生成することは、秘密点の受信部分を組み合わせることを含む。組み合わせることは、いくつかの例示的な実装において合計することを含んでもよい。
いくつかの実装において、秘密点は秘密シェアを使用して生成され、グループ秘密鍵に基づく。これらの場合のいくつかにおいて、秘密シェアは、グループ秘密鍵を再構築することなく、ラグランジュ補間と複数の専門化されたノードの秘密鍵シェアとを使用する。
第1のノードが第2のノードとの信頼された通信を確立するために、コンピュータにより実現される方法をさらに提供でき、第2のノードは、第2のノード識別子及び第2の秘密点を有し、第2の秘密点は、グループ秘密鍵に第2のノード識別子のマップツーポイントハッシュを掛けたものであり、グループ秘密鍵は、クレデンシャルを付与するように構成されたノードのグループに関連づけられる。この方法は、ノードのグループから第1の秘密点を取得することであり、第1の秘密点は、グループ秘密鍵に第1のノード識別子のマップツーポイントハッシュを掛けたものである、ことと、第1のノード識別子を第2のノードに送信することと、第2のノード識別子を受信することと、第2のノード識別子のマップツーポイントハッシュを用い及び第1の秘密点を用いて双線形ペアリング演算を使用して第1のセッション鍵を生成することと、第1のセッション鍵が、第2の秘密点を用い及び第1のノード識別子のマップツーポイントハッシュを用いて双線形ペアリング演算を使用して第2のノードにより生成された第2のセッション鍵と一致することを確認することと、を含んでもよい。
いくつかの実装において、第1のセッション鍵を生成する双線形ペアリング演算動作は、式:
=e(H(id),s)、及び
=e(s,H(id))
のうち一方により特徴づけられてもよく、第2のセッション鍵を生成する双線形ペアリング演算は、式のうち他方により特徴づけられ、e()は、双線形ペアリング演算であり、H()は、マップツーポイントハッシュであり、id及びidは、第1のノード識別子及び第2のノード識別子の各ノード識別子であり、s及びsは、第1の秘密点及び第2の秘密点の各秘密点である。
いくつかの実装において、第1の秘密点を取得することは、ノードのグループ内の複数のノードの各々から、第1の秘密点のそれぞれの部分を取得することと、グループ秘密鍵を再構築することなく、それぞれの部分を組み合わせて第1の秘密点を形成することとを含む。
いくつかの実装において、確認することは、第1のノードから第2のノードに、第1のセッション鍵で暗号化されたチャレンジを送信することと、チャレンジに対するレスポンスを受信することと、レスポンスに基づいて、第2のノードが第2のセッション鍵を使用してチャレンジを有効に復号したと決定することと、を含む。
いくつかの実装において、送信することは、第1のノンスを送信することをさらに含み、受信することは、第2のノンス及び算出されたC値を受信することをさらに含み、C値は、第2のセッション鍵、第1のノンス、及び第2のノンスの連結のハッシュを含む。これらの場合のいくつかにおいて、連結は、第1のノード識別子及び第2のノード識別子をさらに含む。これらの場合のいくつかにおいて、生成することは、第1のセッション鍵、第1のノンス、及び第2のノンスの連結のハッシュを含む算出されたC値を生成することを含み、確認することは、算出されたC値が算出されたC値に一致することを確認することを含む。
いくつかの実装において、第2の秘密点は、グループ秘密鍵に第2のノード識別子のマップツーポイントハッシュを掛けたものである。
いくつかの実装において、第1の秘密点及び第2の秘密点は各々、秘密シェアリングを使用して第1のノード及び第2のノードにそれぞれ、ノードのグループにより提供される。
例えば、ノードのグループ内の各ノードは、秘密鍵kのシェアkを含むことができる。秘密シェアリングが、秘密kがn人のプレーヤ間で分割される閾値暗号システムで使用され、それにより、少なくともt+1人の参加者が、kを再構築するために協働するよう求められる。秘密kのうち任意のt個の断片についての知識は、後者の秘密kを未確定のままにする。
秘密シェアリングは、多項式補間に基づき、秘密は、有限体Fの元であると仮定される。このスキームは、ディーラー(ディーラー無しバージョンも存在する)、n人の参加者の集合U,・・・,Uを含む。そのプロトコルでは、任意のランダムな秘密がt次多項式f(x)におけるf(0)として記憶され、ノードiのみがそのシェアf(x)を算出することができる。n個のノードのうちt+1個が協働した場合、それらは、ラグランジュ多項式補間を使用してf(x),f(x),・・・,f(x)に対応する(鍵kの)そのシェアk,k,・・・,kを用いて、f(x)上のいかなる点も再構築することができる。ラグランジュ多項式補間は、次数tを有する関数f(x)がt+1個の点p={(x,f(x)),(x,f(x)),・・・,(xt+1,f(xt+1))}を用いて再構築できることを提供し、
Figure 0007190481000005
であり、
Figure 0007190481000006
である。b,(x)=1であり、b,(x)=0であることに留意する。この点で、bは補間係数である。
ディーラー無しシェア分配を伴う一実装において、
1.各ノードiは、誰もが知るxを割り当てられる。各xは、一意である必要がある。
2.各ノードiは、次数tを有するランダムな多項式f(x)を生成する。
3.各ノードiは、あらゆる他のノードに、多項式上のそのそれぞれの点f(x)mod nを秘密に送信する(受領者の公開鍵で暗号化される)。
4.各ノードiは、すべてのその受信したf(x),f(x),・・・f(x)、すべてのmod n(nは、基礎体Fの特性である(Fは、GF(n)、z/nzで表されることもある))を合計して、多項式上のシェアf(x) mod nであるk=f(x) mod nを形成する。
ノードのグループのうちのノードが、要求ノードのための秘密点sを生成するよう協働する。秘密点sは、巡回群G内であり、その重要性は、ハンドシェイク及びペアリングに関する以下の説明から明らかになる。秘密点は、
=k・H(id
として識別子に関連し、idは、要求ノード504の識別子である。クレデンシャルは、いくつかの実装において(id,s)であると考えられてもよい。Hは、以下でより詳細に説明されるように、マップツーポイントハッシュ関数である。
グループ秘密鍵kを再構築することなく秘密点を生成するために、ノードのグループは、秘密シェア参加(Secret Share Joining)の形式を使用して、sを生成することにおいて協働する。要求ノードは、ノードのグループのうち少なくともt+1個のノードにクレデンシャル要求を送信する。これらのノードは各々、要求ノードにsの一部分を提供する。詳細には、秘密点sの各シェアsAiがノードiにより決定され、要求ノードに送信され、次いで、要求ノードは、それらを秘密点sに組み立てる(すなわち、それらを組み合わせる)。いくつかの例において、シェアsAiは、これらを合計することにより組み合わせられ、秘密点sを取得する。
次に、クレデンシャルのグループベースの分散生成のための一例示的な処理が説明される。処理は、要求ノードにより実行される。これは、要求ノードがインデックスiを1に設定することで開始する。次いで、要求ノードは、ノードiからのクレデンシャルを要求する。ノードiは、本明細書に記載のクレデンシャル付与手順の実装を実行するように構成されたノードのグループ内の専門化されたノードである。ノードiは、グループ秘密鍵シェアkの一部分を使用して、秘密点sのi番目の部分を決定する。その部分は、sAiとして参照されてもよい。
要求ノードはi番目のノードから部分sAiを受信し、すなわち、それは部分的なクレデンシャルを受信する。受信ノードは、インデックスiがt+1であるかどうかを評価する。そうである場合、受信ノードは、t+1個の部分的クレデンシャルを受信したが、そうでない場合、それは、秘密点sを再構築するためにさらなる部分的なクレデンシャルを依然として必要とする。iがまだt+1に等しくない場合、それは1だけ増分され、処理は戻って、ノードのグループ内の別のノードからのさらなる部分的なクレデンシャルを要求する。iがt+1に等しい場合、動作712において、要求ノードは秘密点sを組み立てる。
ノードのグループ内のノードの協働作業を通してクレデンシャルを取得すると、中央の権限に依存すること又は検証/認証のためにグループに戻ることなく、クレデンシャルをチェック又は検証するメカニズムを有することが有利である。その方法で、同じノードグループからの、有効なクレデンシャルを有すると主張する2つのノードが、発行されたクレデンシャルを協働的に立証及び検証するノードのグループを有することに関連づけられた時間遅延及び通信オーバーヘッドの負担なく、互いのクレデンシャルを検証することができる。
概観として、グループ秘密鍵kが有限体のメンバである、すなわちk∈Zであることを考える。クレデンシャルを取得した要求ノードは、該クレデンシャルを、その識別子idと巡回群G内の秘密点sとの形式で有する。この例示的な実施形態において、識別子(又は「仮名(pseudonym)」)idは、(Alice||role||expiration time)であり、||は、2つの文字列の連結を示し、roleは、ノードのグループ及び/又はその機能若しくは役割に関連づけられた文字列又は他の英数字識別子である。要求ノードは、その識別子を誰にでも明らかにすることができるが、sを秘密にする。
別の要求ノードが、(Bob||role||expiration time)としての識別子idと、秘密点sとを取得する。
秘密点sは、s=k・H(id)により与えられ、秘密点sは、s=k・H(id)により与えられることに留意する。
AliceとBobが互いに信頼された通信を確立したい、すなわち、これらのうち一方又は双方が他方のクレデンシャルを立証したいとき、この2つのノードは、その秘密点を開示することなく、そのそれぞれの識別子/仮名を交換する。
次いで、ノードAliceが、セッション鍵Kを、
=e(H(Bob||role||expiration time),s
を計算することにより生成する。e()は、双線形写像、すなわちペアリング演算であり、ノードBobは、セッション鍵Kを、
=e(s,H(Alice||role||expiration time))
を計算することにより算出する。
演算H()は、以下でさらに説明されるように、マップツーポイント関数である。ペアリングの特性に起因して、2つの鍵は同じであり、すなわちK=Kである。チャレンジ値を送信し、それのレスポンスを得ることにより、2つのノードは、プロトコルが成功したこと、すなわち、2つのノードが各々、同じ役割を示す同じノードグループにより発行されたクレデンシャルを保持していることを立証することができる。あるいは、一方の当事者が、他方に何らかのコンテンツを送信することができ、これは、ハンドシェイクが成功した場合、及びその場合に限り、成功裏に復号される。
この例におけるペアリング演算は、s及びsがこの場合には同じ巡回群Gからであることに依存する。他の場合に、この2つは、別のアーベル群内の値を
e:G×G→G
としてとる2つのアーベル群として関連する、異なる巡回群G1及びG2からであってもよく、G、G、及びGは、同じ位数の巡回群である。
公開であるクレデンシャルの生成において特定のパラメータが存在する。これらは、処理において任意のノードにより生成され、他のノードと共有されてもよい。Eが、体F上のn個の点を含む楕円曲線であるという仮定から開始し、qが、2及び3に対し相対的に素な素数のべきである場合、公開パラメータは、以下:
params=(p,G,G,G,g,g,e,H,H
を含んでもよく、g(resp.g)は、双線形写像e(.,.)を有する素数位数pの群G(resp.G)の生成元である。Gは、互いに素なr、qを有する位数rのE(F)の巡回部分群である。そして、e(g,g)は、位数pを同様に有するGを生成する。H及びHは、それぞれ、G及びGに関するマップツーポイントハッシュである。上述したように、いくつかの実装において、及び本明細書に記載した例の多くにおいて、Gのみが使用されてもよく、これは、同じマップツーポイントハッシュ関数Hが秘密点s及びsの双方に使用されることを意味する。
いくつかの楕円曲線暗号システムにおいて、ハッシュアルゴリズムは、有限体の元であるパスワード又は他の文字列を、所与の楕円曲線の点に写像するために使用される。これらは、マップツーポイントハッシュである。より正確には、マップツーポイントハッシュ関数Hは、インプットにメッセージをとって点P∈E(K)を返す変換である。より詳細には、Hは、点P∈E(K)[r]を返し、E(K)[r]は、Gにより生成されたE(K)の部分群である。このスキームにおいて、基礎体Fから曲線への1対1の写像が存在する。これは、f(H(m))を使用してハッシュすることを可能にし、Hは、古典的なハッシュ関数であり、H(m)∈Fである。
次に、互いのクレデンシャルを検証することにより信頼された通信チャネルを確立する際の、2つのノードA及びB間のメッセージフローが説明される。この例示的な実装において、ノードAは、その識別子idをノードBに提供する。識別子idは公に利用可能であり、いくつかの場合には別のソースからノードBにより取得されてもよい。これから、ノードBは、ノードAの識別子と、ノードBにより保持される秘密点sと、クレデンシャルを発行したノードのグループにより規定されるマップツーポイントハッシュ関数Hとを使用して、セッション鍵Kを生成することができる。セッション鍵Kは、ノードのグループにより同様に規定されるペアリング演算e()、すなわち、
=e(s,H(Alice||role||expiration time))
を使用して生成され、この例において、ノードBの識別子idは、(Alice||role||expiration time)である。
ノードBは、その識別子idをノードAを提供し、次いで、ノードAは、ノードBの識別子、その秘密点s、並びに同じペアリング演算及びマップツーハッシュ関数、すなわち、
=e(H(Bob||role||expiration time),s
を使用して、セッション鍵Kを同様に生成することができる。
秘密点が、同じグループ秘密鍵kとそれぞれのノードA及びBの識別子とを使用してノードのグループにより適法に協働的に生成された場合、ペアリング演算は、K=Kの結果をもたらすはずである。これは、任意数の方法でテストしてもよい。この例示的な実装において、ノードAは、セッション鍵Kで暗号化されたチャレンジをノードBに送信する。ノードBは、そのセッション鍵Kを使用してチャレンジを復号しようとし、チャレンジに対するレスポンスを送信する。レスポンスは、セッション鍵Kにより暗号化されてもよい。これに基づいて、双方のノードは、これらが同じセッション鍵を有することを確かめることができる。そのセッション鍵は、2つのノード間の通信を暗号化するために使用されてもよい。別の実装において、セッション鍵は、別の鍵のセットアップにつながる通信を暗号化するために使用されてもよい。さらに別の実装において、2つのノード間の通信は、上述の手順に単に依存して互いのクレデンシャルを検証/認証し、2つのノード間の通信は、暗号化されないか、あるいはノードの通常の公開・秘密鍵ペアを使用して暗号化される。
次に、別の例示的な実装が説明される。この例では、ノードAは、ランダムノンスnonceを生成することで開始する。それは、その識別子id及びそのノンスをノードBに送信する。ノードBは、その独自のノンスnonceを生成する。ノードBは、次いで、この例では、ペアリング演算の結果とノンスを含む他のデータとのハッシュである値Cを生成する。この例では、値Cは、
=H(e(s,H(id))||id||id||nonce||nonce
により与えられてもよく、Hは、文字列から文字列への衝突耐性ハッシュ関数である。一例において、Hは、SHA‐256である。
ノードBは、次いで、ノードAにリプライし、その識別子id、そのノンスnonce、及び値Cを提供する。ノードAは、次いで、同様の算出を実行して値Cを取得する。値Cは、この例では、
=H(e(H(id),s)||id||id||nonce||nonce
として表される。
に対するCの式内の引数における唯一の差は、ペアリング演算であることに留意されたい。したがって、双線形ペアリング演算が、ノードA及びノードBのクレデンシャルが同じノードグループから取得されたことを確認した場合、2つの値は一致するはずである。ノードAは、それらが一致することを立証することができ、そうである場合、CをノードBに送信し、ノードBもまた、それらが一致することを立証する。一実装において、値C=Cは、次いで、ノードA及びノードBの間の通信を暗号化するためのセッション鍵として使用される。いくつかの実装において、ノードは、通常の公開鍵・秘密鍵のペアに単に依存して通信を暗号化し、上述の動作は、認証のためのものであり、セッション鍵を確立するためのものではない。
いくつかの例示的な実装において、値C及びCを形成するために連結及びハッシュされるデータ又は文字列は、他のデータ又は文字列を含んでもよく、あるいは上記の例示的な文字列のうちいくつかを除外してもよい。例えば、一実装において、値CとCは、識別子id及びidの連結を含まなくてもよい。しかしながら、ハッシュ及びノンスが中間者攻撃から通信を保護するのに役立つことは理解されるであろう。
上述の実施形態は、発明を限定するのでなく例示しており、当業者は、別記の特許請求の範囲により定義される発明の範囲から逸脱することなく多くの代替的な実施形態を設計可能であることに留意されたい。例えば、トランザクションはビットコインを移転し得るが、ユーザは本明細書に記載される方法及びシステムを使用して情報、コントラクト、及びトークンなどの他のリソースを代わりに交換してもよいことが理解されるべきである。トークンは、トークンに関連づけられたスマートコントラクトに従った資産又はリソースを表し、それにより、トークンの制御は資産又はリソースの制御を与える。スマートコントラクト自体はブロックチェーン外に記憶されてもよく、あるいは、それは1つ以上のトランザクション内部に記憶されてもよい。
特許請求の範囲においては、括弧内に付されたいかなる参照符号も、特許請求の範囲を限定するものと解釈されてはならない。用語「含んでいる」及び「含む」などは、任意の請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を除外しない。本明細書において、「含む」は、「含める、又は、からなる」ことを意味し、「含んでいる」は、「含めている、又は、からなっている」ことを意味する。要素の単数の参照は、そのような要素の複数の参照を除外するものではなく、その逆もまた同様である。発明は、いくつかの区別可能な要素を含むハードウェアを用いて、及び適切にプログラムされたコンピュータを用いて実現されてもよい。いくつかの手段を列挙するデバイスクレームにおいては、これらの手段のうちいくつかは、1つ及び同じアイテムのハードウェアにより具現化されてもよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが利するように使用できないことを示すものではない。

Claims (20)

  1. ブロックチェーンネットワークのノードのための、コンピュータにより実現される方法であって、
    ブロックチェーンから、プルーフオブストレージがチャレンジされるべき1つ以上のトランザクションを選択するステップであり、前記選択された1つ以上のトランザクションはトランザクション深さを有する、ステップと、
    プルーフオブストレージがチャレンジされるべき前記1つ以上の選択されたブロックチェーントランザクションを示すプルーフオブブロックチェーンストレージトランザクションと、前記1つ以上の選択されたトランザクションを記憶するストレージノードによりロック解除できるプルーフオブブロックチェーンストレージ報酬とを作成するステップと、
    前記プルーフオブブロックチェーンストレージトランザクションを前記ブロックチェーンネットワーク上の1つ以上のストレージノードに送信するステップと、
    を含む、コンピュータにより実現される方法。
  2. 前記1つ以上の選択されたブロックチェーントランザクションは、前記ブロックチェーンにおける前記1つ以上のトランザクションの深さに対応するトランザクション深さdを有し、
    前記プルーフオブブロックチェーンストレージ報酬は、前記トランザクション深さdに従って設定され、それにより、前記トランザクション深さdがより大きいほど前記報酬がより大きい、
    請求項1に記載のコンピュータにより実現される方法。
  3. 前記1つ以上のブロックチェーントランザクションは前記ブロックチェーンからランダムに選択される、
    請求項1又は2に記載のコンピュータにより実現される方法。
  4. ブロックチェーントランザクションのリストが前記ブロックチェーンから選択される、
    請求項1乃至3のうちいずれか1項に記載のコンピュータにより実現される方法。
  5. 前記1つ以上のトランザクションは、前記ブロックチェーン上で複数の確認を受信した1つ以上のブロックから選択される、
    請求項1乃至4のうちいずれか1項に記載のコンピュータにより実現される方法。
  6. 前記プルーフオブブロックチェーンストレージトランザクションは、前記ブロックチェーン上に記憶されるべき新たにマイニングされたブロックに関連づけられたデータを含む、
    請求項1乃至5のうちいずれか1項に記載のコンピュータにより実現される方法。
  7. 前記新たにマイニングされたブロックに関連づけられた前記データは、前記新たにマイニングされたブロックのブロックヘッダデータである、
    請求項6に記載のコンピュータにより実現される方法。
  8. 新たにマイニングされたブロックに関連づけられた前記データは、前記ブロックチェーンから選択された前記1つ以上のブロックチェーントランザクションに関連づけられたデータと組み合わせられる、
    請求項6又は7に記載のコンピュータにより実現される方法。
  9. 前記新たにマイニングされたブロックに関連づけられた前記データは、XOR演算又は連結により、前記ブロックチェーンから選択された前記1つ以上のブロックチェーントランザクションに関連づけられた前記データと組み合わせられる、
    請求項8に記載のコンピュータにより実現される方法。
  10. 前記プルーフオブブロックチェーンストレージトランザクションは、
    前記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータの暗号関数、
    前記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータと組み合わせられた新たにマイニングされたブロックに関連づけられたデータの暗号関数、
    のうち1つを含む、請求項6乃至9のうちいずれか1項に記載のコンピュータにより実現される方法。
  11. 前記プルーフオブブロックチェーンストレージトランザクションは、前記ブロックチェーンネットワーク上の前記1つ以上のストレージノードに関連づけられた1つ以上のブロックチェーンネットワークアドレスを含む、
    請求項1乃至10のうちいずれか1項に記載のコンピュータにより実現される方法。
  12. 前記ブロックチェーンネットワーク上の前記1つ以上のストレージノードに関連づけられた前記1つ以上のブロックチェーンネットワークアドレスは、認定されたブロックチェーンネットワークアドレスであり、認定は、秘密鍵シェアスキームを介して達成される、
    請求項11に記載のコンピュータにより実現される方法。
  13. 前記1つ以上の選択されたブロックチェーントランザクションの識別番号を含むチャレンジプレフィックスを生成するステップ、をさらに含み、前記チャレンジプレフィックス及び前記プルーフオブブロックチェーンストレージトランザクションは、前記ブロックチェーンネットワーク上の前記1つ以上のストレージノードに送信される、
    請求項1乃至12のうちいずれか1項に記載のコンピュータにより実現される方法。
  14. 前記チャレンジプレフィックスと、前記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータの暗号関数又は前記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータと組み合わせられた新たにマイニングされたブロックに関連づけられたデータの暗号関数とを生成するために、ランダムオラクルが使用される、
    請求項13に記載のコンピュータにより実現される方法。
  15. 前記チャレンジプレフィックスは、完全性及び認証に対するデジタル署名を添えられ、あるいは、前記チャレンジプレフィックスのメッセージが、非トランザクションフィールドで送信される、
    請求項13又は14に記載のコンピュータにより実現される方法。
  16. 前記プルーフオブブロックチェーンストレージトランザクションを受信すると、前記1つ以上のストレージノードは、それらノードに記憶された前記1つ以上の選択されたブロックチェーントランザクションにアクセスし、前記報酬をロック解除するために前記1つ以上の選択されたブロックチェーントランザクションを使用する、
    請求項1乃至15のうちいずれか1項に記載のコンピュータにより実現される方法。
  17. 前記報酬は、
    前記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータの暗号関数、
    前記1つ以上の選択されたブロックチェーントランザクションに関連づけられたデータと組み合わせられた新たにマイニングされたブロックに関連づけられたデータの暗号関数、
    のうち1つを算出することによりロック解除される、請求項16に記載のコンピュータにより実現される方法。
  18. コンピュータ実行可能命令を含むコンピュータ読取可能記憶媒体であって、前記コンピュータ実行可能命令は、実行されたときに、請求項1乃至17のうちいずれか1項に記載の方法を実行するように1つ以上のプロセッサを構成する、コンピュータ読取可能記憶媒体。
  19. インターフェースデバイスと、
    前記インターフェースデバイスに結合された1つ以上のプロセッサと、
    前記1つ以上のプロセッサに結合されたメモリであり、前記メモリは、コンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令は、実行されたときに、請求項1乃至17のうちいずれか1項に記載の方法を実行するように前記1つ以上のプロセッサを構成する、メモリと、
    を含む電子デバイス。
  20. ブロックチェーンネットワークのノードであって、請求項1乃至17のうちいずれか1項に記載の方法を実行するように構成された1つ以上のプロセッサを含む、ノード。
JP2020502349A 2017-07-24 2018-07-16 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法 Active JP7190481B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022194142A JP2023024499A (ja) 2017-07-24 2022-12-05 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1711867.0 2017-07-24
GBGB1711867.0A GB201711867D0 (en) 2017-07-24 2017-07-24 Computer-implemented system and method
PCT/IB2018/055237 WO2019021106A1 (en) 2017-07-24 2018-07-16 COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR SECURE STORAGE OF A LARGE BLOCK CHAIN ON A PLURALITY OF STORAGE NODES

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022194142A Division JP2023024499A (ja) 2017-07-24 2022-12-05 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法

Publications (2)

Publication Number Publication Date
JP2020528691A JP2020528691A (ja) 2020-09-24
JP7190481B2 true JP7190481B2 (ja) 2022-12-15

Family

ID=59771651

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020502349A Active JP7190481B2 (ja) 2017-07-24 2018-07-16 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法
JP2022194142A Pending JP2023024499A (ja) 2017-07-24 2022-12-05 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022194142A Pending JP2023024499A (ja) 2017-07-24 2022-12-05 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法

Country Status (8)

Country Link
US (1) US20200213125A1 (ja)
EP (2) EP3659082B1 (ja)
JP (2) JP7190481B2 (ja)
KR (1) KR102580509B1 (ja)
CN (1) CN110959163B (ja)
GB (1) GB201711867D0 (ja)
SG (1) SG11201912220VA (ja)
WO (1) WO2019021106A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113765657B (zh) * 2017-08-28 2023-10-24 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器
US10929473B2 (en) 2018-09-27 2021-02-23 Palo Alto Research Center Incorporated Integrated index blocks and searching in blockchain systems
CN109598504B (zh) * 2018-10-25 2020-09-01 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
CN109768866B (zh) * 2019-03-05 2021-03-30 同济大学 基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法
CN110445852B (zh) * 2019-07-29 2021-12-10 杭州复杂美科技有限公司 通证发放方法、设备和存储介质
US11057188B2 (en) * 2019-08-19 2021-07-06 International Business Machines Corporation Database service token
US11228452B2 (en) * 2019-09-16 2022-01-18 Cisco Technology, Inc. Distributed certificate authority
CN111510309B (zh) * 2020-04-08 2022-05-10 深圳大学 区块链数据传输方法、装置、设备及计算机可读存储介质
KR102276527B1 (ko) * 2020-11-11 2021-07-13 (주)소셜인프라테크 오브젝트의 정보 변경 방지를 위한 오브젝트 발행 시스템
CN114785509A (zh) * 2021-01-20 2022-07-22 杭州链网科技有限公司 一种基于区块链的可信计算存储方法
CN114362917B (zh) * 2021-12-28 2024-04-30 安徽师范大学 移动群智感知中安全可验证的数据真值发现方法
WO2024090461A1 (ja) * 2022-10-27 2024-05-02 株式会社ZK Corporation 鍵システム、電子錠装置、電子鍵装置、および情報通信システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085882A (ja) 2012-10-24 2014-05-12 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、ストレージサーバ、ストレージシステム、バックアップ方法、およびバックアッププログラム
WO2016151316A1 (en) 2015-03-24 2016-09-29 Intelligent Energy Limited An energy resource network
WO2017108783A1 (en) 2015-12-22 2017-06-29 Gemalto Sa Method for managing a trusted identity

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9922339B2 (en) * 2013-03-15 2018-03-20 Google Llc Randomized reward system for stored value transactions
EP3123432A4 (en) * 2014-03-22 2017-08-30 RetailMeNot, Inc. Caching geolocated offers
US20150363772A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency online vault storage system
US10565588B2 (en) 2015-03-12 2020-02-18 International Business Machines Corporation Cryptographic methods implementing proofs of work in systems of interconnected nodes
CA3002034A1 (en) * 2015-10-14 2017-04-20 Cambridge Blockchain, LLC Systems and methods for managing digital identities
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
WO2017091530A1 (en) * 2015-11-24 2017-06-01 Gartland & Mellina Group Blockchain solutions for financial services and other transaction-based industries
EP3414713B1 (en) * 2016-02-12 2023-07-26 Royal Bank Of Canada Methods and systems for digital reward processing
EP3420518B1 (en) * 2016-02-23 2023-08-23 nChain Licensing AG Methods and systems for efficient transfer of entities on a peer-to-peer distributed ledger using the blockchain
MX2018010054A (es) * 2016-02-23 2019-01-21 Nchain Holdings Ltd Metodo y sistema de tokenizacion para la implementacion de cambios de moneda en una cadena de bloques.
EP3862958A1 (en) * 2016-02-23 2021-08-11 Nchain Holdings Limited Methods and systems for the efficient transfer of entities on a blockchain
CA3014737A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
EP3424179B1 (en) * 2016-03-04 2022-02-16 Ping Identity Corporation Method and system for authenticated login using static or dynamic codes
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
KR102050129B1 (ko) * 2016-05-03 2019-11-28 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
US10291627B2 (en) * 2016-10-17 2019-05-14 Arm Ltd. Blockchain mining using trusted nodes
US10387684B2 (en) * 2016-12-09 2019-08-20 International Business Machines Corporation Interlocked blockchains to increase blockchain security
US20180189781A1 (en) * 2017-01-05 2018-07-05 The Toronto-Dominion Bank Real-time approval and execution of data exchanges between computing systems
EP3563553B1 (en) * 2017-02-24 2022-02-16 NEC Corporation Method for signing a new block in a decentralized blockchain consensus network
US10762481B2 (en) * 2017-03-21 2020-09-01 The Toronto-Dominion Bank Secure offline approval of initiated data exchanges
US10467586B2 (en) * 2017-03-23 2019-11-05 International Business Machines Corporation Blockchain ledgers of material spectral signatures for supply chain integrity management
US11887115B2 (en) * 2017-04-17 2024-01-30 Jeff STOLLMAN Systems and methods to validate transactions for inclusion in electronic blockchains
US20180330386A1 (en) * 2017-05-09 2018-11-15 Heonsu Kim Proof of ownership device and methods for using the same
US10762506B1 (en) * 2017-05-11 2020-09-01 United Services Automobile Association Token device for distributed ledger based interchange
US11924322B2 (en) * 2017-05-16 2024-03-05 Arm Ltd. Blockchain for securing and/or managing IoT network-type infrastructure
US10397328B2 (en) 2017-05-17 2019-08-27 Nec Corporation Method and system for providing a robust blockchain with an integrated proof of storage
US10601900B2 (en) * 2017-05-24 2020-03-24 Red Hat, Inc. Supporting distributed ledgers in a micro-services environment
US11030681B2 (en) * 2017-07-21 2021-06-08 International Business Machines Corporation Intermediate blockchain system for managing transactions
CN112119611A (zh) * 2018-05-14 2020-12-22 区块链控股有限公司 使用区块链执行原子交换的计算机实现的系统和方法
US20210264419A1 (en) * 2020-02-21 2021-08-26 International Business Machines Corporation Resolution of conflicting data
US20230297983A1 (en) * 2022-03-18 2023-09-21 Capital One Services, Llc Systems and methods for granting smart contracts

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085882A (ja) 2012-10-24 2014-05-12 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、ストレージサーバ、ストレージシステム、バックアップ方法、およびバックアッププログラム
WO2016151316A1 (en) 2015-03-24 2016-09-29 Intelligent Energy Limited An energy resource network
WO2017108783A1 (en) 2015-12-22 2017-06-29 Gemalto Sa Method for managing a trusted identity

Also Published As

Publication number Publication date
JP2020528691A (ja) 2020-09-24
EP3659082B1 (en) 2022-04-13
KR20200034728A (ko) 2020-03-31
CN110959163B (zh) 2024-04-02
JP2023024499A (ja) 2023-02-16
EP4068183A1 (en) 2022-10-05
EP3659082A1 (en) 2020-06-03
US20200213125A1 (en) 2020-07-02
SG11201912220VA (en) 2020-02-27
GB201711867D0 (en) 2017-09-06
CN110959163A (zh) 2020-04-03
WO2019021106A1 (en) 2019-01-31
KR102580509B1 (ko) 2023-09-21

Similar Documents

Publication Publication Date Title
JP7190481B2 (ja) 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法
TWI744532B (zh) 用以於區塊鏈網路節點間建立受信賴點對點通訊之方法與系統
JP6515246B2 (ja) 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
CN108885741B (zh) 一种实现区块链上交换的令牌化方法及系统
JP2023179729A (ja) コンピュータ実装されるシステムおよび方法
Zhou et al. EverSSDI: blockchain-based framework for verification, authorisation and recovery of self-sovereign identity using smart contracts
JP2022500920A (ja) コンピュータにより実施される、共通シークレットを共有するシステム及び方法
CN110572788B (zh) 基于非对称密钥池和隐式证书的无线传感器通信方法和系统
TWI840358B (zh) 用以使用區塊鏈來執行基元式互換之電腦實施系統及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220316

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220826

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: 20221004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221011

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221205

R150 Certificate of patent or registration of utility model

Ref document number: 7190481

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150