(57)【要約】  コンピュータにより実施される方法が提供され得る。当該方法は、例えばビットコインネットワークのようなブロックチェーンネットワークを用いて実装されてよい。コンピュータにより実施される方法は、ｉ）ノードにより、グループメンバーになるために公開グループアドレスへのトークンの転送を通じてグループに参加するステップであって、前記グループは、前記ノードが秘密鍵シェアを制御する閾値署名方式に関連付けられ、トークンの前記転送は、proof−of−workブロックチェーンネットワーク上で行われる、ステップと、ｉｉ）チャレンジャーによる作業成果のチャレンジに応答して、前記ノードにより、前記グループの他のノードと協力して、提案者の該作業成果の正しさに関する分散型総意を達成するステップであって、前記チャレンジは要求者により行われる要求に応答する、ステップと、を含み、前記分散型総意を達成するステップは、ａ）ゴーストチェーンを展開して、前記チャレンジを解決する前記分散型総意を達成するステップであって、前記ゴーストチェーンは、前記ゴーストチェーンのマイナーが前記グループのメンバーであるproof−of−stakeブロックチェーンである、ステップと、ｂ）前記チャレンジの解決により、前記ゴーストチェーンを終了するステップと、を含む。
2020517134.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、
ノードにより、グループメンバーになるために公開グループアドレスへのトークンの転送を通じてグループに参加するステップであって、前記グループは、前記ノードが秘密鍵シェアを制御する閾値署名方式に関連付けられ、トークンの前記転送は、proof−of−workブロックチェーンネットワーク上で行われる、ステップと、
チャレンジャーによる作業成果のチャレンジに応答して、前記ノードにより、前記グループの他のノードと協力して、提案者の該作業成果の正しさに関する分散型総意を達成するステップであって、前記チャレンジは要求者により行われる要求に応答する、ステップと、
を含み、前記分散型総意を達成するステップは、
ゴーストチェーンを展開して、前記チャレンジを解決する前記分散型総意を達成するステップであって、前記ゴーストチェーンは、前記ゴーストチェーンのマイナーが前記グループのメンバーであるproof−of−stakeブロックチェーンである、ステップと、
前記チャレンジの解決により、前記ゴーストチェーンを終了するステップと、
を含む、コンピュータにより実施される方法。
【請求項２】
前記グループの他のノードと協力してトランザクションを構成するステップであって、前記トランザクションは、トークンを前記グループへ転送し、インプットとして報奨金及び提案者デポジットを有し、アウトプットとして前記報奨金、前記提案者デポジット、及びチャレンジャーデポジットを有する、ステップと、
前記チャレンジャーデポジットをインプットとして追加するために、前記トランザクションを前記チャレンジャーに提供するステップと、
を更に含み、
前記報奨金、提案者デポジット、及びチャレンジャーデポジットはトークンである、請求項１に記載のコンピュータにより実施される方法。
【請求項３】
前記報奨金及び提案者デポジットは、前記トランザクションの構成前に、前記グループの排他的制御下に置かれる、請求項２に記載のコンピュータにより実施される方法。
【請求項４】
前記報奨金及び提案者デポジットは、前記提案者による前記要求に対する解の引き渡しに続く時間期間内で前記チャレンジが検出されると、前記グループの制御下に置かれる、請求項３に記載のコンピュータにより実施される方法。
【請求項５】
前記チャレンジが成功すると、前記グループの他のノードと協力するステップであって、
少なくとも前記チャレンジャーデポジットを前記チャレンジャーへ転送し、
前記提案者デポジットをマイニングされたブロックの絶対数に比例して前記ゴーストチェーンのマイナーに分配する、
ステップを更に含む請求項２乃至４のいずれか一項に記載のコンピュータにより実施される方法。
【請求項６】
前記提案者の前記作業成果が有効であると決定された場合に、前記グループの他のノードと協力するステップであって、
前記報奨金及び前記提案者デポジットを前記提案者へ転送し、
前記チャレンジャーデポジットをマイニングされたブロックの絶対数に比例して前記ゴーストチェーンのマイナーに分配する、
ステップを更に含む請求項２乃至４のいずれか一項に記載のコンピュータにより実施される方法。
【請求項７】
前記転送は、前記閾値署名方式の下で必要な少なくとも閾数の秘密鍵シェアが有効署名を生成するために使用されるまで、前記秘密鍵シェアを使用する前記ノードにより、他のノードがそれぞれの秘密鍵シェアに基づき部分署名を追加したトランザクションに、部分署名を追加することにより実行される、請求項５又は６に記載のコンピュータにより実施される方法。
【請求項８】
前記ゴーストチェーンを展開して、前記チャレンジを解決するステップは、
前記提案者及びチャレンジャーから証拠を受信し、前記チャレンジを受信した証拠に基づき解くステップを含む、請求項１乃至７のいずれか一項に記載のコンピュータにより実施される方法。
【請求項９】
前記受信した証拠は、最終解又は中間結果のうちの一方又は両方を含む、請求項８に記載のコンピュータにより実施される方法。
【請求項１０】
前記ゴーストチェーンを展開して、前記チャレンジを解決するステップは、
前記ゴーストチェーン上の前記要求に関連付けられたタスクを実行して、正しい解を決定するステップを含む、請求項１乃至９のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１１】
前記ゴーストチェーンを展開して、前記チャレンジを解決するステップは、
前記ゴーストチェーン上の前記タスクの一部を実行して、前記提案者又は前記チャレンジャーのうちの一方が前記要求に関連付けられたタスクの中間ステップで過ちを犯したことを決定するステップを含む、請求項１乃至１０のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１２】
前記ゴーストチェーンを終了するステップは、前記分散型総意に関連する情報を前記proof−of−workブロックチェーンネットワークへ転送するステップを含む、請求項１乃至１１のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１３】
前記ゴーストチェーンを終了するステップは、最終トランザクションの署名の間に生成されたブロックに対するマイニング料金手数料のレコードを含む最終ブロックを構成するステップを含む、請求項１乃至１２のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１４】
実行されると、請求項１乃至１３のいずれか一項に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含むコンピュータ可読記憶媒体。
【請求項１５】
電子装置であって、
インタフェース装置と、
前記インタフェース装置に結合されたプロセッサと、
前記プロセッサに結合されたメモリであって、前記メモリは、実行されると、請求項１乃至１３のいずれか一項に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能命令を格納している、メモリと、
を含む電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して分散システムに関し、特に、分散システムにおけるブロックチェーントランザクションの信頼性を向上することへの適用を有する分散型総意のためのシステムに関する。本発明は、特に、限定ではないが、計算交換（computation  exchange）における計算の信頼性を向上する使用に適する。
【背景技術】
【０００２】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、限定ではないが、ブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。
【０００３】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳である。また、ブロックはトランザクション及び他の情報により構成される。ビットコインの場合には、各トランザクションは、ブロックチェーンシステム内で参加者間のトークンの制御の転送を符号化するデータ構造であり、少なくとも１つのインプット及び少なくとも１つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【０００４】
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。幾つかのネットワークノードは、マイナーとしての機能を果たし、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。例えば、ノードにインストールされたソフトウェアクライアントは、参照するトランザクション及び未使用トランザクションアウトプット（unspent  transaction  outputs：UTXO）に対して、この検証作業を実行する。検証は、そのロック及びアンロックスクリプトを実行することにより実行されてよい。ロック及びアンロックスクリプトの実行が真と評価した場合、及び（充分なマイニング料金の包含のような）特定の他の条件が満たされた場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、ｉ）トランザクションを受信したノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ｉｉ）マイナーにより構築された新しいブロックに追加し、ｉｉｉ）マイニングされ、つまり過去のトランザクションの公開台帳に追加されなければならない。トランザクションは、充分な数のブロックがブロックチェーンに追加されて、トランザクションが事実上不可逆にされると、確認されたと見なされる。
【０００５】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、ビットコインの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及びプロセスのために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点（例えば、永久的、イベントの耐タンパレコード、分散プロセス、等）を利用できる。
【発明の概要】
【０００６】
幾つかのこのようなソリューションでは、分散型総意が達成されてよい。例えば、多くの伝統的支払システムと異なり、ブロックチェーンは、非常に不変であり、多くの場合匿名であり得る。ブロックチェーン技術の不変且つ主として匿名である特性は、ユーザを不正行為から保護するとき、多くの技術的課題を提示する。例えば、トランザクションを含むブロック上に構築された多数のブロックは、該トランザクションを実質的に不可逆にするので、返金は多くの場合利用可能ではなく、トランザクションの完全性を維持するために新しい技術的システムが必要とされる。このような課題は、また、ブロックチェーン技術の非集中型の信頼できない特性により困難である。つまり、トランザクションの完全性を保証する中央パーティが存在せず、代わりに、トランザクションの完全性は技術的手段を通じて達成される。したがって、ブロックチェーン技術にとって、例えばデジタル総意を利用することを通じるような、トランザクションの信頼性を向上することが望ましい。
【０００７】
信頼性の課題は、時には計算市場（computation  marketplace）と呼ばれる計算交換に存在し得る。計算市場は、費用の掛かる計算のオフチェーン実行を可能にするサービスである。このような交換は、ネットワーク内のノードが、アルゴリズムの実行を別のリモートノードにアウトソースすることを可能にする。アルゴリズムの結果は、次に、該アルゴリズムの動作をアウトソースしたノードに報告され戻される。結果を受信するノードは、結果が信頼できるか否かが分からないことがある。受信ノードが、答えが正しいか否かを決定するためには、それらは、アルゴリズムをそれら自身で実行する必要があり、これはアウトソースの目的を無に帰す。したがって、ブロックチェーン技術において、計算交換の結果の信頼性を向上することが望ましい。
【０００８】
したがって、上述の態様のうちの１つ以上において、ブロックチェーン技術を向上する改良された方法及び装置を提供することが望ましい。
【０００９】
したがって、本発明によると、添付の請求の範囲に定められるような方法が提供される。
【００１０】
したがって、本発明によると、コンピュータにより実施される方法が提供され得る。コンピュータにより実施される方法は、ｉ）ノードにより、グループメンバーになるために公開グループアドレスへのトークンの転送を通じてグループに参加するステップであって、前記グループは、前記ノードが秘密鍵シェアを制御する閾値署名方式に関連付けられ、トークンの前記転送は、proof−of−workブロックチェーンネットワーク上で行われる、ステップと、ｉｉ）チャレンジャーによる作業成果のチャレンジに応答して、前記ノードにより、前記グループの他のノードと協力して、提案者の該作業成果の正しさに関する分散型総意を達成するステップであって、前記チャレンジは要求者により行われる要求に応答する、ステップと、を含み、前記分散型総意を達成するステップは、ａ）ゴーストチェーンを展開して、前記チャレンジを解決する前記分散型総意を達成するステップであって、前記ゴーストチェーンは、前記ゴーストチェーンのマイナーが前記グループのメンバーであるproof−of−stakeブロックチェーンである、ステップと、ｂ）前記チャレンジの解決により、前記ゴーストチェーンを終了するステップと、を含む。
【００１１】
好都合なことに、この方法では、分散型総意がブロックチェーンネットワークのノード間で達成され得る。ゴーストチェーンを用いてこのような分散型総意を達成することは、proof−of−workブロックチェーンを用いて達成される総意に比べてより効率的であり得る。
【００１２】
ゴーストチェーンは、一時的ブロックチェーンであってよい。伝統的ブロックチェーンと対照的に、ゴーストチェーンは、実行又は１つ以上の基準、目標、又は指定目的を満たすことにより、終了し、消失し及び／又は失効するよう構成されてよい。つまり、ゴーストチェーンは、その目的が達成されると存在することを止める単一目的のブロックチェーンであってよい。ゴーストチェーンは、ゴーストチェーンがその目的、基準又は目標のために展開され又は生成されるときにのみ生成され得る起源ブロックと呼ばれてよい第１ブロックを含んでよい。
【００１３】
幾つかの実装では、コンピュータにより実施される方法が提供される。当該方法は、ｉ）ノードにより、グループメンバーになるために公開グループアドレスへのデジタルアセットのデポジットを通じてグループに参加するステップであって、前記グループは、前記ノードが秘密鍵シェアを制御する閾値署名方式に関連付けられ、デジタルアセットの前記転送は、proof−of−workブロックチェーンネットワーク上で行われる、ステップと、ｉｉ）前記ノードにより、前記グループの他のノードと協力して、ａ）要求者により行われる要求に応答して、提案者の作業成果に対する、チャレンジャーによるチャレンジを検出し、ｂ）前記チャレンジを解決するためにゴーストチェーンを展開し、前記ゴーストチェーンは、前記ゴーストチェーンのマイナーが前記グループのメンバーであるproof−of−stakeブロックチェーンであり、ｃ）前記チャレンジの解決により前記ゴーストチェーンを終了する、ステップと、を含む。
【００１４】
コンピュータにより実施される方法は、前記グループの他のノードと協力してトランザクションを構成するステップであって、前記トランザクションは、前記グループに支払可能であり（つまり、トークンを前記グループへ転送する）、インプットとして報奨金及び提案者デポジットを有し、アウトプットとして前記報奨金、前記提案者デポジット、及びチャレンジャーデポジットを有する、ステップと、前記チャレンジャーデポジットをインプットとして追加するために、前記トランザクションを前記チャレンジャーに提供するステップと、を更に含む。報奨金、提案者デポジット、及びチャレンジャーデポジットはトークンである。報奨金及び提案者デポジットは、トランザクションの構成前にグループの排他的制御下に置かれてよい。例えば、前記報奨金及び提案者デポジットは、前記提案者による前記要求に対する解の引き渡しに続く時間期間内で前記チャレンジが検出されると、前記グループの排他的制御下に置かれてよい。
【００１５】
幾つかの実装では、コンピュータにより実施される方法は、前記チャレンジが成功すると、前記グループの他のノードと協力するステップであって、ｉ）少なくとも前記チャレンジャーデポジットを前記チャレンジャーへ転送し、ｉｉ）前記提案者デポジットをマイニングされたブロックの絶対数に比例して前記ゴーストチェーンのマイナーに分配する、ステップを更に含んでよい。
【００１６】
幾つかの実装では、コンピュータにより実施される方法は、前記提案者の作業成果が有効であると決定された場合、ｉ）前記報奨金及び前記提案者デポジットを前記提案者へ転送し、ｉｉ）前記チャレンジャーデポジットをマイニングされたブロックの絶対数に比例して前記ゴーストチェーンのマイナーに分配する、ステップを更に含んでよい。
【００１７】
コンピュータにより実施される方法の幾つかの実装では、前記転送は、前記閾値署名方式の下で必要な少なくとも閾数の秘密鍵シェアが有効署名を生成するために使用されるまで、前記秘密鍵シェアを使用する前記ノードにより、他のノードがそれぞれの秘密鍵シェアに基づき部分署名を追加したトランザクションに、部分署名を追加することにより実行されてよい。
【００１８】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを展開して、前記チャレンジを解決するステップは、前記提案者及びチャレンジャーから証拠を受信し、前記チャレンジを受信した証拠に基づき解くステップを含んでよい。受信した証拠は、最終解又は中間結果のうちの一方又は両方を含んでよい。
【００１９】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを展開して、前記チャレンジを解決するステップは、前記ゴーストチェーン上の前記要求に関連付けられたタスクを実行して、正しい解を決定するステップを含んでよい。
【００２０】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを展開して、前記チャレンジを解決するステップは、前記ゴーストチェーン上の前記タスクの一部を実行して、前記提案者又は前記チャレンジャーのうちの一方が前記要求に関連付けられたタスクの中間ステップで過ちを犯したことを決定するステップを含んでよい。
【００２１】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを終了するステップは、前記分散型総意に関連する情報（つまり、チャレンジの解）をproof−of−workブロックチェーンネットワークへ転送するステップを含んでよい。
【００２２】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを終了するステップは、最終トランザクションの署名の間に生成されたブロックに対するマイニング料金手数料のレコードを含む最終ブロックを構成するステップを含んでよい。
【００２３】
したがって、本発明によると、コンピュータにより実施される方法が提供され得る。コンピュータにより実施される方法は、ｉ）ノードにより、グループメンバーになるために公開グループアドレスへのトークンの転送を通じてグループに参加するステップであって、前記グループは、前記ノードが秘密鍵シェアを制御する閾値署名方式に関連付けられ、トークンの前記転送は、proof−of−workブロックチェーンネットワーク上で行われる、ステップと、ｉｉ）チャレンジャーによる作業成果のチャレンジに応答して、前記ノードにより、前記グループの他のノードと協力して、提案者の該作業成果の正しさに関する分散型総意を達成するステップであって、前記チャレンジは要求者により行われる要求に応答する、ステップと、を含み、前記分散型総意を達成するステップは、ａ）ゴーストチェーンを展開して、前記チャレンジを解決する前記分散型総意を達成するステップであって、前記ゴーストチェーンは、前記ゴーストチェーンのマイナーが前記グループのメンバーであるproof−of−stakeブロックチェーンである、ステップと、ｂ）前記チャレンジの解決により、前記ゴーストチェーンを終了するステップと、を含む。
【００２４】
好都合なことに、この方法では、分散型総意がブロックチェーンネットワークのノード間で達成され得る。ゴーストチェーンを用いてこのような分散型総意を達成することは、proof−of−workブロックチェーンを用いて達成される総意に比べてより効率的であり得る。
【００２５】
ゴーストチェーンは、一時的ブロックチェーンであってよい。伝統的ブロックチェーンと対照的に、ゴーストチェーンは、実行又は１つ以上の基準、目標、又は指定目的を満たすことにより、終了し、消失し及び／又は失効するよう構成されてよい。つまり、ゴーストチェーンは、その目的が達成されると存在することを止める単一目的のブロックチェーンであってよい。ゴーストチェーンは、ゴーストチェーンがその目的、基準又は目標のために展開され又は生成されるときにのみ生成され得る起源ブロックと呼ばれてよい第１ブロックを含んでよい。
【００２６】
幾つかの実装では、コンピュータにより実施される方法が提供される。当該方法は、ｉ）ノードにより、グループメンバーになるために公開グループアドレスへのデジタルアセットのデポジットを通じてグループに参加するステップであって、前記グループは、前記ノードが秘密鍵シェアを制御する閾値署名方式に関連付けられ、デジタルアセットの前記転送は、proof−of−workブロックチェーンネットワーク上で行われる、ステップと、ｉｉ）前記ノードにより、前記グループの他のノードと協力して、ａ）要求者により行われる要求に応答して、提案者の作業成果に対する、チャレンジャーによるチャレンジを検出し、ｂ）前記チャレンジを解決するためにゴーストチェーンを展開し、前記ゴーストチェーンは、前記ゴーストチェーンのマイナーが前記グループのメンバーであるproof−of−stakeブロックチェーンであり、ｃ）前記チャレンジの解決により前記ゴーストチェーンを終了する、ステップと、を含む。
【００２７】
コンピュータにより実施される方法は、前記グループの他のノードと協力してトランザクションを構成するステップであって、前記トランザクションは、前記グループに支払可能であり（つまり、トークンを前記グループへ転送する）、インプットとして報奨金及び提案者デポジットを有し、アウトプットとして前記報奨金、前記提案者デポジット、及びチャレンジャーデポジットを有する、ステップと、前記チャレンジャーデポジットをインプットとして追加するために、前記トランザクションを前記チャレンジャーに提供するステップと、を更に含む。報奨金、提案者デポジット、及びチャレンジャーデポジットはトークンである。報奨金及び提案者デポジットは、トランザクションの構成前にグループの排他的制御下に置かれてよい。例えば、前記報奨金及び提案者デポジットは、前記提案者による前記要求に対する解の引き渡しに続く時間期間内で前記チャレンジが検出されると、前記グループの排他的制御下に置かれてよい。
【００２８】
幾つかの実装では、コンピュータにより実施される方法は、前記チャレンジが成功すると、前記グループの他のノードと協力するステップであって、ｉ）少なくとも前記チャレンジャーデポジットを前記チャレンジャーへ転送し、ｉｉ）前記提案者デポジットをマイニングされたブロックの絶対数に比例して前記ゴーストチェーンのマイナーに分配する、ステップを更に含んでよい。
【００２９】
幾つかの実装では、コンピュータにより実施される方法は、前記提案者の作業成果が有効であると決定された場合、ｉ）前記報奨金及び前記提案者デポジットを前記提案者へ転送し、ｉｉ）前記チャレンジャーデポジットをマイニングされたブロックの絶対数に比例して前記ゴーストチェーンのマイナーに分配する、ステップを更に含んでよい。
【００３０】
コンピュータにより実施される方法の幾つかの実装では、前記転送は、前記閾値署名方式の下で必要な少なくとも閾数の秘密鍵シェアが有効署名を生成するために使用されるまで、前記秘密鍵シェアを使用する前記ノードにより、他のノードがそれぞれの秘密鍵シェアに基づき部分署名を追加したトランザクションに、部分署名を追加することにより実行されてよい。
【００３１】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを展開して、前記チャレンジを解決するステップは、前記提案者及びチャレンジャーから証拠を受信し、前記チャレンジを受信した証拠に基づき解くステップを含んでよい。受信した証拠は、最終解又は中間結果のうちの一方又は両方を含んでよい。
【００３２】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを展開して、前記チャレンジを解決するステップは、前記ゴーストチェーン上の前記要求に関連付けられたタスクを実行して、正しい解を決定するステップを含んでよい。
【００３３】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを展開して、前記チャレンジを解決するステップは、前記ゴーストチェーン上の前記タスクの一部を実行して、前記提案者又は前記チャレンジャーのうちの一方が前記要求に関連付けられたタスクの中間ステップで過ちを犯したことを決定するステップを含んでよい。
【００３４】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを終了するステップは、前記分散型総意に関連する情報（つまり、チャレンジの解）をproof−of−workブロックチェーンネットワークへ転送するステップを含んでよい。
【００３５】
コンピュータにより実施される方法の幾つかの実装では、前記ゴーストチェーンを終了するステップは、最終トランザクションの署名の間に生成されたブロックに対するマイニング料金手数料のレコードを含む最終ブロックを構成するステップを含んでよい。
【００３６】
本発明によると、電子装置が提供され得る。電子装置は、インタフェース装置と、前記インタフェース装置に結合されたプロセッサと、前記プロセッサに結合されたメモリとを含む。前記メモリは、実行されると、本願明細書に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能を格納している。
【００３７】
本発明によると、コンピュータ可読記憶媒体が提供され得る。コンピュータ可読記憶媒体は、実行されると、本願明細書に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含む。
【００３８】
本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。
【図面の簡単な説明】
【００３９】
【図１】例示的なブロックチェーンネットワークのブロック図を示す。
【図２】ブロックチェーンネットワーク内のノードとして機能し得る例示的な電子装置のブロック図を示す。
【図３】議会を開始する例示的な方法のフローチャートである。
【図４】議会に参加する例示的な方法のフローチャートである。
【図５】トークンを没収する例示的な方法のフローチャートである。
【図６】鍵シェアを再分配する例示的な方法のフローチャートである。
【図７】鍵シェアを再分配する更に例示的な方法のフローチャートである。
【図８】トークンの議会への転送の前に復帰する例示的な方法のフローチャートである。
【図９】例示的なブロックチェーン及び例示的なゴーストチェーンのブロック図である。
【図１０】タスクの完了を要求する例示的な要求者の方法のフローチャートである。
【図１１】タスクへの解を提案する例示的な提案者の方法のフローチャートである。
【図１２】タスクへの解をチャレンジする例示的なチャレンジャーの方法のフローチャートである。
【図１３】タスクへの解のチャレンジに応答して協力するノード間で総意に達する例示的な方法のフローチャートである。
【発明を実施するための形態】
【００４０】
＜ブロックチェーンネットワーク＞
先ず、図１を参照する。図１は、ブロック図の形式で、ブロックチェーンに関連付けられた例示的なブロックチェーンネットワーク１００を示す。ブロックチェーンネットワークは、他のメンバーからの招待無しに又は承認無しに誰でも参加し得るピアツーピア開放型会員制ネットワークである、公開ブロックチェーンネットワークであってよい。ブロックチェーンプロトコルの下でブロックチェーンネットワーク１００が動作し、該ブロックチェーンプロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーンネットワーク１００に参加してよい。このような分散型電子装置は、ノード１０２として参照され得る。ブロックチェーンプロトコルは、例えばビットコインプロトコルであってよい。
【００４１】
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク１００のノード１０２を形成する電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバのようなコンピュータ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は他の電子装置を含む様々な種類であってよい。
【００４２】
ブロックチェーンネットワーク１００のノード１０２は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いに結合される。このような通信は、ブロックチェーンに関連付けられたプロトコルに従う。例えば、ブロックチェーンがビットコインブロックチェーンである場合、ビットコインプロトコルが使用されてよい。
【００４３】
ノード１０２は、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持する。したがって、グローバル台帳は分散台帳である。各ノード１０２は、グローバル台帳の完全コピー又は部分コピーを格納してよい。proof−of−workによりセキュアにされるブロックチェーンの場合、グローバル台帳に影響を与えるノード１０２によるトランザクションは、他のノード１０２により検証される。その結果、グローバル台帳の有効性が維持される。ブロックチェーンがproof−of−workに基づくブロックチェーンであるとき、ブロックも、ブロックと共に提出されるproof−of−workをチェックすることにより検証される。
【００４４】
ノード１０２の少なくとも幾つかは、ブロックチェーンネットワーク１００のマイナー１０４として動作する。図１のブロックチェーンネットワーク１００は、ブロックチェーン上のトランザクションを促進するために、マイナー１０４が費用の掛かる計算を実行するproof−of−workブロックチェーンである。例えば、proof−of−workブロックチェーンは、マイナーが暗号化問題を解くことを要求し得る。ビットコインでは、マイナー１０４がノンスを発見する。その結果、ブロックヘッダは、SHA−２５６により、現在の採掘難易度（difficultly）により定められた値より小さい数にハッシュされる。proof−of−workアルゴリズムのために必要なハッシュ能力は、特定数のブロックがその上でマイニングされた後に、トランザクションが事実上不可逆であると見なされることを意味する。暗号化問題を解くマイナー１０４は、ブロックチェーンの新しいブロックを生成し、新しいブロックを他のノード１０２にブロードキャストする。他のノード１０２は、ブロックがブロックチェーンに追加されるべきであると受け入れる前に、マイナー１０４が実際に暗号化問題を解き、したがって充分なproof−of−workを立証したことを検証する。ブロックは、ノード１０２の総意により、ブロックチェーンに（つまり分散グローバル台帳に）追加される。
【００４５】
マイナー１０４により生成されたブロックは、ノード１０２によりブロックチェーンにブロードキャストされているトランザクションを含む。例えば、ブロックは、ノード１０２のうちの１つに関連付けられたアドレスからノード１０２のうちの別のものに関連付けられたアドレスへのトランザクションを含んでよい。このように、ブロックは、あるアドレスから別のアドレスへのトランザクションのレコードとして機能する。トランザクションがブロックに含まれることを要求したパーティは、彼らが転送を開始すること（例えば、ビットコインの場合には、ビットコインを使用すること）を認可されていることを、彼らの公開鍵に対応する秘密鍵を用いて要求に署名することにより、証明する。要求が有効に署名された場合のみ、転送はブロックに追加されてよい。
【００４６】
ビットコインの場合、公開鍵とアドレスとの間には１対１対応がある。つまり、各公開鍵は単一のアドレスに関連付けられる。したがって、本願明細書でトークンを公開鍵へ又は公開鍵から転送する（例えば、公開鍵に支払う）、及びトークンを公開鍵に関連付けられたアドレスへ又は該アドレスから転送するという言及は、共通の動作を表す。
【００４７】
ノード１０２のうちの幾つかは、マイナーとして動作しなくてよく、代わりに検証ノードとして参加してよい。トランザクションの検証は、署名をチェックすること、有効UTXOへの参照を確認すること、等に関連してよい。
【００４８】
図１の例は、５個のノード１０２を含み、そのうちの３個はマイナー１０４として参加している。実際には、ノード１０２又はマイナー１０４の数は異なってよい。多くのブロックチェーンネットワークでは、ノード１０２及びマイナー１０４の数は、図１に示した数より遙かに多くてよい。
【００４９】
後述のように、種々のノード１０２が、協力して、本願明細書で議会（congress）１１０と呼ばれるグループを形成する。図示の例では、３個のノード１０２が、議会１１０に参加しているように示される。しかしながら、議会１１０のメンバーの実際の数は、遙かに多くてよい。
【００５０】
議会１１０は、充分な掛け金（stake）を議会１１０に関連付けられたプールに提出することで任意のノード１０２により参加されてよい開放型メンバーシップグループである。例えば、ノードは、１つ以上のトークン又はデジタルアセットの、議会１１０に関連付けられたアカウントへの転送を通じて議会に参加してよい。議会に参加するノード１０２は、マイニング及び非マイニングノードの両方を含むブロックチェーンネットワーク内の任意のノードであってよい。議会の少なくとも幾つかの適用では、議会メンバーとして動作するノードは、彼らが完全なブロックチェーンをダウンロードする（が、必ずしも保持しない）という意味で、ブロックチェーンを監視する。
【００５１】
議会１１０に参加し、退去し、及び加入する技術は、以下に詳細に議論される。
【００５２】
以下に更に詳述するように、議会（congress）のメンバーは一時的ゴーストチェーンネットワーク１２０を形成してよい。ゴーストチェーン第１ブロックチェーンネットワークは、ゴーストチェーンと呼ばれる分散台帳を生成し維持する。ゴーストチェーンネットワーク１２０は、信頼性を検証するための又は目的解へのチャレンジの発生に応答して特定目的解が正しいか否かに関する分散型総意に達するためのトランザクションの間、展開されてよい。例えば、ゴーストチェーンネットワーク１２０は、ブロックチェーンネットワーク１００のノード１０２により提出された作業成果であってよい、プロセッサの生成した作業成果の完全性を検証するために展開されてよい。例えば、ゴーストチェーンネットワーク１２０は、ブロックチェーンネットワーク１００上で生成された結果の正しさに関する分散型総意に達するために展開されてよい。結果の正しさに関する議論は、あるノードのプロセッサの生成した作業成果の信頼性が別のノードによりチャレンジされた場合に存在し得る。
【００５３】
ゴーストチェーンは、一時的ブロックチェーンである。伝統的なブロックチェーンと異なり、ゴーストチェーンは、その目的が達成されると終了するよう構成される。つまり、ゴーストチェーンは、その目的が達成されると存在することを止める単一目的のブロックチェーンである。ゴーストチェーンは、ゴーストチェーンがその目的のために（例えば、プロセッサの生成した作業成果の完全性を検証するために）展開されるときにのみ生成される起源ブロックと呼ばれてよい第１ブロックを含む。
【００５４】
ブロックチェーンネットワークに関連付けられたブロックチェーンはproof−of−workブロックチェーンであるが、ゴーストチェーンはproof−of−stakeブロックチェーンである。proof−of−stakeに基づくゴーストチェーンネットワーク１２０は、総意を達成するための代替メカニズムを提供する。proof−of−stakeゴーストチェーンネットワークでは、ブロックチェーンは、proof−of−workではなくproof−of−stakeによりセキュアにされる。proof−of−stakeの下では、ゴーストチェーンのマイナー１２５は、トークンを転送する。ここで、トークンの保持は、セキュリティのようなproof−of−workブロックチェーンのデジタル台帳により表され、ブロックをマイニングすべきノードとして選択される確率は、転送されるトークンの量に比例する。proof−of−stakeブロックチェーンシステムは、proof−of−workブロックチェーン上でマイニングするために必要な計算上の費用及びエネルギを回避するために使用できる。さらに、proof−of−stakeブロックチェーンは、proof−of−workブロックチェーンより高い頻度及びより規則的なブロック生成を可能にできる。
【００５５】
複数のノード１０２は、ゴーストチェーンネットワーク１２０のマイナー１２５として機能する。ゴーストチェーンネットワーク１２０のマイナー１２５の少なくとも何人かは、ブロックチェーンネットワーク１００のマイナー１０４としての機能を果たさなくてよい。ゴーストチェーンネットワーク１２０はproof−of−stakeブロックチェーンネットワークなので、マイナー１２５は、マイナーとして含まれるためにトークンを転送する。特に、ゴーストチェーンのマイナー１２５は、ゴーストチェーンネットワーク１２０上でマイニングするために結合検証器セットを形成する。これらのマイナー１２５は、ブロックチェーンネットワーク１００に関連付けられた議会１１０のメンバーでもある。つまり、proof−of−workブロックチェーンネットワーク１００及びゴーストチェーンネットワーク１２０の両方の部分であるノード１０２は、ゴーストチェーンネットワーク１２０のマイナー１２５として、及びproof−of−workブロックチェーンネットワーク１００上に設立された議会１１０のメンバーとして動作する。これらのマイナー１２５は、後述する方法に従い、議会１１０に加わり、議会１１０に参加する。議会プールへのトークンの彼らの転送は、proof−of−workブロックチェーン内で行われる。つまり、議会メンバーは、proof−of−work第１ブロックチェーンネットワーク１００上の彼らの「掛け金（stake）」をプールに転送して、議会メンバーになり、結合検証器セットを形成することにより、彼らがゴーストチェーン上でマイナー１２５として動作できるようにする。議会１１０は、充分な掛け金を議会１１０に関連付けられたプールに提出することで任意のノードにより参加されてよい開放型メンバーシップグループである。
【００５６】
＜ノードとして動作する電子装置＞
図２は、ピアツーピアブロックチェーンネットワーク１００（図１）の中のノード１０２（図１）として機能し得る例示的な電子装置２００のコンポーネントを示すブロック図である。例示的な電子装置２００は、処理装置とも呼ばれてよい。電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は別の種類の形式を含む様々な形式をとってよい。
【００５７】
電子装置２００は、プロセッサ２１０、メモリ２２０、及びインタフェース装置２３０を含む。これらのコンポーネントは、互いに直接又は間接に結合されてよく、互いに通信してよい。例えば、プロセッサ２１０、メモリ２２０、及びインタフェース装置２３０は、バス２４０を介して互いに通信してよい。メモリ２２０は、本願明細書に記載の機能を実行するための機械可読命令及びデータを含むコンピュータソフトウェアプログラムを格納する。例えば、メモリは、プロセッサ２１０により実行されると、電子装置に本願明細書に記載の方法を実行させるプロセッサ実行可能命令を含んでよい。プロセッサ実行可能命令は、プロセッサ２１０により実行されると、電子装置に、ブロックチェーンネットワーク１００（図１）に関連付けられたプロトコルを実装させる命令を含んでよい。例えば、命令は、ビットコインプロトコルを実装するための命令を含んでよい。
【００５８】
メモリ２２０は、ブロックチェーンネットワーク１００（図１）のグローバル台帳又はその部分を格納してよい。つまり、メモリ２２０は、ブロックチェーンの全部のブロック、又は最近のブロックのようなブロックの部分、又は幾つかのブロックの中の情報の部分を格納してよい。さらに、ゴーストチェーンが展開される間、メモリ２２０はゴーストチェーン又はその一部を格納してよい。
【００５９】
メモリ２２０は図２では単一のブロックにより示されるが、実際には、電子装置２００は複数のメモリコンポーネントを含んでよい。メモリコンポーネントは、例えばＲＡＭ、ＨＤＤ、ＳＳＤ、フラッシュドライブ、等を含む様々な種類であってよい。異なる種類のメモリは、異なる目的に適してよい。さらに、メモリ２２０はプロセッサ２１０と別個に示されるが、プロセッサ２１０は内蔵メモリを含んでよい。
【００６０】
図２に示すように、プロセッサ２１０は、信頼できる実行環境（Trusted  Execution  Environment：TEE）２５０のようなセキュア領域を含んでよい。TEE２５０は、電子装置２００に、独立した実行、信頼できるアプリケーションの完全性及びアセット機密性のような追加セキュリティを提供する独立実行環境である。TEE２５０は、TEE２５０内部にロードされたコンピュータ命令及びデータが機密性及び完全性の観点で保護されることを保証する実行空間を提供する。TEE２５０は、鍵のような重要リソースの完全性及び機密性を保護するために使用されてよい。TEE２５０は、少なくとも部分的にハードウェアレベルで実装される。その結果、TEE２５０内で実行される命令及びデータは、電子装置２００の残りの部分からの及び電子装置の所有者のような外部パーティからのアクセス及び操作に対して保護される。TEE２５０内のデータ及び計算は、TEE２５０を含むノード１０２を作動させるパーティからセキュアにされる。
【００６１】
TEE２５０は、エンクレーブ（enclave、飛び地）をインスタンス化し、次にメモリページを１つずつ追加するよう動作し得ると同時に、累積的にハッシングする。同様の動作は、リモートマシン（これは、開発者の機械又は別の機械であってよい）上で実行されてもよい。その結果、リモートマシンは、期待されるハッシュを決定し及び格納する。enclaveの内容は、したがって、任意のリモートマシンにより検証でき、enclaveが承認済みアルゴリズムを実行していることを保証する。この検証は、ハッシュを比較することにより実行されてよい。enclaveは、完全に構築されると、固定化される。TEE２５０内でコードを実行すること、及びシークレットをコードに送信することが可能であるが、コードは変更できない。最終ハッシュは、アテステーション（attestation）鍵により署名されてよく、データ所有者が任意のシークレットをenclaveへ送信する前に、データ所有者がそれを検証するために利用可能にされてよい。
【００６２】
TEE２５０は、議会１１０（図１）により使用される議会公開鍵に関連付けられた秘密鍵シェアの機密性及び完全性を保護するために使用されてよい。例えば、TEE２５０は、秘密鍵シェアの生成及び記憶のために使用されてよい。TEE２５０は、いかなるメンバーもTEE２５０内に保持された秘密鍵シェア又は他の秘密鍵シェアに関する情報をメンバー間通信又はenclave間通信から直接取得できないことを保証するためのものである。プロトコルは、閾値のenclaveのセキュリティ侵害（compromise）に対してもロバストである。さらに、TEE２５０は、リモートアテステーションを可能にし得る。リモートアテステーションは、ノード１０２（図１）により、TEE２５０が確実であり且つ議会１１０により実施されるプロトコルのための承認済みコンピュータ実行可能命令を実行していることを他のノード１０２に証明するために使用されてよい。リモートアテステーションは、TEE２５０により、特定のコードピースを実行すること、及びenclaveの内部で、enclaveの内部アテステーション鍵により署名されたコードのハッシュを送信することにより、提供されてよい。
【００６３】
TEE２５０は、電子装置２００上で秘密鍵シェアを前に使用したことのある議会１１０のメンバーが議会を退去することを選択したときに、秘密鍵シェアのセキュアな削除を証明するために使用されてよい。電子装置２００は、TEE２５０内で提供されるリモートアテステーションプロトコルを通じて、他の議会メンバーに削除のアテステーションを伝達してよい。削除のアテステーションは、メンバーが議会のメンバーになると、議会プールへの彼らの前の転送を復帰することを許可される前に、要求されてよい。つまり、転送の復帰は、メンバーのenclave内に保持された秘密鍵シェアの削除のアテステーションを条件としてよい。
【００６４】
TEE２５０は、セキュアな乱数生成器を備えてよい。このセキュアな乱数生成器は、TEEのenclaveの内部にあり、秘密鍵、ランダムチャレンジ、又は他のランダムデータを生成するために使用できる。TEE２５０は、また、外部メモリからデータを読み出すよう構成されてよく、外部メモリにデータを書き込むよう構成されてよい。このようなデータは、enclave内部にのみ保持されたシークレット鍵により暗号化されてよい。
【００６５】
TEE２５０は、信頼できるプラットフォームモジュール（Trusted  Platform  Module：TPM）又はIntel  Software  Guard  Extensions（SGX）のような様々なプラットフォームを用いて実装されてよい。SGXは、例えば、リモートアテステーションをサポートする。リモートアテステーションは、enclaveが、署名されたステートメントを、クオート（quote）として知られるメンバーの与えられたハス（has）により特定のenclaveを実行しているプロセッサから取得することを可能にする。Intel  Attestation  Service（IAS）のような第三者アテステーションサービスは、これらの証明されたステートメントがSGX仕様に従う真正ＣＰＵから生じることを認定し得る。
【００６６】
電子装置２００は、ブロックチェーンネットワーク１００（図１）内のノード１０２（図１）として動作し、議会１１０（図１）に加わり又はその他の場合参加してよい。議会１１０は、トークン持参人のグループが、ブロックチェーンネットワーク１００（図１）によりサポートされるトークン又は掛け金若しくは価値をプールするとき、形成される。
【００６７】
＜議会及び閾値署名＞
議会１１０は、許可又は未許可グループであってよい。つまり、議会１１０は、ブロックチェーンネットワーク１００（図１）内の任意のノード１０２（図１）により（つまり、ブロックチェーン内の情報の少なくとも一部を監視し及び格納する任意のノードにより）参加されてよい。議会１１０に参加するために、ノード１０２は、１つ以上のトークンを議会１１０に関連付けられたプールへ（つまり、１つ以上のトークンに関連付けられた公開グループアドレスへ、ここで、１つ以上のトークンは議会の他のメンバーに関連付けられている）転送する。このプールは、議会プールと呼ばれることがある。例えば、ノード１０２は、このようなトークンを議会プールに関連付けられたアドレスへ（つまり、公開グループアドレスとも呼ばれることのある「議会アドレス」へ）転送することにより議会１１０に参加してよい。実際に、転送は、幾つかのデジタルアセットの議会プールへのデポジットとして動作する。トークンは、議会公開鍵と呼ばれる、単一の公開鍵を有するグループ閾値署名の制御下に置かれる。議会メンバーは、分配法で生成された秘密鍵シェアを保持する。保持されるシェアの数は、プールへ転送される量に比例してよい。
【００６８】
議会１１０により制御されるトークンは、議会アドレスへ転送された任意のトークンを含み、閾値署名方式の制御下に置かれる。閾値署名方式の下で、合計秘密鍵シェア保持が閾値を超えるメンバーのグループは、トークンを議会１１０の制御から離れて転送させることを可能にする有効署名を生成する必要がある。つまり、少なくとも閾数の秘密鍵シェアが、議会１１０により制御されるトークンの任意の外向き転送のための有効署名を生成するために使用されなければならない。
【００６９】
議会公開鍵は、秘密鍵シェアの見返りに議会１１０のメンバーにより議会プールに転送されたトークン、及び秘密鍵シェアを取得する以外の理由で預けられている、議会１１０のメンバー又は非メンバーにより議会プールに関連付けられたアドレスへ転送された（つまり、完全に、部分的に、又は条件付きで議会の制御下に置かれた）任意のトークンを妨げる（encumber）。非メンバー又はメンバーは、様々な理由で議会に関連付けられたアドレスにトークンを転送してよい。
【００７０】
同じ議会公開鍵はメンバー転送（つまり、秘密鍵シェアの見返りに議会メンバーにより提供されたトークン）及び他の目的でメンバー又は非メンバーにより提供されたトークンの両方を妨げ得るので、議会に関連付けられたアドレスへの少なくとも幾つかの転送は、トークンの種類を示すために特別に注意を与えられてよい。例えば、トークンを議会アドレスへ転送するトランザクションは、フラグ、識別子、又は生成されるトークンの特性を示す他の属性を含んでよい。例として、議会に参加する又は議会メンバーシップにおいて掛け金を高める目的のために生成されていないトークンを議会アドレスへ転送するトランザクションは、転送が別の目的で生成されていることを示すための特別な識別子を含んでよい。このような識別子は、秘密鍵生成を管理するとき、議会１１０に関連付けられたノード１０２により使用されてよい。特に、グループに参加する目的でトークンを転送するノード１０２は、（トークンの転送を行う結果として）議会１１０の秘密鍵シェアを割り当てられる。一方で、他の目的で（例えば、サイドチェーンへ転送するために）トークンを転送した他のノード１０２は、（議会公開鍵に対応する）議会の議会秘密鍵シェアを保持しなくてよい。
【００７１】
議会１１０は、所与のメンバーによりプールへ転送されたトークンの全部又は部分の没収（confiscation）の脅威を通じて協力動作が強制される自律グループとして動作してよい。非協力又は不正メンバーは、多数の正直メンバーによる協力プロトコルへの参加により、このようなトークンを没収させ得る。
【００７２】
さらに、議会メンバーが議会１１０を退去したいと望むとき、彼らは、彼らの転送の復帰を要求してよい（つまり、議会１１０がメンバーによりプールへ前に転送されたトークンを該メンバーの個人アドレスへ転送して戻すことを要求する）。実際には、このような議会メンバーは、デジタルアセットのプールへの彼ら前のデポジットの回収を要求してよい。しかしながら、資金の回収は、有効デジタル署名を生成するために必要な閾値を超える数の秘密鍵シェアが回収を認可するためにグループ（つまり、議会）のメンバーにより使用される場合にのみ、実行される。
【００７３】
議会１１０により実装される閾値署名方式は、様々な種類であってよい。閾値署名方式は、少なくとも閾数の秘密鍵シェアが有効署名を生成することに貢献している限り、ｎ個のパーティの間で署名を共有する能力を可能にする。閾値より少ない任意のサブセットは、有効署名を生成できない。特に、パーティの各々は秘密署名鍵のシェアを制御し、閾数の鍵シェアが、部分署名の結合を通じて有効署名を生成するために使用されなければならない。閾値より少ない鍵シェアの任意のサブセットは、部分署名の結合を通じて有効署名を生成できない。
【００７４】
閾値署名方式は、楕円曲線デジタル署名アルゴリズム（Elliptic  Curve  Digital  Signature  Algorithm：ECDSA）方式であってよい。例えば、ECDSA方式は、Ibrahim他により「A  robust  threshold  elliptic  curve  digital  signature  providing  a  new  verifiable  secret  sharing  scheme」、２００３  EIII  ４６th  Midwest  Symposium  on  Circuits  and  Systems,  １:２７６−２８０(２００３)で提案された種類であってよい。この閾値署名方式は、ｎ個の鍵シェア保持者のパーティからのｔ＋ｌ個の鍵シェアが秘密鍵を再構成するために必要とされる、楕円曲線暗号法に基づくアルゴリズムであるデジタル署名方式の拡張である。この方式は、秘密鍵を再構成する必要がなく、及び任意のパーティが彼らの鍵シェアを別のパーティに開示する必要がなく、有効署名を構成するために使用されてよい。
【００７５】
ｔ＋ｌ個の鍵シェアは、シークレットを再構成するのに充分なので、本技術による許可可能な敵対者の最大数はｔである。敵対者は、Ibrahim他のモデルでは、シークレットシェアを保持している、及びシークレットシェアへのアクセスを有するパーティを堕落させた（corrupted）エンティティである。敵対者は、様々な種類であり得る。例えば、Byzantine敵対者は、実際には不正情報を送信していながら、プロトコルに参加しているふりをし得る敵対者である。Ibrahimにより提案されたECDSA方式は、最大ｔ＜＝ｎ／４の不正敵対者に対してロバストである。このロバスト性は、ｔ＝＜ｎ／３まで上昇し得るが、より大きな複雑性というコストがかかる。
【００７６】
Ibrahim他のECDSA方式は、休止しているｔ＝＜ｎ／３の休止敵対者に対してロバストである。休止敵対者は、堕落したパーティがプロトコルに参加するのを防ぐ又は参加を途中で停止することができる。
【００７７】
このECDSA方式は、ノード１０２により不正又は非協力的パーティを識別するために使用され得る様々なメカニズムを含む。例えば、検証可能シークレット共有（verifiable  secret  sharing：VSS）は、Shamirのシークレット共有（Shamir’s  Secret  Sharing：SSS）のために必要な多項式を共有するために使用され得る。SSSは、シークレットが部分に分けられ、それ自体のユニークな部分への各々の参加に提供される、シークレット共有の形式である。これらの部分は、シークレットを再構成するために必要であり得る。VSSは、矛盾したシェアが異なるノード１０２に提供された場合、又はシェアが全ノードにブロードキャストされる隠れシェアと異なり、シェアがノードへ秘密に送信された場合、ノード１０２により、不正ノード１０２又はメンバーを識別するために使用されてよい。矛盾したシェアは、ノード１０２のうちのいずれかにより識別されてよい。シークレットの共有は、ノード１０２がそれらのシェアを矛盾しないとして検証することを可能にする補助情報を含むことにより、検証可能にされ得る。
【００７８】
不正シェアの個々のノードへの送信（つまり、ブロードキャストされる隠れシェアと異なるシェア）は、シェアの意図された受信ノードにより識別できる。ノードへ秘密に送信されている不正シェアの識別は、公然検証可能なシークレット共有（Publically  Verifiable  Secret  Sharing：PVSS）の技術を用いて公に検証可能にできる。このような技術は、PVSSが使用されず及び不正シェアが送信されるときに不正シェアの受信側がオフラインである若しくはネットワークの根本部分から切り離されている場合に起こり得る、不正送信者の識別において起こり得る遅延を回避し得る。
【００７９】
矛盾したシェアを異なるノードに提供するような不正行為は、悪意ある行為を阻止する議会１１０により解決され得る。例えば、ノード１０２（図１）が他のノード１０２により不正パーティとして識別されると、閾値（例えば、ｔ＋１）を超えるノード１０２のメンバー（つまり、議会メンバーに関連付けられたノード）は、不正パーティにペナルティを科すために協力してよい。例えば、ノード１０２は、不正パーティにより議会へ転送された（つまり預けられた）（トークン、又は他の掛け金若しくは価値のような）トークンに関連する措置を行ってよい。例えば、議会は、デジタル通貨、トークン、掛け金若しくは価値を使用不可アドレスへ転送することにより、それらを焼却（burn）してよい。或いは、議会は、不正パーティへのそれらの返却を認可することを拒否することにより、このようなトークンを没収してよい。不正を行うノードではないノード１０２は、不正を行うノードを排除するために協力することにより（例えば、鍵シェアを効果的に無効化することにより、例えば、ノードが議会プロトコルに参加するのを排除することにより、又は秘密鍵を再共有し及び不正を行うノードにシェアを割り当てないことにより）、不正行為を阻止してもよい。
【００８０】
上述のECDSA技術は、TEEの使用を通じて拡張されてよい。例えば、Ibrahim他に基づく閾値ECDSA署名技術は、ここではByzantine敵対者と呼ばれる強力な形式の敵対者を予期している。この種の敵対者は、勝手に振る舞うことがある。例えば、彼らは、署名処理に参加すること又は途中でパーティを停止することを拒否するだけでなく、誠実に参加するふりをして、不正情報を送信することもある。しかしながら、TEEを用い、及びシークレット秘密鍵シェアが格納されるTEEのenclave内で署名に使用するためのデータを生成することにより、enclaveが有意な数において危険に晒される可能性が非常に低いので、追加セキュリティが提供され得る。各TEEが１つより多くの鍵シェアに割り当てられる場合、例えば、起こり得る危険に晒されるTEEの数は、ｎが充分に大きいと仮定すると、敵対者に対するロバスト性の閾に近付かないことが無理なく期待され得る。これは、鍵シェアの合計数に対して少ない割合の不正敵対者に対して耐性がある場合、プロトコルがセキュアであることを可能にする。
【００８１】
例えば、全ノードがTEEを有する場合、enclave内に格納されたシークレットの取得は、TEEの製造者が堕落していないならば、ノードへの物理アクセスによってのみ、多大な努力及び費用によってのみ、達成され得る。このような製造者レベルの堕落は、管理可能であることが期待される。例えば、製造者が、多数の公開鍵が誠実なTEEに対応すると偽って主張しようとした場合、彼らは、秘密鍵シェアへの直接アクセスを獲得し、攻撃を始める可能性がある。しかしながら、このような攻撃は、製造者が他のノードからの支援を伴わずに有効署名を生成できるために、充分な数の鍵シェアを要求し得る。これは、非常に高価になり得る全部の掛け金の大部分を蓄積することを意味し得る。さらに、攻撃を実行することにより、保持している掛け金の価値の大部分が破壊され得る。
【００８２】
TEEが使用されるとき、「堕落したノード」に対するプロトコルのロバスト性を意図することが有用である。堕落したノードは、TEEの外部のハードウェアが間違いを含むが、TEEの完全性が危険に晒されないノードである。堕落したノードは、どんな情報をenclaveが受信し及び受信しないかについて制御を有してよい。特に、堕落したノードは、停止し、つまりプロトコルへの参加を控えてよい。プロトコルに提供される情報がenclave内に秘密に保持された秘密鍵により署名される必要のある場合（対応する公開鍵が、アテステーション中に認証された場合）、秘密鍵はenclave自体と同じくらい信頼できる。したがって、堕落したノードは、勝手な（認証された）情報をプロトコルに送信することができず、停止することにより、又は例えば古い情報を提供することにより誤って動作するようenclaveを欺くことを試みることにより、邪魔をしようとするだけである。次に、堕落したノードでは、成功した攻撃は、完全な署名を生成するのに充分な数の部分署名を収集することを必要とし得る。TEEにより、Ibrahim他のプロトコルは、２ｔ個の堕落したノードに対してロバストである。署名は、ｎ−２ｔ＞＝２ｔ＋１の場合に生成できるので、サイズ２ｔ＋１＜＝（ｎ＋１）／２の鍵シェアの任意の正規サブセットで充分である。したがって、TEEが使用されるとき、閾値署名方式の閾値は、堕落したノードが存在する場合に有効署名を生成するために、鍵シェアの５０％以上の数になるよう構成されてよい。
【００８３】
他の閾値署名方式が使用されてもよい。例えば、閾値署名方式は、Goldfeder他、「Securing  Bitcoin  Wallets  Via  a  New  DSA/ECDSA  threshold  signature  scheme」(２０１５)により提案された種類のECDSA閾値方式であってよい。このプロトコルはｔ＋ｌ個のパーティが有効署名を生成することを可能にする。したがって、敵対者が有効署名を生成するために制御しなければならない鍵シェアの数は、敵対者が秘密鍵を再構成するために所有しなければならない鍵シェアの数に等しい。この技術は、有効署名を生成するために全員の合意が必要な場合に効率的な方式を提供できる。大部分の一般的場合には、この方式は、任意の閾値についてｎ人のうちのｔ＋ｌ人のプレイヤの任意の可能なサブセットに対してプロトコル全体を繰り返す必要があるので、議会メンバーの数と共に指数関数的に増大する空間要件を課す。したがって、ｎ及びｔの両方の大きな値について、膨大な数の鍵シェアが格納される必要がある。このような記憶要件を軽減するために、標準的なビットコインのマルチシグネチャは、閾値署名と結合され得る。特に、トークンは、マルチシグネチャを用いてロックされ得る。その結果、各秘密鍵はシェアに分割される。この技術は、空間要件の観点で、大きな会議ほどより効率的にし得る。より小さなパーティサイズのうちの膨大な数の参加者に対して、複数レベルで、反復的方法で、方式を構成することにより、スケーリング特性も向上され得る。例えば、閾値署名方式は、Cohen他、「Efficient  Multiparty  Protocols  via  Log−Depth  Threshold  Formulae」(２０１３),  Advances  in  Cryptology−CRYPTO  ２０１３  pp１８５−２０２の技術と結合され得る。
【００８４】
非ECDSA署名方式を含む他の閾値方式が使用されてよい。例えば、Schnorr方式に基づく閾値方式は、ノード１０２により議会１１０を実装するために使用されてよい。
【００８５】
ブロックチェーンネットワーク１００（図１）内のノード１０２（図１）は、選択された閾値署名方式に基づき議会プロトコルを実装してよい。このようなノード１０２は、議会プロトコルを実装する、メモリ２２０（図２）に格納されたコンピュータ実行可能命令を含んでよい。このような命令は、プロセッサ２１０（図２）により実行されると、（図２を参照して記載した種類の電子装置２００のような）ノード１０２に、議会プロトコルの１つ以上の方法を実行させる。このような方法は、図４〜８及び１０の方法３００、４００、５００、６００、７００、８００、１０００の任意の１つ又は組み合わせを含んでよい。したがって、議会プロトコルは、図４〜８及び１０の方法３００、４００、５００、６００、７００、８００、１０００の１つ以上を含んでよい。方法は、他の議会メンバーに関連付けられた他のノードと協力して、ノードにより実行されてよい。
【００８６】
＜議会の開始＞
図３を参照すると、議会１１０を開始する方法３００が示される。方法３００は、議会１１０を設立するために、最初に信頼できるパーティにより実行されてよい。最初に信頼できるパーティに関連付けられたノード１０２が、方法３００を実行してよい。
【００８７】
方法３００は、動作３０２で、議会公開鍵を提供するステップを含む。議会公開鍵は、他のノードが議会に加わりたいと望む場合に議会公開鍵に支払うことができるように、他のノード１０２に提供されてよい。つまり、他のノードは、議会に加わるために、トークンを議会公開鍵に関連付けられたアドレスへ転送してよい。
【００８８】
方法３００を実行するノード１０２は、動作３０４で、１つ以上の条件が満たされるまで、公開鍵への支払を許可する。例えば、ノードは、決定した時間期間の間、又は決定したブロック数の間、公開鍵への支払を許可してよい。条件が満たされた後（例えば、この時間期間の終了又はブロック数のマイニングの後）、方法３００を実行するノード１０２は、動作３０６で、議会の初期メンバーを識別する。
【００８９】
議会の初期メンバーを構成するパーティが識別された後、動作３０７で、秘密鍵は、閾値署名方式に従い秘密鍵シェアに分割される。動作３０８で、秘密鍵シェアは、次に、方法３００を実行するノード１０２から識別されたパーティに分配される。秘密鍵シェアは、本願明細書に記載した種類であってよい閾値署名方式に関連付けられる。
【００９０】
動作３０８の間、議会メンバーとして識別されたノード１０２は、新しい秘密鍵シェア及び新しい公開鍵を生成するために協力する。最初に信頼できるパーティによりこのようなノードへ送信された元の鍵シェアは、議会プールの中の全部のトークンを、次に議会公開鍵になる新しい公開鍵へ送信するトランザクションに署名しブロードキャストするために使用されてよい。つまり、動作４０８の間、新しいグループ公開アドレスが確立され、議会の制御下にあるトークンはこの新しいアドレスに転送される。この新しいアドレスは、グループの新しいアドレスになり、議会公開鍵に関連付けられる。この転送が確認された後、議会は信頼できる動作ができない（trustlessly）。新しいグループ公開アドレスが形成され、議会１１０に加わることを望む他のノードから、又は上述のような他の目的で、該アドレスへとトークンの転送が将来受信される。議会メンバーは、今や議会に加入していると見なされ、これらのノードは、今や最初に信頼できるパーティの支援無しに動作できる。さらに、最初に信頼できるパーティは、もはや、議会の動作においていかなる役割も果たさない。
【００９１】
＜議会が開始された後に議会に加わる＞
図４を参照すると、図４は、議会に加わる方法４００を示す。図４の方法４００は、図３の方法３００と関連して動作してよいが、図４の方法４００は、図３の方法３００を実行するノードが動作するのと同じブロックチェーンネットワーク１００（図１）内で動作するノード１０２のうちの別のノードにより実行される。図４の方法４００は、動作４０２で、議会公開鍵を取得するステップを含む。議会公開鍵は、図３の方法３００を実行するノードのような、議会を開始するパーティから直接取得されてよい。或いは、議会公開鍵は、例えば、ブロックチェーンネットワーク１００（図１）の外部で動作する第三者システムを含む第三者から取得されてよい。例えば、議会公開鍵は、公衆インターネットを介してアクセス可能な公衆ウェブサーバから取得されてよい。
【００９２】
動作４０４で、方法４００を実行するノード１０２は、ノード１０２に関連付けられたプライベートアカウントから議会アドレス（つまり、議会公開鍵に関連付けられたアドレス）へのトークンのトランザクションをブロードキャストすることにより、議会公開鍵に支払う。特に、ノード１０２は、１つ以上のトークンを議会公開鍵に関連付けられた公開グループアドレスに転送するトランザクションをブロードキャストする。公開グループアドレスは議会プールのためのアドレスである。議会プールは、議会の他のメンバーに関連付けられた他のトークンを含む。したがって、動作４０４で、トランザクションは、マイナー１０４（図１）によりブロックに追加されると、トークンを、他のメンバーからのトークンを含む議会プールへ転送する。公開グループアドレスは、議会に加わりたいと望むパーティからの転送、及び議会に加わりたいと望まないパーティからの転送の両方を受信してよい。議会に加わりたいと望まないパーティは、トークンを議会プールへ転送する。その結果、トークンは、議会により利用される閾値署名方式を用いて議会による全体的、部分的、又は条件付き制御下に置かれてよい。
【００９３】
動作４０４におけるトランザクションは、トークンを転送するパーティが議会に加わりたいと望むこと及び転送がそのような目的で生成されていることを示すフラグ、識別子、又は他の属性を含んでよい。
【００９４】
トークンを議会プールへ転送した後に、動作４０６で、方法４００を実行するノード１０２は、秘密鍵シェアを受信する。次に、動作４０８で、ノード１０２は、プロトコルの単一のインスタンスを実行することにより、秘密鍵シェアを再生成する。秘密鍵シェアの生成は、ノード１０２のTEE内で実行されてよい。
【００９５】
動作４０８で、ノード１０２は、少なくとも閾値の秘密鍵シェアが議会の代わりにトランザクションのための有効署名を生成するために使用されなければならない閾値署名方式で使用されるべき秘密鍵シェアを生成する。秘密鍵シェアの他の保持者は、それぞれのトークンの公開グループアドレスへの転送により許可又は未許可に基づき議会に加わっている議会の他のメンバーである。
【００９６】
秘密鍵シェアを再生成するために、動作４０８で、既存議会メンバーは、鍵シェアを更新するよう協力してよい。例えば、ノード１０２は、定数項ゼロを有するｔ次のランダム多項式ｆ０ｎ＋１（ｘ）を生成してよい。ノード１０２は、次に、点ｆ０ｎ＋１（ｎ＋１）を計算し、これをそれらの秘密鍵シェアとして設定してよい。ノード１０２は、次に、この多項式ｆ０ｎ＋１（ｉ）上の点を既存議会メンバーの各々に分配してよい、ｉ＝１，．．．，ｎ。各既存議会メンバー（ｉ＝１，．．．，ｎ）は、次に、受信した値を彼らの既存秘密鍵シェアに加算して、新しい秘密鍵シェアを得る。ノード１０２は、今や全ての他のメンバーと等価な秘密鍵シェアを有し、対応する公開鍵は不変のままである。上述のように、閾値署名方式は、楕円曲線デジタル署名アルゴリズム又はSchnorr方式に基づく閾値方式を含む様々な種類であってよい。
【００９７】
秘密鍵シェアは、TEE２５０（図２）内で生成されてよく、ノード１０２にセキュアに格納されてよい。例えば、秘密鍵シェアは、TEE２５０に格納されてよい。
【００９８】
秘密鍵シェアがそれぞれのノードにより生成された後、前の議会公開鍵の制御下にある資金（例えば、元の議会公開鍵に関連付けられた公開グループアドレスに転送された資金）は、（閾値署名方式の下で有効署名を生成するのに充分な数のグループノードの協力を通じて）新しい秘密鍵シェアに関連付けられた新しい議会公開鍵に転送されてよい。
【００９９】
秘密鍵シェアは、動作４０８で生成された後、方法４００の動作４１０で使用されてよい。秘密鍵シェアは、メンバーによりブロードキャストされてよい公開グループアドレスからのトランザクションのために有効署名を協力して生成するために使用されてよい。つまり、秘密鍵シェアは、署名生成に貢献するために閾値署名方式で使用されてよい。閾値署名方式の下で、議会の閾数の秘密鍵シェアが、トークンを議会から離れて転送させることを可能にする有効署名を生成するために、それぞれのメンバーにより使用される必要がある。方法４００を実行するノード１０２は、秘密鍵シェアを記憶装置から読み出し、署名生成に貢献するために秘密鍵シェアを使用してよい。充分な数の他の議会メンバーも、署名生成に貢献するために彼らのそれぞれの秘密鍵を使用する場合、署名が生成され、有効な外部へのトランザクションがブロードキャストされてよい。ブロックチェーンネットワーク１００のマイナー１０４（図１）が、ブロックチェーンネットワーク１００内のノード１０２の総意によりブロックチェーンに追加されるマイニングされたブロックにトランザクションを追加し、ブロックが確認されると、外部へのトランザクションが完了する。この時点で、トランザクション内で提示されるトークンは、もはや議会の制御下になくてよい。つまり、このようなトークンは、もはや議会公開鍵により妨げられなくてよい。
【０１００】
動作４０８における秘密鍵シェアの使用は、ノード１０２のTEE内で実行されてよい。TEEは、秘密鍵シェアを保護する。その結果、システムの他の部分又はメンバー自身も、秘密鍵シェアのような、enclaveに格納されたいかなるデータにもアクセスできない。さらに、TEEは、メンバーが彼らの転送を戻すこと及び彼らの転送の復帰を受け取りたい場合、メンバーの転送が復帰される前に秘密鍵の削除を証明しなければならないので、秘密鍵のコピーを保持できないという点で秘密鍵を保護する。
【０１０１】
図４の方法４００は、初期ステップ段階の間に又は後に実行されてよい。つまり、方法４００は、初期鍵シェアが分配される前に（例えば、図３の方法３００の動作３０８の間に）又はその後に（例えば、以下に詳述する再バランスの間に）、実行されてよい。
【０１０２】
動作４１０におけるトランザクションは、トークンを議会プールに元々転送したパーティに、該トークンを転送して戻してよい。つまり、転送は、該パーティにトークンを返却してよい。転送は、デジタルアセットを他の場所へ転送してもよい。例えば、トークンは、第三者へ又は使用不可アドレスへ転送されてよい。
【０１０３】
＜トークンの没収＞
図５を参照すると、トークンを没収する例示的な方法５００が示される。図５の方法５００は、図４の方法４００を実行するのと同じノードであってよいノード１０２により実行されてよい。方法５００は、図４の方法４００の動作４０８の後に実行されてよい。その結果、ノード１０２は、図５の方法５００が実行されるとき、既に秘密鍵シェアへのアクセスを有する。
【０１０４】
動作５０２で、ノード１０２は不正パーティによる不正行為を検出する。不正パーティは、議会の別のメンバーであってよい。ノード１０２が、議会のメンバーが所定プロトコル又は基準に違反していると決定すると、不正行為が検出される。例えば、議会のメンバーであるノードが、誤った情報（つまり、偽の、不正な、又はその他の場合に許容不可能な情報）を議会の他のメンバーに報告すると、メンバーは不正メンバーであると見なされてよい。
【０１０５】
動作５０３で、不正行為の検出に応答して、ノード１０２は、議会の他のノードと協力して、不正パーティであるメンバーを一時停止してよい。つまり、議会は、議会への更なる参加から不正パーティを除外してよい。
【０１０６】
全てのノード１０２が所定プロトコル又は基準に従い動作することを保証するために、議会プールへのメンバーの転送は没収を受けることがある。没収は、没収されると見なされたメンバーの転送の返還を永久的に妨げることを意味する。不正行為により返還されないメンバーの転送を形成するトークンは、議会プールに残され得るが、返還されず、直ちに又は将来に別の使用不可アドレスへ転送され、又はその他の場合、没収される。没収の特性は、議会がサイドチェーンの結合した検証器セットとして機能するか否かに依存してよい。例えば、動作５０４で、不正パーティによる不正行為の検出に応答して、方法５００を実行するノード１０２は、没収トランザクションに対する部分署名を提供するために、秘密鍵シェアを使用してよい。つまり、ノードは、議会の他のノードと協力して、不正パーティにより公開グループアドレスへ（つまり議会プールへ）前に転送されたトークンの少なくとも一部を没収する。つまり、グループメンバーが所定プロトコル又は基準に違反していることを観察することに応答して、秘密鍵シェアは、該グループメンバーに関連付けられた、議会プール内に保持されている１つ以上のトークンのトランザクションの認証に貢献するために利用される。
【０１０７】
閾値署名方式が議会公開鍵と共に使用されるので、単独で動作する個々のノードは、別の議会メンバーのトークンの転送を、議会プールから離れて（例えば使用不可アドレスへ）転送できない。むしろ、閾数の秘密鍵シェアがそれらのそれぞれのメンバーによりトークンを別のアドレスへ転送するために有効署名を生成するために使用されるとき、又は、少なくとも閾数の秘密鍵シェアを有するメンバーのグループが（動作５０３で）メンバーを一時停止する総意に達し、これが一時停止されたメンバーからの回収要求を自動的に無視させるとき、トークンは転送によってのみ没収できる。トークンが転送により没収されると、トークンが転送され得る他のアドレスは、使用不可アドレスに関連付けられてよい。例えば、他のアドレスは、秘密鍵の存在しないアドレスであってよい。その結果、いかなるパーティも、該アドレスの公開鍵により結合されたトークンにアクセスできない。トークンが使用不可アドレスへ転送されると、それらは、もはや議会のいずれのメンバーによっても又は実際にブロックチェーンネットワーク１００内のいかなるノードによっても使用できないので、焼却されたと考えられてよい。
【０１０８】
したがって、動作５０４で、ノードは、使用不可アドレスへのトランザクションのための有効署名を生成するために議会の他のメンバーと協力して秘密鍵シェアを使用することにより、トークンを没収してよい。
【０１０９】
さらに、幾つかの実装では、議会は、proof−of−stakeサイドチェーンをセキュアにする結合検証器セットとして機能してよい。このサイドチェーンは、ブロードキャストチャネルとして使用されてよい。例えば、総意は、メンバーが不正に動作していたサイドチェーン上で、議会メンバーにより達成されてよい。この総意は、不正行為の証拠を告発することを含むサイドチェーントランザクションの確認に対応し得る。総意が達成されると、不正メンバーにより行われるメンバーの転送を回収するいかなる要求も拒否され、転送は没収されたと考えられる。没収されたトークンの全部又は一部は、将来のいつかに焼却（burnt）されてよい。つまり、後のいつかに、（不正メンバーを含まない）閾値のメンバーは、協力して、没収されたトークンの使用不可アドレスへの転送を認可してよい。トークンの幾つか又は全部は、代わりに、メンバーの不正の証拠を提供したノードへの報酬として送信されてよい。
【０１１０】
議会は、ブロックチェーンネットワーク１００の任意のノード１０２によりトークンの転送を通じて参加され得る開放型グループであるので、グループメンバーは周期的に変化してよい。このような変化が生じると、秘密鍵シェア分配が更新されてよい。図６を参照すると、秘密鍵シェア分配を更新する例示的な方法６００が示される。方法６００は、ブロックチェーンネットワーク１００の他のノードと協力して、ブロックチェーンネットワーク１００のノード１０２により実行されてよい。
【０１１１】
＜新しい公開アドレスを用いて秘密鍵シェア分配を更新する＞
方法６００の動作６０２で、ノード１０２は、再分配要求を検出する。再分配要求は、その履行が鍵シェアの再分配を伴う要求である。例えば、ノード１０２は、見込み新メンバーがトークンを公開グループアドレスへ転送すること、又は既存メンバーがメンバーの転送の回収を要求したことを検出してよい。
【０１１２】
トークンは、議会に参加すること又は議会における彼らの関与を増大することを要求するノードにより、又は議会に参加することを要求しないが代わりに（例えば、上述のようにサイドチェーンへトークンを転送するような）別の目的でトークンを議会へ転送する他のノードにより、公開グループアドレスに（つまり、議会プールへ）転送されてよい。動作６０２で、ノード１０２は、議会メンバー（つまり、議会に参加するために及び別の目的ではなくトークンを議会公開鍵へ転送したパーティ）を、公開グループアドレスへのトークンのトランザクションの少なくとも一部に含まれる１つ以上の属性を用いて、識別してよい。例えば、特定のトランザクションは、トランザクション内の属性を用いて特別トランザクションとして注意を与えられて（flag）よい。このような属性（又はその存在若しくは不存在）は、転送が行われる目的を示してよい。例えば、転送者が議会に参加することを要求していないとき、フラグがトランザクションに含まれてよい。
【０１１３】
動作６０２で要求を検出することに応答して、動作６０４で、該要求の履行は、鍵シェアの再分配を伴う。新しい秘密鍵シェアが、ノード１０２により、図４の方法４００の動作４０８で秘密鍵シェアが生成された方法と同様の方法で生成される。議会の他のメンバーノードも、それぞれの秘密鍵シェアを生成する。これらの秘密鍵シェアは、新しい議会公開鍵に対して閾値署名方式で使用されてよい。この時点で議会を去るメンバーは、動作６０４の間に新しい秘密鍵シェアを生成しない。彼らは、新しい議会公開鍵と共に使用するための秘密鍵シェアを割り当てられないので、彼らは、議会に参加する能力を失い、もはや議会メンバーと考えられない。
【０１１４】
さらに、再分配要求（これは、その履行が鍵シェアの再分配を伴う要求である）を検出することに応答して、動作６０６で、ノード１０２は、他の議会メンバーと協力して、公開グループアドレス内の全部のトークンを、新しい公開鍵に関連付けられた新しい公開アドレス（これは、次に新しい議会公開鍵になる）へ転送する。
【０１１５】
したがって、図６の方法６００によると、転送の分配が変化すると、又はフープへのアセットの転送を復帰する要求がメンバーから受信されると、秘密鍵シェアが再生成されてよく、議会の制御下にあるトークンの全部が新しい公開鍵へ移動されてよい。議会のメンバーシップが更新され得る頻度は、ブロックチェーンネットワーク１００のブロック時間により制限される。多くのアプリケーションは、低い頻度でのみ再バランスを要求し得る。
【０１１６】
＜既存公開グループアドレスを保持しながら、秘密鍵シェア分配を更新する＞
図７を参照すると、秘密鍵シェア分配を更新する更なる例示的な方法７００が示される。方法７００は、ブロックチェーンネットワーク１００の他のノードと協力して、ブロックチェーンネットワーク１００のノード１０２により実行されてよい。
【０１１７】
図７の方法７００では、議会公開鍵は、トークンの公開グループアドレスへ／からの転送が生じる度に変化しない。新しい鍵シェアを割り当てる要求が検出されると（動作７０２で、これは、トークンの公開グループアドレスへの転送を通じて生じてよい）、ノード１０２は、議会の他のメンバーと協力して、（動作７０４で）同じ公開鍵に対する新しい秘密鍵シェアをグループの新しいメンバーに発行する。協力するノードの数は、少なくとも、閾値署名方式の下でデジタル署名を生成するために必要なノードの閾数である。動作７０４で、追加鍵シェアが割り当てられてよく、一方で他の鍵シェアは同じままである。これは、変化が実際には小さいものであり得るが、（閾値署名方式の）閾値の変化を伴ってよい。代替として、動作７０４で、追加鍵シェアが割り当てられてよく、一方で他の鍵シェアは更新される。このような更新は、前の生成の任意の鍵シェアの削除のアテステーションを伴うことが必要である。この場合、（SSSのコンテキストでは、これは新しい多項式における、昇順の（increased  order）共有を含む）同じ閾値を維持しながら、新しいシェアが割り当てられてよい。
【０１１８】
動作７０２で、ノード１０２は、議会メンバー（つまり、議会に参加するために及び別の目的ではなくトークンを議会公開鍵へ転送したパーティ）を、公開グループアドレスへのトークンのトランザクションの少なくとも一部に含まれる１つ以上の属性を用いて、識別してよい。例えば、特定のトランザクションは、トランザクション内の属性を用いて特別トランザクションとして注意を与えられてよい。このような属性（又はその存在若しくは不存在）は、転送が行われる目的を示してよい。例えば、転送者が議会に参加することを要求していないとき、フラグがトランザクションに含まれてよい。
【０１１９】
メンバーが方法７００を使用する議会を退去するとき、彼らは彼らの秘密鍵シェアをセキュアに削除してよい。古いメンバーの秘密鍵シェアが使用できないことを保証するために、議会のメンバーは、特別なTEEを有するノード１０２を使用することを要求されてよい。TEEは、それらの内部で実行される命令及びデータがシステムの残りの部分からのアクセス及び操作に対して保護されることを保証する、ハードウェアレベルで実装されるアーキテクチャである。TEEは、ハードウェアメカニズムを利用して、議会の他のノードのような外部パーティに対してシステムの完全性を検証するために使用可能なリモートアテステーションチャレンジに応答してよい。
【０１２０】
各メンバーノードは、集積回路レベルのハードウェアを危険に晒すことなくホストシステムにアクセスできないままの１つ以上のランダムシークレット値を生成するよう構成される認定TEEを使用してよい。このように生成されたシークレット値は、秘密鍵シェアの分散生成において（例えば、図４の方法４００の動作４１０で）使用され得る。このシークレット値は、議会の設立段階で共有公開鍵を確立するためにも使用され得る。設定プロトコルに関連付けられた計算は、TEE  enclave内で実行される。その結果、いかなるメンバー又は前のメンバーも、彼ら自身の又は他者の秘密鍵シェアに関するいかなる情報も、メンバー間通信から又は任意の他の方法から引き出すことができない。TEE内のenclaveは、リモートアテステーションプロトコルが実行されることを可能にする。リモートアテステーションプロトコルは、TEE  enclaveが認証されること及び認可されたコンピュータ可読命令を実行していることを他のノードに証明するために使用されてよい。
【０１２１】
グループ変化に関連する計算は、TEE  enclave内で実行される。例えば、SSSの目的で新しい多項式を計算する際に使用され得る新しいセキュアランダムシークレットの生成は、TEE  enclave内で実行される。
【０１２２】
TEE  enclaveは、また、特定メンバーが議会に加わると行われたプールへの前の転送が復帰できる前に、もはや使用されるべきではない前の鍵シェア及び前のシークレットがセキュアに削除されたことを保証することを目的とする。特に、プールへのこのような転送を復帰させるために、アテステーションプロトコルは、TEE  enclaveが鍵シェアの削除を証明することを要求してよい。各ノード１０２は、このようなアテステーションを、要求された削除が他のノード上で生じたことの、リモートアテステーションプロトコルを通じた確認として解釈してよい。したがって、方法７００は、議会から去ったメンバーのTEE内に前に保持された秘密鍵シェアが、該メンバーに関連付けられたノードから削除されたことを確認するステップ、を更に含んでよい。この確認は、秘密鍵シェアの削除のアテステーションを受信することにより実行されてよい。したがって、リモートアテステーションプロトコルが、議会を去ったメンバーのTEE内に前に保持された秘密鍵シェアの削除に対するアテステーションを取得するために使用されてよい。
【０１２３】
図６の方法６００及び図７の方法７００は、それぞれ様々な利益を提供する。例えば、図６の方法６００は、セキュアな削除に依存せず、信頼できるハードウェアに依存する必要がない。しかしながら、図６の方法６００は、幾つかの状況では、このようなハードウェアが鍵シェアの不正プールを一層起こりにくくし得るので、このようなハードウェアから利益を享受し得る。
【０１２４】
図７の方法７００は、メンバーシップが変化する度に、新しい議会公開鍵の下でトークンを再ロックしなければならないことを回避する。さらに、幾つかの状況では、方法７００は、図６の方法６００より速くメンバーシップを更新し得る。これは、図７の方法７００の下では、トークンが新しい公開鍵に移動されないので、全てのトークンを新しい公開鍵へ移動するために、トランザクションがブロックチェーンに追加される必要がないからである。つまり、メンバーシップは、図７の方法７００を用いて更新されてよく、公開鍵が変化しないので、トークンの新しい公開鍵への転送を確認するために幾つかのブロックが生成されるのを待つ必要がない。
【０１２５】
＜議会からの抹消＞
上述のように、グループメンバーは、時折、議会を去ることを要求することがある。グループメンバーが議会から抹消するとき、彼らが議会プールへ前に転送したトークンは彼らに返却されてよい。図８を参照すると、このような転送を返却する例示的な方法８００がフローチャートの形式で示される。方法は、議会の他のノード１０２と協力して、ノード１０２により実行されてよい。
【０１２６】
方法８００の動作８０２で、ノード１０２は、議会メンバーである要求者から回収要求を受信する。回収要求は、抹消要求とも呼ばれてよい。回収要求は、要求者によりプールへ前に転送され現在は議会により制御されるトークンを回収するための要求である。要求は、要求者により議会メンバー全員にブロードキャストされてよい。
【０１２７】
要求を受信することに応答して、動作８０４で、ノード１０２は決定された基準に対して要求を評価する。このような基準は所定基準であってよい。議会が、グループメンバーシップが変化する度に議会公開鍵が変更されない議会プロトコルに従い動作する場合、動作８０４で、ノード１０２は、秘密鍵シェアが要求者により削除されたことを確認してよい。このような確認は、TEEに関連付けられたリモートアテステーションプロトコルを用いて取得されてよい。
【０１２８】
議会プロトコルが、メンバーシップが変化するとき議会公開鍵が変更されるものである場合、秘密鍵シェアはもはや有効ではないので、ノード１０２は、秘密鍵シェアの削除を確認しなくてよい。代わりに、新しい議会鍵が使用されてよく、議会の制御下にある他のトークンは、新しい議会鍵へ転送されてよい。
【０１２９】
動作８０４で、評価は、ゴーストチェーンが現在展開されているか否かを検討してもよい。ゴーストチェーンが展開されている場合、ゴーストチェーンの動作が停止するまで、回収要求は距離される。つまり、ゴーストチェーン上でマイニングする議会メンバーは、少なくともゴーストチェーンが終了するまで、トークンの彼らの「掛け金」を回収することを妨げられる。
【０１３０】
ノード１０２が評価に基づき回収要求を認可した場合、動作８０６で、ノードはトークンの回収を促進する。つまり、ノード１０２は、自身の秘密鍵シェアを使用して、デジタル署名を協力して生成し、要求者によりプールへ前に転送されたトークンを要求者へ転送して戻すためにデジタル署名を使用する。例えば、トークンは、それらが前に受信されたアドレスへ送り返されてよい。動作８０６は、閾値署名方式に従い実行される。その結果、回収は、少なくとも閾数の議会メンバーが回収を承認した場合にのみ有効になる。動作８０６は、抹消を望むメンバーがある時間期間の間、活動を一時停止された後に、実行される。この待機期間は、プールへのメンバーの前の転送の復帰のためのプロトコルが実行されている間、メンバーが不正行為に従事するのを防ぐ。
【０１３１】
議会プロトコルは、多数の異なる目的で使用されてよい。議会は、様々な機能を実行するセキュアなメカニズムを提供する。議会は、信用できるよう動作しなくてよく、トークンに対する所有権の制御を提供する。
【０１３２】
議会プロトコルは、例えば、ゴーストチェーンを実装するために使用されてよい。この場合、議会プロトコルは、ゴーストチェーンプロトコルと呼ばれてよい。
【０１３３】
＜ゴーストチェーン＞
図９を参照すると、ブロックチェーン９０２及びゴーストチェーン９０４が示される。ブロックチェーン９０２は、ブロックに基づく分散proof−of−work台帳である。ゴーストチェーン９０４は、ブロックチェーンのノードの間で分散型総意を達成するために使用されてよい、ブロックに基づく分散proof−of−stake分散台帳である。例えば、総意は、ブロックチェーンネットワーク内のノード間の論争を解決するために総意を達成するために使用されてよい。例えば、ブロックチェーンは、あるノードが別のノードにより提出された作業成果に異議を申し立てる（チャレンジする、challenge）チャレンジを含んでよい。このようなチャレンジは、図９で「Ｃ」と示される。チャレンジは、例えば、ノード（つまり、チャレンジャー）が、要求の履行において提案された結果が無効であると示すとき、生じてよい。
【０１３４】
チャレンジがあるノードにより発行されると、ゴーストチェーン９０４が展開される。ゴーストチェーンは、チャレンジに応答して、チャレンジＣが生じた後にインスタンス化される。ゴーストチェーンは、ゴーストチェーンの前のインスタンス化からの最終ブロック（終了ブロックとも呼ばれる）である起源ブロックによりインスタンス化されてよい。ゴーストチェーンが、Ｊで示される合意（つまり判定）に達するまで、デジタル論争を解決するために、多数のブロックがマイナーによりゴーストチェーンに追加される。
【０１３５】
総意に達すると、トランザクション（以下では最終トランザクション又は確定（settlement）トランザクションと呼ばれる）が構成され署名されてよい（以下に詳細に記載する）。このトランザクションは、総意に従いメインブロックチェーン９０２上で資金を分配する、ゴーストチェーンのマイナーに報酬を出すために資金を分配する、等の効果を有するトランザクションであってよい。トランザクションは、総意の結果をメインブロックチェーン９０２に通信して返してもよい。特に、結果は、トランザクション内にカプセル化されてよい。
【０１３６】
総意が達成され、最終トランザクションが構成され及び署名された後に、ゴーストチェーン９０４は終了し、構成されたトランザクションはメインブロックチェーン９０２へとマイニングされる。ゴーストチェーン９０４は、終了するので、末端（terminal）ブロックを有する標準的なブロックチェーンとは異なる。この末端ブロックは、ゴーストチェーン９０４内の最後のブロックであり、総意が決定され、総意に従いメインブロックチェーン９０２上で資金を分配する、ゴーストチェーンのマイナーに報酬を出すために資金を分配する、等の結果として生じたトランザクションが有効に署名されると、生じる。
【０１３７】
＜要求者−提案者−チャレンジャー、及びゴーストチェーン＞
したがって、ブロックチェーンネットワーク１００（図１）内のノード１０２（図１）は、要求者−提案者−チャレンジャープロトコル、及び／又はゴーストチェーン解決プロトコルを実装してよい。このようなノード１０２は、このようなプロトコルを実装する、メモリ２２０（図２）に格納されたコンピュータ実行可能命令を含んでよい。このような命令は、プロセッサ２１０（図２）により実行されると、（図２を参照して記載した種類の電子装置２００のような）ノード１０２に、プロトコルの１つ以上の方法を実行させる。このような方法は、図１０〜１３の方法１０００、１１００、１２００、１３００の任意の１つ又は組み合わせを含んでよい。
【０１３８】
図１０〜１３を参照すると、要求者−提案者−チャレンジャープロトコル、及び／又はゴーストチェーン解決プロトコルに含まれ得る方法が示される。要求者の方法１０００は、図１０に示され、計算交換においてタスクの要求者により実行されてよい。つまり、タスクの完了を要求するノード１０２は、図１０の要求者の方法１０００を実行してよい。このノードはブロックチェーンネットワーク１００（図１）内のノードであり、このノードは要求者と呼ばれてよい。
【０１３９】
提案者の方法１１００は、図１１に示される。提案者の方法１１００は、タスクの解の提案者により実行されてよい。つまり、タスクを完了させることを請求するノード１０２は、図１１の方法１１００を実行してよい。このノードはブロックチェーンネットワーク１００（図１）内のノードであり、このノードは提案者と呼ばれてよい。
【０１４０】
チャレンジャーの方法１２００は、図１２に示される。チャレンジャーの方法１２００は、タスクの解のチャレンジャーにより実行されてよい。つまり、提案者により提出された解にチャレンジするノード１０２は、図１１の方法１２００を実行してよい。このノードはブロックチェーンネットワーク１００（図１）内のノードであり、このノードはチャレンジャーと呼ばれてよい。
【０１４１】
ノード間の総意を達成するための調停方法１３００は図１３に示される。調停方法１３００は、ブロックチェーンネットワークのノードにより、分散型総意を達成するためにブロックチェーンネットワークの他のノードと協力して実行される。他のノードと協力して調停方法を実行するノードは、調停者と呼ばれてよい。
【０１４２】
図１０〜１３の方法１０００、１１００、１２００、１３００は、協力して実行される。例えば、方法は、ゴーストチェーンが提案者の解の有効性を保証するために使用される要求者−提案者−チャレンジャープロトコルを協同で提供する。
【０１４３】
要求者の方法１０００（図１０）の動作１００２で、要求者と呼ばれるノードは要求を発行する。要求はタスクを完了するための要求である。例えば、タスクは作業成果についての要求であってよい。特に、プロセッサに対する作業成果についての（つまり、プロセッサに対し、計算の結果のような所定の作業成果を生成することの）要求であってよい。タスクは、費用の高い計算、金融契約のような外部ソースからのインプットを要求するタスク、又はアルゴリズム若しくは文書のような特定プロパティを有するデータを生成するタスクであってよい。要求は、タスク完了の成功と引き換えに、ブロックチェーンネットワーク１００に関連付けられたトークンの形式で報奨金を提供する。要求は、ブロックチェーン外で（つまり「オフチェーンで」）発行されてよい。例えば、要求は、インターネットを介してアクセス可能なウェブサーバ上で発行されてよい。要求は、要求に対する候補解が固定時間期間（これは、「チャレンジ期間」と呼ばれてよい）の間、チャレンジされないとき、又は計算をゴーストチェーン上で再実行することにより解かれるチャレンジの場合、候補解がオンチェーン計算の結果と一致することが分かったとき、完了が成功したと定められる。
【０１４４】
（動作１００２で）要求は、計算交換の中で発行されてよい。計算交換は、要求されたタスクの集合であってよい。例えば、複数のタスクが計算交換の中で発行されてよい。タスクは、同じ要求者により又は異なる要求者により発行されてよい。計算交換は、ノードが計算又はアルゴリズムの実行を他のノードにオフロードすることを可能にする。
【０１４５】
提案者の方法１１００（図１１）の動作１１０２で、提案者と呼ばれるノードは要求を識別する。（動作１１０４で）ノードは次にタスクをオフチェーンで完了することに進む。例えば、要求者により要求されたアルゴリズム、データ、又は他の結果は、プロセッサによる作業成果として取得されてよい。
【０１４６】
提案者は、次に、方法１１００（図１１）の動作１１０６で提案を提出してよい。提案は、図１０の方法１０００の動作１００２で要求者により発行された要求に関連付けられたタスクを完了させることの請求である。提案を提出するために、提案者は、ブロックチェーンネットワーク１００についての彼らの公開鍵を要求者へ送信してよい。提案者は、タスクの解をコミット（確約、commit）してもよい。このコミットは、解のハッシュの形式であり得る（つまり、計算の出力又は別の種類の解のような、作業成果のハッシュ）。
【０１４７】
要求者は、図１０の方法１０００の動作１００４で提案を受信する。例えば、要求者は、提案者の公開鍵及び「コミット」（例えば、表明された作業成果のハッシュ）を受信してよい。
【０１４８】
提案を受信することに応答して、図１０の方法１０００の動作１００６で、要求者はトランザクションT１を構成してよい。トランザクションはインプットとして報奨金を含む。トランザクションは、報奨金及び提案者のデポジットもアウトプットとして含む（つまり、T１_out=bounty+proposer_deposit）。トランザクションT１は、提案者が彼ら自身のインプットを追加することを可能にするために署名される。例えば、トランザクションT１は、署名されてよいSIGHASH_ALL|SIGHASH_ANYONECANPAY。SIGHASH_ALLは、任意の署名スクリプトを除くトランザクション全体に署名するデフォルト署名ハッシュ型であり、署名済み部分の変更を防ぐ。SIGHASH_ANYONECANPAYは、現在のインプットのみに署名する署名ハッシュ型である。
【０１４９】
トランザクションT１は、２つの方法でアンロックされるよう構成される。チャレンジ期間（後述する）の終了後、これは、提案者の署名（つまり、提案者が要求者に提供した公開鍵に対応する署名）及びコミットに対応する解によりアンロックされてよい。例えば、演算コードOP_CHECKSEQUENCEVERIFYは、チャレンジ期間の間、トランザクションをロックするが、該期間内にチャレンジが無かった場合に提案者によりアンロックできるようにするために使用されてよい。トランザクションは、また、いつでも、議会１１０（図１）のグループ署名によりアンロックされるよう構成される。つまり、トランザクションは、議会のメンバーであるノードが彼らそれぞれの秘密鍵シェアを用いて議会１１０の閾値署名方式に従いトランザクションを協力してアンロックするとき、チャレンジ期間の終了前又は後にアンロックできる。
【０１５０】
トランザクションは、コミットのような嫌疑の掛かった解に関する情報も含んでよい。例えば、表明された作業成果のハッシュは、OP_PUSHDATA演算コードを用いてトランザクションに追加されてよい。特に、表明された作業成果のハッシュは、トランザクションのロックスクリプトに追加されてよい。このロックスクリプトは、ロックスクリプトに含まれる表明された作業成果のハッシュをハッシュする解を提供するアンロックスクリプトにより（チャレンジ期間の終了後に）アンロックされるよう構成される。
【０１５１】
図１０及び１１に示されないが、プロセッサは、動作１００６で構成されたトランザクションT１を受信してよく、提案者デポジットをインプットとしてトランザクションT１に追加してよい。プロセッサは、トランザクションを、ブロックチェーンネットワーク１００（図１）の他のノードへブロードキャストする。トランザクションは、次に、公衆に見えるように、ブロックチェーン上でマイニングされる（つまりブロックに追加される）。、
【０１５２】
トランザクションがブロックチェーン上でマイニングされると、チャレンジ期間が開始される。チャレンジ期間の間、ノード１０２（図１）は提案者により提出された提案に対してチャレンジし得る。チャレンジがチャレンジ期間中に発行されない場合、提案者は、報奨金及び提案者デポジットをトランザクションT１から請求してよい。提案者は、チャレンジ期間の残り時間の量を追跡するためにタイマを開始してよく、チャレンジ期間が終了すると自動的に措置を取ってよい。例えば、プロセッサは、プロセッサの作業成果のような作業成果（これは、解と呼ばれてよい）を要求者に提供してよく、トランザクションをアンロックしてよい。
【０１５３】
提案者は、解を提案者に直接提供しなくてよい。代わりに、提案者は、メインブロックチェーンネットワーク上のトランザクションに解を埋め込むことにより、解を提供してよい。例えば、提案者は、アンロックスクリプト内に解を提供してよい。アンロックスクリプトは、報奨金及び提案者デポジットを妨げる（トランザクションT１内の）ロックスクリプトをアンロックする。上述のように、ロックスクリプトは、アンロックスクリプト内の提案された解が、要求者が提案者により前に（つまり「コミット」の中で）与えられた値のハッシュであることを調べるよう構成されてよい。アンロックスクリプトが、トランザクションT１のロックスクリプトにより前に妨げられたトークン（つまり、トランザクションT１のUTXO）を妨げるロックスクリプトをアンロックすることに成功すると、アンロックスクリプトを含むトランザクションは、新しいロックスクリプト（これは、例えば、トークンを妨げるために提案者の公開鍵を使用してよく、その結果、提案者はトークンに対する制御を完了する）によりトークン（つまり、提案者デポジット及び報奨金）を妨げることによりトランザクションを使用する。
【０１５４】
上述のように、トランザクションT１は、報奨金及び提案者デポジットをOP_CHECKSEQUENCEVERIFYコードを用いてロックするよう構成されてよい。これは、チャレンジ期間の終了後に、要求者からの更なる認可を伴わずに、提案者が報奨金及び提案者デポジットを自動的に請求することを許可する。
【０１５５】
提案者の解に対するチャレンジがない場合、完了トランザクションは、proof−of−workメインブロックチェーン９０２（図９）上で実行でき、チャレンジプロトコルの又はゴーストチェーンプロトコルの実行が必要ないことが分かる。
【０１５６】
しかしながら、チャレンジャーは、チャレンジ期間中にチャレンジを発行することがある。例えば、方法１２００の動作１２０２で、チャレンジャーはチャレンジを発行する。チャレンジャーは、図１１の方法１１００の動作１１０２及び１１０４と同様の動作を実行していてよい。つまり、チャレンジャーは、要求を識別していてよく、動作１２０２でチャレンジを発行する前に、オフチェーンでタスクを完了していてよい。チャレンジャーは、チャレンジャーの解が提案者の解と異なることを決定することにより、チャレンジが発行されるべきであると決定していてもよい。チャレンジャーは、例えば、彼らの解のハッシュを実行し、該ハッシュを提案者の解のハッシュと比較してよく、ハッシュが異なる場合、チャレンジャーはチャレンジを発行してよい。
【０１５７】
図１２の方法１２００の動作１２０２で、チャレンジャーは、チャレンジ期間内にチャレンジを発行する。チャレンジャーは、ブロックチェーンネットワーク１００にチャレンジする意図をブロードキャストすることによりこれを行ってよい。チャレンジが発行されると、ノードのグループは、解の有効性を決定するのを支援してよい。
【０１５８】
例えば、図１３を簡単に参照すると、図１３は、調停者の方法１３００のフローチャートを示す。ノードのグループは、例えばチャレンジが提起されるときのように、分散型総意に達するために使用され得る議会を形成してよい。議会は、上述のように、proof−of−workブロックチェーンネットワーク上の転送によりセキュアにされる。例えば、方法１３００の動作１３０２で、調停者の方法１３００を実行する調停者は議会に参加してよい。例えば、調停者は、図４を参照して上述した議会に加わる方法４００を実行してよい。したがって、動作１３０２で、調停者は、議会と呼ばれてよいグループに、グループメンバーになるために議会に関連付けられた公開グループアドレスへのトークンの転送を通じて、加わる。調停者は、この転送をproof−of−workブロックチェーンネットワーク上で行う。上述のように、グループは、ノードが秘密鍵シェアを制御する閾値署名方式に従う。グループに加わることは（これは、加入とも呼ばれてよい）、例えば、ゴーストチェーンの展開中に実行されてよい。図１３は動作１３０２（議会に加わるステップ）が動作１３０６（ゴーストチェーンの展開）の前に実行されるように図示するので、ゴーストチェーンの前の展開中に（つまり、動作１３０６における展開中ではない）議会に加わったノードにより実行される。しかしながら、動作１３０６、１３０８、及び１３１０は、例えば、動作１３０６の間に、グループに加わるノードにより実行され得る。
【０１５９】
動作１３０４で、調停者は、グループの他のノードと協力して、図１２のチャレンジャーの方法１２００の動作１２０２で、チャレンジャーにより発行されたチャレンジを検出する。特に、調停者は、グループの他のノードと協力して、要求者により生成された要求に応答して、チャレンジャーにより提案者の作業成果に対するチャレンジを検出する。
【０１６０】
トランザクションT１に起因して、上述のように、チャレンジが発行されると、グループは報奨金及び提案者デポジットの制御を想定する。つまり、トランザクションT１は、いつでも議会によりアンロック可能であると考えられる。したがって、報奨金及びデポジットは、提案者による要求に対する解の引き渡しに続くチャレンジ時間と呼ばれる時間期間内でチャレンジが検出されると、グループの制御下に置かれ制御下に維持される。したがって、チャレンジが検出されると、グループは、報奨金及び提案者デポジットの制御を有する。
【０１６１】
グループが報奨金及び提案者デポジットの制御を有した後に、及びチャレンジャーを検出したことに応答して、調停者は、グループの他のノードと協力して、チャレンジャーによるトークンの転送を促進する。例えば、チャレンジを検出することに応答して、議会は、報奨金及び提案者デポジットに等しいインプット（例えば、T２_in=bounty+proposer  deposit）及び報奨金と提案者デポジットとチャレンジャーデポジットとの和に等しいアウトプット（例えば、T２_out=bounty+proposer  deposit+challenger  deposit）を備えるトランザクションT２を構成してよい。したがって、明らかに、報奨金及び提案者デポジットは、（上述のように）トランザクションT２の構成前にグループの排他的制御下に置かれてよい。トランザクションT２は、いつでもグループに支払うよう構成される。つまり、トランザクションT２は、議会公開鍵に支払うよう構成される。トランザクションT２は、署名されてよいSIGHASH_ALL|SIGHASH_ANYONECANPAY。調停者は、他の調停者と一緒に、チャレンジャーデポジットをインプットとして追加するために、トランザクションT２をチャレンジャーに提供してよい。例えば、調停者は、他のノードと一緒に、トランザクションT２を他のノードに公に利用可能にしてよい。
【０１６２】
トランザクションT２が公に利用可能にされた後、チャレンジャーは、トークンをトランザクションT２へのインプットとして転送する。つまり、チャレンジャーは、トークンの中の（図１２のチャレンジャーの方法１２００の動作１２０４における）トークンを転送し、このようなデポジットをグループの制御下に置く。特に、転送されたトークン（「チャレンジャーデポジット」）は、議会公開鍵の制御下に置かれる。報奨金、提案者デポジット、及びチャレンジャーデポジットは、したがって、全て、グループの制御下に置かれ、議会公開鍵により妨げられる。議会の説明においてより詳細に上述したように、閾値署名方式は、閾数の議会メンバーがそれぞれの秘密鍵シェアを使用して、報奨金、提案者デポジット及びチャレンジャーデポジットを含むトランザクションのための有効な署名を協力して生成することを可能にする。提案者デポジット及びチャレンジャーデポジットは等しいサイズであってよい。
【０１６３】
チャレンジャーは、彼らのチャレンジ解をコミットしてもよい。例えば、チャレンジャーは、例えば演算コードOP_PUSHDATAを用いて、解のハッシュをトランザクションT２に追加してよい。
【０１６４】
トランザクションT２は、メインブロックチェーンネットワークにブロードキャストされ、メインブロックチェーンネットワーク上にマイニングされ、その結果、チャレンジャーデポジットは議会公開鍵により妨げられる。報奨金、提案者デポジット及びチャレンジャーデポジットは、今やグループの排他的制御下に置かれる。
【０１６５】
したがって、チャレンジャーは、代替解の証拠及びデポジットを調停者に提供する。トランザクションT２がメインブロックチェーンネットワークにマイニングされた後、調停者の方法１３００の動作１３０６で、調停者は、グループの他のノードと協力して、分散型総意に達するためにゴーストチェーンを展開する。それにより、チャレンジを解決する。上述のように、ゴーストチェーンは、ゴーストチェーンのマイナーがグループのメンバーであるproof−of−stakeブロックチェーンである。つまり、議会のメンバーは、ゴーストチェーン上でマイニングすることを許可される。proof−of−workブロックチェーンネットワーク上のプールへの彼らのメンバー転送（つまりメンバーデポジット）は、彼らがゴーストチェーン上でマイニングすることを可能にするために、彼らの掛け金として機能する。任意のメンバーがマイニングするために選択される確率は、相対的な転送量（つまり、彼らのデポジットの量）に比例する。
【０１６６】
（動作１３０６で）ゴーストチェーンが展開される間、ゴーストチェーンの起源ブロックは、調停者によりグループの他のノードと協力して生成され、取得されてよい。起源ブロックは、最後のゴーストチェーン展開からの最終ブロックであってよい（例えば、ゴーストチェーンが実行された最後のインスタンス及び前の実行からの末端ブロックは、過去のチャレンジに応答していてよい）。このブロックは、起源支払に関する情報を含んでよい。起源支払は、ゴーストチェーンの前の展開に基づき行われる予定のまだ生成されるべきデジタルトークンの転送である。
【０１６７】
さらに、ゴーストチェーンが展開される間、メンバーは、加入することを許可されてよく、又はグループから抹消することを要求してよい。加入段階の間、新しいメンバーが加入してよい。その結果、彼らは、（図４を参照して上述したように）秘密鍵シェアを割り当てられる。新しいメンバーは、起源ブロック（これは、閾値の現在メンバーにより認証される）及び加入処理中に生成された任意の後続のブロックを提供される。
【０１６８】
抹消前段階もゴーストチェーン実行に含まれてよい。この抹消前段階の間、抹消されることを要求した任意のメンバーは、特定プライベートデータの削除についてのアテステーションを送信してよい。このようなアテステーションは、プールへのメンバーの転送の復帰を要求されてよい（つまり、アテステーションは、メンバーデポジットの返却を要求されてよい）。メンバーの前の転送の復帰を不可能にする不正行為の証拠は、この段階で送信されてよい（例えば、新たに加入したメンバーは１人以上の現在メンバーにより予めコミットされたが偽であると疑われる起源ブロックを提出してよい）。抹消の技術は、図８を参照して詳述された。
【０１６９】
ゴーストチェーンの展開は、調停者による、グループの他のノードと協力して、判決動作を含んでよい。判決動作は、提案者及びチャレンジャーから証拠を受信するステップと、証拠に基づきチャレンジを解決するステップと、を含んでよい。例えば、受信した証拠は、最終解又は中間結果のうちの一方又は両方を含んでよい。中間結果は、要求されたタスクを実行するために必要なステップ又はステップのシリーズの結果であってよい。例えば、中間ステップはタスクの部分的作業成果であってよい。最終解は、要求されたタスクを完了した最終作業成果である。証拠は、図１１の提案者の方法１１００の動作１１０８で提案者により、及び図１２のチャレンジャーの方法１２００の動作１２０６でチャレンジャーにより提出されてよい。
【０１７０】
調停者及び議会の他のノードは、解の正しさに関して分散型総意に達してよく、それにより、要求に関連付けられたタスクを実行することにより、チャレンジを解決して、正しい解を決定する。例えば、タスク（例えば、計算又はアルゴリズム）は、オンチェーンで（つまり、ゴーストチェーン自体の上で）実行されてよい。グループは、提案者及びチャレンジャーの解のうちのどちらが正しいかを、これらの解をゴーストチェーン上で決定された自身の解と比較することにより決定してよい。この処理の間、グループメンバー（つまり、ゴーストチェーンマイナー）は、計算及び／分析を実行して、分散型総意に達する。グループメンバーは、この処理の間に、総意に達し、ブロックに署名する。
【０１７１】
計算要件及び時間遅延を低減するために、グループは、チャレンジを解決するためにゴーストチェーンを使用しながら、二分探索手順を実行してよい。特に、提案者及びチャレンジャーは、それぞれ、彼らの計算又は分析についての１つ以上の中間結果を提供してよい。計算又は分析のインプットは提案者及びチャレンジャーの両者について同じなので（要求者により指定され得るので）、及びアウトプットは異なるので、チャレンジャー及び提案者について分岐する中間ステップの間で遷移がある。このような遷移が識別されると、グループは、ゴーストチェーンを用いて、遷移に関連付けられた単一の動作、ステップ又は手順のみを実行してよい。したがって、調停者は、他のノードと協力して、ゴーストチェーン上でタスクの一部のみを実行して、提案者又はチャレンジャーのうちの一方が要求に関連付けられたタスクの中間ステップにおいて過ちを犯したと決定してよい。この二分探索技術の下で、グループは、正しい解を識別しなくてよいが、むしろ不正な解を識別してよい。グループは正しい解を決定しないので、不正であると識別されない解は必ずしも正しくはない。
【０１７２】
調停者は（グループの他のノードと協力して）、ゴーストチェーンが展開される間、総意に達する。実際に、総意に関する判定は、調停者及び議会の他のノードがチャレンジを解決するとき、到達される。
【０１７３】
総意（つまり、調停のための判定）がブロックチェーン上で達せられた後、調停者は、グループの他のノードと協力して、（完全に署名されるとメインブロックチェーンネットワークへとマイニングされるべき）最終トランザクションを構成する。最終トランザクションは、解決トランザクションとも呼ばれてよく、様々なトークン転送を含んでよい。例えば、（ｉ）報奨金＋デポジット（bounty+deposit）（これは、判決の過程で成功した又は正当性を立証したと考えられるノードへ転送されてよい）、（ｉｉ）（既に実行されたゴーストチェーンマイニングについての）マイニング料金、（ｉｉｉ）起源支払（これは、ゴーストチェーンの前の実行に基づくことが予定されているトークン転送であり、起源ブロックから決定される）、及び／又は（ｉｖ）抹消されたメンバーの議会プールへ転送されたトークンの復帰（つまり返却）。
【０１７４】
このトランザクションは、有用なメタデータも含んでよい。例えば、解決トランザクションは、解をブロックチェーンネットワークへ転送して戻してよい。したがって、この処理の間、グループ（つまり、グループの他のノードと協力する調停者）は、総意の結果をブロックチェーンネットワークにコミットしてよい。グループは、ブロックチェーンネットワークに、ゴーストチェーン上でオンチェーンで決定されたような中間計算状態のMerkleルートハッシュもコミットしてよい。
【０１７５】
したがって、グループ制御下にあるトークンは、（動作１３０８で）調停者によりグループの他のノードと協力して分配されてよい。このようなトークンの分配は、議会について（つまり、グループについて）定められた（つまり、グループについて）閾値署名方式に従い実行される。議会の上述の議論において分かるように、閾値署名方式は、少なくとも閾数のメンバーが議会公開鍵の有効署名を生成するために必要であるように構成される。したがって、調停者は、グループの他のノードと一緒に（つまり、他の調停者と一緒に）、調停者の秘密鍵シェアを用いて最終トランザクションに部分署名を追加することにより、トークンを転送することに同意してよい。他のノードも、閾値署名方式の下で最終トランザクションの有効署名を生成するために要求される少なくとも閾数の秘密鍵シェアが使用されるまで、彼らのそれぞれの秘密鍵シェアを用いて部分署名を追加する。
【０１７６】
最終トランザクションの中でトークンを分配する特定の方法は、総意の結果に依存する。例えば、総意が、表明された解が不正であることであるとき、調停者は、他のノードと協力して、少なくともチャレンジャーデポジットをチャレンジャーへ転送し、及び提案者デポジットをゴーストチェーンのマイナーに、マイニングされたブロックの絶対数に比例して分配する。総意が、チャレンジャーの解が正しいことであるとき、報奨金もチャレンジャーへ転送されてよい。したがって、チャレンジャーは、図１２のチャレンジャーの方法１２００の動作１２０８で、トークンを受信してよい。しかしながら、二分探索が使用され、その結果、正しい解が識別されない場合、報奨金は、要求を再発行し得る要求者に返却されてよく、チャレンジャーが彼らの回答に基づき提案を提出することを可能にする。代替として、提案者が二分探索を通じて削除されると、要求者は、チャレンジャーのコミットを提案として扱ってよく、図１０の方法１０００の動作１００６で動作を再開してよい。つまり、要求者は、新しいトランザクションT１をチャレンジャーの提案に基づき構成してよい。このトランザクションは、正式にチャレンジャーとして考えられたノードが今や提案者であると考えられる点を除き、動作１００６を参照して上述した通りであってよい。したがって、新しいトランザクションT１は、上述のようにトランザクションT２内のチャレンジャーにより提案されたようなソリューションのハッシュに対応する解を提供することにより、チャレンジ期間の終了後に、チャレンジャーによりアンロックされるよう構成されてよい。
【０１７７】
総意が、提案者の作業成果が有効であることであるとき、調停者は、他のノードと協力して、報奨金及び提案者デポジットを提案者へ転送し、チャレンジャーデポジットをゴーストチェーンのマイナーに、マイニングされたブロックの絶対数に比例して分配する。したがって、提案者は、図１１の方法１１１０の動作１１００で、トークンを受信してよい。
【０１７８】
総意が、提案者の解及びチャレンジャーの解が両方とも不正であることであるとき、チャレンジャーデポジットの半分及び提案者デポジットの半分は、マイナーに、マイニングされたブロックの絶対数に比例して分配されてよい。任意の残りのトークンは、それが受信されたパーティへ返却されてよい。
【０１７９】
要求者は、図１０の要求者の方法１０００の動作１００８で解を受信する。要求者が動作１００８で解を受信する方法は、チャレンジが発行されたか否かに依存してよい。例えば、チャレンジが発行されなかった場合、図１０の方法１０００の動作１００６を参照して上述したように、提案者は、トランザクションT１を用いてブロックチェーンに解をコミットした。しかしながら、チャレンジが発行された場合、及びゴーストチェーンが要求に対する解を決定した場合、ゴーストチェーンノードは、ゴーストチェーンの終わりに（例えば、図１３の調停方法１３００の動作１３１０で）、解を要求者へ送信してよい。ゴーストチェーンプロトコルは、したがって、ゴーストチェーンに参加するノードに、解を決定すると要求者へ解を自動的に送信させてよい。
【０１８０】
さらに、ゴーストチェーン上で総意に達し、及びトランザクションが構成され有効に署名された後に、（図１３の調停方法１３００の動作１３１０で）ゴーストチェーンは終了する。つまり、チャレンジが解決されると、ゴーストチェーンは終了する。ゴーストチェーンが終了すると、チャレンジの解決に関連する情報は、proof−of−workブロックチェーンネットワークへ転送されて戻されてよい。
【０１８１】
ゴーストチェーンが終了すると、更なるブロックはゴーストチェーンにマイニングされない。つまり、標準的なブロックチェーンと異なり、ゴーストチェーンは末端ブロックを有する。ゴーストチェーンは、分岐しないproof−of−stakeブロックチェーンとして実装されてよい。分岐の不存在は、ゴーストチェーンが終了するとき、明確な末端ブロックが存在することを意味する（つまり、グループの全ノードにより合意された末端ブロック）。この末端ブロックの後に、ゴーストチェーンは、自身の目的に適い、追加されない。
【０１８２】
前述のように、調停者（つまり、議会のノード）が総意に達するとき、上述のような閾値署名方式に従い部分署名の追加を通じてトランザクションに有効署名が生成されると、ノードは、（動作１３０８で）メインチェーン上でブロードキャストされるトランザクションを協力して構成する。このトランザクションはそれ自体が複数パーティの計算であるので、このトランザクションに貢献するノードは、このトランザクションに参加することに対して報酬を与えられることが期待され得る。しかしながら、トランザクションは署名される前に指定されるので、署名に参加すること（これは、トランザクションにより部分署名をゴーストチェーンへ送信すること、及び実際にブロックをマイニングすることを含み得る）に対する報酬は、更なるゴーストチェーンが展開されるまで延期されてよい。このような延期は、動作１３１０で提供されてよい。特に、末端ブロックは、起源支払がゴーストチェーンの将来の展開の間に処理されることを可能にする情報により構成されてよい。このような情報は、最終トランザクションの署名の間に生成されたブロックのような、最終トランザクションが構成された後に生成されたブロックのために予定されているマイニング料金のレコードであってよい。つまり、起源支払は、最終トランザクションの署名に貢献したノードに報酬を与えるために定められてよい。ゴーストチェーンの末端ブロックは、次のゴーストチェーンの実行（つまり、次回、ゴーストチェーンが展開されるとき）の起源ブロックになる。したがって、レコードは、将来の起源支払のために末端ブロックの中で生成される。
【０１８３】
直前に記載した実装によると、ゴーストチェーン実行の間のメンバー加入／抹消は、チャレンジによりトリガされてよいことに留意する。代替の実装は、規則的間隔又は他の条件下で加入／抹消を可能にしてもよい。これは、特にこの目的で、ゴーストチェーンのスケジューリングされた実行を含んでよい。これは、判決及び総意段階を有しないことを除き、上述のゴーストチェーン展開と同様であり得る。この場合、マイニング料金は、加入ことの見返りに要求される「加入料金」から、少なくとも部分的に支払われ得る。
【０１８４】
また、上述の方法１３００は、第１ゴーストチェーン実行ではないゴーストチェーン実行を記載した。つまり、方法１３００は、過去の何らかの時点で展開されたゴーストチェーンの展開を記載した。その結果、末端ブロックは、ゴーストチェーンについて既に存在している起源支払を含む。方法１３００は、第１ゴーストチェーンを展開可能にするよう変更されてよい。例えば、ゴーストチェーンが展開される最初に、起源ブロックが別の方法で確立されてよい。例えば、起源ブロックは、最初に信頼できるパーティにより提供されてよい。
【０１８５】
分散型総意を達成するために（つまり、チャレンジを調停するために）proof−of−stakeに基づくブロックチェーンを使用することにより、proof−of−workブロックチェーンネットワーク上でこのような総意を達成しようとするより、速い総意が達成できる。なぜなら、proof−of−stakeはより規則的なブロック生成を可能にし、高い頻度のブロック生成を可能にするよう構成できるからである。さらに、メインブロックチェーン自体ではなく、ゴーストチェーン上でこのような分散型総意を達成するために必要な動作を実行することにより、タスクはメインブロックチェーンネットワークから押し出され、その結果、メインブロックチェーンネットワークは負荷が軽くなる。
【０１８６】
さらに、ゴーストチェーンの遷移特性（つまり、ゴーストチェーンは本来一時的であり終了する）は、標準的にproof−of−stakeブロックチェーンネットワークに影響を与えるnothing−at−stake問題のリスクを回避し又は低減し得る。ゴーストチェーンネットワークの一時的特性は、ゴーストチェーンのマイナーによる議会プールへの転送が、ゴーストチェーンが終了するまで復帰されないことを、議会が要求することを可能にする。つまり、議会は、ゴーストチェーンが実行している間、議会メンバーがプールへの彼らの前の転送の復帰（つまり、彼らの掛け金を回収すること）を達成することを許可しないよう構成されてよい。
【０１８７】
上述の例はビットコインで利用可能な演算コードを参照したが、本願明細書に記載の方法は、他の種類のブロックチェーンネットワークと共に使用されてもよい。
【０１８８】
上述の方法は、概してノードにおいて実行されると記載されたが、方法の特徴は他のノードとの強力に依存し、他の場所で実行され得る。
【０１８９】
留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する（comprising又はcomprises）」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する（comprises）」は「含む（includes）又は構成される（consists  of）」を意味し、「有する（comprising）」は「含む（including）又は構成される（including  of）」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、１つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることが出来ないことを示すものではない。
【図１】
2020517134.tif 000003
【図２】
2020517134.tif 000004
【図３】
2020517134.tif 000005
【図４】
2020517134.tif 000006
【図５】
2020517134.tif 000007
【図６】
2020517134.tif 000008
【図７】
2020517134.tif 000009
【図８】
2020517134.tif 000010
【図９】
2020517134.tif 000011
【図１０】
2020517134.tif 000012
【図１１】
2020517134.tif 000013
【図１２】
2020517134.tif 000014
【図１３】
2020517134.tif 000015
【国際調査報告】
2020517134.tif 000016
2020517134.tif 000017
2020517134.tif 000018