JP2023551458A - Oprfを介したブロックチェーンネットワークにおける鍵再生 - Google Patents

Oprfを介したブロックチェーンネットワークにおける鍵再生 Download PDF

Info

Publication number
JP2023551458A
JP2023551458A JP2023531520A JP2023531520A JP2023551458A JP 2023551458 A JP2023551458 A JP 2023551458A JP 2023531520 A JP2023531520 A JP 2023531520A JP 2023531520 A JP2023531520 A JP 2023531520A JP 2023551458 A JP2023551458 A JP 2023551458A
Authority
JP
Japan
Prior art keywords
blockchain
key
keys
peers
transaction
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
JP2023531520A
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023551458A publication Critical patent/JP2023551458A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

例示の動作は、暗号鍵を用いてプライベート鍵を暗号化すること、暗号鍵に基づいて複数の鍵を生成し、秘密入力値に基づいて、複数の鍵を複数の鍵共有に変換すること、暗号化されたプライベート鍵をブロックチェーン上に記憶すること、及びブロックチェーンの複数のブロックチェーンピアに複数の鍵共有を分散させることのうちの1つ又は複数を含んでよく、ここで、分散させることは、複数の鍵共有の中からの異なる鍵共有を、複数のブロックチェーンピアの中の各ブロックチェーンピアに送信することを有する。

Description

