(57)【特許請求の範囲】
【請求項１】
マイニングコンピューティングエンティティ「ＭＣＥ」とノードコンピューティングエンティティとを含む分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」のブロックチェーンの新しいブロックに署名する方法であって、
ｉ．前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、前記ＭＣＥが、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得するステップと、
ｉｉ．前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、前記新しいブロックに対する署名を作成するステップと、
ｉｉｉ．前記ＭＣＥが、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、前記ノードコンピューティングエンティティが同一の対応するブロック高情報を含む２つの署名を受け取った時に、前記ＤＢＣＮの他のノードコンピューティングエンティティが、公開情報を提供して前記ＨＩを前記ＤＢＣＮに公開するステップと、
を含む方法。
【請求項２】
前記ＨＩは前記ＭＣＥの秘密鍵を公開することによって公開されることを特徴とする、請求項１に記載の方法。
【請求項３】
前記ＨＩは前記ＭＣＥおよび／または前記ＭＣＥのユーザのＩＤ情報を含むことを特徴とする、請求項１または２に記載の方法。
【請求項４】
ａ）証拠秘匿プロトコルを用いて、前記ＨＩをＩＤプロバイダおよび／または電子ＩＤ証明書に関連付けること、
ｂ）前記ＭＣＥを前記ＤＢＣＮに登録する間、信頼できる第三者を用いること、
ｃ）前記ＭＣＥを前記ＤＢＣＮに登録する間、信頼できる実行環境エンティティを用いること
のうちの少なくとも１つによって、前記ＨＩがその正確性を確認されることを特徴とする、請求項１乃至３のいずれかに記載の方法。
【請求項５】
ステップｉｉ．）において生成される前記署名は、離散対数署名方式とナンスとを用いて求められることを特徴とする、請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記ナンスは、前記秘密鍵と前記ブロック高情報との入力時に擬似ランダム関数を用いて正確に求められることを特徴とする、請求項５に記載の方法。
【請求項７】
前記ナンスを正確に求めるための証拠秘匿証明が、前記ＭＣＥによって求められることを特徴とする、請求項５に記載の方法。
【請求項８】
少なくとも１つのマイニングコンピューティングエンティティ「ＭＣＥ」とノードコンピューティングエンティティとを含む分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」であって、
前記ＭＣＥが、
ｉ．前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得し、
ｉｉ．前記秘密鍵とブロック高情報を含むブロック情報とを用いて、新しいブロックに署名することにより、前記新しいブロックに対する署名を作成し、
ｉｉｉ．前記ＭＣＥが、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、同一の対応するブロック高情報を含む２つの署名を受け取った時に、公開情報を提供して前記ＨＩを前記ＤＢＣＮに公開する、
ように構成されることを特徴とする、ＤＢＣＮ。
【請求項９】
分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において新しいブロックに署名するマイニングコンピューティングエンティティ「ＭＣＥ」であって、
ｉ．前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得し、
ｉｉ．前記秘密鍵とブロック高情報を含むブロック情報とを用いて、新しいブロックに署名することにより、前記新しいブロックに対する署名を作成する、
ように構成された、ＭＣＥ。
【請求項１０】
分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」におけるノードコンピューティングエンティティであって、
マイニングコンピューティングエンティティ「ＭＣＥ」が、同一のブロック高情報を有する異なるブロックへの少なくともさらに１つの署名を行う場合、同一の対応するブロック高情報を含む２つの署名を受け取った時に、公開情報を提供して、前記ＭＣＥの秘密情報「ＨＩ」を前記ＤＢＣＮに公開する、
ように構成された、ノードコンピューティングエンティティ。
【請求項１１】
マイニングコンピューティングエンティティ「ＭＣＥ」が、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」においてブロックチェーンの新しいブロックに署名する方法であって、
ａ）前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得することと、
ｂ）前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、前記新しいブロックに対する署名を作成することとを含む方法。
【請求項１２】
分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において、前記ネットワークのノードコンピューティングエンティティが、秘密情報を公開する方法であって、
マイニングコンピューティングエンティティ「ＭＣＥ」が、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、同一の対応するブロック高情報を含む２つの署名を受け取った時に、公開情報を提供して前記ＭＣＥの秘密情報を前記ＤＢＣＮに公開する、方法。
【請求項１３】
マイニングコンピューティングエンティティ「ＭＣＥ」を含む分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」のブロックチェーンの新しいブロックに署名する方法を、コンピュータに実行させるプログラムを記憶した非一時的なコンピュータ読み取り可能な媒体であって、
ｉ．前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、前記ＭＣＥが、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得するステップと、
ｉｉ．前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、署名を作成するステップと、
ｉｉｉ．前記ＭＣＥが、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、前記ノードコンピューティングエンティティが同一の対応するブロック高情報の２つの署名を受け取った時に、前記ＤＢＣＮの他のノードコンピューティングエンティティが、公開情報を提供して前記ＨＩを前記ＤＢＣＮに公開するステップと、
を含む方法をコンピュータに実行させるプログラムを記憶した媒体。
【請求項１４】
マイニングコンピューティングエンティティ「ＭＣＥ」が分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において新しいブロックに署名する方法を、コンピュータに実行させるプログラムを記憶した非一時的なコンピュータ読み取り可能な媒体であって、
ａ）前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得するステップと、
ｂ）前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、署名を作成するステップと、
を含む方法をコンピュータに実行させるプログラムを記憶した媒体。
【請求項１５】
秘密情報を公開する方法をコンピュータに実行させるプログラムを記憶した非一時的なコンピュータ読み取り可能な媒体であって、
マイニングコンピューティングエンティティ「ＭＣＥ」が、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、同一の対応するブロック高情報の２つの署名を受け取った時に、公開情報を提供して、前記ＭＣＥの秘密情報を分散型ブロックチェーンコンセンサスネットワークに公開する、
方法をコンピュータに実行させるプログラムを記憶した媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイニングコンピューティングエンティティ「ＭＣＥ」を含む分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において新しいブロックに署名する方法に関する。
【０００２】
本発明はさらに、少なくとも１つのマイニングコンピューティングエンティティ「ＭＣＥ」と、ノードコンピューティングエンティティとを含む分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」に関する。
【０００３】
本発明はさらに、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において新しいブロックに署名するコンピューティングエンティティ「ＭＣＥ」に関する。
【０００４】
本発明はさらに、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」に含まれるノードコンピューティングエンティティに関する。
【０００５】
本発明はさらに、マイニングコンピューティングエンティティ「ＭＣＥ」が、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において新しいブロックに署名する方法に関する。
【０００６】
本発明はさらに、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において秘密情報を公開する方法に関する。
【０００７】
本発明はさらに、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において新しいブロックに署名する方法をコンピュータに実行させるプログラムを記憶した、非一時的なコンピュータ読み取り可能な媒体に関する。
【０００８】
本発明はさらに、マイニングコンピューティングエンティティ「ＭＣＥ」が分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において新しいブロックに署名する方法をコンピュータに実行させるプログラムを記憶した、非一時的なコンピュータ読み取り可能な媒体に関する。
【０００９】
本発明はさらに、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において秘密情報を公開する方法をコンピュータに実行させるプログラムを記憶した、非一時的なコンピュータ読み取り可能な媒体に関する。
【背景技術】
【００１０】
プルーフオブワークは、情報技術セキュリティにおいてますます重要になっている。例えば、ビットコインのような暗号通貨は、過剰に生成されることを防ぐためにプルーフオブワークに依存している。
【００１１】
ビットコインは分散型の支払システムであり、現在、デジタル通貨として人気が高まっていて、一部の企業ではビットコイントランザクションの引受を開始している。例えば、ビットコインは、地域のファーストフードレストランで即時決済の方法として用いられていた。
【００１２】
ビットコインは、ユーザが計算を実行することによりデジタルコインを「採掘する」ことを可能にする、プルーフオブワーク（ＰｏＷ）ベースの通貨である。ユーザは、自身のトランザクションにデジタル署名することによって支払を実行し、分散型タイムスタンプサービスにより、自身のコインを二重使用すること（すなわち、同一コインを２人の異なるユーザに対して署名譲渡すること）が防止される。このサービスは、すべてのトランザクションとその実行順序がすべてのビットコインユーザに利用可能であることを保証するビットコインピアツーピア（Ｐ２Ｐ）ネットワーク上で動作する。
【００１３】
ビットコインは、通貨と商品との交換時間が短い、いくつかの「即時決済」シナリオでの使用が増加している。例として、オンラインサービス、ＡＴＭでの引き出し、自動販売機での支払、ファストフード店での支払などがあり、支払に続いて商品が高速（３０秒未満）で渡される。ビットコインのＰｏＷベースのタイムスタンプメカニズムは、遅れて支払う場合（例えば、現物商品の配達を伴うオンライン注文）には適しているが、取引を確認するために数十分を要することから、即時決済には適していない。ただし、このメカニズムは、敵対者が２つ以上の支払に自身のコインの一部を使用しようとする二重使用攻撃を検出するためには不可欠である。ビットコインユーザは匿名であり、ユーザは多くのアカウントを保有しているので、ユーザが商品を入手した（そして、例えば店から出た）後やサービスを受けた（例えばオンラインコンテンツにアクセスした）後で支払を検証することには、限定的な価値しかない。ビットコインネットワークがフォークをマージしてトランザクションの総順序に同意するまで、二重使用攻撃が一時的なフォークの間に特に発生する可能性がある。
【００１４】
現在、ブロックチェーンフォーキングは、分散型コンセンサスにとって主要な課題の１つである。これにより、ネットワークがコンセンサスを得るまでの時間が遅くなり、システム効率が低下する。
【００１５】
非特許文献（Gervais, A.、Karame, G. 他、「On the Security and Performance of Proof of Work Blockchains」https://eprint.iacr.org/2016/555.pdfにて入手可能）に開示されるような、最初の従来型のプルーフオブワークコンセンサスプロトコルまたはマイニングプロトコルは、非特許文献（Karame, Androulaki, & Capkun, 2012, Double-Spending Attacks on Fast Payments in Bitcoin. Proceedings of the ACM Conference on Computer and Communications Security (CCS). Chicago, Il, USA)に開示されるように、マイニングにエネルギーを浪費するとして批判された。マイナーは、ブロックを合法的にするために正しいパラメータが見つかるまでハッシング機能を繰り返し実行するために、計算資源を投資しなければならない。したがって、プルーフオブステーク「ＰｏＳ」やプルーフオブエラプストタイム「ＰоＥＴ」などの複数の仮想マイニングプロトコルを使用する、さらなる従来型のブロックチェーンが提案された。ここでのノードは、計算資源で次のブロックをブルートフォース（総当たり攻撃）するのではなく、プルーフオブステークスＰｏＳや安全なハードウェアＰｏＥＴにより返されるランダムタイマといった仮想マイニング資源を使用して、次のブロックをマイニングする。
【００１６】
しかしながら、マイニングプロセスにはそれほどコストがかからないため、仮想マイニングの主要なリスクは、ナッシングアットステーク、すなわち、ノードが、全マイナーの中でチャンスを増すために、同時に複数のブロックをマイニングできるので、複数のブロックのうちの１つが最終的にブロックチェーンに含まれることで報酬を得ることである。その結果、複数のブロックをマイニングすることでシステム内に複数のフォークが作成され、ノードが同時に複数のフォーク（ブランチ）で作業することになり、システム内のフォーク数が指数関数的に増加する。これにより、コンセンサススピードが著しく低下して二重使用のリスクが高まる。
【００１７】
例えば、非特許文献（Buterin, V. (2014, Jan.) Slasher: A Punitive Proof-of-Stake Algorithm, https://blog.ethereum.org/2014/01/15/slasher-a-punitive-proof-of-stake-algorithm/ にて入手可能）に開示される、いくつかの従来の方法は、マイナーが同時に複数のフォークにおいてブロックを作成した場合に、そのマイナーにペナルティを課したり、「間違った」フォークについて採決したりすることを含む。これは、一定期間マイナーの預金の一部を保留し、不正行為が検出も報告もされない場合にのみ回収を許可することによって行われる。例えば、本明細書に開示されているスラッシャー（Slasher）１．０は、いくつかの数のブロックについて報酬をロックすることにより報酬の請求を遅らせる。不正行為が検出されたり請求時点よりも前のブロックチェーンに含まれたりする場合はいつでも、報酬が、場合によっては預金の一部が破棄され得る。
【００１８】
しかしながら、これらの従来の方法は、不正行為を妨害するだけであり、完全に防止することはできない。つまり、日和見的な攻撃を阻止することが可能なだけであって、トランザクションを操作することを意図した標的型の攻撃を阻止することは不可能である。これらの従来の方法は、悪意のあるノードにとってはその預金や報酬を失うだけであるので、場合によっては、それらが獲得することができるものと比較して、例えば、莫大な量のステークを含むトランザクションや重要な資産を伴うトランザクションを二重使用するという事例である。
【発明の概要】
【発明が解決しようとする課題】
【００１９】
したがって、本発明の実施形態によって対処される問題の１つは、ＤＢＣＮのノードが１つのフォーク上で複数のブロックを使用することをさらに阻止することである。本発明の実施形態によって対処されるさらなる問題の１つは、ＤＢＣＮのノードが複数のフォーク上でブロックを使用することを阻止することである。本発明の実施形態によって対処されるさらなる問題の１つは、セキュリティを強化し、少なくとも二重使用攻撃を減少させ、システム効率を高めることである。
【課題を解決するための手段】
【００２０】
一の実施形態において、本発明は、マイニングコンピューティングエンティティ「ＭＣＥ」とノードコンピューティングエンティティとを含む分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」のブロックチェーンの新しいブロックに署名する方法であって、
ｉ．前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、前記ＭＣＥが、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得するステップと、
ｉｉ．前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、前記新しいブロックに対する署名を作成するステップと、
ｉｉｉ．前記ＭＣＥが、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、前記ノードコンピューティングエンティティが同一の対応するブロック高情報を含む２つの署名を受け取った時に、前記ＤＢＣＮの他のノードコンピューティングエンティティが、公開情報を提供して前記ＨＩを前記ＤＢＣＮに公開するステップと、を含む方法を提供する。
【００２１】
他の実施形態において、本発明は、少なくとも１つのマイニングコンピューティングエンティティ「ＭＣＥ」とノードコンピューティングエンティティとを含む分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」であって、
前記ＭＣＥが、
ｉ．前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得し、
ｉｉ．前記秘密鍵とブロック高情報を含むブロック情報とを用いて、新しいブロックに署名することにより、前記新しいブロックに対する署名を作成し、
ｉｉｉ．前記ＭＣＥが、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、同一の対応するブロック高情報を含む２つの署名を受け取った時に、公開情報を提供して前記ＨＩを前記ＤＢＣＮに公開する、
ように構成されることを特徴とする、ＤＢＣＮを提供する。
【００２２】
他の実施形態において、本発明は、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において新しいブロックに署名するマイニングコンピューティングエンティティ「ＭＣＥ」であって、
ｉ．前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得し、
ｉｉ．前記秘密鍵とブロック高情報を含むブロック情報とを用いて、新しいブロックに署名することにより、前記新しいブロックに対する署名を作成する、
ように構成された、ＭＣＥを提供する。
【００２３】
他の実施形態において、本発明は、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」におけるノードコンピューティングエンティティであって、
マイニングコンピューティングエンティティ「ＭＣＥ」が、同一のブロック高情報を有する異なるブロックへの少なくともさらに１つの署名を行う場合、同一の対応するブロック高情報を含む２つの署名を受け取った時に、公開情報を提供して、前記ＭＣＥの秘密情報「ＨＩ」を前記ＤＢＣＮに公開する、
ように構成された、ノードコンピューティングエンティティを提供する。
【００２４】
他の実施形態において、本発明は、マイニングコンピューティングエンティティ「ＭＣＥ」が、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」においてブロックチェーンの新しいブロックに署名する方法であって、
ａ）前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得すること、
ｂ）前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、前記新しいブロックに対する署名を作成すること、
を含む方法を提供する。
【００２５】
他の実施形態において、本発明は、分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において、前記ネットワークのノードコンピューティングエンティティが、秘密情報を公開する方法であって、
マイニングコンピューティングエンティティ「ＭＣＥ」が、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、同一の対応するブロック高情報を含む２つの署名を受け取った時に、公開情報を提供して前記ＭＣＥの秘密情報を前記ＤＢＣＮに公開する、
方法を提供する。
【００２６】
他の実施形態において、本発明は、マイニングコンピューティングエンティティ「ＭＣＥ」を含む分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」のブロックチェーンの新しいブロックに署名する方法を、コンピュータに実行させるプログラムを記憶した非一時的なコンピュータ読み取り可能な媒体であって、
ｉ．前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、前記ＭＣＥが、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得するステップと、
ｉｉ．前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、署名を作成するステップと、
ｉｉｉ．前記ＭＣＥが、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、前記ノードコンピューティングエンティティが同一の対応するブロック高情報の２つの署名を受け取った時に、前記ＤＢＣＮの他のノードコンピューティングエンティティが、公開情報を提供して前記ＨＩを前記ＤＢＣＮに公開するステップと、を含む方法をコンピュータに実行させるプログラムを記憶した媒体を提供する。
【００２７】
他の実施形態において、本発明は、マイニングコンピューティングエンティティ「ＭＣＥ」が分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」において新しいブロックに署名する方法を、コンピュータに実行させるプログラムを記憶した非一時的なコンピュータ読み取り可能な媒体であって、
ａ）前記ＭＣＥの公開鍵／秘密鍵ペアのうちの秘密鍵を用いて、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうちの少なくとも一方を行うことにより、秘密情報「ＨＩ」を取得するステップと、
ｂ）前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、署名を作成するステップと
を含む方法をコンピュータに実行させるプログラムを記憶した媒体を提供する。
【００２８】
他の実施形態において、本発明は、秘密情報を公開する方法をコンピュータに実行させるプログラムを記憶した非一時的なコンピュータ読み取り可能な媒体であって、
マイニングコンピューティングエンティティ「ＭＣＥ」が、同一のブロック高情報を有する異なるブロックに少なくともさらに１つの署名を行う場合、同一の対応するブロック高情報の２つの署名を受け取った時に、公開情報を提供して、前記ＭＣＥの秘密情報を分散型ブロックチェーンコンセンサスネットワークに公開する、
方法をコンピュータに実行させるプログラムを記憶した媒体を提供する。
【００２９】
言い換えれば、本発明は、特にブロック高情報をブロック署名に結び付けることによって、ブロックチェーンに対する確実な仮想マイニングを可能にする。
【００３０】
本発明の少なくとも１つの実施形態は、ブロックチェーンネットワークにおいてノードが１つのフォーク上で複数のブロックをマイニングすることを阻止するという利点を持ち得る。本発明の少なくとも１つの実施形態は、ノードが複数のフォーク上でブロックをマイニングすることを阻止するという利点を持ち得る。本発明の少なくとも１つの実施形態は、ＤＣＢＮにおいて不正や攻撃を行っているノードのＩＤを公開するという利点を持ち得る。本発明の少なくとも１つの実施形態は、ブロックチェーンネットワークの計算資源の効率を高め、ブロックチェーンネットワークにおける安全性を高めるという利点を持ち得る。
【００３１】
「コンピュータ読み取り可能な媒体」という用語は、計算装置やコンピュータと共に使用することが可能で、情報を記憶させることが可能ないかなる種類の媒体を指してもよい。前記情報は、コンピュータのメモリに読み込み可能ないかなる種類のデータであってもよい。例えば、前記情報は、前記コンピュータで実行するプログラムコードを含んでいてもよい。コンピュータ読み取り可能な媒体の例は、テープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＢｌｕＲａｙ、ＤＡＴ、ミニディスク、ソリッドステートディスクＳＳＤ、フロッピーディスク、ＳＤカード、ＣＦカード、メモリスティック、ＵＳＢスティック、ＥＰＲＯＭ、ＥＥＰＲＯＭなどである。
【００３２】
「コンピューティングエンティティ」および「コンピューティングデバイス」という用語は、特に請求項において、好ましくは明細書において、パーソナルコンピュータ、タブレット、携帯電話、サーバなどのような、計算を実行するよう構成されたデバイスをそれぞれが指していて、１つまたは複数のコアを有する１つまたは複数のプロセッサを有しており、本発明の１つまたは複数の実施形態の対応するステップを実行するよう構成された１つまたは複数のアプリケーションを記憶するためのメモリに接続可能であってもよい。いかなるアプリケーションも、ソフトウェアベースおよび／またはハードウェアベースで、プロセッサが動作可能なメモリ内にインストールされていてもよい。デバイス、エンティティなどは、計算される対応するステップが最適な方法で実行されるよう構成されていてもよい。例えば、異なるステップが、単一のプロセッサによりその異なるコア上で並行して実行されてもよい。また、エンティティ／デバイスは、単一のコンピューティングデバイスを形成するよう同一であってもよい。デバイス／エンティティは、物理的な計算資源上で動作する仮想デバイスとしてインスタンス化されてもよい。したがって、異なるデバイス／エンティティが、前記物理的な計算資源上で実行されてもよい。
【００３３】
「計算資源」という用語は、最も広義に理解されるものであり、特に請求項において、好ましくは明細書において、計算を実行するよう構成され、アプリケーション、サービス、ユーザなどが特定の機能、サービス、アプリケーションなどを実行するために使用可能な、いかなる種類の物理的および／または仮想的な計算資源、資源、デバイス、エンティティなどを指す。計算資源は、計算機、ネットワーク、メモリ、ストレージなどを含み得るが、これらに限定されない。例えば、計算資源は、データセンターの中のサーバの一部であるＣＰＵ資源であってもよい。したがって、サーバは、ＣＰＵ（またはｖＣＰＵ）のような計算機、ネットワークインタフェースカード（ＮＩＣ）のようなネットワーク、ＲＡＭのようなメモリ、および/または、外付け/内蔵ＨＤＤのようなストレージを備えることができる。
【００３４】
「分散型ブロックチェーンコンセンサスネットワーク」という用語は、最も一般的な意味で理解されるものであり、特に請求項において、好ましくは明細書において、ネットワーク内の参加ノード間で分散型ストレージを提供する複数のノードを有するネットワークを指す。各ノードは、好ましくは、ブロックのチェーンのライトバージョンまたはフルバージョンのいずれかのコピーを有する。各ブロックは、データステータスに普遍的に合意するクローズドレジャーであってもよい。
【００３５】
「ブロックチェーン」という用語は、特に請求項において、好ましくは明細書において、改ざんやデータベースを提供するデータ記憶ノードのオペレータによる改訂に対して強化されたデータレコードの増大し続けるリストを維持する分散型データベースとして理解されるものである。ブロックチェーンは、例えば、２種類のレコード、いわゆるトランザクションと、いわゆるブロックとを含む。トランザクションはブロックチェーンに格納される実データであり、ブロックは特定のトランザクションがブロックチェーンデータベースの一部として記録された時間と順序とを確認するレコードである。トランザクションは、参加者によって作成され得る。ブロックは、ブロックを作成するために特別に設計された特殊なソフトウェアまたは機器を使用し得るユーザによって作成され得る。「ブロックチェーン」という用語は、例えば、デジタル通貨が２００８年に導入された時のビットコインブロックチェーンと同一である。
【００３６】
「ブロック」に関して「マイニング」という用語は、最も一般的な意味で理解されるものであり、特に請求項において、好ましくは明細書において、「ブロックチェーン」内のデータの各「ブロック」に対して実行される分散コンピューティングレビュープロセスを指す。これにより、当事者が相互に認識も信頼もしていない環境でコンセンサスを得ることが可能になる。「マイニング」は「マイナー」によって実行される。
【００３７】
「ブロック」に関して「署名」という用語は、最も一般的な意味で理解されるものであり、特に請求項において、好ましくは明細書において、電子形式の他のデータに関連付けまたは関係付けられ、コンピューティングエンティティが署名する際に使用する、電子形式のデータを指す。
【００３８】
「マイナー」という用語は、最も一般的な意味で理解されるものであり、特に請求項において、好ましくは明細書において、コンピューティングエンティティを動作させて、成功ブロックを作成しトランザクション手数料からのコインとブロック自体で作成される新たなコインとを稼ぐことを意図してハッシュを繰り返し計算する、個人、人物、ユーザなどを指す。
【００３９】
「ブロック情報」という用語は、最も一般的な意味で理解されるものであり、特に請求項において、好ましくは明細書において、ブロックチェーンのブロックの特性に関連する、説明する、または特定する情報を指す。
【００４０】
「ブロック高情報」という用語は、最も一般的な意味で理解されるものであり、特に請求項において、好ましくは明細書において、ブロックチェーンのブロックの高さに関連する、説明する、または特定する情報を指す。
【００４１】
「秘密情報」という用語は、最も一般的な意味で理解されるものであり、特に請求項において、好ましくは明細書において、署名にマイニングコンピューティングエンティティを使用するユーザのＩＤに関する結論に関連する、説明する、特定する、あるいは少なくとも描写することを可能にする、暗号化された情報または何らかの形で非公開とされている情報を指す。
【００４２】
秘密情報に関して「公開情報」という用語は、最も一般的な意味で理解されるものであり、特に請求項において、好ましくは明細書において、秘密情報を公開することを可能にする情報を指す。例えば、公開情報は、秘密情報を形成する情報を暗号化するために使用される秘密鍵の形で提供され得る。秘密鍵、すなわち、公開情報を使用することで、暗号化された秘密情報の解読が可能になる。
【００４３】
「証拠秘匿プロトコル」という用語は、最も一般的な意味で理解されるものであり、特に請求項において、好ましくは明細書において、二者間プロトコルを指す。ここで、検証者は、以下のように機能するプロトコルからいかなる証拠をも知ることはできない。証明者と検証者は共通の入力ｘが分かっていて、証明者は秘密の補助入力、すなわち、証拠の集合ｗ（ｘ）からの証拠ｗを有する。証明者の目的は、証明者がｗを知らなければ実行するのが難しいであろう計算タスクを実行することである。典型的な例は、証明者がＮＰステートメントｘに対する証拠を「知っている」という対話型の証明を与えること（この場合、ｗはＮＰ証拠であり得る）、あるいは、公開鍵ｘによって後で確認可能なメッセージにデジタル署名をすることである（この場合、ｗは証明者の秘密鍵である）。証拠秘匿プロトコルは、例えば、非特許文献（Feige U.他「Witness Indistinguishable and Witness Hiding Protocols」, 1990, ACM 089791-361-2/90/0005/0416）に開示されている。
【００４４】
さらなる特徴、利点、および実施形態が、以下に記載される、あるいは、明らかになるだろう。
【００４５】
秘密情報ＨＩは、ＭＣＥの秘密鍵を公開することによって公開され得る。これにより、マイナーまたはユーザそれぞれに関連する情報を取得するために、例えば秘密情報の解読を可能にする情報を簡単な方法で提供することができる。
【００４６】
ＨＩは、ＭＣＥおよび／またはＭＣＥユーザのＩＤ情報を含み得る。これにより、ブロックチェーンへの攻撃のような不正行為にＭＣＥを使用しているマイニングコンピューティングエンティティの背後にいるユーザを、簡単な方法で特定することができる。
【００４７】
ＨＩは、その正確さについて以下のうちの少なくとも１つによって確認され得る。
Ａ）ＨＩを、証拠秘匿プロトコルを使用してＩＤプロバイダおよび／または電子ＩＤ証明書に関連付ける。
Ｂ）ＭＣＥをＤＢＣＮに登録する際に信頼できる第三者を使用する。
Ｃ）ＭＣＥをＤＢＣＮに登録する際に信頼できる実行環境エンティティを使用する。
これにより、秘密情報ＨＩの正確性について、柔軟な方法で確認することが可能になる。
【００４８】
ステップｂ）で生成される署名は、離散対数署名方式およびナンスを使用して計算され得る。離散対数署名方式は、署名するために、また、不正行為があった場合に公開可能な所定の情報を暗号化するために、ユーザの秘密鍵を効率的な方法で使用することを可能にする。
【００４９】
ナンスは、秘密鍵およびブロック高情報の入力時に擬似ランダム関数を用いて正確に計算され得る。これにより、簡単な方法で正確なナンスを計算して、同一の高さのブロックへの二重署名があった場合に秘密鍵を漏洩する署名を取得することができる。
【００５０】
ナンスを正確に計算するための証拠秘匿証明は、ＭＣＥによって計算され得る。これにより、ナンスの正確な計算に対する承認を確実な方法で得ることができる。
【００５１】
効果的に本発明の教示を設計しさらに発展させる方法はいくつかある。このため、一方では、独立請求項に従属する特許請求項を参照し、他方では、図面によって示される例として本発明のさらなる実施形態の以下の説明を参照されたい。図面を用いた本発明のさらなる実施形態の説明に関連して、一般にさらなる実施形態および教示のさらなる展開が説明される。
【図面の簡単な説明】
【００５２】
【図１】図１は、本発明の実施形態による方法のステップを示す。
【図２】図２は、本発明の実施形態による方法のステップを示す。
【図３】図３は、本発明の実施形態による方法のステップを示す。
【図４】図４は、本発明の実施形態による方法のステップを示す。
【発明を実施するための形態】
【００５３】
下記の図１乃至４では、パブリックブロックチェーンモデルを想定している。このブロックチェーンネットワークは、ピアツーピア接続のためのクライアントアプリケーションを実行する複数の分散ノードを含む。トランザクションは、公開検証のためにブロックチェーンネットワークにブロードキャストされる。そして、各マイニングノードは、検証されたトランザクションをブロックにまとめ、ブロックチェーンに含めることになる次の正当なブロックをマイニングする。マイニングプロトコルは、すべてのマイナーによって実行され、すべてのノードによって検証され、この分散システムにおけるトランザクション履歴にコンセンサスをもたらす。マイナーはそれぞれ、プロセスまたはブロックチェーンネットワークにいつでも参加してもよく、また辞めてもよい。
【００５４】
図１は、マイナーと非マイナーとを含むブロックチェーンネットワークを示す。ブロックチェーンの現在の長さは３で、マイナー＃１がブロックチェーンの新しいブロックをマイニングしたところである。
【００５５】
また、ブロックチェーンネットワークに登録するために、すべてのノードが、自身のキーペアで署名または暗号化された何らかの重要な情報を最初に提出すると仮定する。マイナー登録の際に、暗号化された情報文字列が提供され、これは、そのマイナーが二重署名を行った場合にブロックチェーンネットワークに開示されることになる。また、マイナーがブロックを確認するために使用する署名方式は、マイナーが矛盾するブロックに署名した場合に登録済みの秘密鍵が公開されるように設計されている。暗号化手法を使用すると、登録済みの秘密鍵を使用することによって公開される情報は、非常に柔軟に選択可能となり、例えば、署名者のＩＤにもなり得る。
【００５６】
マイニングコンピューティングエンティティをブロックチェーンネットワークに登録するための登録段階において、暗号化された情報文字列またはデジタル署名が提供される。暗号化された情報またはデジタル署名は、登録済み情報を復号化するまたは登録済み情報に署名するために使用される秘密鍵が開示されると、例えば、マイナーは大きな責任を負うことになるという証明を伴い得る。例えば、暗号化された情報はノードの真のＩＤになることが可能であり、デジタル署名は重要な契約への署名となることが可能である。したがって、秘密鍵が公開されると、不正を行ったノードの真のＩＤが開示される、あるいは、契約の支配を喪失することになる。
【００５７】
提示された情報は、その正確さについて、例えば、正確なＩＤ  Ｅｎｃｘ（ＵｓｅｒＩＤ）を下記のいずれかの手順で確認することが可能である。
１．証拠秘匿プロトコルを用いて、提示された情報をＩＤプロバイダまたは電子ＩＤ証明書に関連付けること。
２．登録プロセス中に信頼できる第三者を入手できること。
３．信頼できる方法で提示された情報の暗号化を実行できる、登録プロセス中の一時的かつ安全なハードウェアを入手できること。
【００５８】
ブロック署名を提供するための従来の方法は、通常、ワンタイム署名に基づく。しかしながら、これは、不正行為があった場合に秘密情報を公開するための公開情報を署名に提供するための実行可能な方法ではない。図１によれば、これは、離散対数（ＤＬＯＧ）ベースの署名方式を使用することによって達成され、ここではナンスが擬似ランダムに選択される。上記署名は、ナンスの正確な選択の証明と共に従来のＤＬＯＧベースの署名を含む。
【００５９】
詳細には、
・ブロック高ｔ＝ｎのブロックに署名しようとするマイナーは、現在のブロックが属するチェーンの高さｎから擬似ランダムに導出されたナンスと、ユーザに関連する固定的な秘密、例えば秘密の署名鍵と、を用いて署名しなければならない。
・上記マイナーはさらに、署名方式において選択されたナンスが所定の要件を満たすという証拠秘匿証明を作成する必要がある。
・すべてのマイナーは、署名が正確であり、すべての必要な要素（証明）を含むことを確認する。マイナーによる２つの署名が同一ブロック高について検出された場合、マイナーの登録済みの秘密文字列を公開するために、秘密の署名鍵が抽出されて使用される。
【００６０】
従来のＤＬＯＧベースの署名は、乱数ｒ、秘密の署名鍵ｘ、メッセージｍ、およびハッシュ関数Ｈ、ならびに、素数ｐ、およびｐを法とする整数の乗法群の生成元ｇについて、以下のように定義される。
ｒ＝ｇ^ｋ（ｍоｄ  ｐ），ｓ＝（Ｈ（ｍ）−ｘ・ｒ）・ｋ−１
【００６１】
同一ブロック高ｎのブロックへの二重署名があった場合に秘密鍵ｘを漏洩する署名を取得するために、ナンスｋは、擬似ランダム関数ＰＲＦによって以下のように導出される。
ｋ＝ＰＲＦ（秘密鍵ｘ||ブロック高ｎ）
【００６２】
マイナーは、ナンスｋの正確な計算のために非対話的証拠秘匿証明を追加することができる。いくつかの適切な方式が、文献において、例えば、非特許文献（Cramer, R.I. (1994): “Proofs of partial knowledge and simplified design of witness hiding protocols” (Annual International Cryptology Conference）)に開示されるように知られている。
【００６３】
ナンスｋの形成に関する付随する証明も正確である場合に限り、すべてのマイナーが署名を認める。同一のブロック高の、したがって同じナンスｋの２つのブロックが見つかった場合、つまり不正行為が検出された場合、秘密鍵ｘは２つの未知の変数ｘおよびｋについて以下の２つの方程式を解くことによって公開される。
ｓ１＝（Ｈ（ｍ１）−ｘ・ｒ）・ｋ−１
ｓ２＝（Ｈ（ｍ２）−ｘ・ｒ）・ｋ−１
【００６４】
その結果、誰でも秘密鍵ｘを計算することが可能であり、したがって登録段階で与えられたマイナーに関する秘密情報を公開することができる。
【００６５】
図２は、本発明の一実施形態による方法のステップを示す。
図２には、マイニングコンピューティングエンティティ「ＭＣＥ」とノードコンピューティングエンティティとを含む分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」のブロックチェーンの新しいブロックに署名する方法のステップが示されており、この方法は、以下のステップを含む。
ｉ．前記ＭＣＥの公開鍵／秘密鍵ペアの秘密鍵を用いて、前記ＭＣＥが所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうち少なくとも一方を行うことにより秘密情報「ＨＩ」を取得すること。
ｉｉ．前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、前記新しいブロックに対する署名を作成すること。
ｉｉｉ．前記ＭＣＥが同一のブロック高情報を有する別のブロックへの少なくともさらに１つの署名を行った場合、前記ノードコンピューティングエンティティが同一の対応するブロック高情報を含む２つの署名を受け取った時に、前記ＤＢＣＮの他のノードコンピューティングエンティティが、公開情報を提供して、前記ＨＩを前記ＤＢＣＮに公開すること。
【００６６】
図３は、本発明の一実施形態による方法のステップを示す。
図３には、マイニングコンピューティングエンティティ「ＭＣＥ」が分散型ブロックチェーンコンセンサスネットワーク「ＤＢＣＮ」におけるブロックチェーンの新しいブロックに署名する方法のステップが示されており、この方法は、以下のステップを含む。
ａ）前記ＭＣＥの公開鍵／秘密鍵ペアの秘密鍵を用いて、所定のＭＣＥ情報に署名すること、および／または、所定のＭＣＥ情報を暗号化すること、のうち少なくとも一方を行うことにより秘密情報「ＨＩ」を取得すること。
ｂ）前記秘密鍵とブロック高情報を含むブロック情報とを用いて、前記ＭＣＥが新しいブロックに署名することにより、前記新しいブロックに対する署名を作成すること。
【００６７】
図４は、本発明の一実施形態による方法のステップを示す。
図４には、方法が示されており、この方法は、以下のステップを含む。
１）署名鍵を鍵登録センターに登録しておき、同一の高さのメッセージに署名した場合に、予め定義された情報を漏洩するプロパティで署名方式の対応する公開鍵を公表すること。
２）署名アルゴリズムを使用してブロックに署名することであり、前記署名アルゴリズムは、メッセージ、秘密鍵、およびブロック高を別々のパラメータとして取得して署名を作成する。
３）新しいブロックがネットワークにブロードキャストされ、すべてのノードがコンセンサスプロトコルに従ってこの新しいブロックを検証することであり、これには署名の検証が含まれる。
【００６８】
要約すると、本発明は、下記を提供または可能にする。
１．ブロック高を別個のパラメータとして取得する署名方式を使用すること。
２．同一のブロック高で異なるメッセージに二重署名するだけで事前に定義された情報を公開することであるが、異なるブロック高でメッセージが署名されている場合は公開しない。
３．秘密鍵を情報の署名および暗号化に使用できるＤＬＯＧベースの署名方式を使用すること。
４．ナンス生成の自由に関して署名者を制限し、署名を正確なナンス計算の証明と組み合わせること。
【００６９】
本発明、特に少なくとも１つの実施形態は、不正行為ノードがブロックチェーンネットワークにおいて自身の完全なＩＤを公開することによって、攻撃を実行するのを妨げる。
【００７０】
仮想マイニングの従来の方法は、日和見的な攻撃を阻止することだけはできるが、トランザクションを操作することを目的とした標的型攻撃を阻止することはできない。これらの従来の方法は、悪意のあるノードにその預金や報酬を失わせるだけであるので、場合によっては、それらが獲得できるものと比較して、例えば、莫大な量のステークと含むトランザクションや重要な資産を伴うトランザクションを二重使用するという事例である。
【００７１】
本明細書に記載されている本発明の多くの変形例および他の実施形態は、前述の説明および関連する図面に提示された教示の恩恵を受けて、本発明が関係する当業者には思い浮かぶであろう。したがって、本発明は開示された特定の実施形態に限定されるものではなく、変形例および他の実施形態は添付の特許請求の範囲内に含まれることが意図されていることを理解されたい。本明細書では特定の用語が使用されているが、それらは一般的かつ説明的な意味でのみ使用されており、限定の目的では使用されていない。
【図１】
0006894979.tif 000002
【図２】
0006894979.tif 000003
【図３】
0006894979.tif 000004
【図４】
0006894979.tif 000005