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

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

▶ デフィニティ スティフトゥングの特許一覧

特許7523155ブラインド識別情報を有する分散ネットワーク
<>
  • 特許-ブラインド識別情報を有する分散ネットワーク 図1
  • 特許-ブラインド識別情報を有する分散ネットワーク 図2
  • 特許-ブラインド識別情報を有する分散ネットワーク 図3
  • 特許-ブラインド識別情報を有する分散ネットワーク 図4
  • 特許-ブラインド識別情報を有する分散ネットワーク 図5
  • 特許-ブラインド識別情報を有する分散ネットワーク 図6
  • 特許-ブラインド識別情報を有する分散ネットワーク 図7
  • 特許-ブラインド識別情報を有する分散ネットワーク 図8
  • 特許-ブラインド識別情報を有する分散ネットワーク 図9
  • 特許-ブラインド識別情報を有する分散ネットワーク 図10
  • 特許-ブラインド識別情報を有する分散ネットワーク 図11
  • 特許-ブラインド識別情報を有する分散ネットワーク 図12
  • 特許-ブラインド識別情報を有する分散ネットワーク 図13
  • 特許-ブラインド識別情報を有する分散ネットワーク 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-18
(45)【発行日】2024-07-26
(54)【発明の名称】ブラインド識別情報を有する分散ネットワーク
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240719BHJP
   G06F 21/62 20130101ALI20240719BHJP
