(57)【特許請求の範囲】
【請求項１】
ブロックチェーンを構成するためのブロックデータを生成し配布する中央サーバに記録されているブロックデータに関する第２検証情報と、配布された前記ブロックデータをそれぞれの台帳に記録する複数の参加者サーバに記録されているブロックデータに関する第１検証情報と、を取得する検証情報取得部と、
前記第１検証情報と前記第２検証情報とを比較して、前記中央サーバにおける前記ブロックデータの改ざんの有無を判断する比較部と、
を備える検知装置。
【請求項２】
前記検証情報取得部は、前記第１検証情報及び前記第２検証情報として、複数の前記参加者サーバ及び前記中央サーバそれぞれに記録されている前記ブロックデータを取得する、
請求項１に記載の検知装置。
【請求項３】
前記検証情報取得部は、前記第１検証情報及び前記第２検証情報として、複数の前記参加者サーバ及び前記中央サーバそれぞれに記録されている前記ブロックデータのＣＲＣ値を取得する、
請求項１に記載の検知装置。
【請求項４】
前記検証情報取得部は、前記第１検証情報及び前記第２検証情報として、複数の前記参加者サーバ及び前記中央サーバそれぞれに記録されている前記ブロックデータの数を取得する、
請求項１に記載の検知装置。
【請求項５】
前記ブロックチェーンは、第１ブロックチェーンと、第２ブロックチェーンとを有し、
前記検証情報取得部は、前記第１ブロックチェーンの複数の前記参加者サーバ、及び前記第２ブロックチェーンの複数の前記参加者サーバそれぞれから前記第１検証情報を取得し、前記第１ブロックチェーンの前記中央サーバ、及び前記第２ブロックチェーンの前記中央サーバから前記第２検証情報を取得し、
前記比較部は、前記第１ブロックチェーンの前記中央サーバから取得した前記第２検証情報と前記第２ブロックチェーンの複数の前記参加者サーバそれぞれから取得した前記第１検証情報とを比較するとともに、前記第２ブロックチェーンの前記中央サーバから取得した前記第２検証情報と前記第１ブロックチェーンの複数の前記参加者サーバそれぞれから取得した前記第１検証情報とを比較して、前記第１ブロックチェーン及び前記第２ブロックチェーンの前記中央サーバにおける前記ブロックデータの改ざんの有無を判断する、
請求項１から４の何れか一項に記載の検知装置。
【請求項６】
複数の前記参加者サーバから選択した何れか一の参加者サーバを前記中央サーバに変更する変更部を更に備える、
請求項１から５の何れか一項に記載の検知装置。
【請求項７】
ブロックチェーンを構成するためのブロックデータを生成し配布する中央サーバと、配布された前記ブロックデータをそれぞれの台帳に記録する複数の参加者サーバと、検知装置とを備える改ざん検知システムであって、
前記参加者サーバは、
クライアントから受け付けたトランザクションデータが有効であるかを検証するトランザクションデータ検証部と、
前記中央サーバから受信したブロックデータを第１記録媒体に記録する記録処理部と、
前記第１記録媒体に記録されている前記ブロックデータに関する第１検証情報を前記検知装置に送信する第１検証情報送信部と、を有し、
前記中央サーバは、
複数の前記参加者サーバにより有効であると判断された前記トランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するブロックデータ生成部と、
生成した前記ブロックデータを複数の前記参加者サーバに送信するブロックデータ送信部と、
前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を前記検知装置に送信する第２検証情報送信部と、を有し、
前記検知装置は、
複数の前記参加者サーバそれぞれから前記第１検証情報を取得し、前記中央サーバから前記第２検証情報を取得する検証情報取得部と、
前記第１検証情報と前記第２検証情報とを比較して、前記中央サーバにおける前記ブロックデータの改ざんの有無を判断する比較部と、を有する、
改ざん検知システム。
【請求項８】
前記中央サーバは、複数の前記参加者サーバから選択された何れか一の参加者サーバである、
請求項７に記載の改ざん検知システム。
【請求項９】
前記検知装置は、複数の前記参加者サーバから選択した何れか一の参加者サーバを前記中央サーバに変更する変更部を更に有する、
請求項７に記載の改ざん検知システム。
【請求項１０】
複数の前記参加者サーバおよび前記中央サーバのうち少なくとも１つのサーバが検知装置としての機能する検知部を備える、
請求項７から９の何れか一項に記載の改ざん検知システム。
【請求項１１】
複数の参加者サーバにより有効であると判断されたトランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するブロックデータ生成部と、
生成した前記ブロックデータを複数の前記参加者サーバに送信するブロックデータ送信部と、
前記第２記録媒体に記録されているブロックデータの改ざんの有無を判断する機能を備えた検知装置に対して、前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を送信する第２検証情報送信部と、
を備える中央サーバ。
【請求項１２】
前記第２検証情報送信部は、前記ブロックデータを生成したタイミング、前記検知装置から前記第２検証情報を要求されたタイミング、又は、前記参加者サーバが再起動したタイミングのうち、何れかのタイミングで前記第２検証情報を前記検知装置に送信する、
請求項１１に記載の中央サーバ。
【請求項１３】
複数の参加者サーバにより有効であると判断されたトランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するブロックデータ生成部と、
生成した前記ブロックデータを複数の前記参加者サーバに送信するブロックデータ送信部と、
生成した前記ブロックデータを前記ブロックデータ送信部が複数の前記参加者サーバに送信するタイミングで、送信する当該ブロックデータよりも前に生成されて前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を、前記第２記録媒体に記録されているブロックデータの改ざんの有無を判断する機能を備えた検知装置に対して送信する第２検証情報送信部と、
を備える中央サーバ。
【請求項１４】
ブロックチェーンを構成するためのブロックデータを生成し配布する中央サーバと、配布された前記ブロックデータをそれぞれの台帳に記録する複数の参加者サーバと、検知装置とを用いた改ざん検知方法であって、
前記参加者サーバにおいて、クライアントから受け付けたトランザクションデータが有効であるかを検証するステップと、
前記中央サーバにおいて、複数の前記参加者サーバにより有効であると判断された前記トランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するステップと、
前記中央サーバにおいて、生成した前記ブロックデータを複数の前記参加者サーバに送信するステップと、
前記参加者サーバにおいて、前記ブロックデータを前記中央サーバから受信して、第１記録媒体に記録するステップと、
前記参加者サーバにおいて、前記参加者サーバの前記第１記録媒体に記録されている前記ブロックデータに関する第１検証情報を前記検知装置に送信するステップと、
前記中央サーバにおいて、前記中央サーバの前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を前記検知装置に送信するステップと、
前記検知装置において、複数の前記参加者サーバそれぞれから前記第１検証情報を取得し、前記中央サーバから前記第２検証情報を取得するステップと、
前記検知装置において、前記第１検証情報と前記第２検証情報とを比較して、前記中央サーバにおける前記ブロックデータの改ざんの有無を判断するステップと、
を有する改ざん検知方法。
【請求項１５】
検知装置のコンピュータを機能させるプログラムであって、前記コンピュータに、
ブロックチェーンを構成するためのブロックデータを生成し配布する中央サーバに記録されているブロックデータに関する第２検証情報と、配布された前記ブロックデータをそれぞれの台帳に記録する複数の参加者サーバに記録されているブロックデータに関する第１検証情報と、を取得するステップと、
前記第１検証情報と前記第２検証情報とを比較して、前記ブロックデータの改ざんの有無を判断するステップと、
を実行させるプログラム。
【請求項１６】
中央サーバのコンピュータを機能させるプログラムであって、前記コンピュータに、
複数の参加者サーバにより有効であると判断されたトランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するステップと、
生成した前記ブロックデータを複数の前記参加者サーバに送信するステップと、
前記第２記録媒体に記録されているブロックデータの改ざんの有無を判断する機能を備えた検知装置に対して、前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を送信するステップと、
を実行させるプログラム。
【請求項１７】
中央サーバのコンピュータを機能させるプログラムであって、前記コンピュータに、
複数の参加者サーバにより有効であると判断されたトランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するステップと、
生成した前記ブロックデータを複数の前記参加者サーバに送信するステップと、
生成した前記ブロックデータを複数の前記参加者サーバに送信するタイミングで、送信する当該ブロックデータよりも前に生成されて前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を、前記第２記録媒体に記録されているブロックデータの改ざんの有無を判断する機能を備えた検知装置に対して送信するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検知装置、中央サーバ、改ざん検知システム、改ざん検知方法、及びプログラムに関する。
【背景技術】
【０００２】
近年では、セキュリティ性の高いデータ管理システムとして、ブロックチェーン等の分散型台帳技術を用いたシステムが知られている（例えば、特許文献１を参照）。ブロックチェーンには、不特定多数の参加者が取引の承認を行うパブリック型、及び、管理権限を有する一部の参加者のみが取引の承認を行うパーミッション型が存在する。
【０００３】
パーミッション型ブロックチェーンは、システムの管理者に許可された複数の参加者（参加者サーバ）と、これら参加者サーバから選択された一の中央サーバとにより構成される。複数の参加者サーバそれぞれは、クライアントから取引（トランザクション）の実行を要求されると、取引の内容（トランザクションデータ）の検証、承認を行う。中央サーバは、所定数以上の参加者サーバにより承認されたトランザクションデータを含むブロックデータを生成し、参加者サーバに配布する。生成、配布されたブロックデータは、中央サーバ及び参加者サーバそれぞれの台帳に追加されて記録される。このように、パーミッション型ブロックチェーンでは、許可された一部の参加者サーバ及び中央サーバ以外には取引内容が公開されないため、機密性の高い情報を扱うことに適している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−２０７９７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、パーミッション型ブロックチェーンでは、各参加者サーバに承認された後は、トランザクションデータの整合性の再検証が行われない。また、参加者サーバは、中央サーバから配布されたブロックデータの検証、承認を行わずに自身の台帳に記録する場合があるため、システム外部からの攻撃等により中央サーバのブロックデータが改ざんされていることを検知できない可能性がある。
【０００６】
本発明は、このような課題に鑑みてなされたものであって、パーミッション型ブロックチェーンの中央サーバにおけるブロックデータの改ざんを検知することができる検知装置、中央サーバ、改ざん検知システム、改ざん検知方法、及びプログラムを提供する。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明は以下の手段を採用している。
本発明の第１の態様によれば、検知装置は、ブロックチェーンを構成する複数の参加者サーバ及び中央サーバそれぞれから、前記参加者サーバに記録されているブロックデータに関する第１検証情報と、前記中央サーバに記録されているブロックデータに関する第２検証情報とを取得する検証情報取得部と、前記第１検証情報と前記第２検証情報とを比較して、前記中央サーバにおける前記ブロックデータの改ざんの有無を判断する比較部と、を備える。
【０００８】
本発明の第２の態様によれば、第１の態様に係る検知装置において、前記検証情報取得部は、前記第１検証情報及び前記第２検証情報として、複数の前記参加者サーバ及び前記中央サーバそれぞれに記録されている前記ブロックデータを取得する。
【０００９】
本発明の第３の態様によれば、第１の態様に係る検知装置において、前記検証情報取得部は、前記第１検証情報及び前記第２検証情報として、複数の前記参加者サーバ及び前記中央サーバそれぞれに記録されている前記ブロックデータのＣＲＣ値を取得する。
【００１０】
本発明の第４の態様によれば、第１の態様に係る検知装置において、前記検証情報取得部は、前記第１検証情報及び前記第２検証情報として、複数の前記参加者サーバ及び前記中央サーバそれぞれに記録されている前記ブロックデータの数を取得する。
【００１１】
本発明の第５の態様によれば、第１から第４の何れか一の態様に係る検知装置において、前記ブロックチェーンは、第１ブロックチェーンと、第２ブロックチェーンとを有し、前記検証情報取得部は、前記第１ブロックチェーンの複数の前記参加者サーバ、及び前記第２ブロックチェーンの複数の前記参加者サーバそれぞれから前記第１検証情報を取得し、前記第１ブロックチェーンの前記中央サーバ、及び前記第２ブロックチェーンの前記中央サーバから前記第２検証情報を取得し、前記比較部は、前記第１ブロックチェーンの前記中央サーバから取得した前記第２検証情報と前記第２ブロックチェーンの複数の前記参加者サーバそれぞれから取得した前記第１検証情報とを比較するとともに、前記第２ブロックチェーンの前記中央サーバから取得した前記第２検証情報と前記第１ブロックチェーンの複数の前記参加者サーバそれぞれから取得した前記第１検証情報とを比較して、前記第１ブロックチェーン及び前記第２ブロックチェーンの前記中央サーバにおける前記ブロックデータの改ざんの有無を判断する。
【００１２】
本発明の第６の態様によれば、第１から第５の何れか一の態様に係る検知装置は、複数の前記参加者サーバから選択した何れか一の参加者サーバを前記中央サーバに変更する変更部を更に備える。
【００１３】
本発明の第７の態様によれば、中央サーバは、複数の参加者サーバにより有効であると判断されたトランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するブロックデータ生成部と、生成した前記ブロックデータを複数の前記参加者サーバに送信するブロックデータ送信部と、前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を検知装置に送信する第２検証情報送信部と、を備える。
【００１４】
本発明の第８の態様によれば、第７の態様に係る中央サーバにおいて、前記第２検証情報送信部は、前記ブロックデータを生成したタイミング、前記検知装置から前記第２検証情報を要求されたタイミング、又は、前記参加者サーバが再起動したタイミングのうち、何れかのタイミングで前記第２検証情報を前記検知装置に送信する。
【００１５】
本発明の第９の態様によれば、改ざん検知システムは、ブロックチェーンを構成する複数の参加者サーバ及び中央サーバと、検知装置とを備える。前記参加者サーバは、クライアントから受け付けたトランザクションデータが有効であるか検証するトランザクションデータ検証部と、前記中央サーバから受信したブロックデータを第１記録媒体に記録する記録処理部と、前記第１記録媒体に記録されている前記ブロックデータに関する第１検証情報を前記検知装置に送信する第１検証情報送信部と、を有する。前記中央サーバは、複数の前記参加者サーバにより有効であると判断された前記トランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するブロックデータ生成部と、生成した前記ブロックデータを複数の前記参加者サーバに送信するブロックデータ送信部と、前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を前記検知装置に送信する第２検証情報送信部と、を有する。前記検知装置は、複数の前記参加者サーバそれぞれから前記第１検証情報を取得し、前記中央サーバから前記第２検証情報を取得する検証情報取得部と、前記第１検証情報と前記第２検証情報とを比較して、前記中央サーバにおける前記ブロックデータの改ざんの有無を判断する比較部と、を有する。
【００１６】
本発明の第１０の態様によれば、第９の態様に係る改ざん検知システムにおいて、前記中央サーバは、複数の前記参加者サーバから選択された何れか一の参加者サーバである。
【００１７】
本発明の第１１の態様によれば、第１０の態様に係る改ざん検知システムにおいて、前記検知装置は、複数の前記参加者サーバから選択した何れか一の参加者サーバを前記中央サーバに変更する変更部を更に有する。
【００１８】
本発明の第１２の態様によれば、ブロックチェーンを構成する複数の参加者サーバ及び中央サーバと、検知装置とを用いた改ざん検知方法は、前記参加者サーバにおいて、クライアントから受け付けたトランザクションデータが有効であるか検証するステップと、前記中央サーバにおいて、複数の前記参加者サーバにより有効であると判断された前記トランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するステップと、前記中央サーバにおいて、生成した前記ブロックデータを複数の前記参加者サーバに送信するステップと、前記参加者サーバにおいて、前記ブロックデータを前記中央サーバから受信して、第１記録媒体に記録するステップと、前記参加者サーバにおいて、前記参加者サーバの前記第１記録媒体に記録されている前記ブロックデータに関する第１検証情報を前記検知装置に送信するステップと、前記中央サーバにおいて、前記中央サーバの前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を前記検知装置に送信するステップと、前記検知装置において、複数の前記参加者サーバそれぞれから前記第１検証情報を取得し、前記中央サーバから前記第２検証情報を取得するステップと、前記検知装置において、前記第１検証情報と前記第２検証情報とを比較して、前記中央サーバにおける前記ブロックデータの改ざんの有無を判断するステップと、を有する。
【００１９】
本発明の第１３の態様によれば、検知装置のコンピュータを機能させるプログラムは、前記コンピュータに、ブロックチェーンを構成する中央サーバ及び複数の参加者サーバそれぞれから、前記中央サーバに記録されているブロックデータに関する第１検証情報と、前記参加者サーバに記録されているブロックデータに関する第２検証情報とを取得するステップと、前記第１検証情報と前記第２検証情報とを比較して、前記ブロックデータの改ざんの有無を判断するステップと、を実行させる。
【００２０】
本発明の第１４の態様によれば、中央サーバのコンピュータを機能させるプログラムは、前記コンピュータに、複数の参加者サーバにより有効であると判断されたトランザクションデータを含むブロックデータを生成し、第２記録媒体に記録するステップと、生成した前記ブロックデータを複数の前記参加者サーバに送信するステップと、前記第２記録媒体に記録されている前記ブロックデータに関する第２検証情報を検知装置に送信するステップと、を実行させる。
【発明の効果】
【００２１】
本発明に係る検知装置、中央サーバ、改ざん検知システム、改ざん検知方法、及びプログラムによれば、パーミッション型ブロックチェーンの中央サーバにおけるブロックデータの改ざんを検知することができる。
【図面の簡単な説明】
【００２２】
【図１】第１の実施形態に係る改ざん検知システムの全体構成を示す図である。
【図２】第１の実施形態に係る参加者サーバの機能構成を示す図である。
【図３】第１の実施形態に係る中央サーバの機能構成を示す図である。
【図４】第１の実施形態に係る参加者サーバ及び中央サーバの検知部の機能構成を示す図である。
【図５】第１の実施形態に係る改ざん検知システムの処理の一例を示す図である。
【図６】第１の実施形態に係るブロックデータの一例を示す図である。
【図７】第１の実施形態に係る比較部の機能を説明するための図である。
【図８】第１の実施形態の変形例に係る改ざん検知システムの処理の一例を示す図である。
【図９】第２の実施形態に係る改ざん検知システムの処理の一例を示す図である。
【図１０】第３の実施形態に係る参加者サーバ及び中央サーバの検知部の機能構成を示す図である。
【図１１】第３の実施形態に係る改ざん検知システムの処理の一例を示す図である。
【図１２】第４の実施形態に係る改ざん検知システムの全体構成を示す図である。
【図１３】第４の実施形態に係る改ざん検知システムの処理の一例を示す図である。
【図１４】少なくとも一の実施形態に係る参加者サーバ及び中央サーバのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００２３】
＜第１の実施形態＞
以下、本発明の第１の実施形態に係る改ざん検知システム１について、図１〜図７を参照しながら説明する。
【００２４】
（全体構成）
図１は、第１の実施形態に係る改ざん検知システムの全体構成を示す図である。
図１に示すように、改ざん検知システム１は、複数の参加者サーバ２（２Ａ、２Ｂ）と、中央サーバ３とを備えている。
【００２５】
本実施形態では、システム管理者により許可された複数の参加者サーバ２と、複数の参加者サーバ２から選択された一の中央サーバ３と、によりパーミッション型ブロックチェーンが構成される。
【００２６】
参加者サーバ２は、クライアントＣＬから要求された取引の内容（トランザクションデータ）の検証、承認を行う。クライアントＣＬは取引を行う利用者が操作するパーソナルコンピュータ、スマートフォン、タブレット等のコンピュータである。なお、図１には、改ざん検知システム１が二台の参加者サーバ２Ａ、２Ｂを備える例が示されているが、これに限られることはない。他の実施形態では、改ざん検知システム１は、三台以上の参加者サーバ２を備えていてもよい。
【００２７】
中央サーバ３は、所定数以上の参加者サーバ２により承認されたトランザクションデータを含むブロックデータを生成して、複数の参加者サーバ２それぞれに配布する。生成、配布されたブロックデータは、中央サーバ３及び複数の参加者サーバ２それぞれに記録される。
【００２８】
なお、本実施形態において、複数の参加者サーバ２、及び中央サーバ３は、中央サーバ３に記録されたブロックデータの改ざんを検知する検知装置として機能する。
【００２９】
（参加者サーバの機能構成）
図２は、第１の実施形態に係る参加者サーバの機能構成を示す図である。
図２に示すように、参加者サーバ２は、プロセッサ２０と、メモリ２１と、インタフェース２２と、第１記録媒体２３とを有するコンピュータである。なお、参加者サーバ２Ａ、２Ｂは、それぞれ同一の機能構成を有している。
【００３０】
プロセッサ２０は、予め用意されたプログラムに従って動作することで、トランザクションデータ受付部２００、トランザクションデータ検証部２０１、記録処理部２０２、第１検証情報送信部２０３、検知部４０としての機能を発揮する。
【００３１】
トランザクションデータ受付部２００は、クライアントＣＬからトランザクションデータ（取引実行要求）を受け付ける。
【００３２】
トランザクションデータ検証部２０１は、クライアントＣＬから受け付けたトランザクションデータが有効であるか検証する。
【００３３】
記録処理部２０２は、有効であると判断されたトランザクションデータを含むブロックデータを中央サーバ３から受信して、第１記録媒体２３に記録する。
【００３４】
第１検証情報送信部２０３は、第１記録媒体２３に記録されているブロックデータに関する第１検証情報を、自機以外の参加者サーバ２及び中央サーバ３に送信する。
【００３５】
検知部４０は、中央サーバ３におけるブロックデータの改ざんを検知する。検知部４０の具体的な機能構成については後述する。
【００３６】
メモリ２１は、ＤＲＡＭ等の、いわゆる主記憶装置であって、プログラムに従ってプロセッサ２０が動作するために必要な記憶領域である。
【００３７】
インタフェース２２は、通信ネットワークを介してクライアントＣＬ、中央サーバ３、及び他の参加者サーバ２と各種情報の送受信を行うための通信インタフェースである。
【００３８】
第１記録媒体２３は、ＨＤＤ、ＳＳＤ等の、いわゆる補助記憶装置である。第１記録媒体２３には、トランザクションデータ、ブロックデータ等が記録される。
【００３９】
（中央サーバの機能構成）
図３は、第１の実施形態に係る中央サーバの機能構成を示す図である。
図３に示すように、中央サーバ３は、プロセッサ３０と、メモリ３１と、インタフェース３２と、第２記録媒体３３とを有するコンピュータである。
【００４０】
プロセッサ３０は、予め用意されたプログラムに従って動作することで、要求受付部３００、ブロックデータ生成部３０１、ブロックデータ送信部３０２、第２検証情報送信部３０３、検知部４０としての機能を発揮する。
【００４１】
要求受付部３００は、複数の参加者サーバ２により有効であると判断されたトランザクションデータを含むブロックデータの生成要求をクライアントＣＬから受け付ける。
【００４２】
ブロックデータ生成部３０１は、複数の参加者サーバ２により有効であると判断されたトランザクションデータを含むブロックデータを生成し、第２記録媒体３３に記録する。
【００４３】
ブロックデータ送信部３０２は、生成したブロックデータを複数の参加者サーバ２に送信する。
【００４４】
第２検証情報送信部３０３は、第２記録媒体３３に記録されているブロックデータに関する第２検証情報を参加者サーバ２に送信する。
【００４５】
検知部４０は、中央サーバ３におけるブロックデータの改ざんを検知する。なお、本実施形態に係る中央サーバ３の検知部４０は、参加者サーバ２の検知部４０と同じ機能構成を有している。検知部４０の具体的な機能構成については後述する。
【００４６】
メモリ３１は、ＤＲＡＭ等の、いわゆる主記憶装置であって、プログラムに従ってプロセッサ３０が動作するために必要な記憶領域である。
【００４７】
インタフェース３２は、通信ネットワークを介してクライアントＣＬ、及び参加者サーバ２と各種情報の送受信を行うための通信インタフェースである。
【００４８】
第２記録媒体３３は、ＨＤＤ、ＳＳＤ等の、いわゆる補助記憶装置である。第２記録媒体３３には、ブロックデータ等が記録される。
【００４９】
（参加者サーバ及び中央サーバの検知部の機能構成）
図４は、第１の実施形態に係る参加者サーバ及び中央サーバの検知部の機能構成を示す図である。
図４に示すように、検知部４０は、検証情報取得部４００、比較部４０１、及び通知部４０２を有している。
【００５０】
検証情報取得部４００は、複数の参加者サーバ２及び中央サーバ３それぞれから、参加者サーバ２に記録されているブロックデータに関する第１検証情報と、中央サーバ３に記録されているブロックデータに関する第２検証情報とを取得する。より具体的には、参加者サーバ２において、検証情報取得部４００は、自機以外の参加者サーバ２から第１検証情報を取得するとともに、中央サーバ３から第２検証情報を取得する。また、中央サーバ３において、検証情報取得部４００は、複数の参加者サーバ２それぞれから第１検証情報を取得する。
【００５１】
比較部４０１は、第１検証情報と第２検証情報とを比較して、中央サーバにおけるブロックデータの改ざんの有無を判断する。
【００５２】
通知部４０２は、比較部４０１における比較結果を参加者サーバ２及び中央サーバ３（自機以外のサーバ）に通知する。
【００５３】
なお、本実施形態では、複数の参加者サーバ２、及び中央サーバ３のそれぞれが、検知装置として機能する態様を例として説明する。このため、複数の参加者サーバ２、及び中央サーバ３は、それぞれ検知部４０を有し、各サーバが並行してブロックデータの改ざんを検知する処理を実行する。なお、他の実施形態では、複数の参加者サーバ２、及び中央サーバ３のうち少なくとも一つのサーバが検知装置として機能する態様であってもよい。例えば、参加者サーバ２Ａのみが検知装置として機能する場合、参加者サーバ２Ａのみが検知部４０を有し、他の参加者サーバ２Ｂ及び中央サーバ３は検知部４０を省略してもよい。
【００５４】
（処理フロー）
図５は、第１の実施形態に係る改ざん検知システムの処理の一例を示す図である。
以下、図５を参照しながら、本実施形態に係る改ざん検知システム１の処理の一例について詳細に説明する。本実施形態では、改ざん検知システム１を構成する複数の参加者サーバ２及び中央サーバ３それぞれが、ブロックデータの改ざんを検知する検知装置として機能する。図５には、複数の参加者サーバ及び中央サーバ３のうち、参加者サーバ２Ａにおける検知装置としての機能（検知部４０の機能）が代表として記載されている。
【００５５】
図５に示すように、クライアントＣＬは、複数の参加者サーバ２Ａ、２Ｂそれぞれに対し、取引内容を示すトランザクションデータを送信して、取引の実行を要求する（ステップＳ１００）。トランザクションデータには、取引内容を示す情報が含まれている。取引内容を示す情報とは、例えば送金を行う場合、送金元及び送金先を特定可能な情報、送金額等である。
【００５６】
参加者サーバ２Ａ、２Ｂのトランザクションデータ受付部２００がクライアントＣＬからトランザクションデータを受信すると、トランザクションデータ検証部２０１は、受信したトランザクションデータが有効なもの（正しい取引内容）であるか否かを検証する（ステップＳ１０１）。例えば送金を行う場合、トランザクションデータ検証部２０１は、第１記録媒体２３に記録されている過去のブロックデータに含まれるトランザクションデータを参照して、新たに受信したトランザクションデータの送金元の残金と送金額とが整合しているか等を検証する。また、トランザクションデータ検証部２０１は、トランザクションデータに付された署名が正しいか否かを検証してもよい。
【００５７】
また、トランザクションデータ検証部２０１は、トランザクションデータが有効であるか否かを示す検証結果をクライアントＣＬに通知する（ステップＳ１０２）。
【００５８】
クライアントＣＬは、トランザクションデータが複数の参加者サーバ２のうち一定数以上の参加者サーバ２により有効と判断されなかった場合（ステップＳ１０３：ＮＯ）、処理を終了する。一方、クライアントＣＬは、トランザクションデータが一定数以上の参加者サーバ２により有効と判断された場合（ステップＳ１０３：ＹＥＳ）、このトランザクションデータを含むブロックデータの生成要求を中央サーバ３に送信する（ステップＳ１０４）。
【００５９】
中央サーバ３の要求受付部３００がクライアントＣＬからブロックデータの生成要求を受け付けると、ブロックデータ生成部３０１は、クライアントＣＬから受信したトランザクションデータを含むブロックデータを生成する（ステップＳ１０５）。このとき、ブロックデータ生成部３０１は、クライアントＣＬから受信したトランザクションデータを再検証して、有効である場合のみブロックデータを作成するようにしてもよい。
【００６０】
図６は、第１の実施形態に係るブロックデータの一例を示す図である。
例えば、ブロックデータ生成部３０１は、図６に示すように、クライアントＣＬから生成要求とともに受信したトランザクションデータと、一つ前のブロックデータＸのハッシュ値とを含むブロックデータＸ＋１を生成する。
【００６１】
本実施形態では、ブロックデータＸ＋１に含めるハッシュ値は、例えば一つ前のブロックデータＸが生成されたときにブロックデータ生成部３０１により計算されて第２記録媒体３３に記録されているものとする。この場合、ブロックデータ生成部３０１は、第２記録媒体３３から読み出したブロックデータＸのハッシュ値を、ブロックデータＸ＋１に書き込んで生成する。なお、他の実施形態では、ブロックデータ生成部３０１は、ブロックデータＸ＋１を生成する際に、第２記録媒体３３から一つ前のブロックデータＸを読み出してハッシュ値を計算するようにしてもよい。
【００６２】
次に、ブロックデータ生成部３０１は、新たに生成したブロックデータＸ＋１を複数の参加者サーバ２Ａ、２Ｂそれぞれに配布する（ステップＳ１０６）とともに、第２記録媒体３３に記録する（ステップＳ１０７）。
【００６３】
参加者サーバ２Ａ、２Ｂの記録処理部２０２は、中央サーバ３が生成したブロックデータＸ＋１を受信すると、第１記録媒体２３に記録する（ステップＳ１０８）。
【００６４】
また、参加者サーバ２Ａ、２Ｂの第１検証情報送信部２０３は、自身の第１記録媒体２３に記録されているブロックデータに関する第１検証情報を自機以外の参加者サーバ２、及び中央サーバ３それぞれに送信する（ステップＳ１０９）。図５には、参加者サーバ２Ｂの第１検証情報送信部２０３が、参加者サーバ２Ａ及び中央サーバ３に第１検証情報を送信する例が示されている。図示は略すが、参加者サーバ２Ａの第１検証情報送信部２０３も同様に、参加者サーバ２Ｂ及び中央サーバ３に第１検証情報を送信する。
【００６５】
同様に、中央サーバ３の第２検証情報送信部３０３は、第２記録媒体３３に記録されているブロックデータに関する第２検証情報を複数の参加者サーバ２Ａ、２Ｂそれぞれに送信する（ステップＳ１１０）。
【００６６】
次に、各サーバにおいて、検知部４０の検証情報取得部４００は、複数の参加者サーバ２Ａ、２Ｂそれぞれから第１検証情報を取得するとともに、中央サーバ３から第２検証情報を取得する（ステップＳ１１２）。図５には、参加者サーバ２Ａの検証情報取得部４００が、自機以外の参加者サーバ２Ｂから第１検証情報を取得するとともに、中央サーバ３から第２検証情報を取得する例が示されている。なお、第１検証情報及び第２検証情報は、例えば、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３それぞれに記録されているブロックデータである。
【００６７】
検知部４０の比較部４０１は、第１検証情報（参加者サーバ２Ａ、２Ｂのブロックデータ）と第２検証情報（中央サーバ３のブロックデータ）とを比較して、中央サーバ３に記録されているブロックデータの改ざんの有無を判断する（ステップＳ１１３）。図５には、参加者サーバ２Ａの比較部４０１が、自機の第１記録媒体２３に記録されている第１検証情報（参加者サーバ２Ａのブロックデータ）と、自機以外の参加者サーバ２から取得した第１検証情報（参加者サーバ２Ｂのブロックデータ）と、中央サーバ３から取得した第２検証情報（中央サーバ３のブロックデータ）とを比較して、中央サーバ３に記録されているブロックデータの改ざんの有無を判断する例が示されている。なお、図示は略すが、参加者サーバ２Ｂ及び中央サーバ３においても、同様の処理が並行して行われる。
【００６８】
図７は、第１の実施形態に係る比較部の機能を説明するための図である。
例えば、図７に示すように、ブロックデータＸが生成されて配布された後、次のブロックデータＸ＋１が生成、配布されるまでの間に、中央サーバ３のブロックデータＸがブロックデータＸ’に改ざんされたとする。また、参加者サーバ２Ａ、２ＢのブロックデータＸは改ざんされていないとする。この場合、従来のパーミッション型ブロックチェーンを用いたシステムでは、ブロックデータＸ＋１配布時に、既に各参加者サーバにより承認済みのトランザクションデータを含むブロックデータＸについては再検証を行わない。そうすると、従来のシステムでは、この中央サーバ３におけるブロックデータＸの改ざんを検知することが出来ない可能性がある。
【００６９】
このため、本実施形態では、検知部４０の比較部４０１において、中央サーバ３に記録されている各ブロックデータと、参加者サーバ２Ａ、２Ｂに記録されている各ブロックデータとをそれぞれ比較する。
【００７０】
比較部４０１は、中央サーバ３のブロックデータ（第２検証情報）が、所定数以上（例えば、３分の２以上）の参加者サーバ２のブロックデータ（第１検証情報）と一致しない場合（ステップＳ１１３：ＮＯ）、中央サーバ３のブロックデータが改ざんされていると判断する。そうすると、検知部４０の通知部４０２は、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３に、ブロックデータが改ざんされていることを示す検証結果を通知する（ステップＳ１１５）。図５には、参加者サーバ２Ａの通知部４０２が、自機以外の参加者サーバ２Ｂ、及び中央サーバ３に検証結果を通知する例が示されている。なお、図示は略すが、参加者サーバ２Ｂ及び中央サーバ３においても、同様の処理が並行して行われる。
【００７１】
この検証結果には、どのブロックデータが改ざんされているかを示す情報が含まれていてもよい。例えば、図７の例では、中央サーバ３のブロックデータＸ’と、参加者サーバ２Ａ、２ＢのブロックデータＸとが一致しない（ステップＳ１１３：ＮＯ）ので、比較部４０１は、中央サーバ３のブロックデータＸ’は改ざんされたものであると判断する。この場合、参加者サーバ２Ａの通知部４０２は、参加者サーバ２Ｂ、及び中央サーバ３に、中央サーバ３のブロックデータＸ’が改ざんされていることを示す検証結果を通知する（ステップＳ１１５）。このとき、中央サーバ３のブロックデータ生成部３０１は、複数の参加者サーバ２Ａ、２Ｂに記録されているブロックデータを参照して、改ざんされたブロックデータを正しいブロックデータに置き換えて修正するようにしてもよい。また、複数の参加者サーバ２に記録されているブロックデータが一致していない場合、ブロックデータ生成部３０１は、所定数以上（例えば、３分の２以上）の参加者サーバ２間で共通するブロックデータを正しいブロックデータであると判断するようにしてもよい。
【００７２】
一方、比較部４０１は、中央サーバ３のブロックデータが、所定数以上の参加者サーバ２のブロックデータと一致する場合（ステップＳ１１３：ＹＥＳ）、中央サーバ３のブロックデータが改ざんされていないと判断する。このとき、通知部４０２は、クライアントＣＬに対し、要求された取引が正常に完了したことを通知する（ステップＳ１１４）。また、通知部４０２は、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３に、中央サーバ３のブロックデータが改ざんされていないことを示す検証結果を通知する（ステップＳ１１５）。図５には、参加者サーバ２Ａの通知部４０２がクライアントＣＬに取引完了通知を送信する（ステップＳ１１４）とともに、自機以外の参加者サーバ２Ｂ、及び中央サーバ３に検証結果を通知する（ステップＳ１１５）例が示されている。なお、図示は略すが、参加者サーバ２Ｂ及び中央サーバ３においても、同様の処理が並行して行われる。なお、クライアントＣＬは、規定数（例えば過半数）以上のサーバから取引完了通知を受信した場合、取引が正常に実行されたと判断するようにしてもよい。また、他の実施形態では、参加者サーバ２Ａ、２Ｂ及び中央サーバ３の何れかが代表して、クライアントＣＬに取引完了通知を送信するようにしてもよい。この場合、代表となるサーバの通知部４０２は、例えば規定数以上のサーバから改ざんされていないことを示す検証結果を受信した場合、クライアントＣＬに取引完了通知を送信する。
【００７３】
（作用効果）
以上のように、本実施形態に係る検知装置（参加者サーバ２及び中央サーバ３）は、ブロックチェーンを構成する複数の参加者サーバ２及び中央サーバ３それぞれから、参加者サーバ２に記録されているブロックデータに関する第１検証情報と、中央サーバ３に記録されているブロックデータに関する第２検証情報とを取得する検証情報取得部４００と、第１検証情報と第２検証情報とを比較して、中央サーバ３におけるブロックデータの改ざんの有無を判断する比較部４０１と、を備える。
このようにすることで、参加者サーバ２及び中央サーバ３は、パーミッション型ブロックチェーンにおける中央サーバ３のブロックデータの改ざんの有無を検知することができる。
【００７４】
また、比較部４０１は、中央サーバ３の第２検証情報（ブロックデータ）が、所定数以上の参加者サーバ２の第１検証情報（ブロックデータ）と一致しない場合、中央サーバ３のブロックデータが改ざんされたと判断する。
そうすると、ブロックデータを矛盾なく改ざんするためには、中央サーバ３、及び、所定数以上の参加者サーバ２のブロックデータを改ざんしなければならない。このため、参加者サーバ２及び中央サーバ３は、ブロックチェーンにおける改ざんの困難性をより向上させることができる。
【００７５】
また、検証情報取得部は、第１検証情報及び第２検証情報として、複数の参加者サーバ２及び中央サーバ３それぞれに記録されているブロックデータを取得する。
このようにすることで、参加者サーバ２及び中央サーバ３は、中央サーバ３に記録されているブロックデータと、参加者サーバ２に記録されているブロックデータとを一つ一つ照合させることにより、ブロックデータの改ざんをより確実に検知することができる。
【００７６】
また、本実施形態に係る参加者サーバ２は、クライアントＣＬから受け付けたトランザクションデータが有効であるか検証するトランザクションデータ検証部２０１と、有効であると判断されたトランザクションデータを含むブロックデータを中央サーバ３から受信して、第１記録媒体２３に記録する記録処理部２０２と、第１記録媒体２３に記録されているブロックデータに関する第１検証情報を、自機以外の参加者サーバ２及び中央サーバ３に送信する第１検証情報送信部２０３と、を備える。
このようにすることで、参加者サーバ２は、検知装置として機能する各サーバに対し、中央サーバ３のブロックデータの改ざんを検知可能な第１検証情報を提供することができる。
【００７７】
また、本実施形態に係る中央サーバ３は、複数の参加者サーバ２により有効であると判断されたトランザクションデータを含むブロックデータを生成し、第２記録媒体３３に記録するブロックデータ生成部３０１と、生成したブロックデータを複数の参加者サーバ２に送信するブロックデータ送信部３０２と、第２記録媒体３３に記録されているブロックデータに関する第２検証情報を参加者サーバ２に送信する第２検証情報送信部３０３と、を備える。
このようにすることで、中央サーバ３は、検知装置として機能する参加者サーバ２に対し、中央サーバ３のブロックデータの改ざんを検知可能な第２検証情報を提供することができる。
【００７８】
なお、上述の説明において、第１検証情報及び第２検証情報が参加者サーバ２Ａ、２Ｂ、及び中央サーバ３それぞれに記録されているブロックデータである態様を例としたが、これに限られることはない。他の実施形態では、検証情報取得部４００は、第１検証情報及び第２検証情報として、複数の参加者サーバ２Ａ、２Ｂ、及び中央サーバ３それぞれに記録されているブロックデータのＣＲＣ値を取得するようにしてもよい。
このようにすることで、比較部４０１は、中央サーバ３のブロックデータと、参加者サーバ２Ａ、２Ｂそれぞれのブロックデータとを比較するよりも処理時間を短縮することができる。また、検証情報取得部４００は、各ブロックデータのＣＲＣ値のみを取得すればよいため、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３との間のトラフィックを低減させることができる。
【００７９】
また、検証情報取得部４００は、第１検証情報及び第２検証情報として、複数の参加者サーバ２Ａ、２Ｂ、及び中央サーバ３それぞれに記録されているブロックデータの数を取得してもよい。
図７の例のように、ブロックデータＸが生成、配布された後、ブロックデータＸ＋１が生成、配布されるまでの間に、中央サーバ３のブロックデータＸがブロックデータＸ’に改ざんされたとする。このとき、参加者サーバ２Ａ、２Ｂには、中央サーバ３から配布されたブロックデータＸ＋１が、ブロックデータＸに連結されて記録される。なお、ブロックデータＸ＋１には、図７に示すように改ざん前のブロックデータＸのハッシュ値が含まれているとすると、参加者サーバ２ではブロックデータＸのハッシュ値及びブロックデータＸ＋１に含まれるハッシュ値は一致するので、これらのブロックデータは正常に連結されて記憶される。一方、中央サーバ３においては、改ざん後のブロックデータＸ’のハッシュ値と、ブロックデータＸ＋１に含まれるハッシュ値（改ざん前のブロックデータＸのハッシュ値）とが一致しないため、中央サーバ３にはブロックデータＸ＋１が記録されない場合がある。そうすると、中央サーバ３に記録されるブロックデータの数と、参加者サーバ２Ａ、２Ｂに記録されるブロックデータの数とが不一致となる。このため、比較部４０１は、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３それぞれに記録されているブロックデータの数を比較することにより、中央サーバ３のブロックデータの改ざんを検知することができる。また、比較部４０１は、ブロックデータの数を比較するのみの簡易な処理を行えばよいので、処理時間を短縮することができる。
【００８０】
＜第１の実施形態の変形例＞
また、上述の第１の実施形態では、新たなブロックデータが生成、配信される毎に、参加者サーバ２の第１検証情報送信部２０３、及び中央サーバ３の第２検証情報送信部３０３が第１検証情報及び第２検証情報を送信する態様を例として説明したが、これに限られることはない。例えば、本変形例では、各サーバにおいて、検知部４０の検証情報取得部４００は、所定時間（例えば、１０分）が経過したタイミングで参加者サーバ２、及び中央サーバ３から第１検証情報及び第２検証情報を取得する。以下、図８を参照しながら、第１の実施形態の変形例について説明する。
【００８１】
図８は、第１の実施形態の変形例に係る改ざん検知システムの処理の一例を示す図である。
図８には、参加者サーバ２Ａの検知部４０が改ざんを検知する処理を実施する例が示されている。図８に示すように、参加者サーバ２Ａにおいて、検知部４０の検証情報取得部４００は、第１検証情報及び第２検証情報を取得するタイミングであるか否かを判断する（ステップＳ１２０）。検証情報取得部４００は、前回、第１検証情報及び第２検証情報を取得してから所定時間を経過していない場合（ステップＳ１２０：ＮＯ）、取得タイミングとなるまで待機する。一方、検証情報取得部４００は、前回、第１検証情報及び第２検証情報を取得してから所定時間を経過した場合（ステップＳ１２０：ＹＥＳ）、自機以外の参加者サーバ２Ｂ、及び中央サーバ３に検証情報を送信するように要求する（ステップＳ１２１）。
【００８２】
そうすると、参加者サーバ２Ｂの第１検証情報送信部２０３は、第１検証情報を参加者サーバ２Ａに送信する（ステップＳ１２２）。同様に、中央サーバ３の第２検証情報送信部３０３は、第２検証情報を参加者サーバ２Ａに送信する（ステップＳ１２３）。
【００８３】
参加者サーバ２Ａの検証情報取得部４００が第１検証情報及び第２検証情報を取得すると（ステップＳ１２４）、比較部４０１は第１検証情報と第２検証情報とを比較して、中央サーバ３に記録されているブロックデータの改ざんの有無を判断する（ステップＳ１２５）。当該処理は第１の実施形態における処理（図５のステップＳ１１３）と同様である。
【００８４】
また、参加者サーバ２Ａの通知部４０２は、参加者サーバ２Ｂ、及び中央サーバ３に、中央サーバ３のブロックデータが改ざんされているか否かを示す検証結果を通知する（ステップＳ１２６）。
【００８５】
このようにすることで、参加者サーバ２Ａは、クライアントＣＬによる取引実行要求の有無に関わらず、定期的に中央サーバ３のブロックデータの改ざんの有無を確認することが出来る。なお、図８には、参加者サーバ２Ａが検知装置として機能し、ブロックデータの改ざんの有無を検知する例が示されているが、これに限られることはない。他の実施形態では、参加者サーバ２Ｂ及び／又は中央サーバ３が検知装置として機能し、参加者サーバ２Ａに代えて、又は、参加者サーバ２Ａと並行して、上述の各ステップを実行するようにしてもよい。また、更に他の実施形態では、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３は、所定期間毎に順番に上記処理を実施するようにしてもよい。
【００８６】
＜第２の実施形態＞
次に、本発明の第２の実施形態に係る改ざん検知システム１について図９を参照しながら説明する。
第１の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
【００８７】
例えば、システム外部からの攻撃等により、全ての参加者サーバ及び中央サーバが再起動したとする。従来のシステムでは、全ての参加者サーバが再起動した場合、中央サーバに記録されているブロックデータを各参加者サーバに配信して複製する。しかしながら、中央サーバのブロックデータが改ざんされていた場合、改ざんされたブロックデータと、その前後のブロックデータとのハッシュ値との整合性が取れなくなるため、改ざんされたブロックデータ以降のブロックデータは参加者サーバに記録されなくなってしまう。そうすると、改ざんされたブロックデータ以降のブロックデータが参加者サーバから失われてしまう可能性がある。このため、本実施形態に係る改ざん検知システム１は、図９に示す処理を行うことにより、参加者サーバ２の再起動後にブロックデータが失われてしまうことを抑制している。
【００８８】
（処理フロー）
図９は、第２の実施形態に係る改ざん検知システムの処理の一例を示す図である。
図９には、参加者サーバ２Ａが検知装置として機能し、改ざんの有無を検知する処理を実施する例が示されている。図９に示すように、システム外部からの攻撃等により、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３が再起動したとする（ステップＳ２００）。そうすると、参加者サーバ２Ａ、２Ｂの第１検証情報送信部２０３は、第１検証情報を自機以外の参加者サーバ２、及び中央サーバ３に送信する（ステップＳ２０１）。同様に、中央サーバ３の第２検証情報送信部３０３は、第２検証情報を参加者サーバ２Ａ、２Ｂに送信する（ステップＳ２０２）。
【００８９】
参加者サーバ２Ａにおいて、検知部４０の検証情報取得部４００が第１検証情報及び第２検証情報を取得すると（ステップＳ２０３）、比較部４０１は、第１検証情報と第２検証情報とを比較して、中央サーバ３のブロックデータが改ざんされたか否かを判断する（ステップＳ２０４）。当該処理は、第１の実施形態の処理（図５のステップＳ１１３）と同様である。
【００９０】
また、参加者サーバ２Ａの通知部４０２は、参加者サーバ２Ｂ、及び中央サーバ３に、中央サーバ３のブロックデータが改ざんされているか否かを示す検証結果を通知する（ステップＳ２０５）。
【００９１】
次に、中央サーバ３のブロックデータ生成部３０１及びブロックデータ送信部３０２は、参加者サーバ２Ａの検知部４０から通知された検証結果を参照し、ブロックデータの改ざんが検知されたか否かを判断する（ステップＳ２０６）。
【００９２】
ブロックデータ送信部３０２は、ブロックデータの改ざんが検知されなかった場合（ステップＳ２０６：ＹＥＳ）、第２記録媒体３３に記録されているブロックデータを全ての参加者サーバ２Ａ、２Ｂに配布する（ステップＳ２０７）。
【００９３】
そうすると、参加者サーバ２Ａ、２Ｂの記録処理部２０２は、中央サーバ３から配布されたブロックデータを自身の第１記録媒体２３に記録する（ステップＳ２０８）。これにより、再起動が行われた後も、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３において同じ内容のブロックデータを持つことができる。これにより、改ざん検知システム１は、改ざんされたブロックデータ以降のブロックデータが参加者サーバ２から失われてしまうことを抑制することができる。
【００９４】
一方、中央サーバ３のブロックデータ生成部３０１は、ブロックデータの改ざんが検知された場合（ステップＳ２０６：ＮＯ）、参加者サーバ２にブロックデータの送信を要求する（ステップＳ２０９）。このとき、ブロックデータ生成部３０１は、所定数以上（例えば、３分の２以上）の参加者サーバ２間で共通するブロックデータを正しいブロックデータであると判断し、この正しいブロックデータを有する参加者サーバ２（図９の例では、参加者サーバ２Ａ）にブロックデータの送信を要求するようにしてもよい。また、検証結果にどのブロックデータが改ざんされたかを示す情報が含まれている場合、ブロックデータ生成部３０１は、当該改ざんされたブロックデータ及びそれ以降のブロックデータのみを送信するように参加者サーバ２Ａに要求するようにしてもよい。
【００９５】
中央サーバ３からブロックデータの送信要求を受け付けると、参加者サーバ２Ａの記録処理部２０２は、第１記録媒体２３からブロックデータを読み出して、中央サーバ３に送信する（ステップＳ２１０）。
【００９６】
中央サーバ３のブロックデータ生成部３０１は、参加者サーバ２Ａから受信したブロックデータを第２記録媒体３３に記録する（ステップＳ２１１）。
【００９７】
また、中央サーバ３は、参加者サーバ２Ａから受信したブロックデータにより、正しいブロックデータが復元されると、修復後のブロックデータを全ての参加者サーバ２Ａ、２Ｂに配布する（ステップＳ２１２）。
【００９８】
そうすると、参加者サーバ２Ａ、２Ｂの記録処理部２０２は、中央サーバ３から配布されたブロックデータを自身の第１記録媒体２３に記録する（ステップＳ２１３）。このようにすることで、中央サーバ３のブロックデータが改ざんされ、且つ再起動を行った後も、正しいブロックデータを復元し、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３において同期することができる。これにより、改ざん検知システム１は、改ざんされたブロックデータ以降のブロックデータが参加者サーバ２から失われてしまうことを抑制することができる。なお、図９には、参加者サーバ２Ａが検知装置として機能し、ブロックデータの改ざんの有無を検知する例が示されているが、これに限られることはない。他の実施形態では、参加者サーバ２Ｂ又は中央サーバ３が検知装置として機能し、参加者サーバ２Ａに代えて上述の各ステップを実行するようにしてもよい。また、参加者サーバ２Ａ、２Ｂ、及び中央サーバ３それぞれが並行して上述の各ステップを実行するようにしてもよい。この場合、中央サーバ３のブロックデータ生成部３０１は、ステップＳ２０６において、規定数（例えば過半数）以上のサーバにおいて、改ざんが検知されなかったことを示す検証結果が得られた場合、ブロックデータは改ざんされていない（ステップＳ２０６：ＹＥＳ）と判断するようにしてもよい。
【００９９】
＜第３の実施形態＞
次に、本発明の第３の実施形態に係る改ざん検知システム１について図１０〜図１１を参照しながら説明する。
第１及び第２の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
【０１００】
パーミッション型ブロックチェーンでは、ブロックデータ生成の権利を持つ中央サーバ３がデータ改ざん等の攻撃対象として狙われやすくなる。このため、本実施形態に係る改ざん検知システム１は、中央サーバ３が攻撃される可能性を低減させるための機能構成を更に有している。
【０１０１】
図１０は、第３の実施形態に係る参加者サーバ及び中央サーバの検知部の機能構成を示す図である。
図１０に示すように、本実施形態に係る検知部４０は、変更部４０３としての機能を更に有している。変更部４０３は、所定のタイミングで、複数の参加者サーバ２から選択した何れか一の参加者サーバ２を中央サーバ３に変更する。所定のタイミングとは、所定時間を経過したタイミング、又は、中央サーバ３のブロックデータの改ざんが検知されたタイミングである。
【０１０２】
（処理フロー）
図１１は、第３の実施形態に係る改ざん検知システムの処理の一例を示す図である。
図１１には、参加者サーバ２Ａの検知部４０が中央サーバを変更する処理を実施する例が示されている。図１１に示すように、参加者サーバ２Ａにおいて、検知部４０の変更部４０３は、前回、中央サーバ３を変更してから所定時間（例えば、１２時間）が経過したか否かを判断する（ステップＳ３００）。変更部４０３は、所定時間を経過していない場合（ステップＳ３００：ＮＯ）、所定時間が経過するまで待機する。一方、変更部４０３は、所定時間を経過した場合（ステップＳ３００：ＹＥＳ）、新たな中央サーバ３を選択する（ステップＳ３０２）。
【０１０３】
また、変更部４０３は、ステップＳ３００と並行して、比較部４０１の検証結果に基づいて中央サーバ３の改ざんが検知されたか否かを判断する（ステップＳ３０１）。変更部４０３は、改ざんが検知されていない場合（ステップＳ３０１：ＮＯ）、比較部４０１から次の検証結果を出力するまで待機する。一方、変更部４０３は、改ざんが検知された場合（ステップＳ３０１：ＹＥＳ）、新たな中央サーバ３を選択する（ステップＳ３０２）。
【０１０４】
変更部４０３は、所定時間を経過した場合（ステップＳ３００：ＹＥＳ）、又は中央サーバ３の改ざんが検知された場合（ステップＳ３０１：ＹＥＳ）、新たな中央サーバ３を選択する（ステップＳ３０２）。例えば、変更部４０３は、複数の参加者サーバ２Ａ、２Ｂのうち、最も起動時間が古い（又は、新しい）サーバを中央サーバ３として選択する。また、変更部４０３は、複数の参加者サーバ２Ａ、２Ｂのうち、最も処理スピードが速いサーバを中央サーバ３として選択する。なお、一度中央サーバ３として選択された参加者サーバ２は、他の全ての参加者サーバ２が中央サーバ３として選択されるまで、選択対象から除外されるようにしてもよい。このようにすることで、例えば処理速度の速い二つの参加者サーバ２が中央サーバ３として交互に選択され続けてしまうなど、選択されるサーバに偏りが生じることを抑制可能である。
【０１０５】
次に、通知部４０２は、中央サーバの変更を参加者サーバ２Ａ、２Ｂ、及び中央サーバ３に通知する（ステップＳ３０３）。例えば、変更部４０３が参加者サーバ２Ａを次の中央サーバ３として選択したとする。そうすると、検知部４０からの通知を受信後、参加者サーバ２Ａは中央サーバとして機能する。同様に、検知部４０からの通知を受信後、参加者サーバ２Ａ、及び中央サーバ３は、参加者サーバとして機能する。
【０１０６】
このように、検知部４０は、所定のタイミングで、複数の参加者サーバ２から選択した何れか一の参加者サーバ２を中央サーバ３に変更する。これにより、中央サーバ３を固定とするよりも、中央サーバ３が攻撃されにくくなる。
【０１０７】
＜第４の実施形態＞
次に、本発明の第４の実施形態に係る改ざん検知システム１について図１２〜図１３を参照しながら説明する。
第１〜第３の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
【０１０８】
（全体構成）
図１２は、第４の実施形態に係る改ざん検知システムの全体構成を示す図である。
図１２に示すように、本実施形態に係る改ざん検知システム１は、第１ブロックチェーン及び第２ブロックチェーンを有している。第１ブロックチェーンは、複数の参加者サーバ２Ａ、２Ｂ、及び中央サーバ３Ａにより構成される。第２ブロックチェーンは、複数の参加者サーバ２Ｃ、２Ｄ、及び中央サーバ３Ｂにより構成される。参加者サーバ２Ａ、２Ｂ、２Ｃ、２Ｄは同一の機能構成を有している。また、中央サーバ３Ａ、３Ｂは同一の機能構成を有している。
【０１０９】
また、本実施形態に係る検知部４０は、第１ブロックチェーンの中央サーバ３Ａに記録されたブロックデータの改ざん、及び、第２ブロックチェーンの中央サーバ３Ｂに記録されたブロックデータの改ざんを検知する。
【０１１０】
また、本実施形態に係る改ざん検知システム１において、第１ブロックチェーン及び第２ブロックチェーンは、予め定められた関数を用いて互いに変換可能な情報を管理するものである。例えば、改ざん検知システム１が電力取引に関連する情報を管理する場合、第１ブロックチェーンには電力の授受に関するトランザクションデータ（例えば、発電所から需要家に供給された電力（ｋＷ））が記録され、第２ブロックチェーンには授受された電力に応じた金銭の取引に関するトランザクションデータ（例えば、需要家から発電所に支払われた電気料金（円））が記録されるとする。供給電力（ｋＷ）及び電気料金（円）は、予め定められた関数を用いて互いに変換可能である。
【０１１１】
本実施形態において、クライアントＣＬ１は、第１ブロックチェーンを構成する参加者サーバ２Ａ、２Ｂに、電力の供給元（発電所を運営する電力会社）及び供給先（需要家）を特定可能な情報と、供給電力（ｋＷ）とを含むトランザクションデータを送信する。参加者サーバ２Ａ、２Ｂによりこのトランザクションデータが検証、承認されると、中央サーバ３Ａは当該トランザクションデータを含むブロックデータを生成して、参加者サーバ２Ａ、２Ｂに配布する。これにより、第１ブロックデータ内において電力の授受に関するトランザクションデータが共有されて管理される。
【０１１２】
また、クライアントＣＬ２は、第２ブロックチェーンを構成する参加者サーバ２Ｃ、２Ｄに、電気料金の送金元（需要家）及び送金先（電力会社）を特定可能な情報と、電気料金（円）とを含むトランザクションデータを送信する。参加者サーバ２Ｃ、２Ｄによりこのトランザクションデータが検証、承認されると、中央サーバ３Ｂは当該トランザクションデータを含むブロックデータを生成して、参加者サーバ２Ｃ、２Ｄに配布する。これにより、第２ブロックデータ内において電気料金の取引に関するトランザクションデータが共有されて管理される。
【０１１３】
（処理フロー）
図１３は、第４の実施形態に係る改ざん検知システムの処理の一例を示す図である。
以下、図１３を参照しながら、本実施形態に係る改ざん検知システム１の処理の一例について詳細に説明する。なお、クライアントＣＬ１、ＣＬ２が参加者サーバ２Ａ、２Ｂ、２Ｃ、２Ｄに取引実行要求を送信してから、中央サーバ３Ａ、３Ｂにブロックデータ生成要求を送信するまでの処理は、第１の実施形態における処理（図５のステップＳ１００〜Ｓ１０４）と同様であるため、説明を省略する。また、図１３には、第１ブロックチェーンの参加者サーバ２Ａが検知装置として機能し、第１ブロックチェーン及び第２ブロックチェーンそれぞれにおける改ざんを検知する例が示されている。
【０１１４】
図１３に示すように、第１ブロックチェーンにおける中央サーバ３Ａの要求受付部３００がクライアントＣＬ１からブロックデータの生成要求（図５のステップＳ１０４）を受け付けると、ブロックデータ生成部３０１は、クライアントＣＬ１から受信したトランザクションデータを含むブロックデータを作成する（ステップＳ４００）。
【０１１５】
次に、中央サーバ３Ａのブロックデータ生成部３０１は、新たに生成したブロックデータを、同じ第１ブロックチェーンに属する参加者サーバ２Ａ、２Ｂそれぞれに配布する（ステップＳ４０１）とともに、第２記録媒体３３に記録する（ステップＳ４０２）。
【０１１６】
参加者サーバ２Ａ、２Ｂの記録処理部２０２は、中央サーバ３Ａが生成したブロックデータを受信すると、第１記録媒体２３に記録する（ステップＳ４０３）。
【０１１７】
また、参加者サーバ２Ｂの第１検証情報送信部２０３は、自身の第１記録媒体２３に記録されているブロックデータに関する第１検証情報を参加者サーバ２Ａに送信する（ステップＳ４０４）。
【０１１８】
同様に、中央サーバ３Ａの第２検証情報送信部３０３は、第２記録媒体３３に記録されているブロックデータに関する第２検証情報を参加者サーバ２Ａに送信する（ステップＳ４０５）。
【０１１９】
また、第２ブロックチェーンの参加者サーバ２Ｃ、２Ｄ、及び中央サーバ３Ｂは、同様にステップＳ４００〜Ｓ４０５を実行する。
【０１２０】
次に、参加者サーバ２Ａにおいて、検知部４０の検証情報取得部４００は、参加者サーバ２Ｂ、２Ｃ、２Ｄそれぞれからブロックデータ（第１検証情報）を取得するとともに、中央サーバ３Ａ、３Ｂそれぞれからブロックデータ（第２検証情報）を取得する（ステップＳ４０６）。なお、本実施形態において、第１検証情報及び第２検証情報は、参加者サーバ２Ａ、２Ｂ、２Ｃ、２Ｄ、及び中央サーバ３Ａ、３Ｂそれぞれに記録されているブロックデータである。
【０１２１】
検知部４０の比較部４０１は、第１ブロックチェーンの中央サーバ３Ａから取得した第２検証情報（ブロックデータ）と、第２ブロックチェーンの参加者サーバ２Ｃ、２Ｄから取得した第１検証情報（ブロックデータ）とに基づいて、第１ブロックチェーンの中央サーバ３Ａに記録されているブロックデータの改ざんの有無を判断する（ステップＳ４０７）。上述のように、第１ブロックチェーンの中央サーバ３Ａのブロックデータには供給電力（ｋＷ）に関するトランザクションデータが含まれ、第２ブロックチェーンの参加者サーバ２Ｃ、２Ｄのブロックデータには、この供給電力（ｋＷ）に対応する電気料金（円）に関するトランザクションデータが含まれている。このとき、比較部４０１は、予め規定された関数を用いて、中央サーバ３Ａのブロックデータに含まれる供給電力（ｋＷ）に対応する電気料金（円）を求める。また、比較部４０１は、予め規定された関数を用いて、参加者サーバ２Ｃ、２Ｄのブロックデータに含まれる電気料金（円）に対応する供給電力（ｋＷ）を求めてもよい。比較部４０１は、このように変換したデータを比較することにより、第１ブロックチェーンの中央サーバ３Ａに記録されているブロックデータが、第２ブロックチェーンの参加者サーバ２Ｃ、２Ｄに記録されているブロックデータと整合するか確認して、改ざんの有無を判断する。
【０１２２】
比較部４０１は、中央サーバ３Ａのブロックデータが、第２ブロックチェーンの所定数以上（例えば、３分の２以上）の参加者サーバ２のブロックデータと一致しない場合（ステップＳ４０７：ＮＯ）、中央サーバ３Ａのブロックデータが改ざんされていると判断する。そうすると、通知部４０２は、第１ブロックチェーンの中央サーバ３Ａにブロックデータが改ざんされていることを示す検証結果を通知する（ステップＳ４０９）。この検証結果には、中央サーバ３Ａのどのブロックデータが改ざんされているかを示す情報が含まれていてもよい。また、通知部４０２は、第１ブロックチェーンの参加者サーバ２Ａ、２Ｂと、第２ブロックチェーンの参加者サーバ２Ｃ、２Ｄと、第２ブロックチェーンの中央サーバ３Ｂとのそれぞれに、同様の検証結果を通知するようにしてもよい。
【０１２３】
一方、比較部４０１は、中央サーバ３Ａのブロックデータが、第２ブロックチェーンの所定数以上の参加者サーバ２のブロックデータと一致する場合（ステップＳ４０７：ＹＥＳ）、中央サーバ３Ａのブロックデータが改ざんされていないと判断する。このとき、通知部４０２は、クライアントＣＬ１に対し、要求された取引が正常に完了したことを通知する（ステップＳ４０８）。また、通知部４０２は、第１ブロックチェーンの中央サーバ３Ａにブロックデータが改ざんされていないことを示す検証結果を通知する（ステップＳ４０９）。なお、通知部４０２は、第１ブロックチェーンの参加者サーバ２Ａ、２Ｂと、第２ブロックチェーンの参加者サーバ２Ｃ、２Ｄと、第２ブロックチェーンの中央サーバ３Ｂとのそれぞれに、同様の検証結果を通知するようにしてもよい。
【０１２４】
同様に、比較部４０１は、第２ブロックチェーンの中央サーバ３Ｂから取得した第２検証情報（ブロックデータ）と、第１ブロックチェーンの参加者サーバ２Ａ、２Ｂから取得した第１検証情報（ブロックデータ）とに基づいて、第２ブロックチェーンの中央サーバ３Ｂに記録されているブロックデータの改ざんの有無を判断する（ステップＳ４１０）。なお、図１３の例では、参加者サーバ２Ａの比較部４０１は、自機の第１記録媒体２３に記録されている第１検証情報と、参加者サーバ２Ｂから取得した第１検証情報と、第２ブロックチェーンの中央サーバ３Ｂから取得した第２検証情報とに基づいて、改ざんの有無を判断する。
【０１２５】
比較部４０１は、中央サーバ３Ｂのブロックデータが、第１ブロックチェーンの所定数以上（例えば、３分の２以上）の参加者サーバ２のブロックデータと一致しない場合（ステップＳ４１０：ＮＯ）、中央サーバ３Ｂのブロックデータが改ざんされていると判断する。そうすると、通知部４０２は、第２ブロックチェーンの中央サーバ３Ｂにブロックデータが改ざんされていることを示す検証結果を通知する（ステップＳ４１２）。この検証結果には、中央サーバ３Ｂのどのブロックデータが改ざんされているかを示す情報が含まれていてもよい。また、通知部４０２は、第１ブロックチェーンの参加者サーバ２Ａ、２Ｂと、第２ブロックチェーンの参加者サーバ２Ｃ、２Ｄと、第１ブロックチェーンの中央サーバ３Ａとのそれぞれに、同様の検証結果を通知するようにしてもよい。
【０１２６】
一方、比較部４０１は、中央サーバ３Ｂのブロックデータが、第１ブロックチェーンの所定数以上の参加者サーバ２のブロックデータと一致する場合（ステップＳ４１０：ＹＥＳ）、中央サーバ３Ｂのブロックデータが改ざんされていないと判断する。このとき、通知部４０２は、クライアントＣＬ２に対し、要求された取引が正常に完了したことを通知する（ステップＳ４１１）。また、通知部４０２は、第２ブロックチェーンの中央サーバ３Ｂにブロックデータが改ざんされていないことを示す検証結果を通知する（ステップＳ４１２）。なお、通知部４０２は、第１ブロックチェーンの参加者サーバ２Ａ、２Ｂと、第２ブロックチェーンの参加者サーバ２Ｃ、２Ｄと、第１ブロックチェーンの中央サーバ３Ａとのそれぞれに、同様の検証結果を通知するようにしてもよい。
【０１２７】
なお、図１３には、参加者サーバ２Ａが検知装置として機能し、第１ブロックチェーン及び第２ブロックチェーンのブロックデータの改ざんの有無を検知する例が示されているが、これに限られることはない。他の実施形態では、参加者サーバ２Ｂ〜２Ｄ及び中央サーバ３Ａ〜２Ｂのうち一つが検知装置として機能し、参加者サーバ２Ａに代えて上述の各ステップを実行するようにしてもよい。
【０１２８】
また、更に他の実施形態では、参加者サーバ２Ａ〜２Ｄ及び中央サーバ３Ａ〜３Ｂのうち何れか一つが第１ブロックチェーンのブロックデータの改ざんの有無を検知し、他の一つが第２ブロックチェーンのブロックデータの改ざんの有無を検知するようにしてもよい。例えば、参加者サーバ２Ａが第１ブロックチェーンの検知装置として機能する場合、参加者サーバ２Ａは、第１ブロックチェーンの中央サーバ３Ａの第２検証情報と、第２ブロックチェーンの参加者サーバ２Ｃ、２Ｄの第１検証情報とに基づいて、第１ブロックチェーン（中央サーバ３Ａ）のブロックデータの改ざんの有無を検知する。また、参加者サーバ２Ｃが第２ブロックチェーンの検知装置として機能する場合、参加者サーバ２Ｃは、第２ブロックチェーンの中央サーバ３Ｂの第２検証情報と、第１ブロックチェーンの参加者サーバ２Ａ、２Ｂの第１検証情報とに基づいて、第２ブロックチェーン（中央サーバ３Ｂ）のブロックデータの改ざんの有無を検知する。
【０１２９】
このようにすることで、参加者サーバ２及び中央サーバ３は、第１ブロックチェーンの中央サーバ３Ａと、第２ブロックチェーンの中央サーバ３Ｂとの両方の改ざんを検知することができる。
【０１３０】
また、本実施形態に係る改ざん検知システム１において、中央サーバ３Ａ、３Ｂのブロックデータを改ざんする場合、第１ブロックチェーン及び第２ブロックチェーン双方の参加者サーバ２Ａ、２Ｂ、２Ｃ、２Ｄのブロックデータ、及び変換用の関数を改ざんしなければならない。したがって、改ざん検知システム１、参加者サーバ２、及び中央サーバ３は、ブロックデータの改ざんの困難性を更に向上させることができる。
【０１３１】
また、本実施形態に係る検知部４０は、第１の実施形態の変形例と同様に、所定時間（例えば、１０分）が経過したタイミングで第１ブロックチェーンの中央サーバ３Ａの改ざん、及び、第２ブロックチェーンの中央サーバ３Ｂの改ざんを検知するようにしてもよい。
【０１３２】
＜ハードウェア構成＞
図１４は、少なくとも一の実施形態に係る参加者サーバ及び中央サーバのハードウェア構成の一例を示す図である。
以下、図１４を参照しながら、上述の少なくとも一の実施形態に係る参加者サーバ２及び中央サーバ３のハードウェア構成の一例について説明する。
【０１３３】
図１４に示すように、コンピュータ９００は、ＣＰＵ９０１、主記憶装置９０２、補助記憶装置９０３、インタフェース９０４を備える。
【０１３４】
上述の参加者サーバ２及び中央サーバ３は、それぞれコンピュータ９００に実装される。そして、上述した各処理部の動作は、プログラムの形式で補助記憶装置９０３に記憶されている。ＣＰＵ９０１（プロセッサ２０、３０、４０）は、プログラムを補助記憶装置９０３から読み出して主記憶装置９０２（メモリ２１、３１、４１）に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ９０１は、プログラムに従って、参加者サーバ２及び中央サーバ３が各種処理に用いる記憶領域を主記憶装置９０２に確保する。また、ＣＰＵ９０１は、プログラムに従って、処理中のデータを記憶する記憶領域（記録媒体２３、３３、４３）を補助記憶装置９０３に確保する。
【０１３５】
補助記憶装置９０３の例としては、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、半導体メモリ等が挙げられる。補助記憶装置９０３は、コンピュータ９００のバスに直接接続された内部メディアであってもよいし、インタフェース９０４又は通信回線を介してコンピュータ９００に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ９００に配信される場合、配信を受けたコンピュータ９００が当該プログラムを主記憶装置９０２に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、補助記憶装置９０３は、一時的でない有形の記憶媒体である。
【０１３６】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。
更に、当該プログラムは、前述した機能を補助記憶装置９０３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１３７】
以上のとおり、本発明に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１３８】
例えば、上述の各実施形態において、参加者サーバ２及び中央サーバ３のうち少なくとも一つが検知装置としてブロックデータの改ざんの有無を検知する態様について説明したが、これに限られることはない。他の実施形態では、改ざん検知システム１は、参加者サーバ２及び中央サーバ３とは異なるサーバを更に備え、当該サーバが検知装置としての機能（検知部４０の機能）を有していてもよい。
【符号の説明】
【０１３９】
１  改ざん検知システム
２、２Ａ、２Ｂ、２Ｃ、２Ｄ  参加者サーバ（検知装置）
２０  プロセッサ
２００  トランザクションデータ受付部
２０１  トランザクションデータ検証部
２０２  記録処理部
２０３  第１検証情報送信部
２１  メモリ
２２  インタフェース
２３  第１記録媒体
３、３Ａ、３Ｂ  中央サーバ（検知装置）
３０  プロセッサ
３００  要求受付部
３０１  ブロックデータ生成部
３０２  ブロックデータ送信部
３０３  第２検証情報送信部
３１  メモリ
３２  インタフェース
３３  第２記録媒体
４０  検知部
４００  検証情報取得部
４０１  比較部
４０２  通知部
４０３  変更部
ＣＬ、ＣＬ２、ＣＬ３  クライアント
【要約】      （修正有）【課題】パーミッション型ブロックチェーンの中央サーバにおけるブロックデータの改ざんを検知することができる検知装置を提供する。【解決手段】ブロックチェーンを構成する参加者サーバ２Ａ、２Ｂ、中央サーバ３において、参加者サーバ２Ａの検知部４０は、複数の参加者サーバ２Ａ、２Ｂ及び中央サーバ３のそれぞれから、参加者サーバ２Ａ、２Ｂに記録されているブロックデータに関する第１検証情報と、中央サーバ３に記録されているブロックデータに関する第２検証情報とを取得するＳ１０９、Ｓ１１０。参加者サーバ２Ａの検知部４０は、第１検証情報と第２検証情報とを比較して、中央サーバ３におけるブロックデータの改ざんの有無を判断するＳ１１３。【選択図】図５【図１】
0006884196.tif 000002
【図２】
0006884196.tif 000003
【図３】
0006884196.tif 000004
【図４】
0006884196.tif 000005
【図５】
0006884196.tif 000006
【図６】
0006884196.tif 000007
【図７】
0006884196.tif 000008
【図８】
0006884196.tif 000009
【図９】
0006884196.tif 000010
【図１０】
0006884196.tif 000011
【図１１】
0006884196.tif 000012
【図１２】
0006884196.tif 000013
【図１３】
0006884196.tif 000014
【図１４】
0006884196.tif 000015