IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌチェーン ホールディングス リミテッドの特許一覧

特許7442606動的ノードグループのための秘密鍵のセキュアな再利用
<>
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図1
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図2
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図3
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図4
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図5
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図6
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図7
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図8
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図9
  • 特許-動的ノードグループのための秘密鍵のセキュアな再利用 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-22
(45)【発行日】2024-03-04
(54)【発明の名称】動的ノードグループのための秘密鍵のセキュアな再利用
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240226BHJP
   G09C 1/00 20060101ALI20240226BHJP
【FI】
H04L9/32 200Z
G09C1/00 650A
G09C1/00 650Z
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2022192596
(22)【出願日】2022-12-01
(62)【分割の表示】P 2019551618の分割
【原出願日】2018-04-09
(65)【公開番号】P2023025152
(43)【公開日】2023-02-21
【審査請求日】2022-12-01
(31)【優先権主張番号】1705867.8
(32)【優先日】2017-04-11
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1705869.4
(32)【優先日】2017-04-11
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1705868.6
(32)【優先日】2017-04-11
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】フレッチャー,ジョン
(72)【発明者】
【氏名】トレヴェサン,トーマス
【審査官】中里 裕正
(56)【参考文献】
【文献】米国特許出願公開第2016/0330034(US,A1)
【文献】Maged Hamada Ibrahim,SecureCoin: A Robust Secure and Efficient Protocol for Anonymous Bitcoin Ecosystem,International Journal of Network Security,Vol. 19, No. 2,Min-Shiang Hwang,2017年03月01日,pp. 295-312
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実施される方法であって、
ブロックチェーンネットワーク内のノードにより、議会公開鍵に関連付けられた公開グループアドレスに1つ以上のデジタルアセットを転送するためにトランザクションをブロードキャストするステップであって、前記公開グループアドレスは、議会の他のメンバーに関連付けられている1つ以上の他のデジタルアセットに関連付けられている、ステップと、
閾値署名方式で使用される秘密鍵シェアを生成するステップであって、前記閾値署名方式では、少なくとも閾値の秘密鍵シェアが前記議会の代わりに部分署名の結合を通じて有効署名を生成するために使用されなければならず、前記秘密鍵シェアの他の保持者は、各々のデジタルアセットの前記公開グループアドレスへの転送により前記議会に参加している、前記議会の前記他のメンバーである、ステップと、
前記秘密鍵シェアを用いて、前記公開グループアドレスから前記議会の更なる公開グループアドレスへのトランザクションのための有効署名を協力して生成するステップであって、前記更なる公開グループアドレスは更なる議会公開鍵に関連付けられ、前記更なるトランザクションは、前記公開グループアドレスから前記更なるグループアドレスへ前記デジタルアセットの制御を転送するよう構成される、ステップと、
を含むコンピュータにより実施される方法。
【請求項2】
前記閾値署名方式は、楕円曲線デジタル署名アルゴリズムである、請求項1に記載のコンピュータにより実施される方法。
【請求項3】
不正パーティによる不正行為を検出するステップであって、前記不正パーティは前記議会の前記他のメンバーのうちの1人である、ステップと、
前記不正パーティにより前記公開グループアドレスへ前に転送されたデジタルアセットの少なくとも一部を没収するステップと、
を更に含む請求項1又は2に記載のコンピュータにより実施される方法。
【請求項4】
没収するステップは、使用不可アドレスへ転送するステップを含む、請求項3に記載のコンピュータにより実施される方法。
【請求項5】
没収するステップは、前記議会の他のメンバーと協力して前記秘密鍵シェアを使用し、前記使用不可アドレスへの前記トランザクションの有効署名を生成するステップを含む、請求項4に記載のコンピュータにより実施される方法。
【請求項6】
再分配要求を検出するステップと、
他の議会メンバーと協力して前記公開グループアドレスの中の全部のデジタルアセットを新しい公開鍵に関連付けられた新しい公開アドレスへ転送するステップと、
新しい秘密鍵シェアを生成するステップと、
を更に含む請求項1~5のいずれか一項に記載のコンピュータにより実施される方法。
【請求項7】
新しい鍵シェアを割り当てるための要求を検出するステップと、
前記議会の他のメンバーと協力して、同じ公開鍵に対する秘密鍵シェアをグループの新しいメンバーに発行するステップと、
を更に含む請求項1~5のいずれか一項に記載のコンピュータにより実施される方法。
【請求項8】
前記議会から去ったメンバーにより前に保持された秘密鍵シェアが、該メンバーに関連付けられたノードから削除されたことを確認するステップ、を更に含む請求項7に記載のコンピュータにより実施される方法。
【請求項9】
前記議会を去った前記メンバーに関連付けられた前記ノードは、前記メンバーにより前に保持された前記秘密鍵シェアの削除のアテステーションを提供する信頼できる実行環境を含む、請求項8に記載のコンピュータにより実施される方法。
【請求項10】
前記議会公開鍵は、グループメンバー及び非グループメンバーから受信したデジタルアセットを妨げ、新しい鍵シェアを割り当てるための要求を検出するステップは、前記公開グループアドレスへのデジタルアセットの少なくとも幾つかのトランザクションに含まれる属性を用いて、議会メンバーを識別するステップを含む、請求項7~9のいずれか一項に記載のコンピュータにより実施される方法。
【請求項11】
前記秘密鍵シェアを生成するステップ、及び前記秘密鍵シェアを使用するステップは、前記ノード内の信頼できる実行環境において実行される、請求項1~10のいずれか一項に記載のコンピュータにより実施される方法。
【請求項12】
議会メンバーである要求者から、前記要求者により前に預けられ且つ前記議会により現在制御されているデジタルアセットの回収のための要求を受信するステップと、
決定された基準に対して前記要求を評価するステップと、
前記秘密鍵シェアを用いてデジタル署名を協力して生成し、前記デジタル署名を用いて前記要求者により前に預けられた前記デジタルアセットを前記要求者へ転送して戻すステップと、
を更に含む請求項1~11のいずれか一項に記載のコンピュータにより実施される方法。
【請求項13】
コンピュータ実行可能命令を含むコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、実行されると、プロセッサを、請求項1~12のいずれか一項に記載の方法を実行するよう構成する、コンピュータ可読記憶媒体。
【請求項14】
電子装置であって、
インタフェース装置と、
前記インタフェース装置に結合されたプロセッサと、
前記プロセッサに結合されたメモリであって、前記メモリはコンピュータ実行可能命令を格納し、前記コンピュータ実行可能命令は、実行されると、前記プロセッサを、請求項1~12のいずれか一項に記載の方法を実行するよう構成する、メモリと、
を含む電子装置。
【請求項15】
前記プロセッサは信頼できる実行環境を含み、前記コンピュータ実行可能命令は、前記信頼できる実行環境内で実行される、請求項14に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して分散台帳に関し、特に、デジタル台帳に関連付けられたデジタルアセットに対する分散型制御を提供する方法及びシステムに関する。本発明は、特に、限定ではないが、プルーフオブワーク(proof-of-work)ブロックチェーンネットワークとプルーフオブステーク(proof-of-stake)ブロックチェーンネットワークとの間の双方向ペッグ(two-way peg)を可能にするための使用に適する。
【背景技術】
【0002】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、限定ではないが、ブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。
【0003】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳である。また、ブロックはトランザクション及び他の情報により構成される。ビットコインの場合には、各トランザクションは、ブロックチェーンシステム内で参加者間のデジタルアセットの制御の転送を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【0004】
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。幾つかのネットワークノードは、マイナーとしての機能を果たし、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。例えば、ノードにインストールされたソフトウェアクライアントは、参照するトランザクション、未使用トランザクションアウトプット(unspent transaction outputs:UTXO)に対して、この検証作業を実行する。検証は、そのロック及びアンロックスクリプトを実行することにより実行されてよい。ロック及びアンロックスクリプトの実行が真と評価した場合、及び特定の他の条件が満たされた場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)トランザクションを受信したノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ii)マイナーにより構築された新しいブロックに追加し、iii)マイニングされ、つまり過去のトランザクションの公開台帳に追加されなければならない。トランザクションは、充分な数のブロックがブロックチェーンに追加されて、トランザクションが事実上不可逆にされると、確認されたと見なされる。
【0005】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、ビットコインの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、単に暗号通貨建ての支払に限定されない自動タスク及びプロセスのために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点(例えば、永久的、イベントの耐タンパレコード、分散プロセス、等)を利用できる。
【発明の概要】
【0006】
ブロックチェーン技術が新たな特徴を提供するために拡張されるとき、ブロックチェーンのセキュリティ及びそこで提示されるデジタルアセットが維持されることが重要である。ブロックチェーンに依存する拡張特徴セットは、不正パーティからの攻撃を受け得る。したがって、ブロックチェーン又はブロックチェーンの新たな特徴に追加セキュリティを提供する、又はブロックチェーンの完全性(integrity)を維持するためにデジタルアセットに対する所有権を制御する、方法及び装置を提供することが有用であり得る。
【0007】
さらに、ブロックチェーンに対する新たな改良又は変更が開発されるとき、両方のブロックチェーンの完全性を維持しながら、デジタルアセットのあるブロックチェーンから別のブロックチェーンへの転送を制御する技術を有することが有用である。したがって、上述の態様のうちの1つ以上において、ブロックチェーン技術を向上する改良された方法及び装置を提供することが望ましい。
【0008】
したがって、本発明によると、添付の請求の範囲に定められるような方法が提供される。
【0009】
以下に更に詳述するように、議会(congress)がブロックチェーンネットワーク上に形成されてよい。議会は、充分な掛け金(stake)を議会に関連付けられたプールに提出することでブロックチェーンネットワーク内の任意のノードにより参加されてよい開放型メンバーシップグループであってよい。例えば、ノードは、(ビットコインのような)デジタル通貨、トークン、又は他の掛け金若しくは価値のようなデジタルアセットの、議会に関連付けられたリソース(例えば、アカウント)への転送を通じて議会に参加してよい。議会は、秘密鍵シェアの分散型生成を通じて、部分的にセキュアであってよい。各秘密鍵シェアは、それ自体の保持者により、トランザクションの部分署名を生成するために使用されてよい。閾値署名方式(threshold signature scheme)は、少なくとも閾値の部分署名を用いて、このようなトランザクションに対する有効署名を生成するために使用されてよい。メンバーデポジット(deposit)は、不正な態度に対して没収(confiscation)を受けることがある。
【0010】
有利なことに、鍵シェアの分散型生成の使用、及び他のセキュリティ機能を通じて、鍵シェアはセキュアにされ、グループメンバー又は非グループメンバーによる不正行為を防ぐことができる。閾値署名方式の使用と結合されて、このようなセキュリティは、自律分散型グループが形成されることを可能にし、グループは、例えば双方向ペッグを提供することを含む多くの目的のうちの任意の1つのために使用されてよい。特に、閾値署名方式は、グループが、該グループに関連付けられた公開鍵により妨げられる(encumbered)デジタルアセットを制御することを可能にし得る。
【0011】
したがって、本発明によると、コンピュータにより実施される方法が提供され得る。コンピュータにより実施される方法は、i)ブロックチェーンネットワーク内のノードにより、1つ以上のデジタルアセットを議会公開鍵に関連付けられた公開グループアドレスへ転送するトランザクションをブロードキャストするステップであって、前記公開グループアドレスは、議会の他のメンバーに関連付けられた1つ以上の他のデジタルアセットに関連付けられる、ステップと、ii)閾値署名方式で使用されるべき秘密鍵シェアを生成するステップであって、前記閾値署名方式では、少なくとも閾値の秘密鍵シェアが前記議会の代わりに部分署名の結合を通じて有効署名を生成するために使用されなければならず、前記秘密鍵シェアの他の保持者は、それぞれのデジタルアセットの前記公開グループアドレスへの転送により前記議会に参加している、前記議会の前記他のメンバーである、ステップと、iii)前記秘密鍵シェアを用いて、前記公開グループアドレスからのトランザクションのための有効署名を協力して生成するステップと、iv)新しい鍵シェアを割り当てるための要求を検出するステップと、v)前記議会の他のメンバーと協力して、同じ公開鍵の秘密鍵シェアを前記グループの新しいメンバーに発行するステップと、を含んでよい。
【0012】
幾つかの実装では、前記閾値署名方式は楕円曲線デジタル署名アルゴリズムである。
【0013】
幾つかの実装では、コンピュータにより実施される方法は、i)不正パーティによる不正行為を検出するステップであって、前記不正パーティは、前記議会の前記他のメンバーのうちの1人である、ステップと、ii)前記不正パーティにより前記公開グループアドレスへ前に転送されたデジタルアセットの少なくとも一部を没収するステップと、を更に含んでよい。幾つかの実装では、没収するステップは、使用不可アドレスへ転送するステップを含んでよく、幾つかの実装では、前記議会の他のメンバーと協力して前記秘密鍵シェアを使用し、前記使用不可アドレスへの前記トランザクションの有効署名を生成するステップを含んでよい。
【0014】
幾つかの実装では、コンピュータにより実施される方法は、i)再分配要求を検出するステップと、ii)他の会議メンバーと協力して前記公開グループアドレスの中の全部のデジタルアセットを新しい公開鍵に関連付けられた新しい公開アドレスへ転送するステップと、iii)新しい秘密鍵シェアを生成するステップと、を更に含んでよい。
【0015】
幾つかの実装では、コンピュータにより実施される方法は、前記議会から去ったメンバーにより前に保持され使用された秘密鍵シェアが、該メンバーに関連付けられたノードから削除されたことを確認するステップ、を更に含んでよい。幾つかの実装では、前記会議を去った前記メンバーに関連付けられた前記ノードは、前記メンバーにより前に保持され使用された前記秘密鍵シェアの削除のアテステーションを提供する信頼できる実行環境を含。幾つかの実装では、各メンバーの前記信頼できる実行環境は、それらのデポジットが返還要求される前のアテステーションのように、それらが部分署名した及び/又はそれらがブロードキャストするよう要求され得る全てのトランザクションを周期的に証明する(attest)よう構成されてよい。
【0016】
幾つかの実装では、前記議会公開鍵は、グループメンバー及び非グループメンバーから受信したデジタルアセットを妨げ、新しい鍵シェアを割り当てるための要求を検出するステップは、前記公開グループアドレスへのデジタルアセットの少なくとも幾つかのトランザクションに含まれる属性を用いて、議会メンバーを識別するステップを含む。
【0017】
幾つかの実装では、前記秘密鍵シェアを生成するステップ及び前記秘密鍵シェアを使用するステップは、前記ノード内の信頼できる実行環境において実行される。
【0018】
幾つかの実装では、コンピュータにより実施される方法は、i)議会メンバーである要求者から、前記要求者により前に預けられ且つ前記議会により現在制御されているデジタルアセットの回収のための要求を受信するステップと、ii)決定された基準に対して前記要求を評価するステップと、iii)前記秘密鍵シェアを用いてデジタル署名を協力で生成し、前記デジタル署名を用いて前記要求者により前に預けられた前記デジタルアセットを前記要求者へ転送して戻すステップと、を更に含んでよい。
【0019】
本発明によると、電子装置が提供され得る。電子装置は、インタフェース装置と、前記インタフェース装置に結合されたプロセッサと、前記プロセッサに結合されたメモリとを含む。前記メモリは、実行されると、本願明細書に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能を格納している。
【0020】
本発明によると、コンピュータ可読記憶媒体が提供され得る。コンピュータ可読記憶媒体は、実行されると、本願明細書に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含む。
【0021】
本発明によると、コンピュータにより実施される方法が提供され得る。当該方法は、ブロックチェーンネットワーク内のノードにおいて、前記ノードにより、1つ以上のトークンを議会公開鍵に関連付けられた公開グループアドレスに転送するトランザクションをブロードキャストするステップであって、前記公開グループアドレスは、議会の他のメンバーに関連付けられた1つ以上の他のトークンに関連付けられる、ステップと、前記ノードのセキュア領域を用いて、閾値署名方式で使用されるべき秘密鍵シェアを生成するステップであって、前記閾値署名方式では、少なくとも閾値の秘密鍵シェアが前記議会の代わりに部分署名の結合を通じて有効署名を生成するために使用されなければならず、前記秘密鍵シェアの他の保持者は、それぞれのトークンの前記公開グループアドレスへの転送により前記議会に参加している、前記議会の前記他のメンバーである、ステップと、前記セキュア領域の前記秘密鍵シェアを用いて、前記公開グループアドレスからのトランザクションのための有効署名を協力して生成するステップと、を含む。
【0022】
幾つかの実装では、セキュア領域は、信頼できる実行環境であってよい。
【0023】
幾つかの実装では、セキュア領域は、BGLS秘密鍵(これは、Boneh, Gentry, Lynn及びShacham、「BGLS」方式(Aggregate and Verifiably Encrypted Signatures from Bilinear Maps、International Conference on the Theory and Applications of Cryptographic Techniques, EUROCRYPT 2003:Advances in Cryptology-pp416-432))のような、集約署名方式に関連付けられた秘密鍵であってよい)を格納してよい。方法は、セキュア領域のBGLS秘密鍵、ブロックチェーンネットワークに関連付けられたブブロックチェーン上の最近のブロックに対応する情報を含む登録(enrollment)トランザクション、議会のメンバー間の通信のためのブロードキャストチャネルとして使用するために適応された別のブロックチェーン上の最近のブロックに対応する情報、セキュア領域のアテステーション鍵を用いて署名されBGLS秘密鍵に関連付けられた公開鍵に結合される、セキュア領域内のメモリの初期コンテンツのハッシュを生成するステップを更に含んでよい。
【0024】
本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。
【図面の簡単な説明】
【0025】
図1】例示的なブロックチェーンネットワークのブロック図を示す。
図2】ブロックチェーンネットワーク内のノードとして機能し得る例示的な電子装置のブロック図を示す。
図3】議会を開始する例示的な方法のフローチャートである。
図4】議会に参加する例示的な方法のフローチャートである。
図5】デジタルアセットを没収する例示的な方法のフローチャートである。
図6】鍵シェアを再分配する例示的な方法のフローチャートである。
図7】鍵シェアを再分配する更に例示的な方法のフローチャートである。
図8】デポジットを返す例示的な方法のフローチャートである。
図9】第1及び第2のブロックチェーンネットワークのブロック図である。
図10】双方向ペッグを提供する例示的な方法のフローチャートである。
【発明を実施するための形態】
【0026】
<ブロックチェーンネットワーク>
先ず、図1を参照する。図1は、ブロック図の形式で、ブロックチェーンに関連付けられた例示的なブロックチェーンネットワーク100を示す。ブロックチェーンネットワークは、他のメンバーからの招待無しに又は承認無しに誰でも参加し得るピアツーピア開放型会員制ネットワークである、公開ブロックチェーンネットワークであってよい。ブロックチェーンプロトコルの下でブロックチェーンネットワーク100が動作し、該ブロックチェーンプロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーンネットワーク100に参加してよい。このような分散型電子装置は、ノード102として参照され得る。ブロックチェーンプロトコルは、例えばビットコインプロトコルであってよい。
【0027】
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク100のノード102を形成する電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバのようなコンピュータ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は他の電子装置を含む様々な種類であってよい。
【0028】
ブロックチェーンネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いに結合される。このような通信は、ブロックチェーンに関連付けられたプロトコルに従う。例えば、ブロックチェーンがビットコインブロックチェーンである場合、ビットコインプロトコルが使用されてよい。
【0029】
ノード102は、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持する。したがって、グローバル台帳は分散台帳である。各ノード102は、グローバル台帳の完全コピー又は部分コピーを格納してよい。proof-of-workによりセキュアにされるブロックチェーンの場合、グローバル台帳に影響を与えるノード102によるトランザクションは、他のノード102により検証される。その結果、グローバル台帳の有効性が維持される。ブロックチェーンがproof-of-workに基づくブロックチェーンであるとき、ブロックも、ブロックと共に提出されるproof-of-workをチェックすることにより検証される。
【0030】
ノード102の少なくとも幾つかは、ブロックチェーンネットワーク100のマイナー104として動作する。図1のブロックチェーンネットワーク100は、ブロックチェーン上のトランザクションを促進するために、マイナー104が費用の掛かる計算を実行するproof-of-workブロックチェーンである。例えば、proof-of-workブロックチェーンは、マイナーが暗号化問題を解くことを要求し得る。ビットコインでは、マイナー104がノンスを発見する。その結果、ブロックヘッダは、SHA-256により、現在の採掘難易度(difficultly)により定められた値より小さい数にハッシュされる。proof-of-workアルゴリズムのために必要なハッシュ能力は、特定数のブロックがその上でマイニングされた後に、トランザクションが事実上不可逆であると見なされることを意味する。暗号化問題を解くマイナー104は、ブロックチェーンの新しいブロックを生成し、新しいブロックを他のノード102にブロードキャストする。他のノード102は、ブロックがブロックチェーンに追加されるべきであると受け入れる前に、マイナー104が実際に暗号化問題を解き、したがって充分なproof-of-workを立証したことを検証する。ブロックは、ノード102の総意により、ブロックチェーンに(つまり分散グローバル台帳に)追加される。
【0031】
マイナー104により生成されたブロックは、ノード102によりブロックチェーンにブロードキャストされているトランザクションを含む。例えば、ブロックは、ノード102のうちの1つに関連付けられたアドレスからノード102のうちの別のものに関連付けられたアドレスへのトランザクションを含んでよい。このように、ブロックは、あるアドレスから別のアドレスへのトランザクションのレコードとして機能する。トランザクションがブロックに含まれることを要求したパーティは、彼らが転送を開始すること(例えば、ビットコインの場合には、ビットコインを使用すること)を認可されていることを、彼らの公開鍵に対応する秘密鍵を用いて要求に署名することにより、証明する。要求が有効に署名された場合のみ、転送はブロックに追加されてよい。
【0032】
ビットコインの場合、公開鍵とアドレスとの間には1対1対応がある。つまり、各公開鍵は単一のアドレスに関連付けられる。したがって、本願明細書でデジタルアセットを公開鍵へ又は公開鍵から転送する(例えば、公開鍵に支払う)、及びデジタルアセットを公開鍵に関連付けられたアドレスへ又は該アドレスから転送するという言及は、共通の動作を表す。
【0033】
ノード102のうちの幾つかは、マイナーとして動作しなくてよく、代わりに検証ノードとして参加してよい。トランザクションの検証は、署名をチェックすること、有効UTXOへの参照を確認すること、等に関連してよい。
【0034】
図1の例は、5個のノード102を含み、そのうちの3個はマイナー104として参加している。実際には、ノード102又はマイナー104の数は異なってよい。多くのブロックチェーンネットワークでは、ノード102及びマイナー104の数は、図1に示した数より遙かに多くてよい。
【0035】
後述のように、種々のノード102が、協力して、本願明細書で議会(congress)110と呼ばれるグループを形成する。図示の例では、3個のノード102が、議会110に参加しているように示される。しかしながら、議会110のメンバーの実際の数は、遙かに多くてよい。
【0036】
議会110は、充分な掛け金(stake)を議会110に関連付けられたプールに提出することで任意のノード102により参加されてよい開放型メンバーシップグループである。例えば、ノードは、(ビットコインのような)デジタル通貨、トークン、又は他の掛け金若しくは価値のようなデジタルアセットの、議会110に関連付けられたアカウントへの転送を通じて議会に参加してよい。議会に参加するノード102は、マイニング及び非マイニングノードの両方を含むブロックチェーンネットワーク内の任意のノードであってよい。(後述のように議会が双方向ペッグを実行しているときのような)議会の少なくとも幾つかの適用では、議会メンバーとして動作するノードは、彼らが完全なブロックチェーンをダウンロードする(が、必ずしも保持しない)という意味で、ブロックチェーンを監視する。
【0037】
ブロックチェーンネットワークのノードから形成されるグループに関連する種々の知られているシステムでは、グループメンバーシップは固定的である。例えば、「SecureCoin: A Robust Secure and Efficient Protocol for Anonymous Bitcoin Ecosystem」、M.H.Ibrahim、2017年3月発行、International Journal of Network Security, Vol.19, No.2, pages295-312は、コインアグリゲーション(coin aggregation)及びミキシング(mixing)を提供するが、コインを交換するノードのグループにおけるメンバーシップは固定されている。これに対し、ノードは、共に、議会110に参加し及び退去してよい。好都合なことに、このような柔軟なグループメンバーシップを許容することにより、最初からノードのグループを繰り返し形成する必要を回避することにより、例えばSecureCoinのようなシステムと比べて、議会110はオーバヘッドを削減し得る。
【0038】
議会110に参加し、退去し、及び加入する技術は、以下に詳細に議論される。
【0039】
<ノードとして動作する電子装置>
図2は、ピアツーピアブロックチェーンネットワーク100(図1)の中のノード102(図1)として機能し得る例示的な電子装置200のコンポーネントを示すブロック図である。例示的な電子装置200は、処理装置とも呼ばれてよい。電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は別の種類の形式を含む様々な形式をとってよい。
【0040】
電子装置200は、プロセッサ210、メモリ220、及びインタフェース装置230を含む。これらのコンポーネントは、互いに直接又は間接に結合されてよく、互いに通信してよい。例えば、プロセッサ210、メモリ220、及びインタフェース装置230は、バス240を介して互いに通信してよい。メモリ220は、本願明細書に記載の機能を実行するための機械可読命令及びデータを含むコンピュータソフトウェアプログラムを格納する。例えば、メモリは、プロセッサ210により実行されると、電子装置に本願明細書に記載の方法を実行させるプロセッサ実行可能命令を含んでよい。プロセッサ実行可能命令は、プロセッサ210により実行されると、電子装置に、ブロックチェーンネットワーク100(図1)に関連付けられたプロトコルを実装させる命令を含んでよい。例えば、命令は、ビットコインプロトコルを実装するための命令を含んでよい。
【0041】
メモリ220は、ブロックチェーンネットワーク100(図1)のグローバル台帳又はその部分を格納してよい。つまり、メモリ220は、ブロックチェーンの全部のブロック、又は最近のブロックのようなブロックの部分、又は幾つかのブロックの中の情報の部分を格納してよい。
【0042】
メモリ220は図2では単一のブロックにより示されるが、実際には、電子装置200は複数のメモリコンポーネントを含んでよい。メモリコンポーネントは、例えばRAM、HDD、SSD、フラッシュドライブ、等を含む様々な種類であってよい。異なる種類のメモリは、異なる目的に適してよい。さらに、メモリ220はプロセッサ210と別個に示されるが、プロセッサ210は内蔵メモリを含んでよい。
【0043】
図2に示すように、プロセッサ210は、信頼できる実行環境(Trusted Execution Environment:TEE)250のようなセキュア領域を含んでよい。TEE250は、電子装置200に、独立した実行、信頼できるアプリケーションの完全性及びアセット機密性のような追加セキュリティを提供する独立実行環境である。TEE250は、TEE250内部にロードされたコンピュータ命令及びデータが機密性及び完全性の観点で保護されることを保証する実行空間を提供する。TEE250は、鍵のような重要リソースの完全性及び機密性を保護するために使用されてよい。TEE250は、少なくとも部分的にハードウェアレベルで実装される。その結果、TEE250内で実行される命令及びデータは、電子装置200の残りの部分からの及び電子装置の所有者のような外部パーティからのアクセス及び操作に対して保護される。TEE250内のデータ及び計算は、TEE250を含むノード102を作動させるパーティからセキュアにされる。
【0044】
TEE250は、エンクレーブ(enclave、飛び地)をインスタンス化し、次にメモリページを1つづつ追加するよう動作し得ると同時に、累積的にハッシングする。同様の動作は、リモートマシン(これは、開発者の機械又は別の機械であってよい)上で実行されてもよい。その結果、リモートマシンは、期待されるハッシュを決定し及び格納する。enclaveの内容は、したがって、任意のリモートマシンにより検証でき、enclaveが承認済みアルゴリズムを実行していることを保証する。この検証は、ハッシュを比較することにより実行されてよい。enclaveは、完全に構築されると、固定化される。TEE250内でコードを実行すること、及びシークレットをコードに送信することが可能であるが、コードは変更できない。最終ハッシュは、アテステーション(attestation)鍵により署名されてよく、データ所有者が任意のシークレットをenclaveへ送信する前に、データ所有者がそれを検証するために利用可能にされてよい。
【0045】
TEE250は、議会110(図1)により使用される議会公開鍵に関連付けられた秘密鍵シェアの機密性及び完全性を保護するために使用されてよい。例えば、TEE250は、秘密鍵シェアの生成及び記憶のために使用されてよい。TEE250は、いかなるメンバーもTEE250内に保持された秘密鍵シェア又は他の秘密鍵シェアに関する情報をメンバー間通信又はenclave間通信から直接取得できないことを保証するためのものである。プロトコルは、閾値のenclaveのセキュリティ侵害(compromise)に対してもロバストである。さらに、TEE250は、リモートアテステーションを可能にし得る。リモートアテステーションは、ノード102(図1)により、TEE250が確実であり且つ議会110により実施されるプロトコルのための承認済みコンピュータ実行可能命令を実行していることを他のノード102に証明するために使用されてよい。リモートアテステーションは、TEE250により、特定のコードピースを実行すること、及びenclaveの内部で、enclaveの内部アテステーション鍵により署名されたコードのハッシュを送信することにより、提供されてよい。
【0046】
TEE250は、電子装置200上で秘密鍵シェアを前に使用したことのある議会110のメンバーが議会を退去することを選択したときに、秘密鍵シェアのセキュアな削除を証明するために使用されてよい。電子装置200は、TEE250内で提供されるリモートアテステーションプロトコルを通じて、他の議会メンバーに削除のアテステーションを提供してよい。削除のアテステーションは、メンバーが彼らのメンバーデポジットを回収することを許可される前に、要求されてよい。つまり、デポジットの返還は、メンバーのenclave内に保持された秘密鍵シェアの削除のアテステーションを条件としてよい。
【0047】
TEE250は、セキュアな乱数生成器を備えてよい。このセキュアな乱数生成器は、TEEのenclaveの内部にあり、秘密鍵、ランダムチャレンジ、又は他のランダムデータを生成するために使用できる。TEE250は、また、外部メモリからデータを読み出すよう構成されてよく、外部メモリにデータを書き込むよう構成されてよい。このようなデータは、enclave内部にのみ保持されたシークレット鍵により暗号化されてよい。
【0048】
TEE250は、信頼できるプラットフォームモジュール(Trusted Platform Module:TPM)又はIntel Software Guard Extensions(SGX)のような様々なプラットフォームを用いて実装されてよい。SGXは、例えば、リモートアテステーションをサポートする。リモートアテステーションは、enclaveが、署名されたステートメントを、クオート(quote)として知られるメンバーの与えられたハス(has)により特定のenclaveを実行しているプロセッサから取得することを可能にする。Intel Attestation Service(IAS)のような第三者アテステーションサービスは、これらの証明されたステートメントがSGX仕様に従う真正CPUから生じることを認定し得る。
【0049】
電子装置200は、ブロックチェーンネットワーク100(図1)内のノード102(図1)として動作し、議会110(図1)に加わり又はその他の場合参加してよい。議会110は、デジタルアセット持参人のグループが、ブロックチェーンネットワーク100(図1)によりサポートされるデジタル通貨、トークン、又は掛け金若しくは価値のようなデジタルアセットをプールするとき、形成される。
【0050】
<議会及び閾値署名>
議会110は、許可又は未許可グループであってよい。つまり、議会110は、ブロックチェーンネットワーク100(図1)内の任意のノード102(図1)により(つまり、ブロックチェーン内の情報の少なくとも一部を監視し及び格納する任意のノードにより)参加されてよい。議会110に参加するために、ノード102は、1つ以上のデジタルアセットを議会110に関連付けられたデジタルアセットプールへ(つまり、1つ以上のデジタルアセットに関連付けられた公開グループアドレスへ、ここで、1つ以上のデジタルアセットは議会の他のメンバーに関連付けられている)転送する。このデジタルアセットプールは、議会プールと呼ばれることがある。例えば、ノード102は、このようなデジタルアセットを議会プールに関連付けられたアドレスへ(つまり、公開グループアドレスとも呼ばれることのある「議会アドレス」へ)転送する(つまり預ける)ことにより議会110に参加してよい。デジタルアセットは、議会公開鍵と呼ばれる、単一の公開鍵を有するグループ閾値署名の制御下に置かれる。議会メンバーは、分配法で生成された秘密鍵シェアを保持する。保持されるシェアの数は、プール内に預けられる量に比例してよい。
【0051】
議会110により制御されるデジタルアセットは、議会アドレスへ転送された任意のデジタルアセットを含み、閾値署名方式の制御下に置かれる。閾値署名方式の下で、合計秘密鍵シェア保持が閾値を超えるメンバーのグループは、デジタルアセットを議会110の制御から離れて転送させることを可能にする有効署名を生成する必要がある。つまり、少なくとも閾数の秘密鍵シェアが、議会110により制御されるデジタルアセットの任意の外向き転送のための有効署名を生成するために使用されなければならない。
【0052】
議会公開鍵は、秘密鍵シェアの見返りに議会110のメンバーにより議会プールに預けられたデジタルアセット、及び秘密鍵シェアを取得する以外の理由で預けられている、議会110のメンバー又は非メンバーにより議会プールに関連付けられたアドレスに預けられた(つまり、完全に、部分的に、又は条件付きで議会の制御下に置かれた)任意のデジタルアセットを妨げる(encumber)。非メンバー又はメンバーは、様々な理由で議会に関連付けられたアドレスにデジタルアセットを預けてよい。以下に詳述する一例では、メンバー又は非メンバーは、デジタルアセットをサイドチェーンのような、代替チェーン(alternative chain、alt-chain)と呼ばれることのある別のブロックチェーンへ移動するために、該デジタルアセットを議会110に預けてよい。サイドチェーンは、メインブロックチェーンと並行して(つまり、メインチェーンと並行して)実行するブロックチェーンであってよい。
【0053】
同じ議会公開鍵はメンバーデポジット(つまり、秘密鍵シェアの見返りに議会メンバーにより提供されたデジタルアセット)及び他の目的でメンバー又は非メンバーにより提供されたデジタルアセットの両方を制御し得るので、議会に関連付けられたアドレスへの少なくとも幾つかのデポジットは、デポジットの種類を示すために特別に注意を与えられてよい。例えば、デジタルアセットを議会アドレスへ転送するトランザクションは、フラグ、識別子、又は生成されるデポジットの特性を示す他の属性を含んでよい。例として、議会に参加する又は議会メンバーシップにおいて掛け金を高める目的のために生成されていないデジタルアセットを議会アドレスへ転送するトランザクションは、デポジットが別の目的で生成されていることを示すための特別な識別子を含んでよい。このような識別子は、秘密鍵生成を管理するとき、議会110に関連付けられたノード102により使用されてよい。特に、グループに参加する目的でデジタルアセットを預けるノード102は、(デジタルアセットのデポジットを行う結果として)議会110の秘密鍵シェアを割り当てられる。一方で、他の目的で(例えば、サイドチェーンへ転送するために)デジタルアセットを預けた他のノード102は、(議会公開鍵に対応する)議会の議会秘密鍵シェアを保持しなくてよい。
【0054】
議会110は、メンバーデポジットの全部又は部分の没収(confiscation)の脅威を通じて協力動作が強制される自律グループとして動作してよい。非協力又は不正メンバーは、多数の正直メンバーによる協力プロトコルへの参加により、このようなデジタルアセットを没収させ得る。つまり、全てのノード102が所定プロトコル又は基準に従い動作することを保証するために、議会プールへのメンバーデポジットは没収を受けることがある。没収は、没収されると見なされたメンバーデポジットの返還を永久的に妨げることを意味する。不正行為により返還されないメンバーデポジットを形成するデジタルアセットは、議会プールに残され得るが、返還されず(例えば、(alt-chain上で)それらが返還されるべきではないという総意に達した場合)、直ちに又は将来に別の使用不可アドレスへ転送され、又はその他の場合、没収される。没収の特性は、議会がサイドチェーンの結合した検証器セットとして機能するか否かに依存してよい。
【0055】
さらに、議会メンバーが議会110を退去したいと望むとき、彼らは、彼らのメンバーデポジットを回収してよい(つまり、議会110がメンバーデポジットを該メンバーの個人アドレスへ転送して戻すことを要求する)。しかしながら、資金の回収は、有効デジタル署名を生成するために必要な閾値を超える数の秘密鍵シェアが回収を認可するためにグループ(つまり、議会)のメンバーにより使用される場合にのみ、実行される。
【0056】
議会110により実装される閾値署名方式は、様々な種類であってよい。閾値署名方式は、少なくとも閾数の秘密鍵シェアが有効署名を生成することに貢献している限り、n個のパーティの間で署名を共有する能力を可能にする。閾値より少ない任意のサブセットは、有効署名を生成できない。特に、パーティの各々は秘密署名鍵のシェアを制御し、閾数の鍵シェアが、部分署名の結合を通じて有効署名を生成するために使用されなければならない。閾値より少ない鍵シェアの任意のサブセットは、有効署名を生成できない。
【0057】
閾値署名方式は、楕円曲線デジタル署名アルゴリズム(Elliptic Curve Digital Signature Algorithm:ECDSA)方式であってよい。例えば、ECDSA方式は、Ibrahim他により「A robust threshold elliptic curve digital signature providing a new verifiable secret sharing scheme」、2003 EIII 46th Midwest Symposium on Circuits and Systems, 1:276-280(2003)で提案された種類であってよい。この閾値署名方式は、n個の鍵シェア保持者のパーティからのt+l個の鍵シェアが秘密鍵を再構成するために必要とされる、楕円曲線暗号法に基づくアルゴリズムであるデジタル署名方式の拡張である。この方式は、秘密鍵を再構成する必要がなく、及び任意のパーティが彼らの鍵シェアを別のパーティに開示する必要がなく、有効署名を構成するために使用されてよい。
【0058】
t+l個の鍵シェアは、シークレットを再構成するのに充分なので、本技術による許可可能な敵対者の最大数はtである。敵対者は、Ibrahim他のモデルでは、シークレットシェアを保持している、及びシークレットシェアへのアクセスを有するパーティを堕落させた(corrupted)エンティティである。敵対者は、様々な種類であり得る。例えば、Byzantine敵対者は、実際には不正情報を送信していながら、プロトコルに参加しているふりをし得る敵対者である。Ibrahimにより提案されたECDSA方式は、最大t<=n/4の不正敵対者に対してロバストである。このロバスト性は、t=<n/3まで上昇し得るが、より大きな複雑性というコストがかかる。
【0059】
Ibrahim他のECDSA方式は、休止しているt=<n/3の休止敵対者に対してロバストである。休止敵対者は、堕落したパーティがプロトコルに参加するのを防ぐ又は参加を途中で停止することができる。
【0060】
このECDSA方式は、ノード102により不正又は非協力的パーティを識別するために使用され得る様々なメカニズムを含む。例えば、検証可能シークレット共有(verifiable secret sharing:VSS)は、Shamirのシークレット共有(Shamir’s Secret Sharing:SSS)のために必要な多項式を共有するために使用され得る。SSSは、シークレットが部分に分けられ、それ自体のユニークな部分への各々の参加に提供される、シークレット共有の形式である。これらの部分は、シークレットを再構成するために必要であり得る。VSSは、矛盾したシェアが異なるノード102に提供された場合、又はシェアが全ノードにブロードキャストされる隠れシェアと異なり、シェアがノードへ秘密に送信された場合、ノード102により、不正ノード102又はメンバーを識別するために使用されてよい。矛盾したシェアは、ノード102のうちのいずれかにより識別されてよい。シークレットの共有は、ノード102がそれらのシェアを矛盾しないとして検証することを可能にする補助情報を含むことにより、検証可能にされ得る。
【0061】
不正シェアの個々のノードへの送信(つまり、ブロードキャストされる隠れシェアと異なるシェア)は、シェアの意図された受信ノードにより識別できる。ノードへ秘密に送信されている不正シェアの識別は、公然検証可能なシークレット共有(Publically Verifiable Secret Sharing:PVSS)の技術を用いて公に検証可能にできる。このような技術は、PVSSが使用されず及び不正シェアが送信されるときに不正シェアの受信側がオフラインである若しくはネットワークの根本部分から切り離されている場合に起こり得る、不正送信者の識別において起こり得る遅延を回避し得る。
【0062】
矛盾したシェアを異なるノードに提供するような不正行為は、悪意ある行為を阻止する議会110により解決され得る。例えば、ノード102(図1)が他のノード102により不正パーティとして識別されると、閾値(例えば、t+1)を超えるノード102のメンバー(つまり、議会メンバーに関連付けられたノード)は、不正パーティにペナルティを科すために協力してよい。例えば、ノード102は、不正パーティにより議会に預けられた(デジタル通貨、トークン、又は他の掛け金若しくは価値)デジタルアセットに関連する措置を行ってよい。例えば、議会は、デジタル通貨、トークン、掛け金若しくは価値を使用不可アドレスへ転送することにより、それらを焼却(burn)してよい。或いは、議会は、拒否するという他のノードとの総意に達することにより、このようなデジタルアセットを没収してよい。不正を行うノードではないノード102は、不正を行うノードを排除するために協力することにより(例えば、鍵シェアを効果的に無効化することにより、例えば、ノードが議会プロトコルに参加するのを排除することにより、又は秘密鍵を再共有し及び不正を行うノードにシェアを割り当てないことにより)、不正行為を阻止してもよい。
【0063】
上述のECDSA技術は、TEEの使用を通じて拡張されてよい。例えば、Ibrahim他に基づく閾値ECDSA署名技術は、ここではByzantine敵対者と呼ばれる強力な形式の敵対者を予期している。この種の敵対者は、勝手に振る舞うことがある。例えば、彼らは、署名処理に参加すること又は途中でパーティを停止することを拒否するだけでなく、誠実に参加するふりをして、不正情報を送信することもある。しかしながら、TEEを用い、及びシークレット秘密鍵シェアが格納されるTEEのenclave内で署名に使用するためのデータを生成することにより、enclaveが有意な数において危険に晒される可能性が非常に低いので、追加セキュリティが提供され得る。各TEEが1つより多くの鍵シェアに割り当てられる場合、例えば、起こり得る危険に晒されるTEEの数は、nが充分に大きいと仮定すると、敵対者に対するロバスト性の閾に近付かないことが無理なく期待され得る。これは、鍵シェアの合計数に対して少ない割合の不正敵対者に対して耐性がある場合、プロトコルがセキュアであることを可能にする。
【0064】
例えば、全ノードがTEEを有する場合、enclave内に格納されたシークレットの取得は、TEEの製造者が堕落していないならば、ノードへの物理アクセスによってのみ、多大な努力及び費用によってのみ、達成され得る。このような製造者レベルの堕落は、管理可能であることが期待される。例えば、製造者が、多数の公開鍵が誠実なTEEに対応すると偽って主張しようとした場合、彼らは、秘密鍵シェアへの直接アクセスを獲得し、攻撃を始める可能性がある。しかしながら、このような攻撃は、製造者が他のノードからの支援を伴わずに有効署名を生成できるために、充分な数の鍵シェアを要求し得る。これは、非常に高価になり得る全部の掛け金の大部分を蓄積することを意味し得る。さらに、攻撃を実行することにより、保持している掛け金の価値の大部分が破壊され得る。
【0065】
TEEが使用されるとき、「堕落したノード」に対するプロトコルのロバスト性を意図することが有用である。堕落したノードは、TEEの外部のハードウェアが間違いを含むが、TEEの完全性が危険に晒されないノードである。堕落したノードは、どんな情報をenclaveが受信し及び受信しないかについて制御を有してよい。特に、堕落したノードは、停止し、つまりプロトコルへの参加を控えてよい。プロトコルに提供される情報がenclave内に秘密に保持された秘密鍵により署名される必要のある場合(対応する公開鍵が、アテステーション中に認証された場合)、秘密鍵はenclave自体と同じくらい信頼できる。したがって、堕落したノードは、勝手な(認証された)情報をプロトコルに送信することができず、停止することにより、又は例えば古い情報を提供することにより誤って動作するようenclaveを欺くことを試みることにより、邪魔をしようとするだけである。次に、堕落したノードでは、成功した攻撃は、完全な署名を生成するのに充分な数の部分署名を収集することを必要とし得る。TEEにより、Ibrahim他のプロトコルは、2t個の堕落したノードに対してロバストである。署名は、n-2t>=2t+1の場合に生成できるので、サイズ2t+1<=(n+1)/2の鍵シェアの任意の正規サブセットで充分である。したがって、TEEが使用されるとき、閾値署名方式の閾値は、堕落したノードが存在する場合に有効署名を生成するために、鍵シェアの50%以上の数になるよう構成されてよい。
【0066】
他の閾値署名方式が使用されてもよい。例えば、閾値署名方式は、Goldfeder他、「Securing Bitcoin Wallets Via a New DSA/ECDSA threshold signature scheme」(2015)により提案された種類のECDSA閾値方式であってよい。このプロトコルはt+l個のパーティが有効署名を生成することを可能にする。したがって、敵対者が有効署名を生成するために制御しなければならない鍵シェアの数は、敵対者が秘密鍵を再構成するために所有しなければならない鍵シェアの数に等しい。この技術は、有効署名を生成するために全員の合意が必要な場合に効率的な方式を提供できる。大部分の一般的場合には、この方式は、任意の閾値についてn人のうちのt+l人のプレイヤの任意の可能なサブセットに対してプロトコル全体を繰り返す必要があるので、議会メンバーの数と共に指数関数的に増大する空間要件を課す。したがって、n及びtの両方の大きな値について、膨大な数の鍵シェアが格納される必要がある。このような記憶要件を軽減するために、標準的なビットコインのマルチシグネチャは、閾値署名と結合され得る。特に、デジタルアセットは、マルチシグネチャを用いてロックされ得る。その結果、各秘密鍵はシェアに分割される。この技術は、空間要件の観点で、大きな会議ほどより効率的にし得る。より小さなパーティサイズのうちの膨大な数の参加者に対して、複数レベルで、反復的方法で、方式を構成することにより、スケーリング特性も向上され得る。例えば、閾値署名方式は、Cohen他、「Efficient Multiparty Protocols via Log-Depth Threshold Formulae」(2013), Advances in Cryptology-CRYPTO 2013 pp185-202の技術と結合され得る。
【0067】
非ECDSA署名方式を含む他の閾値方式が使用されてよい。例えば、Schnorr方式に基づく閾値方式は、ノード102により議会110を実装するために使用されてよい。
【0068】
ブロックチェーンネットワーク100(図1)内のノード102(図1)は、選択された閾値署名方式に基づき議会プロトコルを実装してよい。このようなノード102は、議会プロトコルを実装する、メモリ220(図2)に格納されたコンピュータ実行可能命令を含んでよい。このような命令は、プロセッサ210(図2)により実行されると、(図2を参照して記載した種類の電子装置200のような)ノード102に、議会プロトコルの1つ以上の方法を実行させる。このような方法は、図4~8及び10の方法300、400、500、600、700、800、1000の任意の1つ又は組み合わせを含んでよい。したがって、議会プロトコルは、図4~8及び10の方法300、400、500、600、700、800、1000の1つ以上を含んでよい。方法は、他の議会メンバーに関連付けられた他のノードと協力して、ノードにより実行されてよい。
【0069】
<議会の開始>
図3を参照すると、議会110を開始する方法300が示される。方法300は、議会110を設立するために、最初に信頼できるパーティにより実行されてよい。最初に信頼できるパーティに関連付けられたノード102が、方法300を実行してよい。
【0070】
方法300は、動作302で、議会公開鍵を提供するステップを含む。議会公開鍵は、他のノードが議会に加わりたいと望む場合に議会公開鍵に支払うことができるように、他のノード102に提供されてよい。つまり、他のノードは、議会に加わるために、デジタルアセットを議会公開鍵に関連付けられたアドレスへ転送してよい。
【0071】
方法300を実行するノード102は、動作304で、1つ以上の条件が満たされるまで、公開鍵への支払を許可する。例えば、ノードは、決定した時間期間の間、又は決定したブロック数の間、公開鍵への支払を許可してよい。条件が満たされた後(例えば、この時間期間の終了又はブロック数のマイニングの後)、方法300を実行するノード102は、動作306で、議会の初期メンバーを識別する。
【0072】
議会の初期メンバーを構成するパーティが識別された後、動作307で、秘密鍵は、閾値署名方式に従い秘密鍵シェアに分割される。動作308で、秘密鍵シェアは、次に、方法300を実行するノード102から識別されたパーティに分配される。秘密鍵シェアは、本願明細書に記載した種類であってよい閾値署名方式に関連付けられる。
【0073】
動作308の間、議会メンバーとして識別されたノード102は、新しい秘密鍵シェア及び新しい公開鍵を生成するために協力する。最初に信頼できるパーティによりこのようなノードへ送信された元の鍵シェアは、議会プールの中の全部のデジタルアセットを、次に議会公開鍵になる新しい公開鍵へ送信するトランザクションに署名しブロードキャストするために使用されてよい。つまり、動作408の間、新しいグループ公開アドレスが確立され、議会の制御下にあるデジタルアセットはこの新しいアドレスに転送される。この新しいアドレスは、グループの新しいアドレスになり、議会公開鍵に関連付けられる。この転送が確認された後、議会は信頼できる動作ができない(trustlessly)。新しいグループ公開アドレスが形成され、議会110に加わることを望む他のノードから、又は上述のような他の目的で、該アドレスへとデジタルアセットのデポジットが将来受信される。議会メンバーは、今や議会に加入していると見なされ、これらのノードは、今や最初に信頼できるパーティの支援無しに動作できる。さらに、最初に信頼できるパーティは、もはや、議会の動作においていかなる役割も果たさない。
【0074】
<議会が開始された後に議会に加わる>
図4を参照すると、図4は、議会に加わる方法400を示す。図4の方法400は、図3の方法300と関連して動作してよいが、図4の方法400は、図3の方法300を実行するノードが動作するのと同じブロックチェーンネットワーク100(図1)内で動作するノード102のうちの別のノードにより実行される。図4の方法400は、動作402で、議会公開鍵を取得するステップを含む。議会公開鍵は、図3の方法300を実行するノードのような、議会を開始するパーティから直接取得されてよい。或いは、議会公開鍵は、例えば、ブロックチェーンネットワーク100(図1)の外部で動作する第三者システムを含む第三者から取得されてよい。例えば、議会公開鍵は、公衆インターネットを介してアクセス可能な公衆ウェブサーバから取得されてよい。
【0075】
動作404で、方法400を実行するノード102は、ノード102に関連付けられたプライベートアカウントから議会アドレス(つまり、議会公開鍵に関連付けられたアドレス)へのデジタルアセットのトランザクションをブロードキャストすることにより、議会公開鍵に支払う。特に、ノード102は、1つ以上のデジタルアセットを議会公開鍵に関連付けられた公開グループアドレスに転送するトランザクションをブロードキャストする。公開グループアドレスは議会プールのためのアドレスである。議会プールは、議会の他のメンバーに関連付けられた他のデジタルアセットを含む。したがって、動作404で、トランザクションは、マイナー104(図1)によりブロックに追加されると、デジタルアセットを、他のメンバーからのデジタルアセットを含む議会プールへ転送する。公開グループアドレスは、議会に加わりたいと望むパーティからの転送、及び議会に加わりたいと望まないパーティからの転送の両方を受信してよい。議会に加わりたいと望まないパーティは、デジタルアセットを議会プールへ転送する。その結果、デジタルアセットは、議会により利用される閾値署名方式を用いて議会による全体的、部分的、又は条件付き制御下に置かれてよい。
【0076】
動作404におけるトランザクションは、デジタルアセットを転送するパーティが議会に加わりたいと望むこと及びデポジットがそのような目的で生成されていることを示すフラグ、識別子、又は他の属性を含んでよい。
【0077】
デジタルアセットを議会プールに預けた後に、動作406で、方法400を実行するノード102は、秘密鍵シェアを受信する。次に、動作408で、ノード102は、プロトコルの単一のインスタンスを実行することにより、秘密鍵シェアを再生成する。秘密鍵シェアの生成は、ノード102のTEE内で実行されてよい。
【0078】
動作408で、ノード102は、少なくとも閾値の秘密鍵シェアが議会の代わりにトランザクションのための有効署名を生成するために使用されなければならない閾値署名方式で使用されるべき秘密鍵シェアを生成する。秘密鍵シェアの他の保持者は、それぞれのデジタルアセットの公開グループアドレスへの転送により許可又は未許可に基づき議会に加わっている議会の他のメンバーである。
【0079】
秘密鍵シェアを再生成するために、動作408で、既存議会メンバーは、鍵シェアを更新するよう協力してよい。例えば、ノード102は、定数項ゼロを有するt次のランダム多項式f n+1(x)を生成してよい。ノード102は、次に、点f n+1(n+1)を計算し、これをそれらの秘密鍵シェアとして設定してよい。ノード102は、次に、この多項式f n+1(i)上の点を既存議会メンバーの各々に分配してよい、i=1,...,n。各既存議会メンバー(i=1,...,n)は、次に、受信した値を彼らの既存秘密鍵シェアに加算して、新しい秘密鍵シェアを得る。ノード102は、今や全ての他のメンバーと等価な秘密鍵シェアを有し、対応する公開鍵は不変のままである。上述のように、閾値署名方式は、楕円曲線デジタル署名アルゴリズム又はSchnorr方式に基づく閾値方式を含む様々な種類であってよい。
【0080】
秘密鍵シェアは、TEE250(図2)内で生成されてよく、ノード102にセキュアに格納されてよい。例えば、秘密鍵シェアは、TEE250に格納されてよい。
【0081】
秘密鍵シェアがそれぞれのノードにより生成された後、前の議会公開鍵の制御下にある資金(例えば、元の議会公開鍵に関連付けられた公開グループアドレスに転送された資金)は、(閾値署名方式の下で有効署名を生成するのに充分な数のグループノードの協力を通じて)新しい秘密鍵シェアに関連付けられた新しい議会公開鍵に転送されてよい。
【0082】
秘密鍵シェアは、動作408で生成された後、方法400の動作410で使用されてよい。秘密鍵シェアは、メンバーによりブロードキャストされてよい公開グループアドレスからのトランザクションのために有効署名を協力して生成するために使用されてよい。つまり、秘密鍵シェアは、署名生成に貢献するために閾値署名方式で使用されてよい。閾値署名方式の下で、議会の閾数の秘密鍵シェアが、デジタルアセットを議会から離れて転送させることを可能にする有効署名を生成するために、それぞれのメンバーにより使用される必要がある。方法400を実行するノード102は、秘密鍵シェアを記憶装置から読み出し、署名生成に貢献するために秘密鍵シェアを使用してよい。充分な数の他の議会メンバーも、署名生成に貢献するために彼らのそれぞれの秘密鍵を使用する場合、署名が生成され、有効な外部へのトランザクションがブロードキャストされてよい。ブロックチェーンネットワーク100のマイナー104(図1)が、ブロックチェーンネットワーク100内のノード102の総意によりブロックチェーンに追加されるマイニングされたブロックにトランザクションを追加し、ブロックが確認されると、外部へのトランザクションが完了する。この時点で、トランザクション内で提示されるデジタルアセットは、もはや議会の制御下になくてよい。つまり、このようなデジタルアセットは、もはや議会公開鍵により妨げられなくてよい。
【0083】
動作408における秘密鍵シェアの使用は、ノード102のTEE内で実行されてよい。TEEは、秘密鍵シェアを保護する。その結果、システムの他の部分又はメンバー自身も、秘密鍵シェアのような、enclaveに格納されたいかなるデータにもアクセスできない。さらに、TEEは、メンバーが彼らのデポジットを戻すこと及び彼らのデポジットを取り返したい場合、メンバーのデポジットが戻される前に秘密鍵の削除を証明しなければならないので、秘密鍵のコピーを保持できないという点で秘密鍵を保護する。
【0084】
図4の方法400は、初期ステップ段階の間に又は後に実行されてよい。つまり、方法400は、初期鍵シェアが分配される前に(例えば、図3の方法300の動作308の間に)又はその後に(例えば、以下に詳述する再バランスの間に)、実行されてよい。
【0085】
動作410におけるトランザクションは、デジタルアセットを議会プールに元々預けたパーティに、該デジタルアセットを転送して戻してよい。つまり、転送は、預けた者にデジタルアセットを返却してよい。転送は、デジタルアセットを他の場所へ転送してもよい。例えば、デジタルアセットは、第三者へ又は使用不可アドレスへ転送されてよい。
【0086】
<デジタルアセットの没収>
図5を参照すると、デジタルアセットを没収する例示的な方法500が示される。図5の方法500は、図4の方法400を実行するのと同じノードであってよいノード102により実行されてよい。方法500は、図4の方法400の動作408の後に実行されてよい。その結果、ノード102は、図5の方法500が実行されるとき、既に秘密鍵シェアへのアクセスを有する。
【0087】
動作502で、ノード102は不正パーティによる不正行為を検出する。不正パーティは、議会の別のメンバーであってよい。ノード102が、議会のメンバーが所定プロトコル又は基準に違反していると決定すると、不正行為が検出される。例えば、議会のメンバーであるノードが、誤った情報(つまり、偽の、不正な、又はその他の場合に許容不可能な情報)を議会の他のメンバーに報告すると、メンバーは不正メンバーであると見なされてよい。
【0088】
動作503で、不正行為の検出に応答して、ノード102は、議会の他のノードと協力して、不正パーティであるメンバーを一時停止してよい。つまり、議会は、議会への更なる参加から不正パーティを除外してよい。
【0089】
全てのノード102が所定プロトコル又は基準に従い動作することを保証するために、議会プールへのメンバーデポジットは没収を受けることがある。没収は、没収されると見なされたメンバーデポジットの返還を永久的に妨げることを意味する。不正行為により返還されないメンバーデポジットを形成するデジタルアセットは、議会プールに残され得るが、(この措置が執られるべきであるという総意に応答して)返還されず、直ちに又は将来に別の使用不可アドレスへ転送され、又はその他の場合、没収される。没収の特性は、議会がサイドチェーンの結合した検証器セットとして機能するか否かに依存してよい。例えば、動作504で、不正パーティによる不正行為の検出に応答して、方法500を実行するノード102は、没収トランザクション(これは、デジタルアセットを使用不可アドレスへ又は不正行為を暴露した報酬として別のノードへ転送するトランザクションである)に対する部分署名を提供するために、秘密鍵シェアを使用してよい。つまり、ノードは、議会の他のノードと協力して、不正パーティにより公開グループアドレスへ(つまり議会プールへ)前に転送されたデジタルアセットの少なくとも一部を没収する。つまり、グループメンバーが所定プロトコル又は基準に違反していることを観察することに応答して、秘密鍵シェアは、該グループメンバーに関連付けられた、議会プール内に保持されている1つ以上のデジタルアセットのトランザクションの認証に貢献するために利用される。
【0090】
閾値署名方式が議会公開鍵と共に使用されるので、単独で動作する個々のノードは、別の議会メンバーのデジタルアセットのデポジットを、議会プールから離れて(例えば使用不可アドレスへ)転送できない。むしろ、閾数の秘密鍵シェアがそれらのそれぞれのメンバーによりデジタルアセットを別のアドレスへ転送するために有効署名を生成するために使用されるとき、又は、少なくとも閾数の秘密鍵シェアを有するメンバーのグループが(動作503で)メンバーを一時停止する総意に達し、これが一時停止されたメンバーからの回収要求を自動的に無視させるとき、デジタルアセットは転送によってのみ没収できる。デジタルアセットが転送により没収されると、デジタルアセットが転送され得る他のアドレスは、使用不可アドレスに関連付けられてよい。例えば、他のアドレスは、秘密鍵の存在しないアドレスであってよい。その結果、いかなるパーティも、該アドレスの公開鍵により結合されたデジタルアセットにアクセスできない。デジタルアセットを使用不可アドレスへ転送するトランザクションが確認されると、又はサイドチェーン上で、デジタルアセットが没収されるべきであるという総意に達すると、デジタルアセットは、もはや議会のいずれのメンバーによっても又は実際にブロックチェーンネットワーク100内のいかなるノードによっても使用できないので、焼却されたと考えられてよい。
【0091】
したがって、動作504で、ノードは、使用不可アドレスへのトランザクションのための有効署名を生成するために議会の他のメンバーと協力して秘密鍵シェアを使用することにより、デジタルアセットを没収してよい。幾つかの実装は、第2ブロックチェーン上で、メンバーが彼らのデポジットの全部又は一部を永久的に奪われるべきであるという総意に達することを含んでよい。
【0092】
さらに、幾つかの実装では、議会は、proof-of-stakeサイドチェーンをセキュアにする結合検証器セットとして機能してよい。このサイドチェーンは、ブロードキャストチャネルとして使用されてよい。例えば、総意は、メンバーが不正に動作していたサイドチェーン上で、議会メンバーにより達成されてよい。この総意は、不正行為の証拠を告発することを含むサイドチェーントランザクションの確認に対応し得る。総意が達成されると、不正メンバーにより行われるメンバーデポジットを回収するいかなる要求も拒否され、デポジットは没収されたと考えられる。没収されたデジタルアセットは、将来のいつかに焼却(burnt)されてよい。つまり、後のいつかに、(不正メンバーを含まない)閾値のメンバーは、協力して、没収されたデジタルアセットの使用不可アドレスへの転送を認可してよい。
【0093】
議会は、ブロックチェーンネットワーク100の任意のノード102によりデジタルアセットのデポジットを通じて参加され得る開放型グループであるので、グループメンバーは周期的に変化してよい。このような変化が生じると、秘密鍵シェア分配が更新されてよい。図6を参照すると、秘密鍵シェア分配を更新する例示的な方法600が示される。方法600は、ブロックチェーンネットワーク100の他のノードと協力して、ブロックチェーンネットワーク100のノード102により実行されてよい。
【0094】
<新しい公開アドレスを用いて秘密鍵シェア分配を更新する>
方法600の動作602で、ノード102は、再分配要求を検出する。再分配要求は、その履行が鍵シェアの再分配を伴う要求である。例えば、ノード102は、見込み新メンバーがデジタルアセットを公開グループアドレスへ転送すること、又は既存メンバーがメンバーデポジットの回収を要求したことを検出してよい。
【0095】
デジタルアセットは、議会に参加すること又は議会における彼らの関与を増大することを要求するノードにより、又は議会に参加することを要求しないが代わりに(例えば、上述のようにサイドチェーンへデジタルアセットを転送するような)別の目的でデジタルアセットを議会へ転送する他のノードにより、公開グループアドレスに転送されてよい。動作602で、ノード102は、議会メンバー(つまり、議会に参加するために及び別の目的ではなくデジタルアセットを議会公開鍵へ転送したパーティ)を、公開グループアドレスへのデジタルアセットのトランザクションの少なくとも一部に含まれる1つ以上の属性を用いて、識別してよい。例えば、特定のトランザクションは、トランザクション内の属性を用いて特別トランザクションとして注意を与えられて(flag)よい。このような属性(又はその存在若しくは不存在)は、転送が行われる目的を示してよい。例えば、転送者が議会に参加することを要求していないとき、フラグがトランザクションに含まれてよい。
【0096】
動作602で要求を検出することに応答して、動作604で、該要求の履行は、鍵シェアの再分配を伴う。新しい秘密鍵シェアが、ノード102により、図4の方法400の動作408で秘密鍵シェアが生成された方法と同様の方法で生成される。議会の他のメンバーノードも、それぞれの秘密鍵シェアを生成する。これらの秘密鍵シェアは、新しい議会公開鍵に対して閾値署名方式で使用されてよい。この時点で議会を去るメンバーは、動作604の間に新しい秘密鍵シェアを生成しない。彼らは、新しい議会公開鍵と共に使用するための秘密鍵シェアを割り当てられないので、彼らは、議会に参加する能力を失い、もはや議会メンバーと考えられない。
【0097】
さらに、再分配要求(これは、その履行が鍵シェアの再分配を伴う要求である)を検出することに応答して、動作606で、ノード102は、他の議会メンバーと協力して、公開グループアドレス内の全部のデジタルアセットを、新しい公開鍵に関連付けられた新しい公開アドレス(これは、次に新しい議会公開鍵になる)へ転送する。
【0098】
したがって、図6の方法600によると、デポジットの分配が変化すると、又はデポジットを回収する要求がメンバーから受信されると、秘密鍵シェアが再生成されてよく、議会の制御下にあるデジタルアセットの全部が新しい公開鍵へ移動されてよい。議会のメンバーシップが更新され得る頻度は、ブロックチェーンネットワーク100のブロック時間により制限される。多くのアプリケーションは、低い頻度でのみ再バランスを要求し得る。
【0099】
<既存公開グループアドレスを保持しながら、秘密鍵シェア分配を更新する>
図7を参照すると、秘密鍵シェア分配を更新する更なる例示的な方法700が示される。方法700は、ブロックチェーンネットワーク100の他のノードと協力して、ブロックチェーンネットワーク100のノード102により実行されてよい。
【0100】
図7の方法700では、議会公開鍵は、メンバーデポジットの分配が変化する度に変化しない。新しい鍵シェアを割り当てる要求が検出されると(動作702で、これは、デジタルアセットの公開グループアドレスへのデポジットを通じて生じてよい)、ノード102は、議会の他のメンバーと協力して、(動作704で)同じ公開鍵に対する新しい秘密鍵シェアをグループの新しいメンバーに発行する。協力するノードの数は、少なくとも、閾値署名方式の下でデジタル署名を生成するために必要なノードの閾数である。動作704で、追加鍵シェアが割り当てられてよく、一方で他の鍵シェアは同じままである。これは、変化が実際には小さいものであり得るが、(閾値署名方式の)閾値の変化を伴ってよい。代替として、動作704で、追加鍵シェアが割り当てられてよく、一方で他の鍵シェアは更新される。このような更新は、前の生成の任意の鍵シェアの削除のアテステーションを伴うことが必要である。この場合、(SSSのコンテキストでは、これは新しい多項式における、昇順の(increased order)共有を含む)同じ閾値を維持しながら、新しいシェアが割り当てられてよい。
【0101】
動作702で、ノード102は、議会メンバー(つまり、議会に参加するために及び別の目的ではなくデジタルアセットを議会公開鍵へ転送したパーティ)を、公開グループアドレスへのデジタルアセットのトランザクションの少なくとも一部に含まれる1つ以上の属性を用いて、識別してよい。例えば、特定のトランザクションは、トランザクション内の属性を用いて特別トランザクションとして注意を与えられてよい。このような属性(又はその存在若しくは不存在)は、転送が行われる目的を示してよい。例えば、転送者が議会に参加することを要求していないとき、フラグがトランザクションに含まれてよい。
【0102】
メンバーが方法700を使用する議会を退去するとき、彼らは彼らの秘密鍵シェアをセキュアに削除してよい。古いメンバーの秘密鍵シェアが使用できないことを保証するために、議会のメンバーは、特別なTEEを有するノード102を使用することを要求されてよい。TEEは、それらの内部で実行される命令及びデータがシステムの残りの部分からのアクセス及び操作に対して保護されることを保証する、ハードウェアレベルで実装されるアーキテクチャである。TEEは、ハードウェアメカニズムを利用して、議会の他のノードのような外部パーティに対してシステムの完全性を検証するために使用可能なリモートアテステーションチャレンジに応答してよい。
【0103】
各メンバーノードは、集積回路レベルのハードウェアを危険に晒すことなくホストシステムにアクセスできないままの1つ以上のランダムシークレット値を生成するよう構成される認定TEEを使用してよい。このように生成されたシークレット値は、秘密鍵シェアの分散生成において(例えば、図4の方法400の動作410で)使用され得る。このシークレット値は、議会の設立段階で共有公開鍵を確立するためにも使用され得る。設定プロトコルに関連付けられた計算は、TEE enclave内で実行される。その結果、いかなるメンバー又は前のメンバーも、彼ら自身の又は他者の秘密鍵シェアに関するいかなる情報も、メンバー間通信から又は任意の他の方法から引き出すことができない。TEE内のenclaveは、リモートアテステーションプロトコルが実行されることを可能にする。リモートアテステーションプロトコルは、TEE enclaveが認証されること及び認可されたコンピュータ可読命令を実行していることを他のノードに証明するために使用されてよい。
【0104】
グループ変化に関連する計算は、TEE enclave内で実行される。例えば、SSSの目的で新しい多項式を計算する際に使用され得る新しいセキュアランダムシークレットの生成は、TEE enclave内で実行される。
【0105】
TEE enclaveは、また、メンバーデポジットが返却され得る前に、もはや使用されるべきではない前の鍵シェア及び前のシークレットがセキュアに削除されたことを保証することを目的とする。特に、メンバーデポジットを返却するために、アテステーションプロトコルは、TEE enclaveが鍵シェアの削除を証明することを要求してよい。各ノード102は、このようなアテステーションを、要求された削除が他のノード上で生じたことの、リモートアテステーションプロトコルを通じた確認として解釈してよい。したがって、方法700は、議会から去ったメンバーのTEE内に前に保持された秘密鍵シェアが、該メンバーに関連付けられたノードから削除されたことを確認するステップ、を更に含んでよい。この確認は、秘密鍵シェアの削除のアテステーションを受信することにより実行されてよい。したがって、リモートアテステーションプロトコルが、議会を去ったメンバーのTEE内に前に保持された秘密鍵シェアの削除に対するアテステーションを取得するために使用されてよい。
【0106】
図6の方法600及び図7の方法700は、それぞれ様々な利益を提供する。例えば、図6の方法600は、セキュアな削除に依存せず、信頼できるハードウェアに依存する必要がない。しかしながら、図6の方法600は、幾つかの状況では、このようなハードウェアが鍵シェアの不正プールを一層起こりにくくし得るので、このようなハードウェアから利益を享受し得る。
【0107】
図7の方法700は、メンバーシップが変化する度に、新しい議会公開鍵の下でデジタルアセットを再ロックしなければならないことを回避する。例えば、TEEを利用する方法700の実装は、永続的グループアドレスが利用され得ることを可能にする。ここで、グループメンバーは、セキュリティを危険に晒すことなく出入りしてよい。好都合なことに、この方法では、適切なセキュリティを提供したまま、グループアドレスを変更しなければならないオーバヘッドが回避され得る。さらに、幾つかの状況では、方法700は、図6の方法600より速くメンバーシップを更新し得る。これは、図7の方法700の下では、デジタルアセットが新しい公開鍵に移動されないので、全てのデジタルアセットを新しい公開鍵へ移動するために、トランザクションがブロックチェーンに追加される必要がないからである。つまり、メンバーシップは、図7の方法700を用いて更新されてよく、公開鍵が変化しないので、デジタルアセットの新しい公開鍵への転送を確認するために幾つかのブロックが生成されるのを待つ必要がない。
【0108】
<議会からの抹消>
上述のように、グループメンバーは、時折、議会を去ることを要求することがある。グループメンバーが議会から抹消するとき、彼らが議会プールに預けたデジタルアセットは彼らに返却されてよい。図8を参照すると、デポジットを返却する例示的な方法800がフローチャートの形式で示される。方法は、議会の他のノード102と協力して、ノード102により実行されてよい。
【0109】
方法800の動作802で、ノード102は、議会メンバーである要求者から回収要求を受信する。回収要求は、抹消要求とも呼ばれてよい。回収要求は、要求者により前に預けられ現在は議会により制御されるデジタルアセットを回収するための要求である。要求は、要求者により議会メンバー全員にブロードキャストされてよい。
【0110】
要求を受信することに応答して、動作804で、ノード102は決定された基準に対して要求を評価する。このような基準は所定基準であってよい。議会が、グループメンバーシップが変化する度に議会公開鍵が変更されない議会プロトコルに従い動作する場合、動作804で、ノード102は、秘密鍵シェアが要求者により削除されたことを確認してよい。このような確認は、TEEに関連付けられたリモートアテステーションプロトコルを用いて取得されてよい。
【0111】
議会プロトコルが、メンバーシップが変化するとき議会公開鍵が変更されるものである場合、秘密鍵シェアはもはや有効ではないので、ノード102は、秘密鍵シェアの削除を確認しなくてよい。代わりに、新しい議会鍵が使用されてよく、議会の制御下にある他のデジタルアセットは、新しい議会鍵へ転送されてよい。
【0112】
ノード102が評価に基づき回収要求を認可した場合、動作806で、ノードはデジタルアセットの回収を促進する。つまり、ノード102は、自身の秘密鍵シェアを使用して、デジタル署名を協力して生成し、要求者により前に預けられたデジタルアセットを要求者へ転送して戻すためにデジタル署名を使用する。例えば、デジタルアセットは、それらが前に受信されたアドレスへ送り返されてよい。動作806は、閾値署名方式に従い実行される。その結果、回収は、少なくとも閾数の議会メンバーが回収を承認した場合にのみ有効になる。動作806は、抹消を望むメンバーがある時間期間の間、活動を一時停止された後に、実行される。この待機期間は、メンバーのメンバーデポジットの返却のためのプロトコルが実行されている間、メンバーが不正行為に従事するのを防ぐ。
【0113】
議会プロトコルは、多数の異なる目的で使用されてよい。議会は、様々な機能を実行するセキュアなメカニズムを提供する。議会は、信用できるよう動作しなくてよく、デジタルアセットに対する所有権の制御を提供する。
【0114】
議会プロトコルは、例えば、セキュアな許可不要proof-of-workブロックチェーンとセキュアな許可不要proof-of-stakeブロックチェーンとの間の双方向ペッグを実施するために使用されてよい。双方向ペッグは、あるブロックチェーンから別のブロックチェーンへのデジタルアセットの効率的転送及び返却を可能にするメカニズムである。特に、デジタルトークンは、メインチェーンと呼ばれ得るメインブロックチェーンネットワークから、サイドチェーン又はalt-chainと呼ばれ得る別個の2次的なブロックチェーンネットワークへ転送されてよい。このメカニズムは、特別に構成されたメカニズムである必要がない。実際に、後述する技術は、(ビットコインのような)メインチェーン上の既存プロトコルと共に動作する。この技術は、デジタル署名を用いてデジタルアセットの転送を認証する任意のメカニズムと共に動作する。以下に更に詳細に記載するように、メインチェーンからの転送は、メインチェーン上のデジタルアセットの一時的ロックにより、サイドチェーン上で対応するデジタルアセットを作り出す(minting)サイドチェーンのマイナーを伴い、達成される。サイドチェーンからメインチェーンへの転送も、この動作がメインチェーン上の等価な量のデジタルアセットのアンロックをもたらすメカニズムが存在するとき、サイドチェーン上のデジタルアセットを焼却することにより実行されてよい。
【0115】
<複数のブロックチェーンネットワークを有するシステム>
図9を参照すると、例示的な第1及び第2ブロックチェーンネットワークのブロック図が示される。第1ブロックチェーンネットワーク900は、proof-of-workブロックチェーンネットワークである。第1ブロックチェーンネットワーク900は、図1を参照して上述した種類であってよい。第1ブロックチェーンネットワーク900は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いに結合される多数のノード102a、102bを含む。
【0116】
第1ブロックチェーンネットワーク900のノード102a、102bは、第1ブロックチェーン(これはメインチェーンと呼ばれ得る)上の全てのトランザクションのグローバル台帳を維持する。ノード102a、102bのうちの少なくとも幾つかは、第1ブロックチェーンネットワーク900のマイナー104として動作する。
【0117】
第2ブロックチェーンネットワーク902は、proof-of-stakeブロックチェーンネットワークである。第2ブロックチェーンネットワーク902は、互いに結合され第2ブロックチェーンネットワーク902のグローバル台帳を維持する複数のノード102c、102dを含む。第2ブロックチェーンネットワーク902のグローバル台帳は、第1ブロックチェーンネットワーク900のグローバル台帳と別個であり異なる。第2ブロックチェーンネットワーク902のグローバル台帳は、サイドチェーンと呼ばれてよい。
【0118】
proof-of-stakeに基づく第2ブロックチェーンネットワーク902は、総意を達成するための代替メカニズムを提供する。proof-of-stakeブロックチェーンネットワークでは、ブロックチェーンは、proof-of-workではなくproof-of-stakeによりセキュアにされる。proof-of-stakeの下では、マイナー906は、デジタルアセットのセキュリティデポジットを預け、ブロックをマイニングすべきノードとして選択される確率はセキュリティデポジットとして提供されるデジタルアセットの量に比例する。proof-of-stakeブロックチェーンシステムは、proof-of-workブロックチェーン上でマイニングするために必要な計算上の費用及びエネルギを回避するために使用できる。さらに、proof-of-stakeブロックチェーンは、proof-of-workブロックチェーンより高い頻度及びより規則的なブロック生成を可能にできる。
【0119】
第2ブロックチェーンネットワーク902は、適切な通信技術を用いて一緒に結合される多数のノード102b、102cも含む。これらのノード102b、102cは、第2ブロックチェーンネットワーク902のグローバル台帳を維持する。
【0120】
複数のノード102bは、第2ブロックチェーンネットワーク902のマイナー906として機能する。第2ブロックチェーンネットワーク902はproof-of-stakeブロックチェーンネットワークなので、マイナー906は、マイナーとして含まれるためにデジタルアセットを預ける。特に、サイドチェーンのマイナー906は、第2ブロックチェーンネットワーク902上でマイニングするために結合検証器セットを形成する。これらのマイナー906は、第1ブロックチェーンネットワーク900に関連付けられた議会110のメンバーでもある。つまり、第1ブロックチェーンネットワーク900及び第2ブロックチェーンネットワーク902の両方の部分であるノード102bは、第2ブロックチェーンネットワーク902のマイナー906として、及び第1ブロックチェーンネットワーク900上に設立された議会110のメンバーとして動作する。これらのマイナー906は、上述の方法に従い、議会110に加わり、議会110に参加する。デジタルアセットの議会プールへの彼らのデポジットは、メインチェーン内に作成される。つまり、議会メンバーは、彼らの「掛け金(stake)」をproof-of-work第1ブロックチェーンネットワーク900に預けて、第1ブロックチェーンネットワーク900の議会メンバーになり、結合検証器セットを形成することにより第2ブロックチェーンネットワーク902上でマイナー906としても動作する。第1ブロックチェーンネットワーク900へのメンバーデポジットは、第2ブロックチェーンネットワーク902に対するセキュリティデポジットとして機能する。
【0121】
また、メンバーの保持する秘密鍵シェアの数は、メンバーのセキュリティデポジットの量に基づくので、並びに、このようなデポジットは不正行為に対して没収を受けるので、議会の活動により大きな影響を有するメンバー(つまり、より多くの秘密鍵シェアを保持しているメンバー)は、より少ない影響を有するメンバーより多くを失わなければならない。議会110は、充分な掛け金を議会110に関連付けられたプールに提出することで任意のノードにより参加されてよい開放型メンバーシップグループである。議会メンバーは第2ブロックチェーンネットワーク902上のマイナーであるので、彼らは、第2ブロックチェーンネットワーク902上で新しいデジタルアセットを生成でき、デジタルアセットを第1ブロックチェーンネットワーク900から第2ブロックチェーンネットワーク902へ効率的に転送する。議会110は、proof-of-workブロックチェーンとproof-of-stakeブロックチェーンとの間の双方向ペッグを提供するために使用されてよい。
【0122】
図9に示されるノード102a、102b、102cは、図2を参照して上述した種類の電子装置200であってよい。
【0123】
<双方向ペッグ>
ここで図10を参照すると、図10は、双方向ペッグを提供する例示的な方法1000をフローチャートの形式で示す。方法1000は、第1ブロックチェーンネットワーク900(つまりproof-of-workブロックチェーンネットワーク)及び第2ブロックチェーンネットワーク902(つまりproof-of-stakeブロックチェーンネットワーク)の両方で動作するノード102bにより実行されてよい。コンピュータ可読命令は、このようなノードのメモリに格納されてよい。これらの命令は、ノードのプロセッサにより実行されると、方法1000を実行するようプロセッサを構成する。
【0124】
動作1002で、ノード102bは議会に加わる。議会は、図4を参照して上述した方法で参加されてよい。例えば、ノード102bは、1つ以上のデジタルアセットを議会公開鍵に関連付けられた公開グループアドレスに転送してよい。公開グループアドレスは、議会の他のメンバー(例えば、他のノード102b)に関連付けられた1つ以上の他のデジタルアセットを有する。ノード102bが議会に加わるとき、ノード102bは、少なくとも閾値の秘密鍵シェアが議会に代わって有効署名を生成するために使用されなければならない閾値署名方式で使用するための秘密鍵シェアを生成する。上述のように、閾値署名方式は、楕円曲線デジタル署名アルゴリズム又はSchnorr方式に基づく閾値方式を含む様々な種類であってよい。
【0125】
秘密鍵シェアの他の保持者は、それぞれのデジタルアセットの公開グループアドレスへの転送により許可又は未許可に基づき議会に加わっている議会の他のメンバーである。
【0126】
動作1004で、議会に加わったノード102bは、proof-of-stakeブロックチェーンネットワーク上で(例えば、第2ブロックチェーンネットワーク902上で)議会の他のメンバーと一緒に結合検証器セットを形成する。つまり、セキュリティとしてデジタルアセットのデポジット(このデポジットは「結合(bonding)」と呼ばれ得る)の後に、(デポジットを通じて第1ブロックチェーンネットワーク900上に形成された)議会のメンバーは、今や第2ブロックチェーンネットワーク上のマイナーとして動作し、第2ブロックチェーンネットワーク902に対して周期的に新しいブロックを生成する。
【0127】
議会が形成された後に、議会メンバーであるノード102bは、動作1006で、proof-of-workブロックチェーンネットワーク上のデジタルアセットのグループ公開アドレスへの特別トランザクションの確認を検出してよい。トランザクションは、トランザクションを議会に加わるために使用されるトランザクションから区別する所定基準を満たす場合、特別であると決定される。例えば、トランザクションは、特定フラグ、変数又は属性を含む場合に特別であると決定されてよい。
【0128】
特別トランザクションを検出した後に、ノード102bは、少なくとも閾数のブロックがproof-of-workブロックチェーンネットワークのブロックチェーンに追加されるまで待機してよい。この待機期間は、動作1006でトランザクションを無効にし得る、proof-of-workブロックチェーンネットワークにおけるブロックチェーンの可能な再編成のリスクを低減し得る。したがって、図10に示さないが、方法は、特別トランザクションを検出した後に、少なくとも閾数のブロックがproof-of-workブロックチェーンネットワークのブロックチェーンに追加されることを決定する動作を含んでよい。
【0129】
閾数のブロックがproof-of-workブロックチェーンに追加された後に、ノード102bは、(動作1008で)proof-of-stakeブロックチェーンネットワーク上の対応するデジタルアセットを作り出す。これらのデジタルアセットは、特別トランザクションを検出することに応答して作り出され、動作1006で検出された特別トランザクションの中のデジタルアセットの量に対応する量で作り出される。
【0130】
作り出されたデジタルアセットは、proof-of-stakeブロックチェーンネットワーク上で、1006で検出された特別トランザクションを生成した公開鍵の所有者に関連付けられたアカウントに置かれる。したがって、デジタルアセットをproof-of-workブロックチェーンネットワーク上の議会に転送するパーティは、proof-of-stakeブロックチェーンネットワーク上のデジタルアセットの制御を取り戻す。このパーティは、今や、例えばこれらのデジタルアセットを他のアカウントへ転送することを含む様々な方法で、これらのデジタルアセットを自由に使用できる。
【0131】
作り出すステップは、選択された議会メンバーにより実行される。特に、proof-of-stakeブロックチェーンネットワークのためにマイナー906としても動作する議会メンバーは、proof-of-stakeブロックチェーンネットワークによりブロックを生成するために選択される。ノードが選択される確率は、該ノードが資金を与えた(stake)デジタルアセットの量に基づく。確率は、ノードが議会公開鍵に預けたデジタルアセットの量に比例してよい。
【0132】
後のいつかに、デジタルアセットの所有者は、それらをproof-of-workブロックチェーンネットワークに(つまり、メインチェーンに)転送して戻したいと望むことがある。そうするために、彼らは、デジタルアセットをproof-of-workブロックチェーンネットワークに転送して戻すための要求を発行してよい。このような要求は、proof-of-stakeブロックチェーンネットワーク上の特別トランザクションの形式で発行されてよい。このトランザクションは、特別使用不可アドレスへのトランザクションであるという点で特別であってよい。このアドレスは、送信者が資金をメインチェーンに転送して戻したいと望むとき、該資金が送信されるべきアドレスである。つまり、トランザクションは、アドレスが特別アドレスであるという点で特別であってよい。動作1010で、ノード102bは、proof-of-stakeブロックチェーンネットワーク上のデジタルアセットを、proof-of-workブロックチェーンネットワークへ転送して戻す要求を検出してよい。例えば、動作1010で、資金を特別アドレスへ送信するトランザクションのマイニングがあってよい。
【0133】
再編成を防ぐために、ノード102bは、動作1010で要求を検出した後に、少なくとも閾数のブロックがproof-of-stakeブロックチェーンネットワークのブロックチェーンに追加されるまで待機してよい。したがって、図10に示さないが、方法1000は、要求の検出後に、少なくとも閾数のブロックがproof-of-stakeブロックチェーンネットワークのブロックチェーンに追加されていることを決定する動作を含んでよい。
【0134】
このような要求を検出し、及び閾数のブロックがproof-of-stakeブロックチェーンに追加されていると決定することに応答して、ノード102bは、動作1012で、議会についての自身の秘密鍵シェアを使用して、公開グループアドレスからのトランザクションのための有効署名を協力して生成する。例えば、トランザクションは、直接に、又はサイドチェーン上のトランザクションに必要情報を含めることによりサイドチェーンを介して、議会のメンバー間で巡回されてよい。メンバーは、トランザクションがproof-of-workブロックチェーンネットワークのマイナー104にブロードキャストされ得る時点である有効署名が取得されるまで、彼らの部分署名を追加してよい。トランザクションは、動作1010で検出された要求を発行したノードに関連付けられたアドレスであってよい、proof-of-workブロックチェーンネットワーク上のアドレスへ、デジタルアセットを転送する。
【0135】
動作1010でデジタルアセットが転送される特別アドレスは、使用不可アドレスである。したがって、動作1010におけるデジタルアセットの転送は、proof-of-stakeブロックチェーン上のデジタルアセットを焼却して、二重使用(つまり、2つのブロックチェーンに渡るデジタルアセットの重複)を防ぐ。
【0136】
セキュリティを向上するために、転送の動作の少なくとも一部は、ノード内の信頼できる実行環境で実行されてよい。例えば、少なくとも閾数のブロックがproof-of-stakeブロックチェーンネットワークのブロックチェーンに追加されているという決定は、ノード上の信頼できる実行環境内で実行されてよい。ノードは、秘密鍵シェアを使用する前に、信頼できる実行環境内で動作1010において検出された要求の有効性を確認してもよい。秘密鍵シェアの生成及び使用も、信頼できる実行環境内で実行されてよい。
【0137】
<単方向ベット攻撃に対する保護>
セキュリティを更に向上するために、プロトコルは、単方向ベット(bet)攻撃に対する1つ以上の保護手段を含んでよい。単方向ベット攻撃の一例は、詐欺師(つまり、不正パーティに関連付けられたノード)がメインチェーン上で、議会の制御下にある(つまり、議会公開鍵により妨げられている)デジタルアセットの全部又は一部を使用するトランザクションを構成すると、生じる。詐欺師は、部分署名を追加するために他のメンバーへトランザクションを提供し得る。メンバーに関連付けられた閾数の秘密鍵シェアが参加した場合、有効署名が生成できる。プロトコル内で使用される閾値署名方式が、集約(aggregate)署名方式(例えば、ECDSAが使用される場合)ではない場合、部分署名に貢献したメンバーを識別することは困難であり得る。詐欺が成功した場合に支払うべきメンバーは、彼らの部分署名をトランザクションに追加し、詐欺の関係者として暴露の危険を冒すことなくトランザクションを渡し得る。したがって、起こり得る最悪の事態は、完全署名を取得するために充分な部分署名が集められることであるので、部分署名の追加は単方向ベットとして見られ得る。
【0138】
プロトコルは、したがって、プロトコルを単方向ベットから保護する1つ以上の機能を含んでよい。例えば、各ノードのTEEは、それらのデポジットが返還要求される前のアテステーションのように、それらが部分署名した及び/又はそれらがブロードキャストするよう要求され得る全てのトランザクションを周期的に証明するよう構成されてよい。ノードが、詐欺トランザクションであると(閾値の議会メンバーにより)後に判定されたトランザクションに部分署名を追加したことを証明する場合、(例えば、図5の方法500の動作502で)このような不正行為は、他の誠実なメンバーノードにより検出されてよい。このような不正行為が検出されると、誠実なメンバーノードは、(図5の方法500の動作503を参照して上述したように)協力してメンバーを一時停止し、及び/又は、(図5の方法500の動作504を参照して上述したように)メンバーのデジタルアセットを没収してよい。この技術は、プロトコルを単方向ベットから保護するのを助ける際に有用であるが、周期的アテステーションが使用される場合にオーバヘッドを導入し得る。さらに、アテステーションがデポジットの返却前に要求される場合には、長時間の間、詐欺が検出されないことがある。
【0139】
プロトコルは、単方向ベットに対して保護するたに、他のセキュリティ手段を含んでよい。例えば、Boneh、Gentry、Lynn及びShachamの「BGLS」方式(Aggregate and Verifiably Encrypted Signatures from Bilinear Maps、International Conference on the Theory and Applications of Cryptographic Techniques, EUROCRYPT 2003: Advances in Cryptology-pp416-432)のような集約署名方式が使用されてよい。集約署名は、異なる署名者が異なるメッセージに署名することを可能にすると同時に、「シングルショット(単発、single shot)」で検証可能な1つの署名のみを生成する。
【0140】
BGLSを使用するために、各メンバーのTEEは、メインチェーン上で使用される閾値署名方式のための単一の秘密鍵シェア、及びBGLS秘密鍵を保持してよい。BGLS秘密鍵に対応する公開鍵は、シェアID(Share ID:SID)と呼ばれてよい。BGLS秘密鍵は、TEE内のセキュアな乱数発生器を用いて生成された乱数であってよい。閾値署名方式のための秘密鍵シェアは、複数パーティ鍵生成プロトコルを用いてTEE内で計算されたシェアである。
【0141】
BGLSは、以下の方法で単方向ベットに対する安全な保護を提供できる。ノードが加入を目的として議会公開鍵に支払うとき(これは、図4の方法400の動作404で生じ得る)、加入トランザクションは、i)enclaveが見ていたメインチェーン上の最近のブロックの数及びハッシュ並びに第2ブロックチェーン(つまりサイドチェーン)上の最近のブロックの数及びハッシュ、ii)quote(TEEのアテステーション鍵により署名されたenclave内のメモリの初期コンテンツのハッシュ、及びSIDへの結合)、を含んでよい。
【0142】
TEEが加入トランザクションのために必要なデータを提供することを要求する前に、メンバーは、メインチェーン及び第2ブロックチェーン上の全てのブロックを彼らのTEEへ、各ブロックチェーンの起源ブロックから開始して順次送信しなければならない。TEEは、メインチェーン上のproof-of-workをチェックし、加入及び抹消トランザクションを分析することにより取得され得る現在のメンバーシップのレコードを保持するよう構成される。これは、TEEが、(例えば自身の所有者から)独立して、現在のSIDを確立することを可能にする。つまり、これは、TEEが、議会の全ての現在メンバーに対応するSIDを確立することを可能にする。
【0143】
加入するために(例えば、図4の方法400の動作404の間)、(見込み)メンバーは、議会の公開グループアドレスに支払可能な加入トランザクションを構成し、署名し、及び、メインチェーンであるブロックチェーンネットワークへ(例えば、図9の第1ブロックチェーンネットワーク900へ)ブロードキャストする。加入トランザクションは、少なくとも1つの鍵シェアのために充分なUTXOを参照する。加入トランザクションがメインチェーン上で確認されると、議会のメンバーは、(例えば、図7の方法700の動作704を参照して上述したように)新しい鍵シェアを、加入メンバーのTEEへ協力して発行してよい。
【0144】
議会が議会公開鍵により妨げられたデジタルアセットのトランザクションを開始することを望むとき、議会内のノードは、第2ブロックチェーンネットワーク上で(つまり、サイドチェーンのようなalt-chain上で)トランザクションT(M)を提案してよい。トランザクションT(M)は、この時点で、サイドチェーンA上で提案される、メインチェーンM上のデジタルアセットを転送することを意図した未署名トランザクションである。つまり、第2ブロックチェーンネットワーク(つまり、サイドチェーン)は、ブロードキャストチャネルとして使用されてよい。1人のメンバーが何らかの情報を全ての他のメンバーに通信したいと望むとき、彼らは、それをトランザクション上に置き、サイドチェーンへ送信してよい。
【0145】
トランザクションT(M)は、少なくとも閾数のブロックがその上でマイニングされると、第2ブロックチェーンネットワーク(サイドチェーン)上で批准されたと見なされる。TEEが、トランザクションが第2ブロックチェーンネットワーク上で(つまり、サイドチェーンのようなalt-chain上で)批准された(つまり、提案され確認された)ことを観察すると、それらはプレコミット(precommit)をブロードキャストする。プレコミット(precommit)は、トランザクションT(M)上のBGLS署名及びBGLS署名に対応するSIDで構成される。プレコミットは、第2ブロックチェーンネットワークへ送信され、その結果、他の議会メンバーと共有される。つまり、プレコミットは、第2ブロックチェーンネットワーク上のトランザクション内にカプセル化されてよい。
【0146】
閾値のプレコミットが、ノードにより、及び特に、メインチェーン及び第2ブロックチェーンネットワークの両者のブロックが入力されるTEEにより観察されると、ノードはコミット(部分署名)を、プレコミットされていたトランザクションT(M)上に出力する。閾値は、例えば、全ての現在SIDの単純多数に設定されてよい。コミットは、トランザクションに含まれて、T(M)を参照するT(M)に対する部分署名を含む第2ブロックチェーンネットワーク上に送信される。
【0147】
完全署名を構成するために少なくとも閾数のコミットが第2ブロックチェーンネットワーク内で観察されると、署名済みトランザクションT(M)が構成され、第1ブロックチェーンネットワークへ(例えば、メインチェーンへ)ブロードキャストされる。
【0148】
集約署名方式の特性は、メンバーが彼らのアイデンティティを開示することなくプレコミットに貢献できないことを意味するので、プレコミットの使用は追加セキュリティを提供できる。つまり、彼らのアイデンティティは、加入手順の間にメンバーデポジットに関連付けられるSIDの形式で開示される。
【0149】
上述の手段に加えて、ノードに関連付けられたTEEは、更に、トランザクションが第2ブロックチェーンネットワーク上で批准された場合にのみコミットされ又はプレコミットされるように、構成されてよい。例えば、全てのブロックは、ブロックが、(該ブロックの構成されたTEEのSIDに対応する)該ブロックを必要とする批准済みトランザクションへのプレコミット又はコミットを常に含むように、TEE内で構成され得る。したがって、メンバーは、批准済みトランザクションへのコミット又はプレコミットを送信すること及びサイドチェーン上でマイニングし続けることを抑制できない。
【0150】
第2ブロックチェーンネットワーク上で未批准トランザクションへのプレコミットを観察したノードは、このような不正行為を結合検証器セットの他のメンバーに報告してよい。不正メンバー(彼らのSIDにより識別される)は、上述のようにメンバーデポジットの一時停止及び/又は没収を通じてペナルティを科されてよい。例えば、未批准トランザクションへのプレコミットを観察することに応答して、メンバーシップは、協力して直ちにSIDを一時停止してよい。その結果、もはや更なるプレコミットは受け付けられず、有罪メンバーはプロトコルへの参加を一時停止される。さらに、有罪の証拠を含むトランザクションが第2ブロックチェーンネットワーク内で確認されると、有罪メンバーのデポジットは没収されてよく、彼らのデポジットは焼却される。誠実なメンバーは、(例えば、没収したデジタルアセットの少なくとも一部を、不正行為を報告したノードへ転送することにより、)不正行為を報告したノードに協力して報酬を与えてよい。したがって、プレコミット段階における集約署名方式の適用は、例えば単方向ベット攻撃を防ぐことにより、プロトコルのセキュリティを強化し得る。
【0151】
メインチェーン内のproof-of-workの現在の採掘難易度がTEE自身の現在の採掘難易度より少ないと決定するようTEEを欺こうとするメンバーに対して保護するために、TEEは、採掘難易度の急激な低下が観察されると、措置を取るよう構成されてよい。特に、ブロックが到着するときTEEに提出される場合、採掘難易度は、ブロック間の時間間隔から確立されてよい。採掘難易度の低下は緩やかであると期待され、急激な低下(低下は、所定基準に基づき「急激」であると決定されてよい)は、メンバーが、ブロックが到着したときブロックを提供せず、proof-of-workメカニズムのブロックを偽造することを容易にするように、まるで採掘難易度が降下したかのように見せることにより、TEEを欺こうとすることにより引き起こされ得る。更なるセキュリティを提供するために、TEEは、マイニングされるべき新しい採掘難易度へのプレコミットを(ブロックのハッシュ及びブロック数と共に)第2ブロックチェーンネットワークへ出力することにより、メカニズム上で採掘難易度の急激な低下を観察したことに応答するよう構成されてよい。ブロックのハッシュは、ブロックが新しい採掘難易度に対応することを検証可能にするために含まれる。ブロック数は、他のメンバーが要求される採掘難易度/ブロックハッシュを、ブロックチェーンのそれらのコピー上の同じ高さにあるブロックと素早く比較可能にするために含まれる。
【0152】
採掘難易度の急激な低下の前にデポジットを置いた他のメンバーに対応する、同じ採掘難易度への閾値のプレコミットを含む第2ブロックチェーンのブロックと共に提供されるときだけ、メインチェーンの採掘難易度を再調整し、採掘難易度の急激な降下が観察された以降にメインチェーンに加入する新しいメンバーを受け入れる。
【0153】
BGLSのような集約署名方式が使用されるとき、メンバーデポジットの返却のための手順は、追加要件を含んでよい。例えば、デポジットの返却を要求するノードは、(自身のTEEを通じて)秘密鍵シェア及びBGLS秘密鍵の両方の削除のアテステーションを要求されてよい。回収メンバーが秘密鍵シェア及びBGLS秘密鍵の両方を削除したことを証明した場合に、他のメンバーノードは、彼らのプレコミット又は部分署名を、該回収メンバーにメンバーデポジットを返却するトランザクションに含めるよう構成されるだけでよい。
【0154】
回収メンバーのノードは、自身のTEEを通じて、自身がプレコミット又はコミットした全てのトランザクションに対する証明を要求されてもよい。回収メンバーが批准されていないと決定された任意のトランザクションにプレコミットしていない場合に、他のメンバーノードは、彼らのプレコミット又は部分署名を、該回収メンバーにメンバーデポジットを返却するトランザクションに含めるよう構成されるだけでよい。
【0155】
上述の手順により、不正メンバーは、TEEからのブロックの回収から利益を得る可能性が低い。確認されたSIDに対応するもの以外の、TEEが有効であると見なし得るプレコミットだけが、BGLS秘密鍵に対応するものであり、もはや存在しない(これが、かなりの確率で生じ得るのは、メンバーがTEEに最新ブロックを提供していない、及びTEEが何人かのメンバーを、現在、実際には彼らが議会に彼らの鍵シェアを削除させ彼らのメンバーデポジットを再請求したとき、登録している場合だけである)。さらに、以上の結果として、メンバーは、詐欺(つまり、未批准)トランザクションへのプレコミットを提供するために、及び後に彼らのデポジットの議会による返却を許可されるために、彼らのTEEを含むことができない。したがって、メンバーは、TEEがブロックチェーン(つまり、メインチェーン及びalt-chain)の最新コピーを有することを保証する動機を与えられる。
【0156】
したがって、プロトコルは、以下の機能のうちの1つ以上を含むプロトコルに従い動作するようノードを構成することによりセキュアにされてよい:i)TEEは、自身がプレコミットされたトランザクションに対する部分署名を出力する前に、閾値のプレコミットが第2ブロックチェーンネットワーク(例えば、proof-of-stakeサイドチェーン)上で観察される必要があるよう構成される、ii)メンバーは、該メンバーのTEEがa)秘密鍵シェア及びBGLS秘密鍵の削除を証明し、及びb)自身がプレコミットした全てのトランザクション及びこれらのいずれも未批准であると(第2ブロックチェーンネットワーク上の総意により)判定されない、iii)TEE内に構成されたいずれのブロックも、それらを必要とする批准済みトランザクション(つまり、未だ閾値の(プレ)コミットを集めていない批准済み/プレコミット済みトランザクション)への(プレ)コミットを常に含む、iv)TEEは、第2ブロックチェーンネットワークにマイニングされるべき新しい採掘難易度へのプレコミットを(ブロックのハッシュと共に)出力することにより、メインチェーン上で観察された採掘難易度の急激な減少に応答するよう構成されてよい。採掘難易度の急激な低下の前にデポジットを置いた他のメンバーに対応する、同じ採掘難易度へのプレコミットを含む第2ブロックチェーンのブロックと共に提供されるときだけ、メインチェーンの採掘難易度を再調整し、採掘難易度の急激な降下が観察された以降にメインチェーンに加入する新しいメンバーを受け入れる。
【0157】
本願明細書に記載される第2ブロックチェーンネットワークをサポートするプロトコルは、ビットコインのような既存のproof-of-work公開ブロックチェーンプロトコルの最上位層に許可無しにあってよい。これは、メインチェーン(例えば、ビットコイン)の外部にある複数パーティプロトコルによるデジタル署名の構成を通じて相互作用するからであり、これは、メインチェーンのマイナー及び開発者の同意無しに動作してよいことを意味する。したがって、プロトコルは、既存公開proof-of-workブロックチェーン「の上に」実装されてよく、該公開proof-of-workブロックチェーンのプロトコルに対する変更を条件としない。この意味で、プロトコルは、(ブロックチェーンプロトコル自体が更なるプロトコルを収容するよう変更される必要がないので)ブロックチェーンに許可無しで追加されてよい。
【0158】
上述の方法は、概してノードにおいて実行されると記載されたが、方法の特徴は他のノードとの強力に依存し、他の場所で実行され得る。
【0159】
以上の記載は概して、議会がproof-of-workブロックチェーンネットワーク上に実装されると記載したが、議会は、代わりに、proof-of-stakeブロックチェーンネットワーク上に実装されてよい。
【0160】
既に言及した特定の利益及び特徴に加えて、本願明細書に記載の技術は追加の利益を提供し得る。例えば、双方向ペッグは、チューリング完全(Turing-complete)スマートコントラクト機能が、(ビットコインのような)既存proof-of-workブロックチェーン及びproof-of-stakeサイドチェーンで構成されるバイナリブロックチェーンシステムに追加されることを可能にする。特定の例では、既存ビットコインスクリプト言語がチューリング完全ではないが、チューリング完全スクリプトが、本願明細書に記載した技術のうちの1つ以上を用いてビットコインに提供されてよい。別の特定の例では、このような機能は、チューリング完全スクリプト言語によりproof-of-stakeサイドチェーンに寄与することにより実現されてよい。さらに、本願明細書に記載の技術のうちの少なくとも幾つかは、proof-of-stakeブロックチェーンの前の提案実装のnothing-at-stake問題に苦しまないproof-of-stakeブロックチェーン、伝統的なproof-of-stake方式に関連付けられたより高速且つより規則的ブロック生成の利点を提供できる。さらに、本願明細書に記載の少なくとも幾つかの技術は、proof-of-stakeメカニズムのマイナーに、proof-of-workメカニズムのセキュリティを向上する有意な数のデジタルアセットを保持するための動機を与える。
【0161】
留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する(comprising又はcomprises)」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する(comprises)」は「含む(includes)又は構成される(consists of)」を意味し、「有する(comprising)」は「含む(including)又は構成される(including of)」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、1つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることが出来ないことを示すものではない。
【符号の説明】
【0162】
102 ノード
110 議会
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10