(57)【要約】【課題】過去のデータを削除可能とし、且つ、セキュリティ性を維持した状態で長期間継続してデータ管理を行うことができる管理システムを提供する。【解決手段】管理システムは、複数の下位ブロックチェーンの演算装置と、上位ブロックチェーンの演算装置とを備える。前記下位ブロックチェーンの演算装置は、トランザクションデータの登録を受け付けるデータ受付部と、第１ブロックデータを作成する第１ブロックデータ作成部と、ブロックデータ群のハッシュ値を計算するハッシュ計算部と、前記ハッシュ値の登録を要求する登録要求部と、前記第１ブロックデータを削除する削除処理部とを有する。前記上位ブロックチェーンの演算装置は、前記ハッシュ値の登録要求を受け付ける登録受付部と、第２ブロックデータを作成する第２ブロックデータ作成部と、前記第１ブロックデータの不正の有無を判断するデータ検証部と、を有する。【選択図】図１
2020178240.tif 000002
【特許請求の範囲】
【請求項１】
複数の下位ブロックチェーンのそれぞれの演算装置と、上位ブロックチェーンの演算装置とを備える管理システムであって、
複数の前記下位ブロックチェーンの演算装置のそれぞれは、
トランザクションデータの登録を受け付けるデータ受付部と、
受け付けた前記トランザクションデータを含む第１ブロックデータを作成する第１ブロックデータ作成部と、
少なくとも一つの前記第１ブロックデータからなるブロックデータ群のハッシュ値を計算するハッシュ計算部と、
前記上位ブロックチェーンの演算装置に対し、前記ブロックデータ群の前記ハッシュ値の登録を要求する登録要求部と、
所定のタイミングで一の前記下位ブロックチェーンの全ての前記第１ブロックデータを削除する削除処理部と、
を有し、
前記上位ブロックチェーンの演算装置は、
複数の前記下位ブロックチェーンの演算装置から前記ブロックデータ群の前記ハッシュ値の登録要求を受け付ける登録受付部と、
受け付けた前記ブロックデータ群の前記ハッシュ値を含む第２ブロックデータを作成する第２ブロックデータ作成部と、
前記第２ブロックデータに含まれる前記ブロックデータ群の前記ハッシュ値に基づいて、削除された前記第１ブロックデータ以外の複数の前記第１ブロックデータに対する不正の有無を判断する判定処理を実行するデータ検証部と、
を有する、
管理システム。
【請求項２】
複数の前記下位ブロックチェーンの演算装置のそれぞれは、
前記第１ブロックデータを削除したことを前記上位ブロックチェーンの演算装置に通知する通知処理部、を有し、
前記上位ブロックチェーンの演算装置の前記データ検証部は、前記通知処理部から削除を通知された前記第１ブロックデータ以外の複数の前記第１ブロックデータに対し、前記判定処理を実行する、請求項１に記載の管理システム。
【請求項３】
前記第２ブロックデータは、前記第１ブロックデータを特定可能なブロックＩＤを更に含み、
前記上位ブロックチェーンの演算装置は、前記ブロックＩＤにより特定される前記第１ブロックデータを含む前記ブロックデータ群のハッシュ値を前記下位ブロックチェーンの演算装置から取得するハッシュ取得部を更に有し、
前記データ検証部は、前記第２ブロックデータに含まれる前記ブロックデータ群の前記ハッシュ値と、前記ハッシュ取得部が取得した当該ブロックデータ群の前記ハッシュ値とが一致しない場合、当該ブロックデータ群に含まれる第１ブロックデータが不正であると判断する、
請求項１又は２に記載の管理システム。
【請求項４】
少なくとも二つの前記下位ブロックチェーンの演算装置のそれぞれは、同一の前記トランザクションデータを受け付ける、
請求項１から３の何れか一項に記載の管理システム。
【請求項５】
前記第１ブロックデータを削除する際に、一の前記下位ブロックチェーンの演算装置は、所定の条件を満たす前記トランザクションデータを、新たなトランザクションデータとして他の前記下位ブロックチェーンの演算装置に登録するように要求する、
請求項１から４の何れか一項に記載の管理システム。
【請求項６】
複数の前記下位ブロックチェーンの演算装置のそれぞれは、
前記トランザクションデータの削除可否を示す情報の登録を更に受け付け、
前記トランザクションデータについて削除不可を示す情報が登録されていた場合、前記条件を満たすと判断する、
請求項５に記載の管理システム。
【請求項７】
複数の下位ブロックチェーンのそれぞれの演算装置と、上位ブロックチェーンの演算装置とを用いた管理方法であって、
複数の前記下位ブロックチェーンの演算装置のそれぞれにおいて、
トランザクションデータの登録を受け付けるステップと、
受け付けた前記トランザクションデータを含む第１ブロックデータを作成するステップと、
少なくとも一つの前記第１ブロックデータからなるブロックデータ群のハッシュ値を計算するステップと、
前記上位ブロックチェーンの演算装置に対し、前記ブロックデータ群の前記ハッシュ値の登録を要求するステップと、
所定のタイミングで全ての前記第１ブロックデータを削除するステップと、
を実行し、
前記上位ブロックチェーンの演算装置において、
複数の前記下位ブロックチェーンの演算装置から前記ブロックデータ群の前記ハッシュ値の登録要求を受け付けるステップと、
受け付けた前記ブロックデータ群の前記ハッシュ値を含む第２ブロックデータを作成するステップと、
前記第２ブロックデータに含まれる前記ブロックデータ群の前記ハッシュ値に基づいて、削除された前記第１ブロックデータ以外の複数の前記第１ブロックデータに対する不正の有無を判断するステップと、
を実行する、
管理方法。
【請求項８】
下位ブロックチェーンの演算装置が受け付けたトランザクションデータを含む少なくとも一つの第１ブロックデータからなるブロックデータ群のハッシュ値の登録要求を受け付ける登録受付部と、
受け付けた前記ブロックデータ群の前記ハッシュ値を含む第２ブロックデータを作成する第２ブロックデータ作成部と、
前記第２ブロックデータに含まれる前記第１ブロックデータに関連する前記ハッシュ値に基づいて、削除された前記第１ブロックデータ以外の複数の前記第１ブロックデータに対する不正の有無を判断するデータ検証部と、
を有する、
上位ブロックチェーンの演算装置。
【請求項９】
上位ブロックチェーンの演算装置のコンピュータを機能させるプログラムであって、
下位ブロックチェーンの演算装置が受け付けたトランザクションデータを含む少なくとも一つの第１ブロックデータからなるブロックデータ群のハッシュ値の登録要求を受け付けるステップと、
受け付けた前記ブロックデータ群の前記ハッシュ値を含む第２ブロックデータを作成するステップと、
前記第２ブロックデータに含まれる前記第１ブロックデータに関連する前記ハッシュ値に基づいて、削除された前記第１ブロックデータ以外の複数の前記第１ブロックデータに対する不正の有無を判断するステップと、
を前記コンピュータに演算させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理システム、管理方法、上位ブロックチェーンの演算装置、及びプログラムに関する。
【背景技術】
【０００２】
近年では、セキュリティ性の高いデータ管理システムとして、ブロックチェーン等の分散型台帳技術を用いたシステムが知られている。ブロックチェーンは、取引に係るデータ（トランザクションデータ）の塊を一つのブロックとし、このブロックを時系列に鎖状に連結させて、ネットワーク上の複数のノード間で共有する仕組みである。各ブロックには、一つ前のブロックのハッシュ値が含まれる。このため、ブロックの改ざんは、一つ後のブロックに含まれるハッシュ値との整合性によって容易に検出することができる。そうすると、ある一のブロックを改ざんするためには、時々刻々と増加する後続ブロック全てを変更しなければならないので、ブロックチェーンにおいてブロックの改ざんを行うことは非常に困難となる。ブロックチェーンでは、このようにしてセキュリティ性を向上させている。
【０００３】
また、ブロックチェーンはビットコインのような仮想通貨の取引にも用いられているが、ブロックの作成周期が約１０分と長いことから、短時間で取引を完了させたいというニーズに応えることが困難であった。このため、ブロックの作成周期が長いメインのブロックチェーンとは別のブロックチェーン（サイドチェーン）を用意し、高速処理が必要な取引についてはサイドチェーンで管理し、サイドチェーンで管理されている情報のハッシュ値を定期的に上位のブロックチェーンで管理する技術が考えられている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１８３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ブロックチェーンを用いたシステムを一度稼働させると、連続するブロック間でハッシュ値を整合させるという性質上、過去のトランザクションデータを削除することは困難であった。このため、各ノードの記憶容量よりもブロックの総データ容量が大きくなってしまった場合、全てのブロックを削除する、もしくは新たなブロックチェーンを用意する必要がある。
【０００６】
また、上述の特許文献１のように、メインのブロックチェーンとサイドチェーンとの複数のブロックチェーンを運用する場合、各ブロックチェーンに記憶されるデータ容量を小さくすることができる。しかしながら、各ノードの記憶容量に限度があることには変わりないので、例えばあるサイドチェーンにおいて各ノードの記憶容量よりもブロックの総データ容量が大きくなってしまった場合は、全てのブロックを削除する、もしくは新たなブロックチェーンを用意する必要がある。そうすると、従来のブロックチェーンを用いたシステムでは、長期間継続してデータ管理を行うことが困難となったり、別のサイドチェーンに切り替える際、チェーンの長さが短くなるため、攻撃されやすくなる可能性があった。
【０００７】
本発明の少なくとも一実施形態はこのような課題に鑑みてなされたものあって、過去のデータを削除可能とし、且つ、セキュリティ性を維持した状態で長期間継続してデータ管理を行うことができる管理システム、管理方法、上位ブロックチェーンの演算装置、及びプログラムを提供する。
【課題を解決するための手段】
【０００８】
本発明の第１の態様によれば、管理システムは、複数の下位ブロックチェーンのそれぞれの演算装置と、上位ブロックチェーンの演算装置とを備える。複数の前記下位ブロックチェーンの演算装置それぞれは、トランザクションデータの登録を受け付けるデータ受付部と、受け付けた前記トランザクションデータを含む第１ブロックデータを作成する第１ブロックデータ作成部と、少なくとも一つの前記第１ブロックデータからなるブロックデータ群のハッシュ値を計算するハッシュ計算部と、前記上位ブロックチェーンの演算装置に対し、前記ブロックデータ群の前記ハッシュ値の登録を要求する登録要求部と、所定のタイミングで一の前記下位ブロックチェーンの全ての前記第１ブロックデータを削除する削除処理部と、を有する。前記上位ブロックチェーンの演算装置は、複数の前記下位ブロックチェーンの演算装置から前記ブロックデータ群の前記ハッシュ値の登録要求を受け付ける登録受付部と、受け付けた前記ブロックデータ群の前記ハッシュ値を含む第２ブロックデータを作成する第２ブロックデータ作成部と、前記第２ブロックデータに含まれる前記ブロックデータ群の前記ハッシュ値に基づいて、削除された前記第１ブロックデータ以外の複数の前記第１ブロックデータの不正の有無を判断する判定処理を実行するデータ検証部と、を有する。
【０００９】
本発明の第２の態様によれば、第１の態様に係る管理システムにおいて、複数の前記下位ブロックチェーンの演算装置のそれぞれは、前記第１ブロックデータを削除したことを前記上位ブロックチェーンの演算装置に通知する通知処理部、を有する。前記上位ブロックチェーンの演算装置の前記データ検証部は、前記通知処理部から削除を通知された前記第１ブロックデータ以外の複数の前記第１ブロックデータに対し、前記判定処理を実行する。
【００１０】
本発明の第３の態様によれば、第１又は第２の態様に係る管理システムにおいて、前記第２ブロックデータは、前記第１ブロックデータを特定可能なブロックＩＤを更に含み、前記上位ブロックチェーンの演算装置は、前記ブロックＩＤにより特定される前記第１ブロックデータを含む前記ブロックデータ群のハッシュ値を前記下位ブロックチェーンの演算装置から取得するハッシュ取得部を更に有し、前記データ検証部は、前記第２ブロックデータに含まれる前記ブロックデータ群の前記ハッシュ値と、前記ハッシュ取得部が取得した当該ブロックデータ群の前記ハッシュ値とが一致しない場合、当該ブロックデータ群に含まれる第１ブロックデータが不正であると判断する。
【００１１】
本発明の第４の態様によれば、第１から第３の何れか一の態様に係る管理システムにおいて、少なくとも二つの前記下位ブロックチェーンの演算装置のそれぞれは、同一の前記トランザクションデータをそれぞれ受け付ける。
【００１２】
本発明の第５の態様によれば、第１から第４の何れか一の態様に係る管理システムにおいて、前記第１ブロックデータを削除する際に、一の前記下位ブロックチェーンの演算装置は、他の前記下位ブロックチェーンの演算装置に対し、所定の条件を満たす前記トランザクションデータを、新たなトランザクションデータとして登録するように要求する。
【００１３】
本発明の第６の態様によれば、第５の態様に係る管理システムにおいて、複数の前記下位ブロックの演算装置のそれぞれは、前記トランザクションデータの削除可否を示す情報の登録を更に受け付け、前記トランザクションデータについて削除不可を示す情報が登録されていた場合、前記条件を満たすと判断する。
【００１４】
本発明の第７の態様によれば、複数の下位ブロックチェーンのそれぞれの演算装置と、上位ブロックチェーンの演算装置とを用いた管理方法は、複数の前記下位ブロックチェーンの演算装置のそれぞれにおいて、トランザクションデータの登録を受け付けるステップと、受け付けた前記トランザクションデータを含む第１ブロックデータを作成するステップと、少なくとも一つの前記第１ブロックデータからなるブロックデータ群のハッシュ値を計算するステップと、前記上位ブロックチェーンの演算装置に対し、前記ブロックデータ群の前記ハッシュ値の登録を要求するステップと、所定のタイミングで前記第１ブロックデータを削除するステップと、を実行し、前記上位ブロックチェーンの演算装置において、複数の前記下位ブロックチェーンの演算装置から前記ブロックデータ群の前記ハッシュ値の登録要求を受け付けるステップと、受け付けた前記ブロックデータ群の前記ハッシュ値を含む第２ブロックデータを作成するステップと、前記第２ブロックデータに含まれる前記ブロックデータ群の前記ハッシュ値に基づいて、削除された前記第１ブロックデータ以外の複数の前記第１ブロックデータに対する不正の有無を判断するステップと、を実行する。
【００１５】
本発明の第８の態様によれば、上位ブロックチェーンの演算装置は、下位ブロックチェーンの演算装置が受け付けたトランザクションデータを含む少なくとも一つの第１ブロックデータからなるブロックデータ群のハッシュ値の登録要求を受け付ける登録受付部と、受け付けた前記ブロックデータ群の前記ハッシュ値を含む第２ブロックデータを作成する第２ブロックデータ作成部と、前記第２ブロックデータに含まれる前記第１ブロックデータに関連する前記ハッシュ値に基づいて、削除された前記第１ブロックデータ以外の複数の前記第１ブロックデータに対する不正の有無を判断するデータ検証部と、を有する。
【００１６】
本発明の第９の態様によれば、上位ブロックチェーンの演算装置のコンピュータを機能させるプログラムは、下位ブロックチェーンの演算装置が受け付けたトランザクションデータを含む少なくとも一つの第１ブロックデータからなるブロックデータ群のハッシュ値の登録要求を受け付けるステップと、受け付けた前記ブロックデータ群の前記ハッシュ値を含む第２ブロックデータを作成するステップと、前記第２ブロックデータに含まれる前記第１ブロックデータに関連する前記ハッシュ値に基づいて、削除された前記第１ブロックデータ以外の複数の前記第１ブロックデータに対する不正の有無を判断するステップと、を前記コンピュータに演算させる。
【発明の効果】
【００１７】
上述の少なくとも一の態様によれば、過去のデータを削除可能とし、且つ、セキュリティ性を維持した状態で長期間継続してデータ管理を行うことができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態に係る管理システムの全体構成を示す図である。
【図２】第１の実施形態に係る下位ブロックチェーンの演算装置の機能構成を示す図である。
【図３】第１の実施形態に係る第１ブロックデータ及びトランザクションデータの一例を示す図である。
【図４】第１の実施形態に係る上位ブロックチェーンの演算装置の機能構成を示す図である。
【図５】第１の実施形態に係る第２ブロックデータの一例を示す図である。
【図６】第１の実施形態に係る下位ブロックチェーンにおける処理の一例を示す第１のフローチャートである。
【図７】第１の実施形態に係る下位ブロックチェーンの機能を説明するための図である。
【図８】第１の実施形態に係る下位ブロックチェーンにおける処理の一例を示す第２のフローチャートである。
【図９】第１の実施形態に係る上位ブロックチェーンにおける処理の一例を示す第１のフローチャートである。
【図１０】第１の実施形態に係る上位ブロックチェーンの機能を説明するための図である。
【図１１】第１の実施形態に係る上位ブロックチェーンにおける処理の一例を示す第２のフローチャートである。
【図１２】第２の実施形態に係る下位ブロックチェーンにおける処理の一例を示すフローチャートである。
【図１３】少なくとも一の実施形態に係る演算装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１９】
＜第１の実施形態＞
以下、本発明の第１の実施形態に係る管理システム１及び管理方法について、図１〜図１１を参照しながら説明する。
【００２０】
（全体構成）
図１は、第１の実施形態に係る管理システムの全体構成を示す図である。
図１に示すように、管理システム１は、複数の下位ブロックチェーン３それぞれを構成する演算装置３０と、上位ブロックチェーン４を構成する演算装置４０とを備えている。下位ブロックチェーン３及び上位ブロックチェーン４は、ネットワークを介して接続された分散型台帳システムの一態様である。
【００２１】
下位ブロックチェーン３は、それぞれ複数のノードにより構成される。ノードは、例えば、管理システム１の利用者による操作を受け付けるクライアント２０からトランザクションデータの登録を逐次受け付けて、受け付けたトランザクションデータを含む「ブロック」を作成する演算装置３０である。クライアント２０は、パーソナルコンピュータ、スマートフォン、タブレット等のコンピュータである。トランザクションデータは、利用者がクライアント２０を介して実行する各種取引の内容が記録されたデータである。なお、本実施形態では、下位ブロックチェーン３が生成した「ブロック」を「第１ブロックデータ」とも記載する。
【００２２】
また、図１には、管理システム１が三つの下位ブロックチェーン３を備える例が示されているが、これに限られることはない。トランザクションデータの内容、データ容量に応じて、下位ブロックチェーン３の数を更に増やしてもよい。更に、図１には、下位ブロックチェーン３それぞれが四つの演算装置３０を有している例が示されているが、これに限られることはない。下位ブロックチェーン３それぞれは、ノードとして二台又は四台以上の演算装置３０を有していてもよい。
【００２３】
上位ブロックチェーン４は、下位ブロックチェーン３と同様に、複数のノードにより構成される。ノードは、複数の下位ブロックチェーンからデータの登録を受け付けて、受け付けたデータを含む「ブロック」を作成する演算装置４０である。なお、本実施形態では、上位ブロックチェーン４が生成した「ブロック」を「第２ブロックデータ」とも記載する。
【００２４】
また、図１には、上位ブロックチェーン４が四つの演算装置４０を有している例が示されているが、これに限られることはない。上位ブロックチェーン４は、ノードとして二台又は四台以上の演算装置４０を有していてもよい。
【００２５】
（下位ブロックチェーンの機能構成）
図２は、第１の実施形態に係る下位ブロックチェーンの演算装置の機能構成を示す図である。
図２に示すように、下位ブロックチェーン３の演算装置３０は、ＣＰＵ３１と、通信Ｉ／Ｆ３２と、記憶媒体３３と、を備えている。
【００２６】
ＣＰＵ３１は、演算装置３０の動作全体を司るプロセッサであり、所定のプログラムに従って動作することにより、データ受付部３１０、第１ブロックデータ作成部３１１、ハッシュ計算部３１２、登録要求部３１３、削除処理部３１４、通知処理部３１５としての機能を発揮する。
【００２７】
データ受付部３１０は、クライアント２０からトランザクションデータＴＤ（図３）の登録を受け付ける。トランザクションデータＴＤは、利用者による取引内容が記録されたデータである。
【００２８】
図３は、第１の実施形態に係る第１ブロックデータ及びトランザクションデータの一例を示す図である。
図３に示すように、トランザクションデータＴＤには、例えば取引を特定可能な「取引ＩＤ」、取引内容を示す「取引日時」及び「取引詳細」等が含まれている。取引詳細には、取引対象（商品、サービス等）、金額、利用者を特定可能な情報（利用者ＩＤ、利用者氏名、連絡先等）が含まれていてもよい。
【００２９】
第１ブロックデータ作成部３１１は、データ受付部３１０が受け付けたトランザクションデータＴＤを含む第１ブロックデータＢＤ１（図３）を作成する。また、例えば、ある演算装置３０の第１ブロックデータ作成部３１１により作成された第１ブロックデータＢＤ１は、この演算装置３０の記憶媒体３３に記憶されるとともに、同じ下位ブロックチェーン３に属する他の演算装置３０に送信される。また、各演算装置３０は、他の演算装置３０から受信した第１ブロックデータＢＤ１の正当性を相互チェックする。例えば、本実施形態では、新たに作成された第１ブロックデータＢＤ１が、所定数（例えば、３分の２）以上の演算装置３０により正当であると承認されると、この第１ブロックデータＢＤ１は各演算装置３０において最新のブロックとしてブロックチェーンに接続されて追加される。このようにして、同じ下位ブロックチェーン３に属する複数の演算装置３０のそれぞれは、ブロックチェーンとして鎖状に連結された複数の第１ブロックデータＢＤ１を共有することができる。
【００３０】
図３に示すように、第１ブロックデータＢＤ１は、第１ブロックデータＢＤ１の識別情報である「ブロックＩＤ」、及び一つ前に作成された第１ブロックデータＢＤ１の「ハッシュ値」を含むヘッダ部Ｈと、少なくとも一つの「トランザクションデータ」を含むボディ部Ｄとを有する。これにより、複数の第１ブロックデータＢＤ１は、それぞれのヘッダ部Ｈに含まれる一つ前の第１ブロックデータＢＤ１のハッシュ値によって時系列に繋がる。このため、第１ブロックデータＢＤ１を矛盾なく改ざんするためには、当該第１ブロックデータＢＤ１に繋がる全ての他の第１ブロックデータを書き換えなければならない。また、ある演算装置３０において作成された第１ブロックデータＢＤ１は、他の演算装置３０に直ちに送信された上で、その正当性が相互チェックされる。このような仕組みにより、下位ブロックチェーン３に登録されたデータは、第三者による改ざんが極めて困難となる。
【００３１】
ハッシュ計算部３１２は、少なくとも一つの第１ブロックデータＢＤ１からなるブロックデータ群のハッシュ値を計算する。また、ハッシュ計算部３１２は、上位ブロックチェーン４から要求された第１ブロックデータＢＤ１を含むブロックデータ群のハッシュ値を再計算して、上位ブロックチェーン４に出力する。
【００３２】
登録要求部３１３は、上位ブロックチェーン４に対し、ハッシュ計算部３１２が計算したブロックデータ群のハッシュ値の登録を要求する。
【００３３】
削除処理部３１４は、所定のタイミングで全ての第１ブロックデータＢＤ１を削除することにより、下位ブロックチェーン３内の各演算装置３０で管理、共有していたデータをクリアする。
【００３４】
通知処理部３１５は、全ての第１ブロックデータＢＤ１を削除したことを上位ブロックチェーン４の演算装置４０に通知する。
【００３５】
通信Ｉ／Ｆ３２は、クライアント２０、上位ブロックチェーン４の演算装置４０、及び自機と同じ下位ブロックチェーン３に属する他の演算装置３０との間で各種情報の送受信を行う。
【００３６】
記憶媒体３３には、クライアント２０から受け付けたトランザクションデータＴＤ、自機と同じ下位ブロックチェーン３に属する他の演算装置３０との間で共有している第１ブロックデータＢＤ１等が記憶される。
【００３７】
（上位ブロックチェーンの機能構成）
図４は、第１の実施形態に係る上位ブロックチェーンの演算装置の機能構成を示す図である。
図４に示すように、上位ブロックチェーン４の演算装置４０は、ＣＰＵ４１と、通信Ｉ／Ｆ４２と、記憶媒体４３と、を備えている。
【００３８】
ＣＰＵ４１は、演算装置４０の動作全体を司るプロセッサであり、所定のプログラムに従って動作することにより、登録受付部４１０、第２ブロックデータ作成部４１１、ハッシュ取得部４１２、データ検証部４１３としての機能を発揮する。
【００３９】
登録受付部４１０は、下位ブロックチェーン３の演算装置３０からブロックデータ群のハッシュ値の登録要求を受け付ける。
【００４０】
第２ブロックデータ作成部４１１は、ブロックデータ群のハッシュ値を含む第２ブロックデータＢＤ２（図５）を作成する。また、例えば、ある演算装置４０の第２ブロックデータ作成部４１１により作成された第２ブロックデータＢＤ２は、この演算装置４０の記憶媒体４３に記憶されるとともに、上位ブロックチェーン４に属する他の演算装置４０に送信される。また、各演算装置４０は、他の演算装置４０から受信した第２ブロックデータＢＤ２の正当性を相互チェックする。例えば、本実施形態では、新たに作成された第２ブロックデータＢＤ２が、所定数（例えば、３分の２）以上の演算装置４０により正当であると承認されると、この第２ブロックデータＢＤ２は各演算装置４０において最新のブロックとしてブロックチェーンに接続されて追加される。このようにして、上位ブロックチェーン４に属する複数の演算装置４０のそれぞれは、ブロックチェーンとして鎖状に連結された複数の第２ブロックデータＢＤ２を共有することができる。
【００４１】
図５は、第１の実施形態に係る第２ブロックデータの一例を示す図である。
図５に示すように、第２ブロックデータＢＤ２は、ヘッダ部Ｈ及びボディ部Ｄを有する。ボディ部Ｄには、下位ブロックチェーン３の演算装置３０から登録を要求された「ブロックデータ群のハッシュ値」が含まれる。ヘッダ部Ｈには、登録を要求した演算装置３０が属する下位ブロックチェーン３を特定可能な識別情報である「下位ブロックチェーンＩＤ」と、ブロックデータ群に含まれる第１ブロックデータＢＤ１のブロックＩＤを示す「ブロックＩＤ情報」と、一つ前に作成された第２ブロックデータＢＤ２の「ハッシュ値」とが含まれる。これにより、複数の第２ブロックデータＢＤ２は、それぞれのヘッダ部Ｈに含まれる一つ前の第２ブロックデータＢＤ２のハッシュ値によって時系列に繋がる。また、上述のように、第２ブロックデータは上位ブロックチェーンの複数の演算装置４０により送信されて正当性のチェックが行われるため、第三者による改ざんが極めて困難となる。
【００４２】
ハッシュ取得部４１２は、第２ブロックデータＢＤ２（ヘッダ部Ｈ）に含まれる「ブロックＩＤ情報」により特定される第１ブロックデータＢＤ１を含むブロックデータ群のハッシュ値を下位ブロックチェーン３の演算装置３０から取得する。
【００４３】
データ検証部４１３は、第２ブロックデータＢＤ２（ボディ部Ｄ）に含まれる第１ブロックデータＢＤ１に関連するハッシュ値に基づいて、削除された第１ブロックデータＢＤ１以外の複数の第１ブロックデータＢＤ１改ざんの有無を判断する。具体的には、データ検証部４１３は、第２ブロックデータＢＤ２（ボディ部Ｄ）に含まれるブロックデータ群のハッシュ値と、ハッシュ取得部４１２が取得した当該ブロックデータ群のハッシュ値とが一致しない場合、当該ブロックデータ群に含まれる第１ブロックデータＢＤ１が改ざんされたと判断する。
【００４４】
通信Ｉ／Ｆ４２は、複数の下位ブロックチェーン３のそれぞれの演算装置３０、及び上位ブロックチェーンに属する他の演算装置４０との間で各種情報の送受信を行う。
【００４５】
記憶媒体４３には、複数の演算装置４０間で共有している第２ブロックデータＢＤ２等が記憶される。
【００４６】
（下位ブロックチェーンの処理フロー）
図６は、第１の実施形態に係る下位ブロックチェーンにおける処理の一例を示す第１のフローチャートである。
図７は、第１の実施形態に係る下位ブロックチェーンの機能を説明するための図である。
以下、図６〜図７を参照しながら、下位ブロックチェーン３においてトランザクションデータＴＤ及び第１ブロックデータＢＤ１を登録する処理の一例について詳細に説明する。なお、以下の説明では、図７に示すように、管理システム１が三つの下位ブロックチェーン３Ａ、３Ｂ、３Ｃを備える態様を例として説明する。また、ここでは、下位ブロックチェーン３を構成する演算装置３０のうち一の演算装置３０が第１ブロックデータＢＤ１を作成し、他の演算装置３０が作成された第１ブロックデータＢＤ１の正当性をチェックする態様を例として説明する。
【００４７】
まず、図６に示すように、各下位ブロックチェーン３において、一の演算装置３０のデータ受付部３１０は、クライアント２０からトランザクションデータＴＤの登録を受け付ける（ステップＳ１００）。また、データ受付部３１０は、受け付けたトランザクションデータＴＤを記憶媒体３３に記憶して蓄積する。
【００４８】
図７に示すように、本実施形態では、複数の下位ブロックチェーン３のうち、二つの下位ブロックチェーン３の演算装置３０が、あるクライアント２０から同一のトランザクションデータＴＤをそれぞれ受け付ける。
【００４９】
例えば、図７には、二つの下位ブロックチェーン３のそれぞれの演算装置において所定数の第１ブロックデータＢＤ１が重複して記憶されるように、各下位ブロックチェーン３にトランザクションデータＴＤが割り当てられる例が示されている。図７の例では、五つのトランザクションデータＴＤが一つの第１ブロックデータＢＤ１に含まれ、各下位ブロックチェーン３には十個の第１ブロックデータＢＤ１が記憶されるとする。このとき、下位ブロックチェーン３Ａ及び３Ｂには、ブロックＩＤ「１６」〜「２０」で示される五つの第１ブロックデータＢＤ１が重複して記憶されるように、トランザクションデータＴＤ（取引ＩＤ：「００７６」〜「０１００」）が下位ブロックチェーン３Ａ及び３Ｂに割り当てられる。また、下位ブロックチェーン３Ｂ及び３Ｃには、ブロックＩＤ「２１」〜「２５」で示される五つの第１ブロックデータＢＤ１が重複して記憶されるように、トランザクションデータＴＤ（取引ＩＤ「０１０１」以降）が割り当てられる。
【００５０】
なお、他の実施形態では、時間（例えば日、月、年）別に予め決められた二つの下位ブロックチェーン３のそれぞれの演算装置３０が、トランザクションデータＴＤを受け付けるようにしてもよい。
【００５１】
次に、一の演算装置３０の第１ブロックデータ作成部３１１は、第１ブロックデータＢＤ１を作成するタイミングであるか否かを判断する（ステップＳ１０１）。例えば、第１ブロックデータ作成部３１１は、所定数のトランザクションデータＴＤを受け付けた場合、第１ブロックデータＢＤ１を作成するようにしてもよいし、所定時間毎に第１ブロックデータＢＤ１を作成するようにしてもよい。ここでは、第１ブロックデータ作成部３１１が五つのトランザクションデータＴＤを受け付けた場合、第１ブロックデータＢＤ１を作成する態様であるとする。したがって、第１ブロックデータ作成部３１１は、前回第１ブロックデータＢＤ１を作成してから、新たに五つのトランザクションデータＴＤを受け付けたか否かを判断する（ステップＳ１０１）。
【００５２】
第１ブロックデータ作成部３１１は、前回第１ブロックデータＢＤ１を作成してから受け付けたトランザクションデータＴＤの数が五つ未満である場合（ステップＳ１０１：ＮＯ）、ステップＳ１００に戻り、更にトランザクションデータＴＤを受け付けるべく待機する。
【００５３】
一方、第１ブロックデータ作成部３１１は、前回第１ブロックデータＢＤ１を作成してから受け付けたトランザクションデータＴＤの数が五つとなった場合（ステップＳ１０１：ＹＥＳ）、これら五つのトランザクションデータＴＤに基づいて第１ブロックデータＢＤ１を作成する（ステップＳ１０２）。
【００５４】
例えば、図７の例では、下位ブロックチェーン３Ａにおける一の演算装置３０の第１ブロックデータ作成部３１１は、ブロックＩＤ（「２０」）、及び一つ前に作成された第１ブロックデータＢＤ１のハッシュ値を含むヘッダ部Ｈ（図３）と、取引ＩＤ「００９６」〜「０１００」で示される五つのトランザクションデータＴＤを含むボディ部Ｄ（図３）とからなる第１ブロックデータＢＤ１を作成する。同様に、下位ブロックチェーン３Ｂにおける一の演算装置３０の第１ブロックデータ作成部３１１も第１ブロックデータＢＤ１（ブロックＩＤ「２０」）を作成する。
【００５５】
次に、各演算装置３０は、既知の合意形成アルゴリズム（例えば、「ＰｏＷ：Proof of Work」、「ＰｏＳ：Proof of Stake」等）を利用して、ステップＳ１０２で作成した第１ブロックデータＢＤ１を正当なブロックとしてブロックチェーンに接続してもよいか検証する。具体的には、一の演算装置３０は、ステップＳ１０２で作成した第１ブロックデータＢＤ１を他の演算装置３０に送信する（ステップＳ１０３）。そうすると、他の演算装置３０は、受信した第１ブロックデータＢＤ１の正当性を検証する（ステップＳ１０３Ａ）。例えば、他の演算装置３０は、ブロックチェーンとして過去に連結済みの第１ブロックデータＢＤ１と、新たに作成された（受信した）第１ブロックデータＢＤ１とのハッシュ値のつながりを検証する。また、他の演算装置３０は、新たに作成された第１ブロックデータＢＤ１を正当なブロックとして承認するか否かを示す検証結果を、一の演算装置３０に送信する（ステップＳ１０３Ｂ）。
【００５６】
次に、第１ブロックデータ作成部３１１は、第１ブロックデータＢＤ１を承認することを示す検証結果を、所定数（例えば３分の２）以上の演算装置３０から受信した場合（ステップＳ１０４：ＹＥＳ）、この第１ブロックデータＢＤ１を最新のブロックとしてブロックチェーンに接続する（ステップＳ１０５）。また、他の演算装置３０においても同様に、この第１ブロックデータＢＤ１を最新のブロックとしてブロックチェーンに接続する処理が行われる（ステップＳ１０５Ａ）。これにより、下位ブロックチェーン３の各演算装置３０において、第１ブロックデータＢＤ１が共有される。
【００５７】
一方、第１ブロックデータ作成部３１１は、第１ブロックデータＢＤ１を承認することを示す検証結果が所定数未満であった場合（ステップＳ１０４：ＮＯ）、この第１ブロックデータＢＤ１を破棄する（ステップＳ１０６）。
【００５８】
次に、一の演算装置３０の登録要求部３１３は、ブロックデータ群のハッシュ値を登録するタイミングであるか否かを判断する（ステップＳ１０７）。
【００５９】
例えば、登録要求部３１３は、所定時間毎にブロックデータ群のハッシュ値の登録要求を行うようにしてもよいし、所定数の第１ブロックデータＢＤ１が作成される毎にブロックデータ群のハッシュ値の登録要求を行うようにしてもよい。ここでは、五つの第１ブロックデータＢＤ１が作成される毎に、ブロックデータ群のハッシュ値の登録要求を行う態様であるとする。したがって、登録要求部３１３は、前回登録要求を行った後に、五つの第１ブロックデータＢＤ１が作成されたか否かを判断する（ステップＳ１０７）。
【００６０】
登録要求部３１３は、前回登録要求を行った後に作成された第１ブロックデータＢＤ１の数が五つ未満である場合（ステップＳ１０７：ＮＯ）、ステップＳ１００に戻り、更に第１ブロックデータＢＤ１が作成されるまで待機する。
【００６１】
一方、登録要求部３１３は、前回登録要求を行った後に作成された第１ブロックデータＢＤ１の数が五つとなった場合（ステップＳ１０７：ＹＥＳ）、ハッシュ計算部３１２に対し、これら五つの第１ブロックデータＢＤ１からなるブロックデータ群のハッシュ値を計算するように求める。そうすると、ハッシュ計算部３１２は、このブロックデータ群のハッシュ値を計算して登録要求部３１３に出力する（ステップＳ１０８）。
【００６２】
次に、登録要求部３１３は、ハッシュ計算部３１２により計算されたブロックデータ群のハッシュ値の登録を上位ブロックチェーン４に要求する（ステップＳ１０９）。このとき、登録要求部３１３は、ブロックデータ群のハッシュ値と、自身が属する下位ブロックチェーン３の識別情報（下位ブロックチェーンＩＤ）と、ブロックデータ群に含まれる第１ブロックデータＢＤ１それぞれのブロックＩＤ（例えば「１６」〜「２０」）を含むブロックＩＤ情報とを関連付けて上位ブロックチェーン４の演算装置４０に送信する。
【００６３】
複数の下位ブロックチェーン３のそれぞれの演算装置３０は、上述の一連の処理を常時繰り返し実行して、トランザクションデータＴＤ及び第１ブロックデータＢＤ１の登録を行うとともに、複数の第１ブロックデータＢＤ１からなるブロックデータ群のハッシュ値を上位ブロックチェーン４の演算装置４０に登録する。なお、図６には、下位ブロックチェーン３に属する一の演算装置３０において第１ブロックデータＢＤ１を作成し、他の演算装置３０が作成された第１ブロックデータＢＤ１の正当性をチェックする例が示されているが、これに限られることはない。他の実施形態では、複数の演算装置３０それぞれが並行して第１ブロックデータＢＤ１を作成する態様であってもよい。この場合、最も早く第１ブロックデータＢＤ１を作成した一の演算装置３０が、他の演算装置３０にこの第１ブロックデータＢＤ１を送信して正当性のチェックを行わせるようにしてもよい。
【００６４】
図８は、第１の実施形態に係る下位ブロックチェーンにおける処理の一例を示す第２のフローチャートである。
以下、図８を参照しながら、下位ブロックチェーン３の演算装置３０においてトランザクションデータＴＤ及び第１ブロックデータＢＤ１を削除する処理の一例について詳細に説明する。なお、以下の説明では、下位ブロックチェーン３Ａの一の演算装置３０が当該処理を実施する例について説明する。
【００６５】
まず、図８に示すように、下位ブロックチェーン３Ａの演算装置３０の削除処理部３１４は、第１ブロックデータＢＤ１を削除するタイミングであるか否かを判断する（ステップＳ１１０）。
【００６６】
例えば、削除処理部３１４は、所定時間を経過した場合、第１ブロックデータＢＤ１を削除するようにしてもよい。また、削除処理部３１４は、第１ブロックデータＢＤ１の数が所定の上限数（例えば、１０００個）に達した場合、第１ブロックデータＢＤ１を削除するようにしてもよい。ここでは、削除処理部３１４は、トランザクションデータＴＤに予め保管期限（例えば、１０年）を設定しておき、最新の第１ブロックデータＢＤ１がブロックチェーンに接続（下位ブロックチェーン３Ａ内で共有）されてから保管期限以上の時間（以下、所定時間とも記載する）が経過した場合、第１ブロックデータＢＤ１を削除する態様であるとする。
【００６７】
削除処理部３１４は、最新の第１ブロックデータＢＤ１がブロックチェーンに接続されてから所定時間が経過していない場合（ステップＳ１１０：ＮＯ）、処理を終了する。
【００６８】
一方、削除処理部３１４は、最新の第１ブロックデータＢＤ１がブロックチェーンに接続されてから所定時間が経過した場合（ステップＳ１１０：ＹＥＳ）、下位ブロックチェーン３Ａの演算装置３０間において共有されている全ての第１ブロックデータＢＤ１を削除する（ステップＳ１１１）。
【００６９】
次に、通知処理部３１５は、下位ブロックチェーン３Ａの全ての第１ブロックデータＢＤ１が削除されたことを上位ブロックチェーン４の演算装置４０に通知する（ステップＳ１１２）。このとき、通知処理部３１５は、削除を行った下位ブロックチェーン３Ａの識別情報（下位ブロックチェーンＩＤ）と、削除された第１ブロックデータＢＤ１（即ち、下位ブロックチェーン３Ａで共有されていた全ての第１ブロックデータＢＤ１）それぞれのブロックＩＤ（例えば、「１１」〜「２０」）を上位ブロックチェーン４の演算装置４０に通知する。これにより、上位ブロックチェーン４の演算装置４０は、どの下位ブロックチェーン３において全ての第１ブロックデータＢＤ１が削除されたかを認識することができるとともに、ブロックＩＤから削除された第１ブロックデータＢＤ１を特定することができる。
【００７０】
複数の下位ブロックチェーン３それぞれの演算装置３０は、上述の一連の処理を常時繰り返し実行して、所定のタイミングで全ての第１ブロックデータＢＤ１の削除を行う。なお、図８では、各下位ブロックチェーン３で同じ保管期限を設定する例について説明したが、これに限られることはない。各下位ブロックチェーン３は、それぞれ異なる所定時間が設定されていてもよい。また、削除処理部３１４は、所定時間と、第１ブロックデータの上限数との両方で削除タイミングを判断するようにしてもよい。
【００７１】
（上位ブロックチェーンの処理フロー）
図９は、第１の実施形態に係る上位ブロックチェーンにおける処理の一例を示す第１のフローチャートである。
図１０は、第１の実施形態に係る上位ブロックチェーンの機能を説明するための図である。
以下、図９〜図１０を参照しながら、上位ブロックチェーン４の演算装置４０において第２ブロックデータＢＤ２を登録する処理の一例について詳細に説明する。ここでは、上位ブロックチェーン４を構成する演算装置４０のうち一の演算装置４０が第２ブロックデータＢＤ２を作成し、他の演算装置４０が作成された第２ブロックデータＢＤ２の正当性をチェックする態様を例として説明する。
【００７２】
まず、図９に示すように、上位ブロックチェーン４の一の演算装置４０の登録受付部４１０は、下位ブロックチェーン３の演算装置３０からブロックデータ群のハッシュ値の登録要求を受け付ける（ステップＳ１２０）。
【００７３】
次に、第２ブロックデータ作成部４１１は、下位ブロックチェーン３の演算装置３０から受け付けたブロックデータ群のハッシュ値を含む第２ブロックデータＢＤ２（図５）を作成する（ステップＳ１２１）。登録要求には、送信元である下位ブロックチェーン３の識別情報（下位ブロックチェーンＩＤ）と、ブロックデータ群に含まれる第１ブロックデータＢＤ１それぞれのブロックＩＤ鵜を示すブロックＩＤ情報とが含まれている。第２ブロックデータ作成部４１１は、下位ブロックチェーンＩＤ、ブロックＩＤ情報、及び一つ前に作成された第２ブロックデータＢＤ２のハッシュ値を含むヘッダ部Ｈ（図５）と、ブロックデータ群のハッシュ値を含むボディ部Ｄ（図５）とからなる第２ブロックデータＢＤ２を作成する。
【００７４】
例えば、図１０に示すように、登録受付部４１０が下位ブロックチェーン３Ａの演算装置３０から、第１ブロックデータＢＤ１（ブロックＩＤ「１６」〜「２０」）の登録要求を受け付けたとする。この場合、第２ブロックデータ作成部４１１は、この下位ブロックチェーン３Ａの下位ブロックチェーンＩＤ、ブロックＩＤ「１６」〜「２０」を示すブロック情報、及び一つ前に作成された第２ブロックデータＢＤ２のハッシュ値を含むヘッダ部Ｈと、ブロックＩＤ「１６」〜「２０」の第１ブロックデータＢＤ１からなるブロックデータ群のハッシュ値を含むボディ部Ｄと、を有する第２ブロックデータＢＤ２＿１を作成する。
【００７５】
また、次に、登録受付部４１０が下位ブロックチェーン３Ｂから、第１ブロックデータＢＤ１（ブロックＩＤ「２１」〜「２５」）の登録要求を受け付けたとする。この場合、第２ブロックデータ作成部４１１は、この下位ブロックチェーン３Ｂの下位ブロックチェーンＩＤ、ブロックＩＤ「２１」〜「２５」を示すブロック情報、及び一つ前に作成された第２ブロックデータＢＤ２＿１のハッシュ値を含むヘッダ部Ｈと、ブロックＩＤ「２１」〜「２５」の第１ブロックデータＢＤ１からなるブロックデータ群のハッシュ値を含むボディ部Ｄと、を有する第２ブロックデータＢＤ２＿２を作成する。
【００７６】
次に、各演算装置３０は、既知の合意形成アルゴリズム（例えば、「ＰｏＷ：Proof of Work」、「ＰｏＳ：Proof of Stake」等）を利用して、ステップＳ１２１で作成した第２ブロックデータＢＤ２を正当なブロックとしてブロックチェーンに接続してもよいか検証する。具体的には、一の演算装置４０は、ステップＳ１２１で作成した第２ブロックデータＢＤ２を他の演算装置４０に送信する（ステップＳ１２２）。そうすると、他の演算装置４０は、受信した第２ブロックデータＢＤ２の正当性を検証する（ステップＳ１２２Ａ）。例えば、他の演算装置４０は、ブロックチェーンとして過去に連結済みの第２ブロックデータＢＤ２と、新たに作成された（受信した）第２ブロックデータＢＤ２とのハッシュ値のつながりを検証する。また、他の演算装置４０は、新たに作成された第２ブロックデータＢＤ２を正当なブロックとして承認するか否かを示す検証結果を、一の演算装置４０に送信する（ステップＳ１２２Ｂ）。
【００７７】
次に、第２ブロックデータ作成部４１１は、第２ブロックデータＢＤ２を承認することを示す検証結果を、所定数（例えば３分の２）以上の演算装置４０から受信した場合（ステップＳ１２３：ＹＥＳ）、この第２ブロックデータＢＤ２を最新のブロックとしてブロックチェーンに接続する（ステップＳ１２４）。また、他の演算装置４０においても同様に、この第２ブロックデータＢＤ２を最新のブロックとしてブロックチェーンに接続する処理が行われる（ステップＳ１２４Ａ）。これにより、上位ブロックチェーン４の各演算装置４０において、第２ブロックデータＢＤ２が共有される。
【００７８】
一方、第２ブロックデータ作成部４１１は、第２ブロックデータＢＤ２を承認することを示す検証結果が所定数未満であった場合（ステップＳ１２３：ＮＯ）、この第２ブロックデータＢＤ２を破棄する（ステップＳ１２５）。
【００７９】
このように、上位ブロックチェーン４の演算装置４０は、複数の下位ブロックチェーン３それぞれの演算装置３０から登録要求を受け付ける度に、上述の一連の処理を実行して、上位ブロックチェーン４内で第２ブロックデータＢＤ２を登録、共有する。なお、図９には、上位ブロックチェーン４に属する一の演算装置４０において第２ブロックデータＢＤ２を作成し、他の演算装置４０が作成された第２ブロックデータＢＤ２の正当性をチェックする例が示されているが、これに限られることはない。他の実施形態では、複数の演算装置４０それぞれが並行して第２ブロックデータＢＤ２を作成する態様であってもよい。この場合、最も早く第２ブロックデータＢＤ２を作成した一の演算装置４０が、他の演算装置４０にこの第２ブロックデータＢＤ２を送信して正当性のチェックを行わせるようにしてもよい。
【００８０】
図１１は、第１の実施形態に係る上位ブロックチェーンにおける処理の一例を示す第２のフローチャートである。
以下、図１１を参照しながら、上位ブロックチェーン４における第１ブロックデータＢＤ１の検証処理の一例について詳細に説明する。
【００８１】
まず、図１１に示すように、上位ブロックチェーン４の演算装置４０のデータ検証部４１３は、下位ブロックチェーン３の演算装置３０から第１ブロックデータＢＤ１の削除通知を受信する（ステップＳ１３０）。そうすると、データ検証部４１３は、この削除通知に基づいて、削除を行った下位ブロックチェーン３の識別情報（下位ブロックチェーンＩＤ）と、削除された第１ブロックデータＢＤ１それぞれのブロックＩＤとを関連付けた削除情報を登録する（ステップＳ１３１）。なお、データ検証部４１３は、第２ブロックデータ作成部４１１にこの削除情報を含む第２ブロックデータＢＤ２を作成させることにより、削除情報を登録するようにしてもよい。
【００８２】
次に、データ検証部４１３は、第１ブロックデータＢＤ１の正当性（改ざんの有無）を検証するタイミングであるか判断する（ステップＳ１３２）。例えば、本実施形態に係るデータ検証部４１３は、所定時間（例えば、１時間）毎に検証を実行する態様であるとする。なお、他の実施形態では、データ検証部４１３は、第２ブロックデータＢＤ２が作成される度に検証を実行するようにしてもよい。
【００８３】
データ検証部４１３は、前回検証を行ってから所定時間を経過していない場合（ステップＳ１３２：ＮＯ）、ステップＳ１３０に戻る。
【００８４】
一方、データ検証部４１３は、前回検証を行ってから所定時間を経過した場合（ステップＳ１３２：ＹＥＳ）、削除情報を参照して、下位ブロックチェーン３から削除されていない第１ブロックデータＢＤ１に関連する第２ブロックデータＢＤ２を抽出する（ステップＳ１３３）。例えば、データ検証部４１３は、複数の第２ブロックデータＢＤ２のヘッダ部Ｈを参照して、削除情報に含まれる「下位ブロックチェーンＩＤ」及び「ブロックＩＤ」の組み合わせに合致する第２ブロックデータＢＤ２を、検証対象外の第２ブロックデータＢＤ２として除外する。そして、データ検証部４１３は、それ以外の第２ブロックデータＢＤ２を検証対象の第２ブロックデータＢＤ２として抽出する。
【００８５】
次に、ハッシュ取得部４１２は、検証対象の第２ブロックデータＢＤ２のうち一の第２ブロックデータＢＤ２を選択する。そして、ハッシュ取得部４１２は、選択した第２ブロックデータＢＤ２に関連するブロックデータ群のハッシュ値を下位ブロックチェーン３の演算装置３０から取得する（ステップＳ１３４）。例えばハッシュ取得部４１２は、第２ブロックデータＢＤ２のヘッダ部Ｈの「下位ブロックチェーンＩＤ」を参照して、ブロックデータ群が記憶されている下位ブロックチェーン３を特定する。ハッシュ取得部４１２は、特定した下位ブロックチェーン３の演算装置３０に対し、第２ブロックデータＢＤ２のヘッダ部Ｈの「ブロックＩＤ」で特定される複数の第１ブロックデータＢＤ１からなるブロックデータ群のハッシュ値を要求する。そうすると、要求を受けた下位ブロックチェーン３の演算装置３０のハッシュ計算部３１２は、指定された「ブロックＩＤ」に対応する第１ブロックデータＢＤ１からなるブロックデータ群のハッシュ値を計算して上位ブロックチェーン４の演算装置４０に出力する。
【００８６】
次に、データ検証部４１３は、選択した第２ブロックデータＢＤ２のボディ部Ｄに含まれるブロックデータ群のハッシュ値（未削除の第１ブロックデータＢＤ１に関連するハッシュ値）と、ハッシュ取得部４１２が取得したブロックデータ群のハッシュ値とが一致するか判断する（ステップＳ１３５）。
【００８７】
データ検証部４１３は、二つのハッシュ値が一致する場合（ステップＳ１３５：ＹＥＳ）、第１ブロックデータＢＤ１は不正なし（改ざんなし）と判断する（ステップＳ１３６）。
【００８８】
一方、データ検証部４１３は、二つのハッシュ値が一致しない場合（ステップＳ１３５：ＮＯ）、第１ブロックデータＢＤ１は不正あり（改ざんあり）と判断する（ステップＳ１３７）。このとき、データ検証部４１３は、第１ブロックデータＢＤ１が改ざんされたことを、例えばクライアント２０に通知するようにしてもよい。この場合、データ検証部４１３は、改ざんされた恐れのある下位ブロックチェーンの識別情報（下位ブロックチェーンＩＤ）と、第１ブロックデータＢＤ１のブロックＩＤとを、クライアント２０に通知する。
【００８９】
次に、データ検証部４１３は、ステップＳ１３３において抽出した検証対象の第２ブロックデータＢＤ２全ての検証が終了したか判断する（ステップＳ１３８）。未検証の第２ブロックデータＢＤ２がある場合（ステップＳ１３８：ＮＯ）、データ検証部４１３は、ステップＳ１３４に戻り、上述の各ステップを再度実行する。一方、全ての第２ブロックデータＢＤ２の検証が終了している場合（ステップＳ１３８：ＹＥＳ）、データ検証部４１３は処理を終了する。
【００９０】
上位ブロックチェーン４の演算装置４０は、上述の一連の処理を常時繰り返すことにより、第１ブロックデータＢＤ１の改ざんの有無を検証する。
【００９１】
（作用、効果）
以上のように、本実施形態に係る管理システム１は、複数の下位ブロックチェーン３のそれぞれの演算装置３０と、上位ブロックチェーン４の演算装置４０とを備える。複数の下位ブロックチェーン３の演算装置３０のそれぞれは、トランザクションデータＴＤの登録を受け付けるデータ受付部３１０と、受け付けたトランザクションデータＴＤを含む第１ブロックデータＢＤ１を作成する第１ブロックデータ作成部３１１と、少なくとも一つの第１ブロックデータＢＤ１からなるブロックデータ群のハッシュ値を計算するハッシュ計算部３１２と、上位ブロックチェーン４の演算装置４０に対し、ブロックデータ群のハッシュ値の登録を要求する登録要求部３１３と、所定のタイミングで一の下位ブロックチェーン３の全ての第１ブロックデータＢＤ１を削除する削除処理部３１４と、を有する。上位ブロックチェーン４の演算装置４０は、複数の下位ブロックチェーン３の演算装置３０からブロックデータ群のハッシュ値の登録要求を受け付ける登録受付部４１０と、受け付けたブロックデータ群のハッシュ値を含む第２ブロックデータＢＤ２を作成する第２ブロックデータ作成部４１１と、第２ブロックデータＢＤ２に含まれるブロックデータ群のハッシュ値に基づいて、削除された第１ブロックデータＢＤ１以外の複数の第１ブロックデータＢＤ１に対する不正の有無を判断する判定処理を実行するデータ検証部４１３と、を有する。
このようにすることで、上位ブロックチェーン４の演算装置４０は、少なくとも一つの第１ブロックデータＢＤ１からなるブロックデータ群のハッシュ値のみを記憶するので、データ容量を大幅に削減することができる。また、上位ブロックチェーン４の演算装置４０は、削除された第１ブロックデータＢＤ１を検証対象から除外して、複数の第１ブロックデータＢＤ１に対する不正の有無の検証を継続して行うことができる。これにより、管理システム１は、下位ブロックチェーン３の過去のデータを削除可能としてデータ容量が膨張し続けてしまうことを抑制することができるとともに、システム全体のセキュリティ性を維持した状態で、長期間継続してデータ管理を行うことができる。
【００９２】
また、複数の下位ブロックチェーン３の演算装置３０のそれぞれは、第１ブロックデータＢＤ１を削除したことを上位ブロックチェーン４の演算装置４０に通知する通知処理部３１５を有する。上位ブロックチェーン４の演算装置４０のデータ検証部４１３は、通知処理部３１５から削除を通知された第１ブロックデータＢＤ１以外の複数の第１ブロックデータＢＤ１に対し、判定処理を実行する。
このようにすることで、データ検証部４１３は、削除済み及び未削除の第１ブロックデータＢＤ１を特定し、未削除の第１ブロックデータＢＤ１のみを対象として判定処理を実行することができる。したがって、上位ブロックチェーン４の演算装置４０は、ある下位ブロックチェーン３において全ての第１ブロックデータＢＤ１が削除された後も、他の下位ブロックチェーン３の第１ブロックチェーンＢＤ１に対する判定処理を継続して実行することができる。
【００９３】
また、第２ブロックデータＢＤ２は、第１ブロックデータＢＤ１を特定可能なブロックＩＤを更に含む。上位ブロックチェーン４の演算装置４０は、ブロックＩＤにより特定される第１ブロックデータＢＤ１を含むブロックデータ群のハッシュ値を下位ブロックチェーン３の演算装置３０から取得するハッシュ取得部４１２を更に有する。データ検証部４１３は、第２ブロックデータＢＤ２に含まれるブロックデータ群のハッシュ値と、ハッシュ取得部４１２が取得した当該ブロックデータ群のハッシュ値とが一致しない場合、当該ブロックデータ群に含まれる第１ブロックデータＢＤ１が不正であると判断する。
このようにすることで、管理システムは１、第２ブロックデータＢＤ２として登録されたブロックデータ群のハッシュ値と、実際に下位ブロックチェーン３の各演算装置３０に記憶されているブロックデータ群とのハッシュ値を比較することにより、第１ブロックデータＢＤ１の改ざんの有無を容易且つ精度よく判断することができる。
【００９４】
また、少なくとも二つの下位ブロックチェーン３の演算装置のそれぞれは、一つのクライアント２０から同一のトランザクションデータＴＤを受け付ける。
このようにすることで、トランザクションデータＴＤの改ざんを行う場合は、少なくとも二つの下位ブロックチェーン３それぞれの第１ブロックデータＢＤ１を書き換えなくてはならないので、改ざん困難性を更に向上させることができる。また、管理システム１は、一の下位ブロックチェーン３（例えば下位ブロックチェーン３Ａ）において第１ブロックデータＢＤ１が削除された後も、他の下位ブロックチェーン３（例えば下位ブロックチェーン３Ｂ及び３Ｃ）にトランザクションデータＴＤを残しておくことができる。これにより、管理システム１は、トランザクションデータＴＤが記憶される期間が延長させることができる。更に、管理システム１は、各下位ブロックチェーン３の削除タイミングを異ならせることにより、トランザクションデータＴＤか記憶される期間をコントロールすることが可能となる。
【００９５】
＜第２の実施形態＞
次に、本発明の第２の実施形態に係る管理システム１について、図１２を参照しながら説明する。
第１の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。なお、本実施形態では、下位ブロックチェーン３の演算装置３０における第１ブロックデータＢＤ１の削除処理が第１の実施形態と異なっている。
【００９６】
（下位ブロックチェーンの処理フロー）
図１２は、第２の実施形態に係る下位ブロックチェーンにおける処理の一例を示すフローチャートである。
以下、図１２を参照しながら、本実施形態に係る下位ブロックチェーン３の演算装置３０においてトランザクションデータＴＤを削除する処理の一例について詳細に説明する。なお、以下の説明では、下位ブロックチェーン３Ａの演算装置３０が当該処理を実施する例について説明する。
【００９７】
まず、図１２に示すように、下位ブロックチェーン３Ａの演算装置３０の削除処理部３１４は、第１ブロックデータＢＤ１を削除するタイミングであるか否かを判断する（ステップＳ２００）。当該処理は第１の実施形態における処理（図８のステップＳ１１０）と同様である。
【００９８】
削除処理部３１４は、最新の第１ブロックデータＢＤ１が記憶されてから所定時間が経過した場合（ステップＳ２００：ＹＥＳ）、下位ブロックチェーン３Ａにおいて共有されている各第１ブロックデータＢＤ１に含まれるトランザクションデータＴＤのうち、削除不可を示す情報が登録されているものがあるか判断する。
【００９９】
例えば、下位ブロックチェーン３Ａのデータ受付部３１０は、図６のステップＳ１００においてクライアント２０からトランザクションデータＴＤの登録を受け付ける際、このトランザクションデータＴＤを削除不可とするか否かの選択を受け付ける。なお、データ受付部３１０は、クライアント２０から削除不可とする期間の指定を更に受け付けてもよい。この削除可否を示す情報、及び、削除不可の期間を示す情報は、トランザクションデータＴＤ内に含まれるものとする。また、データ受付部３１０は、トランザクションデータＴＤを含む第１ブロックデータＢＤ１が登録されてから削除されるまでの期間であれば、常時、トランザクションデータＴＤの削除可否を示す情報、削除不可の期間を示す情報の編集を受け付け可能としてもよい。この場合、データ受付部３１０は、トランザクションデータＴＤを特定可能な「取引ＩＤ」と、削除可否及び削除不可の期間を示す情報とを関連付けたテーブルを記憶媒体３３に記憶するようにしてもよい。
【０１００】
削除処理部３１４は、第１ブロックデータＢＤ１のボディ部Ｄを参照し、削除不可を示す情報が登録されているトランザクションデータＴＤがない場合（ステップＳ２０２：ＮＯ）、ステップＳ２０３に進む。なお、削除処理部３１４は、削除不可を示す情報が登録されているトランザクションデータＴＤが存在するものの、削除不可として指定された期間が現在日時よりも前である場合、このトランザクションデータＴＤは削除不可ではないと判断する。なお、削除処理部３１４は、削除可否及び削除不可の期間を示す情報をテーブルで管理している場合、当該テーブルを参照して削除不可であるトランザクションデータＴＤを特定するようにしてもよい。
【０１０１】
一方、削除処理部３１４は、削除不可を示す情報が登録されているトランザクションデータＴＤがある場合、且つ、削除不可として指定された期間が現在日時よりも後である場合（ステップＳ２０２：ＹＥＳ）、このトランザクションデータＴＤを他の下位ブロックチェーン３に再登録する（ステップＳ２０２）。なお、本実施形態では、削除処理部３１４は、他の二つの下位ブロックチェーン３Ｂ及び３ＣにトランザクションデータＴＤの再登録を要求するものとする。
【０１０２】
また、削除処理部３１４は、他の下位ブロックチェーン３Ｂ及び３ＣにトランザクションデータＴＤの再登録を行う場合、新たな取引ＩＤを付与して、下位ブロックチェーン３Ｂ及び３Ｃに登録要求を送信するようにしてもよい。また、削除処理部３１４は、クライアント２０にトランザクションデータＴＤの再登録を行うように要求してもよい。この場合、クライアント２０は、このトランザクションデータＴＤに新たな取引ＩＤを付与して、下位ブロックチェーン３Ｂ及び３Ｃに登録要求を行う。
【０１０３】
次に、削除処理部３１４は、下位ブロックチェーン３Ａの演算装置３０間において共有されている全ての第１ブロックデータＢＤ１を削除する（ステップＳ２０３）。当該処理は第１の実施形態における処理（図８のステップＳ１１１）と同様である。
【０１０４】
次に、通知処理部３１５は、下位ブロックチェーン３Ａの全ての第１ブロックデータＢＤ１が削除されたことを上位ブロックチェーン４の演算装置４０に通知する（ステップＳ２０４）。当該処理は第１の実施形態における処理（図８のステップＳ１１２）と同様である。
【０１０５】
複数の下位ブロックチェーン３それぞれの演算装置３０は、上述の一連の処理を常時繰り返し実行して、所定のタイミングで第１ブロックデータＢＤ１の全削除を行うとともに、削除不可のトランザクションデータＴＤを新たなトランザクションデータとして再登録する処理を行う。
【０１０６】
なお、上述の例では、データ受付部３１０がクライアント２０から削除不可を示す情報、及び削除不可の期間を示す情報を受け付ける態様について説明したが、これに限られることはない。他の実施形態では、データ受付部３１０は、トランザクションデータＴＤの「取引詳細」に基づいて、自動的に削除不可を示す情報をトランザクションデータＴＤに追加するようにしてもよい。例えば、取引詳細に含まれる金額が所定額（例えば、５００万円）を超える場合、データ受付部３１０は当該トランザクションデータＴＤに削除不可を示す情報を追加する。また、データ受付部３１０は、金額に応じて削除不可とする期間を示す情報を更に追加するようにしてもよい。更に、データ受付部３１０は、トランザクションデータＴＤに予め決められた取引対象、利用者等が含まれている場合、このトランザクションデータＴＤに削除不可を示す情報を追加するようにしてもよい。
【０１０７】
（作用、効果）
以上のように、本実施形態に係る管理システム１において、第１ブロックデータＢＤ１を削除する際に、一の下位ブロックチェーン３の演算装置３０は、所定の条件を満たす前記トランザクションデータＴＤを、新たなトランザクションデータＴＤとして他の下位ブロックチェーン３の演算装置３０に登録するように要求する。
このようにすることで、管理システム１は、利用者が削除したくないデータ、取引金額が大きいデータ等の重要なトランザクションデータＴＤを、新たなトランザクションデータＴＤとして他の下位ブロックチェーン３の演算装置３０に残しておくことができる。
【０１０８】
また、データ受付部３１０は、当該トランザクションデータＴＤの削除可否を示す情報の登録を更に受け付け、削除処理部３１４は、トランザクションデータＴＤについて削除不可を示す情報が登録されていた場合、所定の条件を満たすと判断する。
このようにすることで、管理システム１は、利用者が削除しないように指定したトランザクションデータＴＤを、新たなトランザクションデータＴＤとして下位ブロックチェーン３に残しておくことができる。なお、削除可否を示す登録の受け付けは、トランザクションデータＴＤの登録時であってもよいし、登録後であってもよい。これにより、利用者はより柔軟にトランザクションデータＴＤの削除可否の取り扱いを変更することができる。
【０１０９】
（ハードウェア構成）
図１３は、少なくとも一の実施形態に係る演算装置のハードウェア構成の一例を示す図である。
以下、図１３を参照しながら、上述の下位ブロックチェーン３の演算装置３０、及び上位ブロックチェーン４の演算装置４０のハードウェア構成の一例について説明する。
【０１１０】
図１３に示すように、コンピュータ９００は、ＣＰＵ９０１、主記憶装置９０２、補助記憶装置９０３、インタフェース９０４を備える。
【０１１１】
上述の演算装置３０及び演算装置４０は、それぞれコンピュータ９００に実装される。そして、上述した各処理部の動作は、プログラムの形式で補助記憶装置９０３に記憶されている。ＣＰＵ９０１（演算装置３０のＣＰＵ３１、演算装置４０のＣＰＵ４１）は、プログラムを補助記憶装置９０３から読み出して主記憶装置９０２に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ９０１は、プログラムに従って、演算装置３０及び演算装置４０が各種処理に用いる記憶領域を主記憶装置９０２に確保する。また、ＣＰＵ９０１は、プログラムに従って、処理中のデータを記憶する記憶領域（演算装置３０の記憶媒体３３、演算装置４０の記憶媒体４３）を補助記憶装置９０３に確保する。
【０１１２】
補助記憶装置９０３の例としては、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、半導体メモリ等が挙げられる。補助記憶装置９０３は、コンピュータ９００のバスに直接接続された内部メディアであってもよいし、インタフェース９０４又は通信回線を介してコンピュータ９００に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ９００に配信される場合、配信を受けたコンピュータ９００が当該プログラムを主記憶装置９０２に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、補助記憶装置９０３は、一時的でない有形の記憶媒体である。
【０１１３】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。
更に、当該プログラムは、前述した機能を補助記憶装置９０３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１１４】
以上のとおり、本発明に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１５】
１  管理システム
２０  クライアント
３、３Ａ、３Ｂ、３Ｃ  下位ブロックチェーン
３０  演算装置
３１  ＣＰＵ
３１０  データ受付部
３１１  第１ブロックデータ作成部
３１２  ハッシュ計算部
３１３  登録要求部
３１４  削除処理部
３１５  通知処理部
３２  通信Ｉ／Ｆ
３３  記憶媒体
４  上位ブロックチェーン
４０  演算装置
４１  ＣＰＵ
４１０  登録受付部
４１１  第２ブロックデータ作成部
４１２  ハッシュ取得部
４１３  データ検証部
４２  通信Ｉ／Ｆ
４３  記憶媒体
【図１】
2020178240.tif 000003
【図２】
2020178240.tif 000004
【図３】
2020178240.tif 000005
【図４】
2020178240.tif 000006
【図５】
2020178240.tif 000007
【図６】
2020178240.tif 000008
【図７】
2020178240.tif 000009
【図８】
2020178240.tif 000010
【図９】
2020178240.tif 000011
【図１０】
2020178240.tif 000012
【図１１】
2020178240.tif 000013
【図１２】
2020178240.tif 000014
【図１３】
2020178240.tif 000015