(57)【要約】ブロックチェーンネットワーク内の複数のノードデバイスによりデジタルリソースを検証するための方法及びデバイス。複数のノードは、それぞれの秘密鍵共有分を有し、共同秘密−公開鍵ペアの共同秘密鍵は、それぞれの秘密鍵共有分のセットに基づいており、各ノードは、ノード秘密−公開鍵ペアを有する。デジタルリソースは、デジタルリソース暗号公開鍵を使用して暗号化されてよく、デジタルリソース暗号公開鍵は、ノード公開鍵と共同公開鍵の組合せを含む。デジタルリソースは、コミットメントチャネルのコミットメントトランザクション及び後続の公開又は取り消しトランザクションをブロードキャストすることによってリポジトリシステムに提出されてよく、コミットメントチャネルは、それぞれのノードと主ノードとの間に形成される。暗号化されたデジタルリソースを復号することは、デジタルリソースを検証することに参加している複数のノードから、秘密鍵共有寄与を取り出すことに基づいている。
2021516902.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンネットワーク内の複数のノード及び主ノードによりデジタルリソースを検証する、コンピュータ実施される方法であって、前記複数のノードは、それぞれの秘密鍵共有分を有し、共同秘密−公開鍵ペアの共同秘密鍵は、前記それぞれの秘密鍵共有分のセットに基づいており、第１ノードは、第１ノード秘密−公開鍵ペアを有し、当該方法は：
前記第１ノードによって、前記第１ノード秘密−公開鍵ペアの第１ノード公開鍵と、前記共同秘密−公開鍵ペアの共同公開鍵を組み合わせることにより、デジタルリソース暗号公開鍵を生成するステップと；
前記デジタルリソース暗号公開鍵を使用して前記デジタルリソースを暗号化するステップと；
前記第１ノードによって、コミットメントトランザクション出力を入力として有する有効な後続のトランザクションが前記第１ノードの秘密鍵共有分を含むように、前記第１ノードの前記秘密鍵共有分によりロックされた前記コミットメントトランザクション出力を有するコミットメントトランザクションを生成することと、
前記第１ノードによって、前記主ノードによって署名された前記有効な後続のトランザクションを受け取ることと、
によって、第１コミットメントチャネルについて１つ以上のブロックチェーントランザクションを生成するステップと；
前記コミットメントトランザクションを前記ブロックチェーンネットワークにブロードキャストするステップと；
を含む、方法。
【請求項２】
前記第１ノードによって、第１タイムロック閾値の前に、前記主ノードによって署名された前記有効な後続のトランザクションを前記ブロックチェーンネットワークにブロードキャストして、ブロックチェーンにおいて前記第１ノードの前記秘密鍵共有分を明らかにするステップ、
を更に含む、請求項１に記載の方法。
【請求項３】
ブロックチェーンから、前記デジタルリソースに関連付けられる秘密鍵共有分のセットを取り出すステップと；
秘密鍵共有分の量が秘密鍵共有閾値より多いと判断したことに応答して、前記取り出された秘密鍵共有分のセットから、前記共同秘密−公開鍵ペアの前記共同秘密鍵を再生成するステップと；
デジタルリソース暗号秘密鍵を使用して前記暗号化されたデジタルリソースを復号するステップであって、前記デジタルリソース暗号秘密鍵は、前記再生成された共同秘密鍵と、前記第１ノード秘密−公開鍵ペアの第１ノード秘密鍵の組合せである、ステップと；
を更に含む、請求項１又は２に記載の方法。
【請求項４】
前記コミットメントトランザクションは、有効な後続のトランザクションが、公開オプションを選択するために前記デジタルリソースのハッシュ、前記第１ノードの前記秘密鍵共有分、前記第１ノード秘密−公開鍵ペアの第１ノード秘密鍵、前記主ノードの署名及び前記第１ノードの署名とともにトランザクション入力を含むように、前記デジタルリソースのハッシュ、前記第１ノードの前記秘密鍵共有分、前記第１ノード秘密−公開鍵ペアの第１ノード秘密鍵、前記主ノードの署名及び前記第１ノードの署名を必要とする公開オプションを含む、１つより多くのアンロッキングオプションを含むトランザクション出力を有する、
請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記コミットメントトランザクションは、有効な後続のトランザクションが、取り消しオプションを選択するために前記第１ノードの前記秘密鍵共有分、前記主ノードの署名及び前記第１ノードの署名とともにトランザクション入力を含むように、前記第１ノードの前記秘密鍵共有分、前記主ノードの署名及び前記第１ノードの署名を必要とする取り消しオプションを含む、１つより多くのアンロッキングオプションを含むトランザクション出力を有する、
請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記コミットメントトランザクションは、有効な後続のトランザクションが、タイムアウトオプションを選択するために前記主ノードの署名及び前記第１ノードの署名とともにトランザクション入力を含むように、前記主ノードの署名及び前記第１ノードの署名を必要とするタイムアウトオプションを含む、１つより多くのアンロッキングオプションを含むトランザクション出力を有する、
請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記暗号化されたデジタルリソースは、公的リポジトリに格納され、前記コミットメントトランザクションは、前記第１ノードによって生成されたドキュメントが前記公的リポジトリに保存される、前記ブロックチェーンネットワークにブロードキャストする、
請求項１乃至６のいずれかに記載の方法。
【請求項８】
第１資産値に対する制限は、前記有効な後続のトランザクションのトランザクション入力が少なくとも前記主ノードの署名及び前記第１ノードの署名を有することに応答して除去される、
請求項１乃至７のいずれかに記載の方法。
【請求項９】
前記有効な後続のトランザクションは、前記主ノードによって署名された取り消しトランザクションであり、前記主ノードによって署名された前記取り消しトランザクションを受け取る前に、当該方法は、
前記第１ノードの前記秘密鍵共有分及び前記第１ノードの署名を有するトランザクション入力を含む、前記取り消しトランザクションを生成するステップ、
を更に含む、請求項１乃至８のいずれかに記載の方法。
【請求項１０】
第１資産値に対する制限は、前記取り消しトランザクションの前記トランザクション入力が、前記第１ノードの前記秘密鍵共有分、前記主ノードの署名及び前記第１ノードの署名を有することに応答して除去され、
第２資産値に対する制限は、更なるトランザクションのトランザクション入力が、前記主ノードの署名を有することに応答して除去され、第３資産値に対する制限は、更なるトランザクションのトランザクション入力が、前記第１ノードの署名を有することに応答して除去され、
前記第３資産値は、前記第１資産値と前記第２資産値の差である、
請求項９に記載の方法。
【請求項１１】
前記有効な後続のトランザクションは、前記主ノードによって署名された公開トランザクションであり、前記主ノードによって署名された前記公開トランザクションを受け取る前に、当該方法は、
前記デジタルリソースのハッシュ、前記第１ノードの前記秘密鍵共有分、前記第１ノード秘密−公開鍵ペアの第１ノード秘密鍵及び前記第１ノードの署名を有するトランザクション入力を含む、前記公開トランザクションを生成するステップ、
を更に含む、請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
第１資産値に対する制限は、前記公開トランザクションの前記トランザクション入力が、前記デジタルリソースの前記ハッシュ、前記第１ノードの前記秘密鍵共有分、前記第１ノード秘密−公開鍵ペアの前記第１ノード秘密鍵、前記主ノードの署名及び前記第１ノードの前記署名を有することに応答して除去され、
第４資産値に対する制限は、更なるトランザクションのトランザクション入力が、前記主ノードの前記署名を有することに応答して除去され、第５資産値に対する制限は、更なるトランザクションのトランザクション入力が、前記第１ノードの前記署名を有することに応答して除去され、
前記第５資産値は、前記第１資産値と前記第４資産値の差である、
請求項１１に記載の方法。
【請求項１３】
前記第１コミットメントチャネルについて前記１つ以上のブロックチェーントランザクションを生成するステップは、タイムアウトトランザクションを生成することを更に含み、前記タイムアウトトランザクションは、第１タイムロック閾値が経過した後に、前記主ノードによって前記ブロックチェーンネットワークにブロードキャストされる資格がある、
請求項１乃至１２のいずれかに記載の方法。
【請求項１４】
デジタルリソースを検証することに参加するコンピューティングデバイスであって、当該コンピューティングデバイスは、ブロックチェーンネットワーク内の複数のノードのうちの第１ノードであり、当該コンピューティングデバイスは、
プロセッサと；
メモリと；
前記複数のノード内の他のノードへのネットワーク接続を提供するネットワークインタフェースと；
前記プロセッサによって実行されると、前記プロセッサに、請求項１乃至１３のいずれか一項に記載の方法を実行させるコンピュータ実行可能命令を含む、ブロックチェーンアプリケーションと；
を含むコンピューティングデバイス。
【請求項１５】
ブロックチェーンネットワーク内の複数のノードによってデジタルリソースを検証するためにプロセッサ実行可能命令を格納する非一時的プロセッサ読取可能な媒体であって、前記プロセッサ実行可能命令は、前記複数のノードのうちの１つのプロセッサによって実行されると、該プロセッサに、請求項１乃至１３のいずれか一項に記載の方法を実行させる、非一時的プロセッサ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、デジタルリソース、資産及び／又はデータへのアクセス及びその制御を保護することに関する。また、本出願は、そのようなデジタルエンティティの状態を維持及び実施すること、並びにこれらをコンピュータベースのリソース間で分散又は共有することができる方法にも関する可能性がある。より具体的には、本出願は、ブロックチェーンネットワーク内の複数のノードによるデジタルリソース／資産／データの検証に関する。
【背景技術】
【０００２】
本明細書において、「ブロックチェーン」という用語は、電子的なコンピュータベースの分散台帳のすべての形式を包含するように使用される。これらは、コンセンサスベースのブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳及びそれらの変形を含む。広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され、開発されている。本明細書では、いくつかの例において、単に便宜性及び例示の目的のためにビットコインが参照され得るが、本出願は、ビットコインブロックチェーンでの使用に限定されないことに留意されたい。代替的なブロックチェーン実装及びプロトコルが本出願の範囲内にある。「ビットコイン」という用語は、本明細書において、ビットコインプロトコルから又はビットコインプロトコルに基づいて導出されるすべての変形及びバージョンを含むように使用される。「ＢＴＣ」という省略形は、参照の便宜性のためだけに使用され得る。
【０００３】
ブロックチェーンは、ブロックにより構成される、コンピュータベースの非集中システム（ｄｅｃｅｎｔｒａｌｉｚｅｄ  ｓｙｓｔｅｍ）として実装されるピアツーピア電子台帳であり、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内のアドレス間におけるデジタル資産のコントロールの移転を符号化するデータ構造であり、少なくとも１つのトランザクション入力と少なくとも１つのトランザクション出力を含む。各ブロックは、以前のブロックのハッシュを含み、その結果、ブロックは一緒にチェーン化されることになり、その始めからブロックチェーンに書き込まれたすべてのトランザクションの永久的な変更できないレコードを作成する。
【０００４】
非集中化の概念は、ブロックチェーンシステムの基礎である。非集中システムは、分散又は集中システムとは異なり、単一障害点（ｓｉｎｇｌｅ  ｐｏｉｎｔ  ｏｆ  ｆａｉｌｕｒｅ）が存在しないという利点を提供する。したがって、非集中システムは、強化されたレベルのセキュリティ及び障害許容力を提示する。セキュリティは、楕円曲線暗号及びＥＣＤＳＡのような既知の暗号技術の使用により更に強化される。
【０００５】
ブロックチェーンシステム内のデジタル資産又はリソースに対する所有権及びコントロールは、公開−秘密鍵のペアを通して制御される。デジタル資産又はリソースはトークンとすることができる。トークンは、任意のタイプのエンティティを表すことができる。これは、通貨、ハード資産、ソフト資産、コンピューティングリソース、あるいは任意の他のエンティティ又はサービスを含むことができる。参照の容易性のために、「資産」という用語を使用することがある。未使用トランザクション出力（ＵＸＴＯ：ｕｎｓｐｅｎｔ  ｔｒａｎｓａｃｔｉｏｎ  ｏｕｔｐｕｔ）アドレスは、公開鍵と類似しており、そのＵＸＴＯに割り当てられた資産に対するコントロールは、対応する秘密鍵の使用によって表わされる。ＵＸＴＯを別のトランザクションへの入力として使用することによってデジタル資産を移転するために、入力は、対応する秘密鍵によってデジタル署名されなければならない。したがって、秘密鍵のセキュリティ及び秘密性に対するコントロールは、ブロックチェーンのセキュリティ及び信頼性の基礎である。
【０００６】
デジタル資産の一タイプは、例えば電子ドキュメントを含むことができる。しかしながら、本発明はドキュメントに関する使用に限定されず、他のタイプのデジタルリソースのアクセス制御、セキュリティ及び／又は整合性の維持も本発明の範囲内にある。例えばソフトウェアはしばしば、コンピューティングネットワーク上で分配される。そのソフトウェアの分配、記憶及び処理は、アクセスが制御され、かつ許可のないアクセス又は変更は防止される、セキュアな方法で実行される必要がある。ソフトウェアの状態及び整合性は保証され、変更されていないことが検証可能である必要がある。なお、便宜性のためだけに、電子ドキュメントを便利な例として参照することがある。
【０００７】
状況によっては、複数のノードは、すべてのドキュメントが明らかにされるまでドキュメントの内容が機密に保たれ、提出後のドキュメントへの変更が防止される状況でドキュメントを提出することがある。したがって、データへのアクセス並びにそのデータの処理又は操作は、適切に制御されなければならない。紙ベースの提出（ｓｕｂｍｉｓｓｉｏｎ）プロセスは、ドキュメントをシールされた包みに封入し、すべての参加者から提出物を受け取った後に、その包みを開けることに依拠していた。すべてのそのようなシステムは現在、コンピュータネットワークを使用して実装され、ドキュメントは電子形式で提供されるため、そのようなドキュメントのシールとそれらの改ざん防止は非常に困難になる。提出された電子ドキュメントが明らかにされるか不適切にアクセスされる可能性があり、ドキュメントの整合性又は提出プロセスが攻撃される可能性があるという、顕著なリスクが存在する。プロセスは、提出システムを監督して実装するマネージャ又はプリンシパルへの信頼と、ドキュメントを受け取って格納するためのコンピュータシステムの技術的セキュリティへの信頼を必要とする。セキュリティ違反及び許可されていないデータアクセス、そして場合によってはその変更も様々であり、よく知られているので、これは理想的ではない。
【０００８】
本発明を限定するものではなく、単なる例として、電子ドキュメントが、競争入札状況において入札購買プロセス（ｔｅｎｄｅｒ  ｐｒｏｃｕｒｅｍｅｎｔ  ｐｒｏｃｅｓｓ）の一部として提出されることがある。プロセスの整合性を維持するためには、入札者は、提出期間の終了の前には別の入札者の資料にアクセスすることはできず、入札は提出後に変更されないことが基本となる。したがって、入札者は、入札を求める当事者の誠実性と整合性、並びに入札提出と格納のために使用される任意のコンピューティングシステムのセキュリティに依拠する必要がある。
【０００９】
別の純粋な具体例では、ドキュメントは、複数の被申込当事者に関与する申込及び引受プロセスのような不動産購入プロセスの一部として提出されることがある。既存の不動産申込及び引受プロセスは典型的に、不動産ブローカに依拠して申込及び引受プロセスの整合性及びセキュリティを維持し、それぞれの被申込者が、別の被申込者の申込の詳細に関与しないことを保証する。申込は、ファクシミリや電子メールを介して受け取られることがあるが、既存のデバイス及びシステムは、申込ドキュメントのセキュリティを維持し、すべての被申込者が申込ドキュメントを提出した後にのみ申込ドキュメントを明らかにするために、不動産ブローカの整合性に依拠する。
【００１０】
別の例では、ドキュメントは、マーク付けするために試験問題や小論の提出のように、テストプロセスの一部として提出されることがある。紙の内容は、コピーを防止するために、すべての紙が提出されるまで誰にも利用可能にされるべきではなく、提出された紙の変更も不可能であるべきである。
【００１１】
また、他の例示の状況は、すべての提出物が受け取られるまで、提出されたドキュメントがセキュアかつ機密のままであり、各ドキュメントが検証可能に変更されないことを保証する方法及びシステムを提供することを通して可能にされ得る。すべてのドキュメントがアクセス可能になるまで、提出された電子ドキュメントがセキュアであり、すべてのものに対してアクセス不可能であることを保証する、方法及びシステムを提供することが有利であろう。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
したがって、防止されたデータ／リソースの状態の変更及び／又はその状態の整合性を検証することができるセキュアな方法でアクセス及び記憶が制御される必要がある、データ及びデジタルリソースに関する改善されたソリューションの必要性が存在する。
【課題を解決するための手段】
【００１３】
本出願は、他の中でも特に、そのような利点を有する方法及びシステムを提供する。
【００１４】
本出願は、添付の特許請求の範囲で定義される方法及びシステムを提供する。
【００１５】
概要として、本出願は、デジタル資産又はリソースへのアクセスを制御し、その資産又はリソースの状態を維持し、かつ／又は状態が変更されていないことを検証するためのコンピュータ実施される方法及びシステムを提供し得る。
【００１６】
本発明の方法及びシステムは、参加ノードが秘密鍵共有分（ｐｒｉｖａｔｅ  ｋｅｙ  ｓｈａｒｅ）を維持し、共同して公開鍵を作成することを提供し得る。参加ノードのうちの１つによって提出されるデジタルリソース又は資産は、ノード自身の公開鍵と、共同して得られる公開鍵を使用して暗号化され、これにより、デジタル資産又はリソースを復号するために、ノード自身の秘密鍵及び共同秘密鍵（ｃｏｌｌａｂｏｒａｔｉｖｅ  ｐｒｉｖａｔｅ  ｋｅｙ）が必要とされることを意味する。（重要なことには、以下では、デジタル資産／リソース／データは単に、純粋に便宜性のために「資産」、「デジタル資産」又は「ドキュメント」とも呼ばれ得るが、本発明は限定されないことに留意されたい）。
【００１７】
各参加ノードと主ノードとの間にコミットメントチャネルを形成することを通して、参加ノードは、公的ストレージ（ｐｕｂｌｉｃ  ｓｔｏｒａｇｅ）へのそれらのそれぞれの暗号化ドキュメントの提出を確認し得る。各参加ノードは最終的に、それらのノードのいずれかが次いで、ブロックチェーンから取り出された共有分から共同秘密鍵を作成することができるように、ブロックチェーンにおいて、その秘密鍵共有分を明らかにするトランザクションを提出してよい。参加ノードが、それ自身のドキュメントが明らかにされることを意図している場合（それが取り下げを選ぶ可能性があるので）、次いで、参加ノードは、それ自身の秘密鍵も開示してよく、それにより、そのドキュメントの復号を可能にする。ブロックチェーントランザクションは、ドキュメントの整合性の検証を可能にするよう、提出されたドキュメントのハッシュを更に含んでよい。「整合性を検証すること」は、デジタルリソースの状態が変更されていないことを検証又は証明することを含んでよい。このようにして、ノードは、すべての他のノードがブロックチェーンでそれらのそれぞれの鍵共有分を明らかにすることに参加し、参加ノードからのすべてのドキュメントが復号可能かつ同時にアクセス可能となるときにのみ、彼らのドキュメントが明らかにされることを保証され得る。本システムは、ドキュメントが検証可能に変更されないような方法で、暗号化ドキュメントへの協調的かつ同期されたアクセスを提供することができる。
【００１８】
本発明は、ブロックチェーンネットワーク内の複数のノード及び主ノード（ｐｒｉｎｃｉｐａｌ  ｎｏｄｅ）によってデジタルリソース（例えばドキュメント、ソフトウェア等）へのアクセスを制御し、かつ／又はそのようなデジタルリソースを検証するコンピュータ実施される方法を提供し得る。
【００１９】
複数のノードは、それぞれの秘密鍵共有分を有してよく、共同秘密−公開鍵ペア（ｃｏｌｌｅｃｔｉｖｅ  ｐｒｉｖａｔｅ−ｐｕｂｌｉｃ  ｋｅｙ  ｐａｉｒ）の共同秘密鍵（ｃｏｌｌｅｃｔｉｖｅ  ｐｒｉｖａｔｅ  ｋｅｙ）は、それぞれの秘密鍵共有分のセットに基づいており、第１ノードは、第１ノード秘密−公開鍵ペア（ｆｉｒｓｔ  ｎｏｄａｌ  ｐｒｉｖａｔｅ−ｐｕｂｌｉｃ  ｋｅｙ  ｐａｉｒ）を有する。本方法はノードによって実行されてよい。本方法は、第１ノードによって、第１ノード秘密−公開鍵ペアの第１ノード公開鍵と、共同秘密−公開鍵ペアの共同公開鍵を組み合わせることにより、ドキュメント暗号公開鍵を生成するステップと；ドキュメント暗号公開鍵を使用してドキュメントを暗号化するステップと；第１ノードによって、コミットメントトランザクション出力を入力として有する有効な後続のトランザクションが第１ノードの秘密鍵共有分を含む（ことを必要とする）ように、第１ノードの秘密鍵共有分によりロックされたコミットメントトランザクション出力を有するコミットメントトランザクションを生成することと、第１ノードによって、主ノードによって署名された有効な後続のトランザクションを受け取ることとによって、第１コミットメントチャネルについて１つ以上のブロックチェーントランザクションを生成するステップを含んでよい。本方法は、主ノードによって署名された有効な後続のトランザクションを受け取ったことに応答して、コミットメントトランザクションをブロックチェーンネットワークにブロードキャストするステップも含んでよい。
【００２０】
いくつかの実装において、方法は、第１ノードによって、第１タイムロック閾値の前に、主ノードによって署名された有効な後続のトランザクションをブロックチェーンネットワークにブロードキャストして、ブロックチェーンにおいて第１ノードの秘密鍵共有分を明らかにするステップを含む。
【００２１】
いくつかの実装において、方法は、ブロックチェーンから、ドキュメントに関連付けられる秘密鍵共有分のセットを取り出すステップと；秘密鍵共有分の量が秘密鍵共有閾値より多いと判断したことに応答して、取り出された秘密鍵共有分のセットから、共同秘密−公開鍵ペアの共同秘密鍵を再生成するステップと；ドキュメント暗号秘密鍵を使用して、暗号化されたドキュメントを復号するステップであって、ドキュメント暗号秘密鍵は、再生成された共同秘密鍵と、第１ノード秘密−公開鍵ペアの第１ノード秘密鍵の組合せである、ステップを含む。
【００２２】
いくつかの実装において、コミットメントトランザクションは、有効な後続のトランザクションが、公開オプション（ｒｅｖｅａｌ  ｏｐｔｉｏｎ）を選択するためにドキュメントのハッシュ、第１ノードの秘密鍵共有分、第１ノード秘密−公開鍵ペアの第１ノード秘密鍵、主ノードの署名及び第１ノードの署名とともにトランザクション入力を含むように、ドキュメントのハッシュ、第１ノードの秘密鍵共有分、第１ノード秘密−公開鍵ペアの第１ノード秘密鍵、主ノードの署名及び第１ノードの署名を必要とする公開オプションを含む、１つより多くのアンロッキングオプションを含むトランザクション出力を有する、
【００２３】
いくつかの実装において、コミットメントトランザクションは、有効な後続のトランザクションが、取り消しオプション（ｒｅｓｃｉｎｄ  ｏｐｔｉｏｎ）を選択するために第１ノードの秘密鍵共有分、主ノードの署名及び第１ノードの署名とともにトランザクション入力を含むように、第１ノードの秘密鍵共有分、主ノードの署名及び第１ノードの署名を必要とする取り消しオプションを含む、１つより多くのアンロッキングオプションを含むトランザクション出力（ＵＴＸＯ）を有する。
【００２４】
いくつかの実装において、コミットメントトランザクションは、有効な後続のトランザクションが、タイムアウトオプションを選択するために主ノードの署名及び第１ノードの署名とともにトランザクション入力を含むように、主ノードの署名及び第１ノードの署名を必要とするタイムアウトオプションを含む、１つより多くのアンロッキングオプションを含むトランザクション出力を有する。
【００２５】
いくつかの実装において、暗号化されたドキュメントは、公的リポジトリ（ｐｕｂｌｉｃ  ｒｅｐｏｓｉｔｏｒｙ）に格納され、コミットメントトランザクションは、第１ノードによって生成されたドキュメントが公的リポジトリに保存される、ブロックチェーンネットワークにブロードキャストする。
【００２６】
いくつかの実装において、第１資産値（ａｓｓｅｔ  ｖａｌｕｅ）に対する制限（ｅｎｃｕｍｂｒａｎｃｅ）は、有効な後続のトランザクションのトランザクション入力が少なくとも主ノードの署名と第１ノードの署名を有することに応答して除去される。
【００２７】
いくつかの実装において、有効な後続のトランザクションは、主ノードによって署名された取り消しトランザクションであり、主ノードによって署名された取り消しトランザクションを受け取る前に、方法は、第１ノードの秘密鍵共有分及び第１ノードの署名を有するトランザクション入力を含む、取り消しトランザクションを生成するステップを含む。
【００２８】
いくつかの実装において、第１資産値に対する制限は、取り消しトランザクションのトランザクション入力が、第１ノードの秘密鍵共有分、主ノードの署名及び第１ノードの署名を有することに応答して除去され、第２資産値に対する制限は、更なるトランザクションのトランザクション入力が、主ノードの署名を有することに応答して除去され、第３資産値に対する制限は、更なるトランザクションのトランザクション入力が、第１ノードの署名を有することに応答して除去され、第３資産値は、第１資産値と第２資産値の差である。
【００２９】
いくつかの実装において、有効な後続のトランザクションは、主ノードによって署名された公開トランザクションであり、主ノードによって署名された公開トランザクションを受け取る前に、方法は、ドキュメントのハッシュ、第１ノードの秘密鍵共有分、第１ノード秘密−公開鍵ペアの第１ノード秘密鍵及び第１ノードの署名を有するトランザクション入力を含むように公開トランザクションを生成するステップを含む。
【００３０】
いくつかの実装において、第１資産値に対する制限は、公開トランザクションのトランザクション入力が、ドキュメントのハッシュ、第１ノードの秘密鍵共有分、第１ノード秘密−公開鍵ペアの第１ノード秘密鍵、主ノードの署名及び第１ノードの署名を有することに応答して除去され、第４資産値に対する制限は、更なるトランザクションのトランザクション入力が、主ノードの署名を有することに応答して除去され、第５資産値に対する制限は、更なるトランザクションのトランザクション入力が、第１ノードの署名を有することに応答して除去され、第５資産値は、第１資産値と第４資産値の差である。
【００３１】
いくつかの実装において、第１コミットメントチャネルについて１つ以上のブロックチェーントランザクションを生成するステップは、タイムアウトトランザクションを生成することを含み、タイムアウトトランザクションは、第１タイムロック閾値が経過した後に、主ノードによってブロックチェーンネットワークにブロードキャストされる資格がある。
【００３２】
本出願は、上記で定義される方法を実行するためのコンピューティングデバイスも提供する。
【００３３】
本出願は、プロセッサ実行可能命令を格納する非一時的プロセッサ読取可能媒体も提供し、プロセッサ実行可能命令は、プロセッサによって実行されると、該プロセッサに上記で定義される方法を実行させる。
【００３４】
本出願のこれら及び他の態様は、本明細書で説明される実施形態から明らかになり、それらの実施形態に関連して説明される。
【図面の簡単な説明】
【００３５】
本出願の実施形態は、添付の図面を参照して例として説明される。
【図１】本出願の一例によるドキュメントリポジトリシステムをブロック図の形式で示す図である。
【図２】本出願の一例によるコミットメントチャネルを示す図である。
【図３Ａ】本出願の一例によるコミットメントトランザクションを示す図である。
【図３Ｂ】本出願の一例による取り消し（ｒｅｓｃｉｎｄ）トランザクションを示す図である。
【図３Ｃ】本出願の一例による公開（ｒｅｖｅａｌ）トランザクションを示す図である。
【図３Ｄ】本出願の一例によるタイムアウトトランザクションを示す図である。
【図４】本出願の一例による主ノードといくつかのノードの各々との間のコミットメントチャネルを示す図である。
【図５】本出願の一例によるノードと主ノードと電子台帳の間のトランザクションのシーケンス図である。
【図６】本出願の一例による、ドキュメントをドキュメントリポジトリシステムに提出するノードにおいて実装される方法をフローチャート形式で示す図である。
【図７】ドキュメントリポジトリシステムに提出されたドキュメントを検証するノードにおいて実装される方法をフローチャート形式で示す図である。
【図８】簡略化されたノードをブロック図の形式で示す図である。
【発明を実施するための形態】
【００３６】
本出願は、リポジトリシステムに提出されたデジタルリソース（例えばドキュメント、ソフトウェア、データ、他のデジタル資産等）が提出後に変更されていないことを検証し、各参加ノードが、暗号化ドキュメントを復号するために少なくとも秘密鍵を明らかにするようなときまで、提出されたドキュメントのコンテンツが、他の参加ノードに明らかにされ得ないことを保証するために、ブロックチェーンネットワークで使用するためのデジタルリソースリポジトリシステムを提供する。以下では、便宜性のために「ドキュメント」という用語を使用する。しかしながら、アクセスが制御及び／又は検証される必要がある任意のタイプのデジタルリソースが、本発明の範囲内にある。
【００３７】
以下の説明は、ビットコインプロトコルを含む、ブロックチェーンプロトコルに関連する実装、使用ケース及び例示を提供する。しかしながら、本出願はより広範な用途を有し、他のシステム及びコンピュータベースのリソースで使用されてよく、本出願はこの点で限定されない。
【００３８】
本出願において、それぞれのノードは、ブロックチェーンネットワークへの最終的なブロードキャストのために、状態ベースのトランザクションを介して、ドキュメントをドキュメントリポジトリシステムに提出する。ドキュメントリポジトリシステムへのドキュメントの提出の後、そのドキュメント又は他のノードによって提出された複数のドキュメントの検証に参加しているそれぞれのノードは、公開又は取り消しトランザクションを介して秘密鍵共有分を明らかにしてよい。さらに、それぞれのノードが、公開トランザクションをブロックチェーンネットワークにブロードキャストすると、それぞれのノードは、該それぞれのノードによって提出されたドキュメントのコンテンツを明らかにするためにノード秘密鍵を提供する。したがって、本明細書で説明されるドキュメントリポジトリシステムは、参加ノード間における、提出されたドキュメントの不変性及びドキュメント選択プロセスに対する時間的整合性を可能にする。
【００３９】
本出願において、「及び／又は」という用語は、列挙される要素単独、いずれかの副次的組合せ又は要素すべてのうちのいずれか１つを含み、そして追加の要素を不必要に除外することなく、列挙される要素のすべての可能性のある組合せと副次的組合せを網羅するように意図されている。
【００４０】
本出願において、「．．．又は．．．のうちの少なくとも１つ」というフレーズは、列挙される要素単独、いずれかの副次的組合せ又は要素すべてのうちのいずれか１つを含み、いずれかの追加の要素を不必要に除外することなく、そして必ずしも要素すべてを必要とすることなく、列挙される要素のすべての可能性のある組合せと副次的組合せを網羅するように意図されている。
【００４１】
次に図１を参照すると、図１は、本出願の一例によるドキュメントリポジトリシステム１００をブロック図の形式で示している。ドキュメントリポジトリシステム１００は、ピアツーピア・オープンメンバシップネットワークのようなブロックチェーンネットワークを含み得る。任意の数のノードが、他のノードからの招待なしに又は同意なしにブロックチェーンネットワークに加わってよい。ブロックチェーンネットワークは電子台帳１０２を含み、電子台帳１０２はトランザクションで構成され得る。各トランザクションは、デジタル資産又は値のコントロールの移転を符号化するデータ構造である。
【００４２】
ドキュメントリポジトリシステム１００は、１つ以上のノード１０６を含み得る。ノード１０６は電子デバイスであってよく、ブロックチェーンプロトコルを実行してよい。ノード１０６は、例えばコンピュータ（例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ等）、モバイルデバイス（例えばスマートフォン、スマートウォッチのようなウェアラブルデバイス）又は他のタイプの電子デバイスを含む、様々なタイプの電子デバイスであってよい。ノード１０６は、有線又は無線通信技術を含み得る適切な通信技術を使用して、相互に結合されてよい。いくつかの例では、ドキュメントリポジトリシステム１００は、少なくとも部分的にインターネットを介して実装されてよく、ノード１０６のいくつかは、地理的に分散した位置に配置されてよい。
【００４３】
１つ以上のノード１０６は、１つ以上のトランザクションの電子台帳１０２を維持してよい。各ノード１０６は、グローバル台帳の完全なコピー又は部分的コピーを格納してよい。電子台帳１０２に影響を与えるトランザクションは、電子台帳１０２の有効性が維持され得るように、１つ以上のノード１０６によって検証され得る。ビットコインプロトコルのようなブロックチェーンネットワークを実装及び操作する詳細は、当業者によって認識され得る。
【００４４】
いくつかの実装において、それぞれのノード１０６の各々は、ノード秘密−公開鍵ペア（ｑｉ、Ｑｉ）を有してよい。それぞれのノード１０がノード秘密−公開鍵ペアを生成してよく、この場合、ノード秘密−公開鍵ペアは「ワンタイムコード」として使用されてよい。例えばノード秘密−公開鍵ペアのノード公開鍵（Ｑｉ）は、ドキュメントを暗号化するための暗号化方法と一緒に使用されてよい。ノード秘密鍵（ｑｉ）は、（例えば本明細書で説明されるような）プロトコルの操作の満足に応答して分配されてよく、暗号化ドキュメントを復号するための復号方法と一緒に使用されてよい。したがって、ノード秘密−公開鍵ペアのノード秘密鍵が公開されると、そのノード１０６は、将来の暗号化操作のためにそのノード秘密−公開鍵ペアを使用することをやめてよい。
【００４５】
ドキュメントリポジトリシステム１００は、主ノード１０４を含み得る。主ノード１０４は、１つ以上のノード１０６及びドキュメントリポジトリシステム１００の他のコンポーネントとインタフェースしてよい。本明細書で説明されるように、主ノード１０４は、それぞれのノード１０６とのコミットメントチャネルを形成するために本明細書で説明される動作を実行してよく、ドキュメントリポジトリシステム１００のために本明細書で説明される動作を実行してよい。
【００４６】
ドキュメントリポジトリシステム１００は、データストア１２０を含み得る。データストア１２０は、ドキュメントを収集して格納してよい。収集されて格納されたドキュメントは、暗号化ドキュメントであってよい。いくつかの例では、データストア１２０は、それぞれのドキュメントのハッシュ又はハッシュされたそれぞれのドキュメントのハッシュ（例えばダブルハッシュ）を含んでよい。ドキュメントをハッシュすることにより、任意のサイズを有するそのドキュメントを、固定データサイズのデータにマップし得る。
【００４７】
データストア１２０は、１つ以上のノード１０６又は主ノード１０４によってアクセス可能であり得る。ドキュメントは、長い詳細なマルチページエントリ（ｌｏｎｇ  ｄｅｔａｉｌｅｄ  ｍｕｌｔｉｐａｇｅ  ｅｎｔｒｙ）又は数のような任意の電子デジタルファイルであってよい。いくつかの例では、ドキュメントは、文字の小さな有限のセットとすることができ、ナンス（例えば乱数）と連結され得る。
【００４８】
データストア１２０に格納される暗号化ドキュメントは、ドキュメント暗号公開鍵（ｄｏｃｕｍｅｎｔ  ｃｒｙｐｔｏ  ｐｕｂｌｉｃ  ｋｅｙ）（Ｌｉ）で暗号化されてよい。ドキュメント暗号公開鍵（Ｌｉ）は、Ｌｉ＝Ｐ＋Ｑｉとして定義されてよく、共同公開鍵Ｐに対応する共同秘密鍵（ｐ）は最初、ドキュメントリポジトリシステム１００のノード１０６に対して未知であってよい。
【００４９】
例えば第１ノード１０６は、第１ノード秘密−公開鍵ペア（ｑｉ、Ｑｉ）の第１ノード公開鍵（Ｑｉ）と、共同秘密−公開鍵ペアの共同公開鍵（Ｐ）を組み合わせることによって、ドキュメント暗号公開鍵を生成してよい。共同秘密−公開鍵ペアの共同秘密鍵（ｐ）は、それぞれの秘密鍵共有のセットに基づくものであってよい。それぞれの秘密鍵共有分は、例えば閾値秘密分散方法（ｔｈｒｅｓｈｏｌｄ  ｓｅｃｒｅｔ  ｓｈａｒｉｎｇ  ｍｅｔｈｏｄ）に従って分配されてよい。さらに、共同秘密鍵（ｐ）は、秘密鍵共有分のセットがそれぞれのノード１０６の各々から取り出されたときに生成され得る。本明細書で説明されるように、共同秘密鍵（ｐ）は、秘密鍵共有分のセット（又は十分な／閾値数）がそれぞれのノード１０６によって明らかにされたときに生成されてよく、それにより、それぞれのノード１０６は、データストア１２０に格納された暗号化ドキュメントを共同して明らかにするか、検証し得る。本明細書で説明されるように、それぞれのノード１０６は、公開トランザクション又は取り消しトランザクションのような有効な後続のトランザクションをブロードキャストすることによって、それらの秘密鍵共有分を明らかにし得る。
【００５０】
ドキュメントリポジトリシステム１００内の１つ以上のノード１０６は、閾値秘密分散プロトコルの１つ以上の動作を実行してよい。例えば１つ以上のノード１０６は、秘密鍵共有分をそれぞれのノード１０６に分配又は割り当てるために閾値秘密分散プロトコルの動作を実行してよい。それぞれの秘密鍵共有分は、データストア１２０内に格納された１つ以上のドキュメントを明らかにするか復号するために使用されてよい。閾値秘密分散プロトコルに従って動作を共同で実行する１つ以上のノード１０６は、図１に図示されるように、ノード１３０のクラスタに編成されることができる。
【００５１】
いくつかの例では、閾値秘密分散プロトコルは、（ｔ；ｎ）閾値によって定義されてよく、ここで、nは、参加しているノード１０６の数であってよく、ｔ＋１は、秘密を再構築するために必要とされるノードの最小数であってよい。秘密分散スキームは、秘密を再構築するために少なくともｔ＋１個のノードが参加する必要があるように、秘密がn個のノードの間の部分に分割され得る、閾値暗号システムの例とすることができる。任意のt個の部分の知識は、秘密を明らかにしないままにする可能性がある。
【００５２】
閾値秘密分散ソリューションの一例が、Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ，２２（１１），６１２−６１３（１９７９）で公開されたＳｈａｍｉｒ，Ａ．による「Ｈｏｗ  ｔｏ  ｓｈａｒｅ  ａ  ｓｅｃｒｅｔ」という名称の記事で説明されている（「シャミア法」）。シャミア法は、多項式補間及びｗ．ｌ．ｏ．ｇ．に基づいており、秘密は、有限体Ｆの要素であると想定される。シャミア法は、ディーラー又はディーラーレス方法を含んでよく、ｎ個のノードＵ１，．．．，Ｕｎのセット及びアクセス構造Ａを含んでよい。参加者のグループは、秘密を再構築することができる。シャミア法では、任意のランダム秘密が、次数ｔの多項式ｆ（ｘ）にｆ（０）として格納され、参加者ｉのみが、その共有分ｆ（ｘｉ）を計算することができる。ｎ人の参加者のうちのｔ＋１人が協力する場合、それらは、ラグランジュ多項式補間を使用してｆ（ｘ１），ｆ（ｘ２），．．．，ｆ（ｘｎ）に対応する（鍵ｋの）それらの共有分ｋ１，ｋ２，．．．，ｋｎを用いてｆ（ｘ）における任意の点を再構築することができる。ラグランジュ多項式補間を使用して、ｔ＋１点を用いて次数ｔの関数ｆ（ｘ）を再構築することができる：
【数１】
2021516902.tif 000003
【００５３】
ディーラーノードの存在下では、ディーラーノードは、サイズｐ（ｐ素数）の有限体Ｆの要素であると想定される秘密ａ０＝ｋを選択し、ｔ−１個の正の整数ａ１，．．．ａｔ−１をランダムに選んでよく、これは、多項式ｆ（ｘ）＝ａ０＋ａ１ｘ＋ａ２ｘ２＋．．．の係数を表す。ディーラーノードは、次いで、多項式に属しているｎ個の点（ｘｉ，ｆ（ｘｉ））を計算し、これらを参加者に分配してよい。
【００５４】
シャミアディーラーレス共有分配段階では：
１．各参加者Ｕｉには、すべての人が知っているｘｉが割り当てられる。各ｘｉは一意でなければならない。
２．各プレイヤＵｉは、次数ｔの乱数多項式ｆｉ（ｘ）を生成する。
３．各プレイヤＵｉは、すべての他のプレイヤに（受信者の公開鍵で暗号化された）多項式ｆｉ（ｘｊ）  ｍｏｄ  ｎ上のそれぞれの点を秘密裏に送信する。
４．各プレイヤＵｉは、すべてのそれらの受け取ったｆ１（ｘｉ），ｆ２（ｘｉ），．．．ｆｐ（ｘｉ）（すべてｍｏｄ  ｎであり、ここで、ｎは楕円曲線上の点Ｇによって生成されたグループの次数である）を合計して、ｋｉ＝ｆ（ｘｉ）  ｍｏｄ  ｎを形成する。これは、多項式ｆ（ｘ）  ｍｏｄ  ｎ上の共有分（ｓｈａｒｅ）である。
【００５５】
シャミア法の上記説明は、閾値秘密分散ソリューションの一例であるが、他の方法又は閾値秘密分散ソリューションも考慮されてよい。
【００５６】
いくつかの実装において、閾値署名計算は、ｋ×Ｇの決定に基づいてよく、ここでｋは秘密鍵であり、Ｇは楕円曲線上の点である。
【００５７】
ｆ（ｘ）がｔ次数多項式である場合、秘密ｋを、ｋ＝Σｉ∈πｂｉ，πｋｉによって補間することができ、ここで、πは、共有分ｋａ，ｋｂ，．．．，ｋｔ，ｋｔ＋１のサイズｔ＋１のサブセットであってよく、ｂは補間因子（ｉｎｔｅｒｐｏｌａｔｉｎｇ  ｆａｃｔｏｒ）であってよい。πは、その共有分ｋｉを明らかにせずに、共同してｋ×Ｇを計算するｔ＋１ノードのグループであってよい。ｋは、ｔ次数の多項式におけるｘ＝０の点であってよい。
・各ノードＵｉは、部分ｂｉ，πｋｉ×Ｇを計算し得る。
・πのすべてのノードは、それらの部分を一緒に加算して（ラグランジュ補間を介して秘密ｋを再構築して）、以下を与える：
ｂａ，πｋａ×Ｇ＋ｂｂ，πｋｂ×Ｇ＋・・・＋ｂｔ＋１，πｋｔ＋１×Ｇ＝ｋ×Ｇ
【００５８】
Ｑ＝ｋＧを計算する上述のプロセスは、秘密共有結合（Ｓｅｃｒｅｔ  Ｓｈａｒｅ  Ｊｏｉｎｉｎｇ）と呼ばれることがある。
【００５９】
いくつかの実装において、閾値秘密共有操作は、ドキュメントリポジトリシステム１００の１つ以上のノード１０６の各々へのそれぞれの秘密鍵共有分（ｐ＾ｉ）の割り当てをもたらすことがあり、共同秘密−公開鍵ペア（ｐ、Ｐ）の共同秘密鍵（ｐ）は、それぞれの秘密鍵共有分のセットに基づいている。例えば共同秘密鍵（ｐ）は、それぞれの秘密鍵共有分のセットに基づいて生成又は再生成されてよく、以下のように表され得る：
【数２】
2021516902.tif 000004
【００６０】
したがって、ｎ個のノード１０６がドキュメントリポジトリシステム１００に存在する場合、ｎ個のノード１０６の各々に秘密鍵共有分（ｐ＾ｉ）が割り当てられてよく、ここで、ｎ個又は鍵共有分の閾値量は、共同秘密−公開鍵ペア（ｐ、Ｐ）内の共同公開鍵Ｐの共同秘密鍵を生成するために必要とされ得る。
【００６１】
主ノード１０４及びそれぞれのノード１０６は、コミットメントチャネル１４０を形成してよい。コミットメントチャネル１４０は、状態のオフチェーン変更を表し、ブロックチェーンネットワーク／電子台帳１０２における最終的な決済（ｅｖｅｎｔｕａｌ  ｓｅｔｔｌｅｍｅｎｔ）によって保護される、状態チャネル実装の一例であってよい。いくつかの例では、ドキュメントコミットメントチャネル１４０は、場合によっては、それらのトランザクションをブロックチェーンネットワークにブロードキャストする前に交換するために、主ノード１０４又はノード１０６の一方又は双方によって生成又は署名される一連のトランザクションを含んでよい。コミットメントチャネル１４０のトランザクションは、ブロックチェーンネットワークから離れて保持されてよく、ブロックチェーンネットワークへの最終的なブロードキャストのために約束手形と同様に機能する。したがって、本明細書で例示されるように、主ノード１０４及びそれぞれのノード１０６がコミットメントチャネル１４０を形成するとき、動作は、主ノード１０４又はノード１０６の一方又は双方によって生成又は署名することを含んでよく、これらのトランザクションの少なくとも１つをブロックチェーンネットワークにブロードキャストしてコミットメントチャネル１４０を形成することを更に含んでよい。コミットメントチャネル１４０に基づくトランザクションを、ブロックチェーンネットワークから「離れて」主ノード１０４とそれぞれのノード１０６との間で交換することができるので、トランザクションは、典型的にブロックチェーンネットワーク上でトランザクションをブロードキャストして検証することに関連するレイテンシを伴わずに交換され得る。
【００６２】
説明の容易性のために、コミットメントチャネル１４０は、図１では、主ノード１０４と選択されたノード（例えばノードｉ）との間にあるように図示されている。しかしながら、いくつかの例では、それぞれのコミットメントチャネル１４０は、主ノード１０４と、データストア１２０で利用可能なドキュメントを集合的に検証するか又は集合的に公開することに参加している１つ以上のノード１０６の各々との間に形成されてよい。
【００６３】
図２を参照すると、図２は、本出願の一例によるコミットメントチャネル１４０を図形的に示している。いくつかの例では、ノード２０６又は主ノード２０４は、コミットメントトランザクション２５０と、主ノード２０４によって署名された少なくとも１つの他の有効な後続のトランザクションとを生成し、そのコミットメントトランザクション２５０をブロックチェーンネットワークに送信することによって、コミットメントチャネル１４０を形成してよい。いくつかの例では、有効な後続のトランザクションは、取り消しトランザクション２５２又は公開トランザクション２５４を含んでよい。さらに、ノード２０６又は主ノード２０４のいずれかが、タイムアウトトランザクション２５６を生成してよい。
【００６４】
図２は更に、制限されたデジタル資産２８０を示している。コミットメントトランザクション２５０は、デジタル資産２８０の制限（ｅｎｃｕｍｂｒａｎｃｅ）を含む、未使用トランザクション出力（ＵＴＸＯ）を含んでよい。本明細書で説明されるように、図２に図示されている制限されたデジタル資産２８０は、取り消しトランザクション２５２、公開トランザクション２５４又はタイムアウトトランザクション２５６のような有効な後続のトランザクションに応答して割り当てられてよい。
【００６５】
ノード２０６は、コミットメントトランザクション２５０を生成して、ノード２０６によって生成されたドキュメントがデータストア１２０で保存されるブロックチェーンネットワークにブロードキャストしてよい。ノード２０６は、該ノード２０６がデータストア１２０（図１）に格納することを望む可能性があり、かつドキュメントリポジトリシステム１００を介して他のノードに広めることを望む可能性があるドキュメントを生成してよい。いくつかの実装では、生成されたドキュメントのコンテンツは、ブロックチェーンネットワーク上のトランザクションによって格納又は記録され得ない。しかしながら、ドキュメントのハッシュ（ＨｏＤｉ）は１つ以上のトランザクションによって記録され得る。ドキュメントのハッシュは、データストア１２０内に格納することができる暗号化ドキュメントに対応してよい。いくつかの例では、生成されたドキュメントのダブルハッシュ（例えばＨ（ＨｏＤｉ））が、ブロックチェーンネットワークにブロードキャストされるトランザクションによって記録されてよい。ハッシュ関数は、（１）生成されたドキュメントを、所定のデータ量内でブロックチェーントランザクションで表すことができるように、任意のサイズのデータを固定サイズのデータにマップし；あるいは（２）ノード１０６が、データストア１２０で格納され得る生成されたドキュメントを変更することを防止し得る。変更されたドキュメントをハッシュすることにより、異なるハッシュ結果が得られ、データストア１２０に格納されたドキュメントが変更されていることを示してよい。
【００６６】
コミットメントトランザクション２５０、取り消しトランザクション２５２、公開トランザクション２５４及びタイムアウトトランザクション２５６の例を示すために、次に、本出願の一例によるコミットメントチャネル１４０のそれぞれのトランザクションを図示している図３Ａ〜図３Ｄを参照する。実装によっては、トランザクションは、ロッキングスクリプト（例えば<scriptPubKey>）を含んでよい。ロッキングスクリプト（例えば<scriptPubKey>）は、有効な後続のトランザクションのアンロッキングスクリプト（例えば<scriptSig>）が、前のトランザクションのデジタル資産又は値を制限解除（ｕｎｅｎｃｕｍｂｅｒ）するために満たさなければならないルール又は基準を課すことによって、デジタル資産又は値を制限し得るトランザクションの出力とすることができる。
【００６７】
図３Ａは、例示のコミットメントトランザクション２５０を図示している。ノード１０６（図１）は、主ノード１０４（図１）による又は他のノード１０６（図１）による考慮（ｃｏｎｓｉｄｅｒａｔｉｏｎ）のために、ドキュメントをドキュメントリポジトリシステム１００（図１）に提出するため、コミットメントトランザクション２５０を生成し得る。ノード１０６が、考慮のためにドキュメントをドキュメントリポジトリシステム１００に提出するとき、ノード１０６は、デジタル資産３９０も提出してよい。ドキュメントリポジトリシステム１００は、主ノード１０４による、提出されたドキュメントの考慮と引き換えに、指定された値のデジタル資産３９０の提出を必要とすることがある。コミットメントトランザクション２５０は、有効な後続のトランザクションがデジタル資産３９０を割り当てるようなときまで、デジタル資産３９０の制限を設定してよい。
【００６８】
コミットメントトランザクション２５０は、デジタル資産３９０を制限解除するための１つ以上のオプションを含んでよい。デジタル資産３９０は第１資産値を表してよい。有効な後続のトランザクションのアンロッキングスクリプトが、デジタル資産３９０を制限解除できる前に必要な入力を含まなければならないように、デジタル資産を制限解除するためのオプションは、ＵＴＸＯのロッキングスクリプトで指定されてよい。例えば取り下げ（ｗｉｔｈｄｒａｗ）又は取り消しオプション３５２は、有効な後続のトランザクションのアンロッキングトランザクションが、取り下げオプションを選択するために、主ノード１０４の署名（例えばσ（Ｓ））、ノード１０６の秘密鍵共有分（例えば
【数３】
2021516902.tif 000005
）及びノード１０６の署名（例えばσ（Ｕｉ））を提供することを必要とし得る。これらの入力を含むことができる有効な後続のトランザクションは、本明細書で説明されるように、取り消しトランザクション２５２（図２）に対応してよい。すなわち、いくつかの例では、コミットメントトランザクションは、第１ノードの秘密鍵共有分、主ノードの署名及び第１ノードの署名を必要とする取り消しオプションを含む、１つより多くのアンロッキングオプションを含むトランザクション出力を有し、その結果、有効な後続のトランザクションは、取り消しオプションを選択するために第１ノードの秘密鍵共有分、主ノードの署名及び第１ノードの署名とともにトランザクション入力を含む。
【００６９】
実装によっては、コミットメントトランザクション１５０のロッキングスクリプトは、公開オプション３５４を含んでよい。公開オプション３５４は、有効な後続のトランザクションのアンロッキングスクリプトが、公開オプションを選択するために、主ノード１０４の署名（例えばσ（Ｓ））、暗号化ドキュメントのハッシュ（例えばＨｏＤｉ）、ノード１０６の秘密鍵共有分（例えば
【数４】
2021516902.tif 000006
）、ノード１０６のノード秘密鍵（例えばｑｉ）及びノード１０６の署名（例えばσ（Ｕｉ））を提供することを必要とし得る。これらの入力を含むことができる有効な後続のトランザクションは、本明細書で説明される公開トランザクション２５４（図２）であってよい。すなわち、いくつかの例では、コミットメントトランザクションは、ドキュメントのハッシュ、第１ノードの秘密鍵共有分、第１ノード秘密−公開鍵ペアの第１ノード秘密鍵、主ノードの署名及び第１ノードの署名を必要とする公開オプションを含む、１つより多くのアンロッキングオプションを含むトランザクション出力を有し、その結果、有効な後続のトランザクションは、公開オプションを選択するためにドキュメントのハッシュ、第１ノードの秘密鍵共有分、第１ノード秘密−公開鍵ペアの第１ノード秘密鍵、主ノードの署名及び第１ノードの署名とともにトランザクション入力を含む。
【００７０】
実装によって、コミットメントトランザクション２５０のロッキングスクリプトは、タイムアウトオプション３５６を含んでよい。タイムアウトオプション３５６は、有効な後続のトランザクションのアンロッキングスクリプトが、タイムアウトオプションを選択するために、主ノード１０４の署名（例えばσ（Ｓ））及びノードの署名（例えばσ（Ｕｉ））を提供することを必要とし得る。これらの入力を含むことができる有効な後続のトランザクションは、タイムアウトトランザクション２５６（図２）に対応し得る。本明細書で説明されるように、ノード１０６が、第１タイムロック閾値期間内に取り消しトランザクション２５２及び公開トランザクション２５４のいずれも提出しないとき、主ノード１０４は、第１タイムロック閾値期間が経過した後、タイムアウトトランザクション３５６をブロックチェーンネットワークにブロードキャストしてよい。タイムアウトトランザクション３５６は、該タイムアウトオプション３５６のために主ノード１０４の署名及びノードの署名を提供するためのアンロッキングスクリプトを含むことができる。すなわち、いくつかの例では、コミットメントトランザクションは、主ノードの署名及び第１ノードの署名を必要とするタイムアウトオプションを含む、１つより多くのアンロッキングオプションを含むトランザクション出力を有し、その結果、有効な後続のトランザクションは、タイムアウトオプションを選択するために、主ノードの署名及び第１ノードの署名とともにトランザクション入力を含む。実装によって、コミットメントトランザクション２５０のトランザクション入力に含まれるノード（Ｕｉ）の署名（例えばσ（Ｕｉ））及びコミットメントトランザクション２５０のトランザクション出力に含まれるノード（Ｕｉ）の署名は、ノードの異なる秘密−公開鍵ペアに基づいてよい。例えばそのノード（Ｕｉ）は、１つより多くの公開−秘密鍵のペアを有してよく、コミットメントトランザクション２５０又はコミットメントチャネル１４０のための他のトランザクションの異なる側面についての署名を生成しいてよい。
【００７１】
実装によって、コミットメントトランザクション２５０は、ノード１０６によって生成されたドキュメントのダブルハッシュ（Ｈ（ＨｏＤｉ））（図３Ａには図示せず）も含んでよい。ノード１０６は、該ノード１０６がドキュメントをドキュメントリポジトリシステム１００に提出し得るときに、そのドキュメントのダブルハッシュを生成してよい。ハッシュ関数Ｈ（θ）は、（１）生成されたドキュメントを、所定のデータ量内でブロックチェーントランザクションで表すことができるように、任意のサイズのデータを固定サイズのデータにマップし得るか、あるいは（２）任意のノード１０６が、データストア１２０で格納され得る生成されたドキュメントを変更することを妨げ得る。変更されたドキュメントをハッシュすることにより、異なるハッシュ結果を得ることができ、データストア１２０で格納されたドキュメントが変更されていることを示してよい。
【００７２】
図３Ｂは、例示の取り消しトランザクション２５２を図示している。コミットメントチャネル１４０を形成するとき、ノード１０６は、取り消しトランザクション２５２を生成してよい。ノード１０６は、ノード１０６がドキュメントをドキュメントリポジトリシステム１００に提出したが、その後、主ノード１０４又は任意の他のノード１０６による選択のためにそのドキュメントを考慮させることを意図しない状況において、取り消しトランザクション２５２をブロックチェーンネットワークにブロードキャストしてよい。特に、ノード１０６は、ノード１０６の秘密鍵共有分（例えば
【数５】
2021516902.tif 000007
）、ノード１０６の署名（例えばσ（Ｕｉ））及び主ノード１０４の署名（例えばσ（Ｓ））を有するトランザクション入力３６０を含む、取り消しトランザクション２５２を生成してよい。説明されるように、主ノード１０４は、該主ノード１０４が、取り消しトランザクション２５２が、主ノード１０４及びそのそれぞれのノード１０６のコミットメントチャネル１４０の命令された（ｍａｎｄａｔｅｄ）トランザクション入力とトランザクション出力を含むことを検証するとき、取り消しトランザクション２５２に署名してよい。取り消しトランザクション２５２は、ノード１０６の秘密鍵共有分を含むので、取り消しトランザクション２５２は、他のノード１０６によって提出されるドキュメントの復号に寄与し得る十分な情報を提供し得る。
【００７３】
取り消しトランザクション２５２は、少なくとも２つの資産値を制限するための２つの出力を有するトランザクション出力を含んでよい。例えば取り消しトランザクション２５２は、第２資産値３９２及び第３資産値３９３を制限するための出力を含んでよい。したがって、第２資産値３９２に対する制限は、更なるトランザクションのトランザクション入力が主ノードの署名（例えばσ（Ｓ））を有することに応答して除去されてよい。第３資産値３９３に対する制限は、更なるトランザクションのトランザクション入力がノード１０６の署名（例えばσ（Ｕｉ））を有することに応答して除去されてよい。第２資産値３９２は第１資産値３９０より小さくてよい。さらに、第３資産値３９３は第１資産値３９０と第２資産値３９２の差であってよい。したがって、いくつかの例では、第２資産値３９２は、ノード１０６が（１）生成されたドキュメントをデータストア１２０に提出するが、（２）主ノード１０４による考慮からドキュメントを取り下げるときの報酬（ｆｅｅ）であってよい。第３資産値３９３は、取り消しトランザクション２５２をブロードキャストしたノード１０６に返すことができる、制限されていない資産値を表してよい。
【００７４】
ノード１０６が取り消しトランザクション２５２をブロックチェーンネットワークにブロードキャストするとき、取り消しトランザクション２５２は、主ノード１０４の署名、そのノード１０６の署名及びそのノード１０６の秘密鍵共有分（
【数６】
2021516902.tif 000008
）を含むが、そのノード１０６のノード秘密鍵（例えばｑｉ）は含まれないことに留意されたい。ノード１０６のノード秘密鍵（ｑｉ）がなければ、（１）そのノード１０６によって以前に生成され、かつ（２）ドキュメント暗号公開鍵（例えばＬｉ＝Ｐ＋Ｑｉ）を使用して暗号化された、暗号化ドキュメント（ＥｎｃＬ（Ｄｏｃｉ））は、他のノード１０６のいずれによっても復号され得ない。なぜなら、他のノード１０６のいずれもドキュメント暗号秘密鍵ｌｉ＝ｐ＋ｑｉを決定し得ないからである。ノード１０６がノード秘密鍵（ｑｉ）を提供し損なうとき、ドキュメント暗号秘密鍵は生成されなくてよい。
【００７５】
また、ノード１０６が取り消しトランザクション２５２をブロックチェーンネットワークにブロードキャストするとき、そのノード１０６の秘密鍵共有分（
【数７】
2021516902.tif 000009
）がトランザクション入力に含まれてもよいことにも留意されたい。したがって、共同秘密鍵（ｐ）が生成され得るので、ｑｉが、それぞれのノード１０６のノード秘密−公開鍵ペア（ｑｉ、Ｑｉ）のノード秘密鍵である場合、ｑｉがブロックチェーンネットワーク上で利用可能であるとき、他のノード１０６が、秘密ドキュメント暗号鍵ｐ＋ｑｉを使用して暗号化ドキュメントを復号することを可能にする。
【００７６】
図３Ｃは、例示の公開トランザクション２５４を図示している。コミットメントチャネル１４０を形成するとき、ノード１０６は、公開トランザクション２５４を生成してよい。ノード１０６は、該ノード１０６がドキュメントをドキュメントリポジトリシステム１００に提出し、主ノード１０４又は任意の他のノード１０６による選択のためにそのドキュメントを考慮させることを意図する状況において、公開トランザクション２５４をブロックチェーンネットワークにブロードキャストしてよい。そのドキュメントが選択のために考慮されるよう意図することによって、そのドキュメントの暗号化されたバージョンは、ドキュメント暗号秘密鍵ｌｉ＝ｐ＋ｑｉを使用して復号され得る。公開トランザクション２５４のトランザクション入力は、そのノード１０６の秘密鍵共有分（
【数８】
2021516902.tif 000010
）と、ノード秘密−公開鍵ペア（ｑｉ、Ｑｉ）のノード秘密鍵（ｑｉ）の双方を含み得るので、閾値数の他のノードがそれぞれの秘密鍵共有分を明らかにする限り、主ノード１０４又は他のノード１０６のいずれかが、データストア１２０に格納されたそのドキュメントを復号し得る。
【００７７】
特に、公開トランザクション２５４は、主ノードの署名（σ（Ｓ））、暗号化ドキュメントのハッシュ（ＨｏＤｉ）、ノード１０６の鍵共有分（
【数９】
2021516902.tif 000011
）、ノード１０６のノード秘密鍵（ｑｉ）及びノード１０６の署名（σ（Ｕｉ））を含み得るトランザクション入力３７０を含んでよい。説明されるように、主ノード１０４は、該主ノード１０４が、公開トランザクション２５４が、主ノード１０４及びそのそれぞれのノード１０６のコミットメントチャネル１４０についての命令されたトランザクション入力及びトランザクション出力を検証したときに、公開トランザクション２５４に署名して（例えばσ（Ｓ）を公開トランザクション２５４に帰して）よい。公開トランザクション２５４は、ノード１０６の秘密鍵共有分並びにそのそれぞれのノード１０６についてのノードの秘密−公開鍵ペア（ｑｉ，Ｑｉ）のノード秘密鍵を含むので、公開トランザクション２５４は、ドキュメントの復号を可能にし得る十分な情報を提供し得る。すなわち、公開トランザクション２５４は、ドキュメント暗号秘密鍵ｌｉ＝ｐ＋ｑｉを決定するための十分な情報を提供し得る。
【００７８】
公開トランザクション２５４は、少なくとも２つの資産値を制限するための２つの出力を有するトランザクション出力を含んでよい。例えば公開トランザクション２５４は、第４資産値３９４及び第５資産値３９５を制限するための出力を含んでよい。第４資産値３９４に対する制限は、更なるトランザクションのトランザクション入力が主ノードの署名（例えばσ（Ｓ））を有することに応答して除去されてよい。第５資産値３９５に対する制限は、更なるトランザクションのトランザクション入力がノード１０６の署名（例えばσ（Ｕｉ））を有することに応答して除去されてよい。第４資産値３９４は第１資産値３９０（図３Ａ及び図３Ｂ）より小さくてよい。さらに、第５資産値３９５は第１資産値３９０と第４資産値３９４の差であってよい。したがって、いくつかの例では、第４資産値３９４は、主ノード１０４又はドキュメントリポジトリシステム１００に参加している任意の他のノード１０６による考慮と後続の検証のために、生成されたドキュメントをデータストア１２０に提出するための報酬であってよい。第５資産値３９５は、公開トランザクション２５４をブロードキャストしたノード１０６に返すことができる、制限されていない資産値を表してよい。
【００７９】
いくつかの例では、ドキュメントリポジトリシステム１００は、取り消しトランザクション２５２をブロードキャストするのではなく、公開トランザクション１５４をブロードキャストするように、それぞれのノード１０６を促進するよう構造化されてよい。したがって、第４資産値３９４は、取り消しトランザクション２５２（図２及び図３Ｂ）の第２資産値３９２（図３Ｂ）より小さくてよい。説明の容易性のために、ブロックチェーンプロトコル（例えばビットコインプロトコル）に従ってブロックチェーンネットワークのノードをマイニング／検証することによる任意のトランザクション報酬は、デジタル資産を制限及び制限解除する説明に含まれていないことに留意されたい。
【００８０】
図３Ｄは、例示のタイムアウトトランザクション２５６を図示している。コミットメントチャネル１４０を形成するとき、主ノード１０４及びそれぞれのノード１０６はタイムアウトトランザクション２５６を生成してよい。主ノード１０４は、ノード１０６がコミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストしたが、ノード１０６が、ブロードキャストされたコミットメントトランザクション２５０に続いていずれの有効な後続のトランザクションもブロードキャストしなかったという状況において、タイムアウトトランザクション２５６をブロックチェーンネットワークにブロードキャストしてよい。いくつかの例では、ノード１０６は、該ノード１０６が、ブロックチェーンネットワークとのネットワーク通信を失った可能性がある場合、あるいはオフラインになった可能性がある場合、取り消しトランザクション２５２又は公開トランザクション２５４をブロードキャストしていないことがある。
【００８１】
タイムアウトトランザクション２５６は、タイムロック閾値が経過するまでに、主ノード１０４がタイムアウトトランザクション２５６をブロックチェーンネットワークに成功裏にブロードキャストし得ないように、ｎＬｏｃｋＴｉｍｅベースのトランザクションであってよい。タイムロック閾値は、電子台帳１０２（図１）のトランザクションブロックの高さ又はＵＮＩＸ（登録商標）時間に関して定義されてよい。例として、タイムロック閾値は、ノード１０６の各々が、コミットメントトランザクション２５０のそれぞれのブロードキャストに続いて取り消しトランザクション２５２又は公開トランザクション２５４のいずれかをブロードキャストするためのデッドラインであってよい。コミットメントトランザクション２５０が、データストア１２０（図１）に格納されている暗号化ドキュメントを表すものであるか又はその指示であり得ることを思い出されたい。すなわち、ノード１０６がコミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストするとき、ノード１０６は、ドキュメントリポジトリシステム１００内のそのドキュメントの存在をブロードキャストしていることがある。
【００８２】
ノード１０６が、第１タイムロック閾値の前に取り下げトランザクション２５２又は公開トランザクション２５４をブロードキャストし損なうとき、ノード１０６は、秘密鍵共有分（
【数１０】
2021516902.tif 000012
）及びそのノード１０６のノード秘密鍵（ｑｉ）を提供し損なう。そのノード１０６の秘密鍵共有分を公開し損なうことは、ドキュメントリポジトリシステム１００に参加している他のノードが、共同秘密−公開鍵ペア（ｐ、Ｐ）の共同秘密鍵（ｐ）を再生成することを妨げ、したがって、データストア１２０に格納された暗号化ドキュメントを他のノードが復号することを妨げ得る。さらに、そのノード１０６のノード秘密鍵（ｑｉ）を公開し損なうことは、ドキュメントリポジトリシステム１００に参加している他のノードが、その特定のノード１０６の暗号化ドキュメントを復号することを妨げ得る。暗号化ドキュメントを復号するために、ドキュメント暗号秘密鍵（ｌｉ＝ｐ＋ｑｉ）が必要とされ得ることを思い出されたい。
【００８３】
タイムアウトトランザクション２５６は、主ノード１０４により第１資産値３９０を更に制限するための出力を有するトランザクション出力を含んでよい。すなわち、第１資産値３９０に対する制限は、更なるトランザクションのトランザクション入力が主ノードの署名（例えばσ（Ｓ））を有することに応答して除去されてよい。いくつかの例では、ドキュメントリポジトリシステム１００は、第１タイムロック閾値（ｓ１）の前に取り下げトランザクション２５２又は公開トランザクション２５４の少なくとも一方をブロックチェーンネットワークにブロードキャストしなかったノード１０６に対するペナルティとして、タイムアウトトランザクション２５６のトランザクション出力の構造が、第１資産値３９０を制限することを必要とし得る。
【００８４】
いくつかの例では、主ノードの署名（σ（Ｓ））を有する更なるトランザクションは、データストア１２０に格納され得る暗号化ドキュメントを復号するために使用可能ではない他のノード１０６の各々の代わりに、第１資産値の一部を他のノード１０６の各々に分配するトランザクション出力を含んでよい。他のノード１０６の各々は、少なくともいくつかのノード１０６又はセットからの秘密鍵共有分なしに、共同秘密鍵（ｐ）を再生成することができないことを思い出されたい。
【００８５】
いくつかの例では、ノード１０６は、タイムアウトトランザクション２５６をブロックチェーンネットワークにブロードキャストしないことがある。むしろ、タイムアウトトランザクション２５６は、それぞれのノード１０６が第１タイムロック閾値の前に公開又は取り消しトランザクションをブロードキャストし損なう場合には、主ノード２０４によって、ブロックチェーンネットワークにブロードキャストされてよい。タイムアウトトランザクション２５６は、主ノード２０４の利益のために第１資産値３９０を制限するため、各それぞれのノード１０６は、タイムアウトトランザクション２５６をブロックチェーンネットワークにブロードキャストするように動作しないことがある。
【００８６】
次に、図４を参照すると、図４は、本出願の例による主ノード２０４と、いくつかのノードの各々との間のコミットメントチャネルを図形的に示している。例えば第１コミットメントチャネル４０２は、「ノード１」及び主ノード２０４のために形成されてよい。第２コミットメントチャネル４０４は、「ノード２」及び主ノード２０４のために形成されてよい。第ｎコミットメントチャネル４０６は、「ノードｎ」及び主ノード２０４のために形成されてよい。それぞれのコミットチャネルの各々は、それぞれのノードに関連付けられ、かつデータストア内に格納され得る、暗号化ドキュメントに関連付けられてよい。いくつかの例では、ドキュメントリポジトリシステム内のコミットメントチャネルの数は、データストア１２０（図１）に格納された暗号化ドキュメントを検証又は明らかにすることに参加しているノードの数に対応してよい。第１コミットメントチャネル４０２、第２コミットメントチャネル４０４又は第ｎコミットメントチャネル４０６の各々は、本明細書において図２及び図３Ａ〜図３Ｄで説明されるものと同様の機能を有する、コミットメントトランザクション、取り消しトランザクション、公開トランザクション又はタイムアウトトランザクションに関連付けられてよい。
【００８７】
説明されるように、ノード１０６（図１）は、主ノード１０４（図１）又は他のノード１０６による考慮のために、１つ以上のドキュメントをドキュメントリポジトリシステム１００（図１）に提出するよう望むことがある。ドキュメントをドキュメントリポジトリシステム１００に提出することは、格納のために暗号化ドキュメントをデータストア１２０（図１）に送信することを含んでよく、コミットメントトランザクションを生成してブロックチェーンネットワークにブロードキャストすることを含んでよい。いくつかの例では、暗号化ドキュメントは、ブロックチェーンネットワークにブロードキャストされるトランザクション内で指定されず又は格納されなくてよい。むしろ、暗号化ドキュメントのハッシュ（例えばＨｏＤｉ）が、ブロックチェーンネットワークにブロードキャストされるトランザクション内で指定されてよい。暗号化ドキュメントのハッシュは、暗号化ドキュメントがデータストア１２０に保存されるブロックチェーンネットワークにブロードキャストするために使用されてよい。
【００８８】
実装によって、主ノード１０４は、ノード１０６からのドキュメント提出を要求する要求トランザクションを生成してよい。要求トランザクションは、他の詳細の中でも特に、受け取ることができるドキュメント提出の量、ドキュメント提出を行い得るノード１０６の量、あるいは（ａ）提出閾値時間（ｓ０）のように、ブロックチェーンネットワークへのコミットメントトランザクションの提出が起こるとき（例えばタイムロック閾値に至るまで）；及び（ｂ）第１閾値時間（ｓ１）のように、後続の有効なトランザクション（例えば取り消しトランザクション２５２又は公開トランザクション２５４）の提出をブロードキャストしなければならないときについてのタイムロック閾値を指定する、ロッキングスクリプトを含んでよい。いくつかの例では、提出閾値時間（ｓ０）は、ドキュメントリポジトリシステム１００が、暗号化ドキュメントを復号するための動作を進める前に、記憶のために、暗号化ドキュメントを参加ノードから受け取り得るように実装されてよい。いくつかの例では、要求トランザクションは、楕円曲線暗号（ＥＣＣ：Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｃｒｙｐｔｏｇｒａｐｈｙ）の使用を詳述する仕様を含んでよい。例えばドキュメントリポジトリシステム１００がビットコインプロトコルに基づいている場合、以下のパラメータセットを有する楕円曲線（ｓｅｃｐ２５６ｋ１  ＥＣＤＳＡ）が使用されてよい：
・Ｇ−次数ｑの楕円曲線上の基点：ｑ×Ｇ＝０及び
・ｑ＝大きな素数
【００８９】
実装によって、秘密共有プロトコルは、ｎ個のノードが１つ以上のドキュメントをドキュメントリポジトリシステム１００に提出し得るとき、ｎ個の鍵共有分をｎ個のノードに分配するよう実装されてよい。本明細書で説明されるとき、ｎ個の鍵共有分は、共同秘密−公開鍵ペア（ｐ、Ｐ）の共同公開鍵（Ｐ）に関連付けられる共同秘密鍵（ｐ）を生成するために使用されてよい。実装によって、共同秘密鍵共有分は、信頼できるディーラーノードによって分散されてよい。信頼できるディーラーノードが共同秘密鍵共有分を分配するとき、信頼できるディーラーノードは、主ノード１０４であってよく、参加ノードのために共同秘密鍵共有分を生成するための共同秘密鍵の知識を有してよい。
【００９０】
いくつかの他の実装において、共同秘密鍵共有分は、ディーラーレスプロトコルに基づいて分配されてもよい。ディーラーレスプロトコルでは、特定のノードは、共同秘密鍵共有分の事前知識を有さず、プロトコルは、共同秘密鍵（ｐ）を生成するために、ｎ個の鍵共有分のうちの少なくともｔ＋１個を必要とすることがある。多項式ベースの秘密共有プロトコルが使用されるとき、「ｔ」は、その多項式の次数であってよい。ディーラーレスプロトコルは、ｎ個のノードが共同してそれぞれの共同秘密鍵共有分を生成して検証することを必要とすることがある。
【００９１】
いくつかの例示の実装では、閾値ｔ＋１は、ｔ∈Ｚ：０＜ｔ≦ｎ−１であってよく、ここで、ｔはｔ＋１≠ｎとなるような量であってよい。閾値ｔ＋１≠ｎが使用される例示の実装は、１つ以上のノード１０６がコミットメントトランザクション２５０をブロードキャストしたが、その後、特定のノード１０６が、それぞれのコミットメントチャネル１４０から後続の有効なトランザクションをブロードキャストしないように、ブロックチェーンネットワークとのネットワーク通信チャネルを切断した可能性があるシナリオに役立つことがある。閾値ｔ＋１≠ｎを設定することは、１つ以上のノードがブロックチェーンネットワークとのネットワーク通信チャネルを切断したときであっても、参加ノード１０６が共同秘密鍵（ｐ）を再生成するためのシナリオを改善し得ることに留意されたい。閾値がｔ＋１≠ｎであり得る例示の実装では、データストア１２０内の暗号化ドキュメントは、ノード１０６のセット全体が、取り消しトランザクション２５２又は公開トランザクション２５４の一方をブロックチェーンネットワークにブロードキャストする前に、復号され得ることに留意されたい。したがって、ノード１０６のセット全体が、取り消しトランザクション２５２又は公開トランザクション２５４の一方をブロックチェーンネットワークにブロードキャストする前に、データストア１２０内の暗号化ドキュメントが復号され得るとき、取り消しトランザクション２５２又は公開トランザクション２５４の一方をまだブロードキャストしていないノード１０６は、データストア１２０における他の暗号化ドキュメントのコンテンツを明らかにしてよく、そのような公開に基づいて、第１タイムロック閾値の経過の前に、取り消しトランザクション２５２又は公開トランザクション２５４の一方をブロードキャストしてよい。
【００９２】
いくつかの例示の実装において、ドキュメントリポジトリシステム１００は、ｎ＋ｒ閾値を利用する秘密共有プロトコルを利用してよく、その結果、共同秘密−公開鍵ペア（ｐ、Ｐ）の共同秘密鍵（ｐ）を生成するためにｎ＋ｒ個の鍵共有分が必要とされ得る。追加のｒ個の秘密鍵共有分が主ノード１０４又は他の信頼できる第三者に分配されてよい。しかしながら、ｎ＋ｒ閾値を用いる秘密共有プロトコルを使用するとき、ブロックチェーンからｎ個の秘密鍵共有分を取り出すことは、データストア１２０における暗号化ドキュメントの整合性を検証し又はその暗号化ドキュメントを明らかにするために共同秘密鍵（ｐ）を生成するには十分ではない可能性がある。
【００９３】
いくつかの例示の実装において、ドキュメントリポジトリシステム１００のノード１０６は、公的に検証可能な秘密共有（ＰＶＳＳ：Ｐｕｂｌｉｃｌｙ  Ｖｅｒｉｆｉａｂｌｅ  Ｓｅｃｒｅｔ  Ｓｈａｒｉｎｇ）プロトコルの動作を実行してよい。それぞれのノードが、それぞれのノードに正しい秘密鍵共有分を割り当てられていることを確かめることができることが望ましい可能性がある。鍵共有検証は、ノードがそれぞれの鍵共有分並びに他のノードの鍵共有分を検証することを可能にするために用いられてよい。
【００９４】
例示のＰＶＳＳプロトコルは、１９９６年５月に発行されたＳｔａｄｌｅｒ，Ｍ［Ｓｔａｄｌｅｒ］によるＩｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  ｔｈｅ  Ｔｈｅｏｒｙ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｔｅｃｈｎｉｑｕｅｓ（Ｓｐｒｉｎｇｅｒ  Ｂｅｒｌｉｎ  Ｈｅｉｄｅｌｂｅｒｇ）、ｐａｇｅｓ１９０〜１９９の「Ｐｕｂｌｉｃｌｙ  ｖｅｒｉｆｉａｂｌｅ  ｓｅｃｒｅｔ  ｓｈａｒｉｎｇ」で説明されている。
【００９５】
例示のＰＶＳＳプロトコルにおいて、各ノードＵｉは、対応する公開暗号関数Ｅｉで暗号化された情報にアクセスすることができる復号関数Ｄｉを有し得る。このようにして、ディーラーノードは、公開暗号関数を使用して鍵共有を分配し、それらを以下の形式で公開し得る：
Ｋｉ＝Ｅｉ（ｋｉ），ｉ＝１，．．．，ｎ
【００９６】
暗号化共有を、関心のあるノード（ｉｎｔｅｒｅｓｔｅｄ  ｎｏｄｅ）によって公的に検証することができる。ノードは、それ自体の鍵共有を検証することができ、他のノードが正しい鍵共有を受け取ったこと、すなわち、ディーラーノードが正直（ｈｏｎｅｓｔ）であったかどうかを検証することができる。
【００９７】
ＰＶＳＳプロトコルのメイン（高レベル）コンポーネントは、以下を含む：
（ｉ）秘密共有：ディーラーノードはアルゴリズムＳｈａｒｅ（ｋ）＝（ｋ１，．．．，ｋｎ）を実行して共有を計算し、参加ノード間にそれらを分配してよい。
（ｉｉ）再構築：参加者ノードは、Ｒｅｃｏｖｅｒ（｛Ｄｉ（Ｋｉ）｜ｉ∈Ａ｝）＝ｋのようなアルゴリズムＲｅｃｏｖｅｒを実行することによって、秘密を再構築することができる。
（ｉｉｉ）検証：アルゴリズムＰｕｂＶｅｒｉｆｙを使用して暗号化共有を検証してよい。ノードがアルゴリズムＰｕｂＶｅｒｉｆｙ（｛Ｋｉ｜ｉ∈Ａ｝）＝１→Ｒｅｃｏｖｅｒ（｛Ｄｉ（Ｋｉ）｜ｉ∈Ａ｝）＝ｕ及びｕ＝ｋを操作する場合、次いでディーラーノードは、正直であると決定されてよく、鍵共有は一貫性があり得る。
【００９８】
いくつかの実装では、ＰＶＳＳスキームは、回復段階における必要性に応じてインタラクティブとすることも非インタラクティブとすることもできる。
【００９９】
いくつかの暗号システムに基づくＰＶＳＳプロトコルの様々な実装が考慮されてよい。例として、以下は、１９９９年８月に公開されたＳｃｈｏｅｎｍａｋｅｒｓ，Ｂによる、Ａｎｎｕａｌ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｒｙｐｔｏｌｏｇｙ  Ｃｏｎｆｅｒｅｎｃｅ（Ｓｐｒｉｎｇｅｒ  Ｂｅｒｌｉｎ  Ｈｅｉｄｅｌｂｅｒｇ）、ｐａｇｅｓ１４８〜１６４からの刊行物「Ａ  ｓｉｍｐｌｅ  ｐｕｂｌｉｃｌｙ  ｖｅｒｉｆｉａｂｌｅ  ｓｅｃｒｅｔ  ｓｈａｒｉｎｇ  ｓｃｈｅｍｅ  ａｎｄ  ｉｔｓ  ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  ｅｌｅｃｔｒｏｎｉｃ  ｖｏｔｉｎｇ」で説明されているプロトコルを強調する。
【０１００】
初期段階において、公的手順（ｐｕｂｌｉｃ  ｐｒｏｃｅｄｕｒｅ）を使用して、グループＧｑ及び２つの独立に選択されたジェネレータＧ及びｇを選択してよい。各ノードは、その秘密鍵
【数１１】
2021516902.tif 000013
を所与として、公開鍵として
【数１２】
2021516902.tif 000014
を設定してよい。
【０１０１】
ディーラーノードは、次いで、Ｚｑの係数で最大ｔ−１の次数のランダム多項式
【数１３】
2021516902.tif 000015
を設定してよく、ａ０＝ｋを設定する。コミットメント
【数１４】
2021516902.tif 000016
及び（参加者の公開鍵を使用して）暗号化された共有分ｆ（ｉ）
【数１５】
2021516902.tif 000017
が公表されてよい。
【０１０２】
【数１６】
2021516902.tif 000018
を計算することによって、ディーラーノードは、暗号化された共有分が一貫していることを示すことができる。特に、ディーラーノードは、
【数１７】
2021516902.tif 000019
を示すことによって、ｆ（ｉ）の知識のプルーフを生成することができる。
【０１０３】
鍵共有分の検証を、上記で引用したStadlerにおけるフィアット−シャミア暗号技術を使用して実行することができる。非インタラクティブなプロトコルの主なステップは以下を含む：
・証明者（すべてのノード）は、ランダムｗｉ∈Ｚｑを選んでよく、
【数１８】
2021516902.tif 000020
を計算してよく、値をブロードキャストしてよい。
・ｃ＝Ｈ（Ｘｉ，Ｙｉ，ａ１ｉ，ａ２ｉ）（ただし、Ｈ（）は暗号化ハッシュ関数）を使用して、証明者（例えばノード）は、ｒｉ＝ｗｉ−ｆ（ｘｉ）ｃを計算してブロードキャストしてよい。
・ｒｉ，ｃｉを所与として、検証者は
【数１９】
2021516902.tif 000021
ｉのハッシュ（１≦ｉ≦ｎ）がｃに合致することを証明してよい。
【０１０４】
必要なとき、参加者ノードは、他のノードの共有分ｆ（ｘｉ）に関して何も学ぶ必要なく、秘密ｓを再構築することができる。必要とされる情報は、
【数２０】
2021516902.tif 000022
を含んでよい。秘密はラグランジュ補間を介して計算される。
【数２１】
2021516902.tif 000023
【０１０５】
上記の例は、鍵共有分を計算して分配するためにディーラーノードを利用する。しかしながら、フィアット−シャミア・ヒューリスティック技術によって説明されるように、秘密共有プロトコルのディーラーレス実装が実装されてよいことが考えられ得る（例えば「Ｆｉａｔ-Ｓｈａｍｉｒ  ｈｅｕｒｉｓｔｉｃ」、  https://en.wikipedia.org/wiki/Fiat%E2%80%93Shamir_heuristic（２０１８年２月２６日アクセス）を参照されたい）。
【０１０６】
説明されるように、いくつかの実装では、ノード１０６は、秘密共有結合プロトコルの動作を実行してよい。ノードのセットは、共同して共同公開鍵（Ｐ）を生成してよく、ここで、Ｐ＝ｐＧであり、Ｇは、楕円曲線の選択された基点であってよく、ｐは、共同秘密鍵（ｐ）であってよい。
【０１０７】
説明されるように、ノード及び主ノードは、１つ以上のトランザクションの生成及びブロックチェーンネットワークへのコミットメントトランザクションのブロードキャストに基づいて、それぞれのコミットメントチャネルを形成し得る。例示のコミットメントチャネルの形成を例示するために、図５を参照する。図５は、本出願の一例による、ノード２０６（図２）、主ノード２０４（図２）及び電子台帳５０２の間で交換されるトランザクションのシーケンス図５００を示している。電子台帳５０２は、ブロックチェーンネットワークのコンポーネントであり得る。説明の容易性のために、いくつかの例では、ブロックチェーンネットワークが電子台帳５０２を指すために使用され得る。シーケンス図５００は、図２に図示されるコミットメントチャネル１４０の例示の形成を示してよい。
【０１０８】
動作５０２において、ノード２０６は、入力としてコミットメントトランザクション出力を有する有効な後続のトランザクションが、ノード２０６の秘密鍵共有分を含むように、ノード２０６の秘密鍵共有分によってロックされたコミットメントトランザクション出力を有するコミットメントトランザクション２５０（図２）を生成し得る。いくつかの例において、コミットメントトランザクション２５０は、図３Ａのコミットメントトランザクション２５０と同様であり得る。
【０１０９】
動作５０２において、ノード２０６はまた、コミットメントトランザクション２５０を主ノード２０４に送信してもよい。コミットメントトランザクション２５０を生成して主ノード２０４に送信することによって、ノード２０６は、該ノード２０６がドキュメントをドキュメントリポジトリシステム１００に提出していることを主ノード２０４に示してよい。さらに、動作５０２において、ノード２０６は、格納のために暗号化ドキュメントをデータストア１２０（図１）に送信してよい。データストア１２０は、ドキュメントリポジトリシステム１００のノード１０６及び主ノードが、その中に格納された暗号化ドキュメントにアクセスし得るように、公的にアクセス可能であり得るが、ノード１０６又は主ノード１０４は、ドキュメント暗号秘密鍵（ｌｉ＝ｐ＋ｑｉ）を使用して、暗号化ドキュメントを復号する必要があり得る。なお、ｐは、ノード１０６に分配される共同秘密鍵共有分のセットに基づく共同秘密鍵であり、ｑｉは、暗号化ドキュメントに関連付けられるノード秘密鍵である。
【０１１０】
いくつかの例において、コミットメントトランザクション２５０はハッシュされてよく、ノード２０６は、コミットメントトランザクション２５０のハッシュを主ノード２０４に伝送してよい。実装によっては、コミットメントトランザクション２５０のハッシュは、そのコミットメントトランザクション２５０を参照するための識別子（「ＩＤ」）であってよい。例えばＩＤは、対応するコミットメントトランザクション２５０を識別するために、取り消しトランザクション２５２、公開トランザクション２５４又はタイムアウトトランザクション２５６に含まれてよい。いくつかの例では、コミットメントトランザクション２５０のハッシュは、（１）コミットメントトランザクション２５０を固定データサイズにマップするか、かつ／又は（２）変更されたドキュメントをハッシュすることにより異なるハッシュ結果が得られ得るので、コミットメントトランザクション２５０の後続の変更を検出することを助け得る。主ノード２０４又はノード１０６のいずれかは、コミットメントトランザクション２５０が変更された可能性があるかどうかを判断するために、予測されるハッシュ結果を利用してよい。
【０１１１】
５０４において、ノード２０６は、有効な後続のトランザクションを生成してよい。有効な後続のトランザクションは、図３Ｂに図示されるものと同様の取り消しトランザクション２５２であってよい。取り消しトランザクション２５２は、ノード２０６の秘密鍵共有分及びノード２０６の署名を有するトランザクション入力を含んでよい。５０４において、ノードはまた、取り消しトランザクション２５２を主ノード２０４に送信してもよい。
【０１１２】
５０６において、主ノード２０４は、取り消しトランザクション２５２が、コミットメントチャネル１４０のための命令されたトランザクション入力とトランザクション出力を含むことを検証してよい。例えば主ノード２０４は、取り消しトランザクション２５２が、少なくともノード２０６のハッシュ又は所望の入力若しくは出力資産値を含むことを検証してよい。いくつかの例では、ノード２０６はまだ、そのノード２０６のそれぞれの秘密鍵共有分（
【数２２】
2021516902.tif 000024
）を提供していないことがある。主ノード２０４が、取り消しトランザクション２５２が命令されたトランザクション入力とトランザクション出力を含むことを確かめると、主ノード２０４は、主ノードの署名（σ（Ｓ））を取り消しトランザクション２５２に付加又は連結して、署名された取り消しトランザクションをノード２０６に送信してよい。いくつかの例では、主ノード２０４は、ノード２０６の秘密鍵共有の知識を有することなく、主ノードの署名を付加又は連結してよい。すなわち、５０６において、主ノード２０４は、取り消しトランザクション２５２がその後ブロックチェーンネットワークへブロードキャストされ得るように、取り消しトランザクション２５２を設定していることがある。
【０１１３】
「未署名」の及び主署名された（ｐｒｉｎｃｉｐａｌ−ｓｉｇｎｅｄ）取り消しトランザクションの交換は、ブロックチェーンから「離れて」起こることに留意されたい。ノード２０６は、主署名された取り消しトランザクション２５２をブロックチェーントランザクションにブロードキャストしてよい。ノード２０６は、該ノード２０６が、該ノード２０６に関連付けられるドキュメントを、主ノード２０４又はドキュメントリポジトリシステム１００の他のノードによる考慮から取り下げることを望む場合、後の時間に、主署名された取り消しトランザクション２５２をブロックチェーンネットワークにブロードキャストしてよい。取り消しトランザクション２５２は、ノード２０６の秘密鍵共有分（
【数２３】
2021516902.tif 000025
）を含むので、取り消しトランザクション２５２がブロックチェーンネットワークにブロードキャストされる場合、取り消しトランザクション２５２は、ブロックチェーン上でそのノード２０６の秘密鍵共有分を明らかにしてよく、それにより、それぞれのノードが、暗号化ドキュメントＥｎｃＬ（Ｄｏｃｉ）を復号するためのノード秘密鍵（ｑｉ）との組合せで使用され得る共同秘密鍵（ｐ）を生成するために、秘密鍵共有分のセットをブロックチェーンから取り出し得ることに留意されたい。
【０１１４】
５０８において、ノード２０６は、図３Ｃに図示されるものと同様に、公開トランザクション２５４を生成してよい。例えば公開トランザクション２５４は、上述の有効な後続のトランザクションの別の例であり得る。公開トランザクション２５４は、ノード２０６に関連付けられるドキュメントのハッシュ（ＨｏＤｉ）、ノード２０６の秘密鍵共有分（
【数２４】
2021516902.tif 000026
）、ノード２０６に関連付けられるノード秘密−公開鍵ペアのノード秘密鍵（ｑｉ）及びノード２０６の署名を有するトランザクション入力を含んでよい。
【０１１５】
５１０において、主ノード２０４は、公開トランザクション２５４が、コミットメントチャネル１４０について、命令されたトランザクション入力及びトランザクション出力を含むことを確かめてよい。例えば主ノード２０４は、公開トランザクション２５４が、少なくとも、ノード２０６の署名又は所望の入力出力資産値を含むことを確かめてよい。いくつかの例では、ノード２０６は、該ノード２０６に関連付けられるドキュメントのハッシュ（ＨｏＤｉ）、ノード２０６の秘密鍵共有分（
【数２５】
2021516902.tif 000027
）又はノード２０６に関連付けられるノード秘密−公開鍵ペアのノード秘密鍵（ｑｉ）をまだ提供していないことがある。主ノード２０４が、公開トランザクション２５４が命令されたトランザクション入力及びトランザクション出力を含むことを確かめると、主ノード２０４は、主ノードの署名（σ（Ｓ））を公開トランザクション２５４に付加又は連結し、署名された公開トランザクションをノード２０６に送信してよい。いくつかの例では、主ノード２０４は、ノード２０６に関連付けられるドキュメントのハッシュ（ＨｏＤｉ）、ノード２０６の秘密鍵共有分（
【数２６】
2021516902.tif 000028
）又はノード２０６に関連付けられるノード秘密−公開鍵ペアのノード秘密鍵（ｑｉ）の知識を有することなく、主ノードの署名を付加又は連結し得る。すなわち、５１０において、主ノード２０４は、公開トランザクション２５４がその後ブロックチェーンネットワークにブロードキャストされ得るように、公開トランザクション２５４を設定していることがある。
【０１１６】
「未署名」及び主署名された公開トランザクションの交換は、ブロックチェーンから「離れて」起こることに留意されたい。ノード２０６は、該ノード２０６が、主ノード２０４又はドキュメントリポジトリシステム１００に参加している他のノードによる考慮のために、データストアで暗号化ドキュメントを公開することを望む場合、後の時間に、署名された公開トランザクション２５４をブロックチェーンネットワークにブロードキャストしてよい。ノード２０６が公開トランザクション２５４をブロックチェーンネットワークにブロードキャストするとき、ノード２０６は、該ノード２０６の暗号化ドキュメントを復号するためのドキュメント暗号秘密鍵の生成に寄与するために、ブロックチェーン上でノード２０６の秘密鍵共有分（
【数２７】
2021516902.tif 000029
）とノード秘密鍵（ｑｉ）を明らかにする。
【０１１７】
いくつかの実装において、ノード２０６は、コミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストする前に、少なくとも１つの有効な後続のトランザクション（例えば取り消しトランザクション２５２又は公開トランザクション２５４の少なくとも一方）が、主ノード２０４によって署名されていることを必要とすることがある。主署名された取り消しトランザクション２５２又は主署名された公開トランザクション２５４の少なくとも一方が受け取られるまで、ノード２０６のコミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストすることを控えることにより、ノード２０６は、主署名された取り消しトランザクション２５２又は主署名された公開トランザクション２５４の少なくとも一方が、第１タイムロック閾値（ｓ１）の前にブロックチェーンネットワークにブロードキャストされる場合に、第１資産値３９０（図３Ａ）の一部が返され得ることを保証され得る。
【０１１８】
本明細書で説明される例では、第３資産値３９３（図３Ｂ）又は第５資産値３９５（図３Ｃ）において制限が除去される前に、少なくとも１つの有効な後続のトランザクションが主署名される必要があり得るので、ノード２０６は、主署名された有効な後続のトランザクションが受け取られるまで、そのノード２０６のコミットメントトランザクション２５０をブロードキャストすることを控えることがある。コミットメントトランザクション２５０がブロックチェーンネットワークにブロードキャストされると、ノード２０６は、第３資産値３９３又は第５資産値３９５のいずれかの代わりに、そのノード２０６の秘密鍵共有分（
【数２８】
2021516902.tif 000030
）をそれぞれの秘密鍵共有分のセットに寄与するために、取り消しトランザクション２５２又は公開トランザクション２５４のいずれかをブロックチェーンネットワークにブロードキャストしてよい。いくつかの実装において、取り消しトランザクション２５２は、公開トランザクション２５４の前に主ノード２０４によって署名されてよく、その逆もあり得る。いくつかの例では、少なくとも、第５資産値３９５が第３資産値３９３よりも大きい可能性があるために、ノード２０６は、いずれかの他の有効な後続のトランザクションの前に、公開トランザクション２５４が主ノード２０４によって署名されることを好むことがある。いくつかの実装では、取り消しトランザクション２５２は、公開トランザクション２５４と実質的に同時に、主ノード２０４によって署名されてもよい。
【０１１９】
ノード２０６が、取り消しトランザクション２５２及び署名された公開トランザクション２５４のいずれも提出しないとき、本明細書で説明されるように、主ノード２０４は、タイムアウトトランザクション２５６（図３Ｄ）をブロックチェーンネットワークにブロードキャストしてよい。タイムアウトトランザクション２５６は、主ノード２０４の利益のために第１資産値３９０を制限するための出力を有するトランザクション出力を含んでよい。ノード２０６がドキュメントをドキュメントリポジトリシステム１００に提出することを望む可能性があることを示すために、ノード２０６がコミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストする状況であるが、ノード２０６が、署名された取り消しトランザクション２５２又は署名された公開トランザクション２５４のいずれかを第１閾値時間（ｓ１）の前にブロードキャストすることをフォローアップし損なう状況において、主ノード２０４は、第１資産値３９０に対する制限を除去してよい。この場合、第１資産値３９０は、ブロックチェーンにおいてノード２０６の秘密鍵共有分（
【数２９】
2021516902.tif 000031
）を明らかにしなかったことに対するノード２０６へのペナルティであり得る。
【０１２０】
いくつかの実装では、ノード２０６又は主ノード２０４のいずれかが、タイムアウトトランザクション２５６を生成してよい。しかしながら、主ノード２０４は、ブロックチェーンにおいて秘密鍵共有分を明らかにしなかったことに対してノード２０６にペナルティを課すために、タイムアウトトランザクション２５６を利用してよい。したがって、動作５１２において、主ノード２０４はタイムアウトトランザクション２５６を生成してよい。タイムアウトトランザクション２５６は、図３Ｄに図示されるものと同様であってよく、主ノード２０４の署名を有するトランザクション入力を含んでよい。
【０１２１】
５１４において、ノード２０６は、タイムアウトトランザクション２５６が、命令されたｎＬｏｃｋＴｉｍｅベースのトランザクションを含むことを検証してよく、検証されると、ノード２０６は、該ノード２０６の署名（σ（Ｕｉ））をタイムアウトトランザクションに付加又は連結し、署名されたタイムアウトトランザクションを主ノード２０４に送信してよい。
【０１２２】
さらに、タイムアウトトランザクション２５６は、主ノード２０４の利益のために第１資産値３９０に対する制限を含む、トランザクション出力を含んでよい。タイムアウトトランザクション２５６がブロックチェーンネットワークにブロードキャストされると、第１資産値に対する制限は、更なるトランザクションのトランザクション入力が主ノードの署名（σ（Ｓ））を有することに応答して除去されてよい。タイムアウトトランザクション２５６は、第１タイムロック閾値（ｓ１）が経過するまで、ブロックチェーンネットワーク上で成功裏にブロードキャストされて検証されることを停止して保持されることに留意されたい。いくつかの実装では、コミットメントチャネル１４０を形成するための動作は、ノード２０６が、ノードの署名（σ（Ｕｉ））をタイムアウトトランザクション２５６に付加又は連結するまで、ノード２０６がコミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストすることを防止してよい。
【０１２３】
いくつかの実装では、タイムアウトトランザクション２５６が、ブロックチェーンネットワーク上で成功裏にブロードキャストされて検証されると、制限解除された第１資産値３９０は、秘密鍵共有分のセットに基づいて共同秘密鍵を生成する失われた機会に対する補償として又は救済として、他のノードに分配されてよい。他のノード２０６の各々は、ドキュメント暗号秘密鍵ｌｉ＝ｐ＋ｑｉを組み立てるために共同秘密鍵（ｐ）が生成され得るように、すべての他のノード２０６に依存して、それぞれの秘密鍵共有分をブロックチェーン上で公開することを思い出されたい。ドキュメント暗号秘密鍵は、それぞれのノードＵｉから発した暗号化ドキュメントを復号するために利用されてよい。
【０１２４】
いくつかの実装において、ノード２０６と主ノード２０４の双方によって署名されたタイムアウトトランザクション２５６は、データストア１２０内に格納されてよく、その結果、それぞれのノード２０６が（１）コミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストし、（２）第１タイムロック閾値（ｓ１）の前に、少なくとも、主ノード２０４によって署名された取り消しトランザクション２５２又は公開トランザクション２５４をブロードキャストし損なう場合に、ドキュメントリポジトリシステム１００に対する複数のノード１０６（図１）は、該複数のノード内のノード１０６の各々がペナルティの対象となり得ることに注目し得る。
【０１２５】
５１６において、ノード２０６は、該ノード２０６に関連付けられるコミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストしてよい。コミットメントトランザクション２５０がブロックチェーンネットワークにブロードキャストされるときに、コミットメントチャネル１４０を形成することができる。少なくとも上記例に基づいて、ノード２０６及び主ノード２０４は、コミットメントチャネル１４０を形成するために、本明細書で説明される動作５０２乃至５１６を実行してよい。
【０１２６】
さらに、ノード２０６が、第１資産値３９０（図３Ａ）と等価な値のペナルティを課されないことを保証するために、５１８において、ノード２０６は、第１タイムロック閾値（ｓ１）の前に、取り消しトランザクション２５２又は公開トランザクション２５４のいずれかをブロックチェーンネットワークにブロードキャストしてよい。
【０１２７】
図６を参照すると、図６は、本出願の一例による、ドキュメントをドキュメントリポジトリシステム１００（図１）に提出するために図１のノード１０６（例えば第１ノード＝ノードｉ）で実施される方法６００をフローチャートの形式で示している。方法６００は、ブロックチェーンネットワークのノード１０６の１つ以上のプロセッサによって実行され得る動作を含んでよい。方法６００は、主ノード１０４（図１）による又はドキュメントリポジトリシステム１００に参加している任意の他のノードによる考慮のために、ドキュメントをドキュメントリポジトリシステム１００に提出するためにノード１０６によって実行されてよい。
【０１２８】
動作６１０において、プロセッサは、ドキュメントリポジトリシステム１００内のそれぞれのノードに秘密鍵共有分を分配するか又は割り当てるために、閾値秘密共有プロトコルの動作に基づいて秘密鍵共有分（ｐ＾ｉ）を取り出してよい。閾値秘密共有プロトコルの例は、上述のシャミア法を含むが、閾値秘密共有プロトコルに類似する他の方法も考えることができる。説明したように、共同秘密−公開鍵ペア（ｐ、Ｐ）の共同秘密鍵（ｐ）は、アクセス可能なデータストア１２０（図１）に格納される暗号化ドキュメントＥｎｃＬ（Ｄｏｃｉ）を復号するためのドキュメント暗号秘密鍵（ｌｉ＝ｐ＋ｑｉ）を生成するために使用されてよい。
【０１２９】
動作６２０において、プロセッサは、ノード秘密−公開鍵ペア（ｑｉ、Ｑｉ）を計算してよい。計算されたノード秘密−公開鍵ペアは「ワンタイムコード」として使用されてよい。例えばノード秘密−公開鍵ペアのノード公開鍵（Ｑｉ）は、ドキュメント暗号公開鍵（Ｌｉ＝Ｐ＋Ｑｉ）を生成するために使用されてよい。ノード秘密鍵（ｑｉ）は、公開トランザクション２５４（図２）を介してブロードキャストされてよい。したがって、ノード秘密鍵がブロックチェーンネットワークに対して公にされると、ノード１０６は、ドキュメントリポジトリシステム１００内の将来の暗号化操作のためにノード秘密−公開鍵ペアを使用することを控えてよい。
【０１３０】
動作６３０において、プロセッサは、ドキュメント暗号公開鍵（Ｌｉ＝Ｐ＋Ｑｉ）を生成してよい。いくつかの例では、プロセッサは、（閾値秘密共有プロトコルの動作を介して取り出される）共同公開鍵とノード１０６のノード公開鍵を組み合わせることによって、ドキュメント暗号公開鍵を生成してよい。
【０１３１】
動作６４０において、プロセッサは、ノード１０６がドキュメントリポジトリシステム１００へ提出するタスクを課されたドキュメントを暗号化してよい。暗号化されたドキュメントはデータストア１２０に格納されてよい。ドキュメントリポジトリシステム１００内のノードのいずれかが、その中に格納された暗号化されたドキュメントを取り出すために、データストア１２０にアクセスしてよい。しかしながら、ノードは、関心のあるドキュメントがドキュメント暗号秘密鍵で復号されるまで、暗号化されたドキュメントのうちのいずれか１つのコンテンツを見つけることができない。ドキュメント暗号秘密鍵は、共同秘密鍵と、関心のあるドキュメントに関連付けられるノード秘密鍵の組合せを含む。ノード１０６は、ドキュメントリポジトリシステム１００に参加している閾値数のノードが、取り消しトランザクション２５２又は公開トランザクション２５４を介してブロックチェーン上でそれぞれの秘密鍵共有分を明らかにすると、共同秘密鍵（ｐ）を生成し得る。いくつかの例では、暗号化されたドキュメントは、ブロックチェーンネットワークにブロードキャストされたトランザクションを介して記録されなくてよい。むしろ、ドキュメント又は暗号化されたドキュメントのハッシュが、ブロックチェーンネットワークにブロードキャストされ得る、本明細書で説明された１つ以上のトランザクションにおいて記録されてよい。
【０１３２】
動作６５０において、プロセッサは、第１コミットメントチャネル１４０（図１）について１つ以上のトランザクションを生成してよい。例示の実装では、プロセッサは、図５のシーケンス図５００によって示される動作に基づいて、ノード１０６の第１コミットメントチャネル１４０のために１つ以上のトランザクションを生成してよい。第１コミットメントチャネル１４０は、コミットメントトランザクション２５０（図２）が生成されたとき、取り消しトランザクション２５２又は公開トランザクション２５４のうちの少なくとも一方が主ノード２０４（図２）によって署名されたとき、そしてコミットメントトランザクション２５０がブロックチェーンネットワークにブロードキャストされたときに、後続の動作で形成されるように決定され得る。いくつかの例示の実装において、コミットメントチャネル１４０は、図５によって説明されるトランザクションの各々が、ノード１０６によって及び主ノード１０４によって生成及び署名されたとき、コミットメントトランザクション２５０がブロックチェーンネットワークにブロードキャストされるときに形成されてよい。
【０１３３】
動作６６０において、主ノードによって署名された有効な取り消しトランザクション又は公開トランザクションを受け取ったことに応答して、プロセッサは、ブロックチェーンネットワークのノードをマイニングすることによりコミットメントトランザクション２５０が検証され得るように、コミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストしてよい。いくつかの例において、プロセッサがコミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストすると、プロセッサは、コミットメントチャネル１４０を形成する。いくつかの実装において、コミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストすることは、主ノード又はドキュメントリポジトリシステム１００内の他のノードによる考慮のためにノード１０６のドキュメントをドキュメントリポジトリシステム１００に提出することと類似してよい。
【０１３４】
プロセッサは、有効な取り消しトランザクション又は公開トランザクションが主ノード１０４によって署名されるようなときまで、コミットメントトランザクション２５０をブロックチェーンネットワークにブロードキャストとすることを控えてよい。本明細書で説明されるように、取り消しトランザクション又は公開トランザクションは、第１資産値３９０の一部が、少なくとも、秘密鍵共有分のセットに対するノード１０６の秘密鍵共有分の寄与の代わりに、ＵＴＸＯとしてノード１０６に返され得るように、第１資産値３９０（図３Ｂ、図３Ｃ）の少なくとも一部に対する制限を除去するためのトランザクション出力を含んでよい。
【０１３５】
いくつかの例では、プロセッサが、主ノードによって署名された有効な取り消しトランザクション又は公開トランザクションを受け取らない場合、プロセッサは、コミットメントチャネルの形成を停止し、プロセッサは、コミットメントチャネルをブロックチェーンネットワークにブロードキャストすることを回避してよい。
【０１３６】
ノード１０６によって、コミットメントトランザクションのブロードキャストを介して、プロセッサが、ドキュメントリポジトリシステム１００における考慮のためにドキュメントを提示している可能性があるという指示が行われると、動作６７０において、プロセッサは、第１タイムロック閾値（ｓ１）の前に取り消しトランザクション又は公開トランザクションをブロックチェーンネットワークにブロードキャストしてよい。第１タイムロック閾値（ｓ１）は、主ノード又はドキュメントリポジトリシステム１００の任意の他のノードによって確立されてよい。第１タイムロック閾値は、それぞれのノードによるドキュメントリポジトリシステム１００へのドキュメント提出及び秘密鍵共有分提出の期間を管理するために設定されてよい。
【０１３７】
プロセッサは、そのノードが、そのドキュメントを考慮させることを意図している場合、公開トランザクションをブロックチェーンネットワークにブロードキャストしてよい。ドキュメントは、選択のために主ノード又はシステムの任意の他のノードによって考慮されてよい。例えばドキュメントは、ドキュメント管理システム１００によって管理されるコンテストへの提出であってよい。いくつかの他の例では、ドキュメントは、ドキュメント管理システム１００によって管理される裁判所への法的文書提出であってよく、この場合、法的文書提出の期限は、法令によって定められてよい。他の例では、ドキュメントは、ドキュメント管理システム１００によって管理されるインフラストラクチャプロジェクトの授与のための官庁に対する入札提出であってよい。ドキュメントコンテンツの公開を、一時的な時間閾値が経過するときに限定することにより、入札プロセスは、競合プロセス（例えば最良コスト等）をもたらし得る入札提出を促進し得る。
【０１３８】
いくつかの例では、プロセッサは、そのノードが、そのドキュメントを考慮から除外させることを意図しているが、秘密鍵共有分の必要なセットが、ドキュメントの復号のための共同秘密鍵（ｐ）を生成するために収集され得るように、そのノードの秘密鍵共有分を明らかにすることを意図している場合、取り消しトランザクションをブロックチェーンネットワークにブロードキャストしてよい。ノードは、任意の有効な後続のトランザクションを単にブロードキャストするのではなく、取り消しトランザクションをブロックチェーンネットワークにブロードキャストするように動機付けされ得ることに留意されたい。なぜなら、少なくとも、取り消しトランザクションをブロードキャストすることは、（１）ブロックチェーン上でそのノードの秘密鍵共有分を公開し、（２）そのノードの利益のために第１資産値の一部を制限するからである。そのノードが単に、任意の有効な後続のトランザクションをブロードキャストしなかった場合、第１資産値は、主ノードの利益又はドキュメントリポジトリシステム１００に参加している他のノードの各々の利益のために、（主ノードによるタイムアウトトランザクションのブロードキャストを介して）制限されるであろう。
【０１３９】
図７を参照すると、図７は、本出願の一例による、ドキュメントリポジトリシステム１００（図１）に提出されたドキュメントを検証する、図１のノード１０６（例えば第１ノード＝ノードｉ）で実施される方法７００をフローチャートの形式で示している。方法７００は、ブロックチェーンネットワークのノード１０６の１つ以上のプロセッサによって実行され得る動作を含んでよい。方法７００は、ドキュメントリポジトリシステム１００に以前に提出されたドキュメントを検証するためにノード１０６によって実行されてよい。
【０１４０】
動作７１０において、プロセッサは、ドキュメント（Ｄｏｃｉ）又は暗号化ドキュメントＥｎｃＬ（Ｄｏｃｉ）に関連付けられる秘密鍵共有分のセットをブロックチェーンから取り出してよい。秘密鍵共有分のセットは、秘密鍵共有分（例えば
【数３０】
2021516902.tif 000032
）を含んでよく、ここで、セット内の各秘密鍵共有分は、そのそれぞれのドキュメント（Ｄｏｃｉ）を検証することに参加しているそれぞれのノードによって、ブロックチェーンネットワークでブロードキャストされた公開トランザクション又は取り消しトランザクションに基づいて取り出されてよい。
【０１４１】
動作７２０において、秘密鍵共有分の量が秘密鍵共有閾値より多いと判断したことに応答して、プロセッサは、秘密鍵共有分（例えば
【数３１】
2021516902.tif 000033
の取り出されたセットから、共同秘密−公開鍵ペア（ｐ、Ｐ）の共同秘密鍵（ｐ）を生成してよい。いくつかの例において、ｎ個のノードが、ドキュメントリポジトリシステム１００に提出されたドキュメントを検証することに参加している可能性がある場合、秘密鍵共有閾値はｎ個の秘密鍵共有分であってよい。すなわち、ノード１０６又は主ノード１０４のいずれかが、データストア１２０（図１）内のドキュメントを検証することを可能にするために、ｎ個の参加ノードの各々が、それらのそれぞれの秘密鍵共有分
【数３２】
2021516902.tif 000034
をブロックチェーン上で明らかにしなければならない。ｎ個のノードのうちの１つ以上が、（例えば取り消しトランザクション又は公開トランザクションのブロードキャストを介して）それらのそれぞれの秘密鍵共有分を明らかにし損なう場合、プロセッサは、ドキュメント暗号秘密鍵（ｌｉ＝ｐ＋ｑｉ）を生成するための共同秘密鍵（ｐ）を生成するために使用可能ではない可能性がある。ｎ個のノードのうちの１つ以上が、それらのそれぞれの秘密鍵を公開し損なう場合、ドキュメントリポジトリシステム１００に参加しているノード１０６はいずれも、データストア１２０に格納された暗号化ドキュメントを暗号解除することができないことがある。すなわち、ｎ個のノードの各々から秘密鍵共有分の協力／寄与なしには、ノードのいずれも暗号化ドキュメントを復号して検証することはできないことがある。
【０１４２】
いくつかの例において、ｎ個のノードが、ドキュメントリポジトリシステム１００に提出されたドキュメントを検証することに参加している場合、秘密鍵共有閾値は、ドキュメントリポジトリシステム１００に参加しているノードの数よりも少なくてよい。したがって、ｎ個のノードのうちの１つ以上が、それらのそれぞれの秘密鍵を明らかにし損なうが、秘密鍵共有分の量が、秘密鍵共有閾値よりも多い場合、プロセッサは、ドキュメント暗号秘密鍵（ｌｉ＝ｐ＋ｑｉ）を生成するための共同秘密鍵（ｐ）を生成することができる。いくつかの実装では、ブロックチェーンネットワークへの接続を失う可能性があるノードを説明し、第１タイムロック閾値（ｓ１）の前に公開トランザクション又は取り消しトランザクションをブロードキャストできない可能性がある限られた数のノードを説明するために、ドキュメントリポジトリシステム１００に参加しているノードの数より少ない秘密鍵共有閾値を提供することが望ましいことがある。
【０１４３】
いくつかの例において、プロセッサが、第１タイムロック閾値（ｓ１）の前に、秘密鍵共有閾値より多い必要な量の秘密鍵共有分をブロックチェーンから取り出し損ねた場合、少なくとも、共同秘密鍵が生成されていない可能性があるために、プロセッサは、データストア１２０に格納された暗号化ドキュメントを暗号解除することができないことがある。そのような状況では、実装によって、主ノード１０４（図１）は、タイムアウトトランザクション２５６（図２）をブロックチェーンネットワークにブロードキャストしてよく、第１資産値３９０（図３Ｄ）に対する制限は除去され、その後、主ノード１０４又はドキュメントリポジトリシステム１００内の他のノードのためにロッキングスクリプトに含まれてよい。
【０１４４】
プロセッサが、取り出された秘密鍵共有分のセットから共同秘密鍵を生成することができる場合、動作７３０において、プロセッサは、（１）ドキュメント暗号秘密鍵（ｌｉ＝ｐ＋ｑｉ）を生成し、（２）ドキュメント暗号秘密鍵を使用して暗号化ドキュメントを暗号解除することによって、暗号化ドキュメント（ＥｎｃＬ（Ｄｏｃｉ））を復号してよい。
【０１４５】
いくつかの実装において、プロセッサは、暗号解除されたドキュメントをハッシュし（例えばＨ（θ））、ドキュメントを発したノードに関連付けられるブロードキャストされたコミットメントトランザクションから取り出されたドキュメントのハッシュで、ドキュメントのハッシュ（Ｈ（Ｄｏｃｉ））を検証するための動作を実行してよい。必要な量の秘密鍵共有分がブロックチェーンで明らかにされると、ドキュメントリポジトリシステム１００内のノード１０６のいずれかが、（１）秘密鍵共有分のセットから生成された共同秘密鍵と、（２）ドキュメント（Ｄｏｃｉ）に関連付けられるそれぞれのノードｉによって提供されたノード秘密鍵（ｑｉ）の組合せに基づいて、暗号化ドキュメント（ＥｎｃＬ（Ｄｏｃｉ））を暗号解除してよいことに留意されたい。いくつかの実装において、ドキュメントリポジトリシステム１００に参加している各ノードは、（１）暗号化ドキュメントを復号し、（２）復号されたドキュメントをハッシュし、（３）復号されたドキュメントのハッシュが、そのドキュメントを発したノードに関連付けられるブロードキャストされたコミットメントトランザクションから取り出されたドキュメントのハッシュに対応することを検証するための動作を実行し得る。
【０１４６】
次に、図８を参照すると、図８は、本出願の一例による簡略化されたノード８００をブロック図の形式で図示している。ノード８００は、１つ以上のマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ又は同様のコンピュータ処理デバイスを含み得るプロセッサ８０２を含む。ノード８００は、値、変数及びいくつ下の例ではプロセッサ実行可能プログラム命令を格納する永続的及び非永続的メモリを含み得るメモリ８０４と、ネットワークインタフェース８０６を更に含んでよい。
【０１４７】
ノード８００は、プロセッサ８０２に本明細書で説明される機能又は動作の１つ以上を実行させるプロセッサ実行可能命令を含む、プロセッサ実行可能なブロックチェーンアプリケーション８０８を含んでよい。
【０１４８】
上述の実施形態は、本発明を限定するものではなく例示するものであり、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、多くの代替的な実施形態を設計することができることを認識されたい。特許請求の範囲においては、括弧内に置かれる任意の参照符号は、特許請求の範囲を限定するものとして解釈されるべきではない。「備えている（ｃｏｍｐｒｉｓｉｎｇ）」及び「備える（ｃｏｍｐｒｉｓｅｓ）」等の語は、いずれかの請求項又は明細書全体に列挙されるもの以外の要素又はステップの存在を除外しない。本明細書において、「備える（ｃｏｍｐｒｉｓｅｓ）」は「含む又はから成る」を意味し、「備えている（ｃｏｍｐｒｉｓｉｎｇ）」は「含んでいる又はから成っている」を意味する。ある要素の単数形の参照は、そのような要素の複数形の参照を除外せず、また、その逆もそうである。本発明は、いくつかの別個の要素を備えるハードウェアによって及び適切にプログラムされたコンピュータによって実装されてよい。いくつかの手段を列挙しているデバイスの請求項において、これらの手段のいくつかは、１つの同じハードウェアのアイテムによって具現化されてよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、それらの手段の組合せを有利に使用することができないことを示すものではない。
【図１】
2021516902.tif 000035
【図２】
2021516902.tif 000036
【図３Ａ】
2021516902.tif 000037
【図３Ｂ】
2021516902.tif 000038
【図３Ｃ】
2021516902.tif 000039
【図３Ｄ】
2021516902.tif 000040
【図４】
2021516902.tif 000041
【図５】
2021516902.tif 000042
【図６】
2021516902.tif 000043
【図７】
2021516902.tif 000044
【図８】
2021516902.tif 000045
【国際調査報告】
2021516902.tif 000046
2021516902.tif 000047
2021516902.tif 000048