(57)【要約】  コンピュータにより実施される方法が提供され得る。当該方法は、例えばビットコインブロックチェーンのようなブロックチェーンネットワークを用いて実装されてよい。コンピュータにより実施される方法は、ｉ）proof−of−workブロックチェーンネットワーク内で動作するノードにより、１つ以上のデジタルアセットを、議会の他のメンバーに関連付けられた１つ以上の他のデジタルアセットを有する議会プールへ転送することにより、議会に参加するステップと、ｉｉ）前記ノードにより、前記議会プールに関連付けられたアドレスへの前記proof−of−workブロックチェーンネットワーク上のデジタルアセットの特別トランザクションを検出するステップであって、前記特別トランザクションは決定された基準を満たす、ステップと、ｉｉｉ）前記特別トランザクションを検出することに応答して、前記ノードにより、proof−of−stakeブロックチェーンネットワーク上で１つ以上のデジタルアセットを作り出すステップと、を含む。
2020517135.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、
proof−of−workブロックチェーンネットワーク内で動作するノードにより、１つ以上のデジタルアセットを、議会の他のメンバーに関連付けられた１つ以上の他のデジタルアセットを有する議会プールへ転送することにより、議会に参加するステップと、
前記ノードにより、前記議会プールに関連付けられたアドレスへの前記proof−of−workブロックチェーンネットワーク上のデジタルアセットの特別トランザクションを検出するステップであって、前記特別トランザクションは決定された基準を満たす、ステップと、
前記特別トランザクションを検出することに応答して、前記ノードにより、proof−of−stakeブロックチェーンネットワーク上で１つ以上のデジタルアセットを作り出すステップと、
を含む方法。
【請求項２】
前記特別トランザクションの検出後に、少なくとも閾数のブロックが前記proof−of−workブロックチェーンネットワークのブロックチェーンに追加されたと決定するステップを更に含み、前記作り出すステップは、少なくとも前記閾数のブロックが追加されたと決定することに応答する、請求項１に記載のコンピュータにより実施される方法。
【請求項３】
参加するステップは、
閾値署名方式で使用されるべき秘密鍵シェアを生成するステップであって、前記閾値署名方式では、少なくとも閾値の秘密鍵シェアが前記議会に代わってトランザクションに署名するために使用されなければならず、前記秘密鍵シェアの他の保持者は、前記議会プールへのそれぞれのデジタルアセットの転送により許可無しで前記議会に参加している、前記議会の前記他のメンバーである、ステップを更に含む、請求項１又は２に記載のコンピュータにより実施される方法。
【請求項４】
前記proof−of−stakeブロックチェーンネットワーク上の前記デジタルアセットを前記proof−of−workブロックチェーンネットワークへ転送して戻すための要求を、前記proof−of−stakeブロックチェーンネットワーク上で、検出するステップと、
前記要求を検出することに応答して前記秘密鍵シェアを使用して、前記議会プールに関連付けられた前記アドレスからのトランザクションに協力して署名するステップと、
を更に含む請求項３に記載のコンピュータにより実施される方法。
【請求項５】
前記要求の検出後に、少なくとも閾数のブロックが前記proof−of−stakeブロックチェーンネットワークのブロックチェーンに追加されたと決定するステップを更に含み、前記秘密鍵シェアを使用するステップは、少なくとも前記閾数のブロックが前記proof−of−stakeブロックチェーンネットワークのブロックチェーンに追加されたと決定することに応答する、請求項４に記載のコンピュータにより実施される方法。
【請求項６】
少なくとも閾数のブロックがproof−of−stakeブロックチェーンネットワークのブロックチェーンに追加されているという決定は、前記ノード上の信頼できる実行環境内で実行される、請求項５に記載のコンピュータにより実施される方法。
【請求項７】
前記秘密鍵シェアを使用するステップの前に、信頼できる実行環境内で前記要求の有効性を確認するステップを更に含む請求項５又は６のいずれか一項に記載のコンピュータにより実施される方法。
【請求項８】
前記proof−of−stakeブロックチェーンネットワーク上で、前記要求に関連付けられた前記デジタルアセットを前記要求により焼却するステップ、を更に含む請求項４乃至７のいずれか一項に記載のコンピュータにより実施される方法。
【請求項９】
前記閾値署名方式は、楕円曲線デジタル署名アルゴリズムである、請求項３乃至８のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１０】
前記秘密鍵シェアを生成するステップ、及び前記秘密鍵シェアを使用するステップは、前記ノード内の信頼できる実行環境において実行される、請求項３乃至９のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１１】
前記proof−of−stakeブロックチェーンネットワーク上で作り出すステップは、前記proof−of−stakeブロックチェーンネットワークにより選択されたノードにより実行され、前記ノードが選択される確率は、前記ノードが前記議会プールに預けたデジタルアセットの量に基づく、請求項１乃至９のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１２】
実行されると、請求項１乃至１１のいずれか一項に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含むコンピュータ可読記憶媒体。
【請求項１３】
電子装置であって、
インタフェース装置と、
前記インタフェース装置に結合されたプロセッサと、
前記プロセッサに結合されたメモリであって、前記メモリは、実行されると、請求項１乃至１１のいずれか一項に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能命令を格納している、メモリと、
を含む電子装置。
【請求項１４】
前記プロセッサは信頼できる実行環境を含み、前記コンピュータ実行可能命令は、前記信頼できる実行環境内で実行される、請求項１３に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して分散台帳に関し、特に、複数のデジタル台帳の中の特定アドレスに関連付けられたデジタルアセットに対する分散型制御を提供する方法及びシステムに関する。本発明は、特に、限定ではないが、プルーフオブワーク（proof−of−work）ブロックチェーンネットワーク上のトランザクションをプルーフオブステーク（proof−of−stake）ブロックチェーンネットワーク上のトランザクションと協調させる際の使用に適する。
【背景技術】
【０００２】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、限定ではないが、ブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。
【０００３】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳である。また、ブロックはトランザクション及び他の情報により構成される。ビットコインの場合には、各トランザクションは、ブロックチェーンシステム内で参加者間のデジタルアセットの制御の転送を符号化するデータ構造であり、少なくとも１つのインプット及び少なくとも１つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【０００４】
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。幾つかのネットワークノードは、マイナーとしての機能を果たし、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。例えば、ノードにインストールされたソフトウェアクライアントは、未使用トランザクションアウトプット（unspent  transaction  outputs：UTXO）を参照するトランザクションに対して、この検証作業を実行する。検証は、そのロック及びアンロックスクリプトを実行することにより実行されてよい。ロック及びアンロックスクリプトの実行が真と評価した場合、及び特定の他の条件が満たされた場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、ｉ）トランザクションを受信したノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ｉｉ）マイナーにより構築された新しいブロックに追加し、ｉｉｉ）マインされ、つまり過去のトランザクションの公開台帳に追加されなければならない。トランザクションは、充分な数のブロックがブロックチェーンに追加されて、トランザクションが事実上不可逆にされると、確認されたと見なされる。
【０００５】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、ビットコインの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、単に暗号通貨建ての支払に限定されない自動タスク及びプロセスのために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点（例えば、永久的、イベントの耐タンパレコード、分散プロセス、等）を利用できる。
【発明の概要】
【０００６】
ブロックチェーン技術が新たな特徴を提供するために拡張されるとき、ブロックチェーンのセキュリティ及びそこで提示されるデジタルアセットが維持されることが重要である。ブロックチェーンに依存する拡張特徴セットは、不正パーティからの攻撃を受け得る。したがって、ブロックチェーン又はブロックチェーンの新たな特徴に追加セキュリティを提供する、又はブロックチェーンの完全性（integrity）を維持するためにデジタルアセットに対する所有権を制御する、方法及び装置を提供することが有用であり得る。
【０００７】
さらに、ブロックチェーンに対する新たな改良又は変更が開発されるとき、両方のブロックチェーンの完全性を維持しながら、デジタルアセットをあるブロックチェーンから別のブロックチェーンへ転送する技術を有することが有用である。したがって、上述の態様のうちの１つ以上において、ブロックチェーン技術を向上する改良された方法及び装置を提供することが望ましい。
【０００８】
例えば、幾つかの適用では、別のブロックチェーンに関連付けられたあるブロックチェーンを提供することが望ましい場合があることが認識されている。このようなブロックチェーンは、別のブロックチェーンの「サイドチェーン（side−chain）」と呼ばれている。他のブロックチェーンと同様に、サイドチェーンをセキュアにする必要がある。歴史的に、例えばビットコインのようなブロックチェーンシステムは、セキュリティを提供するためにマイニングに依存する。しかしながら、サイドチェーンはメインブロックチェーンに従属するので、サイドチェーン上でアセットを発行するための簡単な機会は存在しない。したがって、マイニング以外のメカニズムにより、どのようにサイドチェーンをセキュアにするかという技術的問題がある。文献では、１つの可能なアプローチは、メインブロックチェーンから引き出されたアセット、「掛け金（stake）」を介してサイドチェーンをセキュアにすることであることが認識されている。しかしながら、このような「proof−of−stake」の原理をサイドチェーンにどのように効果的に提供するかも不明確である。例えば、前述の問題は、イーサリアム（Ethereum）ブロックチェーンプロジェクトの創設者且つ主席科学官であるVitalik  Buterinにより、「Side  Chains:  The  How,  The  Challenges  and  the  Potential」、Bitcoin  Magazine  April  １５,  ２０１４,  https://bitcoinmagazine.com/articles/side−chains−challenges−potential/から入手可能、において認識されている（しかし解決していない）。該文献の内容は参照によりその全体がここに組み込まれる。したがって、「proof−of−stake」の原理をサイドチェーンに可能にすることが望ましい。例えば、例えばproof−of−workブロックチェーンのような第１ブロックチェーン上のアセットをロックさせ、その結果、それらがサイドチェーンに対してproof−of−stakeとして動作できるようにすることが望ましい場合がある（サイドチェーンは、実際に、proof−of−stakeブロックチェーンである）。
【０００９】
したがって、本発明によると、添付の請求の範囲に定められるような方法が提供される。
【００１０】
以下に更に詳述するように、議会（congress）がブロックチェーンネットワーク上に形成されてよい。議会は、充分な掛け金（stake）を議会に関連付けられたプールに提出することでブロックチェーンネットワーク内の任意のノードにより参加されてよい開放型メンバーシップグループであってよい。例えば、ノードは、（ビットコインのような）デジタル通貨、トークン、又は他の掛け金若しくは価値のようなデジタルアセットの、議会に関連付けられたアカウントへの転送を通じて議会に参加してよい。
【００１１】
一旦形成されると、議会は、proof−of−workブロックチェーン上の特定アセットをロックするために使用されてよい。その結果、対応するアセットは、proof−of−stakeブロックチェーン上で提供され操作されてよい。さらに、議会は、proof−of−stakeブロックチェーン上のアセットをロックするために使用でき、その結果、対応するアセットはproof−of−workブロックチェーン上で解放（release）されてよい。好都合なことに、この方法では、議会は、ブロックチェーンに跨りアセットの分散ロックを提供するよう動作してよい。言い換えると、議会は、proof−of−workブロックチェーンとproof−of−stakeブロックチェーンとの間の双方向ペッグを提供するために使用されてよい。デジタル署名による、proof−of−workプロトコルとの許可無し相互作用は、このような双方向ペッグを提供するために使用されてよい。
【００１２】
したがって、本発明によると、コンピュータにより実施される方法が提供され得る。コンピュータにより実施される方法は、proof−of−workブロックチェーンネットワーク内で動作するノードにより、１つ以上のデジタルアセットを、議会の他のメンバーに関連付けられた１つ以上の他のデジタルアセットを有する議会プールへ転送することにより、議会に参加するステップと、前記ノードにより、前記議会プールに関連付けられたアドレスへの前記proof−of−workブロックチェーンネットワーク上のデジタルアセットの特別トランザクションを検出するステップであって、前記特別トランザクションは決定された基準を満たす、ステップと、前記特別トランザクションを検出することに応答して、前記ノードにより、proof−of−stakeブロックチェーンネットワーク上で１つ以上のデジタルアセットを作り出すステップと、を含む。
【００１３】
幾つかの実施形態では、コンピュータにより実施される方法は、proof−of−workブロックチェーンネットワーク内で動作するノードにより、１つ以上のデジタルアセットを、議会の他のメンバーに関連付けられた１つ以上の他のデジタルアセットを有する議会プールへ転送することにより、議会に参加するステップと、前記ノードにより、前記議会プールに関連付けられたアドレスへの前記proof−of−workブロックチェーンネットワーク上のデジタルアセットの特別トランザクションを検出するステップであって、前記特別トランザクションは決定された基準を満たす、ステップと、前記特別トランザクションの前記デジタルアセットを前記議会プール以外による転送に対してロックするステップと、前記特別トランザクションを検出することに応答して、前記ノードにより、proof−of−stakeブロックチェーンネットワーク上で１つ以上のデジタルアセットを作り出すステップであって、前記proof−of−stakeブロックチェーンネットワーク上の前記デジタルアセットは、前記proof−of−stakeブロックチェーンネットワークを用いて操作可能であり、前記ロックされたデジタルアセットに対応する、ステップと、を含む。
【００１４】
幾つかの実装では、前記コンピュータにより実施される方法は、前記特別トランザクションの検出後に、少なくとも閾数のブロックが前記proof−of−workブロックチェーンネットワークのブロックチェーンに追加されたと決定するステップを更に含んでよく、前記作り出すステップは、少なくとも前記閾数のブロックが追加されたと決定することに応答してよい。
【００１５】
幾つかの実装では、議会に参加するステップは、閾値署名方式で使用されるべき秘密鍵シェアを生成するステップであって、前記閾値署名方式では、少なくとも閾値の秘密鍵シェアが前記議会に代わってトランザクションに署名するために使用されなければならず、前記秘密鍵シェアの他の保持者は、前記議会プールへのそれぞれのデジタルアセットの転送により許可無しで又は許可無しに基づき前記議会に参加している、前記議会の前記他のメンバーである、ステップを更に含んでよい。
【００１６】
幾つかの実装では、前記コンピュータにより実施される方法は、前記proof−of−stakeブロックチェーンネットワーク上の前記デジタルアセットを前記proof−of−workブロックチェーンネットワークへ転送して戻すための要求を、前記proof−of−stakeブロックチェーンネットワーク上で、検出するステップと、前記要求を検出することに応答して前記秘密鍵シェアを用いて、前記議会プールに関連付けられた前記アドレスからのトランザクションに協力して署名するステップと、を更に含んでよい。前記コンピュータにより実施される方法は、前記要求の検出後に、少なくとも閾数のブロックがproof−of−stakeブロックチェーンネットワークのブロックチェーンに追加されているという決定するステップを更に含んでよい。前記秘密鍵シェアを使用するステップは、少なくとも前記閾数のブロックが前記proof−of−stakeブロックチェーンネットワークのブロックチェーンに追加されたと決定することに応答してよい。幾つかの実装では、少なくとも閾数のブロックがproof−of−stakeブロックチェーンネットワークのブロックチェーンに追加されているという決定は、ノード上の信頼できる実行環境内で実行されてよい。
【００１７】
幾つかの実装では、前記コンピュータにより実施される方法は、前記proof−of−stakeブロックチェーンネットワーク上で、前記要求に関連付けられた前記デジタルアセットを前記要求により焼却するステップ、を更に含んでよい。
【００１８】
幾つかの実装では、前記コンピュータにより実施される方法において使用される前記閾値署名方式は楕円曲線デジタル署名アルゴリズムである。
【００１９】
前記コンピュータにより実施される方法の幾つかの実装では、前記秘密鍵シェアを生成するステップ及び前記秘密鍵シェアを使用するステップは、前記ノード内の信頼できる実行環境において実行される。
【００２０】
前記コンピュータにより実施される方法の幾つかの実装では、前記proof−of−stakeブロックチェーンネットワーク上で作り出すステップは、前記proof−of−stakeブロックチェーンネットワークにより選択されたノードにより実行され、前記ノードが選択される確率は、前記ノードが前記議会プールに預けたデジタルアセットの量に基づく。
【００２１】
本発明によると、電子装置が提供され得る。電子装置は、インタフェース装置と、前記インタフェース装置に結合されたプロセッサと、前記プロセッサに結合されたメモリとを含む。前記メモリは、実行されると、本願明細書に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能を格納している。
【００２２】
本発明によると、コンピュータ可読記憶媒体が提供され得る。コンピュータ可読記憶媒体は、実行されると、本願明細書に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含む。
【００２３】
本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。
【図面の簡単な説明】
【００２４】
【図１】例示的なブロックチェーンネットワークのブロック図を示す。
【図２】ブロックチェーンネットワーク内のノードとして機能し得る例示的な電子装置のブロック図を示す。
【図３】議会を開始する例示的な方法のフローチャートである。
【図４】議会に参加する例示的な方法のフローチャートである。
【図５】デジタルアセットを没収する例示的な方法のフローチャートである。
【図６】鍵シェアを再分配する例示的な方法のフローチャートである。
【図７】鍵シェアを再分配する更に例示的な方法のフローチャートである。
【図８】デポジットを返す例示的な方法のフローチャートである。
【図９】第１及び第２のブロックチェーンネットワークのブロック図である。
【図１０】双方向ペッグを提供する例示的な方法のフローチャートである。
【発明を実施するための形態】
【００２５】
＜ブロックチェーンネットワーク＞
先ず、図１を参照する。図１は、ブロック図の形式で、ブロックチェーンに関連付けられた例示的なブロックチェーンネットワーク１００を示す。ブロックチェーンネットワークは、他のメンバーからの招待無しに又は承認無しに誰でも参加し得るピアツーピア開放型会員制ネットワークである、公開ブロックチェーンネットワークであってよい。ブロックチェーンプロトコルの下でブロックチェーンネットワーク１００が動作し、該ブロックチェーンプロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーンネットワーク１００に参加してよい。このような分散型電子装置は、ノード１０２として参照され得る。ブロックチェーンプロトコルは、例えばビットコインプロトコルであってよい。
【００２６】
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク１００のノード１０２を形成する電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバのようなコンピュータ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は他の電子装置を含む様々な種類であってよい。
【００２７】
ブロックチェーンネットワーク１００のノード１０２は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いに結合される。このような通信は、ブロックチェーンに関連付けられたプロトコルに従う。例えば、ブロックチェーンがビットコインブロックチェーンである場合、ビットコインプロトコルが使用されてよい。
【００２８】
ノード１０２は、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持する。したがって、グローバル台帳は分散台帳である。各ノード１０２は、グローバル台帳の完全コピー又は部分コピーを格納してよい。proof−of−workによりセキュアにされるブロックチェーンの場合、グローバル台帳に影響を与えるノード１０２によるトランザクションは、他のノード１０２により検証される。その結果、グローバル台帳の有効性が維持される。ブロックチェーンがproof−of−workに基づくブロックチェーンであるとき、ブロックも、ブロックと共に提出されるproof−of−workをチェックすることにより検証される。
【００２９】
ノード１０２の少なくとも幾つかは、ブロックチェーンネットワーク１００のマイナー１０４として動作する。図１のブロックチェーンネットワーク１００は、ブロックチェーン上のトランザクションを促進するために、マイナー１０４が費用の掛かる計算を実行するproof−of−workブロックチェーンである。例えば、proof−of−workブロックチェーンは、マイナーが暗号化問題を解くことを要求し得る。ビットコインでは、マイナー１０４がノンスを発見する。その結果、ブロックヘッダは、ＳＨＡ−２５６により、現在の採掘難易度（difficultly）により定められた値より小さい数にハッシュされる。proof−of−workアルゴリズムのために必要なハッシュ能力は、特定数のブロックがその上でマインされた後に、トランザクションが事実上不可逆であると見なされることを意味する。暗号化問題を解くマイナー１０４は、ブロックチェーンの新しいブロックを生成し、新しいブロックを他のノード１０２にブロードキャストする。他のノード１０２は、ブロックがブロックチェーンに追加されるべきであると受け入れる前に、マイナー１０４が実際に暗号化問題を解き、したがって充分なproof−of−workを立証したことを検証する。ブロックは、ノード１０２の総意により、ブロックチェーンに（つまり分散グローバル台帳に）追加される。
【００３０】
マイナー１０４により生成されたブロックは、ノード１０２によりブロックチェーンにブロードキャストされているトランザクションを含む。例えば、ブロックは、ノード１０２のうちの１つに関連付けられたアドレスからノード１０２のうちの別のものに関連付けられたアドレスへのトランザクションを含んでよい。このように、ブロックは、あるアドレスから別のアドレスへのトランザクションのレコードとして機能する。トランザクションがブロックに含まれることを要求したパーティは、彼らが転送を開始すること（例えば、ビットコインの場合には、ビットコインを使用すること）を認可されていることを、彼らの公開鍵に対応する秘密鍵を用いて要求に署名することにより、証明する。要求が有効に署名された場合のみ、転送はブロックに追加されてよい。
【００３１】
ビットコインの場合、公開鍵とアドレスとの間には１対１対応がある。つまり、各公開鍵は単一のアドレスに関連付けられる。したがって、本願明細書でデジタルアセットを公開鍵へ又は公開鍵から転送する（例えば、公開鍵に支払う）、及びデジタルアセットを公開鍵に関連付けられたアドレスへ又は該アドレスから転送するという言及は、共通の動作を表す。
【００３２】
ノード１０２のうちの幾つかは、マイナーとして動作しなくてよく、代わりに検証ノードとして参加してよい。トランザクションの検証は、署名をチェックすること、有効UTXOへの参照を確認すること、等に関連してよい。
【００３３】
図１の例は、５個のノード１０２を含み、そのうちの３個はマイナー１０４として参加している。実際には、ノード１０２又はマイナー１０４の数は異なってよい。多くのブロックチェーンネットワークでは、ノード１０２及びマイナー１０４の数は、図１に示した数より遙かに多くてよい。
【００３４】
後述のように、種々のノード１０２が、協力して、本願明細書で議会（congress）１１０と呼ばれるグループを形成する。図示の例では、３個のノード１０２が、議会１１０に参加しているように示される。しかしながら、議会１１０のメンバーの実際の数は、遙かに多くてよい。
【００３５】
議会１１０は、充分な掛け金（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）のような様々なプラットフォームを用いて実装されてよい。ＳＧＸは、例えば、リモートアテステーションをサポートする。リモートアテステーションは、enclaveが、署名されたステートメントを、クオート（quote）として知られるメンバーの与えられたハス（has）により特定のenclaveを実行しているプロセッサから取得することを可能にする。Intel  Attestation  Service（IAS）のような第三者アテステーションサービスは、これらの証明されたステートメントがSGX仕様に従う真正CPUから生じることを認定し得る。
【００４７】
電子装置２００は、ブロックチェーンネットワーク１００（図１）内のノード１０２（図１）として動作し、議会１１０（図１）に加わり又はその他の場合参加してよい。議会１１０は、デジタルアセット持参人のグループが、ブロックチェーンネットワーク１００（図１）によりサポートされるデジタル通貨、トークン、又は掛け金若しくは価値のようなデジタルアセットをプールするとき、形成される。
【００４８】
＜議会及び閾値署名＞
議会１１０は、許可又は未許可グループであってよい。つまり、議会１１０は、ブロックチェーンネットワーク１００（図１）内の任意のノード１０２（図１）により（つまり、ブロックチェーン内の情報の少なくとも一部を監視し及び格納する任意のノードにより）参加されてよい。議会１１０に参加するために、ノード１０２は、１つ以上のデジタルアセットを議会１１０に関連付けられたデジタルアセットプールへ（つまり、１つ以上のデジタルアセットに関連付けられた公開グループアドレスへ、ここで、１つ以上のデジタルアセットは議会の他のメンバーに関連付けられている）転送する。このデジタルアセットプールは、議会プールと呼ばれることがある。例えば、ノード１０２は、このようなデジタルアセットを議会プールに関連付けられたアドレスへ（つまり、公開グループアドレスとも呼ばれることのある「議会アドレス」へ）転送する（つまり預ける）ことにより議会１１０に参加してよい。デジタルアセットは、議会公開鍵と呼ばれる、単一の公開鍵を有するグループ閾値署名の制御下に置かれる。議会メンバーは、分配法で生成された秘密鍵シェアを保持する。保持されるシェアの数は、プール内に預けられる量に比例してよい。
【００４９】
議会１１０により制御されるデジタルアセットは、議会アドレスへ転送された任意のデジタルアセットを含み、閾値署名方式の制御下に置かれる。閾値署名方式の下で、合計秘密鍵シェア保持が閾値を超えるメンバーのグループは、デジタルアセットを議会１１０の制御から離れて転送させることを可能にする有効署名を生成する必要がある。つまり、少なくとも閾数の秘密鍵シェアが、議会１１０により制御されるデジタルアセットの任意の外向き転送のための有効署名を生成するために使用されなければならない。
【００５０】
議会公開鍵は、秘密鍵シェアの見返りに議会１１０のメンバーにより議会プールに預けられたデジタルアセット、及び秘密鍵シェアを取得する以外の理由で預けられている、議会１１０のメンバー又は非メンバーにより議会プールに関連付けられたアドレスに預けられた（つまり、完全に、部分的に、又は条件付きで議会の制御下に置かれた）任意のデジタルアセットを妨げる（encumber）。非メンバー又はメンバーは、様々な理由で議会に関連付けられたアドレスにデジタルアセットを預けてよい。以下に詳述する一例では、メンバー又は非メンバーは、デジタルアセットをサイドチェーンのような、代替チェーン（alternative  chain、alt−chain）と呼ばれることのある別のブロックチェーンへ移動するために、該デジタルアセットを議会１１０に預けてよい。サイドチェーンは、メインブロックチェーンと並行して（つまり、メインチェーンと並行して）実行するブロックチェーンであってよい。
【００５１】
同じ議会公開鍵はメンバーデポジット（つまり、秘密鍵シェアの見返りに議会メンバーにより提供されたデジタルアセット）及び他の目的でメンバー又は非メンバーにより提供されたデジタルアセットの両方を制御し得るので、議会に関連付けられたアドレスへの少なくとも幾つかのデポジットは、デポジットの種類を示すために特別に注意を与えられてよい。例えば、デジタルアセットを議会アドレスへ転送するトランザクションは、フラグ、識別子、又は生成されるデポジットの特性を示す他の属性を含んでよい。例として、議会に参加する又は議会メンバーシップにおいて掛け金を高める目的のために生成されていないデジタルアセットを議会アドレスへ転送するトランザクションは、デポジットが別の目的で生成されていることを示すための特別な識別子を含んでよい。このような識別子は、秘密鍵生成を管理するとき、議会１１０に関連付けられたノード１０２により使用されてよい。特に、グループに参加する目的でデジタルアセットを預けるノード１０２は、（デジタルアセットのデポジットを行う結果として）議会１１０の秘密鍵シェアを割り当てられる。一方で、他の目的で（例えば、サイドチェーンへ転送するために）デジタルアセットを預けた他のノード１０２は、（議会公開鍵に対応する）議会の議会秘密鍵シェアを保持しなくてよい。
【００５２】
議会１１０は、メンバーデポジットの全部又は部分の没収（confiscation）の脅威を通じて協力動作が強制される自律グループとして動作してよい。非協力又は不正メンバーは、多数の正直メンバーによる協力プロトコルへの参加により、このようなデジタルアセットを没収させ得る。つまり、全てのノード１０２が所定プロトコル又は基準に従い動作することを保証するために、議会プールへのメンバーデポジットは没収を受けることがある。没収は、没収されると見なされたメンバーデポジットの返還を永久的に妨げることを意味する。不正行為により返還されないメンバーデポジットを形成するデジタルアセットは、議会プールに残され得るが、返還されず（例えば、（alt−chain上で）それらが返還されるべきではないという総意に達した場合）、直ちに又は将来に別の使用不可アドレスへ転送され、又はその他の場合、没収される。没収の特性は、議会がサイドチェーンの結合した検証器セットとして機能するか否かに依存してよい。
【００５３】
さらに、議会メンバーが議会１１０を退去したいと望むとき、彼らは、彼らのメンバーデポジットを回収してよい（つまり、議会１１０がメンバーデポジットを該メンバーの個人アドレスへ転送して戻すことを要求する）。しかしながら、資金の回収は、有効デジタル署名を生成するために必要な閾値を超える数の秘密鍵シェアが回収を認可するためにグループ（つまり、議会）のメンバーにより使用される場合にのみ、実行される。
【００５４】
議会１１０により実装される閾値署名方式は、様々な種類であってよい。閾値署名方式は、少なくとも閾数の秘密鍵シェアが有効署名を生成することに貢献している限り、ｎ個のパーティの間で署名を共有する能力を可能にする。閾値より少ない任意のサブセットは、有効署名を生成できない。特に、パーティの各々は秘密署名鍵のシェアを制御し、閾数の鍵シェアが、部分署名の結合を通じて有効署名を生成するために使用されなければならない。閾値より少ない鍵シェアの任意のサブセットは、有効署名を生成できない。
【００５５】
閾値署名方式は、楕円曲線デジタル署名アルゴリズム（Elliptic  Curve  Digital  Signature  Algorithm：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により提案されたＥＣＤＳＡ方式は、最大ｔ＜＝ｎ／４の不正敵対者に対してロバストである。このロバスト性は、ｔ＝＜ｎ／３まで上昇し得るが、より大きな複雑性というコストがかかる。
【００５７】
Ibrahim他のECDSA方式は、休止しているｔ＝＜ｎ／３の休止敵対者に対してロバストである。休止敵対者は、堕落したパーティがプロトコルに参加するのを防ぐ又は参加を途中で停止することができる。
【００５８】
このECDSA方式は、ノード１０２により不正又は非協力的パーティを識別するために使用され得る様々なメカニズムを含む。例えば、検証可能シークレット共有（verifiable  secret  sharing：VSS）は、Shamirのシークレット共有（Shamir’s  Secret  Sharing：SSS）のために必要な多項式を共有するために使用され得る。SSSは、シークレットが部分に分けられ、それ自体のユニークな部分への各々の参加に提供される、シークレット共有の形式である。これらの部分は、シークレットを再構成するために必要であり得る。VSSは、矛盾したシェアが異なるノード１０２に提供された場合、又はシェアが全ノードにブロードキャストされる隠れシェアと異なり、シェアがノードへ秘密に送信された場合、ノード１０２により、不正ノード１０２又はメンバーを識別するために使用されてよい。矛盾したシェアは、ノード１０２のうちのいずれかにより識別されてよい。シークレットの共有は、ノード１０２がそれらのシェアを矛盾しないとして検証することを可能にする補助情報を含むことにより、検証可能にされ得る。
【００５９】
不正シェアの個々のノードへの送信（つまり、ブロードキャストされる隠れシェアと異なるシェア）は、シェアの意図された受信ノードにより識別できる。ノードへ秘密に送信されている不正シェアの識別は、公然検証可能なシークレット共有（Publically  Verifiable  Secret  Sharing：PVSS）の技術を用いて公に検証可能にできる。このような技術は、ＰVSSが使用されず及び不正シェアが送信されるときに不正シェアの受信側がオフラインである若しくはネットワークの根本部分から切り離されている場合に起こり得る、不正送信者の識別において起こり得る遅延を回避し得る。
【００６０】
矛盾したシェアを異なるノードに提供するような不正行為は、悪意ある行為を阻止する議会１１０により解決され得る。例えば、ノード１０２（図１）が他のノード１０２により不正パーティとして識別されると、閾値（例えば、ｔ＋１）を超えるノード１０２のメンバー（つまり、議会メンバーに関連付けられたノード）は、不正パーティにペナルティを科すために協力してよい。例えば、ノード１０２は、不正パーティにより議会に預けられた（デジタル通貨、トークン、又は他の掛け金若しくは価値）デジタルアセットに関連する措置を行ってよい。例えば、議会は、デジタル通貨、トークン、掛け金若しくは価値を使用不可アドレスへ転送することにより、それらを焼却（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）されてよい。つまり、後のいつかに、（不正メンバーを含まない）閾値のメンバーは、協力して、没収されたデジタルアセットの使用不可アドレスへの転送を認可してよい。
【００９１】
議会は、ブロックチェーンネットワーク１００の任意のノード１０２によりデジタルアセットのデポジットを通じて参加され得る開放型グループであるので、グループメンバーは周期的に変化してよい。このような変化が生じると、秘密鍵シェア分配が更新されてよい。図６を参照すると、秘密鍵シェア分配を更新する例示的な方法６００が示される。方法６００は、ブロックチェーンネットワーク１００の他のノードと協力して、ブロックチェーンネットワーク１００のノード１０２により実行されてよい。
【００９２】
＜新しい公開アドレスを用いて秘密鍵シェア分配を更新する＞
方法６００の動作６０２で、ノード１０２は、再分配要求を検出する。再分配要求は、その履行が鍵シェアの再分配を伴う要求である。例えば、ノード１０２は、見込み新メンバーがデジタルアセットを公開グループアドレスへ転送すること、又は既存メンバーがメンバーデポジットの回収を要求したことを検出してよい。
【００９３】
デジタルアセットは、議会に参加すること又は議会における彼らの関与を増大することを要求するノードにより、又は議会に参加することを要求しないが代わりに（例えば、上述のようにサイドチェーンへデジタルアセットを転送するような）別の目的でデジタルアセットを議会へ転送する他のノードにより、公開グループアドレスに転送されてよい。動作６０２で、ノード１０２は、議会メンバー（つまり、議会に参加するために及び別の目的ではなくデジタルアセットを議会公開鍵へ転送したパーティ）を、公開グループアドレスへのデジタルアセットのトランザクションの少なくとも一部に含まれる１つ以上の属性を用いて、識別してよい。例えば、特定のトランザクションは、トランザクション内の属性を用いて特別トランザクションとして注意を与えられてよい。このような属性（又はその存在若しくは不存在）は、転送が行われる目的を示してよい。例えば、転送者が議会に参加することを要求していないとき、フラグがトランザクションに含まれてよい。
【００９４】
動作６０２で要求を検出することに応答して、動作６０４で、該要求の履行は、鍵シェアの再分配を伴う。新しい秘密鍵シェアが、ノード１０２により、図４の方法４００の動作４０８で秘密鍵シェアが生成された方法と同様の方法で生成される。議会の他のメンバーノードも、それぞれの秘密鍵シェアを生成する。これらの秘密鍵シェアは、新しい議会公開鍵に対して閾値署名方式で使用されてよい。この時点で議会を去るメンバーは、動作６０４の間に新しい秘密鍵シェアを生成しない。彼らは、新しい議会公開鍵と共に使用するための秘密鍵シェアを割り当てられないので、彼らは、議会に参加する能力を失い、もはや議会メンバーと考えられない。
【００９５】
さらに、再分配要求（これは、その履行が鍵シェアの再分配を伴う要求である）を検出することに応答して、動作６０６で、ノード１０２は、他の議会メンバーと協力して、公開グループアドレス内の全部のデジタルアセットを、新しい公開鍵に関連付けられた新しい公開アドレス（これは、次に新しい議会公開鍵になる）へ転送する。
【００９６】
したがって、図６の方法６００によると、デポジットの分配が変化すると、又はデポジットを回収する要求がメンバーから受信されると、秘密鍵シェアが再生成されてよく、議会の制御下にあるデジタルアセットの全部が新しい公開鍵へ移動されてよい。議会のメンバーシップが更新され得る頻度は、ブロックチェーンネットワーク１００のブロック時間により制限される。多くのアプリケーションは、低い頻度でのみ再バランスを要求し得る。
【００９７】
＜既存公開グループアドレスを保持しながら、秘密鍵シェア分配を更新する＞
図７を参照すると、秘密鍵シェア分配を更新する更なる例示的な方法７００が示される。方法７００は、ブロックチェーンネットワーク１００の他のノードと協力して、ブロックチェーンネットワーク１００のノード１０２により実行されてよい。
【００９８】
図７の方法７００では、議会公開鍵は、メンバーデポジットの分配が変化する度に変化しない。新しい鍵シェアを割り当てる要求が検出されると（動作７０２で、これは、デジタルアセットの公開グループアドレスへのデポジットを通じて生じてよい）、ノード１０２は、議会の他のメンバーと協力して、（動作７０４で）同じ公開鍵に対する新しい秘密鍵シェアをグループの新しいメンバーに発行する。協力するノードの数は、少なくとも、閾値署名方式の下でデジタル署名を生成するために必要なノードの閾数である。動作７０４で、追加鍵シェアが割り当てられてよく、一方で他の鍵シェアは同じままである。これは、変化が実際には小さいものであり得るが、（閾値署名方式の）閾値の変化を伴ってよい。代替として、動作７０４で、追加鍵シェアが割り当てられてよく、一方で他の鍵シェアは更新される。このような更新は、前の生成の任意の鍵シェアの削除のアテステーションを伴うことが必要である。この場合、（SSSのコンテキストでは、これは新しい多項式における、昇順の（increased  order）共有を含む）同じ閾値を維持しながら、新しいシェアが割り当てられてよい。
【００９９】
動作７０２で、ノード１０２は、議会メンバー（つまり、議会に参加するために及び別の目的ではなくデジタルアセットを議会公開鍵へ転送したパーティ）を、公開グループアドレスへのデジタルアセットのトランザクションの少なくとも一部に含まれる１つ以上の属性を用いて、識別してよい。例えば、特定のトランザクションは、トランザクション内の属性を用いて特別トランザクションとして注意を与えられてよい。このような属性（又はその存在若しくは不存在）は、転送が行われる目的を示してよい。例えば、転送者が議会に参加することを要求していないとき、フラグがトランザクションに含まれてよい。
【０１００】
メンバーが方法７００を使用する議会を退去するとき、彼らは彼らの秘密鍵シェアをセキュアに削除してよい。古いメンバーの秘密鍵シェアが使用できないことを保証するために、議会のメンバーは、特別なTEEを有するノード１０２を使用することを要求されてよい。TEEは、それらの内部で実行される命令及びデータがシステムの残りの部分からのアクセス及び操作に対して保護されることを保証する、ハードウェアレベルで実装されるアーキテクチャである。TEEは、ハードウェアメカニズムを利用して、議会の他のノードのような外部パーティに対してシステムの完全性を検証するために使用可能なリモートアテステーションチャレンジに応答してよい。
【０１０１】
各メンバーノードは、集積回路レベルのハードウェアを危険に晒すことなくホストシステムにアクセスできないままの１つ以上のランダムシークレット値を生成するよう構成される認定TEEを使用してよい。このように生成されたシークレット値は、秘密鍵シェアの分散生成において（例えば、図４の方法４００の動作４１０で）使用され得る。このシークレット値は、議会の設立段階で共有公開鍵を確立するためにも使用され得る。設定プロトコルに関連付けられた計算は、TEE  enclave内で実行される。その結果、いかなるメンバー又は前のメンバーも、彼ら自身の又は他者の秘密鍵シェアに関するいかなる情報も、メンバー間通信から又は任意の他の方法から引き出すことができない。TEE内のenclaveは、リモートアテステーションプロトコルが実行されることを可能にする。リモートアテステーションプロトコルは、TEEenclaveが認証されること及び認可されたコンピュータ可読命令を実行していることを他のノードに証明するために使用されてよい。
【０１０２】
グループ変化に関連する計算は、TEE  enclave内で実行される。例えば、SSSの目的で新しい多項式を計算する際に使用され得る新しいセキュアランダムシークレットの生成は、TEE  enclave内で実行される。
【０１０３】
TEE  enclaveは、また、メンバーデポジットが返却され得る前に、もはや使用されるべきではない前の鍵シェア及び前のシークレットがセキュアに削除されたことを保証することを目的とする。特に、メンバーデポジットを返却するために、アテステーションプロトコルは、TEE  enclaveが鍵シェアの削除を証明することを要求してよい。各ノード１０２は、このようなアテステーションを、要求された削除が他のノード上で生じたことの、リモートアテステーションプロトコルを通じた確認として解釈してよい。したがって、方法７００は、議会から去ったメンバーのTEE内に前に保持された秘密鍵シェアが、該メンバーに関連付けられたノードから削除されたことを確認するステップ、を更に含んでよい。この確認は、秘密鍵シェアの削除のアテステーションを受信することにより実行されてよい。したがって、リモートアテステーションプロトコルが、議会を去ったメンバーのTEE内に前に保持された秘密鍵シェアの削除に対するアテステーションを取得するために使用されてよい。
【０１０４】
図６の方法６００及び図７の方法７００は、それぞれ様々な利益を提供する。例えば、図６の方法６００は、セキュアな削除に依存せず、信頼できるハードウェアに依存する必要がない。しかしながら、図６の方法６００は、幾つかの状況では、このようなハードウェアが鍵シェアの不正プールを一層起こりにくくし得るので、このようなハードウェアから利益を享受し得る。
【０１０５】
図７の方法７００は、メンバーシップが変化する度に、新しい議会公開鍵の下でデジタルアセットを再ロックしなければならないことを回避する。さらに、幾つかの状況では、方法７００は、図６の方法６００より速くメンバーシップを更新し得る。これは、図７の方法７００の下では、デジタルアセットが新しい公開鍵に移動されないので、全てのデジタルアセットを新しい公開鍵へ移動するために、トランザクションがブロックチェーンに追加される必要がないからである。つまり、メンバーシップは、図７の方法７００を用いて更新されてよく、公開鍵が変化しないので、デジタルアセットの新しい公開鍵への転送を確認するために幾つかのブロックが生成されるのを待つ必要がない。
【０１０６】
＜議会からの抹消＞
上述のように、グループメンバーは、時折、議会を去ることを要求することがある。グループメンバーが議会から抹消するとき、かれらが議会プールに預けたデジタルアセットは彼らに返却されてよい。図８を参照すると、デポジットを返却する例示的な方法８００がフローチャートの形式で示される。方法は、議会の他のノード１０２と協力して、ノード１０２により実行されてよい。
【０１０７】
方法８００の動作８０２で、ノード１０２は、議会メンバーである要求者から回収要求を受信する。回収要求は、抹消要求とも呼ばれてよい。回収要求は、要求者により前に預けられ現在は議会により制御されるデジタルアセットを回収するための要求である。要求は、要求者により議会メンバー全員にブロードキャストされてよい。
【０１０８】
要求を受信することに応答して、動作８０４で、ノード１０２は決定された基準に対して要求を評価する。このような基準は所定基準であってよい。議会が、グループメンバーシップが変化する度に議会公開鍵が変更されない議会プロトコルに従い動作する場合、動作８０４で、ノード１０２は、秘密鍵シェアが要求者により削除されたことを確認してよい。このような確認は、TEEに関連付けられたリモートアテステーションプロトコルを用いて取得されてよい。
【０１０９】
議会プロトコルが、メンバーシップが変化するとき議会公開鍵が変更されるものである場合、秘密鍵シェアはもはや有効ではないので、ノード１０２は、秘密鍵シェアの削除を確認しなくてよい。代わりに、新しい議会鍵が使用されてよく、議会の制御下にある他のデジタルアセットは、新しい議会鍵へ転送されてよい。
【０１１０】
ノード１０２が評価に基づき回収要求を認可した場合、動作８０６で、ノードはデジタルアセットの回収を促進する。つまり、ノード１０２は、自身の秘密鍵シェアを使用して、デジタル署名を協力して生成し、要求者により前に預けられたデジタルアセットを要求者へ転送して戻すためにデジタル署名を使用する。例えば、デジタルアセットは、それらが前に受信されたアドレスへ送り返されてよい。動作８０６は、閾値署名方式に従い実行される。その結果、回収は、少なくとも閾数の議会メンバーが回収を承認した場合にのみ有効になる。動作８０６は、抹消を望むメンバーがある時間期間の間、活動を一時停止された後に、実行される。この待機期間は、メンバーのメンバーデポジットの返却のためのプロトコルが実行されている間、メンバーが不正行為に従事するのを防ぐ。
【０１１１】
議会プロトコルは、多数の異なる目的で使用されてよい。議会は、様々な機能を実行するセキュアなメカニズムを提供する。議会は、信用できるよう動作しなくてよく、デジタルアセットに対する所有権の制御を提供する。
【０１１２】
議会プロトコルは、例えば、セキュアな許可不要proof−of−workブロックチェーンとセキュアな許可不要proof−of−stakeブロックチェーンとの間の双方向ペッグを実施するために使用されてよい。双方向ペッグは、あるブロックチェーンから別のブロックチェーンへのデジタルアセットの効率的転送及び返却を可能にするメカニズムである。特に、デジタルトークンは、メインチェーンと呼ばれ得るメインブロックチェーンネットワークから、サイドチェーン又はalt−chainと呼ばれ得る別個の２次的なブロックチェーンネットワークへ転送されてよい。このメカニズムは、特別に構成されたメカニズムである必要がない。実際に、後述する技術は、（ビットコインのような）メインチェーン上の既存プロトコルと共に動作する。この技術は、デジタル署名を用いてデジタルアセットの転送を認証する任意のメカニズムと共に動作する。以下に更に詳細に記載するように、メインチェーンからの転送は、メインチェーン上のデジタルアセットの一時的ロックにより、サイドチェーン上で対応するデジタルアセットを作り出す（minting）サイドチェーンのマイナーを伴い、達成される。サイドチェーンからメインチェーンへの転送も、この動作がメインチェーン上の等価な量のデジタルアセットのアンロックをもたらすメカニズムが存在するとき、サイドチェーン上のデジタルアセットを焼却することにより実行されてよい。
【０１１３】
＜複数のブロックチェーンネットワークを有するシステム＞
図９を参照すると、例示的な第１及び第２ブロックチェーンネットワークのブロック図が示される。第１ブロックチェーンネットワーク９００は、proof−of−workブロックチェーンネットワークである。第１ブロックチェーンネットワーク９００は、図１を参照して上述した種類であってよい。第１ブロックチェーンネットワーク９００は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いに結合される多数のノード１０２ａ、１０２ｂを含む。
【０１１４】
第１ブロックチェーンネットワーク９００のノード１０２ａ、１０２ｂは、第１ブロックチェーン（これはメインチェーンと呼ばれ得る）上の全てのトランザクションのグローバル台帳を維持する。ノード１０２ａ、１０２ｂのうちの少なくとも幾つかは、第１ブロックチェーンネットワーク９００のマイナー１０４として動作する。
【０１１５】
第２ブロックチェーンネットワーク９０２は、proof−of−stakeブロックチェーンネットワークである。第２ブロックチェーンネットワーク９０２は、互いに結合され第２ブロックチェーンネットワーク９０２のグローバル台帳を維持する複数のノード１０２ｃ、１０２ｄを含む。第２ブロックチェーンネットワーク９０２のグローバル台帳は、第１ブロックチェーンネットワーク９００のグローバル台帳と別個であり異なる。第２ブロックチェーンネットワーク９０２のグローバル台帳は、サイドチェーンと呼ばれてよい。
【０１１６】
proof−of−stakeに基づく第２ブロックチェーンネットワーク９０２は、総意を達成するための代替メカニズムを提供する。proof−of−stakeブロックチェーンネットワークでは、ブロックチェーンは、proof−of−workではなくproof−of−stakeによりセキュアにされる。proof−of−stakeの下では、マイナー９０６は、デジタルアセットのセキュリティデポジットを預け、ブロックをマインすべきノードとして選択される確率はセキュリティデポジットとして提供されるデジタルアセットの量に比例する。proof−of−stakeブロックチェーンシステムは、proof−of−workブロックチェーン上でマイニングするために必要な計算上の費用及びエネルギを回避するために使用できる。さらに、proof−of−stakeブロックチェーンは、proof−of−workブロックチェーンより高い頻度及びより規則的なブロック生成を可能にできる。
【０１１７】
第２ブロックチェーンネットワーク９０２は、適切な通信技術を用いて一緒に結合される多数のノード１０２ｂ、１０２ｃも含む。これらのノード１０２ｂ、１０２ｃは、第２ブロックチェーンネットワーク９０２のグローバル台帳を維持する。
【０１１８】
複数のノード１０２ｂは、第２ブロックチェーンネットワーク９０２のマイナー９０６として機能する。第２ブロックチェーンネットワーク９０２はproof−of−stakeブロックチェーンネットワークなので、マイナー９０６は、マイナーとして含まれるためにデジタルアセットを預ける。特に、サイドチェーンのマイナー９０６は、第２ブロックチェーンネットワーク９０２上でマイニングするために結合検証器セットを形成する。これらのマイナー９０６は、第１ブロックチェーンネットワーク９００に関連付けられた議会１１０のメンバーでもある。つまり、第１ブロックチェーンネットワーク９００及び第２ブロックチェーンネットワーク９０２の両方の部分であるノード１０２ｂは、第２ブロックチェーンネットワーク９０２のマイナー９０６として、及び第１ブロックチェーンネットワーク９００上に設立された議会１１０のメンバーとして動作する。これらのマイナー９０６は、上述の方法に従い、議会１１０に加わり、議会１１０に参加する。デジタルアセットの議会プールへの彼らのデポジットは、メインチェーン内に作成される。つまり、議会メンバーは、彼らの「掛け金（stake）」をproof−of−work第１ブロックチェーンネットワーク９００に預け、第１ブロックチェーンネットワーク９００の議会メンバーになり、結合検証器セットを形成することにより第２ブロックチェーンネットワーク９０２上でマイナー９０６としても動作する。第１ブロックチェーンネットワーク９００へのメンバーデポジットは、第２ブロックチェーンネットワーク９０２に対するセキュリティデポジットとして機能する。
【０１１９】
また、メンバーの保持する秘密鍵シェアの数は、メンバーのセキュリティデポジットの量に基づくので、並びに、このようなデポジットは不正行為に対して没収を受けるので、議会の活動により大きな影響を有するメンバー（つまり、より多くの秘密鍵シェアを保持しているメンバー）は、より少ない影響を有するメンバーより多くを失わなければならない。議会１１０は、充分な掛け金を議会１１０に関連付けられたプールに提出することで任意のノードにより参加されてよい開放型メンバーシップグループである。議会メンバーは第２ブロックチェーンネットワーク９０２上のマイナーであるので、彼らは、第２ブロックチェーンネットワーク９０２上で新しいデジタルアセットを生成でき、デジタルアセットを第１ブロックチェーンネットワーク９００から第２ブロックチェーンネットワーク９０２へ効率的に転送する。議会１１０は、proof−of−workブロックチェーンとproof−of−stakeブロックチェーンとの間の双方向ペッグを提供するために使用されてよい。
【０１２０】
図９に示されるノード１０２ａ、１０２ｂ、１０２ｃは、図２を参照して上述した種類の電子装置２００であってよい。
【０１２１】
＜双方向ペッグ＞
ここで図１０を参照すると、図１０は、双方向ペッグを提供する例示的な方法１０００をフローチャートの形式で示す。方法１０００は、第１ブロックチェーンネットワーク９００（つまりproof−of−workブロックチェーンネットワーク）及び第２ブロックチェーンネットワーク９０２（つまりproof−of−stakeブロックチェーンネットワーク）の両方で動作するノード１０２ｂにより実行されてよい。コンピュータ可読命令は、このようなノードのメモリに格納されてよい。これらの命令は、ノードのプロセッサにより実行されると、方法１０００を実行するようプロセッサを構成する。
【０１２２】
動作１００２で、ノード１０２ｂは議会に加わる。議会は、図４を参照して上述した方法で参加されてよい。例えば、ノード１０２ｂは、１つ以上のデジタルアセットを議会公開鍵に関連付けられた公開グループアドレスに転送してよい。公開グループアドレスは、議会の他のメンバー（例えば、他のノード１０２ｂ）に関連付けられた１つ以上の他のデジタルアセットを有する。ノード１０２ｂが議会に加わるとき、ノード１０２ｂは、少なくとも閾値の秘密鍵シェアが議会に代わって有効署名を生成するために使用されなければならない閾値署名方式で使用するための秘密鍵シェアを生成する。上述のように、閾値署名方式は、楕円曲線デジタル署名アルゴリズム又はSchnorr方式に基づく閾値方式を含む様々な種類であってよい。
【０１２３】
秘密鍵シェアの他の保持者は、それぞれのデジタルアセットの公開グループアドレスへの転送により許可又は未許可に基づき議会に加わっている議会の他のメンバーである。
【０１２４】
動作１００４で、議会に加わったノード１０２ｂは、proof−of−stakeブロックチェーンネットワーク上で（例えば、第２ブロックチェーンネットワーク９０２上で）議会の他のメンバーと一緒に結合検証器セットを形成する。つまり、セキュリティとしてデジタルアセットのデポジット（このデポジットは「結合（bonding）」と呼ばれ得る）の後に、（デポジットを通じて第１ブロックチェーンネットワーク９００上に形成された）議会のメンバーは、今や第２ブロックチェーンネットワーク上のマイナーとして動作し、第２ブロックチェーンネットワーク９０２に対して周期的に新しいブロックを生成する。
【０１２５】
議会が形成された後に、議会メンバーであるノード１０２ｂは、動作１００６で、proof−of−workブロックチェーンネットワーク上のデジタルアセットのグループ公開アドレスへの特別トランザクションの確認を検出してよい。トランザクションは、トランザクションを議会に加わるために使用されるトランザクションから区別する所定基準を満たす場合、特別であると決定される。例えば、トランザクションは、特定フラグ、変数又は属性を含む場合に特別であると決定されてよい。特に、特別トランザクションはデジタルアセットをグループ公開アドレスへ転送するので、これらのアセットを議会プール以外にアクセス不可能にする効果を有する。言い換えると、トランザクションは、特別トランザクションのデジタルアセットを議会プール以外による転送からロックする効果を有する。
【０１２６】
特別トランザクションを検出した後に、ノード１０２ｂは、少なくとも閾数のブロックがproof−of−workブロックチェーンネットワークのブロックチェーンに追加されるまで待機してよい。この待機期間は、動作１００６でトランザクションを無効にし得る、proof−of−workブロックチェーンネットワークにおけるブロックチェーンの可能な再編成のリスクを低減し得る。したがって、図１０に示さないが、方法は、特別トランザクションを検出した後に、少なくとも閾数のブロックがproof−of−workブロックチェーンネットワークのブロックチェーンに追加されることを決定する動作を含んでよい。
【０１２７】
閾数のブロックがproof−of−workブロックチェーンに追加された後に、ノード１０２ｂは、（動作１００８で）proof−of−stakeブロックチェーンネットワーク上の対応するデジタルアセットを作り出す。これらのデジタルアセットは、特別トランザクションを検出することに応答して作り出され、動作１００６で検出された特別トランザクションの中のデジタルアセットの量に対応する量で作り出される。
【０１２８】
作り出されたデジタルアセットは、proof−of−stakeブロックチェーンネットワーク上で、１００６で検出された特別トランザクションを生成した公開鍵の所有者に関連付けられたアカウントに置かれる。定義により、proof−of−stakeブロックチェーンネットワーク上に作り出されたデジタルアセットは、proof−of−stakeブロックチェーンネットワークを用いて操作可能である（例えば、proof−of−stakeブロックチェーン上のアドレス間で転送できる）。さらに、それらはアセットをproof−of−workブロックチェーンネットワークからロックすることに応答して作り出されたので、それらはロックされたデジタルアセットに対応する。したがって、デジタルアセットをproof−of−workブロックチェーンネットワーク上の議会に転送するパーティは、proof−of−stakeブロックチェーンネットワーク上のデジタルアセットの制御を取り戻す。このパーティは、今や、例えばこれらのデジタルアセットを他のアカウントへ転送することを含む様々な方法で、これらのデジタルアセットを自由に使用できる。
【０１２９】
作り出すステップは、選択された議会メンバーにより実行される。特に、proof−of−stakeブロックチェーンネットワークのためにマイナー９０６としても動作する議会メンバーは、proof−of−stakeブロックチェーンネットワークによりブロックを生成するために選択される。ノードが選択される確率は、該ノードが資金を与えた（stake）デジタルアセットの量に基づく。確率は、ノードが議会公開鍵にデポジットしたデジタルアセットの量に比例してよい。
【０１３０】
後のいつかに、デジタルアセットの所有者は、それらをproof−of−workブロックチェーンネットワークに（つまり、メインチェーンに）転送して戻したいと望むことがある。そうするために、彼らは、デジタルアセットをproof−of−workブロックチェーンネットワークに転送して戻すための要求を発行してよい。このような要求は、proof−of−stakeブロックチェーンネットワーク上の特別トランザクションの形式で発行されてよい。このトランザクションは、特別使用不可アドレスへのトランザクションであるという点で特別であってよい。このアドレスは、送信者が資金をメインチェーンに転送して戻したいと望むとき、該資金が送信されるべきアドレスである。つまり、トランザクションは、アドレスが特別アドレスであるという点で特別であってよい。動作１０１０で、ノード１０２ｂは、proof−of−stakeブロックチェーンネットワーク上のデジタルアセットを、proof−of−workブロックチェーンネットワークへ転送して戻す要求を検出してよい。例えば、動作１０１０で、資金を特別アドレスへ送信するトランザクションのマイニングがあってよい。
【０１３１】
再編成を防ぐために、ノード１０２ｂは、動作１０１０で要求を検出した後に、少なくとも閾数のブロックがproof−of−stakeブロックチェーンネットワークのブロックチェーンに追加されるまで待機してよい。したがって、図１０に示さないが、方法１０００は、要求の検出後に、少なくとも閾数のブロックがproof−of−stakeブロックチェーンネットワークのブロックチェーンに追加されていることを決定する動作を含んでよい。
【０１３２】
このような要求を検出し、及び閾数のブロックがproof−of−stakeブロックチェーンに追加されていると決定することに応答して、ノード１０２ｂは、動作１０１２で、議会についての自身の秘密鍵シェアを使用して、公開グループアドレスからトランザクションのための有効署名を協力して生成する。例えば、トランザクションは、直接に、又はサイドチェーン上のトランザクションに必要情報を含めることによりサイドチェーンを介して、議会のメンバー間で巡回されてよい。メンバーは、トランザクションがproof−of−workブロックチェーンネットワークのマイナー１０４にブロードキャストされ得る時点である有効署名が取得されるまで、彼らの部分署名を追加してよい。トランザクションは、動作１０１０で検出された要求を発行したノードに関連付けられたアドレスであってよい、proof−of−workブロックチェーンネットワーク上のアドレスへ、デジタルアセットを転送する。
【０１３３】
動作１０１０でデジタルアセットが転送される特別アドレスは、使用不可アドレスである。したがって、動作１０１０におけるデジタルアセットの転送は、proof−of−stakeブロックチェーン上のデジタルアセットを焼却して、二重使用（つまり、２つのブロックチェーンに渡るデジタルアセットの重複）を防ぐ。
【０１３４】
セキュリティを向上するために、転送の動作の少なくとも一部は、ノード内の信頼できる実行環境で実行されてよい。例えば、少なくとも閾数のブロックがproof−of−stakeブロックチェーンネットワークのブロックチェーンに追加されているという決定は、ノード上の信頼できる実行環境内で実行されてよい。ノードは、秘密鍵シェアを使用する前に、信頼できる実行環境内で動作１０１０において検出された要求の有効性を確認してもよい。秘密鍵シェアの生成及び使用も、信頼できる実行環境内で実行されてよい。
【０１３５】
＜単方向ベット攻撃に対する保護＞
セキュリティを更に向上するために、プロトコルは、単方向ベット（bet）攻撃に対する１つ以上の保護手段を含んでよい。単方向ベット攻撃の一例は、詐欺師（つまり、不正パーティに関連付けられたノード）がメインチェーン上で、議会の制御下にある（つまり、議会公開鍵により妨げられている）デジタルアセットの全部又は一部を使用するトランザクションを構成すると、生じる。詐欺師は、部分署名を追加するために他のメンバーへトランザクションを提供し得る。メンバーに関連付けられた閾数の秘密鍵シェアが参加した場合、有効署名が生成できる。プロトコル内で使用される閾値署名方式が、集約（aggregate）署名方式（例えば、ECDSAが使用される場合）ではない場合、部分署名に貢献したメンバーを識別することは困難であり得る。詐欺が成功した場合に支払うべきメンバーは、彼らの部分署名をトランザクションに追加し、詐欺の関係者として暴露の危険を冒すことなくトランザクションを渡し得る。したがって、起こり得る最悪の事態は、完全署名を取得するために充分な部分署名が集められることであるので、部分署名の追加は単方向ベットとして見られ得る。
【０１３６】
プロトコルは、したがって、プロトコルを単方向ベットから保護する１つ以上の機能を含んでよい。例えば、各ノードのTEEは、それらのデポジットが返還要求される前のアテステーションのように、それらが部分署名した及び／又はそれらがブロードキャストするよう要求され得る全てのトランザクションを周期的に証明するよう構成されてよい。ノードが、詐欺トランザクションであると（閾値の議会メンバーにより）後に判定されたトランザクションに部分署名を追加したことを証明する場合、（例えば、図５の方法５００の動作５０２で）このような不正行為は、他の誠実なメンバーノードにより検出されてよい。このような不正行為が検出されると、誠実なメンバーノードは、（図５の方法５００の動作５０３を参照して上述したように）協力してメンバーを一時停止し、及び／又は、（図５の方法５００の動作５０４を参照して上述したように）メンバーのデジタルアセットを没収してよい。この技術は、プロトコルを単方向ベットから保護するのを助ける際に有用であるが、周期的アテステーションが使用される場合にオーバヘッドを導入し得る。さらに、アテステーションがデポジットの返却前に要求される場合には、長時間の間、詐欺が検出されないことがある。
【０１３７】
プロトコルは、単方向ベットに対して保護するたに、他のセキュリティ手段を含んでよい。例えば、Boneh、Gentry、Lynn及びShachamの「BGLS」方式（Aggregate  and  Verifiably  Encrypted  Signatures  from  Bilinear  Maps、International  Conference  on  the  Theory  and  Applications  of  Cryptographic  Techniques,  EUROCRYPT  ２００３:  Advances  in  Cryptology−pp４１６−４３２）のような集約署名方式が使用されてよい。集約署名は、異なる署名者が異なるメッセージに署名することを可能にすると同時に、「シングルショット（単発、single  shot）」で検証可能な１つの署名のみを生成する。
【０１３８】
BGLSを使用するために、各メンバーのTEEは、メインチェーン上で使用される閾値署名方式のための単一の秘密鍵シェア、及びBGLS秘密鍵を保持してよい。BGLS秘密鍵に対応する公開鍵は、シェアID（Share  ID：SID）と呼ばれてよい。BGLS秘密鍵は、TEE内のセキュアな乱数発生器を用いて生成された乱数であってよい。閾値署名方式のための秘密鍵シェアは、複数パーティ鍵生成プロトコルを用いてTEE内で計算されたシェアである。
【０１３９】
BGLSは、以下の方法で単方向ベットに対する安全な保護を提供できる。ノードが加入を目的として議会公開鍵に支払うとき（これは、図４の方法４００の動作４０４で生じ得る）、加入トランザクションは、ｉ）enclaveが見ていたメインチェーン上の最近のブロックの数及びハッシュ並びに第２ブロックチェーン（つまりサイドチェーン）上の最近のブロックの数及びハッシュ、ｉｉ）クオート（quote）（TEEのアテステーション鍵により署名されたenclave内のメモリの初期コンテンツのハッシュ、及びSIDへの結合）、を含んでよい。
【０１４０】
TEEが加入トランザクションのために必要なデータを提供することを要求する前に、メンバーは、メインチェーン及び第２ブロックチェーン上の全てのブロックを彼らのTEEへ、各ブロックチェーンの起源ブロックから開始して順次送信しなければならない。TEEは、メインチェーン上のproof−of−workをチェックし、加入及び抹消トランザクションを分析することにより取得され得る現在のメンバーシップのレコードを保持するよう構成される。これは、TEEが、（例えば自身の所有者から）独立して、現在のSIDを確立することを可能にする。つまり、これは、TEEが、議会の全ての現在メンバーに対応するSIDを確立することを可能にする。
【０１４１】
加入するために（例えば、図４の方法４００の動作４０４の間）、（見込み）メンバーは、議会の公開グループアドレスに支払可能な加入トランザクションを構成し、署名し、及び、メインチェーンであるブロックチェーンネットワークへ（例えば、図９の第１ブロックチェーンネットワーク９００へ）ブロードキャストする。加入トランザクションは、少なくとも１つの鍵シェアのために充分なUTXOを参照する。加入トランザクションがメインチェーン上で確認されると、議会のメンバーは、（例えば、図７の方法７００の動作７０４を参照して上述したように）新しい鍵シェアを、加入メンバーのTEEへ協力して発行してよい。
【０１４２】
議会が議会公開鍵により妨げられたデジタルアセットのトランザクションを開始することを望むとき、議会内のノードは、第２ブロックチェーンネットワーク上で（つまり、サイドチェーンのようなalt−chain上で）トランザクションT(M)を提案してよい。トランザクションT(M)は、この時点で、サイドチェーンＡ上で提案される、メインチェーンＭ上のデジタルアセットを転送することを意図した未署名トランザクションである。つまり、第２ブロックチェーンネットワーク（つまり、サイドチェーン）は、ブロードキャストチャネルとして使用されてよい。１人のメンバーが何らかの情報を全ての他のメンバーに通信したいと望むとき、彼らは、それをトランザクション上に置き、サイドチェーンへ送信してよい。
【０１４３】
トランザクションT(M)は、少なくとも閾数のブロックがその上でマインされると、第２ブロックチェーンネットワーク（サイドチェーン）上で批准されたと見なされる。TEEが、トランザクションが第２ブロックチェーンネットワーク上で（つまり、サイドチェーンのようなalt−chain上で）批准された（つまり、提案され確認された）ことを観察すると、それらはプレコミット（precommit）をブロードキャストする。プレコミット（precommit）は、トランザクションT(M)上のBGLS署名及びBGLS署名に対応するSIDで構成される。プレコミットは、第２ブロックチェーンネットワークへ送信され、その結果、他の議会メンバーと共有される。つまり、プレコミットは、第２ブロックチェーンネットワーク上のトランザクション内にカプセル化されてよい。
【０１４４】
閾値のプレコミットが、ノードにより、及び特に、メインチェーン及び第２ブロックチェーンネットワークの両者のブロックが入力されるTEEにより観察されると、ノードはコミット（部分署名）を、プレコミットされていたトランザクションT(M)上に出力する。閾値は、例えば、全ての現在SIDの単純多数に設定されてよい。コミットは、トランザクションに含まれて、T(M)を参照するT(M)に対する部分署名を含む第２ブロックチェーンネットワーク上に送信される。
【０１４５】
完全署名を構成するために少なくとも閾数のコミットが第２ブロックチェーンネットワーク内で観察されると、署名済みトランザクションT(M)が構成され、第１ブロックチェーンネットワークへ（例えば、メインチェーンへ）ブロードキャストされる。
【０１４６】
集約署名方式の特性は、メンバーが彼らのアイデンティティを開示することなくプレコミットに貢献できないことを意味するので、プレコミットの使用は追加セキュリティを提供できる。つまり、彼らのアイデンティティは、加入手順の間にメンバーデポジットに関連付けられるＳIDの形式で開示される。
【０１４７】
上述の手段に加えて、ノードに関連付けられたTEEは、更に、トランザクションが第２ブロックチェーンネットワーク上で批准された場合にのみコミットされ又はプレコミットされるように、構成されてよい。例えば、全てのブロックは、ブロックが、（該ブロックの構成されたTEEのＳIDに対応する）該ブロックを必要とする批准済みトランザクションへのプレコミット又はコミットを常に含むように、TEE内で構成され得る。したがって、メンバーは、批准済みトランザクションへのコミット又はプレコミットを送信すること及びサイドチェーン上でマイニングし続けることを抑制できない。
【０１４８】
第２ブロックチェーンネットワーク上で未批准トランザクションへのプレコミットを観察したノードは、このような不正行為を結合検証器セットの他のメンバーに報告してよい。不正メンバー（彼らのSIDにより識別される）は、上述のようにメンバーデポジットの一時停止及び／又は没収を通じてペナルティを科されてよい。例えば、未批准トランザクションへのプレコミットを観察することに応答して、メンバーシップは、協力して直ちにSIDを一時停止してよい。その結果、もはや更なるプレコミットは受け付けられず、有罪メンバーはプロトコルへの参加を一時停止される。さらに、有罪の証拠を含むトランザクションが第２ブロックチェーンネットワーク内で確認されると、有罪メンバーのデポジットは没収されたと見なされてよく、彼らのデポジットは焼却される。誠実なメンバーは、（例えば、没収したデジタルアセットの少なくとも一部を、不正行為を報告したノードへ転送することにより、）不正行為を報告したノードに協力して報酬を与えてよい。したがって、プレコミット段階における集約署名方式の適用は、例えば単方向ベット攻撃を防ぐことにより、プロトコルのセキュリティを強化し得る。
【０１４９】
メインチェーン内のproof−of−workの現在の採掘難易度がTEE自身の現在の採掘難易度より少ないと決定するようTEEを欺こうとするメンバーに対して保護するために、TEEは、採掘難易度の急激な低下が観察されると、措置を取るよう構成されてよい。特に、ブロックが到着するときTEEに提出される場合、採掘難易度は、ブロック間の時間間隔から確立されてよい。採掘難易度の低下は緩やかであると期待され、急激な低下（低下は、所定基準に基づき「急激」であると決定されてよい）は、メンバーが、ブロックが到着したときブロックを提供せず、proof−of−workメカニズムのブロックを偽造することを容易にするように、まるで採掘難易度が降下したかのように見せることにより、TEEを欺こうとすることにより引き起こされ得る。更なるセキュリティを提供するために、TEEは、マイニングされるべき新しい採掘難易度へのプレコミットを（ブロックのハッシュ及びブロック数と共に）第２ブロックチェーンネットワークへ出力することにより、メカニズム上で採掘難易度の急激な低下を観察したことに応答するよう構成されてよい。ブロックのハッシュは、ブロックが新しい採掘難易度に対応することを検証可能にするために含まれる。ブロック数は、他のメンバーが要求される採掘難易度／ブロックハッシュを、ブロックチェーンのそれらのコピー上の同じ高さにあるブロックと素早く比較可能にするために含まれる。
【０１５０】
採掘難易度の急激な低下の前にデポジットを置いた他のメンバーに対応する、同じ採掘難易度へのプレコミットを含む第２ブロックチェーンのブロックと共に提供されるときだけ、メインチェーンの採掘難易度を再調整し、採掘難易度の急激な降下が観察された以降にメインチェーンに加入する新しいメンバーを受け入れる。
【０１５１】
BGLSのような集約署名方式が使用されるとき、メンバーデポジットの返却のための手順は、追加要件を含んでよい。例えば、デポジットの返却を要求するノードは、（自身のTEEを通じて）秘密鍵シェア及びBGLS秘密鍵の両方の削除のアテステーションを要求されてよい。回収メンバーが秘密鍵シェア及びBGLS秘密鍵の両方を削除したことを証明した場合に、他のメンバーノードは、彼らのプレコミット又は部分署名を、該回収メンバーにメンバーデポジットを返却するトランザクションに含めるよう構成されるだけでよい。
【０１５２】
回収メンバーのノードは、自身のTEEを通じて、自身がプレコミット又はコミットした全てのトランザクションに対する証明を要求されてもよい。回収メンバーが批准されていないと決定された任意のトランザクションにプレコミットしていない場合に、他のメンバーノードは、彼らのプレコミット又は部分署名を、該回収メンバーにメンバーデポジットを返却するトランザクションに含めるよう構成されるだけでよい。
【０１５３】
上述の手順により、不正メンバーは、TEEからのブロックの回収から利益を得る可能性が低い。確認されたＳIDに対応するもの以外の、TEEが有効であると見なし得るプレコミットだけが、BGLS秘密鍵に対応するものであり、もはや存在しない（これが、かなりの確率で生じ得るのは、メンバーがTEEに最新ブロックを提供していない、及びTEEが何人かのメンバーを、現在、実際には彼らが議会に彼らの鍵シェアを削除させ彼らのメンバーデポジットを再請求したとき、登録している場合だけである）。さらに、以上の結果として、メンバーは、詐欺（つまり、未批准）トランザクションへのプレコミットを提供するために、及び後に彼らのデポジットの議会による返却を許可されるために、彼らのTEEを含むことができない。したがって、メンバーは、TEEがブロックチェーン（つまり、メインチェーン及びalt−chain）の最新コピーを有することを保証する動機を与えられる。
【０１５４】
したがって、プロトコルは、以下の機能のうちの１つ以上を含むプロトコルに従い動作するようノードを構成することによりセキュアにされてよい：ｉ）TEEは、自身がプレコミットされたトランザクションに対する部分署名を出力する前に、閾値のプレコミットが第２ブロックチェーンネットワーク（例えば、proof−of−stakeサイドチェーン）上で観察される必要があるよう構成される、ｉｉ）メンバーは、該メンバーのTEEがａ）秘密鍵シェア及びBGLS秘密鍵の削除を証明し、及びｂ）自身がプレコミットした全てのトランザクション及びこれらのいずれも未批准であると（第２ブロックチェーンネットワーク上の総意により）判定されない、ｉｉｉ）TEE内に構成されたいずれのブロックも、それらを必要とする批准済みトランザクション（つまり、未だ閾値の（プレ）コミットを集めていない批准済み／プレコミット済みトランザクション）への（プレ）コミットを常に含む、ｉｖ）TEEは、第２ブロックチェーンネットワークにマインされるべき新しい採掘難易度へのプレコミットを（ブロックのハッシュと共に）出力することにより、メインチェーン上で観察された採掘難易度の急激な減少に応答するよう構成されてよい。採掘難易度の急激な低下の前にデポジットを置いた他のメンバーに対応する、同じ採掘難易度へのプレコミットを含む第２ブロックチェーンのブロックと共に提供されるときだけ、メインチェーンの採掘難易度を再調整し、採掘難易度の急激な降下が観察された以降にメインチェーンに加入する新しいメンバーを受け入れる。
【０１５５】
本願明細書に記載される第２ブロックチェーンネットワークをサポートするプロトコルは、ビットコインのような既存のproof−of−work公開ブロックチェーンプロトコルの最上位層に許可無しにあってよい。これは、メインチェーン（例えば、ビットコイン）の外部にある複数パーティプロトコルによるデジタル署名の構成を通じて相互作用するからであり、これは、メインチェーンのマイナー及び開発者の同意無しに動作してよいことを意味する。したがって、プロトコルは、既存公開proof−of−workブロックチェーン「の上に」実装されてよく、該公開proof−of−workブロックチェーンのプロトコルに対する変更を条件としない。この意味で、プロトコルは、（ブロックチェーンプロトコル自体が更なるプロトコルを収容するよう変更される必要がないので）ブロックチェーンに許可無しで追加されてよい。例えば、プロトコルは、デジタル署名方式によりトランザクションを認可する任意のproof−of−workブロックチェーンと共に使用されてよい。現在、公衆ブロックチェーンの知られている実装は、デジタル署名方式を用いてトランザクションを認可する。
【０１５６】
上述の方法は、概してノードにおいて実行されると記載されたが、方法の特徴は他のノードとの強力に依存し、他の場所で実行され得る。
【０１５７】
以上の記載は概して、議会がproof−of−workブロックチェーンネットワーク上に実装されると記載したが、議会は、代わりに、proof−of−stakeブロックチェーンネットワーク上に実装されてよい。
【０１５８】
既に言及した特定の利益及び特徴に加えて、本願明細書に記載の技術は追加の利益を提供し得る。例えば、双方向ペッグは、チューリング完全（Turing−complete）スマートコントラクト機能が、（ビットコインのような）既存proof−of−workブロックチェーン及びproof−of−stakeサイドチェーンで構成されるバイナリブロックチェーンシステムに追加されることを可能にする。更に詳細には、このような機能は、チューリング完全スクリプト言語によりproof−of−stakeサイドチェーンに寄与することにより実現されてよい。さらに、本願明細書に記載の技術のうちの少なくとも幾つかは、proof−of−stakeブロックチェーンの前の提案実装のnothing−at−stake問題に苦しまないproof−of−stakeブロックチェーン、伝統的なproof−of−stake方式に関連付けられたより高速且つより規則的ブロック生成の利点を提供できる。さらに、本願明細書に記載の少なくとも幾つかの技術は、proof−of−stakeメカニズムのマイナーに、proof−of−workメカニズムのセキュリティを向上する有意な数のデジタルアセットを保持するための動機を与える。
【０１５９】
留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する（comprising又はcomprises）」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する（comprises）」は「含む（includes）又は構成される（consists  of）」を意味し、「有する（comprising）」は「含む（including）又は構成される（including  of）」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、１つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることが出来ないことを示すものではない。
【図１】
2020517135.tif 000003
【図２】
2020517135.tif 000004
【図３】
2020517135.tif 000005
【図４】
2020517135.tif 000006
【図５】
2020517135.tif 000007
【図６】
2020517135.tif 000008
【図７】
2020517135.tif 000009
【図８】
2020517135.tif 000010
【図９】
2020517135.tif 000011
【図１０】
2020517135.tif 000012
【国際調査報告】
2020517135.tif 000013
2020517135.tif 000014
2020517135.tif 000015