中央集権型プラットフォームは、データを単一のロケーションに記憶及び維持する。このロケーションは、多くの場合、中央コンピュータ、例えば、クラウドコンピューティング環境、ウェブサーバ、メインフレームコンピュータ等である。中央集権型プラットフォーム上に記憶された情報は、典型的には、複数の異なるポイントからアクセス可能である。複数のユーザ又はクライアントワークステーションが、例えば、クライアント/サーバ構成に基づいて、中央集権型プラットフォーム上で同時に作業することができる。中央集権型プラットフォームは、その単一のロケーションに起因して、特にセキュリティの目的で、管理、維持、及び制御することが容易である。中央集権型プラットフォーム内では、全てのデータの単一の記憶場所は、データの所与のセットが1つのプライマリレコードしか有しないことも示唆するため、データ冗長性は最小化される。
1つの例示の実施形態は、暗号鍵を用いてプライベート鍵を暗号化すること、暗号鍵に基づいて複数の鍵を生成し、秘密入力値に基づいて、複数の鍵を複数の鍵共有に変換すること、及び暗号化されたプライベート鍵をブロックチェーン上に記憶することのうちの1つ又は複数を行うように構成されたプロセッサ、及びブロックチェーンの複数のブロックチェーンピアに複数の鍵共有を分散させるように構成されたネットワークインターフェースのうちの1つ又は複数を備える装置を提供し、ここで、プロセッサは、複数の鍵共有の中からの異なる鍵共有を、複数のブロックチェーンピアの中の各ブロックチェーンピアに送信する。
別の例示の実施形態は、暗号鍵を用いてプライベート鍵を暗号化する段階、暗号鍵に基づいて複数の鍵を生成し、秘密入力値に基づいて、複数の鍵を複数の鍵共有に変換する段階、暗号化されたプライベート鍵をブロックチェーン上に記憶する段階、及びブロックチェーンの複数のブロックチェーンピアに複数の鍵共有を分散させる段階のうちの1つ又は複数を備える方法を提供し、ここで、分散させる段階は、複数の鍵共有の中からの異なる鍵共有を、複数のブロックチェーンピアの中の各ブロックチェーンピアに送信する段階を有する。
更なる例示の実施形態は、プロセッサによって読み取られると、プロセッサに、暗号鍵を用いてプライベート鍵を暗号化すること、暗号鍵に基づいて複数の鍵を生成し、秘密入力値に基づいて、複数の鍵を複数の鍵共有に変換すること、暗号化されたプライベート鍵をブロックチェーン上に記憶すること、及びブロックチェーンの複数のブロックチェーンピアに複数の鍵共有を分散させることのうちの1つ又は複数を実行させる命令を備える非一時的コンピュータ可読媒体を提供し、ここで、分散させる段階は、複数の鍵共有の中からの異なる鍵共有を、複数のブロックチェーンピアの中の各ブロックチェーンピアに送信する段階を有する。
例示の実施形態に係る、ブロックチェーンネットワークを用いて暗号化されたプライベート鍵を記憶するプロセスを示す図である。
例示の実施形態に係る、暗号鍵を、忘却疑似乱数関数(OPRF)を介して鍵共有に変換するプロセスを示す図である。
例示の実施形態に係る、暗号鍵を復元するプロセスを示す図である。
例示の実施形態に係る、手数料トランザクションを解読し、暗号化されたプライベート鍵を取得するプロセスを示す図である。
例示の実施形態に係る例示のブロックチェーンアーキテクチャ構成を示す図である。
例示の実施形態に係る、ノード間のブロックチェーントランザクションフローを示す図である。
例示の実施形態に係る許可型ネットワークを示す図である。
例示の実施形態に係る別の許可型ネットワークを示す図である。
例示の実施形態に係る自由参加型ネットワークを示す図である。
例示の実施形態に係る、OPRF鍵を生成するとともに分散させる通信プロセスを示す図である。
例示の実施形態に係る、分散したOPRF鍵に基づいて暗号鍵を復元する通信プロセスを示す図である。
例示の実施形態に係る、ブロックチェーンネットワークのピア間で暗号鍵を分散させる方法を示す図である。
例示の実施形態に係る、本明細書において説明される1つ又は複数の動作を実行するように構成された例示のシステムを示す図である。
例示の実施形態に係る、本明細書において説明される1つ又は複数の動作を実行するように構成された別の例示のシステムを示す図である。
例示の実施形態に係る、スマートコントラクトを利用するように構成された更なる例示のシステムを示す図である。
例示の実施形態に係る、ブロックチェーンを利用するように構成された更に別の例示のシステムを示す図である。
例示の実施形態に係る、新たなブロックが分散台帳に追加されるプロセスを示す図である。
例示の実施形態に係る、新たなデータブロックのデータコンテンツを示す図である。
例示の実施形態に係るデジタルコンテンツのブロックチェーンを示す図である。
例示の実施形態に係る、ブロックチェーン内のブロックの構造を表し得るブロックを示す図である。
例示の実施形態に係る、機械学習(人工知能)データを記憶する例示のブロックチェーンを示す図である。
例示の実施形態に係る例示の量子セキュアブロックチェーンを示す図である。
例示の実施形態のうちの1つ又は複数をサポートする例示のシステムを示す図である。
本明細書において概して説明され、図示されるような本コンポーネントは、多種多様な異なる構成において配置及び設計され得ることが容易に理解されるであろう。それゆえ、添付の図に表されるような、方法、装置、非一時的コンピュータ可読媒体及びシステムのうちの少なくとも1つの実施形態の以下の詳細な説明は、特許請求される本出願の範囲を限定することを意図するものではなく、単に選択された実施形態を代表するものである。
本明細書全体を通して説明されるような本特徴、構造、又は特性は、1つ又は複数の実施形態において任意の適した方法で組み合わされるか又は除去され得る。例えば、本明細書全体を通した「例示の実施形態」、「幾つかの実施形態」という語句、又は他の同様の文言の使用は、実施形態に関連して説明された特定の特徴、構造、又は特性が、少なくとも1つの実施形態に含まれ得ることを指す。それゆえ、本明細書全体を通した「例示の実施形態」、「幾つかの実施形態では」、「他の実施形態では」、又は他の同様の文言の出現は、必ずしも全てが実施形態の同じグループを指すわけではなく、説明された特徴、構造、又は特性が、1つ又は複数の実施形態において任意の適した方法で組み合わされるか又は除去され得る。さらに、図面において、要素間の任意の接続は、示されている接続が一方向又は双方向の矢印の場合でも、一方向通信及び/又は双方向通信を許容することができる。また、図面において示された任意のデバイスは、異なるデバイスであり得る。例えば、モバイルデバイスが情報を送信しているものと示される場合、有線デバイスを使用して情報を送信することもできる。
加えて、「メッセージ」という用語が実施形態の説明において使用されている場合があるが、本出願は、多くのタイプのネットワーク及びデータに適用され得る。さらに、例示的な実施形態において特定のタイプの接続、メッセージ、及びシグナリングが示されている場合があるが、本出願は、特定のタイプの接続、メッセージ、及びシグナリングに限定されない。
例示の実施形態は、忘却疑似乱数関数(OPRF)に基づく鍵復元プロセスを対象とする、方法、システム、コンポーネント、非一時的コンピュータ可読媒体、デバイス、及び/又はネットワークを提供する。
1つの実施形態では、本出願は、互いに通信する複数のノードを備える分散ストレージシステムである非中央集権型データベース(ブロックチェーン等)を利用する。非中央集権型データベースは、相互に信頼されていない当事者間のレコードを維持することが可能な分散台帳に類似する追加専用の不変データ構造を含む。信頼されていない当事者は、本明細書において、ピア又はピアノードと称される。各ピアは、データベースレコードのコピーを維持し、分散したピア間でコンセンサスに達することを伴わなければ、いずれの単一のピアもデータベースレコードを修正することができない。例えば、ピアは、コンセンサスプロトコルを実行して、ブロックチェーン記憶トランザクションをバリデートし、記憶トランザクションを複数のブロックにグループ化し、ブロックにわたってハッシュチェーンを構築してよい。このプロセスは、一貫性のために、必要に応じて記憶トランザクションを順序付けすることによって台帳を形成する。様々な実施形態において、許可型及び/又は自由参加型ブロックチェーンを使用することができる。パブリック又は自由参加型ブロックチェーンでは、誰でも特定のアイデンティティを伴わずに参加することができる。パブリックブロックチェーンは、ネイティブの暗号通貨を含み、プルーフオブワーク(PoW)等の様々なプロトコルに基づくコンセンサスを使用することができる。他方、許可型ブロックチェーンデータベースは、資金、商品、情報等を交換するビジネス等の、共通の目的を共有するが互いに完全には信頼していないエンティティのグループ間でのセキュアなインタラクションを提供する。
本出願は、非中央集権型ストレージ方式に合わせて調整され、「スマートコントラクト」又は「チェーンコード」と称される、任意のプログラマブルロジックを動作させるブロックチェーンを利用することができる。幾つかの事例では、システムチェーンコードと称される管理機能及びパラメータに特化したチェーンコードが存在し得る。本出願は、ブロックチェーンデータベースの改ざん防止特性、及び承認又は承認ポリシと称される、ノード間の基礎となる合意を活用する、信頼された分散アプリケーションであるスマートコントラクトを更に利用することができる。このアプリケーションに関連付けられたブロックチェーントランザクションは、ブロックチェーンにコミットされる前に「承認」することができ、一方、承認されていないトランザクションは無視される。承認ポリシにより、チェーンコードは、承認に必要であるピアノードのセットの形式においてトランザクションのための承認者を指定することが可能になる。クライアントがトランザクションを承認ポリシにおいて指定されたピアに送信すると、トランザクションが実行されて、トランザクションがバリデートされる。バリデーション後、トランザクションは、順序付けフェーズに入り、ここで、コンセンサスプロトコルが使用されて、複数のブロックにグループ化された承認されたトランザクションの順序付きシーケンスが生成される。
本出願は、ブロックチェーンシステムの通信エンティティであるノードを利用することができる。「ノード」は、異なるタイプの複数のノードが同じ物理サーバ上で動作することができるという意味で、論理機能を実行してよい。ノードは、信頼ドメインにグループ化され、様々な方法においてこれらを制御する論理エンティティに関連付けられる。ノードは、承認者(例えば、ピア)にトランザクション呼び出しをサブミットし、順序付けサービス(例えば、順序付けノード)にトランザクション提案をブロードキャストするクライアント又はサブミッティングクライアントノード等の異なるタイプを含んでよい。別のタイプのノードは、クライアントがサブミットしたトランザクションを受信し、トランザクションをコミットし、ブロックチェーントランザクションの台帳の状態及びコピーを維持することができるピアノードである。ピアは、承認者の役割も有することができるが、これは要件ではない。順序付けサービスノード又はオーダラは、全てのノードのために通信サービスを実行するノードであり、トランザクションをコミットし、通常は制御及びセットアップ情報を含む初期ブロックチェーントランザクションの別名であるブロックチェーンのワールド状態を修正するときにシステム内のピアノードの各々へのブロードキャスト等の送達保証を実装する。
本出願は、ブロックチェーンの全ての状態遷移のシーケンス化された改ざん耐性のあるレコードである台帳を利用することができる。状態遷移は、参加当事者(例えば、クライアントノード、順序付けノード、承認者ノード、ピアノード等)によってサブミットされたチェーンコード呼び出し(すなわち、トランザクション)から生じ得る。各参加当事者(ピアノード等)は、台帳のコピーを維持することができる。トランザクションの結果、アセット鍵-値ペアのセットが、作成、更新、削除等のような1つ又は複数のオペランドとして台帳にコミットされ得る。台帳は、不変シーケンス化レコードを複数のブロックに記憶するのに使用されるブロックチェーン(チェーンとも称される)を含む。台帳は、ブロックチェーンの現在の状態を維持する状態データベースも含む。
本出願は、ハッシュリンクされたブロックとして構造化されているトランザクションログであるチェーンを利用することができ、各ブロックは、N個のトランザクションのシーケンスを含み、ここで、Nは、1に等しいか又はこれよりも大きい。ブロックヘッダは、ブロックのトランザクションのハッシュ、並びに先行ブロックのヘッダのハッシュを含む。このようにして、台帳上の全てのトランザクションがシーケンス化され、暗号によってともにリンクされてよい。したがって、ハッシュリンクを破壊することなく台帳データを改ざんすることは可能ではない。直近で追加されたブロックチェーンブロックのハッシュは、それの前に発生したチェーン上の全てのトランザクションを表し、全てのピアノードが一貫しているとともに信頼された状態にあることを確実にすることが可能になる。チェーンは、ピアノードファイルシステム(すなわち、ローカル、アタッチトストレージ、クラウド等)上に記憶されてよく、ブロックチェーンワークロードの追加専用の性質が効率的にサポートされる。
不変台帳の現在の状態は、チェーントランザクションログに含まれる全ての鍵についての最新の値を表す。現在の状態はチャネルに既知の最新の鍵値を表すので、これは、時としてワールド状態と称される。チェーンコード呼び出しは、台帳の現在の状態のデータに対してトランザクションを実行する。これらのチェーンコードインタラクションを効率的にするために、鍵の最新の値は、状態データベースに記憶されてよい。状態データベースは、単にチェーンのトランザクションログへのインデックス付きビューであってよく、したがって、これは、任意の時点においてチェーンから再生成することができる。状態データベースは、ピアノードのスタートアップ時、及びトランザクションが受け入れられる前に、自動的に復元(又は必要であれば生成)されてよい。
非対称鍵ペア(プライベート及び公開デジタル鍵ペア)は、多くの場合、情報をセキュア化するのに使用される。例えば、ブロックチェーンクライアントは、ブロックチェーンの他の参加者にサブミットされるデータを暗号化/解読するためにプライベート鍵を使用してよい。この例では、プライベート鍵は、クライアントにのみ既知である。一方、プライベート鍵の対応する公開鍵は、ブロックチェーン上の他の参加者の間で共有され、データを解読/暗号化するのに使用されてよい。しかしながら、プライベート鍵が喪失される(例えば、プライベート鍵を記憶デバイスが破壊される、喪失される、動作不能になる、等)と、そのようなプライベート鍵を用いて暗号化されているデータも喪失される。したがって、クライアントは、プライベート鍵が永久的に喪失される事態に備え、サードパーティ(例えば、リモートサーバ等)を用いてプライベート鍵を記憶してよい。
例えば、サーバからプライベート鍵を取得するために、クライアントは、ログインのためのパスワードを提供してよい。パスワードベース認証は、クライアント(パスワードの知識を有する)がプライベート鍵を取得することが可能であることを可能にする。一方、パスワードを有しないエンティティは、プライベート鍵を取得することができない。しかしながら、パスワードベース認証は、悪意のある攻撃を受けやすい。例えば、クライアントがプライベート鍵をリモートサーバに送信する場合、クライアントは、パスワードを含む認証プロセスをサーバとセットアップし得る。サーバは、パスワードのソルト化及びハッシュ化された形式を記憶し得る。クライアントがプライベート鍵を取得することを望む場合、これは、ログインプロセス中等で対応するパスワードを提供する。この場合、サーバに悪意がある場合、サーバは、パスワードに対するブルートフォース辞書攻撃を通して、又はログインを自明に傍受することによって、パスワードを発見することができる。
例示の実施形態は、プライベート鍵を、ブルートフォース攻撃を受けやすいままにすることなく、パスワードベース認証を実行することができる新たなメカニズムを提供する。特に、プライベート鍵は、暗号鍵を用いて暗号化され得る。ここで、暗号化されたプライベート鍵は、1つ又は複数のブロックチェーンピアに提供され、さらにはブロックチェーン上で記憶されてよい。さらに、プライベート鍵は、複数の鍵値(例えば、乱数値)に変換されてよく、忘却疑似乱数関数(OPRF)が、複数の鍵を複数の鍵共有に変換するのに使用されてよい。この例では、OPRFは、クライアントからパスワード(秘密入力)を受信し、パスワードに基づいて複数の鍵共有を生成してよい。鍵共有は、複数のブロックチェーンピア間で分散してよい。
クライアントがプライベート鍵を復元することを望む場合、クライアントは、複数のブロックチェーンピアに鍵共有を要求する。ここで、クライアントは、暗号鍵を復元するために所定の数の鍵共有を必要とする場合がある。鍵共有を複数の鍵に戻るように変換するために、クライアントは、鍵共有及びパスワードをOPRFプログラムに入力し、当該OPRFプログラムは、複数の鍵を出力する。クライアントは、次に、複数の鍵から暗号鍵を再構築することができる。クライアントは、次に、ブロックチェーンピアに暗号化されたプライベート鍵を要求し、復元された暗号鍵に基づいて、暗号化されたプライベート鍵を解読することができる。
本明細書において説明されたOPRFプロセスの利益のうちの一部は、パスワードを、悪意のあるクライアント及び悪意のあるピア(サーバ)の両方から保護することを含む。例えば、ブルートフォースログイン試行及び/又はサーバ上に記憶される情報を学習することを試行する悪意のあるクライアントは、パスワードを学習することを妨げられ、これはなぜならば、パスワードがサーバ上に記憶されていない又は当該サーバにアクセス可能ではないためである。その代わりに、パスワードは、プロセス全体を通してクライアントとともに留まる。さらに、オフライン辞書攻撃又は傍受攻撃を試行するサーバは、パスワードを取得することを妨げられ、これはなぜならば、サーバがパスワードを記憶しないためである。さらに、各鍵共有は、ランダムに見える。
図1Aは、例示の実施形態に係る、ブロックチェーンネットワークを用いて暗号化されたプライベート鍵101'を記憶するプロセス100Aを示している。図1Aを参照すると、クライアントアプリケーション(例えば、ブロックチェーンクライアント等)は、ブロックチェーンウォレット(図示せず)からプライベート鍵101を受信してよい。ここで、プライベート鍵101は、ブロックチェーンウォレットに関連付けられている対応する公開鍵を含む非対称鍵ペアの一部であってよい。この例では、クライアントアプリケーション110は、暗号鍵102に基づいてプライベート鍵101を暗号化して、暗号化されたプライベート鍵101'を生成してよい。
様々な実施形態によれば、クライアントアプリケーション110は、暗号化されたプライベート鍵101'及び手数料を、ブロックチェーン130を管理するブロックチェーンネットワークの1つ又は複数のブロックチェーンピア131、132、133、及び134を用いて記憶してよい。プライベート鍵101を暗号化することに加えて、ブロックチェーンピア131、132、133、及び134に割り当てられることになる手数料は、ブロックチェーンピアが手数料を費やすことを防止するために同様に暗号化されてよい。この例では、ブロックチェーンピア131~134は、全てのブロックチェーンピア131~134の間で分散/複製されるブロックチェーン台帳を実行するサーバであってよい。手数料は、ブロックチェーン130上に記憶されるトランザクションに含まれる補償であってよい。クライアントアプリケーション110が、その後にブロックチェーンピア131~134に暗号化されたプライベート鍵101'を要求すると、クライアントアプリケーション110は、手数料トランザクションを解読し、解読された手数料をブロックチェーンピア131~134のうちの任意のものに提供してよい。これに応答して、ブロックチェーンピア131~134は、対応するトランザクションを実行し、手数料を収集し、(図1Dにおいて示されているように)暗号化されたプライベート鍵を返してよい。
図1Bは、例示の実施形態に係る、暗号鍵102を、忘却疑似乱数関数(OPRF)サービス120を介して鍵共有122A~122Dに変換するプロセス100Bを示している。図1Bを参照すると、クライアントアプリケーション110は、暗号鍵102に基づいて複数の鍵112A、112B、112C、及び112Dを生成してよい。ここで、鍵112A~112Dは、暗号鍵102から抽出される疑似乱数値等であってよい。ここで、鍵112A~112Dの数は、クライアントアプリケーション110によって使用される、ネットワークのブロックチェーンピアの数に基づいてよい。例えば、鍵112A~112Dは、より大きい素数から一様にサンプリングされる乱数値であってよい。鍵112A~112Dは、それらをOPRFプロトコルを介して暗号鍵102を復元するのに使用することができるように生成される。
例示の実施形態では、ユーザ111(例えば、クライアントアプリケーション110に関連付けられている)は、パスワード114又は他の何らかの秘密値を有する。ここで、パスワード114は、ユーザ111にのみ既知であるテキスト値又は英数字値であってよい。鍵112A~112Dは、クライアントアプリケーション110から出力されるとともに、OPRFサービス120に入力されてよい。パスワード114も、ユーザデバイスのユーザインターフェース(図示せず)を介して出力されるとともに、OPRFサービス120に入力されてよい。この例では、OPRFサービス120は、(クライアントデバイス上の)クライアントアプリケーション110と統合されてもよいし、又は、これは、クライアントデバイス上で実行されるスタンドアロンサービスであってもよい。OPRFサービス120は、(パスワード114を知る)ユーザ111のみが鍵112A~112Dを復元することができるように、OPRF鍵122A~122Dをパスワード114に紐付けするために、複数の鍵112A~112Dを、パスワード114を使用するOPRFプロトコルを介して複数のOPRF鍵122A~122Dに変換してよい。
各OPRF鍵122A、122B、122C、及び122Dを生成するために、OPRFサービス120は、所定の関数f(x)を実行してよい。
この例では、fは、OPRFアルゴリズムであり、Kは、ブロックチェーンピア(例えば、鍵112A~112Dのうちの1つ)に関連付けられた入力値であり、xは、クライアントアプリケーション110からの秘密値(例えば、パスワード114)である。関数fは、入力として鍵(鍵112A~112Dのうちの1つ)及び秘密値(パスワード114)を取り込み、ユーザ111の特定のパスワード114に紐付けられるOPRF鍵122A~122Dを返す二者間プロトコルである。例えば、OPRFサービス120は、入力として、鍵112A及びパスワード114を受信し、ブロックチェーンピア131に割り当てられるOPRF鍵122Aを出力してよい。このプロセスは、ブロックチェーンピア131~134の各々について実行されてよい。OPRFサービス120は、OPRF鍵122A~122Dを、並列に(同時に)、順次的に(例えば、一度に1つずつ)、時間的に部分的に重複して、等で生成してよい。OPRF関数(f)の例としては、とりわけ、DH-OPRF及びNaor-Reingoldが挙げられるが、これらに限定されない。さらに、OPRF鍵122A~122Dは、それぞれ、複数のブロックチェーンピア131~134に分散される。結果として、ブロックチェーンピア131~134は、パスワード114に関するものは一切学習しない。
関数fは、効率的に計算可能である場合には疑似乱数関数であり、Kは、ランダムに選択され、いずれの効率的なアルゴリズムも、fを、ランダム関数から区別することができない。さらに、クライアントアプリケーション110は、鍵112A~112Dの各々を、それぞれ、ブロックチェーンピア131~134のうちの1つに関連付けてよい。このシステムでは、OPRFプロトコルは、必然的にクライアントアプリケーション110及びそれぞれのブロックチェーンピア131~134の間の二者間プロトコルであり、ここで、クライアントは、入力xを提供し、ブロックチェーンピアは、入力Kに登録され、プロトコル後、クライアントは、ブロックチェーンピアがパスワード114に関する何も学習しないようにf(x)を計算する。
図1Cは、例示の実施形態に係る、暗号鍵102を復元するプロセス100Cを示している。この例では、OPRFサービス120は、図1Bのプロセス100Bにおけるブロックチェーンピア131~134を用いて記憶されたOPRF鍵122A~122D及びユーザ111から供給されたパスワード114に基づいて暗号鍵102を復元してよい。図1Cを参照すると、OPRFサービス120は、それぞれ、複数のピア131~134によって保持された複数のOPRF鍵122A~122Dを受信するとともに、ユーザ111からパスワード114を受信する。使用される秘密共有方式が暗号鍵102を復元するために鍵の所定の閾値(例えば、クオラム(quorum)等)のみを必要とする場合、OPRFサービス120が全てのOPRF鍵122A~122Dを受信することは必要ではない。この場合、OPRFサービス120は、ユーザ111がパスワード114を提供する場合、OPRF鍵122A~122Dを評価してよい。OPRFサービス120は、複数の鍵112A~112Dを復元するためにOPRF関数f(x)を実行してよい。次に、OPRFサービス120又はクライアントアプリケーション110は、複数の鍵112A~112Dから暗号鍵102を復元してよく、当該複数の鍵112A~112Dは、プライベート鍵101を明らかにするために、暗号化されたプライベート鍵101'を解読するのに使用することができる。
図1Dは、例示の実施形態に係る、手数料トランザクションを解読し、ブロックチェーンピア131~134から暗号化されたプライベート鍵101'を取得するプロセス100Dを示している。図1Dを参照すると、クライアントアプリケーション110は、図1Cの例において説明されたように、複数の鍵112A~112Dに基づいて暗号鍵102を復元している。この例では、クライアントアプリケーション110は、復元された暗号鍵102に基づいてブロックチェーンピア131~134上に記憶された手数料トランザクションを解読し、解読されたトランザクションを暗号化されたプライベート鍵101'と交換してよい。この例では、クライアントアプリケーション110は、解読されたトランザクションをブロックチェーンピア131~134の各々に転送し、それらが支払いを受信することが可能になる。次に、ブロックチェーンピア131~134のうちの1つ又は複数は、暗号化されたプライベート鍵101'を返してよい。これに応答して、クライアントアプリケーション110は、元のプライベート鍵101を復元するために、暗号化されたプライベート鍵101'を解読してよい。
図2Aは、例示の実施形態に係るブロックチェーンアーキテクチャ構成200を示している。図2Aを参照すると、ブロックチェーンアーキテクチャ200は、特定のブロックチェーン要素、例えば、ブロックチェーンノード202のグループを含んでよい。ブロックチェーンノード202は、1つ又は複数のノード204~210を含んでよい(これらの4つのノードが単に例として示されている)。これらのノードは、ブロックチェーントランザクション追加及びバリデーションプロセス(コンセンサス)等の複数のアクティビティに参加する。ブロックチェーンノード204~210のうちの1つ又は複数は、承認ポリシに基づいてトランザクションを承認してよく、アーキテクチャ200内の全てのブロックチェーンノードに順序付けサービスを提供してよい。ブロックチェーンノードは、ブロックチェーン認証を開始し、ブロックチェーン層216に記憶されたブロックチェーン不変台帳への書き込みを試みてよく、そのコピーが、基礎となる物理的インフラストラクチャ214上に記憶されてもよい。ブロックチェーン構成は、記憶されたプログラム/アプリケーションコード220(例えば、チェーンコード、スマートコントラクト等)にアクセス及びこれを実行するためにアプリケーションプログラミングインターフェース(API)222にリンクされている1つ又は複数のアプリケーション224を含んでよく、記憶されたプログラム/アプリケーションコード220は、参加者が求めるカスタマイズされた構成に従って作成することができ、それら自体の状態を維持し、それら自体のアセットを制御し、外部情報を受信することができる。これをトランザクションとして展開し、分散台帳への追加を介して、全てのブロックチェーンノード204~210上にインストールすることができる。
ブロックチェーンベース又はプラットフォーム212は、ブロックチェーンデータ、サービス(例えば、暗号トラストサービス、仮想実行環境等)、及び新たなトランザクションを受信及び記憶し、データエントリへのアクセスを試みる監査人にアクセスを提供するのに使用され得る、基礎となる物理的コンピュータインフラストラクチャの様々な層を含んでよい。ブロックチェーン層216は、プログラムコードを処理し、物理的インフラストラクチャ214に従事するために必要な仮想実行環境へのアクセスを提供するインターフェースを公開してよい。暗号トラストサービス218は、アセット交換トランザクション等のトランザクションを検証し、情報をプライベートに保つのに使用されてよい。
図2Aのブロックチェーンアーキテクチャ構成は、ブロックチェーンプラットフォーム212によって呈される1つ又は複数のインターフェース及びこれによって提供されるサービスを介してプログラム/アプリケーションコード220を処理及び実行してよい。コード220は、ブロックチェーンアセットを制御してよい。例えば、コード220は、データを記憶及び転送することができ、条件又はその実行の対象となる他のコード要素とともに、スマートコントラクト及び関連付けられたチェーンコードの形式でノード204~210によって実行されてよい。非限定的な例として、スマートコントラクトは、リマインダ、更新、及び/又は変更、更新等の対象となる他の通知を実行するように作成されてよい。スマートコントラクトは、認可及びアクセス要件及び台帳の使用に関連付けられたルールを識別するためにそれ自体を使用することができる。例えば、スマートコントラクト(又はスマートコントラクトのロジックを実行するチェーンコード)は、ブロックチェーン層216に含まれる1つ又は複数の処理エンティティ(例えば、仮想マシン)によって処理され得るブロックチェーンデータ226を読み出して、複雑なサービスシナリオ内で、アラート、責任の決定等を含む結果228を生成してよい。物理的インフラストラクチャ214を利用して、本明細書において説明されるデータ又は情報のうちの任意のものを取得してよい。
スマートコントラクトは、高レベルアプリケーション及びプログラミング言語を介して作成され、その後、ブロックチェーン内のブロックに書き込まれてよい。スマートコントラクトは、ブロックチェーン(例えば、ブロックチェーンピアの分散ネットワーク)を用いて登録、記憶、及び/又は複製される実行可能コードを含んでよい。トランザクションは、スマートコントラクトに関連付けられた条件が満たされていることに応答して実行することができるスマートコントラクトロジックの実行である。スマートコントラクトの実行は、デジタルブロックチェーン台帳の状態に対する信頼された修正をトリガしてよい。スマートコントラクト実行によって引き起こされるブロックチェーン台帳に対する修正は、1つ又は複数のコンセンサスプロトコルを通して、ブロックチェーンピアの分散ネットワーク全体にわたって自動的に複製されてよい。
スマートコントラクトは、鍵-値ペアのフォーマットにおいてデータをブロックチェーンに書き込んでよい。さらに、スマートコントラクトコードは、ブロックチェーンに記憶された値を読み出し、これらをアプリケーション動作において使用することができる。スマートコントラクトコードは、様々な論理演算の出力をブロックチェーン内の1つ又は複数のブロック内に書き込むことができる。コードは、仮想マシン又は他のコンピューティングプラットフォームにおいて、一時的データ構造を作成するのに使用されてよい。ブロックチェーンに書き込まれたデータは、公開することができ、及び/又は暗号化してプライベートとして維持することができる。スマートコントラクトによって使用/生成された一時的データは、供給された実行環境によってメモリに保持され、その後、ブロックチェーンのために必要とされるデータが識別されると削除される。
チェーンコードは、スマートコントラクトのコード解釈(例えば、ロジック)を含んでよい。例えば、チェーンコードは、スマートコントラクト内のロジックのパッケージ化された展開可能なバージョンを含んでよい。本明細書において説明されるように、チェーンコードは、コンピューティングネットワーク上で展開されるプログラムコードであってよく、ここで、それは、コンセンサスプロセス中にともにチェーンバリデータによって実行及びバリデートされる。チェーンコードは、ハッシュを受信し、以前に記憶された特徴抽出器を使用して作成されたデータテンプレートに関連付けられたハッシュをブロックチェーンから取得してよい。ハッシュ識別子のハッシュ、及び記憶された識別子テンプレートデータから作成されたハッシュが一致する場合、チェーンコードは、要求されたサービスに認可鍵を送信する。チェーンコードは、暗号詳細に関連付けられたブロックチェーンデータに書き込まれてよい。
図2Bは、例示の実施形態に係る、ブロックチェーンのノード間のブロックチェーントランザクションフロー250の一例を示している。図2Bを参照すると、トランザクションフローは、クライアントノード260が承認ピアノード281にトランザクション提案291を送信することを含んでよい。承認ピア281は、クライアント署名を検証し、チェーンコード関数を実行してトランザクションを開始してよい。出力は、チェーンコード結果、チェーンコードにおいて読み出された鍵/値バージョンのセット(読み出しセット)、及びチェーンコードに書き込まれた鍵/値のセット(書き込みセット)を含んでよい。ここで、承認ピア281は、トランザクション提案を承認するか否かを判断してよい。提案応答292は、承諾された場合、承認署名とともにクライアント260に返送される。クライアント260は、承認をトランザクションペイロード293にアセンブルし、それを順序付けサービスノード284にブロードキャストする。その後、順序付けサービスノード284は、順序付けされたトランザクションをブロックとしてチャネル上の全てのピア281~283に送達する。ブロックチェーンにコミットする前に、各ピア281~283はトランザクションをバリデートしてよい。例えば、指定されたピアの正しい割り当てが結果に署名しており、トランザクションペイロード293に対する署名を認証したことを確実にするために、ピアは承認ポリシをチェックしてよい。
再び図2Bを参照すると、クライアントノードは、要求を構築し、承認者であるピアノード281に送信することによってトランザクション291を開始する。クライアント260は、利用可能なAPI利用してトランザクション提案を生成する、サポートされたソフトウェア開発キット(SDK)を活用するアプリケーション含んでよい。提案は、データを読み出し、及び/又は台帳に書き込む(すなわち、アセットのための新たな鍵値ペアを書き込む)ことができるように、チェーンコード関数を呼び出す要求である。SDKは、トランザクション提案を適切に設計されたフォーマット(例えば、リモートプロシージャコール(RPC)に対するプロトコルバッファ)にパッケージ化し、トランザクション提案のための一意の署名を生成するために、クライアントの暗号クレデンシャルを取り込むシムとして機能してよい。
これに応答して、承認ピアノード281は、(a)トランザクション提案が整形式であること、(b)トランザクションが、過去に既にサブミットされていないこと(反射攻撃保護)、(c)署名が有効であること、及び(d)サブミッタ(本例では、クライアント260)がそのチャネル上で提案される動作を実行するように適切に認可されていることを検証してよい。承認ピアノード281は、トランザクション提案入力を、呼び出されるチェーンコード関数に対する引数として取り込んでよい。その後、チェーンコードは、現在の状態のデータベースに対して実行されて、応答値、読み出しセット、及び書き込みセットを含むトランザクション結果が生成される。しかしながら、この時点では台帳は更新されない。292において、値のセットは、承認ピアノード281の署名とともに、アプリケーションが消費するペイロードをパースするクライアント260のSDKに提案応答292として返される。
これに応答して、クライアント260のアプリケーションは、承認ピアの署名を検査/検証し、提案応答が同じあるか否かを判断するために当該提案応答を比較する。チェーンコードが台帳にクエリするのみであれば、アプリケーションはクエリ応答を検査し、典型的には、トランザクションを順序付けノードサービス284にサブミットしないことになる。クライアントアプリケーションがトランザクションを順序付けノードサービス284にサブミットして台帳を更新することを意図する場合、アプリケーションは、指定された承認ポリシがサブミットの前に満たされているか否か(すなわち、トランザクションに必要な全てのピアノードがトランザクションを承認したか)を判断する。ここで、クライアントは、トランザクションに対する複数の当事者のうちの1つのみを含んでよい。この場合、各クライアントは、自身の承認ノードを有してよく、各承認ノードはトランザクションを承認する必要がある。このアーキテクチャは、アプリケーションが応答を検査しないことを選択するか、又は、そうでなければ、承認されていないトランザクションを転送する場合であっても、承認ポリシがピアによって依然として実施され、コミットバリデーションフェーズにおいて維持されるようになっている。
検査に成功した後、段階293において、クライアント260は、承認をトランザクション提案にアセンブルし、トランザクションメッセージ内のトランザクション提案及び応答を順序付けノード284にブロードキャストする。トランザクションは、読み出し/書き込みセット、承認ピア署名及びチャネルIDを含んでよい。順序付けノード284は、その動作を実行するためにトランザクションのコンテンツ全体を検査する必要はなく、その代わりに、順序付けノード284は、単にネットワーク内の全てのチャネルからトランザクションを受信し、これらをチャネルごとに時系列に順序付けし、チャネル当たりのトランザクションのブロックを作成してよい。
ブロックは、順序付けノード284からチャネル上の全てのピアノード281~283に送達される。承認ポリシが満たされていることを確実にするため、及び、読み出しセットがトランザクション実行によって生成されて以降、読み出しセット変数について台帳状態が変更されていないことを確実にするために、ブロック内のデータセクションがバリデートされてよい。さらに、段階295において、各ピアノード281~283は、ブロックをチャネルのチェーンに追加し、有効なトランザクションごとに、書き込みセットが現在の状態のデータベースにコミットされる。トランザクション(呼び出し)が不変にチェーンに追加されたことをクライアントアプリケーションに通知するために、並びにトランザクションがバリデートされたか又は無効化されたかを通知するために、イベントが発行され得る。
図3Aは、分散非中央集権型ピアツーピアアーキテクチャを特徴とする、許可型ブロックチェーンネットワーク300の一例を示している。この例では、ブロックチェーンユーザ302は、許可型ブロックチェーン304に対するトランザクションを開始してよい。この例では、トランザクションは、展開、呼び出し、又はクエリすることができ、API等を直接通して、SDKを活用するクライアント側アプリケーションを通して発行されてよい。ネットワークは、監査人等のレギュレータ306へのアクセスを提供してよい。ブロックチェーンネットワークオペレータ308は、レギュレータ306を「監査人」として登録し、ブロックチェーンユーザ302を「クライアント」として登録する等のメンバ許可を管理する。監査人は、台帳のクエリのみに制限することができる一方で、クライアントは、特定のタイプのチェーンコードを展開、呼び出し、及びクエリするように認可することができる。
ブロックチェーンデベロッパ310は、チェーンコード及びクライアント側アプリケーションを書き込むことができる。ブロックチェーンデベロッパ310は、インターフェースを通してネットワークに直接チェーンコードを展開することができる。従来のデータソース312からのクレデンシャルをチェーンコードに含めるために、デベロッパ310は、帯域外接続を使用してデータにアクセスすることができる。この例では、ブロックチェーンユーザ302は、ピアノード314を通して許可型ブロックチェーン304に接続する。任意のトランザクションに進む前に、ピアノード314は、ユーザの役割及び許可を管理する認証局316からユーザの登録及びトランザクション証明書を取得する。幾つかの事例では、ブロックチェーンユーザは、許可型ブロックチェーン304上で取引するために、これらのデジタル証明書を所有しなければならない。一方、チェーンコードを利用することを試行するユーザは、自身のクレデンシャルを従来のデータソース312上で検証する必要があり得る。ユーザの認可を確認するために、チェーンコードは、従来の処理プラットフォーム318を通したこのデータへの帯域外接続を使用することができる。
図3Bは、分散非中央集権型ピアツーピアアーキテクチャを特徴とする、許可型ブロックチェーンネットワーク320の別の例を示している。この例では、ブロックチェーンユーザ322は、トランザクションを許可型ブロックチェーン324にサブミットしてよい。この例では、トランザクションは、展開、呼び出し、又はクエリすることができ、API等を直接通して、SDKを活用するクライアント側アプリケーションを通して発行されてよい。ネットワークは、監査人等のレギュレータ326へのアクセスを提供してよい。ブロックチェーンネットワークオペレータ328は、レギュレータ326を「監査人」として登録し、ブロックチェーンユーザ322を「クライアント」として登録する等のメンバ許可を管理する。監査人は、台帳のクエリのみに制限することができる一方で、クライアントは、特定のタイプのチェーンコードを展開、呼び出し、及びクエリするように認可することができる。
ブロックチェーンデベロッパ330は、チェーンコード及びクライアント側アプリケーションを書き込むことができる。ブロックチェーンデベロッパ330は、インターフェースを通してネットワークに直接チェーンコードを展開することができる。従来のデータソース332からのクレデンシャルをチェーンコードに含めるために、デベロッパ330は、帯域外接続を使用してデータにアクセスすることができる。この例では、ブロックチェーンユーザ322は、ピアノード334を通してネットワークに接続する。任意のトランザクションに進む前に、ピアノード334は、認証局336からユーザの登録及びトランザクション証明書を取得する。幾つかの事例では、ブロックチェーンユーザは、許可型ブロックチェーン324上で取引するために、これらのデジタル証明書を所有しなければならない。一方、チェーンコードを利用することを試行するユーザは、自身のクレデンシャルを従来のデータソース332上で検証する必要があり得る。ユーザの認可を確認するために、チェーンコードは、従来の処理プラットフォーム338を通したこのデータへの帯域外接続を使用することができる。
幾つかの実施形態では、本明細書におけるブロックチェーンは、自由参加型ブロックチェーンであってよい。参加するために許可を必要とする許可型ブロックチェーンとは対照的に、誰でも自由参加型ブロックチェーンに参加することができる。例えば、自由参加型ブロックチェーンに参加するために、ユーザは、個人アドレスを作成し、トランザクションをサブミットし、したがって台帳にエントリを追加することによって、ネットワークとのインタラクトを開始してよい。加えて、全ての当事者は、システム上でノードを実行し、トランザクションを検証するのに役立つマイニングプロトコルを利用する選択肢を有する。
図3Cは、トランザクションが複数のノード354を含む自由参加型ブロックチェーン352によって処理されるプロセス350を示している。送信者356は、自由参加型ブロックチェーン352を介して受信者358に支払い又は他の何らかの形式の値(例えば、証書、医療記録、契約書、商品、サービス、又はデジタルレコードにカプセル化することができる他の任意のアセット)を送信することを望む。1つの実施形態では、送信者デバイス356及び受信者デバイス358の各々は、ユーザインターフェース制御及びトランザクションパラメータの表示を提供する(ブロックチェーン352に関連付けられた)デジタルウォレットを有してよい。これに応答して、トランザクションは、ブロックチェーン352全体を通してノード354にブロードキャストされる。ブロックチェーン352のネットワークパラメータに依存して、ノードは、自由参加型ブロックチェーン352の作成者によって確立されたルール(事前定義されるか又は動的に割り当てられ得る)に基づいてトランザクションを検証する(360)。例えば、これは、関与する当事者のアイデンティティの検証等を含んでよい。トランザクションは、即座に検証され得るか、又は他のトランザクションとともにキューに入れられ得、ノード354はネットワークルールのセットに基づいてトランザクションが有効であるか否かを判断する。
構造362において、有効なトランザクションは、ブロックに形成され、ロック(ハッシュ)を用いてシールされる。このプロセスは、ノード354の中のマイニングノードによって実行されてよい。マイニングノードは、自由参加型ブロックチェーン352のブロックをマイニング及び作成するために特別に追加のソフトウェアを利用してよい。各ブロックは、ネットワークによって合意されたアルゴリズムを使用して作成されたハッシュ(例えば、256ビット数等)によって識別されてよい。各ブロックは、ヘッダ、チェーン内の先行ブロックのヘッダのハッシュへのポインタ又は参照、及び有効なトランザクションのグループを含んでよい。先行ブロックのハッシュへの参照は、ブロックのセキュアで独立したチェーンの作成に関連付けられている。
ブロックをブロックチェーンに追加することができる前に、ブロックがバリデートされなければならない。自由参加型ブロックチェーン352のバリデーションは、ブロックのヘッダから導出されるパズルへの解であるプルーフオブワーク(PoW)を含んでよい。図3Cの例には示されていないが、ブロックをバリデートする別のプロセスはプルーフオブステークである。アルゴリズムが数学的問題を解いたマイナに報酬を与えるプルーフオブワークとは異なり、プルーフオブステークでは、新たなブロックの作成者は、「ステーク」とも定義されるその富に依存して決定論的な方法において選択される。その後、選択/選出されたノードによって同様の証明が実行される。
マイニング364では、ノードは、解がネットワークワイドターゲットを満たすまで、1つの変数に増分的な変更を加えることによって、ブロックを解こうとする。これによりPoWが作成され、それによって、正解が保証される。換言すれば、潜在的な解は、問題を解くためにコンピューティングリソースが枯渇したことを証明しなければならない。幾つかのタイプの自由参加型ブロックチェーンでは、マイナはブロックを正しくマイニングすることに対して値(例えば、コイン等)の報酬を受け得る。
ここで、PoWプロセスは、ブロックをチェーンにしながら、攻撃者が1つのブロックの修正が受け入れられるようにするために全ての後続のブロックを修正しなければならないので、ブロックチェーンの修正を極めて困難にする。さらに、新たなブロックがマイニングされると、ブロックを修正することの困難さが高まり、後続のブロックの数が増加する。分散366では、成功裏にバリデートされたブロックが自由参加型ブロックチェーン352を通して分散され、全てのノード354がブロックを自由参加型ブロックチェーン352の監査可能な台帳である多数派チェーンに追加する。さらに、送信者356によってサブミットされたトランザクションの値は、受信者デバイス358のデジタルウォレットに入金又は別様に転送される。
図4Aは、例示の実施形態に係る、OPRF鍵を生成とともに分散させる通信プロセス400Aを示している。図4Aを参照すると、クライアント410は、公開及びプライベート鍵ペア(pk,sk)を有する。この例では、クライアントは、暗号鍵を用いてプライベート鍵(sk)を暗号化し、暗号化されたプライベート鍵(sk)のバックアップを記憶するために、それぞれ、430、431、432、及び433において複数のブロックチェーンピア421、422、423、及び424に複数のトランザクションをサブミットする。各トランザクションは、暗号化されたプライベート鍵、及びクライアント410が暗号化されたプライベート鍵を復元するのに必要であるときのための手数料/補償を含んでよい。ここで、ブロックチェーンピアの数は、4に限定されず、プロトコルによって望まれる任意の閾値であってよい。
434において、クライアント410は、ブロックチェーンピア421~424の各々についてOPRF鍵を生成する。まず、クライアント410は、暗号鍵を復元するのに使用することができる複数の鍵を生成してよい。次に、クライアント410は、ユーザパスワードに基づいて、複数の鍵を複数のOPRF鍵に変換する。編成(ピア)ごとに、クライアント410は、鍵及びパスワードを入力として受信し、OPRF鍵を出力する事前定義された関数f(x)に基づいてOPRF鍵をランダムに生成してよい。この段階434は、ブロックチェーンピア421~424のために複数のOPRF鍵を生成するために、反復的に実行されるか又は同時に実行される。クライアント410は、それぞれ、段階435、436、437、及び438において、複数のOPRF鍵を複数のブロックチェーンピア421~424に分散させる。
段階430~433は図4Aにおける段階434~438の前に実行されるものとして示されているが、段階430~433は、段階434~438の後及び/又は段階434~438と同時に実行されてよいことが理解されるべきである。換言すれば、段階430~438の順序は、図4Aにおいて図示及び説明された例に限定されない。
図4Bは、例示の実施形態に係る、分散したOPRF鍵に基づいて暗号鍵を復元する通信プロセス400Bを示している。図4Bを参照すると、440において、クライアントデバイス410は、OPRF鍵の要求をブロックチェーンピア421~424に送信する。要求は、全てのピア421~424にブロードキャストされてよい。これに応答して、ブロックチェーンピア421~424は、段階441、442、443、及び444において、クライアントデバイス410のために保持されたそれぞれのOPRF鍵を送信してよい。445において、クライアント410は、受信されたOPRF鍵を、暗号鍵を復元するのに使用することができる対応する鍵に変換するために、OPRF関数(サービス)の実行をトリガしてよい。この場合、ユーザは、OPRF鍵とともにOPRF関数に入力されるパスワードを入力してよい。OPRF関数からの出力は、元の鍵である。クライアント410は、445において、鍵に基づいて暗号鍵を復元することができる。446において、クライアント410は、ブロックチェーンピアのうちの任意のものに、暗号化されたプライベート鍵を要求してよい。この場合、クライアントは、447において、ブロックチェーンピア421から、暗号化されたプライベート鍵を受信する。クライアント410は、次に、448においてプライベート鍵を解読し、プライベート鍵を使用して、ブロックチェーントランザクション、ブロックチェーンメッセージ、ブロックチェーン要求等に署名する。
図5は、例示の実施形態に係る、ブロックチェーンネットワークのピア間で暗号鍵を分散させる方法である方法500を示している。非限定的な例として、方法500は、スマートフォン、タブレット、ラップトップ、デスクトップ、サーバ、クラウドプラットフォーム等のようなコンピューティングデバイス上で実行されるクライアントアプリケーションによって実行されてよい。図5を参照すると、510において、方法は、暗号鍵を用いてプライベート鍵を暗号化することを含んでよい。ここで、暗号鍵は、クライアントによって生成されてよい。
520において、方法は、暗号鍵に基づいて複数の鍵を生成し、秘密入力値に基づいて、複数の鍵を複数の鍵共有に変換することを含んでよい。秘密入力は、クライアントにのみ既知であるパスワードであってよい。530において、方法は、暗号化されたプライベート鍵をブロックチェーン上に記憶することを含んでよい。例えば、クライアントは、暗号化されたプライベート鍵を、ブロックチェーンの複数のブロックチェーンピアに送信してよい。540において、方法は、複数の鍵共有をブロックチェーンの複数のブロックチェーンピアに分散させることを含んでよく、ここで、分散させることは、複数の鍵共有の中からの異なる鍵共有を、複数のブロックチェーンピアの中の各ブロックチェーンピアに送信することを含む。
幾つかの実施形態では、複数の鍵は、複数の疑似乱数値を含んでよく、方法は、複数の疑似乱数値を、それぞれ、複数のブロックチェーンピアに登録することを更に含んでよい。幾つかの実施形態では、変換することは、複数の鍵の中からの鍵及び秘密入力値を受信し、それぞれの鍵について鍵共有を出力する忘却疑似乱数関数(OPRF)を実行することを含んでよい。幾つかの実施形態では、変換することは、秘密入力値に基づいて複数の鍵の中の鍵ごとにOPRFを反復的に実行して、複数の鍵共有の中の各鍵共有を出力することを更に含んでよい。
幾つかの実施形態では、記憶することは、ブロックチェーントランザクションを複数のブロックチェーンピアに分散させることを含んでよく、ここで、ブロックチェーントランザクションは、暗号化されたプライベート鍵及び支払い値を含む。幾つかの実施形態では、方法は、複数のブロックチェーンピアから複数の鍵共有を取得すること、及び秘密入力値に基づいて複数の鍵共有を複数の鍵に戻るように変換することを更に含んでよい。幾つかの実施形態では、方法は、複数の鍵から暗号鍵を復元すること、及び復元された暗号鍵に基づいて、暗号化されたプライベート鍵を解読することを更に含んでよい。
幾つかの実施形態では、方法は、複数の鍵から暗号鍵を復元すること、及び復元された暗号鍵に基づいて複数のブロックチェーンピアによって記憶された手数料トランザクションを解読することを更に含んでよい。この例では、方法は、解読された手数料トランザクションを複数の中からのブロックチェーンピアに送信すること、解読された手数料トランザクションと交換にブロックチェーンピアから、暗号化されたプライベート鍵を受信すること、及び復元された暗号鍵に基づいて、暗号化されたプライベート鍵を解読することを更に含んでよい。
図6Aは、例示の実施形態に係る、様々な動作を実行するように構成された物理的インフラストラクチャ610を含む例示のシステム600を示している。図6Aを参照すると、物理的インフラストラクチャ610は、モジュール612及びモジュール614を含む。モジュール614は、ブロックチェーン620及びスマートコントラクト630(ブロックチェーン620上に存在し得る)を含み、これは、例示の実施形態のうちの任意のものに含まれる(モジュール612における)動作段階608のうちの任意のものを実行してよい。段階/動作608は、説明又は図示された実施形態のうちの1つ又は複数を含んでよく、1つ又は複数のスマートコントラクト630及び/又はブロックチェーン620に書き込まれるか又はこれらから読み出される出力又は書き込まれた情報を表してよい。物理的インフラストラクチャ610、モジュール612、及びモジュール614は、1つ又は複数のコンピュータ、サーバ、プロセッサ、メモリ及び/又は無線通信デバイスを含んでよい。さらに、モジュール612及びモジュール614は、同じモジュールであってよい。
図6Bは、例示の実施形態に係る、様々な動作を実行するように構成された別の例示のシステム640を示している。図6Bを参照すると、システム640は、モジュール612及びモジュール614を含む。モジュール614は、ブロックチェーン620及びスマートコントラクト630(ブロックチェーン620上に存在し得る)を含み、これは、例示の実施形態のうちの任意のものに含まれる(モジュール612における)動作段階608のうちの任意のものを実行してよい。段階/動作608は、説明又は図示された実施形態のうちの1つ又は複数を含んでよく、1つ又は複数のスマートコントラクト630及び/又はブロックチェーン620に書き込まれるか又はこれらから読み出される出力又は書き込まれた情報を表してよい。物理的インフラストラクチャ610、モジュール612、及びモジュール614は、1つ又は複数のコンピュータ、サーバ、プロセッサ、メモリ及び/又は無線通信デバイスを含んでよい。さらに、モジュール612及びモジュール614は、同じモジュールであってよい。
図6Cは、例示の実施形態に係る、コントラクト当事者間でスマートコントラクト構成を利用するように構成された例示のシステム、及びブロックチェーン上でスマートコントラクト条項を実施するように構成された仲介サーバを示している。図6Cを参照すると、構成650は、1つ又は複数のユーザデバイス652及び/又は656を明示的に識別するスマートコントラクト630によって駆動される、通信セッション、アセット移転セッション又はプロセス又は手順を表してよい。スマートコントラクト実行の実行、動作及び結果は、サーバ654によって管理されてよい。スマートコントラクト630のコンテンツは、スマートコントラクトトランザクションに対する当事者であるエンティティ652及び656のうちの1つ又は複数によるデジタル署名を必要としてよい。スマートコントラクト実行の結果は、ブロックチェーントランザクションとしてブロックチェーン620に書き込まれてよい。スマートコントラクト630は、1つ又は複数のコンピュータ、サーバ、プロセッサ、メモリ及び/又は無線通信デバイス上に存在し得るブロックチェーン620上に存在する。
図6Dは、例示の実施形態に係る、ブロックチェーンを含むシステム660を示している。図6Dの例を参照すると、アプリケーションプログラミングインターフェース(API)ゲートウェイ662は、ブロックチェーンロジック(例えば、スマートコントラクト630又は他のチェーンコード)及びデータ(例えば、分散台帳等)にアクセスするための共通インターフェースを提供する。この例では、APIゲートウェイ662は、1つ又は複数のエンティティ652及び656をブロックチェーンピア(すなわち、サーバ654)に接続することによって、ブロックチェーン上でトランザクション(呼び出し、クエリ等)を実行するための共通インターフェースである。ここで、サーバ654は、クライアント652及び656がワールド状態に対するデータをクエリするとともに、スマートコントラクト630及び承認ポリシに依存して、承認ピアがスマートコントラクト630を実行するブロックチェーンネットワークにトランザクションをサブミットすることを可能にする、ワールド状態及び分散台帳のコピーを保持するブロックチェーンネットワークピアコンポーネントである。
上記の実施形態は、ハードウェアにおいて、プロセッサによって実行されるコンピュータプログラムにおいて、ファームウェアにおいて、又は上記の組み合わせにおいて実装されてよい。コンピュータプログラムは、記憶媒体等のコンピュータ可読媒体上で具現化されてよい。例えば、コンピュータプログラムは、ランダムアクセスメモリ(「RAM」)、フラッシュメモリ、リードオンリメモリ(「ROM」)、消去可能プログラマブルリードオンリメモリ(「EPROM」)、電気的消去可能プログラマブルリードオンリメモリ(「EEPROM」)、レジスタ、ハードディスク、取り外し可能ディスク、コンパクトディスクリードオンリメモリ(「CD-ROM」)、又は当該技術分野において既知である他の任意の形式の記憶媒体において存在してよい。
例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み出し、記憶媒体に情報を書き込み得るように、プロセッサに結合されてよい。代替形態では、記憶媒体は、プロセッサに一体化されてよい。プロセッサ及び記憶媒体は、特定用途向け集積回路(「ASIC」)内に存在してよい。代替形態では、プロセッサ及び記憶媒体は、別個のコンポーネントとして存在してよい。
図7Aは、例示の実施形態に係る、新たなブロックが分散台帳720に追加されるプロセス700を示しており、図7Bは、例示の実施形態に係る、ブロックチェーンのための新たなデータブロック構造730のコンテンツを示している。図7Aを参照すると、クライアント(図示せず)は、トランザクションをブロックチェーンノード711、712及び/又は713にサブミットしてよい。クライアントは、任意のソースから受信される、ブロックチェーン720上でアクティビティを施行する命令であってよい。一例として、クライアントは、ブロックチェーンにトランザクションを提案するように、デバイス、人物又はエンティティ等の要求者を代表して動作するアプリケーションであってよい。複数のブロックチェーンピア(例えば、ブロックチェーンノード711、712、及び713)は、ブロックチェーンネットワークの状態及び分散台帳720のコピーを維持してよい。クライアントによって提案されたトランザクションをシミュレート及び承認する承認ピア、及び承認を検証し、トランザクションをバリデートし、トランザクションを分散台帳720にコミットするコミッティングピアを含む、異なるタイプのブロックチェーンノード/ピアが、ブロックチェーンネットワーク内に存在してよい。この例では、ブロックチェーンノード711、712、及び713は、承認者ノード、コミッタノード、又はその両方の役割を果たし得る。
分散台帳720は、不変シーケンス化レコードをブロックに記憶するブロックチェーン、及びブロックチェーン722の現在の状態を維持する状態データベース724(現在のワールド状態)を備える。1つの分散台帳720がチャネルごとに存在してよく、各ピアは、それらのピアがそのメンバであるチャネルごとに分散台帳720の自身のコピーを維持する。ブロックチェーン722は、各ブロックがN個のトランザクションのシーケンスを含むハッシュリンクされたブロックとして構築されたトランザクションログである。ブロックは、図7Bにおいて示されるもの等の様々なコンポーネントを含んでよい。ブロックのリンク(図7Aにおける矢印によって示されている)は、現在のブロックのブロックヘッダ内に先行ブロックのヘッダのハッシュを追加することによって生成されてよい。このようにして、ブロックチェーン722上の全てのトランザクションが、シーケンス化されてともに暗号的にリンクされ、ハッシュリンクを破壊することなくブロックチェーンデータを改ざんすることを防止する。さらに、リンクに起因して、ブロックチェーン722内の最新ブロックは、その前に到来した全てのトランザクションを表す。ブロックチェーン722は、追加専用ブロックチェーンワークロードをサポートするピアファイルシステム(ローカル又はアタッチトストレージ)上に記憶されてよい。
ブロックチェーン722及び分散台帳722の現在の状態は、状態データベース724に記憶されてよい。ここで、現在の状態のデータは、ブロックチェーン722のチェーントランザクションログにこれまでに含まれている全ての鍵についての最新の値を表す。チェーンコード呼び出しは、状態データベース724内の現在の状態に対してトランザクションを実行する。これらのチェーンコードインタラクションを極めて効率的にするために、全ての鍵の最新の値は、状態データベース724に記憶される。状態データベース724は、ブロックチェーン722のトランザクションログへのインデックス付きビューを含んでよく、したがって、これは、任意の時点においてチェーンから再生成することができる。状態データベース724は、ピアノードのスタートアップ時であって、トランザクションが受け入れられる前に、自動的に復元(又は必要であれば生成)されてよい。
承認ノードは、クライアントからトランザクションを受信し、シミュレート結果に基づいてトランザクションを承認する。承認ノードは、トランザクション提案をシミュレートするスマートコントラクトを保持する。承認ノードがトランザクションを承認すると、承認ノードは、シミュレートされたトランザクションの承認を示す承認ノードからクライアントアプリケーションへの署名付き応答であるトランザクション承認を作成する。トランザクションを承認する方法は、チェーンコード内で指定され得る承認ポリシに依存する。承認ポリシの例は、「承認ピアの過半数がトランザクションを承認しなければならない」である。異なるチャネルは、異なる承認ポリシを有してよい。承認されたトランザクションは、クライアントアプリケーションによって順序付けサービス710に転送される。
順序付けサービス710は、承認されたトランザクションを受け入れ、これらを順序付けて1つのブロックにし、ブロックをコミッティングピアに送達する。例えば、順序付けサービス710は、トランザクションの閾値に達した、タイマがタイムアウトした、又は別の条件となった場合、新たなブロックを開始してよい。図7Aの例では、ブロックチェーンノード712は、ブロックチェーン720上での記憶のために新たなデータの新たなデータブロック730を受信したコミッティングピアである。ブロックチェーンにおける第1のブロックは、ブロックチェーン、そのメンバ、その中に記憶されたデータ等に関する情報を含むジェネシスブロックと称され得る。
順序付けサービス710は、オーダラのクラスタから構成されてよい。順序付けサービス710は、トランザクション、スマートコントラクトを処理せず、又は共有台帳を維持しない。むしろ、順序付けサービス710は、承認されたトランザクションを受け入れてよく、それらのトランザクションが分散台帳720にコミットされる順序を指定する。ブロックチェーンネットワークのアーキテクチャは、「順序付け」の具体的な実装(例えば、Solo、Kafka、BFT等)がプラグ可能なコンポーネントになるように設計されてよい。
トランザクションは、一貫した順序において分散台帳720に書き込まれる。トランザクションの順序は、状態データベース724に対する更新がネットワークにコミットされるときにそれらの更新が有効であることを確実にするために確立される。順序付けが暗号パズルを解くこと又はマイニングを通して行われる暗号通貨ブロックチェーンシステム(例えば、ビットコイン等)とは異なり、この例では、分散台帳720の当事者は、ネットワークに最も良好に適合する順序付けメカニズムを選択してよい。
順序付けサービス710が新たなデータブロック730を初期化すると、新たなデータブロック730は、コミッティングピア(例えば、ブロックチェーンノード711、712、及び713)にブロードキャストされてよい。これに応答して、各コミッティングピアは、読み出しセット及び書き込みセットが状態データベース724内の現在のワールド状態に依然として一致することを確実にするようにチェックすることによって、新たなデータブロック730内のトランザクションをバリデートする。具体的には、コミッティングピアは、承認者がトランザクションをシミュレートしたときに存在していた読み出しデータが、状態データベース724内の現在のワールド状態と同一であるか否かを判断することができる。コミッティングピアがトランザクションをバリデートすると、トランザクションは、分散台帳720上のブロックチェーン722に書き込まれ、状態データベース724は、読み出し書き込みセットからの書き込みデータを用いて更新される。トランザクションが失敗した場合、すなわち、コミッティングピアが、読み出し書き込みセットが状態データベース724内の現在のワールド状態と一致しないことを発見した場合、順序付けされてブロックにされたトランザクションは依然としてそのブロックに含まれるが、無効としてマークされ、状態データベース724は更新されない。
図7Bを参照すると、分散台帳720のブロックチェーン722上に記憶される新たなデータブロック730(データブロックとも称される)は、ブロックヘッダ740、ブロックデータ750(ブロックデータセクション)、及びブロックメタデータ760等の複数のデータセグメントを含んでよい。図7Bにおいて示された、新たなデータブロック730及びそのコンテンツ等の様々な図示されるブロック及びそれらのコンテンツは、単なる例であり、例示の実施形態の範囲を限定することを意図されないことが理解されるべきである。従来のブロックでは、データセクションは、ブロックデータ750内にN個のトランザクション(例えば、1つ、10個、100個、500個、1000個、2000個、3000個等)のトランザクション情報を記憶してよい。
新たなデータブロック730は、(例えば、図7Aにおけるブロックチェーン722上の)先行ブロックへのリンクをブロックヘッダ740内に含んでよい。特に、ブロックヘッダ740は、先行ブロックのヘッダのハッシュを含んでよい。ブロックヘッダ740は、一意のブロック番号、新たなデータブロック730のブロックデータ750のハッシュ等を含んでもよい。新たなデータブロック730のブロック番号は、一意であり、0から開始する増分的/シーケンシャル順序等の様々な順序において割り当てられてよい。
ブロックメタデータ760は、メタデータの複数のフィールドを(例えば、バイトアレイ等として)記憶してよい。メタデータフィールドは、ブロック作成に対する署名、最後の構成ブロックへの参照、ブロック内の有効トランザクション及び無効トランザクションを識別するトランザクションフィルタ、ブロックを順序付けた順序付けサービスの最後の持続したオフセット等を含んでよい。署名、最後の構成ブロック、及びオーダラメタデータは、順序付けサービス710によって追加されてよい。一方、ブロックのコミッティングノード(ブロックチェーンノード712等)は、承認ポリシ、読み出し/書き込みセットの検証等に基づいて、有効性/無効性情報を追加してよい。トランザクションフィルタは、ブロックデータ750に含まれるトランザクションの数に等しいサイズのバイトアレイ、及びトランザクションが有効/無効であったかを識別するバリデーションコードを含んでよい。
図7Cは、本明細書において説明される実施形態に係る、デジタルコンテンツのためのブロックチェーン770の一実施形態を示している。デジタルコンテンツは、1つ又は複数のファイル及び関連付けられた情報を含んでよい。ファイルは、媒体、画像、ビデオ、オーディオ、テキスト、リンク、グラフィックス、アニメーション、ウェブページ、ドキュメント、又は他の形式のデジタルコンテンツを含んでよい。ブロックチェーンの不変の追加専用の態様は、デジタルコンテンツの整合性、有効性、及び真正性を保護するためのセーフガードとして機能し、許容ルールが適用される法的手続き、又は証拠が考慮されるか、又はデジタル情報の提示及び使用が他の点で関心のある他の設定で適切に使用される。この場合、デジタルコンテンツは、デジタルエビデンスと称され得る。
ブロックチェーンは、様々な方法において形成されてよい。1つの実施形態では、デジタルコンテンツは、ブロックチェーン自体に含まれ、ブロックチェーン自体からアクセスされてよい。例えば、ブロックチェーンの各ブロックは、関連付けられたデジタルコンテンツに沿って、参照情報(例えば、ヘッダ、値等)のハッシュ値を記憶してよい。次に、ハッシュ値及び関連付けられたデジタルコンテンツは、ともに暗号化されてよい。それゆえ、各ブロックのデジタルコンテンツは、ブロックチェーン内の各ブロックを解読することによってアクセスされてよく、各ブロックのハッシュ値は、先行ブロックを参照するための基礎として使用されてよい。これは、以下のとおりに示され得る:
ブロック1 ブロック2 ......ブロックN
ハッシュ値1 ハッシュ値2 ハッシュ値N
デジタルコンテンツ1 デジタルコンテンツ2 デジタルコンテンツN
1つの実施形態では、デジタルコンテンツはブロックチェーンに含まれなくてよい。例えば、ブロックチェーンは、デジタルコンテンツのいずれも伴うことなく、各ブロックのコンテンツの暗号化されたハッシュを記憶してよい。デジタルコンテンツは、元のファイルのハッシュ値に関連して別の記憶エリア又はメモリアドレスに記憶されてよい。他の記憶エリアは、ブロックチェーンを記憶するのに使用される同じ記憶デバイスであってもよいし、又は、異なる記憶エリア又はさらには別個の関係データベースであってもよい。各ブロックのデジタルコンテンツは、関心のブロックのハッシュ値を取得又はクエリし、次に、実際のデジタルコンテンツに対応付けて記憶されている記憶エリア内の値を有するものをルックアップすることによって、参照又はアクセスされてよい。この動作は、例えば、データベースゲートキーパによって実行されてよい。これは、以下のとおりに示され得る:
ブロックチェーン 記憶エリア
ブロック1ハッシュ値 ブロック1ハッシュ値...コンテンツ



