(57)【要約】      （修正有）【課題】検証者候補の当選がノードの処理能力に依存することなく公平であり、かつ検証者候補の不正制御や転送遮断攻撃を防ぐことができる、ブロックチェーンを用いた合意形成システムを提供する。【解決手段】ブロックチェーンの検証者候補のノードは、新規ブロックに適用する自ノードの暗号化ＩＤを、自ノードに固有のＩＤに秘密鍵を適用することで生成する。さらに、他のノードと共通の演算式に、自ノードの暗号化ＩＤ及び前記新規ブロックを追加するブロックチェーンに既に含まれるブロックのうちの予め定められたブロックに格納されている暗号化ＩＤを適用し、自ノードのＨａｓｈ値を求め、自ノードのＨａｓｈ値を用いて自ノードが当選したか否かを判定する。【選択図】図３
2019220753.tif 000002
【特許請求の範囲】
【請求項１】
新規ブロックに適用する自ノードの暗号化ＩＤを、自ノードに固有のＩＤに秘密鍵を適用することで生成し、
他のノードと共通の演算式に、自ノードの暗号化ＩＤ及び前記新規ブロックを追加するブロックチェーンに既に含まれるブロックのうちの予め定められたブロックに格納されている暗号化ＩＤを適用し、自ノードのＨａｓｈ値を求め、
自ノードのＨａｓｈ値を用いて自ノードが当選したか否かを判定する、
ノード。
【請求項２】
前記ノードは、
自ノードが当選した場合、自ノードの暗号化ＩＤを格納した新規ブロックを前記他のノードに配信し、
複数の新規ブロックを受信し、複数のノードに共通の式に、各新規ブロックに格納されている暗号化ＩＤを適用し、各新規ブロックに格納されている暗号化ＩＤのなかから１つを選択する、
請求項１に記載のノード。
【請求項３】
前記ノードは、
受信した新規ブロックに格納されている暗号化ＩＤについて、対応する公開鍵を用いて検証し、
検証した暗号化ＩＤに問題がなければ当該新規ブロックを有効として、ブロックチェーンに追加する、
請求項２に記載のノード。
【請求項４】
請求項１から３のいずれかに記載の複数のノードがピア・ツー・ピア・ネットワークで接続され、前記ブロックチェーンを前記複数のノードがそれぞれ生成し保持する、合意形成システム。
【請求項５】
ノードが、
新規ブロックに適用する自ノードの暗号化ＩＤを、自ノードに固有のＩＤに秘密鍵を適用することで生成し、
他のノードと共通の演算式に、自ノードの暗号化ＩＤ及び前記新規ブロックを追加するブロックチェーンに既に含まれるブロックのうちの予め定められたブロックに格納されている暗号化ＩＤを適用し、自ノードのＨａｓｈ値を求め、
自ノードのＨａｓｈ値を用いて自ノードが当選したか否かを判定する、
当選者決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ブロックチェーンを用いた分散合意形成技術に関し、特にブロックチェーンの検証者候補のノードを決定する当選者決定方法に関する。
【背景技術】
【０００２】
取引データ（以下、トランザクションデータ）を記録する分散型台帳システムにおいて、台帳の更新時にトランザクションデータの内容の正当性について利用者間で合意を取る、ブロックチェーンを用いた分散合意形成技術が提案されている。
【０００３】
台帳システムは、集中型と分散型に分類できる。
集中型の場合、利用者の識別子（Ｉｄｅｎｔｉｆｉｅｒ、以下、ＩＤ）の一意性、ＩＤに対応するＩｄｅｎｔｉｔｙの実在性を保証する機能（以下、ＩｄＰ）と、利用者間のトランザクションデータの正当性を検証する機能と、それらトランザクションデータを蓄積する機能を１箇所（集中サーバ）に配備する。全利用者は集中サーバのＩｄＰ機能によりＩＤを割り当てられ、利用者間で取引の内容を合意すると、合意したトランザクションデータを集中サーバに登録する。集中サーバはトランザクションデータの正当性を確認すると、ディジタル署名を付与して、集中サーバ内に蓄積する。利用者が過去のトランザクションデータを閲覧したい場合は、集中サーバを参照し、集中サーバの署名によりトランザクションデータの内容が正当と判断する。ところが、集中サーバの信頼性が不確実な場合、トランザクションデータの正当性や、同一データを他の利用者も参照していることの確認（一貫性の確認）ができない問題がある。
【０００４】
それら問題を解決する、分散型台帳システムが提案されている。以下に、Ｂｉｔｃｏｉｎの場合の実現方法を説明する。Ｂｉｔｃｏｉｎでは、集中サーバを設置せず、上記３機能を各利用者のノードに配備する。すなわち各利用者のノードは自分で公開鍵と秘密鍵のペアを生成し、秘密鍵を各利用者のノードが保持する。利用者のノード間で取引、例えば電子マネーの支払いが発生すると、当該取引のトランザクションデータを、全利用者のノードに転送し、全利用者のノードが全取引のデータ（台帳）を蓄積する。
【０００５】
各利用者のノードは、トランザクションデータを受信すると、当該データの内容が正当かどうか、判定する。例えば、過去に同一な電子マネーの支払い（２重払い）がないことを、後述するメインチェーン内のトランザクションデータおよび、チェーンに接続せずに保持しているトランザクションデータと突合して確認する。
【０００６】
各ノードは、正当と判断したトランザクションをまとめて、ブロックを構成する。図１に、ブロックの構成を示す（図１ではトランザクションをＴｘとして示している）。当該検証者が受信し検証済みの１つ前のブロック（メインチェーンの最上位のブロック）のＨａｓｈ値（図１のＰｒｅｖ  Ｈａｓｈ）を付与し、当該一つ前のブロックに含まれる全トランザクションについても当該検証者が正当性を検証している、という証跡とする。図のＮｏｎｃｅはＰｏＷ（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ）で用いる情報であるが、詳細は後述する。次に、利用者のノードの中から無作為に検証者を決定する。決定する方法は後述するＰｏＷが使用されている。なおＰｏＷの代替としてＰｏＳ（Ｐｒｏｏｆ  ｏｆ  Ｓｔａｋｅ）が提案されている。
【０００７】
検証者のノードは、当該ブロックを、他の利用者のノードに転送する。他の利用者のノードは当該ブロックを受信すると、再度当該ブロック内のトランザクションの検証を行う。各トランザクションが正当であれば、当該ブロックのＨａｓｈ値が示すブロックに続く最上位ブロックとして保持する（以下、チェイニング）。また即時に、次のブロックを作成し、条件を満たすＮｏｎｃｅの探索を開始する（Ｎｏｎｃｅ探索の詳細は後述する）。
【０００８】
ネットワーク内の転送遅延などの影響で、最上位ブロックの更新が伝わらず、古いブロックにチェイニングするブロックが遅れて到着する場合がありうる。その場合、各ノードは、チェーンを分岐し、遅れて到達したブロックを、セカンダリチェーン、分岐前のチェーンをメインチェーンとして保持する。検証者のノードはブロックをメインチェーンにチェイニングするため、多くの利用者がメインチェーンと認識した方のチェーンが長くなる。チェイニングされたブロックがメインチェーンに属する場合、そのブロックから最上位ブロックまでのブロックの繋がる数（ブロックの深さ）が大きくなるほど、当該ブロックの正当性と一貫性が、より多くの検証者に保証されたと考えることが出来る。Ｂｉｔｃｏｉｎでは、利用者間での合意が形成され、以降くつがえる可能性が低い安全な深さ（安全段数）として、深さ６を推奨している。
【０００９】
なお、複数の利用者が結託し（以下、結託グループ）結託グループ内の利用者が連続して検証者に選ばれることに成功すると、過去に承認済みの支払いを以下に示す手順により無効にすることが出来る。
【００１０】
結託グループ内の利用者の一人が、被害者に電子マネーを送金するトランザクション（以下正規トランザクション）を作成し被害者及び他の利用者に転送する。また、被害者に電子マネーを送金する前の時刻で、当該電子マネーを結託グループの別の利用者に送金するトランザクション（不正トランザクション）を作成する。次いで、当該トランザクションを含むブロックを作成し、前述の正規トランザクションを含むブロックより古いブロックにチェイニングし、チェーンを分岐する（正規であるメインチェーンと、不正なセカンダリチェーン）。ただし、当該ブロックは結託グループ以外には転送しない。なお、結託グループ内でブロックを転送する手段は任意のものを使用出来る。さらにセカンダリチェーンに続くブロックを作成する。こちらも結託グループ以外には転送しない。
【００１１】
前述の生起ブロックを含むブロックの深さが十分深くなり、被害者が、当該正規トランザクションが広く承認されたと判断し、電子マネーの対価を結託グループに渡すと、結託グループは上記不正チェーンを構成するブロックを他の全利用者のノードに転送する。各利用者のノードは、不正チェーンを構成するブロック内のトランザクションを検証するが、各トランザクション（前述の不正トランザクションを含む）は正当（過去に同一電子マネーの支出はない）なため、前述のメインチェーンよりセカンダリチェーンの長さの方が長くなり、メインとセカンダリの立場が逆転し、前述の正規トランザクションは無効となる（支払いの不正取り消し）。
【００１２】
ただし、「ブロックの深さが十分深い」と判断する深さ（安全段数）を長くすることで、等比級数的に、上記「支払いの不正取り消し」が成功する確率を低くすることができる。また、ネットワークの障害により、ある地域の利用者が他の利用者が接続するネットワーク（以下、インターネットとして記述する）から長時間孤立し、その後再接続した場合、以下に示す問題が発生する。
【００１３】
第１に、孤立後、孤立したネットワーク内のメインチェーンが安全段数以上伸長し当該ブロックに含まれるトランザクションが確定したとみなされた後で、インターネットに再接続すると、確定したトランザクションが一旦不確定となってしまう。第２に、当該ネットワークがインターネットと孤立中に、双方のネットワークと接続する手段がある利用者のノードは、本来であればブロックを双方のネットワーク間で転送する必要がある。ところが、不正にブロックの転送を遮断し、代わりに同一電子マネーを異なる利用者向けに使用するトランザクションをそれぞれのネットワークに送信することで、不正な２重使用を実現できてしまう。
【００１４】
このため、利用者のノードは、信頼する他の利用者や主要なＷｅｂサーバなどとのＩＰ接続確認などの手段により、インターネットからの孤立を監視し、孤立中はトランザクションを生成しない（電子マネーの支払いを受け付けない）必要がある。
【００１５】
利用者の中から無作為に検証者を決定する技術に、ｐｒｏｏｆ  ｏｆ  ｗｏｒｋｓ（以下、ＰｏＷと称する。）（例えば、非特許文献１及び２参照。）とｐｒｏｏｆ  ｏｆ  ｓｔａｋｅ（以下、ＰｏＳと称する。）（例えば、非特許文献３参照。）がある。何れも検証者になると、報酬に電子マネーを与えることで、利用者が検証者になろうとする動機としている。ただし、ブロック生成毎に、検証者が無作為に選ばれるようにする仕組みに差分がある。
【００１６】
ＰｏＷはＢｉｔｃｏｉｎで使用されている技術である。ＰｏＷでは、検証者になろうとする利用者のノードは、トランザクションをまとめてブロックを構成すると、当該ブロックにＮｏｎｃｅと呼ばれる一定の長さの任意のｂｉｔ列を結合してＨａｓｈ計算を行う。Ｈａｓｈ結果が予め設定されている上限値（ｄｉｆｆｉｃｕｌｔｙ−ｔａｒｇｅｔ）以下となるＮｏｎｃｅを最初に発見（マイニング）した利用者のノードが検証者となる。検証者の上限値は平均検証時間間隔が１０分になるように調整されている。当該ブロックを転送された他の利用者のノードは、Ｎｏｎｃｅを含むブロックのＨａｓｈ値を計算しｄｉｆｆｉｃｕｌｔｙ−ｔａｒｇｅｔ以下であることを確認できれば、当該ブロックの検証者のノードが無作為に決定されたと判断することができる。各利用者のノードは、正当なブロックを受信すると、当該ブロック受信までに受信したトランザクションを対象として、マイニングを開始する。
【００１７】
現時点では、条件に合うＮｏｎｃｅを逆計算により導出する方法は知られておらず、Ｈａｓｈが取りうる値を一つずつ変化させて、条件にあう結果になるか計算する必要がある。すなわち、使用する計算機の性能に比例して検証者となれる確率が増大する。なお、通常のトランザクションは、取引物の送り元と送り先の両方が必要である。ただし、検証者になると特別に、送り元が存在しない（ブランクな）一定量の電子マネーを検証者自身に支払うトランザクション（以下、コインベーストランザクション）を当該ブロックに含める事が可能になる（新しいマネーが発生することになる）。すなわち、当該コインベーストランザクションが、検証者になったことに対する報酬である。本技術には以下に示す問題がある。
【００１８】
ＰｏＷにおける問題１：公平性の逸脱
ＰｏＷは、各利用者の利用可能な計算機リソースがほぼ同一であれば、各利用者が検証者になれる確率もほぼ同一となる。したがって、計算量に基づく公平性が保証された「くじ」と言える。しかしながら、検証者になれる確率が、当該利用者のもつ計算機リソースの量に比例するため、資金に余裕のある一部の利用者が計算機リソースに投資し、結果、公平性が損なわれる問題がある。
【００１９】
ＰｏＷにおける問題２：処理量
ＰｏＷは、検証者になるためには条件を満たすＮｏｎｃｅを発見する必要があるが、膨大な量の計算が必要であり、一般ユーザ向けの安価なスマートフォンやＰＣは、単独では検証者になることが困難である。また、計算のために膨大な量の電力の消費が必要であり、電力料金によっては報酬を上回る可能性がある。
【００２０】
ＰｏＷにおける問題２に示す処理量の問題を解決することを目的とした技術に、ＰｏＳがある。ＰｏＳでは、電子マネーを多く持つ利用者は不正をしない、と仮定し、保有する電子マネーの量に基づく公平な「くじ」の実現をねらっている。ＰｏＳでは各利用者のノードは１秒毎に以下の計算（以下、富くじ）を行い、各利用者のＩＤが以下の式（１）を満たす場合（以下、富くじに当選）、検証者となる資格を得る（検証者候補）。
（数１）
Ｈａｓｈ［前のブロックのＨａｓｈ値＋自分のＩＤ＋ＴＳ］＜Ｓｔａｋｅ／調整係数
…式（１）
【００２１】
なお左辺はＨａｓｈ長をＬとした時に、２＾Ｌで除して０〜１（ｄｏｕｂｌｅ）の範囲に正規化されているものとする。ＴＳ（タイム  スタンプ）は上記富くじを引く時刻（１秒単位）、Ｓｔａｋｅは自分（当該ＩＤ）に紐づく電子マネーの総額である。調整係数は、当選確率を調整するためのパラメータである。
【００２２】
ＴＳがＨａｓｈの入力にあるのは、１回の富くじで当選者が出ない場合、当選者が現れるまで再度富くじを引くためである。ここで、「＋」はｂｉｔ列の結合を意味する。あるデータのＨａｓｈ計算を行うと、その結果は当該データと相関のない値を取り、逆計算は困難である。よって式（１）のＨａｓｈの入力値（前のブロックのＨａｓｈ、自分のＩＤ、ＴＳ）の全てが恣意的に選択出来ない場合、当該ブロックの検証者候補が無作為に決定されたと判断することができる。
【００２３】
ＰｏＳでは利用者がもつＩＤは一人につき１つであり、トランザクション中に、送金後の送信元ＩＤの持つ電子マネーの量Ｓｔａｋｅが記載される。富くじに当たった検証者候補は、当該ブロックに報酬となるコインベーストランザクションを追加し、当該ブロックを全利用者に転送する。各利用者のノードは、受信したブロックについて、式（１）を計算し、式（１）を満たし、かつ、最初に当該利用者に到達したブロックを有効とする。すなわち、当該ブロックを作成した検証者候補が検証者となる。なお、利用者自身が自分のＩＤを作れるが、ＩＤ生成直後はＳｔａｋｅが０なため、ＩＤの生成により不正に当選することは出来ない。以前にトランザクションを生成していないＩＤを除外する方法もある。
本ＰｏＳ技術には以下に示す問題がある。
【００２４】
ＰｏＳにおける問題１：検証者当選確率の不正制御
ＰｏＳでは、検証者のノードは、受信したトランザクションの中で、どれをブロックに加えるか選ぶことが出来る。ｎ個のトランザクションについて、ブロックに加えるか除くか制御できる場合、当該ブロックのＨａｓｈ値を２＾ｎ個の中から選択することができてしまう。また新たなトランザクションを生成し、Ｈａｓｈ値を変更することもできる。すなわち、今回当選した検証者が、結託者グループのメンバーであり、他の結託者のＩＤを知っている場合、他の結託者が次のブロックの富くじに当たる確率を制御できることになる。このため、結託者グループの誰かが運良く当選すると、当該グループの誰かが引き続く複数のブロックの検証者になれる確率を高くできる。ＰｏＳではお金持ちは不正をしない、と仮定しているので、連続してＳｔａｋｅが少ない検証者が当選している場合、不正があったと判断することが出来るが、どの程度有効に攻撃を検出できるか不明確である。また検証者が公正に富くじに当選しているにもかかわらず、不正があったと判断される可能性もある。
【００２５】
ＰｏＳにおける問題２：転送遮断攻撃に対する安全性
ブロックチェーン技術では、ブロックは、利用者間で転送されて、全利用者に行き渡る。各利用者のノードは自分がメインチェーンの最上位と認めたブロックを、他の多くの利用者もメインチェーンの最上位と認めたほうが都合が良い（メインチェーン内で承認されれば、報酬を使用できるようになる）。このため、通常は、ブロックの転送を遮断する動機はない。ところが、ＰｏＳの式（１）の計算は、検証者候補以外でも実施することができる。このため、前のブロックを転送する利用者のノードは、転送先の利用者が当選するかどうか、転送前に評価することが出来るので、当該利用者へは当該ブロックを転送しないＤｏＳ攻撃が可能である。
【００２６】
ＰｏＳにおける問題３：公平性の逸脱
本ＰｏＳ技術では、保持する電子マネーが多いと、プログラムを起動しておくだけで、検証者に当選し、報酬を得ることができる。また、お金持ちは不正をしない、との仮説に基づいているため、お金持ちであれば不正に成功する確率が高いと言うことも出来る。
【先行技術文献】
【非特許文献】
【００２７】
【非特許文献１】Ｎａｋａｍｏｔｏ，  Ｓａｔｏｓｈｉ．  “Ｂｉｔｃｏｉｎ：  Ａ  ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｅｌｅｃｔｒｏｎｉｃ  ｃａｓｈ  ｓｙｓｔｅｍ．”  （２００８）：  ２８．
【非特許文献２】Ａｎｄｒｅａｓ  Ｍ．Ａｎｔｏｎｏｐｏｕｌｏｓ，  “Ｍａｓｔｅｒｉｎｇ  Ｂｉｔｃｏｉｎ：  ｕｎｌｏｃｋｉｎｇ  ｄｉｇｉｔａｌ  ｃｒｙｐｔｏｃｕｒｒｅｎｃｉｅｓ．”，Ｏ’Ｒｅｉｌｌｙ  Ｍｅｄｉａ，  Ｉｎｃ．，  ２０１４．
【非特許文献３】ＢｉｔＦｕｒｙ  Ｇｒｏｕｐ，  “Ｐｒｏｏｆ  ｏｆ  Ｓｔａｋｅ  ｖｓ  Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ，”  ｈｔｔｐ：／／ｂｉｔｆｕｒｙ．ｃｏｍ／ｗｈｉｔｅ−ｐａｐｅｒｓ−ｒｅｓｅａｒｃｈ／ｐａｇｅ：２，  Ｓｅｐｔ．  １３，  ２０１５．
【発明の概要】
【発明が解決しようとする課題】
【００２８】
本開示は、ＰｏＷにおける公平性の逸脱及び処理量、並びにＰｏＳにおける検証者当選確率の不正制御、転送遮断攻撃に対する安全性及び公平性の逸脱の問題を解決することを目的とする。すなわち、本開示は、検証者候補の当選がノードの処理能力に依存することなく公平であり、かつ検証者候補の不正制御や転送遮断攻撃を防ぐことを目的とする。
【課題を解決するための手段】
【００２９】
本開示のノードは、
自新規ブロックに適用する自ノードの暗号化ＩＤを、自ノードに固有のＩＤに秘密鍵を適用することで生成し、
他のノードと共通の演算式に、自ノードの暗号化ＩＤ及び前記新規ブロックを追加するブロックチェーンに既に含まれるブロックのうちの予め定められたブロックに格納されている暗号化ＩＤを適用し、自ノードのＨａｓｈ値を求め、
自ノードのＨａｓｈ値を用いて自ノードが当選したか否かを判定する。
【００３０】
本開示の当選者決定方法は、
ノードが、
新規ブロックに適用する自ノードの暗号化ＩＤを、自ノードに固有のＩＤに秘密鍵を適用することで生成し、
他のノードと共通の演算式に、自ノードの暗号化ＩＤ及び前記新規ブロックを追加するブロックチェーンに既に含まれるブロックのうちの予め定められたブロックに格納されている暗号化ＩＤを適用し、自ノードのＨａｓｈ値を求め、
自ノードのＨａｓｈ値を用いて自ノードが当選したか否かを判定する。
【発明の効果】
【００３１】
本開示によれば、検証者候補の当選がノードの処理能力に依存することなく公平であり、かつ検証者候補の不正制御や転送遮断攻撃を防ぐことができる。
【図面の簡単な説明】
【００３２】
【図１】ブロックの構成の一例。
【図２】本開示に係るシステム構成の一例。
【図３】検証者候補の決定処理の一例を示すフローチャート。
【図４】検証者の決定処理の一例を示すフローチャート。
【図５】本開示におけるおみくじと抽選の例。
【図６】結託者による次回当選の予見を防ぐために必要なＮの値の解析例。
【図７】Ｎ＝４の場合に次回当選の予見が実現する確率の解析例。
【図８】ｐと平均連続当選間隔（年）の関係の解析例。
【発明を実施するための形態】
【００３３】
以下、本開示の実施形態について、図面を参照しながら詳細に説明する。なお、本開示は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本開示は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００３４】
ＰｏＷとＰｏＳの課題を同時に解決するためには、くじの結果を、くじを引く利用者のノードもそれ以外の利用者のノードも制御できず、また予見もできない必要がある。そのためには、各入力（入力１〜入力ｍ）は、以下を満たせば良い。
【００３５】
（入力の条件）
入力条件１：各入力は、ブロック毎に、異なる値を取る。
入力条件２：どの入力の生成者にも、その値を操作できない。
入力条件３：くじを引く当事者のノード以外はくじを実施出来ない。
入力条件４：くじの結果は当該ブロックを生成する時刻の前に予見できない。
入力条件５：入力の生成者が公正に入力を生成したことを、他の利用者のノードが検証できる。
【００３６】
そこで、本開示（以下、Ｐｒｏｏｆ  ｏｆ  ｌｕｃｋｙ  ＩＤ、ＰｏＬ）では、ディジタル署名の値は本人以外には導出できないことを利用し、複数のディジタル署名を入力としたくじ（以下「おみくじ」）を使用することで、誰であっても、結託していても、当選確率を制御できず、予見もできないくじを実現する。ＰｏＬのくじは、「おみくじ」と「抽選」の２段階で構成する。詳細を以下に示す。
【００３７】
図２に、本開示に係るシステム構成の一例を示す。本開示に係るシステムは、複数のノード９１がＰ２Ｐ（ｐｅｅｒ−ｔｏ−ｐｅｅｒ）ネットワークで接続されている。ノード９１は、コンピュータであり、例えば、処理部１１、メモリ１２、及び送受信部１３を備える。各ノード９１は、トランザクションデータの記録されたブロックチェーンを受信すると、ブロックチェーンのデータが正当かどうかを判定する。この際に、本開示に係るシステムでは、複数のノード９１のうちのＮ台が検証者候補として当選し、検証者候補のＮ台のうちの１台のノードが検証者として選択される。
【００３８】
本開示は、検証者候補の当選と検証者の選択において、各利用者に固有のＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）を用いる。このように、本開示では、第一に、Ｉｄｅｎｔｉｔｙの実在性を保証するため、各利用者に、各利用者に固有のＩＤと公開鍵を供給する。なお、公開鍵をＩＤとして用いてもよい。本開示は、当該Ｉｄｅｎｔｉｔｙに対応する唯一のＩｄｅｎｔｉｆｉｅｒと公開鍵を各ノード９１に供給することで、各利用者のＩｄｅｎｔｉｔｙを確認可能にする。
【００３９】
本開示では、ＩＤを単位として、検証者を公平に決定する。このため、公平性の根拠を保証できるＩＤの供給方式が必要となる。まずは、第１の方式は、ノード自身による供給である。Ｉｄｅｎｔｉｆｉｅｒ（ＩＤ）は利用自身が生成し、年間の取引額が一定額以上など、検証者となれるＩＤの基準を決めておく。たとえば、コミュニティへの寄与量に基づく公平性が必要な場合などに適している。
【００４０】
第２の方式は、ＩｄＰによる供給である。既存のＩｄｅｎｔｉｆｉｅｒ  Ｐｒｏｖｉｄｅｒ  （ＩｄＰ）の機能を用いて、ノードのＩｄｅｎｔｉｔｙに１：１で対応するＩｄｅｎｔｉｆｉｅｒ（ＩＤ）を供給する。ＩｄＰは、ＩＤを発行する機能を持つ、既存のＰＫＩ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ，公開鍵暗号基盤）や、マイナンバーシステム、健康保険システム、銀行口座システム、電話会社、クレジット会社等の機能を活用可能である。なお、ブラインド署名技術と組み合わせ、ＩｄＰがノードのＩｄｅｎｔｉｔｙを確認後、ノードが公開鍵と取引用のＩＤを作成し、ＩｄＰがブラインド署名を行うことで、ＩｄｅｎｔｉｔｙにリンクされないＩＤと公開鍵を用いた、匿名でのトランザクション実施も可能である。電子投票など、Ｉｄｅｎｔｉｔｙ単位での公平性が必要な場合や、マシンによる経済活動やマネーロンダリングなどへの不正利用を防ぎたい場合に適している。
【００４１】
本開示では、第二に、検証者候補の決定に、式（２）に示す、Ｈａｓｈ値と閾値の比較によるくじを使用する。以下、本実施形態におけるくじを「おみくじ」と称する。
（数２）
Ｈａｓｈ［暗号化ＩＤ０＋Ｌｕｃｋｙ＿ＩＤ１＋Ｌｕｃｋｙ＿ＩＤ２＋・・・
＋Ｌｕｃｋｙ＿ＩＤｍ＋ＴＳ］＜Ｎ／Ｎｕｍ      …式（２）
【００４２】
ここで、暗号化ＩＤ０は自ノードの暗号化ＩＤ、Ｌｕｃｋｙ＿ＩＤ１〜Ｌｕｃｋｙ＿ＩＤｍは、前回のブロックの検証候補者（「おみくじ」に当選したノード）の暗号化ＩＤである。例えば、ｎ段目の検証者候補のおみくじであれば、ｎ−１段目のおみくじに当選したノードの暗号化ＩＤである。Ｌｕｃｋｙ＿ＩＤは、若番から並べて結合する、など順番を一意に決めておくことで、順番の操作による当選確率の操作を不可、とすることが好ましい。ただし、本開示では、おみくじに用いるＬｕｃｋｙ＿ＩＤは、ｎ−２段目以前のおみくじに当選したノードの暗号化ＩＤを用いてもよい。例えば、ｎ−１段目に代えてｎ−２段目を用いてもよいし、ｎ−１段目及びｎ−２段目の両方を用いてもよい。
【００４３】
また、Ｎｕｍは利用者のノード数に相当する数であり動的に変更する（導出方法は後述）。閾値Ｎは一回のおみくじでの当選数の期待値を調整するパラメータであり、以下の説明ではシステム固定とする。ＴＳは、ＰｏＳと同様、上記おみくじを引く時刻（例：１秒単位）である。各ノードの持つ時計はＴＳの単位時間に比べ十分小さい誤差の範囲で同期している必要がある。以下の例ではＴＳの単位時間を１秒として説明する。
【００４４】
記号eは、ｂｉｔ列の結合やＸＯＲなど、入力を組合せることでランダム性が保証できれば任意の演算を適用して良い。なお左辺はＨａｓｈ長をＬとした時に、２＾Ｌで除して０〜１（ｄｏｕｂｌｅ）の範囲に正規化されているものとする。
【００４５】
本開示に係るＰｏＬでは、各利用者のＩＤとブロック番号を結合した値に対する利用者のディジタル署名値（以下、暗号化ＩＤと称する。）をおみくじの入力として使用する。ブロック番号は、ブロックごとに異なる任意の値であり、例えば、チェーンの中でのブロックの段数である。ブロック番号は、利用者により操作できず、かつ、ブロック毎に異なる番号であればよい。ディジタル署名値は、公開鍵暗号方式の秘密鍵で暗号化した値である。
【００４６】
暗号化ＩＤは利用者のＩＤとブロック番号に対する署名なので、入力条件１及び入力条件２を満たす。またおみくじを引く利用者の暗号化ＩＤも入力として使用するが、当該ＩＤの生成には当該利用者の秘密鍵が必要なので、当該利用者以外には当該ＩＤを生成できず、よって入力条件３も満たされる。さらに、当該利用者の公開鍵は公開されているので、当該暗号化ＩＤが公正に生成されたことを任意の利用者のノードが検証することが出来き、入力条件５も満たされる。
【００４７】
このように、本開示では、検証者候補のノードは作成したブロックに暗号化ＩＤを含めることとし、前回の検証者以外の検証者候補の暗号化ＩＤも、後述の仕組みにより「おみくじ」の入力として使用することが必要になるようにする。このため、たまたま結託者グループ中のある利用者がおみくじに当選したとしても、次のおみくじでは結託者以外の利用者の暗号化ＩＤも入力になる可能性がある。結託者以外の暗号化ＩＤを、結託者は事前には知りえないため、連続当選の予見が困難になる。したがって、本開示は、入力条件４を満たす。
【００４８】
また、複数の検証者候補から検証者を決定する方法が、ＰｏＷとＰｏＳでは、早い者勝ちである。一方、本開示に係るＰｏＬでは一定時間の間におみくじに当選した検証者候補のなかから、ランダムに当選者を決定する（以下、「抽選」と称する。）。抽選では、使用した入力の数が最も多い検証者候補を検証者とすることが好ましい。これにより、検証者になろうとする利用者のノードは、前回の検証者以外の検証者候補の暗号化ＩＤを全ておみくじの入力とすることが必要になる。多くの場合は入力の数が複数であり、そのような場合は、ランダムに当選者を決定する。「抽選」については後述する。
【００４９】
図３に、ｎ−１段目の検証者候補が４つ、ｎ段目の検証者候補が２つになった場合の、おみくじと抽選の例を示す。本図では、ｎ段目の抽選でｎ−１段目の検証者を決定するように表現している。
ｎ−１段目の検証者候補のノード９１は、ブロックに暗号化ＩＤを含め、全利用者（１〜ｋ）のノード９１に配布する。なお、利用者数ｋは任意である。
各利用者（１〜ｋ）は、ｎ−１段目とｎ段目の境界のおみくじ予定時刻を過ぎると、ｎ−１段目の検証者候補が作成したブロック受信の受付を開始する。当該ブロックの総数が、閾値Ｎ（例えば、２）を超えると、当該時刻（１秒刻み）で検証者候補からのブロック受信を締め切る（本例では合計４個）。なお、ネットワーク内の伝搬遅延によるチェーンの分岐を防ぐため、ブロックの送信は１秒内（ＴＳ単位時間内）で締め切り、受信は伝搬遅延の最大値分遅れて締め切っても良い。
次に、抽選（図３の（１））によりｎ−１段目の検証者を選択し、ｎ−１段目のブロックチェーンに接続する。
【００５０】
次のおみくじ予定時刻になると、各利用者（１〜ｋ）は、ｎ段目の検証者候補決定のため、前回の４つの検証者候補の暗号化ＩＤと自分自身の暗号化ＩＤを用いておみくじを引く。図４に、おみくじを含む処理の一例を示すフローチャートの一例を示す。
【００５１】
各ノード９１は、自ノードの暗号化ＩＤを生成し（Ｓ１０１）、式（２）の左辺で示す自ノードのＨａｓｈ値を求め（Ｓ１０２）、式（２）を用いて自ノードが当選したか否かを判定する（Ｓ１０３）。式（２）を満たせば検証者候補に当選したことになる。
【００５２】
ここで、自ノードの暗号化ＩＤの生成Ｓ１０１は、例えば、処理部１１が、自ノードに固有のＩＤに秘密鍵を適用して利用者ＩＤを生成し、利用者ＩＤ及び新規ブロックのブロック番号を用いて生成する。自ノードのＨａｓｈ値（Ｓ１０２）は、他のノードと共通の演算式に、自ノードの暗号化ＩＤ及びブロックに格納されている暗号化ＩＤを適用することで、求める。ブロックに格納されている暗号化ＩＤは、新規ブロックを追加するブロックチェーンに既に含まれるブロックのうちの予め定められたブロックに格納されている暗号化ＩＤである。
【００５３】
自ノードが検証者候補に当選した場合、自ノードの暗号化ＩＤを格納した新規ブロックを、他のノード９１に配信する（Ｓ１０４）。例えば、自身の暗号化ＩＤを含めてブロック化し、全利用者のノード９１に配布する。
【００５４】
おみくじにあたっていない各利用者のノードは検証者候補の数が閾値Ｎを超えるまで、１秒刻みで再度おみくじを引く。図３では利用者１と利用者ｋが検証者候補となり、閾値Ｎ（本例では、２）以上となったので、各利用者（１〜ｋ）は新規ブロックの受信を締め切っている。
【００５５】
閾値Ｎ（本例では、２）以上となると、各ノード９１は、抽選を行う。図５に、抽選を含む処理の一例を示すフローチャートの一例を示す。
各ノード９１は、ｎ＋１段目の処理で、Ｎ段目の新規ブロックを受信すると（Ｓ２０１）、当該新規ブロック内トランザクションの検証に加えて、当該新規ブロックの暗号化ＩＤが正当か、当該新規ブロックの公開鍵により検証する。また、当該新規ブロックのおみくじで使用されたＬｕｃｋｙ＿ＩＤがＮ段目の処理で正当と判断された暗号化ＩＤのリスト（後述のＬｕｃｋｙ＿ＩＤリスト）に含まれるか検証する（Ｓ２０２）。上記検証の結果正当でないと判断された新規ブロックは廃棄する（Ｓ２０３）。
【００５６】
正当な新規ブロックの暗号化ＩＤをＮ＋１段目のＬｕｃｋ＿ＩＤリストに記録する（Ｓ２０４）。締め切り時刻を過ぎかつ正当と判断した新規ブロックの数が閾値を超過するまで、新規ブロックの受信を受け付ける（Ｓ２０５）。なお締め切り時刻はＴＳの単位時間を単位として延長する。新規ブロックの受付を締め切ると、Ｌｕｃｋｙ＿ＩＤの数が最多のブロクが一つであれば（Ｓ２０６）、当該新規ブロックを検証者の新規ブロックとして、ブロックチェーンに接続する（Ｓ２０７）。Ｌｕｃｋｙ＿ＩＤの数が最多のブロクが複数の場合、抽選を行い（Ｓ２０８）、抽選で選択された検証者の新規ブロックを、ブロックチェーンに接続する（Ｓ２０９）。
【００５７】
抽選Ｓ２０８においては、各ノード９１は、各ノード９１に共通の式に、受信した各新規ブロックに格納されている暗号化ＩＤを適用し、暗号化ＩＤのなかから１つを選択する。これにより、各ノードにおいて、共通の検証者が抽選によって選択される。例えば、各利用者のノード９１は、抽選により利用者１を検証者として選択する。
【００５８】
なお、複数（閾値Ｎ以上）の検証候補者の中から検証者を決定する抽選方法は以下の条件を満たすことが好ましい。
・各利用者が受信した検証者候補（複数）が同じであれば、各利用者が決定した検証者は同一になる。合意形成のためである。
・検証者候補数がｂ個の場合、当選確率は常に１／ｂであり、１／ｂより大、あるいは小にならない。連続当選を予見不可とするためである。
・検証者候補も、当該候補が生成した新規ブロックを中継する利用者も、当該検証者候補が当選あるいは落選することを、締め切り時刻まで予見できない。転送遮断攻撃を不可とするためである。
【００５９】
例えば、各利用者のノード９１は以下の計算で抽選を行い、検証者を決定することができる。受付時間内（後述）に受信し、公正であると検証できたｎ段目の新規ブロックを作成した検証候補者の暗号化ＩＤを若番からソーティングし、結合してＨａｓｈを計算し、ブロック数（ｍ）で割った余り＋１を計算する。そして、若番から数えて当該数値（余り＋１）番目の新規ブロックの検証者候補を検証者として決定する。
【００６０】
上記手法は、同じ検証者候補の新規ブロックを受信した全利用者が同じ候補を選ぶことになる。また、暗号化ＩＤと抽選の当選は、相関がないことが保証されている。例えば、暗号化ＩＤが大きいほど当選しやすい、といった傾向はない。さらに、検証者候補の暗号化ＩＤが全て揃うまでどの候補が選ばれるか予見出来ない。
【００６１】
なお、ＰｏＳでは１秒ごとに富くじを引いて、平均ブロック間隔約１０分を実現している。本開示に係るＰｏＬの場合、ブロック毎に初回のおみくじを引く時刻（以下、おみくじ予定時刻）の間隔を一定（例えば１０分）とすることが好ましい。
【００６２】
おみくじ実施後、検証者候補からの新規ブロックの受信を受け付ける時間（式（２）のＴＳの単位時間）は、ネットワーク内の往復伝搬遅延時間の最大値より大きければ十分である。以下の例では１秒として示す。なお、本開示に係るＰｏＬでは、ＰｏＳと同様に、各利用者のノードの持つ時計はＴＳの単位時間に比べ十分小さい誤差の範囲で同期している必要がある。
【００６３】
式（２）に含まれるパラメータのＮｕｍは、ＰｏＷのｄｉｆｆｉｃｕｌｔｙ−ｔａｒｇｅｔに相当するパラメータである。このパラメータについては、利用者毎にそれぞれのチェーンについて、同一のアルゴリズムにより計算し、同一のチェーンに対して同一の値を使用する。例えば、ＰｏＷにおけるＤｉｆｆｉｃｕｌｔｙ−ｔａｒｇｅｔの増減と同様に、以下の計算により求めることができる。
【００６４】
１回のおみくじ当たりの当選数の平均値とパラメータＮを比較し、平均値の方が大きければ当該チェーンのＮｕｍを大きくし、平均値が小さければＮｕｍを小さくする。ここで、１回のおみくじ当たりの当選数は、例えば、「各回の抽選で入力としたブロック数」／「実施したおみくじ回数」で求めることができる。平均値は、１定期間毎（１日など）の加算平均や指数移動平均を用いることができる。
【００６５】
本開示に関連するＰｏＷやＰｏＳでは、早い者勝ちで検証者を決定するので、ネットワーク内の伝搬遅延時間に起因するブロックの分岐が常時起こりうる。このため、ネットワークの孤立がありえない状況でも、分岐したブロックを合流させる仕組みが必要である。ところが、受信の締め切りを伝搬遅延時間の最大値だけ遅らせることで、ネットワークの孤立が発生しない状況では、ブロックの分岐は発生しない。よって、そのような状況ではブロックを合流させる仕組みは不要である。
【００６６】
ただし、本開示に係るＰｏＬにおいても、ネットワークが一旦２つに分断し、複数のブロックがそれぞれで検証され、チェーンが長くなった後に再びネットワークが合流した場合に備えて、各利用者が同じチェーンをメインチェーンとして合意する仕組みと、合流後に同一利用者が異なるチェーンに接続する複数のブロックを作成しない（させない）仕組み（後述）を追加することができる。
【００６７】
本開示に関連するＰｏＷは、利用者が検証者となる確率の逆数に比例するｄｉｆｆｉｃｕｌｔｙ−ｔａｒｇｅｔ（Ｎｏｎｃｅを計算する条件となる、Ｈａｓｈ値の上限）をブロック内に記録し、当該ｄｉｆｆｉｃｕｌｔｙ−ｔａｒｇｅｔの合計が大きい方のチェーンをメインチェーンとすることで、前者を実現している。また、ＰｏＷではブロック作成時に必要なマイニングのための処理量（消費電力）が抑止となっている。（セカンダリチェーンに接続するブロックを作成するために消費電力代を支払っても、報酬を貰える可能性は低い）
【００６８】
本開示に関連するＰｏＳでは、Ｓｔａｋｅが大きい利用者は不正をしないと前提を置いているので、各ブロックのＳｔａｋｅの合計が大きい方のチェーンをメインチェーンとすることができる。ただし、同一利用者が異なるチェーンに接続する複数のブロックを作成しない（させない）仕組みはない（ＰｏＷの消費電力のようなペナルティがない）。このため、結託者が不正のために分岐させたチェーンに、結託者以外の利用者がブロックを接続してしまい、不正が成功する可能性が高い問題がある。
【００６９】
そこで、本開示では、不正にチェーンを分岐することによる支払いの不正取り消し攻撃を避けると同時に、不正なく孤立したネットワークの合流を可能とするため、以下の構成を備えることが好ましい。
【００７０】
例えば、おみくじに当たった幸運が大きい方のチェーンを勝者とする。具体的には、各検証者がおみくじに使用したＮｕｍをブロック内に記録し、チェーンを構成するブロックとおみくじの入力として使用したブロックの全てのＮｕｍの合計を計算し、当該Ｎｕｍの合計が大きい方（おみくじが当たりにくかった方）のチェーンをメインチェーンとする。ただし、結託者グループによる不正なチェーンの切り替えを防ぐため、メインチェーンのＮｕｍがチェーン分岐時の値の一定比率以下（例１／２以下）になっていた場合に限り、メインチェーンとセカンダリチェーンの切り替えを可能とする。不正なく、小数の利用者グループのネットワークが孤立し、その後分離前のネットワークと再結合すると、孤立したネットワークの利用者の管理しているメインチェーンのＮｕｍが実際の利用者数に応じた値に小さくなってから当該グループのメインチェーンは交代する。なお、結託者は、ネットワークを不正に孤立化した後での、結託者グループ内での当選数を予見することは可能だが、非結託者の当選数を予見することは出来ないので、結託者グループによる不正なチェーンの切り替えを防ぐことができる。
【００７１】
さらに本開示では、結託者以外の利用者が、不正なチェーンに接続するブロックを作成させないために、以下のような仕組みを備えることが好ましい。
・第１の仕組み：抽選の際に、メインチェーンに接続するブロックとセカンダリチェーンに接続するブロックがあった場合、それぞれ個別に抽選を行う。ただし、同一利用者が生成したブロックが複数あった場合はすべて無効とする。
・第２の仕組み：おみくじの入力として使用する暗号化ＩＤは、メインチェーンとセカンダリチェーンの双方で抽選したものを全て含める。
【００７２】
本開示に係るＰｏＬでは、第１の仕組みにより、同一利用者が異なるチェーンに接続する複数のブロックを同時に作成できなくなる。さらに、第２の仕組みにより、同一利用者が異なるチェーンに接続する複数のブロックを交互に作成することも防ぐ。なぜなら、ＰｏＷやＰｏＳでは、メインチェーンとセカンダリチェーンのそれぞれについて検証者となれるタイミング（マイニングの成功や、富くじでのあたり）が独立だが、本開示に係るＰｏＬの場合上記の仕組みにより、独立ではない。正当な利用者のノードはおみくじに当たった場合、前述のように、メインチェーンを選択する。不正に作られた端末であれば、作成したブロックをセカンダリチェーンとメインチェーンのどちらに接続するか選択可能だが、メインチェーンを選択したほうが有利になる。（次の検証者が公正な端末であれば、セカンダリは選択されず、当該の不正端末は報酬を見逃す可能性が高くなる）
【００７３】
なお、上記例では暗号化ＩＤでブロック番号を使用しているが、それ以外でも、当該暗号化ＩＤ生成時に、生成者が変更できず、また当該暗号化ＩＤを受信した者が正しい値を知っている番号であり、また、ブロックの段数毎に異なる番号であれば適用可能である。例えば、ブロック生成の周期時間で量子化したタイムスタンプを使用しても良い。また、ＩｄＰなどから全利用者に対して乱数の供給があれば、それを用いても良い。
【００７４】
また、上記例では式（２）の入力に、１つ前のブロックの暗号化ＩＤと検証者になろうとする利用者の暗号化ＩＤとＴＳのみを使用しているが、過去のメインチェーン上のブロックが使用した暗号化ＩＤを含めてもよい。例えば、メインチェーン上の各ブロックがおみくじに使用した全ての暗号化ＩＤのＸＯＲを入力とすれば、データ量は増えない。
【００７５】
また、上記説明では、ＩｄＰが利用者にＩＤと公開鍵を配布する実施例も説明しているが、その場合、トランザクションの実施者とＩｄｅｎｔｉｔｙの対応が全利用者に公開される。ただし、ブラインド署名技術と組み合わせ、ＩｄＰが利用者のＩｄｅｎｔｉｔｙを確認後、利用者が公開鍵と取引用のＩＤを作成し、ＩｄＰがブラインド署名を行うことで、ＩｄｅｎｔｉｔｙにリンクされないＩＤと公開鍵を用いた、匿名でのトランザクション実施も可能である。
【００７６】
（本開示の効果）
本開示により、ＰｏＷおよびＰｏＳの課題を同時に解決し、公平で安全な分散合意形成が実現できる。本開示は合意形成に、ＩｄＰによりＩｄｅｎｔｉｔｙの実在が確認されたＩＤを使用可能であるため、マネーロンダリングや、マシンによる取引を防ぐことが出来る。また、一人一票であることの保証が必要な、電子投票へも応用が可能である。
【実施例１】
【００７７】
本実施例では、「おみくじ」を、連続実施ではなく、ほぼ１回の実施で当選者がでるように当選確率を高くする。これにより、結託者は、非結託者が「おみくじ」に当選しないことを予見できなくなる。ただし、おみくじの当選者が結託者グループから多数出ることを予見できた場合、非結託者がおみくじに当選しても、結託者が連続して検証者になる確率が高くなってしまう。このため、ブロック間の接続構造を一次元のチェーンから二次元に拡張し、「おみくじ」の入力に、前回の検証者以外の検証者候補のＬｕｃｋｙ＿ＩＤも含めるようにする。これにより、結託者の当選者数にかかわらず、以降の予見を無効にすることができる。
【００７８】
結託者グループ（全ノード中の比率ｐ：０＜ｐ＜１）が、今回のおみくじでグループ外のノードに当選者がいない場合、次回のブロックのおみくじで結託者メンバがＨ個以上当選する、と予見したとする。Ｈが大きいほど、高い確率で、それらの何れかが次回ブロックの検証者になる。Ｈ＞＞Ｎの場合でも、Ｎの値を適切に選ぶことで、結託者の誰かが次回ブロックの検証者になる確率をｐ以下とできることを示す。
【００７９】
（１）次回当選予見を防止するＮとｐとの関係
非結託者の当選者数がｋ個となる確率Ｑ（ｋ）は、式（３）のポアソン分布に従う。
【数３】
2019220753.tif 000003
ｋ＝０、λ＝Ｎ（１−ｐ）を代入すると、Ｑ（０）＝ｅ−Ｎ・（１−ｐ）となる。この値（非結託者から「おみくじ」の当選者が出ない確率）がｐとなるときのＮを求めると−Ｎ・（１−ｐ）＝ｌｏｇ  ｐ、よって求めるＮは、
（数４）
Ｎ＝−ｌｏｇ  ｐ／（１−ｐ）・・・・式（４）
となる。式（４）のｐとＮとの関係を図６に示す。Ｐを対数とした片対数グラフで表現している。
【００８０】
ｐが０に近づくとＮは無限大に発散する。Ｎを大きくとると、ノード間で転送が必要なブロック数がＮ倍になるため、Ｎ＝３〜４程度が現実的と思われる。Ｎ＝４とすると、結託者の比率ｐが０．０２以下の領域では、結託者が連続当選を予見できた場合、結託者の比率ｐよりも高い確率で実現することになる。
【００８１】
Ｎ＝２、３、４とした場合に、結託者比率ｐと次回ブロックの当選の予見が実現する確率（非結託者が次回の「おみくじ」で当選者ゼロの確率Ｑ（０）＝ｅ−Ｎ・（１−ｐ））の関係を図７に示す。両対数グラフで表している。なおＱ＝ｐを破線で目標値として示している。
【００８２】
Ｎ＝４とすると、ｐ＜０．０２の領域では、次回の連続当選が予見できた場合、その予見が実現する確率はｐよりも大きくなるが、高々０．０２程度である。ｐ→０で、Ｑ（０）＝ｅ−４＝０．０１８３．．．に漸近する。Ｎ＝３とすると、ｐ＝０．０６でＱと一致する。なお、Ｎ＝３で、既存のｂｉｔｃｏｉｎと同様に安全段数を６とすると、６回の連続当選を予見できたとして、それが実現する確率は０．０６＾６＝４．６７×１０−８となる。
【００８３】
（２）連続当選頻度
結託者グループの１回の「おみくじ」の当選者数期待値λ＝Ｎ・ｐなので、ｍ回連続してＮ人以上の当選者が出る平均間隔Ｉ（ｍ）は式（５）となる。ｍ＝２、ブロック生成間隔＝１０分とし、ｐ、ＮとＩの関係を図８に示す。
【数５】
2019220753.tif 000004
【００８４】
Ｎ＝４の場合、ｐ＝０．０２の場合の平均連続当選間隔は７４３万年、Ｎ＝３、ｐ＝０．０６で２６．３年、Ｎ＝２、ｐ＝０．２で約２日となった。なお、Ｎ＝３で６回の連続当選が発生する平均間隔は５．０５Ｅ１３年（５０兆年）である。よって事実上、Ｎ＝３または４で十分と考えられる。
【実施例２】
【００８５】
本実施例では、ネットワーク孤立の検出について説明する。
ＰｏＷでは、Ｎｏｎｃｅの発見間隔が平均値より著しく長くなった場合、ノードの数に変化がない、と言う仮説についてｐ値検定を行い、インターネットから孤立している可能性を検出することができる。例として、Ｎｏｎｃｅの平均発見間隔が１０分で安定していた後で、発見間隔が４０分に変化した場合を想定する。ノード数が２５％に変化した場合に相当する。ノードの数に変化がないという仮説について、危険率５％で判定可能となる平均時間を、以下に示す。Ｎｏｎｃｅの発見間隔がｔ・１０分未満となる確率Ｆ（ｔ）は、式（６）の指数分布の累積分布に従う。
（数６）
Ｆ（ｔ）＝１−ｅ−λｔ      …式（６）
【００８６】
λは１０分あたりの平均Ｎｏｎｃｅ発見数＝１となる。Ｆ（ｔ）＝０．９５を解くとおおよそｔ＝３．８となる。すなわち、危険率５％で約４０分の時間を要する。危険率１％で判定する場合は、８０分程度必要となる。このため、インターネットからの孤立に気づかずにトランザクションを作成してしまい、その後インターネットと接続後に当該トランザクションが無効になる危険がある。
【００８７】
これに対し、ＰｏＬでは、ブロック作成後、一定時間経過してから、当選数の期待値がＮの「おみくじ」を実施する。周期を１０分とすると、１秒あたりの当選数期待値は、ＰｏＷのＮ＊６００倍となる。すなわちサンプル数が非常に大きいので、ＰｏＷよりも素早く、正確に、インターネットからの孤立を検出可能である。例えば、１秒あたりの当選数が連続して１以下（ノード数が約２５％）になったときに、ノードの数（Ｎｕｍ）に変化がない、と言う仮説についてｐ値検定を行ったとする。単位時間あたりの当選者数がλ個の場合に当選者がｋ個となる確率は、式（３）のポアソン分布に従う。Ｎ＝４とするとλ＝４になるので、Ｐ（Ｘ＝０）＝ｅ−４、Ｐ（Ｘ＝１）＝４・ｅ−４となる。よって、１秒あたりの当選数が１以下の確率はおおよそ０．１となる。よって危険率５％で２秒、１％でも３秒（前回のくじから測っても１０分＋３秒）程度で、インターネットから孤立している可能性がある、と判断可能である。ＰｏＷとＰｏＬの計算結果を図９に示す。
【産業上の利用可能性】
【００８８】
本開示は情報通信産業に適用することができる。
【符号の説明】
【００８９】
１１：処理部
１２：メモリ
１３：送受信部
９１：ノード
【図１】
2019220753.tif 000005
【図２】
2019220753.tif 000006
【図３】
2019220753.tif 000007
【図４】
2019220753.tif 000008
【図５】
2019220753.tif 000009
【図６】
2019220753.tif 000010
【図７】
2019220753.tif 000011
【図８】
2019220753.tif 000012