(57)【要約】本発明は、合意に基づくブロックチェーンのような分散台帳技術に関係がある。トランザクション入力及び出力をロック及びアンロックするためのコンピュータにより実装される方法が記載される。本発明は、ブロックチェーンネットワークを用いて実施され、ブロックチェーンネットワークは、例えば、ビットコインブロックチェーンであってよい。一群のエンティティは、累積ツリーを用いてメンバーシップが証明され得るグループを形成する。累積ツリーを生成する様々な方法が記載され、中央当局を使用する方法や、中央当局の代わりに非中央集権的なプロトコルを使用する方法がある。様々な実施で、パーティは、彼らの身元を一般に明らかにすることなく、グループメンバーシップに基づくトランザクション出力をアンロックすることができる。
2021517389.tif 000002
【特許請求の範囲】
【請求項１】
累積ツリーのダイジェストを生成することであり、該累積ツリーの各要素がコンピュータシステムのセットの中のコンピュータシステムを表す、前記生成することと、
分散データ構造への挿入のために、前記ダイジェストに少なくとも部分的に基づく認証情報を含む記録を生成することと、
前記記録を前記分散データ構造に挿入することと
を有する、コンピュータにより実施される方法。
【請求項２】
前記記録は、ロッキングスクリプトを含み、
前記認証情報は、前記累積ツリーの局所ダイジェストのハッシュを識別する、
請求項１に記載のコンピュータにより実施される方法。
【請求項３】
前記記録は、アンロッキングスクリプトを含み、
前記認証情報は、楕円曲線上の点によって表される局所ダイジェストから導出される数を識別する、
請求項１又は２に記載のコンピュータにより実施される方法。
【請求項４】
前記記録は、アンロッキングスクリプトを含み、
前記認証情報は、楕円曲線上の点によって表される大域ダイジェストから導出される数を識別する、
請求項１乃至３のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項５】
前記累積ツリーの構造は、前記コンピュータシステムのセットに関連する組織構造に少なくとも部分的に基づいて決定される、
請求項１乃至４のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項６】
前記コンピュータシステムのセットの間で、ツリーパラメータのセットがネゴシエーションされ、該ツリーパラメータのセットは、ツリー深さ及び中間ノードごとの子ノードの数を含み、
前記累積ツリーは、前記ツリーパラメータのセットに従って構築される、
請求項１乃至５のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項７】
前記コンピュータシステムのセットは、各コンピュータシステムが前記累積ツリーの大域ダイジェスト及び共通の秘密を再構成することを可能にする情報を互いと共有する、
請求項１乃至６のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項８】
前記コンピュータシステムのセットの中のサブセットは、該サブセットのメンバーが当該サブセットのための局所ダイジェストを決定することができるように、当該サブセットの情報を当該サブセットの他のメンバーと共有し、
前記コンピュータシステムのセットに含まれるが前記サブセットに含まれないコンピュータシステムは、前記情報を供給されず、前記局所ダイジェストを決定することができない、
請求項１乃至７のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項９】
前記コンピュータシステムのセットに含まれるが前記サブセットに含まれない前記コンピュータシステムは、前記コンピュータシステムのサブセットの親ノードの局所ダイジェストのハッシュを供給される、
請求項８に記載のコンピュータにより実施される方法。
【請求項１０】
前記ダイジェストと組み合わせて前記コンピュータシステムのセットでのメンバーシップを証明するウィットネスを生成することを更に有する、
請求項１乃至９のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項１１】
前記コンピュータシステムのセットでのメンバーシップは、当局コンピュータシステムによって決定され、
前記当局コンピュータシステムは、前記コンピュータシステムのセットの間で、前記累積ツリーに関連する共有されるパラメータのセットを確立する、
請求項１乃至１０のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項１２】
前記コンピュータシステムのセットの中の各コンピュータシステムは、前記セットの各メンバーが前記累積ツリーの大域ダイジェストを決定することができるように、当該コンピュータシステムのクレデンシャルのハッシュを前記セットの他のメンバーと共有する、
請求項１乃至１１のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項１３】
前記分散データ構造は、ブロックチェーンであり、
前記記録は、ビットコイン取引記録である、
請求項１乃至１２のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項１４】
プロセッサ及びメモリを有するシステムであって、
前記メモリは、前記プロセッサによる実行の結果として、当該システムに、請求項１乃至１３のうちいずれか一項に記載のコンピュータにより実施される方法を実行させる実行可能命令を含む、
システム。
【請求項１５】
実行可能命令を記憶している非一時的なコンピュータ可読記憶媒体であって、
前記実行可能命令は、コンピュータシステムのプロセッサによって実行される結果として、前記コンピュータシステムに、請求項１乃至１３のうちいずれか一項に記載のコンピュータにより実施される方法を少なくとも実行させる、
非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ブロックチェーンを介したデジタル資産の移転に関する認証に関係があり、より具体的には、グループメンバーシップの証明に基づいてデジタル資産の移転を許可することに関係がある。本発明は、グループ又はサブグループでのメンバーシップに少なくとも部分的に基づいてデジタル資産の移転を許可するビットコインスクリプトの生成に特に適しているが、それに限られない。本発明は、ブロックチェーンにより実施される認証及び許可に基づく制御動作のための暗号ソリューションを提供する。本発明によって提供される解決法は、安全性を保ちながら計算効率が良い。
【背景技術】
【０００２】
本文書中、「ブロックチェーン」との用語は、いくつかのタイプの電子的な、コンピュータに基づく分散台帳（distributed  ledgers）のいずれかを指す。それらは、合意に基づくブロックチェーン及びトランザクションチェーン技術、許可（permissioned）及び無許可（un-permissioned）台帳、共有台帳、並びにこれらの変形を含む。ブロックチェーン技術の最も広く知られた応用は、他のブロックチェーン実施が提案及び開発されているとはいえ、ビットコイン台帳である。ビットコインの例が、便宜上、説明のために本開示で言及され得るが、本発明は、ビットコインブロックチェーンとともに使用することに限られず、代替のブロックチェーン実施及びプロトコルが本発明の適用範囲内にあることが留意されるべきである。例えば、本発明は、どのような制約がトランザクション内で符号化され得るかに関して、ビットコインに類似した制限を有している他のブロックチェーン実施において有用であり得る。「ビットコイン」との用語は、ビットコインプロコトルから派生したあらゆるバリエーション又はバージョンを指すためにここでは使用される。
【０００３】
ブロックチェーンは、ピア・ツー・ピアの電子台帳であり、これは、トランザクション及び他の情報から成るブロックで構成された、コンピュータに基づく非中央集権的な分散型システムとして実装される。例えば、ビットコインによれば、各トランザクションは、ブロックチェーンシステム内の参加者間のデジタル資産の制御の移転を符号化するデータ構造であり、少なくとも１つの入力及び少なくとも１つの出力を含む。いくつかの実施形態において、「デジタル資産」（digital  asset）は、使用権に関連するバイナリデータを指す。デジタル資産の例には、ビットコイン、イーサリアム、及びライトコインがある。いくつかの実施において、デジタル資産の制御を移転することは、第１エンティティから第２エンティティへデジタル資産の少なくとも一部を関連付けし直すことによって行われ得る。ブロックチェーンにその始まり以来書き込まれてきた全てのトランザクションの永久的且つ不変な記録を構成するようブロックどうしが連鎖するように、各ブロックは前のブロックのハッシュを含む。トランザクションは、それらの入力及び出力に埋め込まれたスクリプトとして知られている小さいプログラムを含む。スクリプトは、如何にして誰によってトランザクションの出力がアクセスされ得るかを特定する。ビットコインプラットフォームで、それらのスクリプトは、スタックに基づくスクリプト言語を用いて書かれている。
【０００４】
すなわち、スタックに基づくスクリプト言語は、スタックと呼ばれるデータ構造を利用してよい。スタックによれば、値（value）は、スタック上にプッシュされるか、又はスタックからポップされ得る。スタック上で実行される様々な動作は、スタックの一番上から１つ以上の値をプッシュ又はポップすることをもたらし得る。例えば、OP_EQUAL動作は、スタックから上２つのアイテムをポップし、それらを比較し、結果（例えば、等しい場合は１、等しくない場合は０）をスタック上にプッシュする。本実施形態のいくつかによって用いられるいくつかのスクリプト言語では、少なくとも２つのスタック、すなわち、メインスタック及び代替スタックが存在し得る。スクリプト言語のいくつかの動作は、一方のスタックの一番上から他方のスタックの一番上へアイテムを移動することができる。例えば、OP_TOALTSTACKは、メインスタックの一番上から代替スタックの一番上へ値を移動させる。
【０００５】
トランザクションがブロックチェーンに書き込まれるために、それは“妥当性確認”（validated）されなければならない。ネットワークノード（マイナー（miner））は、各トランザクションが有効であることを確かにする動作を実行し、無効なトランザクションはネットワークから拒絶される。ノードは、他のノードとは異なる妥当性のための標準を有することができる。ブロックチェーンにおける妥当性は合意（consensus）に基づくので、トランザクションが有効であると大多数のノードが同意する場合に、トランザクションは有効と見なされる。ノードにインストールされているソフトウェアクライアントが、ＵＴＸＯロッキング及びアンロッキングスクリプト実行することによって、部分的に未使用トランザクション（ＵＴＸＯ）を参照するトランザクションに対してこの妥当性確認動作を実行する。ロッキング及びアンロッキングスクリプトの実行が真（TRUE）と評価し、他の妥当性確認条件が、適用可能である場合に、満足されるならば、トランザクションはノードによって妥当性確認される。妥当性確認されたトランザクションは、他のネットワークノードへ伝搬され、すると直ぐに、マイナーノードは、トランザクションをブロックチェーンに含めることを選択することができる。よって、トランザクションがブロックチェーンに書き込まれるために、それは、ｉ）トランザクションを受け取る第１ノードによって妥当性確認されなればならず、トランザクションが妥当性確認される場合に、ノードはそれをネットワーク内の他のノードへ中継し、そして、トランザクションは、ｉｉ）マイナーによって構築された新しいブロックに加えられ、ｉｉｉ）マイニングされ、すなわち、過去のトランザクションの公開台帳に加えられるべきである。トランザクションは、トランザクションを実際上元に戻せないようにするためにブロックチェーンに十分な数のブロックが加えられる場合に承認されていると見なされる。
【０００６】
ブロックチェーン技術は、暗号通貨実施の使用のために最も広く知られているが、デジタル起業家は、新しいシステムを実施するために、ビットコインが基づく暗号化によるセキュリティ、及びブロックチェーンで保持可能であるデータの両方の使用を検討し始めている。それは、ブロックチェーンが、暗号通貨の領域に制限されない自動化されたタスク及び処理のために使用され得る場合に、大いに有利である。そのような解決法は、様々な用途で用いられながら、ブロックチェーンの利点（例えば、永久的、イベントの改ざん防止された記録、分散処理、など）を利用することができる。
【０００７】
ブロックチェーントランザクション出力は、ビットコインのようなデジタル資産の所有権に関する情報及びロッキングスクリプトを含む。ロッキングスクリプトは、解除条件（encumbrance）とも呼ばれることがあり、出力を使うために満足される必要がある条件を指定することによってデジタル資産を“ロック”する。例えば、ロッキングスクリプトは、特定のデータが、関連するデジタル資産をアンロックするために、アンロッキングスクリプトで供給されることを求める。ロッキングスクリプトは、ビットコインにおいて“scriptPubKey”としても知られている。デジタル資産をアンロックするためにデータを供給するようパーティに求める技術は、ロッキングスクリプト内にデータのハッシュを埋め込むことを伴う。しかし、これは、ロッキングスクリプトが生成される時点でデータが決定されていない（知られておらず固定されていない）場合に問題を提示する。
【発明の概要】
【０００８】
よって、それらの態様の１つ以上でブロックチェーン技術を改善する方法及びシステムを提供することが望ましい。そのような、改善された解決法が、目下考えられている。よって、本発明に従って、添付の特許請求の範囲で定義される方法が提供される。
【０００９】
よって、累積ツリーのダイジェストを生成し、該累積ツリーの各要素がコンピュータシステムのセットの中のコンピュータシステムを表す、ことと、分散データ構造への挿入のために、ダイジェストに少なくとも部分的に基づく認証情報を含む記録を生成することと、記録を分散データ構造に挿入することとを有する、コンピュータにより実施される方法を提供することが望ましい。
【００１０】
望ましくは、コンピュータにより実施される方法は、記録がロッキングスクリプトを含み、認証情報が累積ツリーの局所ダイジェストのハッシュを識別するところの実施形態であってよい。
【００１１】
望ましくは、コンピュータにより実施される方法は、記録がアンロッキングスクリプトを含み、認証情報が、楕円曲線上の点によって表される局所ダイジェストから導出される数を識別するところの実施形態であってよい。
【００１２】
望ましくは、コンピュータにより実施される方法は、記録がアンロッキングスクリプトを含み、認証情報が、楕円曲線上の点によって表される大域ダイジェストから導出される数を識別するところの実施形態であってよい。
【００１３】
望ましくは、コンピュータにより実施される方法は、累積ツリーの構造が、コンピュータシステムのセットに関連する組織構造に少なくとも部分的に基づいて決定されるところの実施形態であってよい。
【００１４】
望ましくは、コンピュータにより実施される方法は、コンピュータシステムのセットの間で、ツリーパラメータのセットがネゴシエーションされ、該ツリーパラメータのセットは、ツリー深さ及び中間ノードごとの子ノードの数を含み、累積ツリーは、ツリーパラメータのセットに従って構築されるところの実施形態であってよい。
【００１５】
望ましくは、コンピュータにより実施される方法は、コンピュータシステムのセットが、各コンピュータシステムが累積ツリーの大域ダイジェスト及び共通の秘密を再構成することを可能にする情報を互いと共有するところの実施形態であってよい。
【００１６】
望ましくは、コンピュータにより実施される方法は、コンピュータシステムのセットの中のサブセットが、該サブセットのメンバーが当該サブセットのための局所ダイジェストを決定することができるように、当該サブセットの情報を当該サブセットの他のメンバーと共有し、コンピュータシステムのセットに含まれるがサブセットには含まれないコンピュータシステムが、情報を供給されず、局所ダイジェストを決定することができないところの実施形態であってよい。
【００１７】
望ましくは、コンピュータにより実施される方法は、コンピュータシステムのセットに含まれるがサブセットには含まれないコンピュータシステムが、コンピュータシステムのサブセットの親ノードの局所ダイジェストのハッシュを供給されるところの実施形態であってよい。
【００１８】
望ましくは、コンピュータにより実施される方法は、ダイジェストと組み合わせてコンピュータシステムのセットでのメンバーシップを証明するウィットネスを生成することを更に有してよい。
【００１９】
望ましくは、コンピュータにより実施される方法は、コンピュータシステムのセットでのメンバーシップが当局コンピュータシステムによって決定され、当局コンピュータシステムが、コンピュータシステムのセットの間で、累積ツリーに関連する共有されるパラメータのセットを確立するところの実施形態であってよい。
【００２０】
望ましくは、コンピュータにより実施される方法は、コンピュータシステムのセットの中の各コンピュータシステムが、セットの各メンバーが累積ツリーの大域ダイジェストを決定することができるように、当該コンピュータシステムのクレデンシャルのハッシュをセットの他のメンバーと共有するところの実施形態であってよい。
【００２１】
望ましくは、コンピュータにより実施される方法は、分散データ構造がブロックチェーンであり、記録がビットコイン取引記録であるところの実施形態であってよい。
【００２２】
また、プロセッサ及びメモリを有するシステムであって、メモリが、プロセッサによる実行の結果として、システムに、請求される方法のいずれかを実行させる実行可能命令を含む、システムを提供することが望ましい。
【００２３】
また、実行可能命令を記憶している非一時的なコンピュータ可読記憶媒体であって、実行可能命令が、コンピュータシステムのプロセッサによって実行される結果として、コンピュータシステムに、請求される方法のいずれかを少なくとも実行させる、非一時的なコンピュータ可読記憶媒体を提供することが望ましい。
【００２４】
本発明は、検証方法／システムとして、及び／又はブロックチェーンを介したデジタル資産の交換若しくは移転を制御する制御方法／システムとして記載され得る。いくつかの実施において、デジタル資産は、暗号通貨の一部又はトークンである。後述されるように、本発明は、ブロックチェーンネットワーク又はプラットフォームを介して動作を実行する新しい、改善された有利な方法のためのセキュア方法／システムとしても記載され得る。
【００２５】
本発明のこれら及び他の態様は、本明細書で記載される実施形態から明らかであり、それらの実施形態を参照して説明される。本発明の実施形態は、これより、単なる例として、添付の図面を参照して記載される。
【図面の簡単な説明】
【００２６】
【図１】実施形態において、ユーザがグループのメンバーであるとの証明をユーザが提供することによって特定のユーザの認証が達成されるシステムの例を表す。
【図２】実施形態において、９つの要素のセットのための累積ツリーの例を表す。
【図３】実施形態において、ｉ＝１，・・・，９の場合に、各要素が関連する要素を有している累積ツリーの例を表す。
【図４】実施形態において、参加者及びグループ当局によって実行される結果として、参加者がグループメンバーシップの証明を生成することを可能にするプロセスの例を表す。
【図５】実施形態において、ダイジェストのハッシュψ’（ｒ）によりロックされたスクリプトの例を表す。
【図６】実施形態において、会社に属する参加者のセットのための累積ツリーの例を表す。
【図７】実施形態において、非中央集権的なプロトコルの場合に、秘密共有及び秘密再構成の部分として交換される情報の例を表す。
【図８】実施形態において、非中央集権的なプロトコルの場合に、秘密共有及び秘密再構成の部分として交換される情報の例を表す。
【図９】実施形態において、１つ以上のグループからのいずれかの参加者が、親ダイジェストの座標を供給することによって、関連する出力をアンロックすることができる非中央集権的なプロトコルのためのトランザクションロッキングスクリプトの例を表す。
【図１０】実施形態において、大域ダイジェストを再構成するための非中央集権的なプロトコルの例を表す。
【図１１】様々な実施形態が実施され得るコンピュータシステムを表す。
【発明を実施するための形態】
【００２７】
本文書は、グループでのメンバーシップを供給する動作に対するパーティに少なくとも部分的に基づく動作の認証を可能にするコンピュータシステムについて記載する。いくつかの実施形態において、システムは、設定されたメンバーシップ要件を、分散ブロックチェーンデータ構造のロッキングスクリプトのような認証データに埋め込む。例えば、本明細書で記載及び提案されている技術は、ビットコイントランザクションのような暗号通貨トランザクションへのグループメンバーシップ要件の追加を容易にするために適用され得る。様々な実施形態において、ユーザは、双線形写像アキュムレータ（bilinear  map  accumulators）に基づくソリューションを用いて、グループへのメンバーシップを取得及び証明し、ブロックチェーンネットワーク上のトランザクションを認証することができる。電子認証システムを使用する匿名プロトコルでは、認証プロセス中に可能な限りほとんど情報を開示しないことがしばしば望ましい。一種の効率的な電子認証ソリューションは、アキュムレータに基づく。そのような暗号プリミティブは、計算効率が良くかつプライバシーが保護されているメンバーシップの証明の生成を可能にする。
【００２８】
様々な実施形態において、ユーザの集合は、中央集権的なプロトコル又は非中央集権的なプロトコルを用いて、彼らのメンバーシップの証明をセキュアに計算してよい。中央集権的なプロトコルでは、グループへのメンバーシップを取得したいユーザは、中央当局とやりとりしてよい。非中央集権的なプロトコルでは、ユーザは、彼らのメンバーシップの証明を生成するために彼らの中で協働する。両方のプロトコルで、所与のグループに属する要素に関する情報を効率的に保持し、それを局所的及び大域的量で圧縮するために、階層構造、すなわち累積ツリー（accumulation  tree）が作られる。様々な実施形態において、グループメンバーシップは、ユーザに関連するコンピュータシステム又はコンピュータシステム上のアカウントの代わりに確立される。例えば、ユーザは、管理者グループのメンバーであることによって動作を実行することを許可され得るが、動作は、ユーザに関連するアカウントが管理者グループでのメンバーシップを供与されていることを示すことによって許可され得る。グループメンバーシップの証明の生成及び提示は、ユーザによって操作されるコンピュータシステムによって、又はユーザの権限の下では、ユーザのアカウントクレデンシャルを用いて、実行される。
【００２９】
インターネット上で及び現実の世界での電子認証サービス及びデバイスの普及により、安全な、プライバシーを強化されたソリューションの需要が高まっている。例えば、電子チケット、電子ＩＤカード、コンピュータ認証、及びセキュア通信のような用途では、プライバシー及び安全性は非常に重要である。ユーザのプライバシー及び安全性を保護するために、開示される情報の量を減らすことが望ましい。一般に、ユーザは、所与のトランザクション又はプロセスを認証するために、可能な限りほとんど個人情報を開示すべきではない。例えば、購入を認証するために、自身が２５歳以上であることをユーザが証明すべきである場合に、ユーザは、自身の年齢に関する情報のみを明らかにし、生年月日、住所などを明らかにすべきではない。しかし、現在利用可能なシステムは、明らかにされる特定の情報に対する十分な制御をユーザに認めておらず、ユーザの単一の特性を証明するためでさえユーザの身元の認証をしばしば要求する。例えば、多くのシステムで、ユーザは、ユーザの名前、住所、年齢、及び連絡先を、彼らが２５歳以上であることを証明する部分として明らかにする署名証明書（signed  certificate）を提供しなければならないことがある。
【００３０】
本願は、情報の公開に対する改善された制御を提供することによって、この欠点に対処する様々な実施形態について記載する。例えば、ユーザに関連する特定の情報が、他の無関係な情報を開示せずに開示されることを可能にする方法が、記載される。このような技術を用いて、明らかにされるユーザ情報の量を最低限にする原理は、ビットコインブロックチェーンのようなブロックチェーンでのトランザクションの検証に適用されてよい。例えば、ビットコインブロックチェーン上で、トランザクションは、ブロックチェーン台帳で公に保持され、トランザクションロッキング及びアンロッキングスクリプトの部分として過剰量の情報を開示することは、そのユーザのプライバシーを危うくする可能性がある。本明細書で記載される技術の様々な実施形態は、そのようなスクリプトを使用するときに明らかにされる情報の範囲を制限するよう適用されてよく、安全性の向上、プライバシーの改善、及びユーザの匿名性の強化をもたらす。
【００３１】
アキュムレータに基づく暗号ソリューションの様々な実施形態は、ユーザプライバシーを保つために匿名クレデンシャルシステム及び匿名電子キャッシュプロトコルで使用され得る。そのようなシステムは、一般に、３つのタイプのエンティティ：証明書発行者、検証者、及び証明書受取者（ユーザ）に依存する。一般に、ユーザは、彼らが特定の属性を保持しているとの署名／証拠を発行者から取得し、そして、ユーザは、属性自体を示さずに、ユーザが特定の属性を持っていることを証明するために証拠を示すことができる。暗号通貨トランザクションをアンロック又は署名するために使用される場合に、上記の技術は、ユーザが所与の証明書のどの部分を証明したいか、表示したいか、又は隠し続けたいかを決定することができるので、トランザクションの匿名性及びリンク不能性を強化する。
【００３２】
匿名グループ内のメンバーシップは、時間とともに変化し得る。例えば、証明書は取り消される可能性があり、あるいは、新しいメンバーが、特定の状況下でグループに加わることを望む可能性がある。いくつかの実施形態において、証明書を悪用することは、グループメンバーシップの取り消し及び違反ユーザのブラックリスト掲載につながり得る。いくつかの実施で、グループマネージャ又は管理者は、取り消されたメンバーを特定するリストを公開するか、あるいは、特定の日の後に失効する証明書を発行する。しかし、匿名証明書の場合に、新しいメンバー又は取り消されたメンバーのリストを公にすることは、ユーザのプライバシーを危うくすることになる。
【００３３】
様々な実施形態において、上記の問題は、ユーザの身元を明らかにする必要なしに、所与のユーザがグループの一員であるか又は取り消されたメンバーのリスト上にいることを示すゼロ知識証明（zero-knowledge  proofs）の使用を通じて対処される。様々な実施で、証明に伴う追加の計算費用が発生する可能性がある。ゼロ知識証明の実施形態は、Benaloh,  J.,  &  De  Mare,  M.（１９９３年５月），One-way  accumulators:  A  decentralized  alternative  to  digital  signatures，Workshop  on  the  Theory  and  Application  of  Cryptographic  Techniques（２７４〜２８５頁），シュプリンガー，ベルリン，ハイデルベルグによって記載されているアキュムレータに基づいて構成され得る。アキュムレータは、素数に、又はアキュムレータが一定のサイズを保つ場合には、疑似累積（quasi-cumulative）ハッシュに基づき得る。
【００３４】
目下の文書で使用されるように、アキュムレータは、１方向メンバーシップ関数（one-way  membership  function）として定義される。アキュムレータは、要素のセットＳへのコミットメントであり、１つが単一のショート値（short  value）への入力の大規模なセットをハッシングすることを可能にする。新しい要素ｓがセットに加えられる場合に、メンバーシップのウィットネス（ｗ）又は証明が、その所与の要素について生成される。ウィットネスは、アキュムレータ値とともに、グループへのメンバーシップを証明するために使用され得る。
【００３５】
様々な実施形態において、要素のセットＳは、時間とともに発展し得る。いくつかの実施で、アキュムレータは、セットへの更新があるたびに再計算され得る。従って、本文書は、要素の固定のセットを表す静的なアキュムレータに焦点を当てる。特に、本文書は、ユーザのセットがアキュムレータを用いて特定のグループへのメンバーシップを証明することを可能にする中央集権的なプロトコル及び非中央集権的なプロトコルについて記載する。実施形態において、グループメンバーシップの証明は、デジタル資産の移転を認めるためにビットコインスクリプトに組み込まれてよい。
【００３６】
楕円曲線金融算術は、ビットコインのような多数のブロックチェーンシステムの重要な部分である。例えば、ビットコインプロコトルにおける公開キーは、楕円曲線乗算を用いて秘密キーから計算される。整数モジュロｐに対する楕円曲線は、式：
ｙ２≡ｘ３＋ａｘ＋ｂ（ｍｏｄ  ｐ）
によって記述される点のセットとして記述され得る。なお、
【数１】
2021517389.tif 000003
かつｐは素数である。
【００３７】
本文書のために、ビットコインスクリプト内で必要とされる楕円曲線算術機能は、‘スカラーによる点乗算’（point  multiplication  by  scalar）のそれである。これは：
【数２】
2021517389.tif 000004
であるような演算である。なお、ｎは自然数であり、Ｐは楕円曲線上の点であり、丸囲み＋は、楕円曲線上の点の加算のための演算子である。
【００３８】
スカラー乗算は、順番に点加算（Point  Addition）及び点倍加（Point  Doubling）の楕円曲線群演算を必要とする。
【００３９】
●点加算
【数３】
2021517389.tif 000005
：この演算によれば、楕円曲線上の新しい点は、曲線の交点の否定（negation）として計算される。本文書中の他の場所で、点加算は、
【数４】
2021517389.tif 000006
と表され得る。
【００４０】
●点倍加
【数５】
2021517389.tif 000007
：点加算を用いて、Ｐの点ダブル（point  double）が決定され得る。本文書中の他の場所で、点倍加は、
【数６】
2021517389.tif 000008
と表され得る。
【００４１】
例えば、楕円曲線
【数７】
2021517389.tif 000009
上の２つの点Ｐ（ｘ１，ｙ１）及びＱ（ｘ２，ｙ２）を考えると：
【数８】
2021517389.tif 000010
【００４２】
一般に、閾暗号システム（threshold  cryptosystem）は、（ｔ；ｎ）−閾値を特徴とし、ｎは、システム内のパーティの数であり、ｔ＋１は、秘密を再構成するために必要とされるパーティの最低限の数である。秘密共有スキームは、閾暗号システムの例であり、これによって、秘密ｋは、少なくともｔ＋１個のパーティがｋを再構成するために協働することができるように、ｎ個のパーティに分けられる。結果として、いくつかの実施形態において、単一のパーティ又はパーティのグループによる秘密ｋのいずれかのｔ個の（又はより少ない）片の知識は、証明書が再構成されることを可能にしない。
【００４３】
いくつかの実施形態において、シャミア（Shamir）の秘密共有（“ＳＳＳ”）は、２つ以上のパーティの間の共有される秘密を決定するために使用されてよい。ＳＳＳは、多項式補間に基づき、一般性の喪失なしに（“w.l.o.g”）、秘密は、サイズｐ（ｐ素数）の有限場Ｆｐの要素であると考えられる。スキームは、ディーラと、ｎ人の参加者Ｕ１，・・・，Ｕｎのセットと、アクセス構造Ａ、すなわち、秘密を再構成することができる参加者のグループとを含んでも含まなくてもよい。ＳＳＳでは、任意のランダム秘密がｔ次多項式ｆ（ｘ）においてｆ（０）として保持され、プレイヤーｉのみが、その関連するシェアｆ（ｘｉ）を計算することができる。ｎ人のプレイヤーのうちのｔ＋１人が協働する場合に、彼らは、ラグランジュ多項式補間を用いて、ｆ（ｘ１），ｆ（ｘ２），・・・，ｆ（ｘｎ）に対応する自身の（キーｋの）シェアｋ１，ｋ２，・・・，ｋｎによりｆ（ｘ）上の如何なる点も再構成することができる。
【００４４】
ラグランジュ多項式補間を用いて、次数ｔの関数ｆ（ｘ）は、次のように、ｔ＋１個の点により再構成され得る：
【数９】
2021517389.tif 000011
ここで、
【数１０】
2021517389.tif 000012
ｂｉ，ｐ（ｘｉ）＝１及びｂｉ，ｐ（ｘｊ）＝０に留意されたい。
【００４５】
ディーラが存在する実施形態では、ディーラは、サイズｐ（ｐ素数）の有限場Ｆｐの要素であると考えられる秘密ａ０＝ｋを選択し、多項式ｆ（ｘ）＝ａ０＋ａ１ｘ＋ａ２ｘ２＋・・・の係数を表すｔ−１個の正の整数ａ１，・・・，ａｔ−１をランダムに取る。次いで、ディーラは、多項式に属するｎ個の点（ｘｉ，ｆ（ｘｉ））を計算し、それを参加者に分配する。
【００４６】
ディーラが存在しない実施形態では、ディーラなしシェア分配フェーズにおいて：
１．各プレイヤーＵｉは、全員に知られているｘｉを割り当てられる。各ｘｉは一意である。
２．各プレイヤーＵｉは、次数ｔのランダム多項式ｆｉ（ｘ）を生成する。
３．各プレイヤーＵｉは、多項式上の各々の点ｆｉ（ｘｊ）ｍｏｄ  ｎを他の全てのプレイヤーに秘密に送る。実施形態において、Ｕｉは、受取者の公開キーによりＵｉを暗号化し、次いで、Ｕｉの暗号化されたバージョンを受取者へ送信することによって、秘密に送られ得る。
４．各プレイヤーＵｉは、彼らが受け取った全てのｆ１（ｘｉ），ｆ２（ｘｉ），・・・ｆｐ（ｘｉ）（全てｍｏｄ  ｎ，ｎは、楕円曲線上の点Ｇによって生成されるグループの位数である）を足し合わせて、ｋｉ＝ｆ（ｘｉ）ｍｏｄ  ｎを形成する。これは、多項式ｆ（ｘ）ｍｏｄ  ｎに対するシェアである。
【００４７】
様々な実施形態において、閾署名計算の追加の要素は、ｋ×Ｇの決定であり、ｋは秘密キーであり、Ｇは楕円曲線上の点である。ｆ（ｘ）がｔ次多項式である場合に、秘密ｋは、ｋ＝Σｉ∈πｂｉ，πｋｉによって補間され得る。このとき、πは、シェアｋａ，ｋｂ，・・・，ｋｔ，ｋｔ＋１のサイズｔ＋１のサブセットであり、ｂは補間係数である。πは、プレイヤー自身のシェアｋｉを明らかにせずにｋ×Ｇを計算するよう協働するｔ＋１人のプレイヤーのグループである。ｋは、ｔ次多項式上のｘ＝０の点である。
●各プレイヤーＵｉは、部分ｂｉ，πｋｉ×Ｇを計算する。
●πに含まれるプレイヤーは、彼らの部分を足し合わせ（ラグランジュ補間により秘密ｋを再構成し）、
ｂａ，πｋａ×Ｇ＋ｂｂ，πｋｂ×Ｇ＋・・・＋ｂｔ＋１，πｋｔ＋１×Ｇ＝ｋ×Ｇ
を与える。
【００４８】
本文書中、Ｑ＝ｋＧを計算するプロセスは、秘密シェア連結（Secret  Share  Joining）と呼ばれ得る。
【００４９】
様々な実施形態において、双線形ペアリング及び双線形写像アキュムレータが使用されてよい。Ｇ１、Ｇ２を、生成元（generators）ｇ１、ｇ２による素数位数（prime  order）ｐの２つの巡回乗法群（cyclic  multiplicative  groups）とする。Φ（ｇ２）＝ｇ１であるような同型写像（isomorphism）Φ：Ｇ２→Ｇ１が存在すると仮定する。位数ｐの巡回乗法群であるＧＭを考えると、双線形ペアリングは、次の特性を有してｅ：Ｇ１×Ｇ２→ＧＭと定義され得る：
１．双線形性（Bilinearity）：ｅ（Ｐａ，Ｑｂ）＝ｅ（Ｐ，Ｑ）ａｂ∀Ｐ∈Ｇ１、Ｑ∈Ｇ２及びａ，ｂ∈Ｚｐ。
２．非退化形式（Non-degeneracy）：（ｇ１，ｇ２）≠１。
３．計算可能性（Computability）：ｅ（Ｐ，Ｑ）∀Ｐ∈Ｇ１、Ｑ∈Ｇ２を計算するための効率的なアルゴリズムが存在する。
【００５０】
続く例では、Ｇ１＝Ｇ２＝Ｇ及びｇ１＝ｇ２＝ｇと設定され、ペアリングｅ：Ｇ×Ｇ→ＧＭが考えられる。
【００５１】
実施形態において、双線形ペアリングに基づく双線形写像アキュムレータは、累積値ｆ’（Ｅ）＝ｇ（ｅ１’＋ｓ）（ｅ２’＋ｓ）・・・（ｅｎ’＋ｓ）におけるｎ個の要素のセットＥ＝（ｅ１，・・・，ｅｎ）を累積することができる。累積値はＧの要素であり、それはＺｐ＊の要素を累積する。要素（ｅ１’，・・・，ｅｎ’）∈Ｇは、セットＥ＝（ｅ１，・・・，ｅｎ）∈Ｇの元の要素の暗号ハッシュであり、すなわち、
【数１１】
2021517389.tif 000013
によるｅｉ’＝ｈ（ｅｉ）。
【数１２】
2021517389.tif 000014
は、入力として巡回乗法群Ｇの要素を取り、出力として
【数１３】
2021517389.tif 000015
の整数を生成する衝突耐性ハッシュ関数である。ｓは、秘密を保たれるトラップドア（trapdoor）情報を表す。
【００５２】
実施形態において、累積ツリー（accumulation  tree）は、認証されたデータ構造並びに一定の時間更新及び一定のサイズの証明を提供するプリミティブを使用してデータを格納するために使用される。他のタイプの記憶スキームを使用することもできるが、累積ツリーを使用すると、通信及び検証のコストが削減されるだけでなく、記憶のコストも削減されるという利点がある。
【００５３】
続く例において、累積ツリーは、クエリに関与するサブセットについてハッシュ値の正確さを検証するために使用される。セットのための公開ツリーダイジェスト（要素のセットの簡潔な表現）はハッシュ値を保証し、転じて、ハッシュ値はセットを検証する。
【００５４】
累積ツリーは、０＜ε＜１として、Ｔ（ε）として表される。Ｔ（ε）は、ｎ個のリーフを有する根付き木（rooted  tree）に相当し、セットＥのｎ個の要素が格納される。木のレベル数は、
【数１４】
2021517389.tif 000016
として定義され、一方、ノードごとの子ノードの数はＯ（ｎε）である。リーフ（すなわち、セット要素）は、レベル０で特定される同じレベルにある。
【００５５】
図２は、実施形態において、９つの要素のセットのための累積ツリーＴ（ε）２００の例を表す。示されている例では、累積ツリーには９つの要素及び３つのレベルがあり、各内部ノードには３つの子ノードがある。表されている例では、累積ツリーは、根ノードｒ２０２を有する。根ノードｒ２０２は、３つの子ノード：第１中間ノードｄ２０４、第２中間ノードｅ２０６、及び第３中間ノードｆ２０８を有する。３つの中間ノードの夫々には３つの子ノードがあり、それらの夫々が累積ツリーのリーフノードである。第１中間ノードｄ２０４は、第１子ノードａ２１０、第２子ノードｂ２１２、及び第３子ノードｃ２１４を有する。第２中間ノードｅ２０６は、第１子ノードｇ２１６、第２子ノードｈ２１８、及び第３子ノードｉ２２０を有する。第３中間ノードｆ２０８は、第１子ノードｊ２２２、第２子ノードｋ２２４、及び第３子ノードｌ２２６を有する。
【００５６】
要素ｅ∈［ｅ１，・・・，ｅ９］を格納する累積ツリーＴ（ε）２００内のリーフノードｖごとに、累積値ψ（ｖ）を要素自体の値に等しいと定義する：
ψ（ｖ）＝ｅ
レベル１＜ｉ＜ｌ（ここで、ｌ＝２）にある累積ツリーＴ（ε）２００内の非リーフノードｖごとに、累積を次のように定義する：
【数１５】
2021517389.tif 000017
ここで、Ｃ（ｖ）は、ノードｖの子ノードのセットであり、ψ（ｕ）は、ノードｕの双線形局所ダイジェストである。例えば、図３の累積ツリーＴ（ε）２００の場合に、Ｃ（ｖ＝ｄ）＝｛ａ，ｂ，ｃ｝。ｓは、スキームのトラップドアであり、
【数１６】
2021517389.tif 000018
は、衝突耐性ハッシュ関数である。
【００５７】
セットＥに属する所与の要素ｘの場合に、メンバーシップの証明π（ｘ）は、累積ツリーのレイヤごとに１つである証明の順序づけられたシーケンスπ（ｘ）＝｛πｉ，ｉ＝１，・・・，ｌ｝を有する。証明の各要素は、レベルごとに要素の局所ダイジェストαｉ及びブランチウィットネスβｉから成る対に対応する：
πｉ＝（αｉ、βｉ），ｉ＝１，・・・，ｌ
１＜ｉ＜ｌとして、所与のレイヤについて、我々は：
【数１７】
2021517389.tif 000019
を有する。ここで、Ｓ（ｖｉ）は、ツリーＴ（ε）におけるノードｖｉの兄弟（siblings）のセットに対応する。例えば、図１の累積ツリーの場合に、兄弟のセットは、Ｓ（ｖ＝ｄ）＝｛ｅ，ｆ｝である。
【００５８】
所与のレイヤｉの場合に、対応する証明要素は、２つのコンポーネントを含む：
●根ノードｒへ要素ｘをリンクするノードのパスＰ（ｘ）：ｘ→ｒで見つけられる前のレイヤ（レイヤｉ−１）におけるノードの双線形ダイジェストを表すαｉ。レイヤ１＜ｉ＜ｌの場合に、αｉは、レイヤｉ−１に存在する全ての要素について同じである。
●クエリされているノードからツリーの根へのパスの欠落ノードが信頼できることを証明するウィットネスである“ブランチウィットネス”を表すβｉ。
【００５９】
様々な実施形態において、証明は、信頼できるパーティによって計算され、ユーザ／プローバ（prover）へ送られ、トラップ情報ｓは、プローバに知られていない。しかし、いくつかの実施形態で、量
【数１８】
2021517389.tif 000020
は、サードパーティによって公にされる。
【００６０】
累積ツリーの大域的な双線形ダイジェストは、ｄ＝ψ（ｒ）である。ここで、
ψ（ｒ）＝ｇ（ｈ（ψ（ｄ））＋ｓ）（ｈ（Ψψ（ｅ））＋ｓ）（ｈ（ψ（ｆ））＋ｓ）
であり、ｒは、ツリーの根（root）を示す。
【００６１】
実施形態において、ユーザは、その証明π（ｘ）を、証明を検証する検証者（verifier）へ供給する。ｇｓが公にされている実施形態では、検証者は、次の動作を行う：
１．検証者は、α１＝ｘであることを確認する。
２．ｉ＝２，・・・，ｌの場合に、検証者は、ｅ（αｉ，ｇ）＝ｅ（βｉ−１，ｇｓ＋ｈ（αｉ−１））であることを検証する。
【００６２】
双線形写像特性を用いて、第２の関係はまた、次の量を検証するものとして表現され得る：
【数１９】
2021517389.tif 000021
実施形態において、証明は、上記の関係が成立する場合に検証者によって受け入れられる。
【００６３】
様々な実施形態において、証明は、中央集権的なプロトコル又は非中央集権的なプロトコルを用いて構成されてよい。様々な例で、双線形写像アキュムレータに基づくメンバーシップの証明（又はメンバーシップの証明の部分）は、ブロックチェーンネットワークでのトランザクションを検証するために使用される。
【００６４】
本文書は、双線形写像アキュムレータを使用するプロトコルの中央集権的及び非中央集権的なバージョンについて記載する。続く例は、累積ツリーに格納されている多数の要素並びに楕円曲線及び素体（prime  field）のためのパラメータを有している例を用いて、プロトコルについて説明する。
【００６５】
実施形態において、累積ツリーは、証明を構成しかつ要素のセットのメンバーシップを検証するために使用される。累積ツリーは、圧縮された情報を格納するために使用可能であり、累積ツリーのダイジェストは、ツリー内又はツリーのサブパート内の要素の知識を証明することができる如何なる参加者によっても償還可能であるビットコインＵＴＸＯをロックするために使用可能である。
【００６６】
図３は、実施形態において、ｉ＝１，・・・，９として、各要素が関連する要素ｅｉを有している累積ツリー３００の例を表す。示される例では、累積ツリーには９つの要素及び３つのレベルがあり、各内部ノードには３つの子ノードがある。表されている例では、累積ツリーは、根ノードＶ２３０２を有する。根ノードＶ２３０２は、３つの子ノード：第１中間ノードＶ１３０４、第２中間ノード３０６、及び第３中間ノード３０８を有する。３つの中間ノードの夫々には３つの子ノードがあり、それらの夫々が累積ツリーのリーフノードである。第１中間ノードＶ１３０４は、第１子ノードｅ１３１０、第２子ノードｅ２３１２、及び第３子ノードｅ３３１４を有する。第２中間ノード３０６は、第１子ノードｅ４３１６、第２子ノードｅ５３１８、及び第３子ノードｅ６３２０を有する。第３中間ノード３０８は、第１子ノードｅ７３２２、第２子ノードｅ８３２４、及び第３子ノードｅ９３２６を有する。
【００６７】
図３に表されている例では、累積ツリー３００は９つの要素［ｅ１，・・・，ｅ９］を有する。続く例では、各要素の値は、ただ１人の個人によってしか知られておらず、従って、ツリーは、夫々１つの要素の値を知っている９人の個人を表す、と考える。
【００６８】
続く例では、累積ツリー３００内の第３子ノードＶ０３１４の存在：ｘ＝ｅ３を証明する方法について明らかにする。ｘ（第３子ノードＶ０３１４）から根（根ノードＶ２３０２）までのパスＰ（ｘ）を、図３で表されるように、Ｐ（ｘ）：ｖ０→ｖ１→ｖ２と定義する。
【００６９】
この例で、説明のために、ビットコインプロトコルで定義されている楕円曲線を用いることに代えて、人が読むことができる数で我々の計算を行うために、パラメータの異なるセットが選択される。当業者に明らかなように、他の楕円曲線パラメータが他の実施では使用されてよい。この例の場合に、素体Ｆｐ（ｐは素数）にわたって定義された次の楕円曲線が使用される：
ｙ２＝ｘ３＋ａｘ２＋ｂ
ここで、ａ＝−７，ｂ＝１０かつｐ＝９７。
【００７０】
素体Ｆｐにわたって定義された楕円曲線の点は曲線の生成元であるから、我々の例のために、生成元ｇはｇ＝（１，２）であるよう選択される。秘密（トラップドア情報）はｓ＝６６であるよう選択される。この論証ために使用するよう選択されるハッシュ関数
【数２０】
2021517389.tif 000022
は、次の通りである：
ｈ：（ｘ，ｙ）→ｘ＋２ｋｙ（ｍｏｄ  ｐ）
それにより、２ｋ＞Ｐ。上記の符号化は、大きい素数を使用するときにモジュロｐを定義された楕円曲線上の各点（ｘ，ｙ）について
【数２１】
2021517389.tif 000023
において一意の解を提供する。この例のために、小さい素数（ｐ＝９７）が選択されるので、このハッシュ関数は衝突耐性ではない。すなわち、我々の楕円曲線上の２つの点が同じハッシュを有する可能性は無視できない。他の実施では、大きい素数が使用されてよく、好ましい。２ｋ＝１２８＞ｐ＝９７であるように、ｋ＝７が選択される。
【００７１】
この例で、如何なる要素（曲線上の点）のハッシュについても次の表記が使用される：ｈ（ｅ）＝ｅ’∀ｅ：（ｘ，ｙ）。そして、要素のセット［ｅ１，・・・，ｅ９］について、先に定義された楕円曲線上の点の次のセットが選択される：
【表１】
2021517389.tif 000024
【００７２】
続く例では、参加者が、累積ツリーの大域ダイジェストψ（ｒ）＝（４０，９６）とともに、要素ｘのメンバーシップの証明のための表２中の値をいかにして計算することができるかが記載される：
【表２】
2021517389.tif 000025
【００７３】
上の表は、ｘ＝ｅ３＝（９，２６）であるときの証明π（ｘ）のコンポーネントの値を示す。参加者の証明及び累積ツリーのダイジェストを計算するために参加者に与えられる情報のセットは、中央集権的なプロトコルと非中央集権的なプロトコルとでは実施時に相違し得る。従って、中央集権的なプロトコル及び非中央集権的なプロトコルは、以下では分けて記載される。
【００７４】
図４は、実施形態において、参加者及びグループ当局によって実行される結果として、参加者がグループメンバーシップの証明を生成することを可能にするプロセス４００の例を表す。後述される実施形態では、プロトコルの中央集権的バージョンが記載される。プロトコルの中央集権的バージョンでは、双線形写像においてトラップドア情報（秘密ｓ）を選択し、必要な情報をツリー内の要素（要素は累積ツリーのリーフとして表される）を‘所有’している参加者に分配することに関与する個人又はエンティティによって引き受けられる当局（Authority）が存在する。本文書中、エンティティ、参加者、パーティ、又は他の主体は、コンピュータシステム、コンピュータサーバ、サーバクラスタ、モバイルデバイス、携帯電話機、又はメモリに記憶された実行可能命令を含む計算機器として実装されてよい。実行可能命令は、デバイス上でプロセッサによって読み出され実行される結果として、本明細書で記載されるサービス、関数、アルゴリズムを実装する。
【００７５】
実施形態において、当局は、ｎ人の参加者Ｕ１，Ｕ２，・・・，Ｕｎの順序（ツリー内の要素の順序）（４０２）に加えて、ツリーの構造（例えば、レベルｌの数、ノードごとの子ノードの数、など）（４０４）を決定する。当局はまた、プロトコルで使用する衝突耐性ハッシュ関数
【数２２】
2021517389.tif 000026
とともに、楕円曲線のためのパラメータ
【数２３】
2021517389.tif 000027
を決定し、この情報を公に利用可能にする。様々な実施で、情報は、コンピュータネットワーク上で情報をブロードキャストすることによって、又はウェブサイト若しくはウェブベースのサービスといったウェブサービスを介して情報を公開することによって、公に利用可能にされてよい。
【００７６】
実施形態において、各個人の参加者は、他の参加者と一般に共有されない要素ｅｎを生成する（４０６）。各個人の参加者は、個々の参加者の各々の要素をハッシングする（４０８）。各人の要素［ｅ１，・・・，ｅ９］をハッシングすることによって、参加者は値［ｅ１’，・・・，ｅ９’］（上の表に示される）を取得し、得られたハッシュ値を当局へ送る（４１０）。要素ｅｉの値は、ハッシュｅｉ’を当局へ送る一参加者Ｕｉによってしか知られていない。
【００７７】
実施形態において、参加者から要素のハッシュを受信（４１２）した後、当局は、中間レイヤ（この例ではｌ＝１）において、ツリーの局所ダイジェストを計算し（４１４）、更に大域ダイジェストを計算し（４１６）、そして、参加者のツリー内の各々の要素の位置に少なくとも部分的に基づいて各参加者へ関連情報を送る。
【００７８】
実施形態において、当局は、要素の値を知らずに（一般に、それは、衝突耐性ハッシュ関数を用いて生成されたハッシュのみが供給される）ダイジェストを計算し、参加者は、他の参加者の要素の値（自身のものを除く）もツリーの完全な構造も知らずにダイジェストを決定する。
【００７９】
実施形態において、当局は、
【数２４】
2021517389.tif 000028
を公開する。ここで、ｎは、（ツリーの最後から２番目のレイヤｌ＝１における）ノード内の子の数である（本例ではｈ＝３）。生成元ｇ及び秘密ｓについて先に選択されたパラメータを考えると、楕円曲線上の次の点が見つけられる：
【表３】
2021517389.tif 000029
実施形態において、当局は、一要素（本例ではｅ３）を所有している参加者と個別にやりとして、次の情報を送る（４２０）：
●参加者の兄弟のハッシュ、すなわち、本例ではｅ１’及びｅ２’。
●参加者の親の兄弟のハッシュ、すなわち、本例では、ψ’（ｅ）及びψ’（ｆ）。
【００８０】
実施形態において、特定の参加者は、次のように、当局から受け取った情報を用いて、証明を決定することができる（４２２）。
【００８１】
証明の第１要素は：
π１＝（α１，β１）
である。このとき、
α１＝ψ（ｖ０）＝ψ（ｅ３）
α１＝（９，２６）
かつ
【数２５】
2021517389.tif 000030
【００８２】
上記の式は、楕円曲線算術により適した形で書き直され得る：
【数２６】
2021517389.tif 000031
ここで、丸囲み×は、スカラーによる楕円曲線上の点の乗算を記号で表し、丸囲み＋は、楕円曲線上の２つの点の加算を表す。
【００８３】
上の表でリストアップされた値を用いて、次のように、ウィットネスβ１の値が計算され得る：
【数２７】
2021517389.tif 000032
証明の第２要素は：
π２＝（α２，β２）
によって与えられる。このとき、
【数２８】
2021517389.tif 000033
【００８４】
要素α２は、上記の双線形写像特性を用いて
α２＝β１（ｅ３’＋ｓ）
と書き直され得る。
【００８５】
上の表でリストアップされた値を用いて、参加者は、次のように、局所ダイジェストα２の値を計算することができる：
【数２９】
2021517389.tif 000034
【００８６】
証明の第２要素の他のコンポーネントは：
β２＝ｇ（ｈ（ψ（ｅ））＋ｓ）（ｈ（ψ（ｆ））＋ｓ）
であり、このとき、
ψ（ｅ）＝ｇ（ｈ（ｅ４）＋ｓ）（ｈ（ｅ５）＋ｓ）（ｈ（ｅ６）＋ｓ）
及び
ψ（ｆ）＝ｇ（ｈ（ｅ７）＋ｓ）（ｈ（ｅ８）＋ｓ）（ｈ（ｅ９）＋ｓ）
【００８７】
要素ｅｉ，∀ｉ＝１，・・・，９のハッシュを用いて、当局は、各要素の値へアクセスせずにψ（ｅ）及びψ（ｆ）を決定することができる。次いで、当局は、次の局所ダイジェストをハッシングし、次のハッシュを参加者へ送る。
【表４】
2021517389.tif 000035
【００８８】
実施形態において、ｅ３を所有している参加者は、自身の親の２つの兄弟のダイジェストのハッシュ、すなわち、ψ’（ｅ）及びψ’（ｆ）を受取さえすればよいので、参加者は、自身のパスの外のツリーの構造に関してほとんど知らない。従って、参加者は、ツリー内の一要素についての参加者の知識を証明しながら、圧縮情報によりダイジェストを生成する。
【００８９】
楕円曲線算術を用いて、β２は、次のように、β１に類似した形で表示され得る：
【数３０】
2021517389.tif 000036
【００９０】
上記の例は、実施形態において、証明要素の各コンポーネント計算する方法を明らかにする。
【００９１】
実施形態において、証明の第２要素の第１コンポーネントα２を用いて、参加者は、次のように、累積ツリーの大域ダイジェストを計算することができる：
【数３１】
2021517389.tif 000037
【００９２】
実施形態において、ビットコイントランザクションのトランザクションスクリプトは、大域ダイジェストψ（ｒ）のハッシュによりロックされてよい。トランザクションは、参加者自身の要素の値にアクセスすることができ、従って、ツリーの大域ダイジェストを計算することができる参加者（グループメンバー）によってアンロック可能である。
【００９３】
ダイジェストのハッシュψ’（ｒ）によりロックされたスクリプト５００の例が、図５に表されている。アンロッキングスクリプト５０２は、大域ダイジェストψ（ｒ）のｘ、ｙ座標（楕円曲線上の点である）を含む。ハッシュ関数
【数３２】
2021517389.tif 000038
として、
ｈ：（ｘ，ｙ）→ｘ＋２ｋｙ（ｍｏｄ  ｐ）
を使用すると選択する。なお、２ｋ＞ｐである。図５において、ｋ（５０４で示される）＝２ｋを指示され、法（modulus）はｐ（５０６で示される）である。スクリプト５００は、ψ（ｒ）の座標ｘ、ｙをハッシングすることによってψ’（ｒ）（５０８で示される）が実際に求められることを検証する。上記のハッシュ関数を使用することができるよう、オペコードOP_MUL及びOP_MODが再有効化されるべきである。
【００９４】
続く記載は、累積ツリーの構成が非中央集権的なプロトコルで行われるところの様々な実施形態について記載する。例えば、参加者は、トラップドア情報を生成し、情報を交換して、彼らの累積ツリーの大域ダイジェストを個々に計算することができるようにするために、互いに通信する。
【００９５】
非中央集権的なプロトコルの実施形態が以下で記載され、３つのフェーズを含む：
●累積ツリーの構成；
●秘密共有及び秘密再構成；並びに
●ダイジェスト計算。
【００９６】
［累積ツリーの構成］
実施形態において、ｎ人の参加者Ｓ＝｛Ｕ１，Ｕ２，・・・，Ｕｎ｝が彼らの累積ツリーＴ（ε）を構成したいと望むシステムについて記載する。実施形態において、各参加者Ｕｉは、値が参加者に固有である要素ｅｉを所有している。参加者は、最初に、累積ツリー内のレベルの数を
【数３３】
2021517389.tif 000039
と決定するパラメータ０＜ε＜１について合意する。ノードごとの子ノードの数はＯ（ｎε）である。
【００９７】
図６は、実施形態において、会社６０２に属する参加者のセットのための累積ツリー６００の例を表す。実施形態において、参加者のグループは、会社の構造に少なくとも部分的に基づいて特定の構造において組織化される。例えば、参加者が、図６で表されるような内部構造を有する会社６０２のメンバーである場合には、累積ツリーのレベル及びサブセットの数は、会社構造とともに参加者のポジションによって決定される。
【００９８】
図６に示される例では、会社は、累積ツリー内の根ノード６０４によって表される。会社は、ＨＲ部門６０６、管理部門６０８、及び財務部門６１０を含む。ＨＲ部門６０６は、第１内部ノード６１２によって表される。管理部門６０８は、第２中間ノード６１４によって表される。財務部門６１０は、第３中間ノード６１６によって表される。
【００９９】
実施形態において、各部門は、多数のエンティティ（人々、従業員、コンピュータシステム、又はデバイス）を有し、各エンティティは、対応する中間ノードの子であるリーフノードによって表される。例えば、第１中間ノード６１２は、３つの対応するクレデンシャル６３６、６３８及び６４０を有する３つの子ノード６１８、６２０及び６２２を有する。例えば、第２中間ノード６１４は、３つの対応するクレデンシャル６４２、６４４及び６４６を有する３つの子ノード６２４、６２６０及び６２８を有する。例えば、第３中間ノード６１６は、３つの対応するクレデンシャル６４８、６５０及び６５２を有する３つの子ノード６３０、６３２及び６３４を有する。
【０１００】
実施形態において、グループが特定の階層構造で組織化されない場合には、参加者は、サブツリー内の要素の数ｐについて合意する。例において、図６で、パラメータは、ｐ＝３であると決定され、各ノードは、２つの兄弟ノード（同じレベルｌに位置する）を有する。参加者は、情報を見つけてｐ−１人の他のユーザと交換するよう通信する。
【０１０１】
図６で、例えば、参加者Ｕ１（６１８に位置する）は、Ｕ２（６２０にある）及びＵ３（６２２にある）と通信する。参加者のランダムな順序を使用する実施形態では、参加者（よって、彼らの要素）は、ツリー内のサブグループにランダムに割り当てられる。
【０１０２】
［秘密共有及び秘密再構成］
実施形態において、参加者は、上記の秘密共有プロシージャを用いて共有秘密ｓについて合意するよう互いと協働する。秘密ｓは、累積ツリーのトラップドア情報として使用され、一般に、セットＳのメンバーにのみ利用可能である。
【０１０３】
図７は、実施形態において、非中央集権的なプロトコルの場合に、秘密共有及び秘密再構成の部分として交換される情報７００の例を表す。図７に示されるように、各プレイヤーＵｉは、ｘｉを割り当てられ、この情報は、公にされる（図７の７０２を参照）。各プレイヤーＵｉ７０４は、次数ｔのランダム多項式ｆｉ（ｘ）を生成し、あらゆる他のプレイヤー７０６に多項式上の各々の点を、すなわち、ｆｉ（ｘｊ）ｍｏｄ  ｎをＵｊへ（図７の７０４、７０６を参照）秘密に送る。
【０１０４】
各プレイヤーＵｉは、受け取った全てのｆ１（ｘｉ），ｆ２（ｘｉ），・・・ｆｐ（ｘｉ）（全てｍｏｄ  ｎ，ｎは、楕円曲線上の点によって生成されるグループの位数である）を足し合わせて、多項式ｆ（ｘ）ｍｏｄ  ｎに対するプレイヤーのシェアｋｉ＝ｆ（ｘｉ）ｍｏｄ  ｎを構成する。
【０１０５】
参加者が彼らのシェアについて合意した後、参加者は、秘密ｓを再構成するよう協働することができ、秘密ｓは、累積ツリーのダイジェストを計算するために使用される。秘密を再構成するために、各プレイヤーは、ａ）各々のシェアｋｉと、ｂ）ｂｉ，π、すなわち、彼らのラグランジュ基底多項式とを共有する。
【０１０６】
［ダイジェスト計算］
参加者は、ａ）共通秘密ｓを再構成し、ｂ）各人の個々の証明及びツリーの大域ダイジェストを計算するために使用される情報を共有する。
【０１０７】
複数の実施が、ダイジェスト決定時に可能であり、そのうちの２つが以下で記載される。更なる実施が可能であってもよい。
【０１０８】
場合１−参加者は、累積ツリーの大域ダイジェストを計算することに興味がある。彼らは、トランザクションに署名するために任意の中間累積値又は局所ダイジェストを使用することを望まない。
【０１０９】
かような実施で、各参加者は、参加者の値のハッシュｅｉ’を他の参加者と共有する。ツリーのために選択された階層構造とは無関係に、トラップドアｓは、セットＳの全ての要素のハッシュとともに全てのユーザによって知られているので、あらゆる参加者が、次のように表現される場合に、累積ツリーの大域ダイジェストを計算することができる：
ψ（ｒ）＝ｇ（ｅ１’＋ｓ）（ｅ２’＋ｓ）・・・（ｅｎ’＋ｓ）。
【０１１０】
この場合に、全ての参加者は、局所ダイジェスト、我々の例では、図６においてψ（ｄ）、ψ（ｅ）、ψ（ｆ）を計算することができ、よって、それらの量は、トランザクションをロックするために使用不可能である。すなわち、如何なる参加者も、参加者が属するサブグループとは無関係に、署名することができる
この場合における値のハッシュｅｉ’は、図７の７０８及び７１０で示されるようにコミュニケーションラウンド（communication  round）を最適化するよう、秘密を再構成するために必要とされる情報とともに、全ての参加者７１０へ送られ得る。
【０１１１】
様々な実施形態において、ダイジェストのハッシュは、ロッキングスクリプトにおいて使用されてよい。例えば、図５に示されるスクリプトが使用されてよい。
【０１１２】
場合２−参加者は、大域ダイジェスト及び局所ダイジェストの両方を計算することに興味があり、いくつかの例では、トランザクションスクリプトをロックするためにそれらを使用する。この実施では、特定のサブグループ内のユーザのみが彼らの局所ダイジェストを計算することが望ましい。
【０１１３】
例えば、図６を参照すると、ユーザＵ１、Ｕ２、Ｕ３のみがψ（ｄ）を計算することができることが望ましい。このようにして、トランザクションスクリプトは、ψ’（ｄ）（局所ダイジェストのハッシュ）によりロックされてよく、３人の参加者のうちのいずれかが、ハッシュψ（ｄ）の原像（pre-image）を供給することによってトランザクションをアンロックすることができる。
【０１１４】
この実施形態において、兄弟と見なされる参加者（図６の例ではＵ１、Ｕ２、Ｕ３）のみが、彼らの値のハッシュｅｉ’，ｉ＝１，２，３を交換するよう通知する。ハッシュ値は、上記の場合１とは別なふうに、所与のサブツリーの兄弟の間でのみ交換され、このサブグループの参加者が彼らの共通の親のダイジェストを計算することを可能にし、（Ｕ１、Ｕ２、Ｕ３）はψ（ｄ）を計算する。他の参加者（Ｕ４，・・・，Ｕ９）は、圧縮情報、すなわち、後者のハッシュを受け取る。従って、この例では、プロトコルは、図８に示されるように２つの余分のコミュニケーションラウンドを使用することになる。
【０１１５】
図８は、実施形態において、非中央集権的なプロトコルの場合に、秘密共有及び秘密再構成の部分として交換される情報の例を表す。最初に、秘密共有は、８０２及び８０４で全ての参加者の間で交換され、次いで、局所ダイジェストは、８０６及び８０８で兄弟間で再構成され、次いで、局所ダイジェストのハッシュは、８１０及び８１２で参加者へ送られる。
【０１１６】
他のサブツリーの局所ダイジェストのハッシュを考えると、全ての参加者が、全ての参加者の値のハッシュｅｉ’を知らなくても、累積ツリーの大域ダイジェストを計算することができる。１つの実施において、もしトラップドアｓも全ての参加者に知られているならば、大域ダイジェストは次のように計算され得る：
ψ（ｒ）＝ｇ（ｈ（ψ（ｄ））＋ｓ）（ｈ（ψ（ｅ））＋ｓ）（ｈ（ψ（ｆ））＋ｓ）。
【０１１７】
この第２の場合に、プロトコルの参加者は、ツリー内の各々のポジションに応じて、累積ツリーに関する異なる情報を再構成することができる。従って、階層が設定され、参加者は、階層内の各々のポジションに少なくとも部分的に基づいて異なる役割を引き受ける。
【０１１８】
例えば、図６を参照すると、出力がψ’（ｅ）又はψ’（ｆ）によりロックされるトランザクションを生成すること可能であり、それにより、‘管理’グループ又は‘財務’グループに属する参加者のみがトランザクションに署名することができ、従って、関連するファンドをアンロックする。１つの実施において、トランザクションは、ビットコイントランザクションのような暗号通貨トランザクションである。
【０１１９】
図９は、実施形態において、１つ以上のグループからのいずれかの参加者が、親ダイジェストの座標を供給することによって、関連する出力をアンロックすることができる非中央集権的なプロトコルのためのトランザクションロッキングスクリプトの例を表す。ロッキングスクリプト９００は、ブラケット＜  ＞内に含まれている。ファンドは、局所ダイジェストψ（ｅ）のｘ、ｙ座標（９０２でｘψ（ｅ）、ｙψ（ｅ）により示される）又は局所ダイジェストψ（ｆ）のｘ、ｙ座標（ｘψ（ｆ）、ｙψ（ｆ））のどちらかをアンロッキングスクリプトにおいて供給することによって、アンロックされ得る。ロッキングスクリプトは、局所ダイジェストのハッシュ、すなわちψ’（ｅ）９１２及びψ’（ｆ）９１８を含む。図９には、参加者が局所ダイジェストψ（ｅ）の座標を供給する１つの可能な引き換えスクリプト（redeem  script）が表されている（例えば、参加者は‘管理’グループに属する）。
【０１２０】
次のハッシュ関数
【数３４】
2021517389.tif 000040
が選択される：
ｈ：（ｘ，ｙ）→ｘ＋２ｋｙ（ｍｏｄ  ｐ）
なお、２ｋ＞ｐ。図９では、同様に、ｋ＝２ｋが指示される点に留意されたい。スクリプトは、アンロッキングスクリプトにおいて供給される座標ｘ、ｙをハッシングすることによって、結果が２つの局所ダイジェストの一方のハッシュψ’（ｅ）又はψ’（ｆ）に対応することを検証する。スクリプトにおける更なるパラメータには、法ｐ９１０、９１２及び累乗（power）ｋ９０８、９１４がある。実施形態において、残りのパラメータ９０４、９０６、及び９２０は、結果コードであり、スクリプトが成功したか否かを示す。
【０１２１】
上記のハッシュ関数を使用することができるよう、オペコード（OP_CODES）OP_MUL及びOP_MODがサポートされるべきである。
【０１２２】
図１０は、実施形態において、大域ダイジェストを再構成するための非中央集権的なプロトコル１０００の例を表す。図１０は、累積ツリーの大域ダイジェストを再構成するプロトコルの非中央集権的なバージョンの場合１及び場合２について実行される動作をフローチャートの形式で表す。図１０に表されている動作は、様々な実施形態において、様々な参加者又はグループメンバーに関連するコンピュータシステムによって実行されてよい。図１０で表されるプロトコルは、コンピュータシステムのプロセッサによって実行される場合に、記載及び図示されている動作を実行するコンピュータシステムのメモリ上に記憶された命令として、実装されてよい。
【０１２３】
実施形態において、ブロック１００２で、参加者は、使用される累積ツリーの構造について合意する。実施形態において、参加者は、累積ツリー内のレベルの数と、累積ツリー内の各中間ノードごとの子ノードの数とを含む累積ツリーのパラメータのセットを取り決める（ネゴシエーションする）。
【０１２４】
参加者は、共有される秘密を確立する多数の動作を実行する。ブロック１００４で、各参加者Ｕｉはｘｉを割り当てられ、この情報は交換される。各参加者Ｕｉは、次数ｔのランダム多項式ｆｉ（ｘ）を生成し、あらゆる他のプレイヤー７０６に多項式上の参加者の各々の点を、いくつかの例では、ｆｉ（ｘｊ）ｍｏｄ  ｎをＵｊ（ここで、ｊ≠ｉ）へ秘密に（各々の受取者の公開キーで暗号化される）送る（１００６）。各プレイヤーＵｉは、受け取った全てのｆ１（ｘｉ），ｆ２（ｘｉ），・・・ｆｐ（ｘｉ）（全てｍｏｄ  ｎ，ｎは、楕円曲線上の点ｇによって生成されるグループの位数である）を足し合わせて、多項式ｆ（ｘ）ｍｏｄ  ｎに対するプレイヤーのシェアを構成する（１００８）。
【０１２５】
参加者が彼らのシェアについて合意した後、参加者は、秘密ｓを再構成するよう協働することができ、秘密ｓは、累積ツリーのダイジェストを計算するために使用される。場合１と標記される第１の実施では、秘密を再構成するために、各プレイヤーは、ａ）各々のシェアｋｉと、ｂ）ｂｉ，π、すなわち、彼らのラグランジュ基底多項式と、ｃ）彼らの値のハッシュｅｉ’とを共有する（１０１２）。場合２と標記される第２の実施では（１０１４）、秘密を再構成するために、ａ）各々のシェアｋｉと、ｂ）ｂｉ，π、すなわち、彼らのラグランジュ基底多項式とを共有する。どちらの場合も、ブロック１０１８で、参加者は、上述されたように、秘密ｓを再構成することができる。
【０１２６】
夫々の場合に、参加者は、次のようにダイジェストを決定する。場合１において、ブロック１０２０で、参加者は、大域ダイジェストを決定することができる。場合２において、ハッシュ値は、所与のサブツリーの兄弟の間でのみ交換され（１０２２）、それによって、このサブグループの参加者が彼らの共通の親のダイジェストψ（ａ）を計算することを可能にする（１０２４）。他の参加者は、圧縮情報、すなわち、上記のハッシュを供給される（１０２６）。実施形態において、プロトコルの場合２は、図示されるように、余分のコミュニケーションラウンドを使用することになる。第１に、秘密共有は、全ての参加者の間で交換され、次いで、局所ダイジェストは、兄弟間で再構成され、次いで、局所ダイジェストのハッシュは、参加者へ送られる。望まれる場合に、いくつかの実施形態において、参加者は、ブロック１０２８で大域ダイジェストを決定してよい。
【０１２７】
本文書で記載される様々な実施形態は、効率的にグループへのメンバーシップを証明しかつブロックチェーンネットワーク上でデジタル資産の移転を認証するための解決法を提供する。
【０１２８】
いくつかの実施で、プロトコルは、一定サイズのオブジェクト内要素のグループ又はセット全体に関する情報、すなわち、累積ツリーのダイジェストを圧縮することを可能にする双線形写像アキュムレータに基づく。グループに関する情報は、局所ダイジェスト（中間レイヤ）及び大域ダイジェスト（ツリーの根）で累積ツリーに階層的に格納されている。
【０１２９】
一実施形態において、当局が累積ツリーに関する圧縮情報をユーザへ供給して、ユーザが彼らのメンバーシップの証明を計算することができるようにする中央集権的なプロトコルと、ユーザ自身が局所ダイジェストを構成するよう協働し、情報を交換して彼らの個々のメンバーシップの証明を計算する非中央集権的なプロトコルとが記載される。他の実施形態では、プロトコルの非中央集権的なバージョンがアキュミュレータを用いて記載される。非中央集権的なソリューションも、累積ツリーの局所ダイジェスト及び大域ダイジェストを構成するために必要とされる情報が（ｉ）関連する（最低限の数の）参加者へのみ、（ｉｉ）可能な場合には（ｉｉ）可能な場合に同じコミュニケーションラウンドで送られる必要があるので、参加者間のコミュニケーションラウンドラウンドに関して効率的である。
【０１３０】
様々な実施で、セットにおいて保持される実際の値は、他のメンバー又は当局へ伝えられる必要がなく、それらのハッシュ値のみが伝えられればよい。これは、グループの要素が公開キー又は他のタイプの仮名及び匿名クレデンシャルである場合に、それらが決して公に開示されないことを意味する。
【０１３１】
参加者は、トランザクションスクリプトをロックするために、少なくとも部分的に使用ケースに基づいて、大域又は局所ダイジェストを使用することができる。このようにして、適当なサイズのスクリプトにより、所与のグループ（又はヒエラルキー内のサブグループ）に属するユーザのいずれかは、トランザクションを介したデジタル移転を認証することができる。
【０１３２】
図１１は、本開示の少なくとも１つの実施形態を実施するために使用され得るコンピュータデバイス１１００の実例となる略ブロック図である。様々な実施形態において、コンピュータデバイス１１００は、先に図示及び記載されたシステムのいずれかを実施するために使用され得る。例えば、コンピュータデバイス１１００は、データサーバ、ウェブサーバ、ポータブルコンピュータデバイス、パーソナルコンピュータ、又は任意の電子コンピュータデバイスとしての使用のために構成され得る。図１１に示されるように、コンピュータデバイス１１００は、１つ以上のプロセッサ１１０２を含んでよい。プロセッサ１１０２は、実施形態において、バスサブシステム１１０４を介して多数の周辺サブシステムと通信するよう構成されかつそれらへ動作上結合される。いくつかの実施において、それらの周辺サブシステムは、メモリサブシステム１１０８及びファイル／ディスク記憶サブシステム１１１０を有する記憶サブシステム１１０６と、１つ以上のユーザインターフェース入力デバイス１１１２と、１つ以上のユーザインターフェース出力デバイス１１１４と、ネットワークインターフェイスサブシステム１１１６とを含む。そのような記憶サブシステム１１０６は、情報の一時的な又は長期の記憶のために使用されてよい。
【０１３３】
いくつかの実施形態において、バスサブシステム１１０４は、コンピュータデバイス１１００の様々なコンポーネント及びサブシステムが意図されたように互いと通信することを可能にするメカニズムを提供する。バスサブシステム１１０４は、単一のバスとして概略的に示されているが、バスサブシステムの代替の実施形態は、複数のバスを利用する。いくつかの実施形態において、ネットワークインターフェイスサブシステム１１１６は、他のコンピュータデバイス及びネットワークへのインターフェースを提供する。ネットワークインターフェイスサブシステム１１１６は、いくつかの実施形態において、他のシステムからデータを受信しかつコンピュータデバイス１１００から他のシステムへデータを送信するインターフェースとして機能する。いくつかの実施形態において、バスサブシステム１１０４は、詳細、探索項目などのようなデータを通信するために利用される。
【０１３４】
いくつかの実施形態において、ユーザインターフェース入力デバイス１１１２は、キーボード；組み込みマウス、トラックボール、タッチパッド、若しくはグラフィクスタブレットのような指示デバイス；スキャナ；バーコードスキャナ；ディスプレイに内蔵されたタッチスクリーン；発話認識システムやマイクロホンのような音声入力デバイス；及び他のタイプの入力デバイスのような１つ以上のユーザ入力デバイスを含む。一般に、「入力デバイス」との語の使用は、コンピュータデバイス１１００に情報を入力するための全ての可能なタイプのデバイス及びメカニズムを含むよう意図される。いくつかの実施形態において、１つ以上のユーザインターフェース出力デバイス１１１４は、ディスプレイサブシステム、プリンタ、又は音声出力デバイスのような非視覚表示、などを含む。いくつかの実施形態において、ディスプレイサブシステムは、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）ようなフラットパネルデバイス、発光ダイオード（ＬＥＤ）ディスプレイ、又は投影型若しくは他のディスプレイデバイスを含む。一般に、「出力デバイス」との語の使用は、コンピュータデバイス１１００から情報を出力するための全ての可能なタイプのデバイス及びメカニズムを含むよう意図される。１つ以上のユーザインターフェース出力デバイス１１１４は、例えば、記載されるプロセス及びその変形を実行するアプリケーションとのユーザインタラクションを、そのようなインタラクションが適切であり得る場合に促すよう、ユーザインターフェースを提示するために使用され得る。
【０１３５】
いくつかの実施形態において、記憶サブシステム１１０６は、本開示の少なくとも１つの実施形態の機能性を提供する基本プログラミング及びデータ構成を記憶するコンピュータ可読記憶媒体を提供する。アプリケーション（プログラム、コードモジュール、命令）は、いくつかの実施形態において１つ以上のプロセッサによって実行される場合に、本開示の１つ以上の実施形態の機能性を提供し、そして、実施形態において、記憶サブシステム１１０６に記憶されている。それらのアプリケーションモジュール又は命令は、１つ以上のプロセッサ１１０２によって実行され得る。様々な実施形態において、記憶サブシステム１１０６は、本開示に従って使用されるデータを記憶するレポジトリを更に提供する。いくつかの実施形態において、記憶サブシステム１１０６は、メモリサブシステム１１０８及びファイル／ディスク記憶サブシステム１１１０を有する。
【０１３６】
実施形態において、メモリサブシステム１１０８は、プログラム実行中の命令及びデータの記憶のためのメインラインダムアクセスメモリ（ＲＡＭ）１１１８、及び／又は固定命令が記憶され得るリードオンリーメモリ（ＲＯＭ）１１２０のような、多数のメモリを含む。いくつかの実施形態において、ファイル／ディスク記憶サブシステム１１１０は、プログラム及びデータファイルのための非一時的な恒久的（不揮発性）記憶を提供し、ハードディスクドライブ、関連するリムーバブル媒体を伴っフロッピー（登録商標）ディスクドライブ、コンパクトディスク・リードオンリーメモリ（ＣＤ−ＲＯＭ）ドライブ、光学ドライブ、リムーバブル媒体カートリッジ、又は他の記憶媒体などを含むことができる。
【０１３７】
いくつかの実施形態において、コンピュータデバイス１１００は、少なくとも１つのローカルクロック１１２４を含む。ローカルクロック１１２４は、いくつかの実施形態において、特定の開始日から発生したチェック（ticks）の数を表すカウンタであり、そして、いくつかの実施形態において、コンピュータデバイス１１００の内部に配置される。様々な実施形態において、ローカルクロック１１２４は、特定のクロックパルスでコンピュータデバイス１１００及びその中に含まれるサブシステムのためにプロセッサ内のデータ転送を同期させるために使用され、コンピュータデバイス１１００とデータセンター内の他のシステムとの間の同期動作を協調させるために使用され得る。他の実施形態では、ローカルクロックは、プログラム可能な内部タイマである。
【０１３８】
コンピュータデバイス１１００は、ポータブルコンピュータデバイス、タブレットコンピュータ、ワークステーション、又は後述される任意の他のデバイスを含む様々なタイプのいずれかであってよい。更には、コンピュータデバイス１１００は、いくつかの実施形態において、１つ以上のポート（例えば、ＵＳＢ、ヘッドフォンジャック、ライトニングコネクタ、など）を通じてコンピュータデバイス１１００へ接続され得る他のデバイスを含むことができる。実施形態において、そのようなデバイスは、光ファイバコネクタを受け入れるよう構成されたポートを含む。従って、いくつかの実施形態において、このデバイスは、光信号を、処理のために、デバイスをコンピュータデバイス１１００へ接続するポートを通じて伝送される電気信号に変換するよう構成される。コンピュータ及びネットワークの常に変化している性質により、図１１に表されているコンピュータデバイス１１００の記載は、デバイスの好適な実施形態を説明するために単に具体例として意図される。図１１に表されているシステムよりも多い又は少ないコンポーネントを有している多くの他の構成が可能である。
【０１３９】
従って、明細書及び図面は、限定の意味ではなく実例の意味で考えられるべきである。なお、様々な改良及び変更が、特許請求の範囲で示されている本発明の範囲から外れることなしに、それらに行われてよいことは、明らかである。同様に、他の変形は、本開示の範囲内にある。よって、開示されている技術は、様々な変更及び代替の構成の余地がある一方で、その特定の説明されている実施形態が図面に示されており、先に詳細に記載されている。なお、本発明を開示されている具体的な形態に制限する意図はなく、対照的に、本発明は、添付の特許請求の範囲で定義される発明の範囲内にある全ての変更、代替の構成及び同等物をカバーすべきであることが理解されるべきである。
【０１４０】
開示されている実施形態について記載する文脈中の「１つの〜」（a又はan）及び「前記〜」（the）並びにとの語及び類似の指示語の使用は、別なふうに示されない限り、又は文脈によって明らかに否定されない限り、単数及び複数の両方をカバーすると考えられるべきである。「有する」（comprising）、「備える」（having）、「含む」（including）、及び「包含する」（containing）との語は、別なふうに述べられない限りは、非限定的な（open-ended）語（すなわち、「含むが限られない」を意味する）と考えられるべきである。「接続される」（connected）との語は、修飾されずかつ物理的な接続に言及する場合に、たとえ介在する何かがあるとしても、部分的に又は全体的に包含されるか、取り付けられるか、又は接合されると考えられるべきである。本開示中の値の範囲の列挙は、別なふうに示されない限りは、範囲内にある各別個の値に個別に言及している簡便な方法としての機能を果たすよう単に意図され、各別個の値は、あたかも個別に列挙されているかのように本明細書に組み込まれる。「セット」（set）（例えば「アイテムのセット」）又は「サブセット」（subset）との語の使用は、別なふうに述べられない限り、又は文脈によって否定されない限り、１以上のメンバーを有する非空集合と考えられるべきである。更に、別なふうに述べられない限り、又は文脈によって否定されない限り、対応するセットの「サブセット」は、対応するセットの適切なサブセットを必ずしも表さず、サブセット及び対応するサブセットは等しいことがある。
【０１４１】
「Ａ、Ｂ、及びＣの少なくとも１つ」又は「Ａ、Ｂ又はＣの少なくとも１つ」の形を取る言い回しのような連接語は、特に別なふうに述べられない限り、又はさもなければ、文脈によって明らかに否定されない限り、アイテム、項目などがＡ又はＢ又はＣのいずれかであるか、あるいは、Ａ及びＢ及びＣのセットの中のいずれかの非空部分集合であることを示すために一般に使用されると文脈により理解される。例えば、３つのメンバーを有するセットの実例では、「Ａ、Ｂ、及びＣの少なくとも１つ」及び「Ａ、Ｂ又はＣの少なくとも１つ」との連接語句は、次のセット：｛Ａ｝、｛Ｂ｝、｛Ｃ｝、｛Ａ，Ｂ｝、｛Ａ，Ｃ｝、｛Ｂ，Ｃ｝、｛Ａ，Ｂ，Ｃ｝の中のいずれかを指す。よって、このような連接語は、一般的に、特定の実施形態がＡの少なくとも１つ、Ｂの少なくとも１つ、及びＣの少なくとも１つが夫々存在することを必要とすることを暗示するよう意図されない。
【０１４２】
記載されるプロセスの動作は、別なふうに示されない限り、又はさもなければ、文脈によって明らかに否定されない限り、如何なる適切な順序でも実行され得る。記載されるプロセス（あるいは、その変形及び／又は組み合わせ）は、実行可能命令により構成される１つ以上のコンピュータシステムの制御下で実行可能であり、１つ以上のプロセッサで集合的に実行するコード（例えば、実行可能命令、１つ以上のコンピュータプログラム、若しくは１つ以上のアプリケーション）として、ハードウェアによって、又はそれらの組み合わせによって実施されてよい。いくつかの実施形態において、コードは、例えば、１つ以上のプロセッサによって実行可能な複数の命令を有するコンピュータプログラムの形で、コンピュータ可読記憶媒体に記憶され得る。いくつかの実施形態において、コンピュータ可読記憶媒体は非一時的である。
【０１４３】
与えられているありとあらゆる例又は例示語（例えば、「〜のような」）の使用は、単に、本発明の実施形態をより良く説明するよう意図され、別なふうに請求されない限りは、本発明の範囲を制限しない。明細書中の言語は、本発明の実施に必須なものとして如何なる請求されていない要素も示すと考えられるべきではない。
【０１４４】
本開示の実施形態は、本発明を実行するために本発明者に知られているベストモードを含め、記載されている。それらの実施形態の変形は、上記の記載を読むことで当業者に明らかになるだろう。本発明者は、そのような変形を必要に応じて用いることを当業者に期待しており、本発明者は、本開示実施形態が具体的に記載されているのとは別なふうに実施されることを意図する。従って、本開示の範囲は、適用される法律によって認められるように、本願に添付される特許請求の範囲で挙げられている対象の全ての変更及び同等物を含む。更に、上記の要素のその全てのとり得る変形での如何なる組み合わせも、別なふうに示されない限り、又はさもなければ、文脈によって明らかに否定されない限り、本開示の範囲によって包含されている。
【０１４５】
引用されている出版物、特許出願、及び特許を含む全ての参考文献は、各参考文献が参照により援用されるよう個別にかつ具体的に示されており、その全文が示されているかのように、同程度に参照により本願に援用される。
【０１４６】
上記の実施形態は、本発明を制限するのではなく説明しているのであって、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から外れることなしに、多くの代替の実施形態を設計することが可能である点が留意されるべきである。特許請求の範囲において、かっこ内の如何なる参照符号も、特許請求の範囲を制限するものとして解釈されるべきではない。語「有する」（comprising及びcomprises）などは、いずれかの請求項又は明細書の全文に挙げられているもの以外の要素又はステップの存在を除外しない。本明細書中、「有する」（comprises）は、「〜を含むか、又はそれらから成る」（includes  or  consists  of）を意味し、「有する」（comprising）は、「〜を含むか、又はそれらから成る」（including  or  consisting  of）を意味する。要素の単一参照は、そのような要素の複数参照を除外せず、逆もまた同じである。本発明は、いくつかの個別要素を有するハードウェアを用いて、且つ、適切にプログラムされたコンピュータを用いて、実施されてよい。いくつかの手段を列挙している装置クレームでは、それらの手段のうちのいくつかが、ハードウェアの同一アイテムによって具現されてもよい。特定の手段が相互に異なる請求項で挙げられているという単なる事実は、それらの手段の組み合わせが有利に使用され得ないことを示すものではない。
【０１４７】
［要約］
本開示で記載及び提案されている技術は、効率的にグループへのメンバーシップを証明し、ブロックチェーンネットワーク上でのデジタル資産の移転を認証することによって、コンピュータの分野、特に、ブロックチェーントランザクションの分野を改善する。更には、本開示で記載及び提案されている技術は、トランザクション出力を請求する場合に開示される情報の量を減らすことによって、そのようなトランザクションの安全性を改善する。様々な実施で、セットにおいて保持される実際の値は、他のメンバー又は当局へ伝えられる必要がなく、それらのハッシュ値のみが伝えられればよい。これは、グループの要素が公開キー又は他のタイプの仮名及び匿名クレデンシャルである場合に、それらが決して公に開示されないことを意味する。更に、本開示で記載及び提案されている技術は、グループメンバーシップを制御する中央当局の存在なしでグループメンバーシップを決定することで特に生じる問題を解決するために、必然的にコンピュータ技術に根ざしている。非中央集権的なソリューションはまた、累積ツリーの局所及び大域ダイジェストを構成するために必要とされる情報が（ｉ）関係がある参加者へのみ、（ｉｉ）可能な場合に同じコミュニケーションラウンドで送られる必要があるので、参加者間のコミュニケーションラウンドに関して効率的である。
【図１】
2021517389.tif 000041
【図２】
2021517389.tif 000042
【図３】
2021517389.tif 000043
【図４】
2021517389.tif 000044
【図５】
2021517389.tif 000045
【図６】
2021517389.tif 000046
【図７】
2021517389.tif 000047
【図８】
2021517389.tif 000048
【図９】
2021517389.tif 000049
【図１０】
2021517389.tif 000050
【図１１】
2021517389.tif 000051
【国際調査報告】
2021517389.tif 000052
2021517389.tif 000053