ブロックNハッシュ値 ブロックNハッシュ値...コンテンツ
図7Cの例示の実施形態では、ブロックチェーン770は、順序付きシーケンスにして暗号的にリンクされた複数のブロック778、778、...778を含み、ここでN≧1である。ブロック778、778、...778をリンクするのに使用される暗号化は、複数の鍵付き又は鍵なしハッシュ関数のうちの任意のものであってよい。1つの実施形態では、ブロック778、778、...778は、ブロック内の情報に基づく入力からnビット英数字出力(ここで、nは、256又は別の数)を生成するハッシュ関数の対象となる。そのようなハッシュ関数の例としては、SHAタイプ(SHAは、セキュアハッシュアルゴリズムの略語である)アルゴリズム、マークルダンガードアルゴリズム、HAIFAアルゴリズム、マークルツリーアルゴリズム、ノンスベースアルゴリズム、及び非衝突困難PRFアルゴリズムが挙げられるが、これらに限定されない。別の実施形態では、ブロック778、778、...、778は、ハッシュ関数とは異なる関数によって暗号的にリンクされてよい。図示の目的で、以下の説明は、ハッシュ関数、例えば、SHA-2を参照して行われる。
ブロックチェーン内のブロック778、778、...、778の各々は、ヘッダ、ファイルのバージョン、及び値を含む。ヘッダ及び値は、ブロックチェーン内のハッシュ化の結果として、ブロックごとに異なる。1つの実施形態では、値はヘッダに含まれてよい。以下で更に詳細に説明されるように、ファイルのバージョンは、元のファイル又は元のファイルの異なるバージョンであってよい。
ブロックチェーン内の第1のブロック778は、ジェネシスブロックと称され、ヘッダ772、元のファイル774、及び初期値776を含む。ジェネシスブロック、及び実際には全ての後続のブロックにおいて使用されるハッシュ化方式は、異なってよい。例えば、第1のブロック778内の全ての情報がともに一度にハッシュ化されてもよいし、又は、第1のブロック778内の情報の各々又は一部が別個にハッシュ化されてよく、次に別個にハッシュ化された一部のハッシュが実行されてもよい。
ヘッダ772は、1つ又は複数の初期パラメータを含んでよく、これは、例えば、バージョン番号、タイムスタンプ、ノンス、ルート情報、難易度、コンセンサスプロトコル、持続時間、メディアフォーマット、ソース、記述キーワード、及び/又は、元のファイル774及び/又はブロックチェーンに関連付けられた他の情報を含んでよい。ヘッダ772は、(例えば、ソフトウェアを管理するブロックチェーンネットワークによって)自動的に、又はブロックチェーン参加者によって手動で、生成されてよい。ブロックチェーン内の他のブロック778~778内のヘッダとは異なり、ジェネシスブロック内のヘッダ772は、単に先行ブロックが存在しないので、先行ブロックを参照しない。
ジェネシスブロック内の元のファイル774は、例えば、ブロックチェーンに含めることに先立つ処理を伴うか又は伴わずに、デバイスによって捕捉されたデータであってよい。元のファイル774は、デバイス、メディアソース、又はノードから、システムのインターフェースを通して受信される。元のファイル774は、メタデータに関連付けられ、これは、例えば、手動又は自動のいずれかで、ユーザ、デバイス、及び/又はシステムプロセッサによって生成されてよい。メタデータは、元のファイル774に関連して第1のブロック778内に含められてよい。
ジェネシスブロック内の値776は、元のファイル774の1つ又は複数の一意の属性に基づいて生成される初期値である。1つの実施形態では、1つ又は複数の一意の属性は、元のファイル774のハッシュ値、元のファイル774のメタデータ、及びファイルに関連付けられた他の情報を含んでよい。1つの実装では、初期値776は、以下の一意の属性に基づいてよい:
1)元のファイルのSHA-2計算ハッシュ値
2)送信元デバイスID
3)元のファイルの開始タイムスタンプ
4)元のファイルの初期の記憶ロケーション
5)元のファイル及び関連付けられたメタデータを現在制御するソフトウェアのブロックチェーンネットワークメンバID
ブロックチェーン内の他のブロック778~778も、ヘッダ、ファイル、及び値を有する。しかしながら、第1のブロック772とは異なり、他のブロック内のヘッダ772~772の各々は、直前のブロックのハッシュ値を含む。直前のブロックのハッシュ値は、単に先行ブロックのヘッダのハッシュであってもよいし、又は、先行ブロック全体のハッシュ値であってもよい。先行ブロックのハッシュ値を残りのブロックの各々に含めることによって、監査可能でかつ不変な証拠保全を確立するために、矢印780によって示されているように第Nのブロックからジェネシスブロック(及び関連付けられた元のファイル)まで戻るトレースをブロック単位で実行することができる。
また、他のブロック内のヘッダ772~772の各々は、他の情報、例えば、バージョン番号、タイムスタンプ、ノンス、ルート情報、難易度、コンセンサスプロトコル、及び/又は、対応するファイル及び/又はブロックチェーン全般に関連付けられた他のパラメータ又は情報を含んでよい。
他のブロック内のファイル774~774は、例えば、実行される処理のタイプに依存して、元のファイル等しくてもよいし、又はジェネシスブロック内の元のファイルの修正されたバージョンであってもよい。実行される処理のタイプは、ブロックによって異なってよい。処理は、例えば、ファイルの情報の編集又はさもなければコンテンツの変更、ファイルからの情報の除去、又は、ファイルへの情報の付加又は追加等の、先行ブロック内のファイルの任意の修正を伴ってよい。
加えて又は代替的に、処理は、先行ブロックからのファイルの単なるコピー、ファイルの記憶ロケーションの変更、1つ又は複数の先行ブロックからのファイルの解析、1つの記憶又はメモリロケーションから別のロケーションへのファイルの移動、又はブロックチェーン及び/又はその関連付けられたメタデータのファイルに対するアクションの実行を伴ってよい。ファイルの解析を伴う処理は、例えば、様々なアナリティクス、統計、又はファイルに関連付けられた他の情報の追加、包含、又は別様の関連付けを含んでよい。
他のブロック内の他のブロック776~776の各々における値は、一意の値であり、実行された処理の結果として全て異なる。例えば、任意の1つのブロックにおける値は、先行ブロックにおける値の更新されたバージョンに対応する。更新は、値が割り当てられるブロックのハッシュに反映される。したがって、ブロックの値は、ブロックにおいてどのような処理が実行されたかのインジケーションを提供し、また、ブロックチェーンを通して元のファイルまで戻るトレーシングを許可する。この追跡は、ブロックチェーン全体を通してファイルの証拠保全を確認する。
例えば、ファイル内に示されている人物のアイデンティティを保護するために、先行ブロック内のファイルの一部が編集、ブロックアウト、又はピクセル化されている場合を検討する。この場合、編集されたファイルを含むブロックは、例えば、いかに編集が実行されたか、誰が編集を実行したか、編集が行われたタイムスタンプ等、編集されたファイルに関連付けられたメタデータを含む。メタデータは、値を形成するようにハッシュ化されてよい。ブロックのためのメタデータは、先行ブロックにおける値を形成するようにハッシュ化された情報とは異なるので、これらの値は、互いに異なり、解読されると復元されてよい。
1つの実施形態では、次のいずれか1つ又は複数が行われたときに、先行ブロックの値が更新されて(例えば、新たなハッシュ値が計算されて)、現在のブロックの値が形成されてよい。新たなハッシュ値は、この例示の実施形態では、以下で記載されている情報の全て又は一部をハッシュ化することによって計算されてよい。
a)ファイルが任意の方法において処理されている場合(例えば、ファイルが編集、コピー、変更、アクセスされたか、又は他の何らかのアクションが行われた場合)、新たなSHA-2計算ハッシュ値、
b)ファイルのための新たな記憶ロケーション、
c)ファイルに関連付けられた識別された新たなメタデータ、
d)1つのブロックチェーン参加者から別のブロックチェーン参加者へのファイルのアクセス又は制御の移転。
図7Dは、1つの実施形態に係る、ブロックチェーン790内のブロックの構造を表し得るブロックの一実施形態を示している。ブロック、すなわちBlockは、ヘッダ772、ファイル774、及び値776を含む。
ヘッダ772は、先行ブロックBlocki-1のハッシュ値、及び例えば、本明細書で論述される情報(例えば、参照、特性、パラメータ等を含むヘッダ情報)の任意のタイプであり得る追加の参照情報を含む。全てのブロックは、当然、ジェネシスブロックを除いて、先行ブロックのハッシュを参照する。先行ブロックのハッシュ値は、単に、先行ブロック内のヘッダのハッシュ、又は、ファイル及びメタデータを含む、先行ブロック内の情報の全て又は一部のハッシュであってよい。
ファイル774は、シーケンスにおけるデータ1、データ2、...、データN等の複数のデータを含む。データは、データに関連付けられたコンテンツ及び/又は特性を記述するメタデータ1、メタデータ2、...、メタデータNでタグ付けされている。例えば、各データのためのメタデータは、データのタイムスタンプ、データのプロセス、データ内に示されている人物又は他のコンテンツを示すキーワード、及び/又は、ファイルの全体としての有効性及びコンテンツを確立するのに有用であり得る他の特徴、及び、特にその使用、例えば、以下に論述される実施形態に関連して説明されるようなデジタルエビデンスを示す情報を含んでよい。メタデータに加えて、各データは、改ざん、ファイル内のギャップ、及びファイルを通したシーケンス参照を防止するために、先行データへの参照REF、REF、...、REFでタグ付けされてよい。
メタデータが(例えば、スマートコントラクトを通して)データに割り当てられると、メタデータは、無効化のために容易に識別することができるハッシュの変化を伴わずには変更することができない。それゆえ、メタデータは、ブロックチェーン内の参加者による使用のためにアクセスされ得る情報のデータログを作成する。
値776は、ハッシュ値、又は、前述した情報のタイプのうちの任意のものに基づいて計算される他の値である。例えば、任意の所与のブロックBlockについて、そのブロックのための値は、そのブロックについて実行された処理、例えば、新たなハッシュ値、新たな記憶ロケーション、関連付けられたファイルのための新たなメタデータ、制御又はアクセスの移転、識別子、又は追加される他のアクション又は情報を反映するように更新されてよい。各ブロック内の値は、ファイルのデータのためのメタデータ及びヘッダとは別個であるように示されているが、別の実施形態では、値は、部分的に又は全体的にこのメタデータに基づいてよい。
ブロックチェーン770が形成されると、任意の時点において、ブロックにわたる値のトランザクション履歴をブロックチェーンにクエリすることによって、ファイルのための不変な証拠保全が取得されてよい。このクエリ、又は追跡手順は、直近に含められたブロック(例えば、最後(第N)のブロック)の値を解読し、次に、ジェネシスブロックに達するとともに元のファイルが復元されるまで他のブロックの値の解読を続けることから開始してよい。解読は、各ブロックにおけるヘッダ及びファイル及び関連付けられたメタデータの解読も伴ってよい。
解読は、各ブロックにおいて行われた暗号化のタイプに基づいて実行される。これは、プライベート鍵、公開鍵、又は公開鍵-プライベート鍵ペアの使用を伴ってよい。例えば、非対称暗号化が使用される場合、ネットワーク内のブロックチェーン参加者又はプロセッサは、所定のアルゴリズムを使用して、公開鍵及びプライベート鍵ペアを生成してよい。公開鍵及びプライベート鍵は、何らかの数学的関係を通して互いに関連付けられている。公開鍵は、他のユーザ、例えばIPアドレス又はホームアドレスからメッセージを受信するためのアドレスとして機能するように、パブリックに分散されてよい。プライベート鍵は、秘密に保たれ、他のブロックチェーン参加者に送信されたデジタル署名メッセージに対して使用される。署名は、受信者が送信者の公開鍵を使用して検証することができるように、メッセージ内に含まれる。このようにして、受信者は、送信者のみがこのメッセージを送信することができたことを確実にすることができる。
鍵ペアを生成することは、ブロックチェーン上でのアカウントの作成と類似であってよいが、実際にどこにも登録する必要はない。また、ブロックチェーン上で実行される全てのトランザクションは、それらのプライベート鍵を使用して送信者によってデジタルに署名されている。この署名は、アカウントの所有者のみが、(スマートコントラクトによって判断される許可の範囲内である場合)ブロックチェーンのファイルを追跡及び処理することができることを確実にする。
図8A及び図8Bは、本明細書において組み込まれて使用され得るブロックチェーンのユースケースの追加の例を示している。特に、図8Aは、機械学習(人工知能)データを記憶するブロックチェーン810の例800を示している。機械学習は、新たなデータに対する正確な予測のための予測モデルを構築するために、膨大な量の履歴データ(又はトレーニングデータ)に依拠する。機械学習ソフトウェア(例えば、ニューラルネットワーク等)は、多くの場合、何百万ものレコードを選り分けて、直感的でないパターンを発見することができる。
図8Aの例では、ホストプラットフォーム820は、アセット830の予測監視のための機械学習モデルを構築及び展開する。ここで、ホストプラットフォーム820は、クラウドプラットフォーム、産業用サーバ、ウェブサーバ、パーソナルコンピュータ、ユーザデバイス等であってよい。アセット830は、航空機、機関車、タービン、医療機械及び機器、石油機器及びガス機器、ボート、船舶、車両等のような任意のタイプのアセット(例えば、機械又は機器等)とすることができる。別の例として、アセット830は、株式、通貨、デジタルコイン、保険等のような無形アセットであってよい。
ブロックチェーン810を使用して、機械学習モデルのトレーニングプロセス802、及びトレーニングされた機械学習モデルに基づく予測プロセス804の両方を大幅に改善することができる。例えば、802において、データサイエンティスト/エンジニア又は他のユーザがデータを収集することを要求するのではなく、アセット830自体によって(又は図示されていない仲介者を通して)履歴データがブロックチェーン810上に記憶されてよい。これは、予測モデルトレーニングを実行するときにホストプラットフォーム820によって必要とされる収集時間を大幅に削減することができる。例えば、スマートコントラクトを使用すると、データを、その元の場所からブロックチェーン810に直接かつ確実に転送することができる。収集されたデータのセキュリティ及び所有権を確実にするためにブロックチェーン810を使用することによって、スマートコントラクトは、機械学習モデルを構築するためにデータを使用する個人にアセットからのデータを直接送信してよい。これにより、アセット830の間でデータを共有することが可能になる。
収集されたデータは、コンセンサスメカニズムに基づいてブロックチェーン810に記憶されてよい。コンセンサスメカニズムは、記録されているデータが検証され、正確であることを確実にするために(許可されたノード)を取り込む。記録されたデータは、タイムスタンプ付与され、暗号で署名され、不変である。したがって、監査可能で、透過的で、かつセキュアである。ブロックチェーンに直接書き込むIoTデバイスを追加することは、特定のケース(すなわち、サプライチェーン、ヘルスケア、ロジスティクス等)で、記録されるデータの頻度及び正確性の両方を高めることができる。
さらに、収集されたデータに対する機械学習モデルのトレーニングは、ホストプラットフォーム820による改良及びテストのラウンドを取ってよい。各ラウンドは、追加のデータ、又は機械学習モデルの知識を拡大するのに役立つと以前には考慮されていなかったデータに基づき得る。802において、ホストプラットフォーム820によって、異なるトレーニング及びテスト段階(及びそれに関連付けられたデータ)は、ブロックチェーン810上に記憶されてよい。機械学習モデルの各改良(例えば、変数、重み等の変更)は、ブロックチェーン810上に記憶されてよい。これは、いかにモデルがトレーニングされたか及びいずれのデータがモデルをトレーニングするのに使用されたかの検証可能な証拠を提供する。さらに、ホストプラットフォーム820が最終的にトレーニングされたモデルを達成したとき、結果として得られるモデルはブロックチェーン810上に記憶されてよい。
モデルがトレーニングされた後、それは最終的にトレーニングされた機械学習モデルの実行に基づいて予測/決定を行うことができるライブ環境に展開されてよい。例えば、804において、機械学習モデルは、航空機、風力タービン、医療機械等のようなアセットの状態基準保全(CBM)に使用されてよい。この例では、アセット830からフィードバックされたデータは、機械学習モデルに入力され、失敗イベント、エラーコード等のようなイベント予測を行うために使用されてよい。ホストプラットフォーム820における機械学習モデルの実行によってなされた決定は、ブロックチェーン810上に記憶されて、監査可能/検証可能な証拠が提供されてよい。1つの非限定的な例として、機械学習モデルは、アセット830の一部に対する将来の故障/失敗を予測し、当該一部を交換するためのアラート又は通知を作成してよい。この判断の基となるデータは、ブロックチェーン810上のホストプラットフォーム820によって記憶されてよい。1つの実施形態では、本明細書において説明及び/又は図示される特徴及び/又はアクションは、ブロックチェーン810上で又はブロックチェーン810に関して行うことができる。
ブロックチェーンの新たなトランザクションを新たなブロック内にまとめて、既存のハッシュ値に追加することができる。次に、これが暗号化されて、新たなブロックの新たなハッシュが作成される。これは、トランザクションが暗号化されたとき等に、トランザクションの次のリストに追加される。結果は、全ての先行ブロックのハッシュ値を各々含むブロックのチェーンである。これらのブロックを記憶するコンピュータは、それらのハッシュ値を定期的に比較して、それらが全て一致していることを確実にする。一致しない任意のコンピュータは、問題の原因となっているレコードを破棄する。この手法は、ブロックチェーンの改ざん防止を確実にするのに適しているが、完全ではない。
このシステムの抜け穴を悪用する1つの方法は、不正なユーザが、自身が有利になるようにトランザクションのリストを変更して、ハッシュを変更しないままにする方法である。これは、ブルートフォースによって、換言すれば、レコードを変更し、結果を暗号化し、ハッシュ値が同じであるか否かを確認することによって行うことができる。同じではない場合、一致するハッシュを発見するまで繰り返し試行する。ブロックチェーンのセキュリティは、通常のコンピュータが、宇宙の年齢等の完全に非現実的な時間スケールにわたってでしかこの種類のブルートフォース攻撃を実行することができないという考えに基づいている。対照的に、量子コンピュータは、はるかに高速(数千倍の速さ)であり、したがって、はるかに大きな脅威を課す。
図8Bは、量子コンピューティング攻撃から保護するために量子鍵配布(QKD)を実装する量子セキュアブロックチェーン852の例850を示している。この例では、ブロックチェーンユーザは、QKDを使用して互いのアイデンティティを検証することができる。これは、盗聴者が破壊せずにコピーすることはできない、光子等の量子粒子を使用して情報を送信する。このようにして、ブロックチェーンを通した送信者及び受信者は、互いのアイデンティティを確認することができる。
図8Bの例では、854、856、858、及び860の4人のユーザが存在する。ユーザのペアの各々は、自身達の間で秘密鍵862(すなわち、QKD)を共有してよい。この例では4つのノードがあるので、ノードの6つのペアが存在し、したがって、QKDAB、QKDAC、QKDAD、QKDBC、QKDBD、及びQKDCDを含む6つの異なる秘密鍵862が使用される。各ペアは、盗聴者が破壊せずにコピーすることはできない、光子等の量子粒子を使用して情報を送信することによってQKDを作成することができる。このようにして、ユーザのペアは互いのアイデンティティを確認することができる。
ブロックチェーン852の動作は、(i)トランザクションの作成、及び(ii)新たなトランザクションを集約するブロックの構築の2つの手順に基づく。新たなトランザクションは、従来のブロックチェーンネットワークと同様に作成されてよい。各トランザクションは、送信者、受信者、作成時点、転送される金額(又は値)、送信者が操作のための資金を持っていることを正当化する参照トランザクションのリスト等に関する情報を含んでよい。次に、このトランザクションレコードは他の全てのノードに送信され、未確認トランザクションのプールに入れられる。ここで、2つの当事者(すなわち、854~860の中からのユーザのペア)が、それらの共有秘密鍵862(QKD)を提供することによってトランザクションを認証する。この量子署名は、全てのトランザクションに添付することができ、改ざんは極めて困難になる。各ノードは、ブロックチェーン852のローカルコピーに関して自身のエントリをチェックして、各トランザクションが十分な資金を有していることを検証する。しかしながら、トランザクションはまだ確認されていない。
ブロックに対して従来のマイニングプロセスを実行するのではなく、ブロードキャストプロトコルを使用して非中央集権方式でブロックが作成されてよい。所定の期間(例えば、秒、分、時等)において、ネットワークは、ブロードキャストプロトコルを任意の未確認トランザクションに適用し、それによって、トランザクションの正しいバージョンに関するビザンチン合意(コンセンサス)が達成され得る。例えば、各ノードは、プライベート値(その特定のノードのトランザクションデータ)を所有してよい。第1のラウンドにおいて、ノードは、自身のプライベート値を互いに送信する。後続のラウンドにおいて、ノードは、先行ラウンドにおいて他のノードから受信した情報を通信する。ここでは、正直なノードが新たなブロック内にトランザクションの完全なセットを作成することが可能である。この新たなブロックは、ブロックチェーン852に追加することができる。1つの実施形態では、本明細書において説明及び/又は図示される特徴及び/又はアクションは、ブロックチェーン852上で又はブロックチェーン852に関して行うことができる。
図9は、本明細書において説明及び/又は図示される例示の実施形態のうちの1つ又は複数をサポートする例示のシステム900を示している。システム900は、多数の他の汎用又は専用コンピューティングシステム環境又は構成とともに動作可能であるコンピュータシステム/サーバ902を備える。コンピュータシステム/サーバ902との使用に適し得る周知のコンピューティングシステム、環境及び/又は構成の例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、及び上記のシステム又はデバイス等のうちの任意のものを含む分散クラウドコンピューティング環境が挙げられるが、これらに限定されない。
コンピュータシステム/サーバ902は、コンピュータシステムによって実行されているプログラムモジュール等のコンピュータシステム実行可能命令の一般的な文脈で説明されてよい。一般に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等を含んでよい。コンピュータシステム/サーバ902は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される分散クラウドコンピューティング環境において実践されてよい。分散クラウドコンピューティング環境では、メモリ記憶デバイスを含むローカル及びリモートの両方のコンピュータシステム記憶媒体にプログラムモジュールが配置されてよい。
図9に示されているように、クラウドコンピューティングノード900内のコンピュータシステム/サーバ902が、汎用コンピューティングデバイスの形式で示されている。コンピュータシステム/サーバ902のコンポーネントは、1つ又は複数のプロセッサ又は処理ユニット904、システムメモリ906、及びシステムメモリ906を含む様々なシステムコンポーネントをプロセッサ904に結合するバスを含んでよいが、これらに限定されない。
バスは、メモリバス又はメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィックスポート、及び多様なバスアーキテクチャのうちの任意のものを使用するプロセッサ又はローカルバスを含む、幾つかのタイプのバス構造のうちの任意のもののうちの1つ又は複数を表す。例示として、限定されることなく、そのようなアーキテクチャは、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、及びペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
コンピュータシステム/サーバ902は、典型的には、多様なコンピュータシステム可読媒体を含む。そのような媒体は、コンピュータシステム/サーバ902によってアクセス可能である任意の利用可能な媒体であってよく、それは、揮発性媒体及び不揮発性媒体の両方、取り外し可能媒体及び取り外し不能媒体を含む。システムメモリ906は、1つの実施形態では、他の図のフロー図を実装する。システムメモリ906は、ランダムアクセスメモリ(RAM)910及び/又はキャッシュメモリ912等の揮発性メモリの形式のコンピュータシステム可読媒体を含むことができる。コンピュータシステム/サーバ902は、他の取り外し可能/取り外し不能、揮発性/不揮発性コンピュータシステム記憶媒体を更に含んでよい。単に例示として、記憶システム914は、取り外し不能、不揮発性磁気媒体(示されておらず、典型的には「ハードドライブ」と呼ばれる)から読み出し、これに書き込むために提供することができる。図示されていないが、取り外し可能不揮発性磁気ディスク(例えば、「フロッピーディスク」)との間で読み出し及び書き込みを行うための磁気ディスクドライブ、及びCD-ROM、DVD-ROM又は他の光学媒体等の取り外し可能不揮発性光学ディスクとの間で読み出し又は書き込みを行うための光学ディスクドライブが提供され得る。そのような場合、各々を1つ又は複数のデータ媒体インターフェースによってバスに接続することができる。以下で更に図示及び説明されるように、メモリ906は、アプリケーションの様々な実施形態の機能を実行するように構成されるプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでよい。
プログラムモジュール918のセット(少なくとも1つ)を有するプログラム/ユーティリティ916は、限定ではなく例示として、メモリ906に記憶されてよく、また、オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータも同様である。オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータの各々又はこれらの何らかの組み合わせは、ネットワーキング環境の実装を含んでよい。プログラムモジュール918は、一般に、本明細書において説明されるようにアプリケーションの様々な実施形態の機能及び/又は方法論を実行する。
当業者によって理解されるように、本出願の態様は、システム、方法、又はコンピュータプログラム製品として具現化されてよい。したがって、本出願の態様は、完全にハードウェアの実施形態、完全にソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)の実施形態、又は本明細書において全て一般に「回路」、「モジュール」、又は「システム」と称され得るソフトウェア及びハードウェアの態様を組み合わせた実施形態の形式を取ってよい。さらに、本出願の態様は、コンピュータ可読プログラムコードが具現化された1つ又は複数のコンピュータ可読媒体において具現化されたコンピュータプログラム製品の形式を取ってよい。
また、コンピュータシステム/サーバ902は、キーボード、ポインティングデバイス、ディスプレイ922等のような1つ又は複数の外部デバイス920;ユーザがコンピュータシステム/サーバ902とインタラクトすることを可能にする1つ又は複数のデバイス;及び/又はコンピュータシステム/サーバ902が1つ又は複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデム等)と通信してよい。そのような通信は、I/Oインターフェース924を介して行うことができる。さらになお、コンピュータシステム/サーバ902は、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、及び/又はパブリックネットワーク(例えば、インターネット)等の1つ又は複数のネットワークと、ネットワークアダプタ926を介して通信することができる。示されているように、ネットワークアダプタ926は、バスを介してコンピュータシステム/サーバ902の他のコンポーネントと通信する。示されていないが、他のハードウェア及び/又はソフトウェアコンポーネントは、コンピュータシステム/サーバ902と併せて使用することができることが理解されるべきである。例は、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブ記憶システム等を含むがこれらに限定されない。
システム、方法、及び非一時的コンピュータ可読媒体のうちの少なくとも1つの例示的な実施形態が、添付の図面に示され、前述の詳細な説明に説明されているが、本出願は、開示される実施形態に限定されず、以下の特許請求の範囲に記載及び定義される多数の再構成、修正、及び置換が可能であることが理解されるであろう。例えば、様々な図のシステムの機能は、本明細書において説明されるモジュール又はコンポーネントのうちの1つ又は複数によって、又は分散アーキテクチャにおいて実行することができ、送信機、受信機、又は両方のペアを含んでよい。例えば、個別のモジュールによって実行される機能の全て又は一部は、これらのモジュールのうちの1つ又は複数によって実行されてよい。さらに、本明細書において説明される機能は、モジュール又はコンポーネントの内部又は外部の様々なイベントに関連して、様々な時点において実行されてよい。また、様々なモジュール間で送信される情報は、データネットワーク、インターネット、音声ネットワーク、インターネットプロトコルネットワーク、無線デバイス、有線デバイスのうちの少なくとも1つを介して、及び/又は複数のプロトコルを介してモジュール間で送信することができる。また、モジュールのうちの任意のものによって送信又は受信されるメッセージは、直接及び/又は他のモジュールのうちの1つ又は複数を介して送信又は受信されてよい。
当業者であれば、「システム」がパーソナルコンピュータ、サーバ、コンソール、携帯情報端末(PDA(登録商標))、携帯電話、タブレットコンピューティングデバイス、スマートフォン又は他の任意の適したコンピューティングデバイス、又はデバイスの組み合わせとして具現化することができることを理解するであろう。上記で説明された機能を「システム」によって実行されるものとして提示することは、本出願の範囲を決して限定することを意図するものではなく、多くの実施形態の1つの例を提供することを意図するものである。実際、本明細書において開示される方法、システム及び装置は、コンピューティング技術と一致する局部的及び分散的な形式で実装されてよい。
本明細書において説明されるシステム機能の一部は、それらの実装の独立性をより具体的に強調するために、モジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタム超大規模集積(VLSI)回路又はゲートアレイ、論理チップ、トランジスタ、又は他の別個のコンポーネント等の既製の半導体を含むハードウェア回路として実装されてよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニット等のようなプログラマブルハードウェアデバイスにおいて実装されてよい。
モジュールはまた、様々なタイプのプロセッサによる実行のために、ソフトウェアにおいて少なくとも部分的に実装されてよい。例えば、実行可能コードの識別されたユニットは、例えば、オブジェクト、手順、又は機能として編成され得るコンピュータ命令の1つ又は複数の物理ブロック又は論理ブロックを有してよい。それにもかかわらず、識別されたモジュールの実行可能ファイルは、物理的にともに配置する必要はないが、異なるロケーションに記憶された異種の命令を有してよく、これらは、論理的にともに結合されたときに、モジュールを有し、モジュールの規定の目的を達成する。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、ランダムアクセスメモリ(RAM)、テープ、又はデータを記憶するために使用される他の任意のそのような媒体であり得るコンピュータ可読媒体上に記憶されてよい。
実際、実行可能コードのモジュールは、単一の命令、又は多くの命令とすることができ、幾つかの異なるコードセグメントにわたって、異なるプログラム間で、及び幾つかのメモリデバイスにわたっても分散されることさえあり得る。同様に、動作データは、本明細書においてモジュール内で識別及び示されてよく、任意の適した形式において具現化され、任意の適したタイプのデータ構造内に編成されてよい。動作データは、単一のデータセットとして収集されてもよいし、又は異なる記憶デバイスを含む異なるロケーションにわたって分散されてもよく、少なくとも部分的に、システム又はネットワーク上の電子信号としてのみ存在してもよい。
本明細書において概して説明され、図示されるような本出願のコンポーネントは、多種多様な異なる構成において配置及び設計され得ることが容易に理解されるであろう。それゆえ、実施形態の詳細な説明は、特許請求される本出願の範囲を限定することを意図するものではなく、本出願の選択された実施形態を単に代表するものである。
当業者であれば、上記が、異なる順序の段階で、及び/又は開示されたものとは異なる構成のハードウェア要素で実践され得ることを容易に理解するであろう。したがって、本出願はこれらの好ましい実施形態に基づいて説明されてきたが、特定の修正、変形、及び代替構成が明らかであることは当業者には明らかであろう。
本出願の好ましい実施形態が説明されてきたが、説明された実施形態は例示にすぎず、本出願の範囲は、実施形態に対する均等物及び修正物(例えば、プロトコル、ハードウェアデバイス、ソフトウェアプラットフォーム等)の全範囲を考慮した場合、添付の特許請求の範囲によってのみ定義されるべきであることが理解されるべきである。

