(57)【特許請求の範囲】
【請求項１】
ブロックチェーン管理装置に対して、所定の支払いアドレスと、台帳の情報と前記支払いアドレスとから生成した要約値と、を提供する情報提供装置と、
前記情報提供装置から提供された情報を用いて、第１のトランザクションを含むブロックを生成する第１のブロックチェーン管理装置と、
前記第１のブロックチェーン管理装置から受信したブロックに、少なくとも、前記台帳の情報と支払いアドレスとから生成した要約値と、前記支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションとが含まれていることを条件にブロックを検証するブロック検証部と、前記ブロックの検証に成功した場合に、他のブロックチェーン管理装置と合意形成を行って、前記合意形成した前記ブロックを前記台帳に追加する合意形成部と、を備える第２のブロックチェーン管理装置と、
を含むブロックチェーン管理システム。
【請求項２】
前記第２のブロックチェーン管理装置は、
前記情報提供装置から、ブロックを検証するために必要な情報を取得する情報取得部を備える請求項１のブロックチェーン管理システム。
【請求項３】
所定の情報提供装置から、所定の支払いアドレスと、台帳の情報と前記支払いアドレスとから生成した要約値と、を受信し、
前記情報提供装置から提供された情報を用いて、第１のトランザクションと、前記台帳の情報と支払いアドレスとから生成した要約値と、前記支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションと、を含むブロックを生成する第１のブロックチェーン管理装置。
【請求項４】
第１のブロックチェーン管理装置から受信したブロックに、少なくとも、台帳の情報と所定の支払いアドレスとから生成した要約値と、前記所定の支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションとが含まれていることを条件にブロックを検証するブロック検証部と、
前記ブロックの検証に成功した場合に、他のブロックチェーン管理装置と合意形成を行って、前記合意形成した前記ブロックを前記台帳に追加する合意形成部と、
を備える第２のブロックチェーン管理装置。
【請求項５】
所定の情報提供装置からブロックを検証するために必要な情報を取得する情報取得部を備える請求項４の第２のブロックチェーン管理装置。
【請求項６】
ブロックチェーンを構成する台帳を管理する台帳格納部と、
前記台帳格納部に保持されたデータの提供対価の支払い先となる支払先アドレスを保持するアドレス情報記憶部と、
ブロックチェーン管理装置に対して、所定の支払いアドレスと、前記台帳の情報と前記支払いアドレスとから生成した要約値と、を提供する情報提供部と、
を備える情報提供装置。
【請求項７】
さらに、
所定のブロックチェーン管理装置からの要求に対して、前記台帳格納部から、ブロックを検証するために必要な情報を抽出して、提供する第２の情報提供部を備える
請求項６の情報提供装置。
【請求項８】
前記第２の情報提供部は、
前記所定のブロックチェーン管理装置からの要求に対し、ブロックの到着から所定の時間の経過後に、前記ブロックを検証するために必要な情報を提供する請求項７の情報提供装置。
【請求項９】
前記第２の情報提供部は、
前記所定のブロックチェーン管理装置からの要求に含まれるブロックの高さと、前記ブロックを検証するために必要な情報を特定するための情報との組み合わせが正しいと判定した場合に、前記ブロックを検証するために必要な情報を提供する
請求項７又は８の情報提供装置。
【請求項１０】
ブロックチェーン管理装置が、
他のブロックチェーン管理装置から受信したブロックに、少なくとも、台帳の情報と所定の支払いアドレスとから生成した要約値と、前記所定の支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションとが含まれていることを条件にブロックを検証するステップと、
前記ブロックの検証に成功した場合に、他のブロックチェーン管理装置と合意形成を行って、前記合意形成された前記ブロックを前記台帳に追加するステップと、
を含むブロックチェーン管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーン管理システム、ブロックチェーン管理装置、情報提供装置、ブロックチェーン管理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ビットコイン（非特許文献１を参照）を代表として、中央管理サーバーを必要とせず誰もが参加可能なピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ：Ｐ２Ｐ）ネットワークで、ネットワークに参加するすべてのノード間で共通の台帳を管理することが可能なブロックチェーンの普及が拡大している。【０００３】
ビットコインに代表されるブロックチェーンは、複数のブロックチェーン管理ノード（ブロックチェーン管理装置）が相互接続されたシステムである。ブロックチェーン管理ノードは、台帳格納手段とトランザクション検証手段と合意形成手段とを備える。台帳格納手段は、ブロックチェーン上に蓄積する履歴情報（以下、「トランザクション」と呼ぶ）を発行するトランザクション発行者から発行されたトランザクションを蓄積する。トランザクション検証手段は、トランザクションを検証する。合意形成手段は、ブロックチェーン管理ノード間で蓄積するトランザクションの内容を同一にする処理（「合意形成」という。「マイニング」とも呼ばれる。）を行う。台帳格納手段に蓄積されるトランザクションはデータ構造として一つまたは複数のトランザクションを集約した単位をブロックとし、当該ブロックの中に少なくとも前のブロックのハッシュ値を含むブロックヘッダを含むという特徴を持つ。このように蓄積されたブロックの集合を台帳と呼ぶ。【０００４】
そして、ブロックチェーンは概略以下のように動作する。各ブロックチェーン管理ノードは一人または複数のトランザクション発行者から発行された一つまたは複数のトランザクション情報を受信する。トランザクション検証手段は、受信した一つまたは複数のトランザクション情報の検証を行い、検証を通過した少なくとも一つ以上のトランザクションを集約してブロックを作成する。各ブロックチェーン管理ノードでブロックの内容は異なりうる。このため、合意形成手段が、ブロックチェーン管理ノード間で蓄積するブロックの内容を同一にする。合意形成手段により各ブロックチェーン管理ノードで同一となったブロックが台帳格納手段に格納される。【０００５】
また、ブロックチェーン管理ノードにはトランザクションを受け取り、ブロックを正しく生成・蓄積していくことにインセンティブがあるように設計される。例えば、ビットコインでは、ブロックを生成することで、ブロックチェーン管理ノードが仮想通貨を得ることができる。このため、多くのブロックチェーン管理ノードは正しくブロックの検証・生成を行うようにふるまう。【０００６】
このような構成及び動作により、ブロックチェーン管理ノードとして悪意のあるノードが参加した場合でも改ざんが困難かつ、各ブロックチェーン管理ノードで台帳の内容が同一となり、トランザクションが同一の順序で蓄積されていく。【０００７】
また、ブロックチェーンは上述した構成及び動作をするブロックチェーン管理ノードが複数存在し、すべてのデータを複製して管理することから、データが改ざんされないことに加えて、データの消失が起こらないことも期待されている。このようなブロックチェーンの性質を利用して、トランザクションの形でデータを登録してブロックチェーンをデータベースシステムとして利用するようなサービスが出現している。【０００８】
特許文献１には、上記した合意形成（マイニング）に必要な端末の処理能力及び記憶容量を低減することができるという仮想通貨管理プログラム及び仮想通貨管理方法が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１６−２１８６３３号公報
【非特許文献】
【００１０】
【非特許文献１】Ｓａｔｏｓｈｉ  Ｎａｋａｍｏｔｏ，  “Ｂｉｔｃｏｉｎ：  Ａ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｅｌｅｃｔｒｏｎｉｃ  Ｃａｓｈ  Ｓｙｓｔｅｍ”，２００８
【発明の概要】
【発明が解決しようとする課題】
【００１１】
以下の分析は、本発明によって与えられたものである。上記ビットコインに代表される仮想通貨システムは、ブロックを正しく生成・蓄積していくことにインセンティブがあるように設計されている。このため、すべてのブロックチェーン管理ノードがブロックを正しく生成するための情報を保持し、蓄積していくことになり、ネットワーク全体でのストレージコストが増大してしまうという問題点がある。【００１２】
この対策として、ビットコインでは実際に不必要なトランザクションを捨てて台帳の容量を削減できるモードが実装されている。しかしながら、ネットワーク全体で、台帳データの保持に対するモチベーションが下がれば、台帳に含まれる重要なデータが消失する可能性が高まってしまう。【００１３】
本発明は、ブロックチェーンの台帳データ消失可能性を抑えつつ、ネットワーク全体でのストレージコストの低減に貢献することのできるブロックチェーン管理システム、ブロックチェーン管理装置、情報提供装置、ブロックチェーン管理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
第１の視点によれば、情報提供装置と、第１のブロックチェーン管理装置と、第２のブロックチェーン管理装置と、を含むブロックチェーン管理システムが提供される。前記情報提供装置は、ブロックチェーン管理装置に対して、所定の支払いアドレスと、前記台帳の情報と前記支払いアドレスとから生成した要約値と、を提供する。前記第１のブロックチェーン管理装置は、前記情報提供装置から提供された情報を用いて、第１のトランザクションを含むブロックを生成する。前記第２のブロックチェーン管理装置は、前記第１のブロックチェーン管理装置から受信したブロックに、少なくとも、前記台帳の情報と支払いアドレスとから生成した要約値と、前記支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションとが含まれていることを条件にブロックを検証するブロック検証部と、前記ブロックの検証に成功した場合に、他のブロックチェーン管理装置と合意形成を行って、前記合意形成した前記ブロックを前記台帳に追加する合意形成部と、を備える。【００１５】
第２の視点によれば、所定の情報提供装置から、所定の支払いアドレスと、前記台帳の情報と前記支払いアドレスとから生成した要約値と、を受信し、前記情報提供装置から提供された情報を用いて、第１のトランザクションと、前記台帳の情報と支払いアドレスとから生成した要約値と、前記支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションと、を含むブロックを生成する第１のブロックチェーン管理装置が提供される。【００１６】
第３の視点によれば、第１のブロックチェーン管理装置から受信したブロックに、少なくとも、台帳の情報と所定の支払いアドレスとから生成した要約値と、前記所定の支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションとが含まれていることを条件にブロックを検証するブロック検証部と、前記ブロックの検証に成功した場合に、他のブロックチェーン管理装置と合意形成を行って、前記合意形成した前記ブロックを前記台帳に追加する合意形成部と、を備える第２のブロックチェーン管理装置が提供される。【００１７】
第４の視点によれば、ブロックチェーンを構成する台帳を管理する台帳格納部と、前記台帳格納部に保持されたデータの提供対価の支払い先となる支払先アドレスを保持するアドレス情報記憶部と、ブロックチェーン管理装置に対して、前記所定の支払いアドレスと、前記台帳の情報と前記支払いアドレスとから生成した要約値と、を提供する情報提供部と、を備える情報提供装置が提供される。【００１８】
第５の視点によれば、ブロックチェーン管理装置が、他のブロックチェーン管理装置から受信したブロックに、少なくとも、台帳の情報と所定の支払いアドレスとから生成した要約値と、前記所定の支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションとが含まれていることを条件にブロックを検証するステップと、前記ブロックの検証に成功した場合に、他のブロックチェーン管理装置と合意形成を行って、前記合意形成された前記ブロックを前記台帳に追加するステップと、を含むブロックチェーン管理方法が提供される。本方法は、他のブロックチェーン管理装置と連携して台帳を更新していくブロックチェーン管理装置という、特定の機械に結びつけられている。【００１９】
第６の視点によれば、ブロックチェーン管理装置を構成するコンピュータに、他のブロックチェーン管理装置から受信したブロックに、少なくとも、台帳の情報と所定の支払いアドレスとから生成した要約値と、前記所定の支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションとが含まれていることを条件にブロックを検証する処理と、前記ブロックの検証に成功した場合に、他のブロックチェーン管理装置と合意形成を行って、前記合意形成された前記ブロックを前記台帳に追加する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジトリーな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００２０】
本発明によれば、ブロックチェーンの台帳データ消失可能性を抑えつつ、ネットワーク全体でのストレージコストを低減することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の一実施形態の動作を説明するための図である。
【図３】本発明の一実施形態の動作を説明するための図である。
【図４】本発明の一実施形態の動作を説明するための図である。
【図５】本発明の第１の実施形態のブロックチェーン管理システムの構成を示す図である。
【図６】本発明の第１の実施形態の情報提供装置の構成を示す機能ブロック図である。
【図７】本発明の第１の実施形態のブロックチェーン管理装置の構成を示す機能ブロック図である。
【図８】本発明の第１の実施形態のブロックチェーン管理装置が作成するブロックの一例を示す図である。
【図９】本発明の第１の実施形態のブロックチェーン管理装置の動作を表したフローチャートである。
【図１０】本発明の第１の実施形態のブロックチェーン管理装置の台帳格納部に保持される台帳データの一例を示す図である。
【図１１】本発明の第１の実施形態の情報提供装置の動作（ブロック生成用情報提供）を表したフローチャートである。
【図１２】本発明の第１の実施形態のブロックチェーン管理装置の動作（ブロック検証）を表したフローチャートである。
【図１３】本発明の第１の実施形態のブロックチェーン管理装置の動作（合意形成）を表したフローチャートである。
【図１４】本発明の第２の実施形態のブロックチェーン管理装置の構成を示す機能ブロック図である。
【図１５】本発明の第２の実施形態の典型的な動作を示す図である。
【図１６】本発明の第３の実施形態の情報提供装置の構成を示す機能ブロック図である。
【図１７】本発明の第３の実施形態のブロックチェーン管理装置の構成を示す機能ブロック図である。
【図１８】本発明の第３の実施形態の情報提供装置の動作（ブロック検証用情報提供）を表したフローチャートである。
【発明を実施するための形態】
【００２２】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、以降の説明で参照する図面等のブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号（データ）の流れを模式的に示すものであり、双方向性を排除するものではない。
【００２３】
本発明は、その一実施形態において、図１に示すように、情報提供装置２００Ａと、第１のブロックチェーン管理装置１００Ａと、第２のブロックチェーン管理装置１００Ｂと、を含むブロックチェーン管理システムが提供される。情報提供装置２００Ａは、第１のブロックチェーン管理装置１００Ａに対して、所定の支払いアドレスと、台帳の情報と前記支払いアドレスとから生成した要約値と、を提供する。ブロックチェーン管理装置１００Ａは、情報提供装置２００Ａから提供された情報を用いて、第１のトランザクションを含むブロックを生成する。
【００２４】
ブロックチェーン管理装置１００Ｂは、ブロック検証部１０１と、合意形成部１０２と、台帳格納部１０３とを備える。ブロック検証部１０１は、ブロックチェーン管理装置１００Ａから受信したブロックについて、少なくとも以下の観点で適正なブロックであるか否かを確認する検証を行う。
（１）前記台帳の情報と支払いアドレスとから生成した要約値が含まれていること
（２）前記支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションが含まれていること
上記条件（１）及び（２）を確認できた場合、ブロック検証部１０１は、受信したブロックが正しく生成されていると判定する。
【００２５】
合意形成部１０２は、前記ブロックの検証に成功した場合に、他のブロックチェーン管理装置（図示省略）と合意形成を行って、前記合意形成した前記ブロックを台帳格納部１０３に格納されている台帳に追加する。なお、以下の説明では、ブロックチェーン管理装置１００Ａがブロックを生成し、ブロックチェーン管理装置１００Ｂが検証するものとして説明するが、これはどちらがブロックを先に生成するかによって変わりうる。即ち、ブロックチェーン管理装置１００Ｂがブロックを先に生成した場合、ブロックチェーン管理装置１００Ａが、ブロックチェーン管理装置１００Ｂの生成したブロックを検証することもある。また、もちろん、その他のブロックチェーン管理装置（図示省略）がブロックを先に生成した場合、ブロックチェーン管理装置１００Ａ、１００Ｂが検証ノードとなりうる。
【００２６】
例えば、図２に示すように、完全な台帳データを持たないブロックチェーン管理装置１００Ａ（第１のブロックチェーン管理装置に相当）は、ブロック作成にあたり、情報提供装置２００Ａに対し、情報を要求する（ステップＳ００１）。
【００２７】
前記情報要求を受けた情報提供装置２００Ａは、図３に示すように、ブロックチェーン管理装置１００Ａに対し、ブロックの作成に必要な情報を提供する（ステップＳ００２）。
【００２８】
ブロックチェーン管理装置１００Ａは、自身で保持している台帳の部分情報、及び、必要に応じて情報提供装置２００Ａから提供された情報を用いて、例えば、前ブロックのハッシュ値、Ｎｏｎｃｅ等の計算を行う。さらに、ブロックチェーン管理装置１００Ａは、これらの情報に、参照情報要約値と、前記支払いアドレスに宛てて前記台帳の情報の提供に対する対価を支払う第２のトランザクションとを加えたブロックを生成する。ここで、参照情報要約値としては、所定のルールで選択した台帳の情報と支払いアドレスとから生成した要約値（ハッシュ）を用いることができる（図８の参照情報要約値参照）。さらに、ブロックチェーン管理装置１００Ａは、図４に示すように、他のブロックチェーン管理装置（図４では、ブロックチェーン管理装置１００Ｂ）に対して、前記生成したブロックを送信する。
【００２９】
第２のブロックチェーン管理装置１００Ｂ（上記第２のブロックチェーン管理装置に相当）は、少なくとも、受信したブロックに、適切な参照情報要約値と、適切な第２のトランザクションが含まれているかを確認する検証処理を行う。
【００３０】
合意形成部１０２は、前記ブロックの検証に成功した場合に、他のブロックチェーン管理装置と合意形成を行って、台帳格納部１０３に格納されている台帳に、前記合意形成した前記ブロックを追加する。
【００３１】
上記構成によれば、第２のトランザクションを含むブロックが台帳に登録されることになる。この結果として、情報提供装置２００Ａの設置者や運営者は、第２のトランザクションにより、情報提供装置２００Ａによる情報提供の対価を受け取ることが可能となる。また、そのために、情報提供装置２００Ａの設置者や運営者に対し、台帳データの保持に対するインセンティブを与えることが可能となる。一方で、ブロックチェーン管理装置の設置者や運営者は、ブロックチェーン管理装置のマイニング能力向上に、その経営資源を集中させることが可能となる。これにより、マイニング能力は高くないがストレージに余裕のあるノードや、逆に、マイニング能力は高いがストレージに余裕のないノード、あるいはこれらの中間にあるノードなどが協働してブロック生成の対価を得ることが可能となる。
【００３２】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図５は、本発明の第１の実施形態の構成を示す図である。図５を参照すると、１台の情報提供装置２００と、４台のブロックチェーン管理装置（ブロックチェーン管理ノード）１００が相互に接続された構成が示されている。これらのブロックチェーン管理装置１００がトランザクション発行者から受け取ったトランザクションを検証する。そして、ブロックチェーン管理装置１００は、情報提供装置２００から提供された情報を用いて、検証を通過したトランザクションを集約してブロックを作成する。ブロックを作成したブロックチェーン管理装置１００は、他のブロックチェーン管理装置１００に作成したブロックを配布する。それぞれのブロックチェーン管理装置１００がその正当性を検証した上で台帳にブロックの内容を追加する。なお、上記の過程で、ブロックチェーン管理装置１００がブロックの作成主体となりうるため、内容の異なるブロックが作成されることがある。また、悪意を持ったブロックチェーン管理装置１００が存在する場合、不正なブロックが生成、配布される可能性もある。その場合、合意形成という手続を行って、ブロックチェーン管理装置１００間で蓄積するブロックの内容を同一にする。これにより、台帳の一貫性が保たれる。なお、図５の例では、４台のブロックチェーン管理装置を示しているが、ブロックチェーン管理装置の数は複数あればよく、図５の構成に限られない。また、情報提供装置２００がブロックチェーン管理装置としての機能を有していてもよい。
【００３３】
続いて、情報提供装置２００の構成について図面を参照して詳細に説明する。図６は、本発明の第１の実施形態の情報提供装置の構成を示す機能ブロック図である。図６を参照すると、台帳格納部２１０と、アドレス情報格納部２２０と、参照情報要約値提供部２４０と、参照情報要約値生成部２５０と、を含む情報提供装置２００が示されている。
【００３４】
台帳格納部２１０は、ブロックチェーン管理装置間の合意形成により合意されたブロックの集合である台帳を格納する。なお、台帳の更新は、情報提供装置２００自身が行っても良いし、他のブロックチェーン管理装置が行っても良い。なお、台帳格納部２１０は、台帳のすべてのデータを保持している必要はない。例えば、情報提供装置２００が他の装置（情報提供装置２００と同等の装置である場合を含む。）から台帳のデータを取得する構成であってもよい。
【００３５】
アドレス情報格納部２２０は、情報提供装置が他のブロックチェーン管理装置に対して、台帳格納部２１０に格納されている情報を提供したことに対する対価の支払いアドレスを格納する。このような支払いアドレスの例としては、Ｂｉｔｃｏｉｎ（登録商標）におけるＢｉｔｃｏｉｎアドレスが挙げられる。もちろん、ブロックに登録可能なトランザクションの支払いアドレスとして適当なものであれば、その他の仮想通貨の支払いアドレスや銀行口座情報等であってもよい。
【００３６】
参照情報要約値提供部２４０は、ブロックチェーン管理装置１００からの要求に応じて、台帳格納部２１０に格納された台帳から所定のルールで選択した情報（以下、「参照情報」という）と支払いアドレスとの要約値（以下、「参照情報要約値」という）を提供する。より具体的には、参照情報要約値提供部２４０は、参照情報要約値生成部２５０に対し、参照情報要約値の生成を要求する。参照情報要約値生成部２５０から参照情報要約値を受信すると、参照情報要約値提供部２４０は、要求元のブロックチェーン管理装置１００に参照情報要約値を送信する。
【００３７】
参照情報要約値生成部２５０は、台帳格納部２１０及びアドレス情報格納部２２０から、参照情報要約値提供部２４０から指定された参照情報と、支払いアドレスをそれぞれ取り出して、参照情報要約値を生成する。参照情報要約値は、所定の計算方法で計算される。例えば、参照情報と支払いアドレスとを結合して、そのハッシュ値を参照情報要約値としてもよい。
【００３８】
続いて、ブロックチェーン管理装置１００の構成について図面を参照して詳細に説明する。図７は、本発明の第１の実施形態のブロックチェーン管理装置の構成を示す機能ブロック図である。図７を参照すると、ブロック受信部１１０と、ブロック検証部１２０と、合意形成部１３０と、台帳格納部１４０と、を含むブロックチェーン管理装置１００が示されている。
【００３９】
ブロック受信部１１０は、ブロックチェーンのネットワークに送信されたブロックを受信する。このブロックＢは、図８に示すように、一つまたは複数のトランザクションに、ブロックヘッダＢＨを付加して構成される。さらに、このブロックヘッダＢＨは、直前のブロックに含まれるブロックヘッダを要約したブロックヘッダ要約値（図８のＨａｓｈ）と、前述の参照情報要約値を含む。さらに、本実施形態で正当と判断されるブロックＢには、インセンティブ支払いトランザクションと呼ばれる、通常のトランザクションＴＲＸ１とは異なるトランザクションＴＲＸ２が格納される。インセンティブ支払いトランザクションＴＲＸ２は、上記第２のトランザクションに相当し、情報提供装置２００から参照情報要約値とともに提供された支払いアドレスと、支払い額を含む。なお、参照情報は、ブロックチェーン管理装置１００間で共有する所定のルールによって決定されるものであればよく、台帳の複数の部分であってもよい。この場合、参照情報は複数となり、参照情報要約値は、これら複数の参照情報から１つ、又は、複数生成される。
【００４０】
ブロック検証部１２０は、第２トランザクション抽出部１２１と、参照情報要約値検証部１２２と、参照情報決定部１２３と、を含み、受信したブロックが正しく生成されていることを検証する。具体的には、第２トランザクション抽出部１２１は、受信したブロックから、上述のインセンティブ支払いトランザクション（第２のトランザクション）を抽出する。
【００４１】
参照情報決定部１２３は、前記所定のルールに基づいて、台帳の一部またはすべての情報に基づいた台帳の部分的情報である参照情報を決定する。なお、前記所定のルールは、すべてのブロックチェーン管理装置１００が、台帳の情報から、同一の部分的情報である参照情報を特定できるようなルールであってもよい。また、参照情報としてブロックチェーン管理装置の台帳格納部１４０に存在しない（破棄されている）ような台帳が選択されるようなルールが用いられる場合は、第３の実施形態にて説明する。
【００４２】
参照情報要約値検証部１２２は、ブロックがブロックチェーン規定のルールに則って生成されているか否かの確認を行うほか、次の観点でブロックの検証を行う。まず、参照情報要約値検証部１２２は、前記インセンティブ支払いトランザクション（第２のトランザクション）に含まれる支払いアドレス情報と、参照情報決定部１２３にて決定された参照情報とを用いて、参照情報要約値を計算する。そして、この参照情報要約値が、ブロックに含まれている参照情報要約値と一致した場合、参照情報要約値検証部１２２は、ブロックが正しく生成されていると判定する。
【００４３】
合意形成部１３０は、前記受信したブロックが前記ブロック検証部１２０で正しく生成されたと判断された場合に、他のブロックチェーン管理装置との間で、当該ブロックを台帳格納部１４０に蓄積するかどうかについて合意する合意形成手順を実施する。
【００４４】
台帳格納部１４０は、前記合意形成部１３０によって合意されたブロックの集合である台帳の少なくとも一部を格納する。
【００４５】
次に、ブロックチェーン管理装置１００の動作について図面を参照して詳細に説明する。はじめに、図９を参照してブロックチェーン管理装置１００が受信したブロックを検証し、台帳格納部１４０に格納するまでの一連の動作について説明する。
【００４６】
ブロック受信部１１０が、他のブロックチェーン管理装置１００等からブロックを受信する（ステップＡ１）。ここでは、図８に示すブロックＢを受信したとする。図８に示したとおり、このブロックＢは、トランザクションの集合であるボディに、直前のブロックのブロックヘッダを要約したブロックヘッダ要約値（Ｈａｓｈ）と、合意形成部１３０で使用されるＮｏｎｃｅと呼ばれる値と、参照情報要約値を含んだブロックヘッダを付加した構成となっている。このブロックＢのボディには、インセンティブ支払いトランザクション（第２のトランザクション）が含まれている。
【００４７】
次に、ブロック検証部１２０が前記受信したブロックＢに対して検証を行う（ステップＡ２）。ここでの検証の内容については、後に、図１２のフローチャートを用いて説明する。
【００４８】
前記検証の結果、前記ブロックが正しく生成されていないと判定された場合（ステップＡ３のＮｏ）、ブロックチェーン管理装置１００はブロックを廃棄する（ステップＡ４）。
【００４９】
一方、ブロックが正しく生成されたと判定した場合（ステップＡ３のＹｅｓ）、合意形成部１３０が、他のブロックチェーン管理装置１００と合意形成を行う（ステップＡ５）。この合意形成の仕方については、後に、図１３のフローチャートを用いて説明する。
【００５０】
最後に、ブロックチェーン管理装置１００は、他のブロックチェーン管理装置１００と合意形成できたブロックを台帳格納部１４０に格納する（ステップＡ６）。図１０は、台帳格納部１４０に保持される台帳データの一例を示す図である。図１０の例では、合意形成の結果、ブロックの高さ５０１のブロックが追加された状態を示している。なお、台帳格納部１４０における台帳の格納態様は、図１０に示した例に限られず、種々の変更を加えることが可能である。例えば、図１０の例では、ブロックの高さとブロック本体とを対応付けた構成としているが、この形態に限られるものではない。
【００５１】
続いて、図１１のフローチャートを用いて、上記図８に示すブロックを生成するブロックチェーン管理装置１００に対して、ブロックの作成に必要な情報を提供する情報提供装置２００の動作について説明する。
【００５２】
図１１を参照すると、まず、情報提供装置２００は、ブロックを生成するブロックチェーン管理装置１００から、参照情報要約値の送信要求を受信する（ステップＤ１）。
【００５３】
次に、情報提供装置２００は、台帳格納部２１０から、前記所定のルールに基づいて、台帳の一部またはすべての情報に基づいた台帳の部分的情報である参照情報を取り出す（ステップＤ２）。
【００５４】
次に、情報提供装置２００は、アドレス情報格納部２２０から、支払いアドレス情報を取り出す（ステップＤ３）。
【００５５】
次に、情報提供装置２００は、参照情報と支払いアドレス情報とを用いて参照情報要約値を生成する（ステップＤ４）。
【００５６】
次に、情報提供装置２００は、参照情報要約値の送信要求の送信元のブロックチェーン管理装置１００に対し、前記生成した参照情報要約値と支払いアドレス情報を送信する（ステップＤ５）。
【００５７】
以上により、ブロックチェーン管理装置１００は、情報提供装置２００から受け取った参照情報要約値及び支払いアドレス情報を用いて図８に示すブロックを作成する。
【００５８】
続いて、図１２のフローチャートを用いて、上記図９のステップＡ２におけるブロック検証部１２０によるブロックの検証処理について詳細に説明する。以下では、ブロックチェーン管理装置１００が、図８に示すブロックを受信したものとして説明する。
【００５９】
検証対象となるブロックが入力されると、まず、ブロック検証部１２０の参照情報決定部１２３が、前記所定のルールに従い、台帳の中の部分的な情報を識別（特定）できる識別子を少なくとも一つ生成して、参照情報を指定する（ステップＢ１）。
【００６０】
前記参照情報の識別子には、例えば、ブロックの高さなどを用いることができる（図８参照）。参照情報を指定する前記所定のルールとしては、例えば、次のものを用いることができる。
・直前のブロックの一部（Ｎｏｎｃｅの値や直前のブロックのハッシュ値など）に対してＳＨＡ−２５６等のハッシュ関数を用いて１６進数の数値を作成する。
・この数値の一部分（下数桁など）に対して、最新のブロックの高さで剰余演算して得られた値に１を加える。
以上のようなルールを用いることで、どの高さのブロックを参照情報として指定するかを１〜現在のブロック高さの間で決定することができる。
【００６１】
例えば、図１０に示した台帳の中で直前のブロックである高さが５００のブロックに含まれる直前のブロックのハッシュ値（つまり高さ４９９のブロックヘッダのハッシュ値）についてＳＨＡ−２５６ハッシュ関数でハッシュ値を取る。ここで、ハッシュ値として‘9a796cbfa5cc884d7f3e7ddf6c743dfeb9a78e876766d3243e893e4ded4e638d’という値が得られたものとする。その下１６ケタの１６進数‘3e893e4ded4e638d’に対して現在のブロック高さである５００で剰余を取って＋１することで参照するブロックは‘２９４’となる。
【００６２】
なお、参照情報の識別子及びその決定方法はこの限りではない。例えば、参照情報の識別子は、ブロックの高さと、ブロック内のトランザクションを識別する番号といった複数の情報で構成されてもよい。また、これらの複数の情報で構成される識別子を直前のブロックの複数の部分的情報から取得してもよいし、直近の複数のブロックなどからそれぞれ生成することでもよい。また、参照情報の識別子が複数存在し、複数の参照情報を指定してもよい。
【００６３】
上記参照情報を選択するための識別子は、台帳の中から参照情報を識別できる情報であればよくその形態を問わない。また、参照情報の識別子は、ある程度一様に台帳の部分的情報が選択されるものであってもよい。
【００６４】
次に、ブロック検証部１２０の第２トランザクション抽出部１２１が、受信したブロックからインセンティブ支払いトランザクションＴＲＸ２を抽出する（ステップＢ２）。
【００６５】
次に、参照情報要約値検証部１２２は、台帳格納部１４０から参照情報決定部１２３にて決定された参照情報を取得する（ステップＢ３）。
【００６６】
次に、参照情報要約値検証部１２２は、前記インセンティブ支払いトランザクションＴＲＸ２に含まれる支払いアドレス情報と、前記参照情報とを用いて、参照情報要約値を計算する。そして、この参照情報要約値が、ブロックに含まれている参照情報要約値と一致した場合、ブロックが正しく生成されていると判定する（ステップＢ４）。
【００６７】
なお、複数の参照情報がある場合に、それらを連結したものと支払いアドレス情報による一つの参照情報要約値を検証してもよいし、複数の参照情報要約値をそれぞれ対応する参照情報と支払いアドレス情報で検証してもよい。また検証の方法は上記の方法に限定せず、参照情報要約値が参照情報と支払いアドレス情報から生成されたものであると検証できればよい。
【００６８】
続いて、図１３のフローチャートを用いて、上記図９のステップＡ５における合意形成部１３０による合意形成処理について詳細に説明する。なお、以下の説明では、一例としてビットコインで採用されているＰｒｏｏｆ  ｏｆ  Ｗｏｒｋと呼ばれる仕組みによる合意形成について説明するが、他の合意形成方法でもよく、合意形成の方法については問わない。
【００６９】
図１３を参照すると、まず、合意形成部１３０は、ブロックのハッシュ値を確認する（ステップＣ１）。ハッシュ値はブロック全体に対して取るのでもよいし、ブロックの特徴を要約した値について取るのでもよい。ここでは、図８に示すブロックのハッシュ値として、１６進数で “0000000000000000000000000000000000000000000000002bcad85e7b40d3a4”という値が得られたものとして説明する。
【００７０】
最後に、合意形成部１３０は、ブロックのハッシュ値が目標値より小さいかどうかを判定し、ブロックのハッシュ値が小さい場合に合意形成ができたと判定とする（ステップＣ２）。ここで、目標値（Ｄｉｆｆｉｃｕｌｔｙ）は事前にシステムに固有の値が決定されているのでもよいし、以前のブロックを参照して計算して生成されるのでもよい。ここで、図８に示されたブロックに対する目標値が、“0000000000000000000000000000000000000000000000010000000000000000”であった場合、前述した図８のブロックのハッシュ値＜当該目標値となるため、合意形成ができたと判定される。
【００７１】
このような合意形成の方法はＰｒｏｏｆ  ｏｆ  Ｗｏｒｋと呼ばれ、ブロックを生成する際に、図８のブロックに示すようなＮｏｎｃｅと呼ばれる値を変化させ、ブロックのハッシュ値が目標値より小さくなるようにブロックを生成する。ハッシュ値からＮｏｎｃｅを逆算することはできないことから、ブロックチェーン管理装置１００は、総当たりでＮｏｎｃｅを試す必要がある。このため、ブロックの生成には、ある程度の計算コストと時間を所要する。ブロックの生成にかかる時間は目標値によってコントロールでき、たとえばビットコインでは直近のいくつかのブロックの生成間隔から、今後もブロックの生成にかかる時間が１０分程度になるように調整される。Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋを用いる合意形成部１３０は、計算コストを掛けて生成されたブロックかどうかを、ブロックのハッシュ値によって検証できる。ブロックチェーンのネットワークに参加している大部分のブロックチェーン管理装置１００が同じルールに従ってブロックのハッシュ値を検証し、検証を通過したブロックのみを台帳格納部１４０に格納するブロックとすることで、ネットワーク全体では合意を形成することができる。
【００７２】
以上説明したように、本実施形態のブロックチェーン管理装置１００と情報提供装置２００によれば、情報提供装置２００に対する情報提供の対価となるインセンティブ支払いトランザクションＴＲＸ２を含んだブロックにて合意形成し、台帳に登録することが可能となる。換言すると、本実施形態によれば、トランザクションを保持することに対するインセンティブと、ブロック生成（マイニング）に対するインセンティブとを切り分けることができる。
【００７３】
これは、すべてのブロックチェーン管理装置１００が、すべてのトランザクションを保持する必要はなく、特定のブロックチェーン管理装置１００は、ブロック生成（マイニング）に専念することができることを意味する。即ち、ブロックチェーンに参加するノードのうち、マイニング報酬に魅力を感じる者は、ストレージコストを削減し、限られた計算機資源をブロック生成（マイニング）に集中させ、より効率よくマイニング報酬を得ることが可能となる。
【００７４】
他方、本実施形態によれば、トランザクションを保持する情報提供装置２００側にも報酬を与えることができる。これにより、ブロックチェーンの台帳データ消失可能性を抑えることが可能となる。
【００７５】
［第２の実施形態］
上記した実施形態では、ブロックチェーン管理装置１００がトランザクション発行者からトランザクションを受け取ってブロックを生成する仕組みについては省略したが、ブロックチェーン管理装置１００がこれらの機能を備えていてもよい。例えば、図１４のように、ブロックチェーン管理装置１００Ｃが、トランザクション受信部１５０と、ブロック生成部１６０と備えていてもよい（第２の実施形態）。
【００７６】
トランザクション受信部１５０は、トランザクション発行者または他のブロックチェーン管理装置１００からトランザクションを受信する（図１５の（１）参照）。そして、ブロック生成部１６０は、台帳格納部１４０に格納された直前のブロックのハッシュ値と、参照情報要約値と、インセンティブ支払いトランザクションを含むトランザクションをまとめてブロックを生成し、他のブロックチェーン管理装置１００に配布する（図１５の（２））。以降の動作は第１の実施形態と同様であるので説明を省略する。
【００７７】
以上のように、上記ブロックの検証機能は、トランザクションを受け取ってブロックを生成する機能を備えているブロックチェーン管理装置１００にも設けることが可能である。
【００７８】
［第３の実施形態］
上記した実施形態では、ブロックチェーン管理装置１００が、ブロックの検証を行う際に、自身の台帳格納部１４０から参照情報を取得するものとして説明したが、情報提供装置から参照情報を取得することとしてもよい。
【００７９】
図１６は、本発明の第３の実施形態の情報提供装置の構成を示す機能ブロック図である。図６に示した第１の情報提供装置２００との相違点は、情報提供装置２００Ａに参照情報提供部２３０が追加されている点である。
【００８０】
参照情報提供部２３０は、ブロックチェーン管理装置１００Ｄからの参照情報の送信要求に基づいて台帳格納部２１０から参照情報を取り出して、ブロックチェーン管理装置１００Ｄに送信する。なお、悪意を持ったブロックチェーン管理装置が、参照情報の提供を受けることにより、参照情報要約値を作成可能になってしまう。このため、参照情報提供部２３０が、ブロックチェーン管理装置１００に対し、参照情報を送信するタイミングとしては、前ブロックの到着から十分な時間の経過、または、次ブロックの到着などの条件を設けることが好ましい。この参照情報提供部２３０が、第２の情報提供部に相当する。
【００８１】
図１７は、参照情報の取得機能を備えたブロックチェーン管理装置１００Ｄの構成を示す図である。図７に示したブロックチェーン管理装置１００との相違点は、ブロック検証部１２０内に、参照情報取得部１２４が追加されている点である。
【００８２】
参照情報取得部１２４は、参照情報決定部１２３にて決定された参照情報の送信を要求し、情報提供装置２００から参照情報を受け取る。参照情報取得部１２４は、受信した参照情報を参照情報要約値検証部１２２に送る。なお、参照情報取得部１２４が、情報提供装置２００Ａに送信する参照情報の要求には、ブロックの高さ及び参照情報を識別する情報（識別子）が含まれているものとする。
【００８３】
参照情報要約値検証部１２２は、第１の実施形態と同様に、インセンティブ支払いトランザクション（第２のトランザクション）に含まれる支払いアドレス情報と、参照情報取得部１２４にて取得された参照情報とを用いて、参照情報要約値を計算する。そして、この参照情報要約値が、ブロックに含まれている参照情報要約値と一致した場合、ブロックが正しく生成されていると判定する。
【００８４】
図１８は、本発明の第３の実施形態の情報提供装置２００Ａの動作を表したフローチャートである。図１８を参照すると、情報提供装置２００Ａは、ブロックチェーン管理装置１００Ｄから参照情報の送信要求を受信すると（ステップＥ１）、台帳格納部２１０に該当ブロック高さのブロックが存在するか否かを確認する（ステップＥ２）。ここで、該当するブロック高さのブロックが存在しない場合、情報提供装置２００Ａは、処理を終了する（ステップＥ６）、
【００８５】
一方、台帳格納部２１０に、該当するブロック高さのブロックが存在する場合、情報提供装置２００Ａは、参照情報を特定する情報（識別子）が適切か否かを確認する（ステップＥ３）。ここで、参照情報を特定する情報（識別子）が適切でない場合、情報提供装置２００Ａは、処理を終了する（ステップＥ６）。
【００８６】
一方、参照情報を特定する情報（識別子）が適切である場合、情報提供装置２００Ａの参照情報提供部２３０は、台帳格納部２１０から該当する参照情報を取り出し、ブロックチェーン管理装置１００に送信する。以降の動作は、第１の実施形態と同様であるので説明を省略する。
【００８７】
以上のように、本実施形態によれば、参照情報がブロックチェーン管理装置１００の台帳格納部１４０から削除されている場合でも、ブロックの検証を行うことが可能となる。即ち、参照情報の決定ルール（所定のルール）として、情報提供装置２００から参照情報を受け取ることを前提としたルールを用いることが可能となり、ストレージコストを低減することが可能となる。
【００８８】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成、メッセージの表現形態は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【００８９】
例えば、図１、６、７、１４、１６、１７に示したブロックチェーン管理装置や情報提供装置の各部（処理手段）は、これらの装置に搭載されたプロセッサに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００９０】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点によるブロックチェーン管理システム参照）
［第２の形態］
（上記第２の視点による第１のブロックチェーン管理装置参照）
［第３の形態］
（上記第３の視点による第２のブロックチェーン管理装置参照）
［第４の形態］
（上記第４の視点による情報提供装置参照）
［第５の形態］
上記した第２のブロックチェーン管理装置は、
前記情報提供装置から、ブロックを検証するために必要な情報を取得する情報取得部を備えることが好ましい。
［第６の形態］
上記した情報提供装置の前記第２の情報提供部は、
所定のブロックチェーン管理装置からの要求に対して、前記台帳格納部から、前記ブロックを検証するために必要な情報を抽出して、提供する第２の情報提供部（参照情報提供部）を備えることが好ましい。
［第７の形態］
上記した第２の情報提供部は、さらに、
前記所定のブロックチェーン管理装置からの要求に対し、ブロックの到着から所定の時間の経過後に、前記ブロックを検証するために必要な情報を提供することが好ましい。
［第８の形態］
上記した情報提供装置の前記第２の情報提供部は、
前記所定のブロックチェーン管理装置からの要求に含まれるブロックの高さと、前記ブロックを検証するために必要な情報を特定するための情報との組み合わせが正しいと判定した場合に、前記ブロックを検証するために必要な情報を提供することが好ましい。
［第９の形態］
（上記第５の視点によるブロックチェーン管理方法参照）
［第１０の形態］
（上記第６の視点によるコンピュータプログラム参照）
【００９１】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００９２】
１００、１００Ａ〜１００Ｄ  ブロックチェーン管理装置
１０１、１２０  ブロック検証部
１０２、１３０  合意形成部
１０３、１４０、２１０  台帳格納部
１１０  ブロック受信部
１０２、１２０  ブロック検証部
１２１  第２トランザクション抽出部
１２２  参照情報要約値検証部
１２３  参照情報決定部
１２４  参照情報取得部
１５０  トランザクション受信部
１６０  ブロック生成部
２００、２００Ａ  情報提供装置
２２０  アドレス情報格納部
２３０  参照情報提供部
２４０  参照情報要約値提供部
２５０  参照情報要約値生成部
Ｂ  ブロック
ＢＨ  ブロックヘッダ
ＴＲＸ１  トランザクション
ＴＲＸ２  インセンティブ支払いトランザクション（第２のトランザクション）
【図１】
0006969664.tif 000002
【図２】
0006969664.tif 000003
【図３】
0006969664.tif 000004
【図４】
0006969664.tif 000005
【図５】
0006969664.tif 000006
【図６】
0006969664.tif 000007
【図７】
0006969664.tif 000008
【図８】
0006969664.tif 000009
【図９】
0006969664.tif 000010
【図１０】
0006969664.tif 000011
【図１１】
0006969664.tif 000012
【図１２】
0006969664.tif 000013
【図１３】
0006969664.tif 000014
【図１４】
0006969664.tif 000015
【図１５】
0006969664.tif 000016
【図１６】
0006969664.tif 000017
【図１７】
0006969664.tif 000018
【図１８】
0006969664.tif 000019