JP7201737B2 - 参加者サーバ及びプログラム - Google Patents

参加者サーバ及びプログラム Download PDF

Info

Publication number
JP7201737B2
JP7201737B2 JP2021079784A JP2021079784A JP7201737B2 JP 7201737 B2 JP7201737 B2 JP 7201737B2 JP 2021079784 A JP2021079784 A JP 2021079784A JP 2021079784 A JP2021079784 A JP 2021079784A JP 7201737 B2 JP7201737 B2 JP 7201737B2
Authority
JP
Japan
Prior art keywords
block data
participant
central server
verification information
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021079784A
Other languages
English (en)
Other versions
JP2021114336A (ja
Inventor
麗夏 牛嶋
聡 舟橋
史圭 安西
健司 ▲高▼尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to JP2021079784A priority Critical patent/JP7201737B2/ja
Publication of JP2021114336A publication Critical patent/JP2021114336A/ja
Application granted granted Critical
Publication of JP7201737B2 publication Critical patent/JP7201737B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Description

本発明は、参加者サーバ及びプログラムに関する。
近年では、セキュリティ性の高いデータ管理システムとして、ブロックチェーン等の分散型台帳技術を用いたシステムが知られている(例えば、特許文献1を参照)。ブロックチェーンには、不特定多数の参加者が取引の承認を行うパブリック型、及び、管理権限を有する一部の参加者のみが取引の承認を行うパーミッション型が存在する。
パーミッション型ブロックチェーンは、システムの管理者に許可された複数の参加者(参加者サーバ)と、これら参加者サーバから選択された一の中央サーバとにより構成される。複数の参加者サーバそれぞれは、クライアントから取引(トランザクション)の実行を要求されると、取引の内容(トランザクションデータ)の検証、承認を行う。中央サーバは、所定数以上の参加者サーバにより承認されたトランザクションデータを含むブロックデータを生成し、参加者サーバに配布する。生成、配布されたブロックデータは、中央サーバ及び参加者サーバそれぞれの台帳に追加されて記録される。このように、パーミッション型ブロックチェーンでは、許可された一部の参加者サーバ及び中央サーバ以外には取引内容が公開されないため、機密性の高い情報を扱うことに適している。
特開2017-207979号公報
しかしながら、パーミッション型ブロックチェーンでは、各参加者サーバに承認された後は、トランザクションデータの整合性の再検証が行われない。また、参加者サーバは、中央サーバから配布されたブロックデータの検証、承認を行わずに自身の台帳に記録する場合があるため、システム外部からの攻撃等により中央サーバのブロックデータが改ざんされていることを検知できない可能性がある。
本発明は、このような課題に鑑みてなされたものであって、ブロックチェーンの中央サーバにおけるブロックデータの改ざんを検知可能な第1検証情報を送信することができる参加者サーバ及びプログラムを提供する。
上記課題を解決するため、本発明は以下の手段を採用している。
本開示の第1の態様によれば、参加者サーバは、クライアントから受け付けたトランザクションデータが有効であるか検証するトランザクションデータ検証部と、有効であると判断された前記トランザクションデータを含むブロックデータを中央サーバから受信して、第1記録媒体に記録する記録処理部と、ブロックチェーンを構成するためのブロックデータを生成し配布する中央サーバに記録されているブロックデータの改ざんの有無を判断する機能を備えた検知装置に対して、前記第1記録媒体に記録されている前記ブロックデータに関する第1検証情報を送信する第1検証情報送信部と、を備える。
本開示の第2の態様によれば、第1の態様に係る参加者サーバにおいて、前記第1検証情報送信部は、前記中央サーバから前記ブロックデータを受信したタイミング、前記検知装置から前記第1検証情報を要求されたタイミング、又は、前記参加者サーバが再起動したタイミングのうち、何れかのタイミングで前記第1検証情報を前記検知装置に送信する。
本開示の第3の態様によれば、第1又は第2の態様に係る参加者サーバにおいて、前記記録処理部は、前記検知装置により前記中央サーバに記録されている前記ブロックデータが改ざんされていると判断された場合に、前記中央サーバからの要求に応じて、前記第1記録媒体に記録された前記ブロックデータを前記中央サーバに送信する。
本開示の第4の態様によれば、第1から第3の何れか一の態様に係る参加者サーバは、前記検知装置として機能する検知部を更に備え、前記検知部は、前記中央サーバに記録されているブロックデータに関する第2検証情報と、他の参加者サーバに記録されているブロックデータに関する第1検証情報と、を取得する検証情報取得部と、前記第1検証情報と前記第2検証情報とを比較して、前記中央サーバにおける前記ブロックデータの改ざんの有無を判断する比較部と、を有する。
本開示の第5の態様によれば、第4の態様に係る参加者サーバにおいて、前記検知部は、複数の参加者サーバから選択した何れか一の参加者サーバを前記中央サーバに変更する変更部を更に有する。
本開示の第6の態様によれば、プログラムは、参加者サーバのコンピュータを機能させるプログラムであって、前記コンピュータに、クライアントから受け付けたトランザクションデータが有効であるか検証するステップと、有効であると判断された前記トランザクションデータを含むブロックデータを中央サーバから受信して、第1記録媒体に記録するステップと、ブロックチェーンを構成するためのブロックデータを生成し配布する中央サーバに記録されているブロックデータの改ざんの有無を判断する機能を備えた検知装置に対して、前記第1記録媒体に記録されている前記ブロックデータに関する第1検証情報を送信するステップと、を実行させる。
本発明に係る参加者差0ば及びプログラムによれば、パーミッション型ブロックチェーンの中央サーバにおけるブロックデータの改ざんを検知することができる。
第1の実施形態に係る改ざん検知システムの全体構成を示す図である。 第1の実施形態に係る参加者サーバの機能構成を示す図である。 第1の実施形態に係る中央サーバの機能構成を示す図である。 第1の実施形態に係る参加者サーバ及び中央サーバの検知部の機能構成を示す図である。 第1の実施形態に係る改ざん検知システムの処理の一例を示す図である。 第1の実施形態に係るブロックデータの一例を示す図である。 第1の実施形態に係る比較部の機能を説明するための図である。 第1の実施形態の変形例に係る改ざん検知システムの処理の一例を示す図である。 第2の実施形態に係る改ざん検知システムの処理の一例を示す図である。 第3の実施形態に係る参加者サーバ及び中央サーバの検知部の機能構成を示す図である。 第3の実施形態に係る改ざん検知システムの処理の一例を示す図である。 第4の実施形態に係る改ざん検知システムの全体構成を示す図である。 第4の実施形態に係る改ざん検知システムの処理の一例を示す図である。 少なくとも一の実施形態に係る参加者サーバ及び中央サーバのハードウェア構成の一例を示す図である。
<第1の実施形態>
以下、本発明の第1の実施形態に係る改ざん検知システム1について、図1~図7を参照しながら説明する。
(全体構成)
図1は、第1の実施形態に係る改ざん検知システムの全体構成を示す図である。
図1に示すように、改ざん検知システム1は、複数の参加者サーバ2(2A、2B)と、中央サーバ3とを備えている。
本実施形態では、システム管理者により許可された複数の参加者サーバ2と、複数の参加者サーバ2から選択された一の中央サーバ3と、によりパーミッション型ブロックチェーンが構成される。
参加者サーバ2は、クライアントCLから要求された取引の内容(トランザクションデータ)の検証、承認を行う。クライアントCLは取引を行う利用者が操作するパーソナルコンピュータ、スマートフォン、タブレット等のコンピュータである。なお、図1には、改ざん検知システム1が二台の参加者サーバ2A、2Bを備える例が示されているが、これに限られることはない。他の実施形態では、改ざん検知システム1は、三台以上の参加者サーバ2を備えていてもよい。
中央サーバ3は、所定数以上の参加者サーバ2により承認されたトランザクションデータを含むブロックデータを生成して、複数の参加者サーバ2それぞれに配布する。生成、配布されたブロックデータは、中央サーバ3及び複数の参加者サーバ2それぞれに記録される。
なお、本実施形態において、複数の参加者サーバ2、及び中央サーバ3は、中央サーバ3に記録されたブロックデータの改ざんを検知する検知装置として機能する。
(参加者サーバの機能構成)
図2は、第1の実施形態に係る参加者サーバの機能構成を示す図である。
図2に示すように、参加者サーバ2は、プロセッサ20と、メモリ21と、インタフェース22と、第1記録媒体23とを有するコンピュータである。なお、参加者サーバ2A、2Bは、それぞれ同一の機能構成を有している。
プロセッサ20は、予め用意されたプログラムに従って動作することで、トランザクションデータ受付部200、トランザクションデータ検証部201、記録処理部202、第1検証情報送信部203、検知部40としての機能を発揮する。
トランザクションデータ受付部200は、クライアントCLからトランザクションデータ(取引実行要求)を受け付ける。
トランザクションデータ検証部201は、クライアントCLから受け付けたトランザクションデータが有効であるか検証する。
記録処理部202は、有効であると判断されたトランザクションデータを含むブロックデータを中央サーバ3から受信して、第1記録媒体23に記録する。
第1検証情報送信部203は、第1記録媒体23に記録されているブロックデータに関する第1検証情報を、自機以外の参加者サーバ2及び中央サーバ3に送信する。
検知部40は、中央サーバ3におけるブロックデータの改ざんを検知する。検知部40の具体的な機能構成については後述する。
メモリ21は、DRAM等の、いわゆる主記憶装置であって、プログラムに従ってプロセッサ20が動作するために必要な記憶領域である。
インタフェース22は、通信ネットワークを介してクライアントCL、中央サーバ3、及び他の参加者サーバ2と各種情報の送受信を行うための通信インタフェースである。
第1記録媒体23は、HDD、SSD等の、いわゆる補助記憶装置である。第1記録媒体23には、トランザクションデータ、ブロックデータ等が記録される。
(中央サーバの機能構成)
図3は、第1の実施形態に係る中央サーバの機能構成を示す図である。
図3に示すように、中央サーバ3は、プロセッサ30と、メモリ31と、インタフェース32と、第2記録媒体33とを有するコンピュータである。
プロセッサ30は、予め用意されたプログラムに従って動作することで、要求受付部300、ブロックデータ生成部301、ブロックデータ送信部302、第2検証情報送信部303、検知部40としての機能を発揮する。
要求受付部300は、複数の参加者サーバ2により有効であると判断されたトランザクションデータを含むブロックデータの生成要求をクライアントCLから受け付ける。
ブロックデータ生成部301は、複数の参加者サーバ2により有効であると判断されたトランザクションデータを含むブロックデータを生成し、第2記録媒体33に記録する。
ブロックデータ送信部302は、生成したブロックデータを複数の参加者サーバ2に送信する。
第2検証情報送信部303は、第2記録媒体33に記録されているブロックデータに関する第2検証情報を参加者サーバ2に送信する。
検知部40は、中央サーバ3におけるブロックデータの改ざんを検知する。なお、本実施形態に係る中央サーバ3の検知部40は、参加者サーバ2の検知部40と同じ機能構成を有している。検知部40の具体的な機能構成については後述する。
メモリ31は、DRAM等の、いわゆる主記憶装置であって、プログラムに従ってプロセッサ30が動作するために必要な記憶領域である。
インタフェース32は、通信ネットワークを介してクライアントCL、及び参加者サーバ2と各種情報の送受信を行うための通信インタフェースである。
第2記録媒体33は、HDD、SSD等の、いわゆる補助記憶装置である。第2記録媒体33には、ブロックデータ等が記録される。
(参加者サーバ及び中央サーバの検知部の機能構成)
図4は、第1の実施形態に係る参加者サーバ及び中央サーバの検知部の機能構成を示す図である。
図4に示すように、検知部40は、検証情報取得部400、比較部401、及び通知部402を有している。
検証情報取得部400は、複数の参加者サーバ2及び中央サーバ3それぞれから、参加者サーバ2に記録されているブロックデータに関する第1検証情報と、中央サーバ3に記録されているブロックデータに関する第2検証情報とを取得する。より具体的には、参加者サーバ2において、検証情報取得部400は、自機以外の参加者サーバ2から第1検証情報を取得するとともに、中央サーバ3から第2検証情報を取得する。また、中央サーバ3において、検証情報取得部400は、複数の参加者サーバ2それぞれから第1検証情報を取得する。
比較部401は、第1検証情報と第2検証情報とを比較して、中央サーバにおけるブロックデータの改ざんの有無を判断する。
通知部402は、比較部401における比較結果を参加者サーバ2及び中央サーバ3(自機以外のサーバ)に通知する。
なお、本実施形態では、複数の参加者サーバ2、及び中央サーバ3のそれぞれが、検知装置として機能する態様を例として説明する。このため、複数の参加者サーバ2、及び中央サーバ3は、それぞれ検知部40を有し、各サーバが並行してブロックデータの改ざんを検知する処理を実行する。なお、他の実施形態では、複数の参加者サーバ2、及び中央サーバ3のうち少なくとも一つのサーバが検知装置として機能する態様であってもよい。例えば、参加者サーバ2Aのみが検知装置として機能する場合、参加者サーバ2Aのみが検知部40を有し、他の参加者サーバ2B及び中央サーバ3は検知部40を省略してもよい。
(処理フロー)
図5は、第1の実施形態に係る改ざん検知システムの処理の一例を示す図である。
以下、図5を参照しながら、本実施形態に係る改ざん検知システム1の処理の一例について詳細に説明する。本実施形態では、改ざん検知システム1を構成する複数の参加者サーバ2及び中央サーバ3それぞれが、ブロックデータの改ざんを検知する検知装置として機能する。図5には、複数の参加者サーバ及び中央サーバ3のうち、参加者サーバ2Aにおける検知装置としての機能(検知部40の機能)が代表として記載されている。
図5に示すように、クライアントCLは、複数の参加者サーバ2A、2Bそれぞれに対し、取引内容を示すトランザクションデータを送信して、取引の実行を要求する(ステップS100)。トランザクションデータには、取引内容を示す情報が含まれている。取引内容を示す情報とは、例えば送金を行う場合、送金元及び送金先を特定可能な情報、送金額等である。
参加者サーバ2A、2Bのトランザクションデータ受付部200がクライアントCLからトランザクションデータを受信すると、トランザクションデータ検証部201は、受信したトランザクションデータが有効なもの(正しい取引内容)であるか否かを検証する(ステップS101)。例えば送金を行う場合、トランザクションデータ検証部201は、第1記録媒体23に記録されている過去のブロックデータに含まれるトランザクションデータを参照して、新たに受信したトランザクションデータの送金元の残金と送金額とが整合しているか等を検証する。また、トランザクションデータ検証部201は、トランザクションデータに付された署名が正しいか否かを検証してもよい。
また、トランザクションデータ検証部201は、トランザクションデータが有効であるか否かを示す検証結果をクライアントCLに通知する(ステップS102)。
クライアントCLは、トランザクションデータが複数の参加者サーバ2のうち一定数以上の参加者サーバ2により有効と判断されなかった場合(ステップS103:NO)、処理を終了する。一方、クライアントCLは、トランザクションデータが一定数以上の参加者サーバ2により有効と判断された場合(ステップS103:YES)、このトランザクションデータを含むブロックデータの生成要求を中央サーバ3に送信する(ステップS104)。
中央サーバ3の要求受付部300がクライアントCLからブロックデータの生成要求を受け付けると、ブロックデータ生成部301は、クライアントCLから受信したトランザクションデータを含むブロックデータを生成する(ステップS105)。このとき、ブロックデータ生成部301は、クライアントCLから受信したトランザクションデータを再検証して、有効である場合のみブロックデータを作成するようにしてもよい。
図6は、第1の実施形態に係るブロックデータの一例を示す図である。
例えば、ブロックデータ生成部301は、図6に示すように、クライアントCLから生成要求とともに受信したトランザクションデータと、一つ前のブロックデータXのハッシュ値とを含むブロックデータX+1を生成する。
本実施形態では、ブロックデータX+1に含めるハッシュ値は、例えば一つ前のブロックデータXが生成されたときにブロックデータ生成部301により計算されて第2記録媒体33に記録されているものとする。この場合、ブロックデータ生成部301は、第2記録媒体33から読み出したブロックデータXのハッシュ値を、ブロックデータX+1に書き込んで生成する。なお、他の実施形態では、ブロックデータ生成部301は、ブロックデータX+1を生成する際に、第2記録媒体33から一つ前のブロックデータXを読み出してハッシュ値を計算するようにしてもよい。
次に、ブロックデータ生成部301は、新たに生成したブロックデータX+1を複数の参加者サーバ2A、2Bそれぞれに配布する(ステップS106)とともに、第2記録媒体33に記録する(ステップS107)。
参加者サーバ2A、2Bの記録処理部202は、中央サーバ3が生成したブロックデータX+1を受信すると、第1記録媒体23に記録する(ステップS108)。
また、参加者サーバ2A、2Bの第1検証情報送信部203は、自身の第1記録媒体23に記録されているブロックデータに関する第1検証情報を自機以外の参加者サーバ2、及び中央サーバ3それぞれに送信する(ステップS109)。図5には、参加者サーバ2Bの第1検証情報送信部203が、参加者サーバ2A及び中央サーバ3に第1検証情報を送信する例が示されている。図示は略すが、参加者サーバ2Aの第1検証情報送信部203も同様に、参加者サーバ2B及び中央サーバ3に第1検証情報を送信する。
同様に、中央サーバ3の第2検証情報送信部303は、第2記録媒体33に記録されているブロックデータに関する第2検証情報を複数の参加者サーバ2A、2Bそれぞれに送信する(ステップS110)。
次に、各サーバにおいて、検知部40の検証情報取得部400は、複数の参加者サーバ2A、2Bそれぞれから第1検証情報を取得するとともに、中央サーバ3から第2検証情報を取得する(ステップS112)。図5には、参加者サーバ2Aの検証情報取得部400が、自機以外の参加者サーバ2Bから第1検証情報を取得するとともに、中央サーバ3から第2検証情報を取得する例が示されている。なお、第1検証情報及び第2検証情報は、例えば、参加者サーバ2A、2B、及び中央サーバ3それぞれに記録されているブロックデータである。
検知部40の比較部401は、第1検証情報(参加者サーバ2A、2Bのブロックデータ)と第2検証情報(中央サーバ3のブロックデータ)とを比較して、中央サーバ3に記録されているブロックデータの改ざんの有無を判断する(ステップS113)。図5には、参加者サーバ2Aの比較部401が、自機の第1記録媒体23に記録されている第1検証情報(参加者サーバ2Aのブロックデータ)と、自機以外の参加者サーバ2から取得した第1検証情報(参加者サーバ2Bのブロックデータ)と、中央サーバ3から取得した第2検証情報(中央サーバ3のブロックデータ)とを比較して、中央サーバ3に記録されているブロックデータの改ざんの有無を判断する例が示されている。なお、図示は略すが、参加者サーバ2B及び中央サーバ3においても、同様の処理が並行して行われる。
図7は、第1の実施形態に係る比較部の機能を説明するための図である。
例えば、図7に示すように、ブロックデータXが生成されて配布された後、次のブロックデータX+1が生成、配布されるまでの間に、中央サーバ3のブロックデータXがブロックデータX’に改ざんされたとする。また、参加者サーバ2A、2BのブロックデータXは改ざんされていないとする。この場合、従来のパーミッション型ブロックチェーンを用いたシステムでは、ブロックデータX+1配布時に、既に各参加者サーバにより承認済みのトランザクションデータを含むブロックデータXについては再検証を行わない。そうすると、従来のシステムでは、この中央サーバ3におけるブロックデータXの改ざんを検知することが出来ない可能性がある。
このため、本実施形態では、検知部40の比較部401において、中央サーバ3に記録されている各ブロックデータと、参加者サーバ2A、2Bに記録されている各ブロックデータとをそれぞれ比較する。
比較部401は、中央サーバ3のブロックデータ(第2検証情報)が、所定数以上(例えば、3分の2以上)の参加者サーバ2のブロックデータ(第1検証情報)と一致しない場合(ステップS113:NO)、中央サーバ3のブロックデータが改ざんされていると判断する。そうすると、検知部40の通知部402は、参加者サーバ2A、2B、及び中央サーバ3に、ブロックデータが改ざんされていることを示す検証結果を通知する(ステップS115)。図5には、参加者サーバ2Aの通知部402が、自機以外の参加者サーバ2B、及び中央サーバ3に検証結果を通知する例が示されている。なお、図示は略すが、参加者サーバ2B及び中央サーバ3においても、同様の処理が並行して行われる。
この検証結果には、どのブロックデータが改ざんされているかを示す情報が含まれていてもよい。例えば、図7の例では、中央サーバ3のブロックデータX’と、参加者サーバ2A、2BのブロックデータXとが一致しない(ステップS113:NO)ので、比較部401は、中央サーバ3のブロックデータX’は改ざんされたものであると判断する。この場合、参加者サーバ2Aの通知部402は、参加者サーバ2B、及び中央サーバ3に、中央サーバ3のブロックデータX’が改ざんされていることを示す検証結果を通知する(ステップS115)。このとき、中央サーバ3のブロックデータ生成部301は、複数の参加者サーバ2A、2Bに記録されているブロックデータを参照して、改ざんされたブロックデータを正しいブロックデータに置き換えて修正するようにしてもよい。また、複数の参加者サーバ2に記録されているブロックデータが一致していない場合、ブロックデータ生成部301は、所定数以上(例えば、3分の2以上)の参加者サーバ2間で共通するブロックデータを正しいブロックデータであると判断するようにしてもよい。
一方、比較部401は、中央サーバ3のブロックデータが、所定数以上の参加者サーバ2のブロックデータと一致する場合(ステップS113:YES)、中央サーバ3のブロックデータが改ざんされていないと判断する。このとき、通知部402は、クライアントCLに対し、要求された取引が正常に完了したことを通知する(ステップS114)。また、通知部402は、参加者サーバ2A、2B、及び中央サーバ3に、中央サーバ3のブロックデータが改ざんされていないことを示す検証結果を通知する(ステップS115)。図5には、参加者サーバ2Aの通知部402がクライアントCLに取引完了通知を送信する(ステップS114)とともに、自機以外の参加者サーバ2B、及び中央サーバ3に検証結果を通知する(ステップS115)例が示されている。なお、図示は略すが、参加者サーバ2B及び中央サーバ3においても、同様の処理が並行して行われる。なお、クライアントCLは、規定数(例えば過半数)以上のサーバから取引完了通知を受信した場合、取引が正常に実行されたと判断するようにしてもよい。また、他の実施形態では、参加者サーバ2A、2B及び中央サーバ3の何れかが代表して、クライアントCLに取引完了通知を送信するようにしてもよい。この場合、代表となるサーバの通知部402は、例えば規定数以上のサーバから改ざんされていないことを示す検証結果を受信した場合、クライアントCLに取引完了通知を送信する。
(作用効果)
以上のように、本実施形態に係る検知装置(参加者サーバ2及び中央サーバ3)は、ブロックチェーンを構成する複数の参加者サーバ2及び中央サーバ3それぞれから、参加者サーバ2に記録されているブロックデータに関する第1検証情報と、中央サーバ3に記録されているブロックデータに関する第2検証情報とを取得する検証情報取得部400と、第1検証情報と第2検証情報とを比較して、中央サーバ3におけるブロックデータの改ざんの有無を判断する比較部401と、を備える。
このようにすることで、参加者サーバ2及び中央サーバ3は、パーミッション型ブロックチェーンにおける中央サーバ3のブロックデータの改ざんの有無を検知することができる。
また、比較部401は、中央サーバ3の第2検証情報(ブロックデータ)が、所定数以上の参加者サーバ2の第1検証情報(ブロックデータ)と一致しない場合、中央サーバ3のブロックデータが改ざんされたと判断する。
そうすると、ブロックデータを矛盾なく改ざんするためには、中央サーバ3、及び、所定数以上の参加者サーバ2のブロックデータを改ざんしなければならない。このため、参加者サーバ2及び中央サーバ3は、ブロックチェーンにおける改ざんの困難性をより向上させることができる。
また、検証情報取得部は、第1検証情報及び第2検証情報として、複数の参加者サーバ2及び中央サーバ3それぞれに記録されているブロックデータを取得する。
このようにすることで、参加者サーバ2及び中央サーバ3は、中央サーバ3に記録されているブロックデータと、参加者サーバ2に記録されているブロックデータとを一つ一つ照合させることにより、ブロックデータの改ざんをより確実に検知することができる。
また、本実施形態に係る参加者サーバ2は、クライアントCLから受け付けたトランザクションデータが有効であるか検証するトランザクションデータ検証部201と、有効であると判断されたトランザクションデータを含むブロックデータを中央サーバ3から受信して、第1記録媒体23に記録する記録処理部202と、第1記録媒体23に記録されているブロックデータに関する第1検証情報を、自機以外の参加者サーバ2及び中央サーバ3に送信する第1検証情報送信部203と、を備える。
このようにすることで、参加者サーバ2は、検知装置として機能する各サーバに対し、中央サーバ3のブロックデータの改ざんを検知可能な第1検証情報を提供することができる。
また、本実施形態に係る中央サーバ3は、複数の参加者サーバ2により有効であると判断されたトランザクションデータを含むブロックデータを生成し、第2記録媒体33に記録するブロックデータ生成部301と、生成したブロックデータを複数の参加者サーバ2に送信するブロックデータ送信部302と、第2記録媒体33に記録されているブロックデータに関する第2検証情報を参加者サーバ2に送信する第2検証情報送信部303と、を備える。
このようにすることで、中央サーバ3は、検知装置として機能する参加者サーバ2に対し、中央サーバ3のブロックデータの改ざんを検知可能な第2検証情報を提供することができる。
なお、上述の説明において、第1検証情報及び第2検証情報が参加者サーバ2A、2B、及び中央サーバ3それぞれに記録されているブロックデータである態様を例としたが、これに限られることはない。他の実施形態では、検証情報取得部400は、第1検証情報及び第2検証情報として、複数の参加者サーバ2A、2B、及び中央サーバ3それぞれに記録されているブロックデータのCRC値を取得するようにしてもよい。
このようにすることで、比較部401は、中央サーバ3のブロックデータと、参加者サーバ2A、2Bそれぞれのブロックデータとを比較するよりも処理時間を短縮することができる。また、検証情報取得部400は、各ブロックデータのCRC値のみを取得すればよいため、参加者サーバ2A、2B、及び中央サーバ3との間のトラフィックを低減させることができる。
また、検証情報取得部400は、第1検証情報及び第2検証情報として、複数の参加者サーバ2A、2B、及び中央サーバ3それぞれに記録されているブロックデータの数を取得してもよい。
図7の例のように、ブロックデータXが生成、配布された後、ブロックデータX+1が生成、配布されるまでの間に、中央サーバ3のブロックデータXがブロックデータX’に改ざんされたとする。このとき、参加者サーバ2A、2Bには、中央サーバ3から配布されたブロックデータX+1が、ブロックデータXに連結されて記録される。なお、ブロックデータX+1には、図7に示すように改ざん前のブロックデータXのハッシュ値が含まれているとすると、参加者サーバ2ではブロックデータXのハッシュ値及びブロックデータX+1に含まれるハッシュ値は一致するので、これらのブロックデータは正常に連結されて記憶される。一方、中央サーバ3においては、改ざん後のブロックデータX’のハッシュ値と、ブロックデータX+1に含まれるハッシュ値(改ざん前のブロックデータXのハッシュ値)とが一致しないため、中央サーバ3にはブロックデータX+1が記録されない場合がある。そうすると、中央サーバ3に記録されるブロックデータの数と、参加者サーバ2A、2Bに記録されるブロックデータの数とが不一致となる。このため、比較部401は、参加者サーバ2A、2B、及び中央サーバ3それぞれに記録されているブロックデータの数を比較することにより、中央サーバ3のブロックデータの改ざんを検知することができる。また、比較部401は、ブロックデータの数を比較するのみの簡易な処理を行えばよいので、処理時間を短縮することができる。
<第1の実施形態の変形例>
また、上述の第1の実施形態では、新たなブロックデータが生成、配信される毎に、参加者サーバ2の第1検証情報送信部203、及び中央サーバ3の第2検証情報送信部303が第1検証情報及び第2検証情報を送信する態様を例として説明したが、これに限られることはない。例えば、本変形例では、各サーバにおいて、検知部40の検証情報取得部400は、所定時間(例えば、10分)が経過したタイミングで参加者サーバ2、及び中央サーバ3から第1検証情報及び第2検証情報を取得する。以下、図8を参照しながら、第1の実施形態の変形例について説明する。
図8は、第1の実施形態の変形例に係る改ざん検知システムの処理の一例を示す図である。
図8には、参加者サーバ2Aの検知部40が改ざんを検知する処理を実施する例が示されている。図8に示すように、参加者サーバ2Aにおいて、検知部40の検証情報取得部400は、第1検証情報及び第2検証情報を取得するタイミングであるか否かを判断する(ステップS120)。検証情報取得部400は、前回、第1検証情報及び第2検証情報を取得してから所定時間を経過していない場合(ステップS120:NO)、取得タイミングとなるまで待機する。一方、検証情報取得部400は、前回、第1検証情報及び第2検証情報を取得してから所定時間を経過した場合(ステップS120:YES)、自機以外の参加者サーバ2B、及び中央サーバ3に検証情報を送信するように要求する(ステップS121)。
そうすると、参加者サーバ2Bの第1検証情報送信部203は、第1検証情報を参加者サーバ2Aに送信する(ステップS122)。同様に、中央サーバ3の第2検証情報送信部303は、第2検証情報を参加者サーバ2Aに送信する(ステップS123)。
参加者サーバ2Aの検証情報取得部400が第1検証情報及び第2検証情報を取得すると(ステップS124)、比較部401は第1検証情報と第2検証情報とを比較して、中央サーバ3に記録されているブロックデータの改ざんの有無を判断する(ステップS125)。当該処理は第1の実施形態における処理(図5のステップS113)と同様である。
また、参加者サーバ2Aの通知部402は、参加者サーバ2B、及び中央サーバ3に、中央サーバ3のブロックデータが改ざんされているか否かを示す検証結果を通知する(ステップS126)。
このようにすることで、参加者サーバ2Aは、クライアントCLによる取引実行要求の有無に関わらず、定期的に中央サーバ3のブロックデータの改ざんの有無を確認することが出来る。なお、図8には、参加者サーバ2Aが検知装置として機能し、ブロックデータの改ざんの有無を検知する例が示されているが、これに限られることはない。他の実施形態では、参加者サーバ2B及び/又は中央サーバ3が検知装置として機能し、参加者サーバ2Aに代えて、又は、参加者サーバ2Aと並行して、上述の各ステップを実行するようにしてもよい。また、更に他の実施形態では、参加者サーバ2A、2B、及び中央サーバ3は、所定期間毎に順番に上記処理を実施するようにしてもよい。
<第2の実施形態>
次に、本発明の第2の実施形態に係る改ざん検知システム1について図9を参照しながら説明する。
第1の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
例えば、システム外部からの攻撃等により、全ての参加者サーバ及び中央サーバが再起動したとする。従来のシステムでは、全ての参加者サーバが再起動した場合、中央サーバに記録されているブロックデータを各参加者サーバに配信して複製する。しかしながら、中央サーバのブロックデータが改ざんされていた場合、改ざんされたブロックデータと、その前後のブロックデータとのハッシュ値との整合性が取れなくなるため、改ざんされたブロックデータ以降のブロックデータは参加者サーバに記録されなくなってしまう。そうすると、改ざんされたブロックデータ以降のブロックデータが参加者サーバから失われてしまう可能性がある。このため、本実施形態に係る改ざん検知システム1は、図9に示す処理を行うことにより、参加者サーバ2の再起動後にブロックデータが失われてしまうことを抑制している。
(処理フロー)
図9は、第2の実施形態に係る改ざん検知システムの処理の一例を示す図である。
図9には、参加者サーバ2Aが検知装置として機能し、改ざんの有無を検知する処理を実施する例が示されている。図9に示すように、システム外部からの攻撃等により、参加者サーバ2A、2B、及び中央サーバ3が再起動したとする(ステップS200)。そうすると、参加者サーバ2A、2Bの第1検証情報送信部203は、第1検証情報を自機以外の参加者サーバ2、及び中央サーバ3に送信する(ステップS201)。同様に、中央サーバ3の第2検証情報送信部303は、第2検証情報を参加者サーバ2A、2Bに送信する(ステップS202)。
参加者サーバ2Aにおいて、検知部40の検証情報取得部400が第1検証情報及び第2検証情報を取得すると(ステップS203)、比較部401は、第1検証情報と第2検証情報とを比較して、中央サーバ3のブロックデータが改ざんされたか否かを判断する(ステップS204)。当該処理は、第1の実施形態の処理(図5のステップS113)と同様である。
また、参加者サーバ2Aの通知部402は、参加者サーバ2B、及び中央サーバ3に、中央サーバ3のブロックデータが改ざんされているか否かを示す検証結果を通知する(ステップS205)。
次に、中央サーバ3のブロックデータ生成部301及びブロックデータ送信部302は、参加者サーバ2Aの検知部40から通知された検証結果を参照し、ブロックデータの改ざんが検知されたか否かを判断する(ステップS206)。
ブロックデータ送信部302は、ブロックデータの改ざんが検知されなかった場合(ステップS206:YES)、第2記録媒体33に記録されているブロックデータを全ての参加者サーバ2A、2Bに配布する(ステップS207)。
そうすると、参加者サーバ2A、2Bの記録処理部202は、中央サーバ3から配布されたブロックデータを自身の第1記録媒体23に記録する(ステップS208)。これにより、再起動が行われた後も、参加者サーバ2A、2B、及び中央サーバ3において同じ内容のブロックデータを持つことができる。これにより、改ざん検知システム1は、改ざんされたブロックデータ以降のブロックデータが参加者サーバ2から失われてしまうことを抑制することができる。
一方、中央サーバ3のブロックデータ生成部301は、ブロックデータの改ざんが検知された場合(ステップS206:NO)、参加者サーバ2にブロックデータの送信を要求する(ステップS209)。このとき、ブロックデータ生成部301は、所定数以上(例えば、3分の2以上)の参加者サーバ2間で共通するブロックデータを正しいブロックデータであると判断し、この正しいブロックデータを有する参加者サーバ2(図9の例では、参加者サーバ2A)にブロックデータの送信を要求するようにしてもよい。また、検証結果にどのブロックデータが改ざんされたかを示す情報が含まれている場合、ブロックデータ生成部301は、当該改ざんされたブロックデータ及びそれ以降のブロックデータのみを送信するように参加者サーバ2Aに要求するようにしてもよい。
中央サーバ3からブロックデータの送信要求を受け付けると、参加者サーバ2Aの記録処理部202は、第1記録媒体23からブロックデータを読み出して、中央サーバ3に送信する(ステップS210)。
中央サーバ3のブロックデータ生成部301は、参加者サーバ2Aから受信したブロックデータを第2記録媒体33に記録する(ステップS211)。
また、中央サーバ3は、参加者サーバ2Aから受信したブロックデータにより、正しいブロックデータが復元されると、修復後のブロックデータを全ての参加者サーバ2A、2Bに配布する(ステップS212)。
そうすると、参加者サーバ2A、2Bの記録処理部202は、中央サーバ3から配布されたブロックデータを自身の第1記録媒体23に記録する(ステップS213)。このようにすることで、中央サーバ3のブロックデータが改ざんされ、且つ再起動を行った後も、正しいブロックデータを復元し、参加者サーバ2A、2B、及び中央サーバ3において同期することができる。これにより、改ざん検知システム1は、改ざんされたブロックデータ以降のブロックデータが参加者サーバ2から失われてしまうことを抑制することができる。なお、図9には、参加者サーバ2Aが検知装置として機能し、ブロックデータの改ざんの有無を検知する例が示されているが、これに限られることはない。他の実施形態では、参加者サーバ2B又は中央サーバ3が検知装置として機能し、参加者サーバ2Aに代えて上述の各ステップを実行するようにしてもよい。また、参加者サーバ2A、2B、及び中央サーバ3それぞれが並行して上述の各ステップを実行するようにしてもよい。この場合、中央サーバ3のブロックデータ生成部301は、ステップS206において、規定数(例えば過半数)以上のサーバにおいて、改ざんが検知されなかったことを示す検証結果が得られた場合、ブロックデータは改ざんされていない(ステップS206:YES)と判断するようにしてもよい。
<第3の実施形態>
次に、本発明の第3の実施形態に係る改ざん検知システム1について図10~図11を参照しながら説明する。
第1及び第2の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
パーミッション型ブロックチェーンでは、ブロックデータ生成の権利を持つ中央サーバ3がデータ改ざん等の攻撃対象として狙われやすくなる。このため、本実施形態に係る改ざん検知システム1は、中央サーバ3が攻撃される可能性を低減させるための機能構成を更に有している。
図10は、第3の実施形態に係る参加者サーバ及び中央サーバの検知部の機能構成を示す図である。
図10に示すように、本実施形態に係る検知部40は、変更部403としての機能を更に有している。変更部403は、所定のタイミングで、複数の参加者サーバ2から選択した何れか一の参加者サーバ2を中央サーバ3に変更する。所定のタイミングとは、所定時間を経過したタイミング、又は、中央サーバ3のブロックデータの改ざんが検知されたタイミングである。
(処理フロー)
図11は、第3の実施形態に係る改ざん検知システムの処理の一例を示す図である。 図11には、参加者サーバ2Aの検知部40が中央サーバを変更する処理を実施する例が示されている。図11に示すように、参加者サーバ2Aにおいて、検知部40の変更部403は、前回、中央サーバ3を変更してから所定時間(例えば、12時間)が経過したか否かを判断する(ステップS300)。変更部403は、所定時間を経過していない場合(ステップS300:NO)、所定時間が経過するまで待機する。一方、変更部403は、所定時間を経過した場合(ステップS300:YES)、新たな中央サーバ3を選択する(ステップS302)。
また、変更部403は、ステップS300と並行して、比較部401の検証結果に基づいて中央サーバ3の改ざんが検知されたか否かを判断する(ステップS301)。変更部403は、改ざんが検知されていない場合(ステップS301:NO)、比較部401から次の検証結果を出力するまで待機する。一方、変更部403は、改ざんが検知された場合(ステップS301:YES)、新たな中央サーバ3を選択する(ステップS302)。
変更部403は、所定時間を経過した場合(ステップS300:YES)、又は中央サーバ3の改ざんが検知された場合(ステップS301:YES)、新たな中央サーバ3を選択する(ステップS302)。例えば、変更部403は、複数の参加者サーバ2A、2Bのうち、最も起動時間が古い(又は、新しい)サーバを中央サーバ3として選択する。また、変更部403は、複数の参加者サーバ2A、2Bのうち、最も処理スピードが速いサーバを中央サーバ3として選択する。なお、一度中央サーバ3として選択された参加者サーバ2は、他の全ての参加者サーバ2が中央サーバ3として選択されるまで、選択対象から除外されるようにしてもよい。このようにすることで、例えば処理速度の速い二つの参加者サーバ2が中央サーバ3として交互に選択され続けてしまうなど、選択されるサーバに偏りが生じることを抑制可能である。
次に、通知部402は、中央サーバの変更を参加者サーバ2A、2B、及び中央サーバ3に通知する(ステップS303)。例えば、変更部403が参加者サーバ2Aを次の中央サーバ3として選択したとする。そうすると、検知部40からの通知を受信後、参加者サーバ2Aは中央サーバとして機能する。同様に、検知部40からの通知を受信後、参加者サーバ2A、及び中央サーバ3は、参加者サーバとして機能する。
このように、検知部40は、所定のタイミングで、複数の参加者サーバ2から選択した何れか一の参加者サーバ2を中央サーバ3に変更する。これにより、中央サーバ3を固定とするよりも、中央サーバ3が攻撃されにくくなる。
<第4の実施形態>
次に、本発明の第4の実施形態に係る改ざん検知システム1について図12~図13を参照しながら説明する。
第1~第3の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
(全体構成)
図12は、第4の実施形態に係る改ざん検知システムの全体構成を示す図である。
図12に示すように、本実施形態に係る改ざん検知システム1は、第1ブロックチェーン及び第2ブロックチェーンを有している。第1ブロックチェーンは、複数の参加者サーバ2A、2B、及び中央サーバ3Aにより構成される。第2ブロックチェーンは、複数の参加者サーバ2C、2D、及び中央サーバ3Bにより構成される。参加者サーバ2A、2B、2C、2Dは同一の機能構成を有している。また、中央サーバ3A、3Bは同一の機能構成を有している。
また、本実施形態に係る検知部40は、第1ブロックチェーンの中央サーバ3Aに記録されたブロックデータの改ざん、及び、第2ブロックチェーンの中央サーバ3Bに記録されたブロックデータの改ざんを検知する。
また、本実施形態に係る改ざん検知システム1において、第1ブロックチェーン及び第2ブロックチェーンは、予め定められた関数を用いて互いに変換可能な情報を管理するものである。例えば、改ざん検知システム1が電力取引に関連する情報を管理する場合、第1ブロックチェーンには電力の授受に関するトランザクションデータ(例えば、発電所から需要家に供給された電力(kW))が記録され、第2ブロックチェーンには授受された電力に応じた金銭の取引に関するトランザクションデータ(例えば、需要家から発電所に支払われた電気料金(円))が記録されるとする。供給電力(kW)及び電気料金(円)は、予め定められた関数を用いて互いに変換可能である。
本実施形態において、クライアントCL1は、第1ブロックチェーンを構成する参加者サーバ2A、2Bに、電力の供給元(発電所を運営する電力会社)及び供給先(需要家)を特定可能な情報と、供給電力(kW)とを含むトランザクションデータを送信する。参加者サーバ2A、2Bによりこのトランザクションデータが検証、承認されると、中央サーバ3Aは当該トランザクションデータを含むブロックデータを生成して、参加者サーバ2A、2Bに配布する。これにより、第1ブロックデータ内において電力の授受に関するトランザクションデータが共有されて管理される。
また、クライアントCL2は、第2ブロックチェーンを構成する参加者サーバ2C、2Dに、電気料金の送金元(需要家)及び送金先(電力会社)を特定可能な情報と、電気料金(円)とを含むトランザクションデータを送信する。参加者サーバ2C、2Dによりこのトランザクションデータが検証、承認されると、中央サーバ3Bは当該トランザクションデータを含むブロックデータを生成して、参加者サーバ2C、2Dに配布する。これにより、第2ブロックデータ内において電気料金の取引に関するトランザクションデータが共有されて管理される。
(処理フロー)
図13は、第4の実施形態に係る改ざん検知システムの処理の一例を示す図である。 以下、図13を参照しながら、本実施形態に係る改ざん検知システム1の処理の一例について詳細に説明する。なお、クライアントCL1、CL2が参加者サーバ2A、2B、2C、2Dに取引実行要求を送信してから、中央サーバ3A、3Bにブロックデータ生成要求を送信するまでの処理は、第1の実施形態における処理(図5のステップS100~S104)と同様であるため、説明を省略する。また、図13には、第1ブロックチェーンの参加者サーバ2Aが検知装置として機能し、第1ブロックチェーン及び第2ブロックチェーンそれぞれにおける改ざんを検知する例が示されている。
図13に示すように、第1ブロックチェーンにおける中央サーバ3Aの要求受付部300がクライアントCL1からブロックデータの生成要求(図5のステップS104)を受け付けると、ブロックデータ生成部301は、クライアントCL1から受信したトランザクションデータを含むブロックデータを作成する(ステップS400)。
次に、中央サーバ3Aのブロックデータ生成部301は、新たに生成したブロックデータを、同じ第1ブロックチェーンに属する参加者サーバ2A、2Bそれぞれに配布する(ステップS401)とともに、第2記録媒体33に記録する(ステップS402)。
参加者サーバ2A、2Bの記録処理部202は、中央サーバ3Aが生成したブロックデータを受信すると、第1記録媒体23に記録する(ステップS403)。
また、参加者サーバ2Bの第1検証情報送信部203は、自身の第1記録媒体23に記録されているブロックデータに関する第1検証情報を参加者サーバ2Aに送信する(ステップS404)。
同様に、中央サーバ3Aの第2検証情報送信部303は、第2記録媒体33に記録されているブロックデータに関する第2検証情報を参加者サーバ2Aに送信する(ステップS405)。
また、第2ブロックチェーンの参加者サーバ2C、2D、及び中央サーバ3Bは、同様にステップS400~S405を実行する。
次に、参加者サーバ2Aにおいて、検知部40の検証情報取得部400は、参加者サーバ2B、2C、2Dそれぞれからブロックデータ(第1検証情報)を取得するとともに、中央サーバ3A、3Bそれぞれからブロックデータ(第2検証情報)を取得する(ステップS406)。なお、本実施形態において、第1検証情報及び第2検証情報は、参加者サーバ2A、2B、2C、2D、及び中央サーバ3A、3Bそれぞれに記録されているブロックデータである。
検知部40の比較部401は、第1ブロックチェーンの中央サーバ3Aから取得した第2検証情報(ブロックデータ)と、第2ブロックチェーンの参加者サーバ2C、2Dから取得した第1検証情報(ブロックデータ)とに基づいて、第1ブロックチェーンの中央サーバ3Aに記録されているブロックデータの改ざんの有無を判断する(ステップS407)。上述のように、第1ブロックチェーンの中央サーバ3Aのブロックデータには供給電力(kW)に関するトランザクションデータが含まれ、第2ブロックチェーンの参加者サーバ2C、2Dのブロックデータには、この供給電力(kW)に対応する電気料金(円)に関するトランザクションデータが含まれている。このとき、比較部401は、予め規定された関数を用いて、中央サーバ3Aのブロックデータに含まれる供給電力(kW)に対応する電気料金(円)を求める。また、比較部401は、予め規定された関数を用いて、参加者サーバ2C、2Dのブロックデータに含まれる電気料金(円)に対応する供給電力(kW)を求めてもよい。比較部401は、このように変換したデータを比較することにより、第1ブロックチェーンの中央サーバ3Aに記録されているブロックデータが、第2ブロックチェーンの参加者サーバ2C、2Dに記録されているブロックデータと整合するか確認して、改ざんの有無を判断する。
比較部401は、中央サーバ3Aのブロックデータが、第2ブロックチェーンの所定数以上(例えば、3分の2以上)の参加者サーバ2のブロックデータと一致しない場合(ステップS407:NO)、中央サーバ3Aのブロックデータが改ざんされていると判断する。そうすると、通知部402は、第1ブロックチェーンの中央サーバ3Aにブロックデータが改ざんされていることを示す検証結果を通知する(ステップS409)。この検証結果には、中央サーバ3Aのどのブロックデータが改ざんされているかを示す情報が含まれていてもよい。また、通知部402は、第1ブロックチェーンの参加者サーバ2A、2Bと、第2ブロックチェーンの参加者サーバ2C、2Dと、第2ブロックチェーンの中央サーバ3Bとのそれぞれに、同様の検証結果を通知するようにしてもよい。
一方、比較部401は、中央サーバ3Aのブロックデータが、第2ブロックチェーンの所定数以上の参加者サーバ2のブロックデータと一致する場合(ステップS407:YES)、中央サーバ3Aのブロックデータが改ざんされていないと判断する。このとき、通知部402は、クライアントCL1に対し、要求された取引が正常に完了したことを通知する(ステップS408)。また、通知部402は、第1ブロックチェーンの中央サーバ3Aにブロックデータが改ざんされていないことを示す検証結果を通知する(ステップS409)。なお、通知部402は、第1ブロックチェーンの参加者サーバ2A、2Bと、第2ブロックチェーンの参加者サーバ2C、2Dと、第2ブロックチェーンの中央サーバ3Bとのそれぞれに、同様の検証結果を通知するようにしてもよい。
同様に、比較部401は、第2ブロックチェーンの中央サーバ3Bから取得した第2検証情報(ブロックデータ)と、第1ブロックチェーンの参加者サーバ2A、2Bから取得した第1検証情報(ブロックデータ)とに基づいて、第2ブロックチェーンの中央サーバ3Bに記録されているブロックデータの改ざんの有無を判断する(ステップS410)。なお、図13の例では、参加者サーバ2Aの比較部401は、自機の第1記録媒体23に記録されている第1検証情報と、参加者サーバ2Bから取得した第1検証情報と、第2ブロックチェーンの中央サーバ3Bから取得した第2検証情報とに基づいて、改ざんの有無を判断する。
比較部401は、中央サーバ3Bのブロックデータが、第1ブロックチェーンの所定数以上(例えば、3分の2以上)の参加者サーバ2のブロックデータと一致しない場合(ステップS410:NO)、中央サーバ3Bのブロックデータが改ざんされていると判断する。そうすると、通知部402は、第2ブロックチェーンの中央サーバ3Bにブロックデータが改ざんされていることを示す検証結果を通知する(ステップS412)。この検証結果には、中央サーバ3Bのどのブロックデータが改ざんされているかを示す情報が含まれていてもよい。また、通知部402は、第1ブロックチェーンの参加者サーバ2A、2Bと、第2ブロックチェーンの参加者サーバ2C、2Dと、第1ブロックチェーンの中央サーバ3Aとのそれぞれに、同様の検証結果を通知するようにしてもよい。
一方、比較部401は、中央サーバ3Bのブロックデータが、第1ブロックチェーンの所定数以上の参加者サーバ2のブロックデータと一致する場合(ステップS410:YES)、中央サーバ3Bのブロックデータが改ざんされていないと判断する。このとき、通知部402は、クライアントCL2に対し、要求された取引が正常に完了したことを通知する(ステップS411)。また、通知部402は、第2ブロックチェーンの中央サーバ3Bにブロックデータが改ざんされていないことを示す検証結果を通知する(ステップS412)。なお、通知部402は、第1ブロックチェーンの参加者サーバ2A、2Bと、第2ブロックチェーンの参加者サーバ2C、2Dと、第1ブロックチェーンの中央サーバ3Aとのそれぞれに、同様の検証結果を通知するようにしてもよい。
なお、図13には、参加者サーバ2Aが検知装置として機能し、第1ブロックチェーン及び第2ブロックチェーンのブロックデータの改ざんの有無を検知する例が示されているが、これに限られることはない。他の実施形態では、参加者サーバ2B~2D及び中央サーバ3A~2Bのうち一つが検知装置として機能し、参加者サーバ2Aに代えて上述の各ステップを実行するようにしてもよい。
また、更に他の実施形態では、参加者サーバ2A~2D及び中央サーバ3A~3Bのうち何れか一つが第1ブロックチェーンのブロックデータの改ざんの有無を検知し、他の一つが第2ブロックチェーンのブロックデータの改ざんの有無を検知するようにしてもよい。例えば、参加者サーバ2Aが第1ブロックチェーンの検知装置として機能する場合、参加者サーバ2Aは、第1ブロックチェーンの中央サーバ3Aの第2検証情報と、第2ブロックチェーンの参加者サーバ2C、2Dの第1検証情報とに基づいて、第1ブロックチェーン(中央サーバ3A)のブロックデータの改ざんの有無を検知する。また、参加者サーバ2Cが第2ブロックチェーンの検知装置として機能する場合、参加者サーバ2Cは、第2ブロックチェーンの中央サーバ3Bの第2検証情報と、第1ブロックチェーンの参加者サーバ2A、2Bの第1検証情報とに基づいて、第2ブロックチェーン(中央サーバ3B)のブロックデータの改ざんの有無を検知する。
このようにすることで、参加者サーバ2及び中央サーバ3は、第1ブロックチェーンの中央サーバ3Aと、第2ブロックチェーンの中央サーバ3Bとの両方の改ざんを検知することができる。
また、本実施形態に係る改ざん検知システム1において、中央サーバ3A、3Bのブロックデータを改ざんする場合、第1ブロックチェーン及び第2ブロックチェーン双方の参加者サーバ2A、2B、2C、2Dのブロックデータ、及び変換用の関数を改ざんしなければならない。したがって、改ざん検知システム1、参加者サーバ2、及び中央サーバ3は、ブロックデータの改ざんの困難性を更に向上させることができる。
また、本実施形態に係る検知部40は、第1の実施形態の変形例と同様に、所定時間(例えば、10分)が経過したタイミングで第1ブロックチェーンの中央サーバ3Aの改ざん、及び、第2ブロックチェーンの中央サーバ3Bの改ざんを検知するようにしてもよい。
<ハードウェア構成>
図14は、少なくとも一の実施形態に係る参加者サーバ及び中央サーバのハードウェア構成の一例を示す図である。
以下、図14を参照しながら、上述の少なくとも一の実施形態に係る参加者サーバ2及び中央サーバ3のハードウェア構成の一例について説明する。
図14に示すように、コンピュータ900は、CPU901、主記憶装置902、補助記憶装置903、インタフェース904を備える。
上述の参加者サーバ2及び中央サーバ3は、それぞれコンピュータ900に実装される。そして、上述した各処理部の動作は、プログラムの形式で補助記憶装置903に記憶されている。CPU901(プロセッサ20、30、40)は、プログラムを補助記憶装置903から読み出して主記憶装置902(メモリ21、31、41)に展開し、当該プログラムに従って上記処理を実行する。また、CPU901は、プログラムに従って、参加者サーバ2及び中央サーバ3が各種処理に用いる記憶領域を主記憶装置902に確保する。また、CPU901は、プログラムに従って、処理中のデータを記憶する記憶領域(記録媒体23、33、43)を補助記憶装置903に確保する。
補助記憶装置903の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。補助記憶装置903は、コンピュータ900のバスに直接接続された内部メディアであってもよいし、インタフェース904又は通信回線を介してコンピュータ900に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、補助記憶装置903は、一時的でない有形の記憶媒体である。
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。更に、当該プログラムは、前述した機能を補助記憶装置903に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上のとおり、本発明に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば、上述の各実施形態において、参加者サーバ2及び中央サーバ3のうち少なくとも一つが検知装置としてブロックデータの改ざんの有無を検知する態様について説明したが、これに限られることはない。他の実施形態では、改ざん検知システム1は、参加者サーバ2及び中央サーバ3とは異なるサーバを更に備え、当該サーバが検知装置としての機能(検知部40の機能)を有していてもよい。
1 改ざん検知システム
2、2A、2B、2C、2D 参加者サーバ(検知装置)
20 プロセッサ
200 トランザクションデータ受付部
201 トランザクションデータ検証部
202 記録処理部
203 第1検証情報送信部
21 メモリ
22 インタフェース
23 第1記録媒体
3、3A、3B 中央サーバ(検知装置)
30 プロセッサ
300 要求受付部
301 ブロックデータ生成部
302 ブロックデータ送信部
303 第2検証情報送信部
31 メモリ
32 インタフェース
33 第2記録媒体
40 検知部
400 検証情報取得部
401 比較部
402 通知部
403 変更部
CL、CL2、CL3 クライアント

Claims (10)

  1. クライアントから受け付けたトランザクションデータが有効であるか検証するトランザクションデータ検証部と、
    有効であると判断された前記トランザクションデータを含むブロックデータを中央サーバから受信して、第1記録媒体に記録する記録処理部と、
    ブロックチェーンを構成するためのブロックデータを生成し配布する中央サーバに記録されているブロックデータの改ざんの有無を判断する機能を備えた検知装置に対して、前記第1記録媒体に記録されている前記ブロックデータに関する第1検証情報を送信する第1検証情報送信部と、
    を備え
    前記第1検証情報は、前記第1記録媒体に記録されている前記ブロックデータのCRC値、又は前記第1記録媒体に記録されている前記ブロックデータの数である、
    参加者サーバ。
  2. 前記第1検証情報送信部は、前記中央サーバから前記ブロックデータを受信したタイミング、前記検知装置から前記第1検証情報を要求されたタイミング、又は、前記参加者サーバが再起動したタイミングのうち、何れかのタイミングで前記第1検証情報を前記検知装置に送信する、
    請求項1に記載の参加者サーバ。
  3. 前記記録処理部は、前記検知装置により前記中央サーバに記録されている前記ブロックデータが改ざんされていると判断された場合に、前記中央サーバからの要求に応じて、前記第1記録媒体に記録された前記ブロックデータを前記中央サーバに送信する、
    請求項1又は2に記載の参加者サーバ。
  4. 前記検知装置として機能する検知部を更に備え、
    前記検知部は、
    前記中央サーバに記録されているブロックデータに関する第2検証情報と、他の前記参加者サーバに記録されているブロックデータに関する第1検証情報と、を取得する検証情報取得部と、
    前記第1検証情報と前記第2検証情報とを比較して、前記中央サーバにおける前記ブロックデータの改ざんの有無を判断する比較部と、
    を有する、
    請求項1から3の何れか一項に記載の参加者サーバ。
  5. 前記検知部は、複数の前記参加者サーバから選択した何れか一の参加者サーバを前記中央サーバに変更する変更部を更に有する、
    請求項4に記載の参加者サーバ。
  6. 参加者サーバのコンピュータを機能させるプログラムであって、前記コンピュータに、 クライアントから受け付けたトランザクションデータが有効であるか検証するステップと、
    有効であると判断された前記トランザクションデータを含むブロックデータを中央サーバから受信して、第1記録媒体に記録するステップと、
    ブロックチェーンを構成するためのブロックデータを生成し配布する中央サーバに記録されているブロックデータの改ざんの有無を判断する機能を備えた検知装置に対して、前記第1記録媒体に記録されている前記ブロックデータに関する第1検証情報を送信するステップと、
    を実行させ
    前記第1検証情報は、前記第1記録媒体に記録されている前記ブロックデータのCRC値、又は前記第1記録媒体に記録されている前記ブロックデータの数である、
    プログラム。
  7. クライアントから受け付けたトランザクションデータが有効であるか検証するトランザクションデータ検証部と、
    有効であると判断された前記トランザクションデータを含むブロックデータを中央サーバから受信して、第1記録媒体に記録する記録処理部と、
    ブロックチェーンを構成するためのブロックデータを生成し配布する中央サーバに記録されているブロックデータの改ざんの有無を判断する機能を備えた検知装置に対して、前記第1記録媒体に記録されている前記ブロックデータに関する第1検証情報を送信する第1検証情報送信部と、
    を備え、
    前記記録処理部は、前記検知装置により前記中央サーバに記録されている前記ブロックデータが改ざんされていると判断された場合に、前記中央サーバからの要求に応じて、前記第1記録媒体に記録された前記ブロックデータを前記中央サーバに送信する、
    参加者サーバ。
  8. 前記第1検証情報送信部は、前記中央サーバから前記ブロックデータを受信したタイミング、前記検知装置から前記第1検証情報を要求されたタイミング、又は、前記参加者サーバが再起動したタイミングのうち、何れかのタイミングで前記第1検証情報を前記検知装置に送信する、
    請求項7に記載の参加者サーバ。
  9. 前記検知装置として機能する検知部を更に備え、
    前記検知部は、
    前記中央サーバに記録されているブロックデータに関する第2検証情報と、他の前記参加者サーバに記録されているブロックデータに関する第1検証情報と、を取得する検証情報取得部と、
    前記第1検証情報と前記第2検証情報とを比較して、前記中央サーバにおける前記ブロックデータの改ざんの有無を判断する比較部と、
    を有する、
    請求項7又は8に記載の参加者サーバ。
  10. 前記検知部は、複数の前記参加者サーバから選択した何れか一の参加者サーバを前記中央サーバに変更する変更部を更に有する、
    請求項9に記載の参加者サーバ。
JP2021079784A 2019-12-06 2021-05-10 参加者サーバ及びプログラム Active JP7201737B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021079784A JP7201737B2 (ja) 2019-12-06 2021-05-10 参加者サーバ及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019221481A JP6884196B1 (ja) 2019-12-06 2019-12-06 検知装置、改ざん検知システム、中央サーバ、参加者サーバ、改ざん検知方法、及びプログラム
JP2021079784A JP7201737B2 (ja) 2019-12-06 2021-05-10 参加者サーバ及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019221481A Division JP6884196B1 (ja) 2019-12-06 2019-12-06 検知装置、改ざん検知システム、中央サーバ、参加者サーバ、改ざん検知方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2021114336A JP2021114336A (ja) 2021-08-05
JP7201737B2 true JP7201737B2 (ja) 2023-01-10

Family

ID=76218162

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019221481A Active JP6884196B1 (ja) 2019-12-06 2019-12-06 検知装置、改ざん検知システム、中央サーバ、参加者サーバ、改ざん検知方法、及びプログラム
JP2021079784A Active JP7201737B2 (ja) 2019-12-06 2021-05-10 参加者サーバ及びプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2019221481A Active JP6884196B1 (ja) 2019-12-06 2019-12-06 検知装置、改ざん検知システム、中央サーバ、参加者サーバ、改ざん検知方法、及びプログラム

Country Status (3)

Country Link
US (1) US20230036817A1 (ja)
JP (2) JP6884196B1 (ja)
WO (1) WO2021112178A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019034621A1 (en) 2017-08-16 2019-02-21 Autoliv Development Ab METHOD FOR A DRIVER ASSISTANCE SYSTEM FOR A MOTOR VEHICLE
WO2019207804A1 (ja) 2018-04-27 2019-10-31 株式会社東芝 改ざん検出システム及び改ざん検出方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6736033B2 (ja) * 2018-06-12 2020-08-05 フレセッツ株式会社 暗号通貨のためのウォレット装置及びその装置を用いる署名方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019034621A1 (en) 2017-08-16 2019-02-21 Autoliv Development Ab METHOD FOR A DRIVER ASSISTANCE SYSTEM FOR A MOTOR VEHICLE
WO2019207804A1 (ja) 2018-04-27 2019-10-31 株式会社東芝 改ざん検出システム及び改ざん検出方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
西下 慧,Hyperledger Fabric入門第2回,Blockchain Tutorials,2018年05月17日,<https://developer.ibm.com/jp/technologies/blockchain/tutorials/cl-hyperledger-fabric-basic-2/>

Also Published As

Publication number Publication date
JP2021092851A (ja) 2021-06-17
US20230036817A1 (en) 2023-02-02
JP6884196B1 (ja) 2021-06-09
JP2021114336A (ja) 2021-08-05
WO2021112178A1 (ja) 2021-06-10

Similar Documents

Publication Publication Date Title
JP7461417B2 (ja) セキュアなオフチェーンのブロックチェーントランザクション
KR101882802B1 (ko) Utxo 기반 프로토콜을 이용한 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
KR101882805B1 (ko) Utxo 기반 프로토콜에서 머클 트리 구조를 이용하는 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
EP3776208B1 (en) Runtime self-correction for blockchain ledgers
CN111164935B (zh) 在基于区块链的私有交易中提供隐私和安全保护的系统和方法
US11153069B2 (en) Data authentication using a blockchain approach
EP3438903B1 (en) Hierarchical network system, and node and program used in same
US20190172026A1 (en) Cross blockchain secure transactions
TWI387284B (zh) 用於以積點為基礎之對等式儲存之方法、系統、及記錄相關指令的電腦儲存媒體
US10693646B2 (en) Event execution using a blockchain approach
US20140229738A1 (en) Timestamping system and timestamping program
TW202101325A (zh) 基於區塊鏈智慧合約的轉帳方法及系統
EP3531365B1 (en) Computer system, connection apparatus, and processing method using transaction
US11856107B2 (en) Methods and systems for exchanging confidential information via a blockchain
CN112513914A (zh) 基于区块链的隐私交易中提供隐私和安全保护的系统和方法
US11625385B2 (en) Method and apparatus for managing data based on blockchain
JP7201737B2 (ja) 参加者サーバ及びプログラム
JP6896813B2 (ja) トランザクション実行方法およびシステム
US20210365341A1 (en) Ledger-based device health data sharing
TW202135504A (zh) 平台服務驗證技術
WO2020122095A1 (ja) 制御方法、サーバ、プログラム、および、データ構造
JP7393048B2 (ja) 不正検証装置、確証生成装置、および、不正検知システム
US20240171393A1 (en) Method to validate ownership and authentication of a digital asset
EP4107689A1 (en) Platform services verification
JP2009010911A (ja) 認証システムおよび装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221222

R150 Certificate of patent or registration of utility model

Ref document number: 7201737

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150