Claims (20)

  1. 暗号鍵を用いてプライベート鍵を暗号化し、
    前記暗号鍵に基づいて複数の鍵を生成し、秘密入力値に基づいて、前記複数の鍵を複数の鍵共有に変換し、
    前記暗号化されたプライベート鍵をブロックチェーン上に記憶する
    ように構成されたプロセッサ;及び
    前記ブロックチェーンの複数のブロックチェーンピアに前記複数の鍵共有を分散させるように構成されたネットワークインターフェース、ここで、前記プロセッサは、前記複数の鍵共有の中からの異なる鍵共有を、前記複数のブロックチェーンピアの中の各ブロックチェーンピアに送信する
    を備える、装置。
  2. 前記複数の鍵は、複数の疑似乱数値を含み、前記プロセッサは、前記複数の疑似乱数値を、それぞれ、前記複数のブロックチェーンピアに登録するように構成されている、請求項1に記載の装置。
  3. 前記プロセッサは、前記複数の鍵の中からの鍵及び前記秘密入力値を受信し、前記それぞれの鍵について鍵共有を出力する忘却疑似乱数関数(OPRF)を実行するように構成されている、請求項1に記載の装置。
  4. 前記プロセッサは、前記秘密入力値に基づいて前記複数の鍵の中の鍵ごとに前記OPRFを反復的に実行して、前記複数の鍵共有の中の各鍵共有を出力するように構成されている、請求項3に記載の装置。
  5. 前記秘密入力値は、パスワードを含む、請求項3に記載の装置。
  6. 前記プロセッサは、前記複数のブロックチェーンピアにブロックチェーントランザクションを分散させるように前記ネットワークインターフェースを制御するように構成されており、前記ブロックチェーントランザクションは、前記暗号化されたプライベート鍵及び支払い値を含む、請求項1に記載の装置。
  7. 前記プロセッサは、前記複数のブロックチェーンピアから前記複数の鍵共有を取得し、前記秘密入力値に基づいて前記複数の鍵共有を前記複数の鍵に戻るように変換するように構成されている、請求項1に記載の装置。
  8. 前記プロセッサは、前記複数の鍵から前記暗号鍵を復元し、前記復元された暗号鍵に基づいて前記複数のブロックチェーンピアによって記憶された手数料トランザクションを解読するように更に構成されている、請求項7に記載の装置。
  9. 前記プロセッサは、前記解読された手数料トランザクションを前記複数のブロックチェーンピアの中からのブロックチェーンピアに送信し、前記解読された手数料トランザクションと交換に前記ブロックチェーンピアから、前記暗号化されたプライベート鍵を受信し、前記復元された暗号鍵に基づいて、前記暗号化されたプライベート鍵を解読するように更に構成されている、請求項8に記載の装置。
  10. 暗号鍵を用いてプライベート鍵を暗号化する段階;
    前記暗号鍵に基づいて複数の鍵を生成し、秘密入力値に基づいて、前記複数の鍵を複数の鍵共有に変換する段階;
    前記暗号化されたプライベート鍵をブロックチェーン上に記憶する段階;及び
    前記ブロックチェーンの複数のブロックチェーンピアに前記複数の鍵共有を分散させる段階、ここで、前記分散させる段階は、前記複数の鍵共有の中からの異なる鍵共有を、前記複数のブロックチェーンピアの中の各ブロックチェーンピアに送信する段階を有する
    を備える、方法。
  11. 前記複数の鍵は、複数の疑似乱数値を含み、前記方法は、前記複数の疑似乱数値を、それぞれ、前記複数のブロックチェーンピアに登録する段階を更に備える、請求項10に記載の方法。
  12. 前記変換する段階は、前記複数の鍵の中からの鍵及び前記秘密入力値を受信し、前記それぞれの鍵について鍵共有を出力する忘却疑似乱数関数(OPRF)を実行する段階を有する、請求項10に記載の方法。
  13. 前記変換する段階は、前記秘密入力値に基づいて前記複数の鍵の中の鍵ごとに前記OPRFを反復的に実行して、前記複数の鍵共有の中の各鍵共有を出力する段階を更に有する、請求項12に記載の方法。
  14. 前記秘密入力値は、パスワードを含む、請求項12に記載の方法。
  15. 前記記憶する段階は、前記複数のブロックチェーンピアにブロックチェーントランザクションを分散させる段階を有し、ここで、前記ブロックチェーントランザクションは、前記暗号化されたプライベート鍵及び支払い値を含む、請求項10に記載の方法。
  16. 前記方法は、前記複数のブロックチェーンピアから前記複数の鍵共有を取得し、前記秘密入力値に基づいて前記複数の鍵共有を前記複数の鍵に戻るように変換する段階を更に備える、請求項10に記載の方法。
  17. 前記方法は、前記複数の鍵から前記暗号鍵を復元し、前記復元された暗号鍵に基づいて前記複数のブロックチェーンピアによって記憶された手数料トランザクションを解読する段階を更に備える、請求項16に記載の方法。
  18. 前記方法は、前記解読された手数料トランザクションを前記複数のブロックチェーンピアの中からのブロックチェーンピアに送信し、前記解読された手数料トランザクションと交換に前記ブロックチェーンピアから、前記暗号化されたプライベート鍵を受信し、前記復元された暗号鍵に基づいて、前記暗号化されたプライベート鍵を解読する段階を更に備える、請求項17に記載の方法。
  19. プロセッサによって読み取られると、前記プロセッサに方法を実行させる命令を備えるコンピュータプログラム製品であって、前記方法は:
    暗号鍵を用いてプライベート鍵を暗号化する段階;
    前記暗号鍵に基づいて複数の鍵を生成し、秘密入力値に基づいて、前記複数の鍵を複数の鍵共有に変換する段階;
    前記暗号化されたプライベート鍵をブロックチェーン上に記憶する段階;及び
    前記ブロックチェーンの複数のブロックチェーンピアに前記複数の鍵共有を分散させる段階、ここで、前記分散させる段階は、前記複数の鍵共有の中からの異なる鍵共有を、前記複数のブロックチェーンピアの中の各ブロックチェーンピアに送信する段階を有する
    を備える、コンピュータプログラム製品。
  20. 前記変換する段階は、前記複数の鍵の中からの鍵及び前記秘密入力値を受信し、前記それぞれの鍵について鍵共有を出力する忘却疑似乱数関数(OPRF)を実行する段階を有する、請求項19に記載のコンピュータプログラム製品。