【FI】
H04L9/32 200Z
G06F21/62 354
【請求項の数】 26
(21)【出願番号】P 2022504324
(86)(22)【出願日】2019-03-20
(65)【公表番号】
(43)【公表日】2022-09-05
(86)【国際出願番号】 EP2019056970
(87)【国際公開番号】W WO2020187413
(87)【国際公開日】2020-09-24
【審査請求日】2022-03-16
(73)【特許権者】
【識別番号】521435190
【氏名又は名称】デフィニティ スティフトゥング
【氏名又は名称原語表記】DFINITY STIFTUNG
【住所又は居所原語表記】Genferstrasse 11, 8002 Zuerich Switzerland
(74)【代理人】
【識別番号】110002664
【氏名又は名称】弁理士法人相原国際知財事務所
(72)【発明者】
【氏名】カメニスチ, ジャン
(72)【発明者】
【氏名】ウィリアムズ, ドミニク
(72)【発明者】
【氏名】チェルッリ, アンドレア
(72)【発明者】
【氏名】デルラー, ダヴィッド
(72)【発明者】
【氏名】ドリヴェールズ, マヌ
(72)【発明者】
【氏名】ハンケ, ティモ, トビアス
(72)【発明者】
【氏名】ネヴェン, グレゴリー
【審査官】中里 裕正
(56)【参考文献】
【文献】国際公開第2019/014337(WO,A1)
【文献】CHAUM, D.,Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms,Communications of the ACM,Vol.24 No.2,1981年02月,pp.84-88
【文献】FLORIAN, M., WALTER, J. and BAUMGART, I.,Sybil-Resistant Pseudonymization and Pseudonym Change without Trusted Third Parties,WPES '15: Proceedings of the 14th ACM Workshop on Privacy in the Electronic Society,2015年10月,pp.65-74
【文献】SANKAR, L. S., SINDHU, M. and SETHUMADHAVAN, M.,Survey of Consensus Protocols on Blockchain Applications,2017 International Conference on Advanced Computing and Communication Systems (ICACCS -2017),2017年01月,pp.1-5
【文献】ZHAI, E. et al.,AnonRep: Towards Tracking-Resistant Anonymous Reputation,The Proceedings of the 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI'16),2016年03月,pp.583-596
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/62
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
複数のネットワークノード(10)を備え、
前記複数のネットワークノード(10)の各々は、複数の第1ノード識別情報のうちのいずれか1つの第1ノード識別情報とリンクされ、
前記複数の第1ノード識別情報の各々は、公開鍵署名方式の第1検証鍵を有する、分散ネットワーク(100)であって、
前記複数の第1ノード識別情報と、公開鍵署名方式の第2検証鍵を各々有する第2ノード識別情報の複数個との間でリンク不可の1対1マッピングを行うように適合された鍵シャッフルステップを実行するように構成されるとともに、前記複数の第2ノード識別情報のサブセットを用いてコンセンサスプロトコルの1つ以上のステップを実行するように構成され、
前記鍵シャッフルステップは、
前記複数の第1ノード識別情報が複数のミキサーを前記複数の第1ノード識別情報のサブセットとして選択するステップであって、前記複数のミキサーが指定された順序で配置されているステップと、
前記ミキサーの各々が複数の検証鍵を含む入力リストを受信するステップと、
前記ミキサーの各々が前記入力リストの順列および再ランダム化を含む出力リストを算出するステップであって、前記算出が秘密の順列および秘密の再ランダム化指数を使用するステップと、を含み、
前記指定された順序の最初のミキサーは、入力リストとして、前記複数の第1ノード識別情報の第1検証鍵を受け取り、
後続ミキサーの各々は、直前のミキサーの出力リストを入力リストとして受け取り、
前記指定された順序の最後のミキサーの出力リストは、前記複数の第2ノード識別情報を構築する、分散ネットワーク(100)。
【請求項2】
前記分散ネットワーク(100)は、前記鍵シャッフルステップを定期的に繰り返す、請求項1に記載の分散ネットワーク(100)。
【請求項3】
前記コンセンサスプロトコルを実行した後、前記複数の第1ノード識別情報と前記複数の第2ノード識別情報との間のマッピングを開示するように適合された識情報別開示ステップを実行するようにさらに構成される、請求項1または2に記載の分散ネットワーク(100)。
【請求項4】
前記複数の第2ノード識別情報と複数の第3ノード識別情報との間でリンク不可の1対1マッピングを行うように適合されたさらなる前記鍵シャッフルステップを実行するようにさらに構成され、前記複数の第3ノード識別情報の各々は、第3検証鍵を有する、請求項1から3までのいずれか1項に記載の分散ネットワーク(100)。
【請求項5】
請求項1から4までのいずれか1項に記載の分散ネットワーク(100)であって、
前記分散ネットワーク(100)は、プルーフオブステークブロックチェーンネットワークであり、
前記複数の第1ノード識別情報は、複数のパーマネントノード識別情報であり、
前記複数のパーマネントノード識別情報の各々は、第1検証鍵としてパーマネント検証鍵を有し、
前記複数の第2ノード識別情報は、複数のブラインドノード識別情報であり、
前記複数のブラインドノード識別情報の各々は、第2検証鍵としてブラインド検証鍵を有し、
前記コンセンサスプロトコルとして、前記複数のブラインドノード識別情報のサブセットを用いて前記ブロックチェーンネットワーク(100)に書き込まれる取引に関するプルーフオブステークコンセンサスプロトコルを実行するように構成される、分散ネットワーク(100)。
【請求項6】
前記複数のパーマネントノード識別情報の各々にネットワーク識別情報を割り当てて、対応する前記複数のパーマネントノード識別情報により前記ネットワーク識別情報を認証するようにさらに構成される、請求項5に記載の分散ネットワーク(100)。
【請求項7】
前記ネットワーク識別情報は、トランスポートレイヤセキュリティ「TLS」証明書およびネットワークアドレスをさらに含む、請求項6に記載の分散ネットワーク(100)。
【請求項8】
前記複数のブラインドノード識別情報と複数のブラインドネットワーク識別情報との間でリンク不可の1対1マッピングを行うようにさらに構成され、前記複数のブラインドネットワーク識別情報の各々は、ネットワーク検証鍵およびネットワーク暗号化鍵を含む、請求項5に記載の分散ネットワーク(100)。
【請求項9】
前記複数のパーマネントノード識別情報と複数のブラインドネットワーク識別情報との間でリンク不可の1対1マッピングを行うようにさらに構成され、前記複数のブラインドネットワーク識別情報の各々は、ネットワーク検証鍵およびネットワーク暗号化鍵を含む、請求項5に記載の分散ネットワーク(100)。
【請求項10】
ゴシッププロトコルを実行して、前記複数のネットワークノード間で情報を拡散し、
ゴシップグラフの複数の頂点(10)に前記複数のブラインドネットワーク識別情報を割り当てて、各々の前記頂点(10)が隣接ノードのネットワーク検証鍵の検索を可能とする、請求項8または9に記載の分散ネットワーク(100)。
【請求項11】
前記ゴシップグラフの各々の前記頂点(10)は、
隣接ノードの前記ネットワーク暗号化鍵で、そのネットワークアドレスを暗号化して、
ネットワーク検証鍵に対応するネットワーク署名鍵で、前記暗号化されたネットワークアドレスを署名して、
前記署名されて前記暗号化されたネットワークアドレスを隣接ノードに提供するように構成される、請求項10記載の分散ネットワーク(100)。
【請求項12】
前記複数のネットワークノード(10)の各々はステーク識別情報を含み、前記ステーク識別情報は、公開鍵署名方式のステーク検証鍵を含み、
前記分散ネットワーク(100)は、対応する前記ステーク識別情報によって前記第1ノード識別情報を認証するように構成される、請求項1から11までのいずれか1項に記載の分散ネットワーク(100)。
【請求項13】
事前に定義された選挙方式にしたがって、前記複数の第2ノード識別情報から委員会のメンバーを選出して、
前記選出された委員会のメンバーで前記コンセンサスプロトコルを実行するようにさらに構成される、請求項1から12までのいずれか1項に記載の分散ネットワーク(100)。
【請求項14】
前記選出された委員会のメンバーは、分散鍵生成プロトコルを実行する、請求項13に
記載の分散ネットワーク(100)。
【請求項15】
前記複数の第2ノード識別情報が複数のシャードに割り当てられる、請求項1から14までのいずれか1項に記載の分散ネットワーク(100)。
【請求項16】
前記分散ネットワークは、別の鍵シャッフルステップを実行するようにさらに構成され、
前記別の鍵シャッフルステップは、
前記複数の第2ノード識別情報が前記複数のミキサーを前記複数の第2ノード識別情報のサブセットとして選択するステップであって、前記複数のミキサーが前記指定された順序で配置されているステップと、
前記ミキサーの各々が複数の検証鍵を含む前記入力リストを受信するステップと、
前記ミキサーの各々が前記入力リストの順列および再ランダム化を含む前記出力リストを前記算出するステップであって、前記算出が秘密の順列および秘密の再ランダム化指数を使用するステップと、を含み、
前記指定された順序の第1ミキサーは、入力リストとして、前記複数の第1ノード識別情報の第1検証鍵を受け取り、
後続ミキサーの各々は、前出のミキサーの出力リストを入力リストとして受け取り、
前記指定された順序の最後のミキサーの出力リストは、前記複数の第2ノード識別情報を構築する、請求項1から15までのいずれか1項に記載の分散ネットワーク(100)。
【請求項17】
前記鍵シャッフルステップは、
前記ミキサーの各々が前記再ランダム化および前記順列が正しく計算されたことを証明するゼロ知識証明を算出するステップと、
前記ミキサーの各々が前記ゼロ知識証明を前記出力リストに追加するステップと、をさらに含む、請求項1から16までのいずれか1項に記載の分散ネットワーク(100)。
【請求項18】
前記複数のミキサーは事前に定義された最小数のミキサーを含み、前記最小数のミキサーは、20、50、および100からなる群から選択される、請求項1から17までのいずれか1項に記載の分散ネットワーク(100)。
【請求項19】
前記鍵シャッフルステップはブラインド署名方式を使用する、請求項1から15までのいずれか1項に記載の分散ネットワーク(100)。
【請求項20】
前記鍵シャッフルステップはPointcheval-Sanders署名方式を使用する、請求項1から15までのいずれか1項に記載の分散ネットワーク(100)。
【請求項21】
複数のネットワークノードを有する分散ネットワークにおいて、コンセンサスプロトコルを実行するためにコンピュータに実装された方法であって、
前記複数のネットワークノードの各々を、複数の第1ノード識別情報のうちの1つの第1ノード識別情報にリンクするステップであって、前記複数の第1ノード識別情報の各々が第1検証鍵を含むステップと、
前記複数の第1ノード識別情報と複数の第2ノード識別情報との間でリンク不可の1対1のマッピングを行うことを含む鍵シャッフルステップを実行するステップであって、前記複数の第2ノード識別情報の各々が第2検証鍵を含むステップと、
前記複数の第2ノード識別情報のサブセットが前記コンセンサスプロトコル、を実行するステップと、を備え、
前記鍵シャッフルステップは、
前記複数の第1ノード識別情報が複数のミキサーを前記複数の第1ノード識別情報のサブセットとして選択するステップであって、前記複数のミキサーが指定された順序で配置されているステップと、
前記ミキサーの各々が複数の検証鍵を含む入力リストを受信するステップと、
前記ミキサーの各々が前記入力リストの順列および再ランダム化を含む出力リストを算出するステップであって、前記算出が秘密の順列および秘密の再ランダム化指数を使用するステップと、を含み、
前記指定された順序の最初のミキサーは、入力リストとして、前記複数の第1ノード識別情報の第1検証鍵を受け取り、
後続ミキサーの各々は、直前のミキサーの出力リストを入力リストとして受け取り、
前記指定された順序の最後のミキサーの出力リストは、前記複数の第2ノード識別情報を構築する、方法。
【請求項22】
ネットワークノードによって、複数の前記ネットワークノードを有する分散ネットワークのコンセンサスプロトコルに参加するためのコンピュータに実装された方法であって、
前記ネットワークノードが前記第1ノード識別情報を作成するステップであって、前記第1ノード識別情報が第1検証鍵を含むステップと、
前記ネットワークノードが前記複数のネットワークノードとの鍵シャッフルプロトコルとして具体化される鍵シャッフルステップに参加するステップであって、鍵シャッフルプロトコルが前記ネットワークノードの前記第1ノード識別情報と第2ノード識別情報との間でリンク不可の1対1のマッピングを行い、前記第2ノード識別情報が第2検証鍵を含むステップと、
前記ネットワークノードが前記コンセンサスプロトコルに、前記第2ノード識別情報で参加するステップと、を備え、
前記鍵シャッフルステップは、
前記複数の第1ノード識別情報が複数のミキサーを前記複数の第1ノード識別情報のサブセットとして選択するステップであって、前記複数のミキサーが指定された順序で配置されているステップと、
前記ミキサーの各々が複数の検証鍵を含む入力リストを受信するステップと、
前記ミキサーの各々が前記入力リストの順列および再ランダム化を含む出力リストを算出するステップであって、前記算出が秘密の順列および秘密の再ランダム化指数を使用するステップと、を含み、
前記指定された順序の最初のミキサーは、入力リストとして、前記複数の第1ノード識別情報の第1検証鍵を受け取り、
後続ミキサーの各々は、直前のミキサーの出力リストを入力リストとして受け取り、
前記指定された順序の最後のミキサーの出力リストは、前記複数の第2ノード識別情報を構築する、方法。
【請求項23】
分散ネットワークのネットワークノードであって、
第1検証鍵を有する第1ノード識別情報にリンクされ、
前記ネットワークノードの前記第1ノード識別情報と、第2検証鍵を有する第2ノード識別情報との間でリンク不可の1対1マッピングを行うように適合された鍵シャッフルプロトコルとして具体化される鍵シャッフルステップに参加するように構成され、
コンセンサスプロトコルに、前記第2ノード識別情報で参加するように構成され、
前記鍵シャッフルステップは、
前記複数の第1ノード識別情報が複数のミキサーを前記複数の第1ノード識別情報のサブセットとして選択するステップであって、前記複数のミキサーが指定された順序で配置されているステップと、
前記ミキサーの各々が複数の検証鍵を含む入力リストを受信するステップと、
前記ミキサーの各々が前記入力リストの順列および再ランダム化を含む出力リストを算出するステップであって、前記算出が秘密の順列および秘密の再ランダム化指数を使用するステップと、を含み、
前記指定された順序の最初のミキサーは、入力リストとして、前記複数の第1ノード識別情報の第1検証鍵を受け取り、
後続ミキサーの各々は、直前のミキサーの出力リストを入力リストとして受け取り、
前記指定された順序の最後のミキサーの出力リストは、前記複数の第2ノード識別情報を構築する、ネットワークノード。
【請求項24】
複数のネットワークノードを備える分散ネットワークを運用するためのコンピュータプログラムであって、前記コンピュータプログラムは、それとともに具体化されたプログラム命令を含み、
前記プログラム命令は、前記複数のネットワークノードの1つ以上によって実行可能であり、前記複数のネットワークノードの1つ以上に、以下のステップ、すなわち、
前記複数のネットワークノードの各々を、第1検証鍵を各々含む第1ノード識別情報の複数個のうちの1つにリンクするステップ、
前記複数の第1ノード識別情報と、第2検証鍵を各々含む複数の第2ノード識別情報との間でリンク不可の1対1のマッピングを行うことを含む鍵シャッフルステップを実行するステップ、及び、
前記複数の第2ノード識別情報のサブセットを用いて、コンセンサスプロトコルを実行するステップ、を備え、
前記鍵シャッフルステップは、
前記複数の第1ノード識別情報が複数のミキサーを前記複数の第1ノード識別情報のサブセットとして選択するステップであって、前記複数のミキサーが指定された順序で配置されているステップと、
前記ミキサーの各々が複数の検証鍵を含む入力リストを受信するステップと、
前記ミキサーの各々が前記入力リストの順列および再ランダム化を含む出力リストを算出するステップであって、前記算出が秘密の順列および秘密の再ランダム化指数を使用するステップと、を含み、
前記指定された順序の最初のミキサーは、入力リストとして、前記複数の第1ノード識別情報の第1検証鍵を受け取り、
後続ミキサーの各々は、直前のミキサーの出力リストを入力リストとして受け取り、
前記指定された順序の最後のミキサーの出力リストは、前記複数の第2ノード識別情報を構築する、方法を実行させる、コンピュータプログラム。
【請求項25】
複数のネットワークノードを備える分散ネットワークを運用するためのコンピュータプログラムであって、前記コンピュータプログラムは、それとともに具体化されたプログラム命令を含み、
前記プログラム命令は、前記複数のネットワークノードの1つ以上によって実行可能であり、前記複数のネットワークノードの1つ以上に、以下のステップ、すなわち、
前記ネットワークノードを、第1検証鍵を含む第1ノード識別情報にリンクするステップと、
前記ネットワークノードの前記第1ノード識別情報と、第2検証鍵を含む第2ノード識別情報との間でリンク不可の1対1のマッピングを行うように適合された補正後の鍵シャッフルプロトコルとして具体化される鍵シャッフルステップに参加するステップ、及び、
コンセンサスプロトコルに、第2ノード識別情報を使用して参加するステップと、を備え、
前記鍵シャッフルは、
前記複数の第1ノード識別情報が複数のミキサーを前記複数の第1ノード識別情報のサブセットとして選択するステップであって、前記複数のミキサーが指定された順序で配置されているステップと、
前記ミキサーの各々が複数の検証鍵を含む入力リストを受信するステップと、
前記ミキサーの各々が前記入力リストの順列および再ランダム化を含む出力リストを算出するステップであって、前記算出が秘密の順列および秘密の再ランダム化指数を使用するステップと、を含み、
前記指定された順序の最初のミキサーは、入力リストとして、前記複数の第1ノード識別情報の第1検証鍵を受け取り、
後続ミキサーの各々は、直前のミキサーの出力リストを入力リストとして受け取り、
前記指定された順序の最後のミキサーの出力リストは、前記複数の第2ノード識別情報を構築する、方法を実行させるコンピュータプログラム。
【請求項26】
請求項24または25に記載の前記プログラム命令を記憶したコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のネットワークノードを含む分散ネットワーク、特にブロックチェーンネットワーク、に関する。
【0002】
さらなる態様は、分散ネットワークにおいてコンセンサスプロトコルを実行する方法、分散ネットワークのネットワークノード、および対応するコンピュータプログラム製品に関する。
【背景技術】
【0003】
分散ネットワークでは、複数のネットワークノードが分散して配置される。分散ネットワークコンピューティングでは、ソフトウェアとデータは複数のネットワークノードに分散している。ネットワークノードはコンピューティングリソースを確立し、分散ネットワークは分散コンピューティング技術を使用し得る。
【0004】
分散ネットワークの一例は、ブロックチェーンネットワークである。ブロックチェーンネットワークは、ブロックに基づくコンセンサスベースの電子台帳である。各ブロックは、取引およびその他の情報で構成される。さらに、各ブロックには前のブロックのハッシュが含まれているため、ブロックがチェーン化されて、ブロックチェーンに書き込まれたすべての取引の永続的で不変のレコードが作成される。取引は、スマートコントラクトと呼ばれる小さなプログラムを含み得る。
【0005】
取引をブロックチェーンに書き込むためには、ネットワークにより「検証」する必要がある。言い換えると、ネットワークノードはブロックチェーンに書き込まれるブロックについて同意を得る必要がある。このような同意は、さまざまなコンセンサスプロトコルにより達成し得る。
【0006】
コンセンサスプロトコルの1つのタイプとして、プルーフオブワークコンセンサスプロトコルがある。プルーフオブワークコンセンサスプロトコルは、通常、コンピュータによる処理時間に対応する、コンセンサスプロトコルに参加する当事者の作業を必要とする。ビットコインなどのプルーフオブワークベースの暗号通貨システムでは、計算量の多いパズルを解いて取引を検証し、新しいブロックを作成する。
【0007】
別のタイプのコンセンサスプロトコルとして、プルーフオブステークコンセンサスプロトコルがある。プルーフオブステークプロトコルには、時間とエネルギーを大量に消費するコンピューティングが必要ないという利点がある。プルーフオブステークベースのブロックチェーンネットワークにおいて、次のブロックの作成者は、例えば、ランダムな選択およびネットワーク内の各々のノードのステークの組み合わせにより選択される。ステークはノードの富であると考え得る。分散ネットワーク、特にブロックチェーンネットワークの重要な態様の1つは、取引と関連するディジタル資産のセキュリティを維持することである。したがって、セキュリティが強化された分散ネットワークが必要である。
【発明の概要】
【課題を解決するための手段】
【0008】
したがって、本発明の態様の1つの課題は、強化されたセキュリティ機能を備えた分散ネットワークを提供するところにある。
【0009】
本発明の第1の態様の実施形態によれば、複数のネットワークノードを含む分散ネットワークが提供される。複数のネットワークノードの各々は、複数の第1ノード識別情報のうちの1つの第1ノード識別情報にリンクされている。複数の第1ノード識別情報の各々は、公開鍵署名方式の第1検証鍵を含む。分散ネットワークは、複数の第1ノード識別情報と複数の第2ノード識別情報との間でリンク不可の1対1マッピングを行うように適合された鍵シャッフルステップを実行するように構成される。複数の第2ノード識別情報の各々は、公開鍵署名方式の第2検証鍵を含む。分散ネットワークは、複数の第2ノード識別情報のサブセットを用いてコンセンサスプロトコルの1つまたは複数のステップを実行するように構成される。
【0010】
そのような具体化されたネットワークは、2つの異なる識別情報、すなわち、第1ノード識別情報および第2ノード識別情報を複数のネットワークノードに提供する。第1ノード識別情報は、第1秘密署名鍵に対応する第1検証鍵によって特に識別され得るが、第2ノード識別情報は、第2秘密署名鍵に対応する第2検証鍵によって特に識別され得る。第1署名鍵および第2署名鍵はまた、それぞれ第1秘密鍵および第2秘密鍵として示され得る。第1検証鍵および第2検証鍵はまた、それぞれ第1公開鍵および第2公開鍵として示され得る。
【0011】
鍵シャッフルステップは、一方で、複数の第1ノード識別情報と複数の第2ノード識別情報との間で、特に第1検証鍵(第1公開鍵)と第2検証鍵(第2公開鍵)との間でリンク不可のマッピングを行う。これは、敵対者が複数の第1ノード識別情報のいずれも複数の第2ノード識別情報にリンクできないという利点を提供する。本発明の実施形態によれば、複数の第1ノード識別情報のいずれかと対応する第2ノード識別情報との間のリンクは隠されているか、換言すればブラインドであるか、換言すれば匿名である。したがって、第2ノード識別情報は、ブラインドノード識別情報または匿名ノード識別情報と見なし得る。
【0012】
一方、鍵シャッフルステップは、数の第1ノード識別情報と複数の第2ノード識別情報との間の1対1マッピングを行う。このような1対1のマッピングには、複数の第1ノード識別情報の各々が1つの第2ノード識別情報しか取得できないという利点がある。これにより、シビル攻撃(Sybil-attacks)に対する耐性が提供される。
【0013】
鍵シャッフルステップは、特に鍵シャッフルプロトコルとして具体化可能で、複数のサブステップを含み得る。
【0014】
したがって、本発明の実施形態は、コンセンサスプロトコルの参加者の識別情報を隠すことができ、コンセンサスプロトコルは、複数の第2ノード識別情報のサブセットによって匿名またはブラインド方式で実行され得る。
【0015】
これにより、特に適応型破損攻撃に対するネットワークのセキュリティが向上する。このような適応型破損攻撃は、複数の第1ノード識別情報の特権的な役割に関する知識を悪用することが目的であり得る。一例として、ネットワークの選択されたノードに、例えばネットワークの利害関係に基づいて、特権的役割を割り当てるコンセンサスアルゴリズムがある。そのような特権的役割は、コンセンサスプロトコルでより高い重みを提供する場合があり、攻撃者は、特に特権ノードを破壊することによってネットワークの制御を獲得することを目的とし得る。
【0016】
したがって、そのような適応的型破損攻撃は、本発明の実施形態によれば、効率的かつエレガントな方法で回避することができる。
【0017】
本発明の実施形態によるコンセンサスプロトコルは、一般に、ネットワークノードがいくつかのデータまたはデータ値について合意が必須のプロセスであり得る。これには、データベースへの取引の委託、リーダーの身元の合意、意見形成などが含まれ得る。いくつかの実施形態によれば、コンセンサスプロトコルは特にブロックチェーンネットワークのプルーフオブステークコンセンサスプロトコルであり得る。
【0018】
本発明のいくつかの実施形態によれば、コンセンサスプロトコルは複数のステップを含み得る。
【0019】
いくつかの実施形態によれば、第2ノード識別情報は、コンセンサスプロトコルの一部、すなわち、複数のステップのサブセットに対してのみ使用され得る。
【0020】
いくつかの実施形態によれば、第2ノード識別情報は、コンセンサスプロトコルの全体、すなわち、コンセンサスプロトコルの複数のステップのすべてに対して使用され得る。
【0021】
いくつかの実施形態によれば、ネットワークは、複数の第2ノード識別情報のサブセットを用いてコンセンサスプロトコルを実行する。サブセットという用語は、コンセンサスプロトコルが複数の第2ノード識別情報のすべてを用いて実行され得、または複数の第2ノード識別情報のすべてを用いなくても実行され得ることを意味し、後者は適切または厳密なサブセットを確立する。
【0022】
いくつかの実施形態によれば、ネットワークは鍵シャッフルステップを定期的に繰り返すようにさらに構成される。
【0023】
これにより、第2ノード識別情報が定期的に更新されるため、攻撃者の攻撃がより阻止され得る。この定期的な繰り返しは一定の時間間隔で実行され得る。この一定の時間間隔はいくつかの実施形態による時間区分として示され得る。
【0024】
いくつかの実施形態によれば、ネットワークは識別情報を開示するステップを実行するようにさらに構成される。識別情報を開示するステップは、コンセンサスプロトコルを実行している/実行された後の複数の第1ノード識別情報と複数の第2ノード識別情報との間のマッピングを開示する。
【0025】
この開示するステップにより、ネットワークのセキュリティがさらに向上する可能性がある。特に、それは、開示された第2ノード識別情報に対応する第1ノード識別情報に報酬または罰則を割り当てるために使用され得る。そのような報酬または罰則は、例えば、コンセンサスプロトコル中に正常に動作するノードまたは誤動作するノードに割り当てらる。さらに、開示ステップ中に識別情報を明らかにしないノードは、誤動作しているノードと見なされ得る。
【0026】
いくつかの実施形態によれば、ネットワークは、複数の第2ノード識別情報と複数の第3ノード識別情報との間でリンク不可の1対1のマッピングを行うように適合された、さらなる鍵シャッフルステップを実行するようにさらに構成される。第3ノード識別情報は、公開鍵署名方式の第3秘密署名鍵に対応する第3検証鍵を含む。
【0027】
すでに匿名化されている、つまり秘匿された第2ノード識別情報からの、このような追加の鍵シャッフルステップは、敵の攻撃をさらに妨害する。
【0028】
いくつかの実施形態によれば、ネットワークは、ブロックチェーンネットワーク、特にプルーフオブステークブロックチェーンネットワークである。そのようなプルーフオブステークネットワークでは、複数の第1ノード識別情報は、特にパーマネントノード識別情報であり得る。複数のパーマネントノード識別情報の各々は、第1検証鍵としてパーマネント検証鍵を含み、第1署名鍵としてパーマネント署名鍵を含む。さらに、複数の第2ノード識別情報は、特に複数のブラインドノード識別情報であり得、複数のブラインドノード識別情報の各々は、第2検証鍵としてブラインド検証鍵を含み、第2署名鍵としてブラインド署名鍵を含む。
【0029】
いくつかの実施形態によれば、パーマネントノード識別情報は、対応するネットワークノードに「パーマネント」にリンクされた識別情報である。本開示の文脈において、「パーマネント」という用語は、必ずしも永続的ではなく、むしろ長期的であることを意味するものとする。この点での長期とは、いくつかの実施形態によれば、パーマネントリンクが少なくとも事前定義された期間使用されるか、または有効であることを意味するものとする。事前定義された期間は、特に、鍵シャッフルステップの繰り返しの時間間隔よりも大幅に長い。いくつかの実施形態によれば、事前定義された期間は、例えば、1年、6か月または1か月に設定され得る。したがって、パーマネントノード識別情報は、特にネットワークノードに少なくとも長期的にリンクされている識別情報である必要がある。
【0030】
「ブラインド」という用語は、パーマネントノード識別情報とブラインドノード識別情報の間のリンクが公開されていない、非表示になっている、つまり匿名であることを意味する。より具体的には、対応するブラインドノード識別情報にリンクされている各々のパーマネントノードのみがこのリンクを認識し、他のすべてのノード識別情報と「パブリック」はそれを認識しない。
【0031】
ネットワーク内のノードは、コンセンサスプロトコルに参加することが期待される。ブラインドノード識別情報は、いくつかの実施形態によれば、各々のノードが、コンセンサスプロトコルにおける識別情報として、対応するブラインドノード識別情報とともに参加可能なことを意味する。したがって、ブラインドノード識別情報は、コンセンサス識別情報、つまりコンセンサスプロトコルで使用される識別情報としても示され得る。
【0032】
いくつかの実施形態によれば、ネットワークは、コンセンサスプロトコルとして、複数のブラインドノード識別情報のサブセットを用いて、ブロックチェーンネットワーク上に書き込まれる取引に対して、プルーフオブステークコンセンサスプロトコルを実行するように構成される。
【0033】
プルーフオブステークコンセンサスプロトコルは、ブロックチェーン上またはブロックチェーンに書き込まれる取引の次のブロックについてコンセンサスを得ることを目的とする。
【0034】
したがって、そのような実施形態によれば、プルーフオブステークコンセンサスプロトコルは、匿名で実行され得、敵対者が適応型破損攻撃を実行すること、すなわち、特権的役割で選出されたノードの破壊を目的とすることをより困難にする。
【0035】
本発明のいくつかの実施形態によれば、コンセンサスプロトコルは、新しいブロックを公証する資格のある委員会を選出するステップ、新しいブロック提案者をランク付けするステップ、および次のランダム性の値、例えばランダムビーコンを計算するステップ、を包含し得る。
【0036】
いくつかの実施形態によれば、第2ノード識別情報は、上記の3つのステップのすべてに使用され得、一方、他の実施形態によれば、第2ノード識別情報は、上記の手順のうち1つまたは2つにのみ使用され得る。
【0037】
いくつかの実施形態によれば、複数のネットワークノードの各々は、ステーク識別情報を含む。ステーク識別情報は、公開鍵署名方式のステーク署名鍵に対応するステーク署名鍵で構成される。ネットワークはさらに、対応するステーク識別情報によって、第1ノード識別情報、特にパーマネントノード識別情報を認証するように構成される。
【0038】
ステーク識別情報は、特に、各々のネットワークノードのステーク預金に関連付けられ得る。預金の取引はすべて、ステーク署名鍵に対応するステーク署名鍵で認証する必要がある。
【0039】
パーマネントノード識別情報をステーク識別情報からこのように分離することにより、利害関係者は自分のステークを「貸し出す」ことができる。データセンターへ、例えば、パーマネント検証鍵(公開鍵)に対応するパーマネント署名鍵(秘密鍵)を渡すか、データセンターから提供されたパーマネント検証鍵を認証する。
【0040】
これにより、ステークの所有者とデータセンターは、ステーク自体を引き渡すことなく、ステークの報酬を共有し得る。ステークを貸し出すと、コンセンサスプロトコルに参加するためにデポジットされるステークの量が増加するので、ネットワークを制御するために攻撃者が破損しなければならないステークの量が増えて、システムの全体的なセキュリティが向上する。
【0041】
いくつかの実施形態によれば、ステーク検証鍵は、特にSchnorr公開鍵であり得る。
【0042】
いくつかの実施形態によれば、ネットワークは、ネットワーク識別情報を複数のパーマネントノード識別情報の各々に割り当て、対応するパーマネントノード識別情報がネットワーク識別情報を認証するようにさらに構成される。
【0043】
これにより、パーマネントノード識別情報がネットワーク識別情報にリンクされる。認証は、パーマネント検証鍵に対応するパーマネント署名鍵を使用して実行し得る。ネットワーク識別情報は、特にトランスポートレイヤセキュリティ(「TLS」)証明書と、インターネットプロトコル(「IP」)アドレスなどのネットワークアドレスとを含み得る。
【0044】
別の実施形態によれば、ネットワークは、複数のブラインドノード識別情報と複数のブラインドネットワーク識別情報との間でリンク不可の1対1のマッピングを行うように構成される。複数のブラインドネットワーク識別情報の各々は、ネットワーク検証鍵およびネットワーク署名鍵を含む。ネットワーク検証鍵およびネットワーク署名鍵は、特に、RSAなどの公開鍵署名および暗号化方式の鍵であり得る。
【0045】
そのような実施形態は、ブラインドまたは匿名のネットワーク識別情報を提供し、コンセンサスプロトコルに参加するノードのネットワーク位置を秘匿することを可能にする。
これは特に、特定のネットワーク(IP)アドレスの背後にあるステークの量を隠すために使用し得る。さらに、これにより、破損や分散型サービス拒否(DDoS)の攻撃の標的となることを回避し得る。
【0046】
別の実施形態によれば、ネットワークは、複数のパーマネントノード識別情報と複数のブラインドネットワーク識別情報との間でリンク不可の1対1のマッピングを行うように構成される。複数のブラインドネットワーク識別情報の各々は、ネットワーク検証鍵およびネットワーク署名鍵を含む。ネットワーク検証鍵およびネットワーク署名鍵は、特に、Schnorrなどの公開鍵署名方式およびElGamalなどの暗号化方式の鍵であり得る。
【0047】
そのような実施形態はまた、ブラインドまたは匿名のネットワーク識別情報を提供し、上記の実施形態の代替として使用され得る。また、コンセンサスプロトコルに参加するノードのネットワーク上の位置を非表示にすることも可能である。これは特に、特定のネットワーク(IP)アドレスの背後にどの程度のステークの量があるかを秘匿するために使用され得る。さらに、これにより、破損攻撃やDDoS攻撃の標的となることを回避し得る。
【0048】
本発明の実施いくつかの実施形態によるネットワークは、特に、ネットワークノード間で情報を拡散するゴシッププロトコルを実行するように構成され得る。いくつかの実施形態によれば、複数の異なるゴシッププロトコルを使用し得る。いくつかの実施形態によれば、ゴシッププロトコルは、病気がどのように流行するかと同様に、コンピュータピアツーピア通信の方法として定義され得る。
【0049】
本発明のいくつかの実施形態は、データが、分散ネットワークのすべてのネットワークノードに送られることを確実にするために、特にピアツーピアゴシッププロトコルを使用し得る。
【0050】
本発明のいくつかの実施形態によるブラインドネットワーク識別情報を有するネットワークは、ゴシップグラフの複数の頂点に複数のブラインドネットワーク識別情報を割り当てて、各々の頂点が隣接ノードネットワーク検証鍵(ネットワーク公開鍵)の検索を可能とする。
【0051】
これにより、ネットワークの各ネットワークノードが、対応する隣接ノードを認識し、それらと通信し得ることを確実にする。いくつかの実施形態によれば、ゴシップグラフの各々の頂点は、そのネットワークアドレス、特にそのインターネットプロトコル(IP)アドレスを、その隣接ノードのネットワーク検証鍵(ネットワーク公開鍵)で暗号化するように構成される。さらに、各々の頂点は、暗号化されたネットワーク(IP)アドレスにそのネットワーク署名鍵で署名して、署名されて暗号化されたネットワーク(IP)アドレスを隣接ノードに提供し得る。次に、隣接ノードでは、検証鍵(公開鍵)に対応する秘密鍵を使用して暗号化されたネットワークアドレスを復号化して、対応するネットワーク検証鍵を使用してネットワーク署名鍵の署名を検証し得る。
【0052】
いくつかの実施形態によれば、ゴシップグラフは、特にd-正則グラフであり得る。ここで、dは、ゴシップグラフの各々の頂点の隣接ノードの数を示す。
【0053】
いくつかの実施形態によれば、ネットワークの各ノードは、受信したすべてのメッセージをその隣接ノードに転送し得る。いくつかの実施形態によれば、追加の効率測定を実現し得る。一例として、ノードは最初に受信したメッセージのハッシュのみを隣接ノードに転送して、隣接ノードが対応するメッセージをすでに受信しているかどうかを確認できるようにし得る。これにより、余剰なネットワークトラフィックが減少し得る。
【0054】
いくつかの実施形態によれば、ネットワークは、事前に定義された選挙方式にしたがって、複数の第2ノード識別情報から委員会のメンバーを選出して、選出された委員会のメンバーとでコンセンサスプロトコルを実行するようにさらに構成される。
【0055】
このようなネットワークでは、委員会がネットワークノードの全体一式よりも十分に小さいので、高い取引速度と短い完了時間を達成し得る。完全なネットワークは数万のネットワークノードで構成され得るが、委員会は一例として数百のノードのみで構成され得る。したがって、委員会は、システム内のすべてのノードが関与する場合よりも効率的に動作し得る。このような委員会は、ブロックを公証する権限があるので、公証委員会と称されることもある。
【0056】
いくつかの実施形態によれば、委員会の規模は、最大で総ステークの部分xを制御する敵が、委員会内でランダムに選択されたノードの最大でy>xなる部分を制御することを示す、統計的議論によって決定される。
【0057】
いくつかの実施形態によれば、ネットワークは、すべての委員会内の最大でy個のノードが破損したときであっても、安全を維持するように設計し得る。これは、全体のステークの最大でx個が破損している場合に限り、セキュリティ保証に変換される。
【0058】
この議論の問題の1つは、適応型の破損に耐えられない場合があることである。仮に、攻撃者が、公証委員会や上位のブロック提案者などの特権的な役割に選出されるまで、ノードが破損するのを待つことが可能な場合、攻撃者は株式のごく一部だけを管理しながらネットワークの制御を得られることになる。
【0059】
本発明のいくつかの実施形態は、特にパーマネントノード識別情報とブラインドノード識別情報との間のリンクを非表示にすることによって、そのような攻撃に対する対策を提供する。
【0060】
事前に定義された選挙方式は、さまざまな方法で具体化し得る。
【0061】
いくつかの実施形態によれば、しきい値リレー方式を使用し得る。より具体的には、本発明のいくつかの実施形態によるネットワークは、しきい値リレー、ランダムに選択されたノードが後続の公証委員会によって維持される分散ランダムビーコン、を使用し得る。ランダムビーコンの出力は、例えば、ブロック提案者のランク付けや新世代の委員会の構成するためのシステム内のエントロピーとして使用される。そのようなしきい値リレー方式は、例えば、Timo Hanke、Mahnush Movahedi、Dominic Williamsによる文献である、DFINITYテクノロジー概要シリーズ、コンセンサスシステム、Rev.1に記載されている(https://dfinity.org/static/dfinity-consensus-0325c35128c72b42df7dd30c22c41208.pdf)。
【0062】
上述のように、非表示にすることは、コンセンサスプロトコルの一部に対してのみ、実施形態に従って使用され得る。いくつかの実施形態によれば、ブラインドノード識別情報は、ランダムビーコンの計算にのみ使用され得る。
【0063】
いくつかの実施形態によれば、選出された委員会のメンバーは、分散鍵生成プロトコルを実行し得る。
【0064】
このような分散鍵生成プロトコルを使用して、選出された委員会のメンバーは、次の取引の署名鍵、つまり、取引鍵について合意する。このような署名鍵は、特にしきい値署名鍵であり得る。
【0065】
本発明のいくつかの実施形態は、パーマネントノードの識別情報とネットワーク識別情報の間のリンクを切断する。パーマネントノード識別情報を、例えば、委員会への選出、ブロック提案者としてのランク付け、および/またはそれらの役割でのメッセージへの署名のために使用し得る一方で、ネットワーク識別情報は、ゴシップグラフの頂点への割り当ておよび隣接ノードとのポイントツーポイント接続の保護に使用され得る。
【0066】
いくつかの実施形態によれば、複数の第2ノード識別情報は、複数のシャードに割り当てられる。シャードは、ネットワークノードのサブセットとみなし得る。
【0067】
鍵シャッフルステップは、さまざまな方法で具体化し得る。いくつかの実施形態によれば、使用され得る技術は、ブラインド署名、しきい値Pointcheval-Sanders署名、オア証明、および反復オア証明を含む。
【0068】
一実施形態によれば、鍵シャッフルステップは、ミキシング技術に基づく。より具体的には、鍵シャッフルステップは、複数の第1ノード識別情報によって、複数のミキサーを第1ノード識別情報のサブセットとして選択することを含む。複数のミキサーは、指定されたまたは事前定義された順序、例えば、順序付きリストの形式で配置される。鍵シャッフルステップは、各ミキサーによって、複数の検証鍵を含む入力リストを受信し、各ミキサーによって、入力リストの順列および再ランダム化を含む出力リストを計算することをさらに含む。コンピューティングは、特に秘密の順列および秘密の再ランダム化指数を使用し得る。指定された順序の第1ミキサーは、入力リストとして、複数の第1ノード識別情報の第1検証鍵、特に複数のパーマネントノード識別情報のパーマネント検証鍵を受け取る。後続の各ミキサーは、前のミキサーの出力リストを入力リストとして受け取る。指定された順序の最後のミキサーの出力リストは、複数の第2ノード識別情報、特に複数のブラインドノード識別情報を確立する。
【0069】
そのようなミキシングベースの鍵シャッフルは、特に、ミキシングの最後に複数の第2ノード識別情報が公に利用可能であるという利点を提供する。これにより、DOD攻撃が困難になる。
【0070】
いくつかの実施形態によれば、ネットワークは、さらなる鍵シャッフルステップを実行するようにさらに構成され得る。さらなる鍵シャッフルステップは、複数の第2ノード識別情報、特に、複数のブラインドノード識別情報によって、複数の第2ノード識別情報のサブセットとして複数のミキサーを選出するステップを含む。
【0071】
したがって、そのような実施形態によれば、第1鍵シャッフル/ミキシングステップは、第1ノード識別情報、特にパーマネントノード識別情報から実行され、一方、さらなる鍵シャッフル/ミキシングステップは、第2ノード識別情報、特に前の鍵シャッフルのブラインドノード識別情報を入力として使用する。
【0072】
いくつかの実施形態によれば、鍵シャッフルステップはさらに、ミキサーの各々が、再ランダム化および順列が正しく計算されたことを証明するゼロ知識証明を算出することを含む。
【0073】
いくつかの実施形態によれば、鍵シャッフルステップは、ミキサーの各々が、ゼロ知識証明を出力リストに追加することをさらに含む。
【0074】
いくつかの実施形態によれば、証明の健全性は、誤動作するミキサーが、受け入れ証明の計算が実行不可能であることを保証する。
【0075】
複数のミキサーは事前に定義された最小数のミキサーを含む。最小数のミキサーは、20、50、または100で有り得る。
【0076】
事前に定義された最小数は、少なくとも1つのミキサーが正しいと十分な確率で仮定され得るように選択される。
【0077】
本発明の別の態様の実施形態によれば、分散ネットワークでコンセンサスプロトコルを実行するための、コンピュータへ実装の方法が提供される。この方法は、複数のネットワークノードの各々を、複数の第1ノード識別情報のうちのいずれか1つの第1ノード識別情報にリンクするステップを含む。ここで、複数の第1ノード識別情報の各々は、第1検証鍵および第1署名鍵を含む。この方法は、複数の第1ノード識別情報と複数の第2ノード識別情報との間でリンク不可の1対1のマッピングを行うことを含み、鍵シャッフルステップを実行するさらなるステップを含む。ここで、複数の第2ノード識別情報のそれぞれは、第2検証鍵および第2署名鍵を含む。この方法は、複数の第2ノード識別情報のサブセットを用いて、コンセンサスプロトコル、特にプルーフオブステークコンセンサスプロトコルを実行するさらなるステップを含む。
【0078】
本発明の別の態様の実施形態によれば、分散ネットワークのネットワークノード、特にプルーフオブステークブロックチェーンネットワーク、が提供される。このネットワークノードは第1ノード識別情報にリンクされており、特にパーマネントにリンクされている。第1ノード識別情報は、第1検証鍵および第1署名鍵を含む。ネットワークノードは、そのネットワークノードの第1ノード識別情報と第2ノード識別情報との間でリンク不可の1対1のマッピングを行うように適合された鍵シャッフルステップまたは鍵シャッフルプロトコルに参加するように構成される。第2ノード識別情報は、第2検証鍵と第2署名鍵で構成される。ネットワークノードはさらに、コンセンサスプロトコル、特にプルーフオブステークコンセンサスプロトコル、に参加するように構成され、第2ノード識別情報を使用する。
【0079】
本発明の別の態様の実施形態によれば、分散ネットワーク、特にプルーフオブステークブロックチェーンネットワーク、を操作するためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、それとともに具体化されたプログラム命令を有するコンピュータ可読記憶媒体を含む。前記プログラム命令は、前記複数のネットワークノードの1つ以上によって実行可能であり、前記複数のネットワークノードの1つ以上に、前記複数のネットワークノードの各々を、第1検証鍵と第1署名鍵とを各々含む第1ノード識別情報の複数個のうちの1つにリンクすることを含む方法を実行させる。この方法は、複数の第1ノード識別情報と複数の第2ノード識別情報との間でリンク不可の1対1のマッピングを行うことを含む鍵シャッフルステップを実行することをさらに含む。ここで、複数の第2ノード識別情報の各々は、第2検証鍵および第2署名鍵を含む。この方法は、複数の第2ノード識別情報のサブセットを用いて、コンセンサスプロトコル、特にプルーフオブステークコンセンサスプロトコル、を実行することをさらに含む。
【0080】
本発明の別の態様の実施形態によれば、非一時的なコンピュータ可読媒体上に符号化されたソフトウェアアーキテクチャが提供される。ソフトウェアアーキテクチャは、分散ネットワークの1つ以上のネットワークノードを操作するように構成されている。エンコードされたソフトウェアアーキテクチャは、複数のネットワークノードのうちのいずれか1つまたは複数によって実行可能なプログラム命令を含み、複数のネットワークノードのうちのいずれか1つまたは複数に、複数のネットワークノードの各々を複数の第1ノード識別情報のうちの第1ノード識別情報にリンクすることを含む方法を実行させる。ここで、複数の第1ノード識別情報の各々は、第1検証鍵を含む。この方法はさらに、複数の第1ノード識別情報と複数の第2ノード識別情報との間でリンク不可の1対1のマッピングを行うことを含む鍵シャッフルステップを実行することを含む。ここで、複数の第2ノード識別情報のそれぞれは、第2検証鍵を含む。この方法は、複数の第2ノード識別情報のサブセットを用いて、コンセンサスプロトコル、特にプルーフオブステークコンセンサスプロトコル、を実行するさらなるステップを含む。
【0081】
本発明の一態様の特徴および利点は、必要に応じて、本発明の他の態様に適用することができる。
【0082】
他の有利な実施形態は、従属請求項ならびに以下の説明に記載されている。
【図面の簡単な説明】
【0083】
本発明は、よりよく理解され、上記以外の目的は、以下の詳細な説明から明らかになるであろう。このような説明は、添付の図面を参照する。
図1図1は、本発明の一実施形態による分散ネットワークの例示的なブロック図である。
図2図2は、本発明の例示的な実施形態による分散ネットワークにおけるブロックの作成を示す図である。
図3図3は、分散ネットワークにおいてコンセンサスプロトコルを実行するためのコンピュータ実装方法の各ステップを含むフローチャートである。
図4図4は、本発明の一実施形態による、ネットワークのネットワークノードのノード識別情報の構造を示す図である。
図5図5は、本発明の実施形態による重要なシャッフルステップの例示的な一例を示す図である。
図6図6は、本発明の別の実施形態による、ネットワークのネットワークノードのノード識別情報の構造を示す図である。
図7図7は、本発明の一実施形態による、ネットワークのネットワークノードのノード識別情報の構造を示す図である。
図8図8は、本発明の別の実施形態による、主要なシャッフルおよび開示するステップの時系列図である。
図9図9は、暗号化ミックスネットワークを使用する本発明の実施形態による鍵シャッフルステップを実行するためのプロトコルの高いレベルでの図である。
図10図10は、ブラインド署名に基づく本発明の実施形態による、鍵シャッフルステップを実行するための別のプロトコルの高いレベルでの図である。
図11図11は、しきい値Pointcheval-Sanders署名を使用して本発明の実施形態による鍵シャッフルステップを実行するための別のプロトコルの高いレベルでの図である。
図12図12は、本発明の一実施形態によるネットワークノードの例示的な実施形態を示す図でる。
図13図13は、本発明の一実施形態によるゴシップグラフを示す。
図14図14は、本発明の別の実施形態によるネットワークのネットワークノードのノード識別情報の構造を示す図である。
【発明を実施するための形態】
【0084】
<発明を実行するためのモード>
最初に、本発明のいくつかの一般的な態様および実施形態の用語を紹介する。
【0085】
いくつかの実施形態によれば、分散ネットワークは、分散方式で配置された複数のネットワークノードを含む。このような分散ネットワークコンピューティングでは、ソフトウェアとデータが複数のネットワークノードに分散される。ネットワークノードはコンピューティングリソースを確立し、分散ネットワークは特定の分散コンピューティング技術を使用し得る。
【0086】
いくつかの実施形態によれば、分散ネットワークは、特にブロックチェーンネットワークとして具体化され得る。「ブロックチェーン」という用語には、あらゆる形態の電子的なコンピュータベースの分散型台帳が含まれる。いくつかの実施形態によれば、ブロックチェーンネットワークは、プルーフオブワークブロックチェーンネットワークとして具体化され得る。他の実施形態によれば、ブロックチェーンネットワークは、プルーフオブステークブロックチェーンネットワークとして具体化され得る。
【0087】
図1は、本発明の実施形態による分散ネットワーク100の例示的なブロック図を示す。
【0088】
分散ネットワーク100は、複数のネットワークノード10を含む。複数のネットワークノード10は、エッジ11としても示され得る通信リンク11を介して隣接ノード10に結合または接続される。複数のネットワークノード10は、特にゴシッププロトコルによって、通信リンク11を介してそれらの隣接ノードと通信することができる。ネットワーク100は、特に、プルーフオブステークブロックチェーンネットワークであり得る。
【0089】
プルーフオブステーク(PoS)は、ブロックチェーンネットワークがどのノードがブロックチェーンの次のブロックを作成できるかについて分散コンセンサスに到達するための方法を説明する。PoS法は、加重ランダム選択を使用することができ、それにより、個々のノードの加重は、特に、それぞれのノードの資産(「ステーク」)に応じて決定し得る。
【0090】
いくつかの実施形態によれば、分散ネットワークの各ネットワークノードは、一定量のステークに関連付けられ得る。したがって、より多くのステークを制御する当事者は、単により多くのノード識別情報を制御し得る。
【0091】
図2は、本発明の例示的な実施形態による分散ネットワーク100におけるブロックの作成について図示する。この例示的な実施形態では、3つのブロック201、202、および203が示されている。ブロック201は、複数の取引、すなわち、取引tx1.1、tx1.2、および場合によってはドットで示されるさらなる取引を含む。ブロック202はまた、複数の取引、すなわち、取引tx2.1、tx2.2、および場合によってはドットで示されるさらなる取引を含む。ブロック203はまた、複数の取引、すなわち、取引tx3.1、tx3.2、および場合によってはドットで示されるさらなる取引を含む。ブロック201、202、および203は一緒に連結される。より具体的には、各ブロックは前のブロックのブロックハッシュを含む。これにより、現在のブロックが前のブロックに暗号的に関連付けられる。
【0092】
図3は、分散ネットワーク、例えば、図1の分散ネットワーク100において、コンセンサスプロトコルを実行するためのコンピュータ実装方法の各ステップを含むフローチャート300を示す。
【0093】
ステップ310において、分散ネットワーク100は、複数のネットワークノード10の各々を、複数の第1ノード識別情報のうちの第1ノード識別情報、特に複数のパーマネントノード識別情報のうちのパーマネントノード識別情報にリンクする。複数の第1ノード識別情報の各々は、公開鍵署名方式の第1検証鍵および第1署名鍵、特にパーマネント検証鍵およびパーマネント署名鍵を含む。
【0094】
ステップ320において、分散ネットワーク100は、鍵シャッフルステップを実行する。鍵シャッフルステップは、複数の第1ノード識別情報と複数の第2ノード識別情報との間でリンク不可の1対1のマッピングを行うことを含む。複数の第2ノード識別情報のそれぞれは、第2検証鍵および第2署名鍵、特に、公開鍵署名方式のブラインド検証鍵およびブラインド署名鍵を含む。
【0095】
コンセンサスステップ330として示され得るステップ330において、分散ネットワーク100は、複数の第2ノード識別情報のサブセット、特にブラインドノード識別情報のサブセットを用いてコンセンサスプロトコルを実行する。コンセンサスプロトコルは、特に、分散ネットワーク100上に書き込まれる取引に関するプルーフオブステークコンセンサスプロトコルであり得る。
【0096】
開示ステップ340として示され得るステップ340において、分散ネットワーク100のノード10は、それらの第2ノード識別情報、特にそれらのブラインドノード識別情報を開示する。
【0097】
いくつかの実施形態によれば、鍵シャッフルステップ320、コンセンサスステップ330、および開示ステップ340が繰り返される。特に、定期的に繰り返される。
【0098】
方法の各ステップは、特に、後続の時間区分の間に後続の順序で実行され得る。
【0099】
図4は、本発明の実施形態によるネットワーク、例えば、図1に示されたネットワーク100のネットワークノードのノード識別情報の構造を示す。
【0100】
複数のネットワークノード10の各々は、ステーク識別情報401を備える。ステーク識別情報stid、401は、公開鍵署名方式のステーク署名鍵pkstidおよびステーク署名鍵skstidを含む。
【0101】
ネットワーク100は、それぞれのノード10のパーマネントノード識別情報402を、対応するステーク識別情報stid、401によって認証するように構成される。パーマネントノード識別情報402は、パーマネントノード識別情報pnidとしても示されるものであり得、そのパーマネントノード識別情報pnid、402は、公開鍵署名方式のパーマネント検証鍵pkpermとパーマネント署名鍵skpermを備える。
【0102】
ステーク検証鍵pkstidは、特にSchnorr公開鍵であり得る。
【0103】
ネットワーク100はさらに、ネットワーク識別情報netid、403を複数のパーマネントノード識別情報の各々に割り当てるように構成される。
【0104】
一実施形態によれば、実線の矢印によって示されるように、ネットワーク識別情報netid、403は、対応するパーマネントノード識別情報pnid、402によって認証され得る。ネットワーク識別情報netid、403は、公開鍵署名方式のネットワーク検証鍵pknetidとネットワーク署名鍵sknetidを備える。
【0105】
別の実施形態によれば、点線の矢印で示されているように、ネットワーク識別情報netid、403は、対応するステーク識別情報stid、401によって認証され得る。
【0106】
ネットワーク識別情報netid、403は、トランスポートレイヤセキュリティトランスポート層セキュリティ標準にしたがってTLS証明書404を認証する。TLS証明書は、ネットワーク識別情報netidとして、ネットワーク検証鍵pknetidとネットワークアドレス、特にインターネットプロトコル(IP)アドレスを備える。
【0107】
ネットワーク100は、ブラインドノード識別情報を作成するために鍵シャッフルステップを実行するように構成される。
【0108】
鍵シャッフルステップは、ネットワーク100のすべてのノード10のすべてのパーマネントノード識別情報pnid、402を入力として受け取り、パーマネントノード識別情報pnid、402と対応する数のブラインドノード識別情報bnid、410の間でリンク不可の1対1のマッピングを行う。ブラインドノード識別情報bnidの各々は、公開鍵署名方式のブラインド検証鍵pkbnidとブラインド署名鍵skbnidとを備える。
【0109】
鍵シャッフルステップは、例えば、一定に時間間隔で定期的に繰り返し得る。
【0110】
図4の例では、2つの鍵シャッフルステップが示されており、第1鍵シャッフルステップはブラインドノード識別情報410(1)、bnid(1)を生成し、第2鍵シャッフルステップはブラインドノード識別情報410(2)、bnid(2)を生成した。
【0111】
図5は、本発明のいくつかの実施形態による鍵シャッフルステップの例示的な一例を示す。
【0112】
鍵シャッフルステップは、複数のn個の第1検証鍵(公開鍵)pk、pk、...、pkを入力として受け取る。第1検証鍵(公開鍵)pk、pk、...、pkは、パーマネントノード識別情報のパーマネント検証鍵として特に具体化し得る。
【0113】
鍵シャッフルステップは、出力として、複数のn個の第2検証鍵(公開鍵)pk´、pk´、...、pk´を生成する。検証鍵(公開鍵)pk´、pk´、...、pk´は、特に、ブラインドノード識別情報のブラインド検証鍵として具体化し得る。
【0114】
鍵シャッフルステップは、複数のn個の第1検証鍵pk、pk、...、pkと、最初にリンクできない複数のn個の第2検証鍵pk´、pk´、...、pk´との間のマッピングを実行する。これは、点線の矢印で示された第1検証鍵と第2検証鍵の間のそれぞれのリンクがブラインドされている、換言すれば匿名であり、それぞれの第1検証鍵のそれぞれの所有者にのみ知られていることを意味する。さらに、マッピングは1対1のマッピングであり、n個の第1検証鍵pk、pk、...、pkの各々が、n個の第2検証鍵pk´、pk´、...、pk´のうちのいずれか1つにのみマッピングされる。
【0115】
図6は、本発明の実施形態によるネットワーク、例えば、図1に示されるネットワーク10のネットワークノードのノード識別情報の構造600を示す。
【0116】
複数のネットワークノード10の各々は、ステーク識別番号601を備える。ステーク識別情報stid、601、公開鍵署名方式のステーク検証鍵pkstidおよびステーク署名鍵skstidを備える。
【0117】
ネットワーク100は、対応するステーク識別情報stid、601によって、それぞれのノード10のパーマネントノード識別情報602、pnidを認証するように構成される。パーマネントノード識別情報602、pnidは、公開鍵署名方式のパーマネント検証鍵pkpermとパーマネント署名鍵skpermを備える。
【0118】
ネットワーク100は、ブラインドノード識別情報bnid(i)を作成するために鍵シャッフルステップを実行するように構成される。
【0119】
鍵シャッフルステップは、入力として、ネットワーク100のすべてのノード10のすべてのパーマネントノード識別情報pnid、602を受け取り、パーマネントノード識別情報pnid、602と、それらに対応する数のブラインドノード識別情報610、bnidと、の間でリンク不可の1対1マッピングを行う。ブラインドノード識別情報610、bnidの各々は、公開鍵署名方式のブラインド検証鍵pkbnidとブラインド署名鍵skbnidとを備える。
【0120】
図6のノード識別情報の構造を有するネットワークは、別の鍵シャッフルステップとして、複数のブラインドノード識別情報610、bnidと複数のブラインドネットワーク識別情報620、bnetidとの間でリンク不可の1対1のマッピングを行う。複数のブラインドネットワーク識別情報620、bnetidのそれぞれは、ブラインドネットワーク検証鍵pkbnetidとブラインドネットワーク署名鍵skbnetidとを備える。いくつかの実施形態によれば、ブラインドネットワーク検証鍵pkbnetidおよびブラインドネットワーク署名鍵skbnetidは、例えば、公開鍵署名方式およびRSAのような暗号化方式の鍵である。これにより、ブラインドネットワーク検証鍵/署名鍵のペアを使用して、署名と暗号化を行い得る。
【0121】
鍵シャッフルステップを実行した後、すべてのブラインドネットワーク識別情報bnetidをゴシップグラフの頂点に割り当てて、各ノードが隣接ノードのbnetidを検索できるようにし得る。ブラインドネットワーク識別情報bnetidであるノードiが、ブラインドネットワーク識別情報bnetidであるゴシップ隣接ノードjを有するとき、ノードiは以下の暗号文を算出する。
【数1】
【0122】
そして、bnetidで署名し、署名された暗号文をチェーンに投稿し、次に、ノードjは隣接ノードの署名を検証し、暗号文を復号化して、隣接ノードのIPアドレスを回復する。IPはインターネットプロトコルアドレスを示す。
【0123】
ブラインドネットワーク識別情報を生成する1つの利点は、ブラインドノード識別情報に基づいてネットワークノードをシャードに割り当て得ることである。特定のシャードに割り当てられたブラインドノード識別情報のみをシャッフルすることで、シャードに割り当てられているパーマネントノード識別情報を知らなくても、そのシャードに割り当てられているノードのみのネットワーク識別情報を取得することができる。
【0124】
図7は、図1に示されたような本発明の一実施形態によるネットワークのネットワークノードのノード識別情報の構造700を示す。
【0125】
ノード識別情報の構造は、図6のノード識別情報の構造600の一部分に対応する。その構造は、ステーク識別情報stid、601、パーマネントノード識別情報602、pnidおよびブラインドノード識別情報bnid、610を備える。
【0126】
しかしながら、図6のノード識別情報の構造とは対照的に、図7のノード識別情報の構造は、別の鍵シャッフルステップとして、複数のパーマネントノード識別情報610、pnidと複数のブラインドネットワーク識別情報720、bnetidとの間でリンク不可の1対1のマッピングを行う。
【0127】
図8は、本発明の一実施形態による時間図、換言すれば、鍵シャッフルおよび開示するステップの時系列を示す。
【0128】
時間区分i-2に対応するステップ801において、ブラインドノード識別情報bnidは、パーマネントノード識別情報pnidを入力として使用して、鍵シャッフルプロトコルの実行を通じて生成される。
【0129】
ステップ802での時間区分i-1において、例えば、ランダムビーコンを使用して委員会のメンバーが選出されるここでは、ブラインドノード識別情報bnidがそれぞれ委員会に分割される。委員会のメンバーは、分散鍵生成(DKG)プロトコルを実行して、取引鍵を決定する。
【0130】
時間区分iに対応するステップ803において、委員会のメンバーは、ブラインドノード識別情報bnidを使用してコンセンサスプロトコルを実行する。
【0131】
時間区分i+1に対応するステップ804において、すべてのノードは、それらのパーマネントノード識別情報pnidとそれらのブラインド識別情報bnidとの間のリンクを開示する。時間区分iの間にbnidが蓄積した報酬または罰則は、対応するパーマネントノード識別情報pnidまたはステーク識別情報stidに適用可能である。
ブラインドノード識別情報を開示できないノードは、誤動作しているノードの一部であると見なされ、それに応じて罰則を科せられ得る。たとえば、前の時間区分の間に任意のbnid(i)によって取得された最大の罰則が適用され得る。
【0132】
いくつかの実施形態によれば、時間区分iで誤動作したノードのステークが完全に取り除かれたとき、そのパーマネントノード識別情報pnidはbnid(i+3)の鍵シャッフルの入力からのみ削除可能であるので、そのノードは時間区分i+2までコンセンサスプロトコルに参加し続ける可能性がある。ただし、時間区分i+2以降のいかなるコンセンサス活動からも除外される。
【0133】
本発明のいくつかの実施形態によれば、鍵シャッフルステップを実行するために複数のプロトコルが使用され得る。次の図7から図9において、本発明のいくつかの実施形態による好ましいプロトコルがより詳細に説明される。
【0134】
図9は、本発明の一実施形態による鍵シャッフルステップを実行する高いレベルでのプロトコルを示す。このプロトコルは暗号化ミックスネットワークを使用する。そのミックスネットワークは、一連のシャッフルを通じて構築され得る。ここで、検証/公開鍵のリストpk、...、pkの各シャッフルは、検証/公開鍵pk´、...、pk´の並べ替えられた順序で再ランダム化された新しいリストである。
【0135】
この実施形態によれば、ミックスサーバーまたは換言すればミキサーとして機能し、すべてのノード識別情報を順番にミキシングするm個のランダムノードが選択される。選択したミックスサーバーの少なくとも1つが正しいと期待できるように、mを十分に大きくすると、攻撃者はミキシング
プロセスを通じて識別情報を追跡できなくなる。
【0136】
より具体的には、図9の図示された例については、基礎となるネットワークは、複数のn個のネットワークノードを含むと想定されている。ここで、n個のネットワークノードはパーマネントノード識別情報pnid、...、pnidからなる。パーマネントノード識別情報pnid、...、pnidは、公開鍵/公開鍵署名方式のパーマネント検証鍵として下式で具体化される。
【数2】
ここで、gは群の元、特に楕円曲線群の元であり、sk、sk、...、skは対応する秘密鍵/署名鍵である。
【0137】
鍵シャッフルステップは、複数のパーマネントノード識別情報pnid、...、pnidによって、パーマネントノード識別情報のサブセットとして複数のミキサーM、M、...、Mを選択するステップを備える。複数のミキサーM、M、...、Mは、1からmまでの指定された順序で配置される。
【0138】
第1ミキサーM1は、入力リストとして、複数のパーマネントノード識別情報pnid1、...、pnidnのパーマネント検証鍵を受け取る。次に、秘密指数rを選択し、次式のように秘密指数r1を使用して入力リストの再ランダム化を実行する。
【数3】
【0139】
さらに、再ランダム化された入力リストの順列πを実行し、R=gr1を計算し、再ランダム化と順列が正しく計算されたことを証明するゼロ知識証明ZKP(R、π)を計算する。
【0140】
その後、再ランダム化と順列のステップが、他のすべてのミキサーM、...、Mによって実行される。ここで、後続の各ミキサーは、前のミキサーの出力リストを入力リストとして受け取る。さらに、各ミキサーは、ランダム化と順列が正しく実行されたことを示す、公的に検証可能なシャッフルの証明を計算する。この証明は、再ランダム化された鍵のリストと使用されたランダム性の約束とともにチェーン上で公開される。シャッフルの証明の健全性は、誤動作しているミキサーが受け入れ証明を計算できないことを保証する。
【0141】
指定された順序の最後のミキサーの出力リストは、複数のブラインドノード識別情報を確立する。この例では、最後のミキサーMは、ブラインドノード識別情報bnid、...、bnidを次式のとおり出力する。
【数4】
ここで、
【数5】
【0142】
さらに、第1ミキサーMはゼロ知識証明ZKP(R、π)を計算し、それを出力リストに追加する。
【0143】
複数のミキサーは、事前定義された最小数mのミキサーを含む。ミキサーの最小数mは、選択されたミキサーの少なくとも1つが正しいと期待できるように十分に大きくする。いくつかの実施形態によれば、20、50または100個のミキサーの最小数mを選択し得る。
【0144】
いくつかの実施形態によれば、さらなる鍵シャッフル/ミキシングステップは、入力として複数のブラインドノード識別情報を使用し得、したがって、前の時間区分でブラインドノードのサブセットとしての複数のミキサーとして計算された複数のブラインドノード識別情報により選択され得る。
【0145】
本発明のいくつかの実施形態では、ラウンドで進行する放送通信チャネルを使用し得るので、各参加者は、各ラウンドで入力を提供する機会を有する。すべてのラウンドの終了時に、すべての参加者はそのラウンド中に提供されたすべての入力を受け取る。
【0146】
いくつかの実施形態によれば、ブロックチェーンを通信チャネルとして使用し得る。いくつかの実施形態によれば、チャネルの各ラウンドは、ブロックメーカーの少なくとも1人が必ず正しくなるように、十分に長いファイナライズされたブロックの系列に対応付けられる。
【0147】
いくつかの実施形態によれば、図9に示される鍵シャッフルステップは、パーマネントノード識別情報とそれらの現在のブラインドノード識別情報との間のリンクの開示が必須である後続の識別情報開示ステップに関連付けられる。
【0148】
いくつかの実施形態によれば、識別情報開示ステップはしきい値復号化委員会を使用し得る。より具体的には、新しい時間区分においてユーザーが新しいブラインドノード識別情報を初めて使用するとき、プロトコルは、そのブラインドノード識別情報の一貫性の証明とともに、パーマネントノード識別情報のしきい値暗号も開示するように要求し得る。最後の時間区分において、委員会は、しきい値復号化方式に関連付けられた秘密鍵を単に開示し得る。ブラインドノード識別情報が期間区分の間に誤動作したときは、関連するパーマネントノード識別情報を回復し罰則を科すことが可能である。
【0149】
図10は、本発明の一実施形態による鍵シャッフルステップを実行する高いレベルでの別のプロトコルを示す。
【0150】
図10に示される鍵シャッフルプロトコルはブラインド署名に基づく。いくつかの実施形態によれば、Boldyrevaのブラインド署名は、Boldyreva A.(2003)、しきい値署名、マルチ署名、およびGap-Diffie-Hellman-Group署名方式に基づくブラインド署名、Desmedt Y.G. (eds)公開鍵暗号-PKC 2003、ベルリン、ハイデルベルクのシュプリンガー出版のComputer Science, vol 2567のPKC 2003講義ノート、に開示されたように使用し得る。
【0151】
Boldyrevaのブラインド署名とは、Boneh、D.、Lynn、B.およびSha-cham、H.によりJournal of Cryptology(2004)17:297、に記載されたa blind variant of BLS signature, https://doi.org/10.1007/s00145-004-0314-9.である。
【0152】
しかしながら、図10のプロトコルは、一般に、ブラインド署名プロトコルのトランスクリプトが与えられ、誰でも署名者の不正行為をチェックできる追加の特性を有する、任意のブラインド署名スキームに適用され得る。
【0153】
この実施形態の非常に高いレベルでのプロトコルによれば、すべてのノードは、新たに生成された公開鍵でブラインド署名された証明書を取得し、それがブラインドノード識別情報として使用される。
【0154】
鍵シャッフルステップの開始時に、信頼できるパーティ1010が証明書のブラインド署名者としてランダムに選択され、ブラインドノード識別情報bnidの現在のブラインド認証/ブラインド公開鍵bpkにより識別される。ブラインド署名者は、新しいBLS鍵ペアを生成し、そのbnidにおいて署名された公開鍵をチェーンに投稿する。
【0155】
複数のn個のノード1020は、公開鍵pk、...、pkを含むパーマネントノード識別情報を有する。最初のステップにおいて、複数のn個のノードは、新しい署名鍵ペア(pk´、sk´)を生成し、新たなブラインドノード識別情報bnid´となる検証鍵/公開鍵pk´を使用する。
【0156】
次に、メッセージとしてbnid´を使用して、ブラインドBLS署名プロトコルのオンチェーン実行を行う。これにより、パーマネントノード識別情報pnid´で署名することにより、ブラインド署名プロトコルの最初の移動β=H(bnid´)を認証する。
【0157】
ブラインド署名者1010は、すべての最初の動きが登録されたパーマネントノード識別情報pnidによって正しく署名されていること、および各pnidが最大で1回の最初の動きを認証することを検証する。複数の最初の動きを投稿したPNIDは罰則が科せられ、プロトコルから除外される。
【0158】
次に、ブラインド署名者1010は、すべての有効な要求に対してブラインド署名BSignを実行することで、それらの現在のbnidで署名して、それらをチェーンに投稿する。
【0159】
ブラインド署名者1010が、誤った応答を投稿するか、または有効な要求βに対して応答を投稿しないとの不正行為を行うと、ブラインド署名者1010には罰則が科せられ、ノードは新しいブラインド署名者でプロトコルを再開する。
【0160】
次に、すべてのノードは、γiの秘匿を解除するにより、ブラインドノード識別情報証明書certを計算し、チェーンに(bnid´;cert)を投稿する。
【0161】
以前にチェーンに投稿された有効な要求βの数よりも多くの有効なペア(bnid´;cert)がチェーンに投稿されると、ブラインド署名者1010には罰則が科せられ、プロトコルは新たなブラインド署名者で繰り返される。それ以外の場合は、有効なペアのbnid´が新たなブラインドノード識別情報として使用される。
【0162】
図11は、本発明の一実施形態による鍵シャッフルステップを実行する高いレベルでの別のプロトコルの図を示す。図11に示されるプロトコルは、例えば、Pointcheval-Sanders署名方式から導出できるように、属性を持つしきい値グループ署名方式を使用する。Pointcheval-Sanders署名方式は、例えば、David PointchevalおよびOlivier SandersのShort Randomizable Signatures、米国のサンフランシスコで2016年2月に開催されたRSAカンファレンスでのKazue SakoのThe Cryptographers’ Track、シュプリンガー出版のCT-RSA 2016, LNCS (9610), pp.111-126, 2016.に記載されている。
【0163】
グループ署名方式では、グループマネージャーがグループメンバーに資格情報を発行し、グループメンバーはこれらの資格情報を使用してメッセージに署名する。署名は、専用のオープニング機関以外の誰も、どのグループメンバーがメッセージに署名したかを知ることができない。
【0164】
しきい値グループ署名方式では、グループマネージャーと開始権限の役割は、発行委員会と開始委員会に分散される。これらのしきい値は、それぞれ、クレデンシャルを発行するか、特定の署名を作成した人を開示するために協力する必要がある。
【0165】
属性を有するしきい値グループ署名方式は、発行委員会が、発行された証明書を、グループメンバーがメッセージに署名するときに開示する場合としない場合がある属性に結合することを可能にする。
【0166】
図11は、属性を有するしきい値グループ署名から鍵シャッフルを構築する方法を示す。第1ステップ1101において、図の中央に示されているネットワークのすべてのノード1110は、それらのパーマネントノード識別情報をpnid=gskiとして生成する。
【0167】
次に、第2ステップ1102において、図の左側に示される発行委員会1120は、秘密鍵skと等しい属性を有するすべてのノードに秘密で証明書を発行する。これは、各ノードが属性skの証明書を取得することを意味するが、発行委員会1120は、その過程でskを学習しない。
【0168】
図の右側に示されている第3ステップ1103において、各ノード1110は、特殊な仮名π=H(時間区分)skiを公開する。ここで、Hはハッシュ関数であり、時間区分はブラインド識別情報がアクティブになる必要があるときの時間区分の系列番号である。そして、skにおける証明書を使用して、証明書に属性として埋め込まれているskの値について正しく計算された仮名πの署名とπ=H(時間区分)skiのゼロ知識証明を公開する。
【0169】
仮名πは秘密鍵skから一意に派生するが、パーマネントノード識別情報pnid=gskiのみを知っていて秘密鍵skを知らない人にとって、どの仮名がどのパーマネントノード識別情報に対応するかを判別することは暗号的に不可能であることに注意されたい。
【0170】
さらなるステップにおいて各ノード1110は、いくつかの実施形態によれば、仮名πをそのブラインドノード識別情報bnidとして直接使用するか、または新しい署名鍵ペアを生成し、公開検証鍵をそのブラインドノード識別情報bnidに設定し得、仮名πの基礎となる秘密鍵スキーを知っているゼロ知識証明とともにbnidを公開し得る。
【0171】
ここで図12を参照すると、例えば、図1のネットワーク100の本発明のいくつかの実施形態による1つのネットワークノード10のより詳細なブロック図が示す。ネットワークノード10は、コンピューティングノードを確立する。このコンピューティングノードは、コンピューティング機能を実行し得る。したがって、一般に、コンピューティングシステムまたはコンピュータとして具体化し得る。ネットワークノード10は、例えば、サーバーコンピューターである。ネットワークノード10は、コンセンサスプロトコル、特に、ブロックチェーンネットワークのプルーフオブステークコンセンサスプロトコルを実行するコンピュータ実装方法を実行するように構成され得る。ネットワークノード10は、他の多くの汎用的な目的または特定の目的のコンピューティングシステム環境または構成で動作可能であり得る。
【0172】
ネットワークノード10は、コンピュータシステムによって実行されるプログラムモジュールなどのコンピュータシステムで実行可能な命令の一般的な文脈で説明し得る。
一般に、プログラムモジュールは、特定のタスクを実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。ネットワークノード10は、汎用コンピューティングデバイスの形で示され得る。ネットワークノード10のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット15、システムメモリ20、およびシステムメモリ20を含む様々なシステムコンポーネントをプロセッサ15に結合するバス16を含み得る。ただし、これらに限定されるものではない。
【0173】
バス16は、1つ以上のいくつかのタイプのバスアーキテクチャのうちのいずれかを表し、メモリバスまたはメモリコントローラ、周辺バス、Accelerated Graphics Port、およびさまざまなバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含む。例として、これらに限定されるものではないが、そのようなアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびPeripheral Component Interconnect(PCI)が含まれる。
【0174】
ネットワークノード10は、通常、様々なコンピュータシステム可読媒体を含む。そのような媒体は、ネットワークノード10によってアクセス可能な任意の利用可能な媒体であり得、揮発性および不揮発性媒体、取り出し可能および取り出し不可媒体の両方を含む。
【0175】
システムメモリ20は、ランダムアクセスメモリ(RAM)21および/またはキャッシュメモリ22などの揮発性メモリの形態のコンピュータシステム可読媒体を含むことができる。ネットワークノード10は、他の取り外し可能/取り外し不可、揮発性/不揮発性コンピュータシステム記憶媒体をさらに含み得る。一例として、記憶システム23は、取り外し不可であり揮発性でない磁気媒体(図示せず、通常は「ハードドライブ」と呼ばれる)からの読み取りおよび書き込み用に提供可能である。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピーディスク」)からの読み取りおよび書き込み用の磁気ディスクドライブ、および取り外し可能であり不揮発性の光ディスクからの読み取りまたは書き込み用のCD-ROM、DVD-ROMおよびほかの光媒体のような光ディスクドライブを提供可能である。そのような場合、それぞれは、1つまたは複数のデータメディアインターフェースによりバス16に接続可能である。
【0176】
以下でさらに描写および説明されるように、メモリ20は、本発明のいくつかの実施形態の機能を実行するように構成されたプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのコンピュータプログラム製品を含み得る。
【0177】
プログラムモジュール31のセット(少なくとも1つ)を有するプログラム/ユーティリティ30は、これに限定されるものではないが、例として、オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータと同様に、メモリ20に格納され得る。オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータ、またはそれらのいくつかの組み合わせのそれぞれは、ネットワーク環境の実装を含み得る。プログラムモジュール31は、一般に、本明細書に記載される本発明のいくつかの実施形態の機能および/または方法論を実行する。プログラムモジュール31は、分散ネットワークにおいてコンセンサスプロトコルを実行するコンピュータ実装方法のうち特定の1つ以上のステップ、例えば、前述の方法1つ以上のステップを実行し得る。
【0178】
ネットワークノード10はまた、ディスプレイ18と同様に、キーボードまたはポインティングデバイスなどの1つ以上の外部デバイス17と通信し得る。そのような通信は、入力/出力(I/O)インターフェース19を介して実行可能である。さらに、ネットワークノード10は、ネットワークアダプタ41を介して、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、および/またはパブリックネットワーク(例えば、インターネット)などの1つ以上のネットワーク40と通信可能である。いくつかの実施形態によれば、ネットワーク40は、特に、複数のネットワークノード10、例えば、図1に示されるネットワーク100、を備える分散ネットワークであり得る。図示のように、ネットワークアダプタ41は、バス16を介してネットワークノード10の他のコンポーネントと通信する。また、図示されていないが、他のハードウェアおよび/またはソフトウェアコンポーネントがネットワークノード10と組み合わせて使用され得ることを理解されたい。
【0179】
図13は、本発明の実施形態によるゴシップグラフ1300を示す。ゴシップグラフは、分散ネットワークをモデル化し得、頂点1310およびエッジ1311備える。ゴシップグラフ1300は、3正則グラフとして具体化される。したがって、各頂点には3つの隣接ノードがある。例示的なゴシップグラフ1300は、1から8まで番号が付された8つの頂点を備える。ブラインドされたネットワーク識別情報bnetidは、グラフの頂点1から8までのそれぞれにランダムにマッピングされる。そのようなマッピングは、特に、鍵シャッフルステップの後に実行され得る。
【0180】
頂点1310間の情報は、ゴシッププロトコルにより拡散され得る。
【0181】
より具体的には、各頂点/ノードは、その隣接ノードのbnetidを検索できる。一例として、ブラインドネットワーク識別情報bnetidを持つ頂点3は、それぞれブラインドネットワーク識別情報bnetid、bnetid、およびbnetidを持つゴシップ隣接ノード2、4、および8を有する。
【0182】
頂点3と頂点2の間の通信の一例として、頂点3はそのネットワークアドレス(IPアドレス)を、頂点2のブラインドネットワーク識別情報bnetidのネットワーク暗号化鍵で暗号化し、暗号化されたネットワークアドレスにブラインドネットワーク識別情報bnetidのそれ自身のネットワーク署名鍵で署名し、その署名され暗号化されたネットワークアドレスを頂点2に提供し得る。
【0183】
図14は、本発明の一実施形態によるネットワーク、例えば、図1に示されたネットワーク100のネットワークノードのノード識別情報の構造1400を示す。
【0184】
ノード識別情報の構造は、図6のノード識別情報の構造400に部分的に対応し、ステーク識別情報stid、1401、パーマネントノード識別情報1402、pindおよびブラインドノード識別情報bnid、1410を備える。
【0185】
図4のノード識別情報の構造とは対照的に、図14のノード識別情報の構造は、さらなる鍵シャッフルステップとして、前の鍵シャッフルステップで生成された複数のブラインドノード識別情報bnid(i)と複数のさらなるブラインドノード識別情報bnid(i)との間でリンク不可の1対1マッピングを行う。換言すると、パーマネントノード識別情報からシャッフルを実行した第1鍵シャッフルステップの後、さらなる鍵シャッフルステップは、前の鍵シャッフルステップのブラインドノード識別情報を入力として使用する。
【0186】
本発明の態様は、システム、特にコンセンサスプロトコル、方法、および/またはコンピュータプログラム製品を実行するためのネットワークとして具体化され得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0187】
コンピュータ可読記憶媒体は、命令実行デバイスにより使用される命令を保持および記憶可能である有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、これらに限定されないが、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、または前述の任意の適切な組み合わせであり得る。ここで使用されるコンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波管または他の伝送媒体を通って伝播する電磁波(例えば、光ファイバーケーブルを通過する光パルス)、また配線をとおして送信される電気信号、などのそれ自体が一時的な信号であると解釈されるべきではない。
【0188】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスにダウンロード可能であり、または、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/または無線ネットワークのようなネットワークを介して、外部コンピュータまたは外部記憶デバイスにダウンロード可能である。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピューター、および/またはエッジサーバーで構成され得る。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するコンピュータ可読プログラム命令を転送する。
【0189】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはソースコードまたはオブジェクトのいずれかであり得る。これらのコードは、Smalltalk、C++などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されている。
【0190】
本発明のいくつかの態様は、本発明のいくつかの実施形態による、方法、ネットワーク、装置(システム)、およびコンピュータプログラム製品の、フローチャート図および/またはブロック図を参照して本明細書に記載されている。
【0191】
本発明の実施形態によるコンピュータ可読プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供され得る。これは、コンピュータまたは他のプログラム可能なデータ処理装置を介して実行される命令が、フローチャートおよび/または1つ以上のブロックからなるブロック図で指定された機能/動作を実装する手段を作成する機械を製造する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、および/または他のデバイスに特定の方法で機能するように指示可能なコンピュータ可読記憶媒体に記憶され得、それらの命令が格納されたコンピュータ可読記憶媒体は、フローチャートおよび/または1つ以上のブロックからなるブロック図で指定された機能/動作の態様を実施する命令を含む製造品を備える。
【0192】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置または他のデバイス上で一連の操作ステップを実行され得、コンピュータ、他のプログラム可能装置、または他の装置で実行される一連の命令が、フローチャートおよび/または1つ以上のブロックからなるブロック図で指定された機能/動作を実装するように作成される。
【0193】
図に示されたフローチャートおよびブロック図は、本発明の様々な実施形態によるネットワーク、システム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これについて、フローチャートまたはブロック図の各々のブロックは、モジュール、セグメント、または命令の一部を表し得、これらは、特定の論理機能を実装するための1つ以上の実行可能命令を備える。いくつかの代替の実装においては、ブロックに示されている機能が、図に示されている順序とは異なってもよい。例えば、連続して表示される2つのブロックは、実際には実質的に同時に実行され得る。また、関連する機能に応じて、それらのブロックは逆の順序で実行されてもよい。
【0194】
次に、本発明のいくつかの実施形態によるさらなる暗号化の詳細、特に、図9から図11を参照して上述の例示的な鍵シャッフルプロトコルのさらなる暗号化の詳細を開示する。
【0195】
最初に、いくつかの基本的な定義と構造を再掲する。
【0196】
Gを素数qの乗法群とし、ここで、qはビット長kの素数(たとえばk=256)であり、gを群Gの生成元とする。
【0197】
しきい値暗号化により、1組でn人の参加者が共通の暗号化公開鍵pk=gに同意できるので、実際の復号化キーXを知ることはできないが、n人の参加者のうちのt人以上のサブセットは暗号文を共同で復号化できる。
【0198】
鍵は、特に、例えば、Rosario Gennaro、Stanislaw Jarecki、Hugo Krawczyk、Tal Rabin: Secure Distributed Key Generation for Discrete-Log Based Cryptosystems. J. Cryptology 20(1): 51-83, 2007.に開示されているような分散鍵生成手順を使用して生成し得る。この手順の最後に、各参加者i=1、...、nは秘密分散si=p(i) mod qを取得する。ここで、p(x)=x+aX+...+at-1t-1は、ランダム係数x、a、...、at-1の多項式である。すべての参加者は、公開鍵pk=gと値B=g1、...、Bt-1=gt-1を取得する。
【0199】
メッセージm∈Gを暗号化するには、Zからランダムな値rを選択し、C=(g、X・m))を返す。
【0200】
暗号文C=(C、C)を複合化するためには、参加者iは、R=C siを計算し、ゼロ知識証明を作成し、
【数6】
Riとゼロ知識証明を公開する。有効な証明を含む少なくともt個の値が公開されるとすぐに、すべてが計算できる。
【数7】
ここで、
【数8】
そして出力は、
【数9】
【0201】
以下に、図9に示されるミキサーに基づくプロトコルの詳細ないくつかの実施形態が与えられる。ミキサーは、ミックスサーバーと称され得る。
【0202】
本発明のいくつかの実施形態によるプロトコルは、特に、鍵シャッフルの正確さを証明する非対話型ゼロ知識証明システムを使用し得る。各々のミキサーMτは、前のミキサーから入力として(Rτ-1、pkτ-1、1、...、pkτ―1、N)を受け取り、出力鍵が入力のシャッフルであることを証明する証拠とともに(Rτ:=R τ-1、pkτ、1、...、pkτ、N)を返す。Mτより正確には、ミキサーは次の関係の証明を提供する。
【数10】
ここで、[N]={1、...、N}およびΣは、[N]上のすべての順列の1組である。この関係の証明生成アルゴリズムをと称し、検証アルゴリズムをと称する。この関係の証明生成アルゴリズムをPROVERShと称し、検証アルゴリズムをVERIFIERShと称する。
【0203】
セットアップ。まず、すべてのノードは、シャッフルRShの証明に必要なセットアップパラメーター(共通の参照文字列やハッシュ関数など)に同意する。パーマネントノード識別情報が公開鍵pk、...、pkによって与えられ、pk=gskiとする。その公開鍵pkに関連付けられている各ノードには、次の式で計算されるcert=(h、c、s)の形式の自己署名証明書が含まれる。
【数11】
【0204】
証明書は、次式でチェックすることにより検証される。
【数12】
【0205】
いくつかの実施形態によれば、ノードは、ノードのプールからランダムに選択されたミキサーM、...、Mの選択に同意する。ミキサーの数は、選択したすべてのミキサーが破損する可能性を無視され得る数にする必要がある。ミキサーは、一般的なランダムビーコンの出力に基づいて選択可能であり、好ましい実施形態によれば、特定のブロック高さのブロック提案者は、ミキサーとして機能するよう指定可能である
【0206】
ノードはまた、オープニング委員会を形成するコンセンサスプロトコルのプロトコル参加者のサブセットに同意する。オープニング委員会のメンバーは、分散鍵生成プロトコルを実行して、t-out-of-n:nしきい値公開鍵pk=gskeを共同で生成し、各メンバーが、対応する秘密鍵skの秘密を共有する。ここで、nおよびtは、n個のメンバーのうちのt個以上が破損する可能性が無視できる程度であり、必要なときにn個のメンバーのうちのtが公開プロトコルに参加できることを安全に想定できるよう選択される。
【0207】
ミキシング。各ミックスサーバー/ミキサーは、前のミックスサーバーから受け取った公開鍵のリストを再ランダム化し、ランダムに並べ替える。
【0208】
より具体的には、第1ミックスサーバーM1の入力は長期ノード識別情報(pk、...、pk)のリストであり、τ番目のミックスサーバーの入力はMτ-1により生成される(Rτ-1、pkτ―1,1、...、pkτ-1,N)を含有する。
←gおよびpk0,i←pkとすると、サーバーMτは次のように進む。
【数13】
【0209】
{1、...、N}上でもランダム順列πτを選択して、
【数14】
とする。
【0210】
検証。ミキシングの各ラウンドの後、ブロック提案者および/または公証人は、
【数15】
をチェックすることにより、ミックスサーバーの出力
【数16】
および
【数17】
を検証する。
【0211】
これらのチェックのいずれかが失敗すると、このミキシングラウンドは無効と見なされ得る。この時点で、いくつかの実施形態によれば、このミキサーの出力を無視し、(τ+1)番目のミキサーを、(τ-1)番目のミキサーの出力(Rτ-1、pkτ―1,1、...、pkτ-1,N)で進行させ得る。また、いくつかの他の実施形態によれば、有効なミキシングラウンドが行われるまで、Mτの役割を担う新しいプロトコル参加者を選択可能である。
【0212】
最終出力。最終ミキシングサーバーの出力を、(R、h、c、s、Πsh,m、pkm,1、...、pkm,N)とする。そして、g´←Rおよび(pk´、...、pk´)←(pkm,1、...pkm,N)のとき、各参加者の元の公開鍵はpk=gskiとなり、最終出力には、公開鍵pk´=g´skiが1つだけ含まれる。
【0213】
署名。ノードは、pk´を新たないブラインドノード識別情報(BNID)として使用し、gではなくg´を元として使用してSchnorr署名を作成し得る。
【0214】
ただし、プロトコル参加者が新しいBNIDを使用して署名を初めて作成するときは、いくつかの実施形態によれば、元の鍵pkのpkの下に検証可能な暗号を追加し、pok´と同じ秘密鍵、すなわち、
【数18】
を持っていることを証明する。
【0215】
検証。公開鍵pk´下の署名は、元g´を使用して通常のSchnorr署名として検証し得る。新たな鍵pk´下でのプロトコル参加者の最初の署名において、次式をチェックすることで検証可能な暗号化が有効であるいくつかの実施形態によればさらにチェックし得る。
【数19】
【0216】
開示。プロトコル参加者が自発的に古い鍵pk新たな鍵pk´との間のリンクを開示したい場合、両方が次式の同じ秘密鍵に基づいているという証拠を作成し得る。
【数20】
【0217】
この証明は、次式をチェックすることで検証できる。
【数21】
【0218】
本発明の現在好ましい実施形態が示され、説明されているが、本発明はそれに限定されるものではなく、他の方法で以下の特許請求の範囲内で様々に具体化および実施され得ることが明確に理解されるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14