JP2023531520A 2020-11-24 2021-10-25 Oprfを介したブロックチェーンネットワークにおける鍵再生 Pending JP2023551458A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/103,475 2020-11-24
US17/103,475 US20220166616A1 (en) 2020-11-24 2020-11-24 Key reclamation in blockchain network via oprf
PCT/CN2021/125947 WO2022111175A1 (en) 2020-11-24 2021-10-25 Key reclamation in blockchain network via oprf

Publications (1)

Publication Number Publication Date
JP2023551458A true JP2023551458A (ja) 2023-12-08

Family

ID=81658686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023531520A Pending JP2023551458A (ja) 2020-11-24 2021-10-25 Oprfを介したブロックチェーンネットワークにおける鍵再生

Country Status (6)

Country Link
US (1) US20220166616A1 (ja)
JP (1) JP2023551458A (ja)
CN (1) CN116438776A (ja)
DE (1) DE112021006165T5 (ja)
GB (1) GB2615710A (ja)
WO (1) WO2022111175A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115114082A (zh) * 2021-03-23 2022-09-27 伊姆西Ip控股有限责任公司 用于在物联网中备份数据的方法、设备和程序产品
TWI806724B (zh) * 2022-08-02 2023-06-21 中華電信股份有限公司 用於決定金鑰的系統及方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8015211B2 (en) * 2004-04-21 2011-09-06 Architecture Technology Corporation Secure peer-to-peer object storage system
US9413735B1 (en) * 2015-01-20 2016-08-09 Ca, Inc. Managing distribution and retrieval of security key fragments among proxy storage devices
US11107071B2 (en) * 2016-02-01 2021-08-31 Apple Inc. Validating online access to secure device functionality
US11720890B2 (en) * 2016-04-22 2023-08-08 Micro Focus Llc Authorization of use of cryptographic keys
US10762564B2 (en) * 2016-11-10 2020-09-01 International Business Machines Corporation Autonomous peer-to-peer energy networks operating on a blockchain
LU93377B1 (en) * 2016-12-15 2018-07-03 Luxembourg Inst Science & Tech List P2p network data distribution and retrieval using blockchain log
US10601585B1 (en) * 2016-12-16 2020-03-24 EMC IP Holding Company LLC Methods and apparatus for blockchain encryption
US11190344B2 (en) * 2017-01-25 2021-11-30 Salesforce.Com, Inc. Secure user authentication based on multiple asymmetric cryptography key pairs
CN110663055A (zh) * 2017-05-16 2020-01-07 苹果公司 促进用户帐户之间的资金转移
GB201709367D0 (en) * 2017-06-13 2017-07-26 Nchain Holdings Ltd Computer-implemented system and method
CN107623569A (zh) * 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
US10439812B2 (en) * 2018-02-02 2019-10-08 SquareLink, Inc. Technologies for private key recovery in distributed ledger systems
US10841080B2 (en) * 2018-03-20 2020-11-17 International Business Machines Corporation Oblivious pseudorandom function in a key management system
US10917234B2 (en) * 2018-05-03 2021-02-09 International Business Machines Corporation Blockchain for on-chain management of off-chain storage
CN109379397B (zh) * 2018-08-31 2019-12-06 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
US20210135855A1 (en) * 2019-10-30 2021-05-06 EMC IP Holding Company LLC Threshold-Based Override of Data Privacy Using Distributed Ledgers and Key Shares
CN110929290B (zh) * 2019-12-04 2022-03-18 南京如般量子科技有限公司 基于联盟链的私钥门限备份、挂失及恢复系统及其方法
CN111507710A (zh) * 2020-03-25 2020-08-07 农业农村部农药检定所(国际食品法典农药残留委员会秘书处) 一种数据查询与共享系统
US11736456B2 (en) * 2020-09-29 2023-08-22 International Business Machines Corporation Consensus service for blockchain networks

Also Published As

Publication number Publication date
GB2615710A (en) 2023-08-16
CN116438776A (zh) 2023-07-14
US20220166616A1 (en) 2022-05-26
GB202307404D0 (en) 2023-07-05
WO2022111175A1 (en) 2022-06-02
DE112021006165T5 (de) 2023-10-05

Similar Documents

Publication Publication Date Title
US11360963B2 (en) Tracking and verification of physical assets
US20210091960A1 (en) Tracking and verification of physical assets
US11349637B2 (en) Random node selection for permissioned blockchain
US11250021B2 (en) Faster view change for blockchain
US20210176038A1 (en) Efficient threshold storage of data object
US20200382283A1 (en) Blockchain verification using non-consecutive blocks
US11580098B2 (en) Multi-client transaction validation
WO2022089198A1 (en) Blockchain for artificial intelligence training
US11228424B2 (en) Blu-ray copy service
JP2023520632A (ja) データの保護のためのノイズ・トランザクション
US20230208638A1 (en) Future asset reclamation via blockchain
WO2022111175A1 (en) Key reclamation in blockchain network via oprf
US11856092B2 (en) Limiting data availability on distributed ledger
US11924348B2 (en) Honest behavior enforcement via blockchain
JP2023098847A (ja) 装置、方法、コンピュータプログラム(プライバシー保護ブロックチェーンの選択的監査プロセス)
WO2023046409A1 (en) Digital asset platform with hsm verification
WO2022057451A1 (en) Threshold encryption for broadcast content
US11416474B2 (en) Blockchain-based software library access and usage management
US20210232539A1 (en) Document storage and verification
US20210232540A1 (en) Document storage and verification
AU2021254870B2 (en) Faster view change for blockchain
US11856057B2 (en) Preservation of channel metadata
WO2023126313A1 (en) Htlc with proof of elapsed time
WO2023041995A1 (en) Privacy-preserving state reference

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240319