(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-27
(45)【発行日】2022-08-04
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G06F 21/62 20130101AFI20220728BHJP
G06F 16/23 20190101ALI20220728BHJP
G06F 21/64 20130101ALI20220728BHJP
【FI】
G06F21/62 345
G06F16/23
G06F21/64
(21)【出願番号】P 2018215159
(22)【出願日】2018-11-16
【審査請求日】2021-09-03
(73)【特許権者】
【識別番号】000102728
【氏名又は名称】株式会社エヌ・ティ・ティ・データ
(74)【代理人】
【識別番号】100095407
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100132883
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100166442
【氏名又は名称】鈴木 洋雅
(74)【代理人】
【識別番号】100174067
【氏名又は名称】湯浅 夏樹
(74)【代理人】
【識別番号】100208410
【氏名又は名称】岩瀬 寛司
(72)【発明者】
【氏名】川森 茂樹
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2018-116509(JP,A)
【文献】特開2017-224018(JP,A)
【文献】国際公開第2017/136879(WO,A1)
【文献】特表2019-511758(JP,A)
【文献】特開2013-250937(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 16/23
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、第1のハッシュチェーンと、第2のハッシュチェーンとを含み、
前記データ格納手段は、
前記トランザクションのデータが第1の種類のデータである場合、前記第1のハッシュチェーンと前記第2のハッシュチェーンで連結されるデータブロックに、前記第1の種類のデータを格納し、
前記トランザクションのデータが第2の種類のデータである場合、前記第1のハッシュチェーンのみで連結されるデータブロックに、前記第2の種類のデータを格納し、
前記トランザクションのデータが第3の種類のデータである場合、参照対象となるデータブロックを、前記第1のハッシュチェーンで連結されたデータブロックから前記第2のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする情報処理装置。
【請求項2】
前記トランザクションのデータが第3の種類のデータである場合、前記第1のハッシュチェーンのみで連結されたデータブロックを削除する削除処理手段を、
さらに備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記データ格納手段は、前記第1のハッシュチェーンで連結されたデータブロックのうち、前記削除処理手段により削除されたデータブロック以外のデータブロックに含まれる前記第1の種類のデータを、前記第1のハッシュチェーンおよび前記第2のハッシュチェーンとは異なる新たなハッシュチェーンで連結されるデータブロックに格納する、
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
情報処理装置における情報処理方法であって、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納ステップを備え、
前記ハッシュチェーンは、第1のハッシュチェーンと、第2のハッシュチェーンとを含み、
前記データ格納ステップでは、
前記トランザクションのデータが第1の種類のデータである場合、前記第1のハッシュチェーンと前記第2のハッシュチェーンで連結されるデータブロックに、前記第1の種類のデータを格納し、
前記トランザクションのデータが第2の種類のデータである場合、前記第1のハッシュチェーンのみで連結されるデータブロックに、前記第2の種類のデータを格納し、
前記トランザクションのデータが第3の種類のデータである場合、参照対象となるデータブロックを、前記第1のハッシュチェーンで連結されたデータブロックから前記第2のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする情報処理方法。
【請求項5】
コンピュータを、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段、として機能させ、
前記ハッシュチェーンは、第1のハッシュチェーンと、第2のハッシュチェーンとを含み、
前記データ格納手段は、
前記トランザクションのデータが第1の種類のデータである場合、前記第1のハッシュチェーンと前記第2のハッシュチェーンで連結されるデータブロックに、前記第1の種類のデータを格納し、
前記トランザクションのデータが第2の種類のデータである場合、前記第1のハッシュチェーンのみで連結されるデータブロックに、前記第2の種類のデータを格納し、
前記トランザクションのデータが第3の種類のデータである場合、参照対象となるデータブロックを、前記第1のハッシュチェーンで連結されたデータブロックから前記第2のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
近年、ビットコイン(登録商標)等の仮想通貨を用いた商取引が行われている。当該仮想通貨を用いた商取引では、中央集権的な管理を必要とせずに不正を防止するため、ブロックチェーンと呼ばれる技術が用いられている。ブロックチェーンでは、複数のトランザクションデータ、直前のハッシュ値及びその他の情報を「ブロック」として定義し、参加者全体で形成されるネットワーク内での合意形成のプロセスによって当該「ブロック」内の情報の信頼性を担保している。このようなブロックチェーンの技術は、仮想通貨の商取引にとどまらず、ヘルスケア、保険など、様々な分野に採用されはじめている。しかしながら、このようなブロックチェーンの技術は、登録された情報を改変・削除できないという利点を持つが、個人情報の削除権を保障するといった点で矛盾が生じてしまう問題がある。
【0003】
そこで、例えば非特許文献1には、このような問題に対応するための手法が開示されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】” 矛盾するブロックチェーンとGDPR...「削除不可能性」を巡り欧州フィンテック界が混乱”、[Online]、[平成30年10月30日検索]、インターネット<URL:https://roboteer-tokyo.com/archives/12815/2>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に開示されている手法では、現実性に乏しいことや欠点が残ってしまうなどの様々な問題点があり、未だ改善の余地があった。すなわち、ブロック上に格納されたデータの利便性向上という観点からすると未だ十分ではなかった。
【0006】
本発明は、上述のような事情に鑑みてなされたものであり、ブロック上に格納されたデータの利便性を向上させることができる情報処理装置、情報処理方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の第1の観点に係る情報処理装置は、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、第1のハッシュチェーンと、第2のハッシュチェーンとを含み、
前記データ格納手段は、
前記トランザクションのデータが第1の種類のデータである場合、前記第1のハッシュチェーンと前記第2のハッシュチェーンで連結されるデータブロックに、前記第1の種類のデータを格納し、
前記トランザクションのデータが第2の種類のデータである場合、前記第1のハッシュチェーンのみで連結されるデータブロックに、前記第2の種類のデータを格納し、
前記トランザクションのデータが第3の種類のデータである場合、参照対象となるデータブロックを、前記第1のハッシュチェーンで連結されたデータブロックから前記第2のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする。
【0008】
前記トランザクションのデータが第3の種類のデータである場合、前記第1のハッシュチェーンのみで連結されるデータブロックを削除する削除処理手段を、
さらに備えるようにしてもよい。
【0009】
前記データ格納手段は、前記第1のハッシュチェーンで連結されたデータブロックのうち、前記削除処理手段により削除されたデータブロック以外のデータブロックに含まれる前記第1の種類のデータを、前記第1のハッシュチェーンおよび前記第2のハッシュチェーンとは異なる新たなハッシュチェーンで連結されるデータブロックに格納する、
ようにしてもよい。
【0010】
上記目的を達成するため、本発明の第2の観点に係る情報処理方法は、
情報処理装置における情報処理方法であって、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納ステップを備え、
前記ハッシュチェーンは、第1のハッシュチェーンと、第2のハッシュチェーンとを含み、
前記データ格納ステップでは、
前記トランザクションのデータが第1の種類のデータである場合、前記第1のハッシュチェーンと前記第2のハッシュチェーンで連結されるデータブロックに、前記第1の種類のデータを格納し、
前記トランザクションのデータが第2の種類のデータである場合、前記第1のハッシュチェーンのみで連結されるデータブロックに、前記第2の種類のデータを格納し、
前記トランザクションのデータが第3の種類のデータである場合、参照対象となるデータブロックを、前記第1のハッシュチェーンで連結されたデータブロックから前記第2のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする。
【0011】
上記目的を達成するため、本発明の第3の観点に係るプログラムは、
コンピュータを、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段、として機能させ、
前記ハッシュチェーンは、第1のハッシュチェーンと、第2のハッシュチェーンとを含み、
前記データ格納手段は、
前記トランザクションのデータが第1の種類のデータである場合、前記第1のハッシュチェーンと前記第2のハッシュチェーンで連結されるデータブロックに、前記第1の種類のデータを格納し、
前記トランザクションのデータが第2の種類のデータである場合、前記第1のハッシュチェーンのみで連結されるデータブロックに、前記第2の種類のデータを格納し、
前記トランザクションのデータが第3の種類のデータである場合、参照対象となるデータブロックを、前記第1のハッシュチェーンで連結されたデータブロックから前記第2のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする。
【発明の効果】
【0012】
本発明によれば、ブロック上に格納されたデータの利便性を向上させることができる。
【図面の簡単な説明】
【0013】
【
図1】本発明の実施形態に係る情報処理システムの一例を示すブロック図である。
【
図2】本発明の実施形態に係る情報処理装置の一例を示すブロック図である。
【
図3】初期登録処理の一例を示すフローチャートである。
【
図4】データブロック登録処理の一例を示すフローチャートである。
【
図5】削除処理の一例を示すフローチャートである。
【
図6】発生したトランザクションの一例を示す図である。
【
図7】ハッシュチェーンの登録内容の例を示す図である。
【
図8】ハッシュチェーンの登録内容の例を示す図である。
【
図9】ハッシュチェーンの登録内容の例を示す図である。
【
図10】参照処理の一例を示すフローチャートである。
【
図11】変形例におけるハッシュチェーンの登録内容の例を示す図である。
【発明を実施するための形態】
【0014】
本発明における情報処理装置100を、
図1に示す情報処理システム1に適用した例を用いて説明する。情報処理システム1では、
図1に示すように、情報処理装置100A(情報処理装置100Aを単に情報処理装置100ともいう)、患者X1の端末100B、医者Y1の端末100Cのそれぞれがネットワーク210を介して通信可能に接続されている。患者X1の端末100B、医者Yの端末100Cは、それぞれ情報処理装置100としても機能することが可能であるが、理解を容易にするため、この実施の形態では、これらを情報処理装置100と区別して説明する。また、情報処理装置100Aは、他の情報処理装置100とネットワークを介して通信可能に接続されている(図示省略)。
【0015】
情報処理装置100は、携帯電話やスマートフォン、タブレットやPC(Personal Computer)等の情報端末であり、P2P(Peer to Peer)等の分散型のネットワーク210を構築している。なお、情報処理システム1は、P2P型のシステムに限られず、例えばクラウドコンピューティング型であってもよい。
【0016】
情報処理装置100は、例えば、患者X1の個人情報や、医者Y1が患者X1に行った治療行為を示す情報(トランザクションデータ)をネットワーク210から受信したことに基づいて、新たなデータブロックを生成して当該受信データを格納し、既存のハッシュチェーンに連結する、ハッシュチェーン登録装置として機能する。なお、上述したように、端末100Bおよび100Cが情報処理装置100として機能することもあることから、情報処理装置100は、トランザクションデータを生成し、ネットワーク210へ配信する機能を有するトランザクション生成装置として機能することもある。ハッシュチェーン登録装置にて登録された内容は、ネットワーク210を介して、各情報処理装置100(図示省略)で共有される。また、通常、一定数のトランザクションデータが一つのデータブロックに格納される(一定数のトランザクションデータをひとまとめにして一つのデータブロックに格納する)が、この実施の形態では、理解を容易にするため、一つのトランザクションデータが一つのデータブロックに格納されるものとする。
【0017】
この実施の形態において、トランザクション生成装置としての機能により生成されたトランザクションデータは、データブロックと呼ばれる一つの単位に格納され、当該データブロックを時系列に連結したハッシュチェーンによって管理される。具体的に、トランザクションデータは、ハッシュチェーン登録装置としての機能により、新たに生成されたデータブロックに格納された後、既存のハッシュチェーンに連結され、各情報処理装置100(端末100Bや100C、その他の情報処理装置を含む)で共有される。この実施の形態では、登録対象のトランザクションデータの種類によって、連結されるデータブロックが異なっている。
【0018】
例えば、新たなトランザクションデータが配信されると、ハッシュチェーン登録装置の機能により、当該トランザクションデータについての検証を行い、新たなデータブロック(第nのデータブロック)を生成する。そして、当該トランザクションデータに個人情報が含まれている場合、現在のハッシュチェーンの末尾のデータブロック(第n-1のデータブロック)のハッシュ値(256ビット)とともに、新たなデータブロック(第nのデータブロック)に格納する(ハッシュチェーン1)。一方、当該トランザクションデータに個人情報が含まれていない場合、個人情報を含まないデータブロック(第n-1のデータブロックに個人情報が格納されている場合、第n-2のデータブロック)のハッシュ値(256ビット)と、現在のハッシュチェーンの末尾のデータブロック(第n-1のデータブロック)のハッシュ値(256ビット)とともに、新たなデータブロック(第nのブロック)に格納する。これにより、トランザクションデータがデータブロックに格納され、ハッシュチェーンにより時系列に管理されることとなる。すなわち、詳しくは後述するが、個人情報を含むトランザクションデータの場合には、トランザクションデータが一つのハッシュ値とともに格納されるため、当該データブロックは、一つのハッシュチェーンにて連結されることとなる。その一方で、個人情報を含まないトランザクションデータの場合、トランザクションデータが二つのハッシュ値とともに格納されるため、当該データブロックは、二つのハッシュチェーンにて連結されることとなる。したがって、この実施の形態では、一連のデータブロックについて、個人情報を含むデータブロックを連結したハッシュチェーン1と、個人情報を含まないデータブロックを連結したハッシュチェーン2とが存在することとなる。
【0019】
また、この実施の形態における情報処理装置100は、各属性のハッシュチェーン111に含まれるデータブロックから、ユーザの所望する登録データ(個人情報など)を削除するデータ削除装置としても機能する。
【0020】
この実施の形態における情報処理装置100のデータ削除装置としての機能は、ユーザによる指定に基づき、削除データを新たなデータブロックに登録して個人情報などのデータを含むデータブロックを削除する機能である。具体的には、上述した二つのハッシュチェーンについて、参照用として設定されたハッシュチェーンを変更するとともに(例えば、参照用としてハッシュチェーン1が設定されている場合には、ハッシュチェーン2を参照用として変更し)、元のハッシュチェーンのみ(ハッシュチェーン1のみ)で連結されたデータブロックを削除することで、個人情報を削除する機能である。
【0021】
次に、
図2を参照し、この実施の形態における情報処理装置100の構成について説明する。なお、図示する例では、情報処理装置100Aを例としているが、端末100Bおよび端末100Cが情報処理装置100として機能する場合についても同様であるため、説明は省略する。なお、図示は省略しているが、トランザクション生成装置としての機能を有する機能部が設けられていてもよい。
【0022】
図2に示すように、情報処理装置100A(以下、情報処理装置100)は、記憶部110と、制御部120と、入出力部130と、通信部140と、これらを相互に接続するシステムバス(図示省略)と、を備えている。
【0023】
記憶部110は、ROM(Read Only Memory)やRAM(Random Access Memory)等を備える。ROMは制御部120のCPU(Central Processing Unit)が実行するプログラム及び、プログラムを実行する上で予め必要なデータを記憶する(図示省略)。具体的に、この実施の形態では、当該情報処理装置100を、ハッシュチェーン登録装置およびデータ削除装置として機能させるためのプログラムが、予めインストールされている。RAMは、プログラム実行中に作成されたり変更されたりするデータを記憶する。記憶部110は、制御部120が実行するプログラムが用いる主要な情報として、各属性のハッシュチェーン111を記憶する。
【0024】
なお、この実施の形態では、理解を容易にするため、各属性のハッシュチェーン111が患者X1のハッシュチェーンのみである場合を例として以下説明するが、その他にも、例えば、患者X2や患者X3のハッシュチェーンが記憶部110に記憶される。各属性のハッシュチェーン111は、後述するデータブロック登録処理にて当該記憶部110に記憶され、後述する参照処理により、ハッシュチェーンが指定された場合に参照される。
【0025】
制御部120は、CPUやASIC(Application Specific Integrated Circuit)等から構成される。制御部120は、記憶部110に記憶されたプログラムに従って動作し、当該プログラムに従った処理を実行する。制御部120は、記憶部110に記憶されたプログラムにより提供される主要な機能部として、初期登録部121と、同期処理部122と、データブロック登録部123と、データ参照部124と、削除処理部125と、を備える。
【0026】
初期登録部121は、ユーザの入出力部130に対する操作や、通信部140を介して受信した要求に基づいて、新たな属性のハッシュチェーンを生成するために必要な初期情報(初期データ)を登録する機能を実現する機能部である。詳しくは後述するが、初期登録部121は、例えば、患者X1の属性のハッシュチェーンを生成するために必要な初期情報として、属性情報、患者X1のアドレス、インデックス値などを登録する機能(すなわち、後述するハッシュチェーンの土台情報を登録する機能)を有している。
【0027】
同期処理部122は、当該情報処理装置100に記憶された各属性のハッシュチェーンと、他の情報処理装置100に記憶された各属性のハッシュチェーンとを同期する機能を実現する機能部である。同期処理部122は、後述するデータブロック登録処理にてトランザクションデータを当該情報処理装置100におけるデータブロックに登録する前と後に、他の情報処理装置100と同期する機能を有している。また、同期処理部122は、後述する初期登録処理において他の情報処理装置100へ、ハッシュチェーンの土台情報を同期させる機能を有している。
【0028】
データブロック登録部123は、発生したトランザクションのトランザクションデータを含むデータブロックを、当該情報処理装置100の各属性のハッシュチェーン111のうち、対応する属性のハッシュチェーンに追加する機能を実現する機能部である。詳しくは後述するが、データブロック登録部123は、例えば、患者X1の個人情報などを登録する場合や、患者X1に対して治療が行われた場合に、患者X1のハッシュチェーンに、当該個人情報(トランザクションデータ)や当該治療行為を示す情報(トランザクションデータ)を、それぞれ新たなデータブロックとして登録する機能を有している。なお、データブロック登録部123は、削除データを新たなデータブロックに登録する機能も有している。
【0029】
データ参照部124は、ユーザの指定に基づく属性のハッシュチェーン111に含まれるハッシュチェーン1とハッシュチェーン2のうち、参照用として設定された方のハッシュチェーンで連結されたデータブロックに登録された登録データを表示させる機能を実現する機能部である。なお、参照用として設定されたハッシュチェーンがハッシュチェーン1とハッシュチェーン2のいずれであるかを示す設定情報が記憶部110に記憶されてもよいし、通常時はハッシュチェーン1を参照用として設定し、削除データがデータブロックに登録されている場合にのみハッシュチェーン2を参照用としてもよい。この実施の形態では、記憶部110に設定情報が記憶されているものとする。
【0030】
削除処理部125は、削除データが新たなデータブロックに登録されたことに基づいて、参照用のハッシュチェーンを、設定情報を更新して変更するとともに、変更前のハッシュチェーンでのみ連結されたデータブロックを削除する機能を実現する機能部である。
【0031】
これら各機能部が協働して、当該情報処理装置100をハッシュチェーン登録装置およびデータ削除装置として機能させる。
【0032】
入出力部130は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等から構成され、データの入出力を行うための装置である。
【0033】
通信部140は、他の情報処理装置100(図示省略)や端末100Bおよび端末100Cとネットワーク210を介して通信を行うためのデバイスである。
【0034】
以上が、情報処理装置100の構成である。続いてハッシュチェーン登録装置およびデータ削除装置として機能した場合における情報処理装置100の動作について、
図3~
図10を参照して説明する。
【0035】
まず、ユーザの入出力部130に対する操作(入力操作)や、端末100Bまたは端末100Cから受信した要求(登録要求)に基づいて、
図3に示す初期登録処理が行われる。初期登録処理は、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する処理である。この例では、理解を容易にするため、患者X1についての初期登録を行う場合について説明する。初期登録処理を開始すると、情報処理装置100は、初期登録部121の機能により、属性データを生成する(ステップS101)。具体的に、ステップS101では、入力操作や登録要求に含まれる、属性情報である患者X1の情報(患者X1を識別する識別情報など)および患者X1のアドレスを、患者X1の属性のハッシュチェーンを生成するための情報として、記憶部110へ登録する。なお、属性情報は登録せず、アドレスのみ登録するようにしてもよい。
【0036】
次に、情報処理装置100は、初期登録部121の機能により、登録した患者X1の属性のハッシュチェーンのインデックス値に、初期値である「0」を登録する。すなわち、ステップS102では、インデックス値「0」のデータブロックを生成する(ステップS102)。そして、当該インデックス値「0」のデータブロックに、初期データを格納するとともに、ハッシュチェーン1のハッシュ値の初期値として、インデックス値「0」に対応する初期値を格納する。これに合わせ、ハッシュチェーン2のハッシュ値の初期値として、ハッシュチェーン1のハッシュ値と同様に、インデックス値「0」に対応する初期値を、それぞれ格納する(
図7(A)参照)。なお、初期データは、例えば、当該データブロックが生成された際のタイムスタンプや、患者X1の識別情報を生成して格納したタイムスタンプなどの情報が含まれる。また、この段階では、ハッシュチェーン1のハッシュ値およびハッシュチェーン2のハッシュ値の値は同一である。また、患者X1のハッシュチェーンと言った場合には、ハッシュチェーン1で連結されたデータブロックおよびハッシュチェーン2で連結されたデータブロックの両方を指すものとする。また、
図7(A)に示すインデックス値「0」のデータブロックのことを、患者X1の属性のハッシュチェーンの土台情報ともいう。
【0037】
ステップS102の処理を実行した後、情報処理装置100は、ハッシュチェーン1で連結されたデータブロックに含まれる登録データ、すなわちハッシュチェーン1を参照用に設定する(ステップS103)。ステップS103では、ハッシュチェーン1で連結されたデータブロックと、ハッシュチェーン2で連結されたデータブロックのうち、ハッシュチェーン1で連結されたデータブロックに格納された登録データを参照対象とするよう、設定情報を更新する。続いて、情報処理装置100は、同期処理部122の機能により、他の情報処理装置100へ、当該内容を登録し(ステップS104)、初期登録処理を終了する。具体的に、ステップS104では、当該情報処理装置100における患者X1の属性のハッシュチェーン(ハッシュチェーンの土台情報)の内容を、他の情報処理装置100の記憶部110における各属性のハッシュチェーン111へコピーする。これにより、全ての情報処理装置100において患者X1の属性のハッシュチェーン(ハッシュチェーンの土台情報)が共有されることとなる。
【0038】
次に、発生したトランザクションについて、当該トランザクションデータを対応する属性のハッシュチェーンのデータブロックへ登録するデータブロック登録処理について説明する。当該データブロック登録処理は、発生したトランザクションに対応するトランザクションデータを受信することにより実行される。トランザクションデータは、端末100Bおよび端末100Cのいずれかより受信するものであるが、入出力部130に入力されてもよい。なお、この実施の形態では、上述したように、一つのトランザクションにつき一つのデータブロックが作成され登録されることから、当該データブロック登録処理は、登録すべきトランザクションの数が複数ある場合、繰り返し実行されることとなる。
【0039】
図4は、データブロック登録処理の一例を示すフローチャートである。上述したように、データブロック登録処理は、ユーザから入出力部130への操作(入力操作)によりトランザクションデータが入力された場合や、端末100Bまたは端末100Cからトランザクションデータを受信したことなど、トランザクションが発生したこと基づいて開始される。
【0040】
この例では、患者X1と医者Y1との間で発生したトランザクションとして、
図6に示す1~3のトランザクションがこの順番に発生した場合を例に、それぞれに対応するトランザクションデータを登録する場合について説明する。なお、患者X1のハッシュチェーンの土台情報であるインデックス値「0」のデータブロックが既に登録されているものとして、以下説明する。すなわち、
図3の初期登録処理が行われ、
図7(A)に示す状態となっているものとして、以下説明する。また、
図6に示す1および3に対応する内容のトランザクションデータは、患者X1の端末100Bから受信し、
図6に示す2に対応する内容のトランザクションデータは、医者Y1の端末100Cから受信するものとする。さらに、当該患者X1のハッシュチェーンで連結された各データブロックに含まれるデータは、患者X1および医者Y1など、患者X1が承認した者のみが登録および参照可能であるものとする。
【0041】
なお、
図6に示す1~3に対応するトランザクションデータを登録することから、当該データブロック登録処理は、3回実行される。さらに、患者X1の個人情報には、例えば、身長、体重、年齢、血圧、病歴などといった情報が含まれ、医者Y1の治療行為には、例えば、症状と診察内容、処方した薬の内容などの情報(カルテに記入される内容を示す情報)が含まれ、これらの内容がトランザクションデータ(登録データ)としてデータブロックに登録されるものとする。また、各データブロックに格納されるハッシュ値には、ハッシュチェーン1として連結されているかハッシュチェーン2として連結されているのかを識別可能な情報が含まれていてもよい。また、ハッシュチェーン1用のハッシュ値、ハッシュチェーン2用のハッシュ値、といったように予めそれぞれのハッシュ値を登録する領域をデータブロック内に設けてもよい。この実施の形態では、データブロック内に予めハッシュチェーン1用のハッシュ値とハッシュチェーン2用のハッシュ値とを登録するための領域が設けられており、登録データが個人情報の場合には、ハッシュチェーン1用のハッシュ値の領域にのみハッシュ値が登録されることとなる。
【0042】
図4に示すデータブロック登録処理を開始すると、情報処理装置100は、まず、同期処理部122の機能により、当該情報処理装置100における対象のハッシュチェーンと、他の情報処理装置100における対象のハッシュチェーンとが、同期しているか否かを判定する(ステップS201)。具体的に、この例におけるステップS201の処理では、各属性のハッシュチェーン111のうち、患者X1のハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値が、当該内容のデータを共有する他の全ての情報処理装置100に記憶されたものと同一であるか否かを判定することで、同期しているか否かを判定する。
【0043】
図7(A)に示す例を用いて説明すると、当該情報処理装置100(トランザクションデータを受信した情報処理装置100のことをいう、以下同様)の患者X1のハッシュチェーンには、インデックス値「0」のデータブロックが最新のデータブロックとして登録されている。ステップS201の処理では、インデックス値「0」と、当該インデックス値「0」に対応するデータブロック(データブロック#0)に格納されているハッシュチェーン1のハッシュ値およびハッシュチェーン2のハッシュ値(この状態ではいずれも同一の値)が、他の全ての情報処理装置100に記憶されているものと一致するか否かを判定することで、同期しているか否かを判定する。
【0044】
例えば、インデックス値「1」に対応するデータブロックが記憶されている情報処理装置100が存在する場合には、当該情報処理装置100に記憶されている患者X1の属性のハッシュチェーンの情報が古いと判定する。一方、X1の属性のハッシュチェーンが記憶されていない情報処理装置100が存在する場合には、その情報処理装置100に記憶されている情報が古いと判定する。なお、データブロック登録処理を実行した情報処理装置100にインデックス値「N」と、当該「データブロック#N」にハッシュチェーン1およびハッシュチェーン2のそれぞれハッシュ値が格納されている場合に、インデックス値「N-1」と、当該「データブロック#N-1」にハッシュチェーン1およびハッシュチェーン2のそれぞれハッシュ値が格納されている情報処理装置100が存在する場合には、その情報処理装置100に記憶されている情報が古いと判定する。なお、インデックス値が同一であるにも関わらず、ハッシュチェーン1同士のハッシュ値、またはハッシュチェーン2同士のハッシュ値が一致しない場合には、異常と判定して当該データブロック登録処理を終了してもよい。
【0045】
図4に戻り、同期していない場合(ステップS201;No)、すなわち、インデックス値、ハッシュチェーン1のハッシュ値およびハッシュチェーン2のハッシュ値のいずれかが一致していない場合、情報処理装置100は、同期処理部122の機能により、最新のハッシュチェーンの内容を、古いと判定したハッシュチェーンが登録されている情報処理装置100へコピーする同期処理を実行する(ステップS202)。なお、ステップS202の処理では、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)コピーしてもよい。
【0046】
図4に戻り、ステップS201にて同期していると判定した場合(ステップS201;Yes)、またはステップS202の処理を実行した場合、情報処理装置100は、データブロック登録部123の機能により、今回登録するトランザクションデータ(登録データ)が個人情報であるか否かを判定する(ステップS203)。個人情報であるか否かについては、例えば、予め個人情報を示すデータの一覧を記憶部110に記憶しておき、当該記憶されたデータと比較することで判定してもよい。また、トランザクションを発生させる際に、トランザクションデータ内(登録データ内)に個人情報であるか否かを示すデータを含め、当該受信したトランザクションデータに、そのデータが含まれているか否かにより判定してもよい。この実施の形態では、トランザクションデータ内に個人情報であるか否かを示すデータが含まれているものとし、ステップS203では、当該データが含まれているか否かを判定することで、個人情報であるか否かを判定する。
【0047】
図6に示す1に対応する内容のトランザクションデータを登録する場合、
図4のステップS203にて個人情報であることを示すデータが含まれていると判定される。ステップS203にて個人情報であると判定した場合(ステップS203;Yes)、情報処理装置100は、データブロック登録部123の機能により、対象のハッシュチェーンである患者X1のハッシュチェーンのうち、ハッシュチェーン1にのみ連結されるデータブロックとして、当該個人情報を登録データとして含むデータブロックを追加する(ステップS204)。
【0048】
通常、新たなデータブロック(第mのデータブロック)をハッシュチェーンに追加する場合、登録データ(トランザクションデータ)と、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)のハッシュ値(256ビット)をデータブロックに格納し、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)に連結する。この実施の形態におけるステップS204では、インデックス値「0」のハッシュ値である、ハッシュチェーン1のハッシュ値とハッシュチェーン2のハッシュ値のうち、ハッシュチェーン1のハッシュ値を、個人情報(登録データ1)とともに「データブロック#1」に格納し、インデックス値「0」の「データブロック#0」と連結する(
図7(B)参照)。
【0049】
図4に戻り、ステップS204の処理により患者X1の個人情報が登録データ1として「データブロック#1」に格納され、「データブロック#0」に連結されると、情報処理装置100は、同期処理部122の機能により、ステップS204にてデータブロックを追加した属性のハッシュチェーンを他の情報処理装置100へ登録することにより、当該情報処理装置100と他の情報処理装置100とを同期してから(ステップS208)、データブロック登録処理を終了する。これにより、
図6に示す1に対応する内容のトランザクションデータの登録が終了することとなり、全ての情報処理装置100における患者X1のハッシュチェーンの状態が
図7(B)に示す状態となる。なお、ステップS208の処理では、当該情報処理装置100における患者X1のハッシュチェーンを、他の情報処理装置100の記憶部110における各属性のハッシュチェーン111へコピーする。なお、ステップS208の処理では、ステップS202の処理と同様に、患者X1のハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)コピーしてもよい。なお、当該データブロック登録処理は、登録すべきトランザクションデータの数分繰り返し実行される。
【0050】
次に、
図6に示す2に対応する内容のトランザクションデータを登録する場合(すなわち、
図7(B)の状態から
図8(C)の状態となる場合)について説明する。この場合、再度実行された
図4のデータブロック登録処理におけるステップS203において(ステップS201およびS202については上述したとおりである)、登録データに個人情報であることを示すデータが含まれていないと判定される。ステップS203にて個人情報でないと判定した場合(ステップS203;No)、情報処理装置100は、データブロック登録部123の機能により、今回登録するトランザクションデータ(登録データ)が削除処理を行うことを示す削除処理データであるか否かを判定する(ステップS205)。削除処理データであるか否かは、トランザクションデータ(登録データ)に削除処理を行うことを示すデータが含まれていればよく、ステップS205では、当該データが含まれているか否かを判定することで、削除処理データであるか否かを判定すればよい。なお、登録データが個人情報であるか否か、削除処理データであるか否か、については、例えば、データ種別が「01」であれば個人情報、「02」であれば削除処理データ、「03」であればいずれでもない、など予め定められたデータ種別(コード)によりいずれの種類の登録データであるかを判定してもよい。
【0051】
図6に示す2に対応する内容のトランザクションデータを登録する場合、ステップS205にて削除処理を行うことを示すデータが含まれていないと判定される。
図4のステップS205にて登録データが削除処理データでないと判定した場合(ステップS205;No)、情報処理装置100は、データブロック登録部123の機能により、ステップS204とは異なり、対象のハッシュチェーンである患者X1のハッシュチェーンのうち、ハッシュチェーン1およびハッシュチェーン2の両方に連結されるデータブロックとして、当該トランザクションデータ(登録データ2)を含むデータブロックを追加する(ステップS206)。
【0052】
具体的に、ステップS206では、まず、患者X1のハッシュチェーンを確認し(
図7(B)の状態を確認し)、現在の末尾(1つ前)のインデックス値が「1」であると認定する。なお、ハッシュチェーン1で連結されたデータブロックとハッシュチェーン2で連結されたデータブロックのうち、インデックスの最大値を患者X1のハッシュチェーンの末尾として判断すればよい。末尾のインデックス値が「1」であることから、情報処理装置100は、「データブロック#2」のデータブロックを生成する。ここで、ハッシュチェーン1で連結されているデータブロックの末尾は「データブロック#1」である一方で、ハッシュチェーン2で連結されているデータブロックの末尾は「データブロック#0」である。そのため、ステップS206では、「データブロック#2」のデータブロックに、ハッシュチェーン1では「データブロック#1」と連結されるよう、ハッシュチェーン2では「データブロック#2」と連結されるよう、登録データ2とともにそれぞれのハッシュ値を格納する。
【0053】
すなわち、「データブロック#2」には、登録データ2とともに、ハッシュチェーン1のハッシュ値として、「データブロック#1」に基づくハッシュ値が格納され、ハッシュチェーン2のハッシュ値として、「データブロック#0」に基づくハッシュ値が格納される。なお、これらのハッシュ値は互いに相違する値となっている。これにより、
図8(C)に示すように「データブロック#2」として、「データブロック#0」、「データブロック#1」および「データブロック#2」で連結されたハッシュチェーン1と、「データブロック#0」および「データブロック#2」で連結されたハッシュチェーン2とを含む患者X1のハッシュチェーンが登録されることとなる。
【0054】
ステップS206の処理を実行した後、情報処理装置100は、同期処理部122の機能により、ステップS206にてデータブロックを追加した属性のハッシュチェーンを他の情報処理装置100へ登録することにより、当該情報処理装置100と他の情報処理装置100とを同期してから(ステップS208)、データブロック登録処理を終了する。これにより、
図6に示す2に対応する内容のトランザクションデータの登録が終了することとなり、全ての情報処理装置100における患者X1のハッシュチェーンの状態が
図8(C)に示す状態となる。
【0055】
次に、
図6に示す3に対応する内容のトランザクションデータを登録する場合(すなわち、
図8(C)の状態から
図8(D)および
図9(E)の状態となる場合)について説明する。この場合、再度実行された
図4のデータブロック登録処理におけるステップS205において(ステップS201およびS202については上述したとおりである)、登録データに削除処理データであることを示すデータが含まれていると判定される。ステップS205にて登録データが削除処理データであると判定した場合(ステップS205;Yes)、情報処理装置100は、データブロック登録部123および削除処理部125の機能により、削除処理を実行する(ステップS207)。
【0056】
図5は、
図4のステップS207にて実行する削除処理の一例を示すフローチャートである。
図5に示す削除処理において、情報処理装置100は、データブロック登録部123の機能により、ステップS206の処理と同様、対象のハッシュチェーンである患者X1のハッシュチェーンのうち、ハッシュチェーン1およびハッシュチェーン2の両方に連結されるデータブロックとして、当該削除処理データを含むデータブロックを追加する(ステップS301)。
【0057】
ステップS301では、患者X1のハッシュチェーンの現在の末尾(1つ前)のインデックス値が「2」であることから、「データブロック#3」のデータブロックを生成する。そして、ハッシュチェーン1およびハッシュチェーン2で連結されているデータブロックの末尾がいずれも「データブロック#2」であるため、「データブロック#3」には、削除処理データとともに、ハッシュチェーン1のハッシュ値として、「データブロック#2」に基づくハッシュ値が格納されるとともに、ハッシュチェーン2のハッシュ値としても「データブロック#2」に基づくハッシュ値が格納される。これにより、
図8(D)に示すように「データブロック#3」として、「データブロック#0」、「データブロック#1」、「データブロック#2」、および「データブロック#3」で連結されたハッシュチェーン1と、「データブロック#0」、「データブロック#2」、および「データブロック#3」で連結されたハッシュチェーン2とを含む患者X1のハッシュチェーンが登録されることとなる。
【0058】
図5のステップS301の処理を実行した後、情報処理装置100は、削除処理部125の機能により、ハッシュチェーン1で連結されたデータブロックと、ハッシュチェーン2で連結されたデータブロックのうち、ハッシュチェーン2で連結されたデータブロックに格納されたデータを参照対象として設定情報を更新することで、ハッシュチェーン2を参照用に設定する(ステップS302)。具体的に、ステップS302では、
図8(D)に示す患者X1のハッシュチェーンについて、ハッシュチェーン2で連結された「データブロック#0」、「データブロック#2」、および「データブロック#3」の内容が参照対象となる。
【0059】
ステップS302の処理を実行した後、情報処理装置100は、削除処理部125の機能により、ハッシュチェーン1でのみ連結されたデータブロックを削除する(ステップS303)。具体的に、ステップS303では、
図8(D)に示す患者X1のハッシュチェーンにおけるハッシュチェーン1でのみ連結されたデータブロック1を削除する。なお、ハッシュチェーン1でのみ連結されたデータブロックであるか否かは、例えば、ハッシュチェーン1で連結されたデータブロックとハッシュチェーン2で連結されたデータブロックとの差により特定してもよいし、ハッシュ値を参照することにより特定してもよい。これにより、
図9(E)に示すように、個人情報が格納された「データブロック#1」が削除される。これにより、患者X1のハッシュチェーンは、ハッシュチェーン2で連結されたデータブロックのみとなる(ハッシュチェーン1における連結は解消される)。
【0060】
図5のステップS303の処理を実行した後、情報処理装置100は、削除処理部125の機能により、患者X1のハッシュチェーン(より具体的には、患者X1のハッシュチェーンに含まれるハッシュチェーン2で連結されたデータブロックの登録データ)を参照専用に設定し(ステップS304)、削除処理を終了する。ステップS304では、データブロック登録処理が再度行われたとしても、当該ハッシュチェーンにデータブロックが追加されないよう、書込み禁止の設定が行われればよい。
【0061】
図4に戻り、ステップS207の処理を実行した後、情報処理装置100は、同期処理部122の機能により、ステップS207にてデータブロックを追加および削除した属性のハッシュチェーンを他の情報処理装置100へ登録することにより、当該情報処理装置100と他の情報処理装置100とを同期してから(ステップS208)、データブロック登録処理を終了する。これにより、
図6に示す3に対応する内容のトランザクションデータの登録が終了することとなり、全ての情報処理装置100における患者X1のハッシュチェーンの状態が
図9(E)に示す状態となる。
【0062】
以上がハッシュチェーン登録装置およびデータ削除装置として機能した場合における情報処理装置100の動作である。続いて、情報処理装置100が上記のようなハッシュチェーン登録装置およびデータ削除装置として機能することにより登録または削除されたハッシュチェーンを参照する場合における参照処理について説明する。
【0063】
図10は、参照処理の一例を示すフローチャートである。
図10に示す参照処理は、患者X1による端末100Bからの参照要求や、医者Y1による端末100Cからの参照要求を受信することにより開始する。なお、参照要求には、各例えば、患者X1のハッシュチェーンなどといったように、各属性のハッシュチェーン111のうち、参照対象のハッシュチェーンを特定する情報が含まれている。この例では、上記の例と同様に、患者X1のハッシュチェーンについての参照要求を受信した場合を例に説明する。
【0064】
参照処理を開始すると、情報処理装置100は、データ参照部124の機能により、参照用として設定されているハッシュチェーンがハッシュチェーン1であるか否かを判定する(ステップS401)。具体的に、
図3に示す初期登録処理が実行された後は、
図5に示す削除処理が実行されるまでの間、参照用として設定されているハッシュチェーンはハッシュチェーン1であり、
図5に示す削除処理が実行されることで、参照用として設定されているハッシュチェーンがハッシュチェーン2変更される。ステップS401は、記憶部110に記憶されている設定情報を参照することで、参照用として設定されているハッシュチェーンがハッシュチェーン1であるか否かを判定する。
【0065】
図5に示す削除処理が実行される前、例えば、
図8(C)に示す状態において参照処理が実行された場合、
図10のステップS401では、参照用として設定されているハッシュチェーンがハッシュチェーン1であると判定される。ステップS401にてハッシュチェーン1と判定した場合(ステップS401;Yes)、情報処理装置100は、データ参照部124の機能により、ハッシュチェーン1で連結されたデータブロックに含まれる登録データを要求元の端末に表示し(ステップS402)、参照処理を終了する。具体的に、ステップS402の処理が実行されることにより、ハッシュチェーン1で連結された「データブロック#0」、「データブロック#1」、「データブロック#2」、および「データブロック#3」のデータブロックに含まれる登録データ1および2(初期データについては表示されてもされなくてもよい)が、要求元の端末に表示されることとなる。
【0066】
続いて、
図5に示す削除処理が実行された後、例えば、
図9(E)に示す状態において参照処理が実行された場合について説明する。この場合、
図10のステップS401にて、参照用として設定されているハッシュチェーンがハッシュチェーン2であると判定される。ステップS401にてハッシュチェーン2と判定した場合(ステップS401;No)、情報処理装置100は、データ参照部124の機能により、ハッシュチェーン2で連結されたデータブロックに含まれる登録データを要求元の端末に表示し(ステップS403)、参照処理を終了する。具体的に、ステップS403の処理が実行されることにより、ハッシュチェーン2で連結された「データブロック#0」、「データブロック#2」、および「データブロック#3」のデータブロックに含まれる登録データ2(初期データについては表示されてもされなくてもよい)が、要求元の端末に表示されることとなる。
【0067】
このように、
図5に示す削除処理が実行される前後で、参照対象となるデータブロックが異なるようになっており、削除処理が実行された後では、個人情報を含まないデータブロックのみが連結されたハッシュチェーンが参照対象となるように変更される(ハッシュチェーン1で連結されたデータブロックからハッシュチェーン2で連結されたデータブロックへ参照対象が変更される)。したがって、個人情報を参照不可能な状態にすることができ、ブロック上に格納されたデータの利便性を向上させることができる。また、これに伴い、ハッシュチェーン1のみで連結されたデータブロックについては、すなわち、個人情報が格納されたデータブロックについては、削除される。したがって、個人情報の削除権を保障することができ、ブロック上に格納されたデータの利便性を向上させることができる。
【0068】
(変形例)
なお、この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、情報処理装置100では、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも1つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせてもよい。
【0069】
上記実施の形態では、理解を容易にするため、
図6に示す1~3のみのトランザクションを例に、それぞれに対応するトランザクションデータを登録する場合の例を説明したが、これは一例である。例えば、
図6に示す3の「削除」のトランザクションの前に、複数のトランザクションが発生することが一般的であり、具体的に、体重や血圧などの個人情報や、症状と診察内容、処方した薬の内容などの治療行為を示す情報(治療行為を示す登録データ)などは、複数回登録されることとなる。この場合には、
図4に示すデータブロック登録処理にて個人情報である場合にはステップS204の処理にてハッシュチェーン1に連結したデータブロックに格納し、個人情報でなく治療行為を示す登録データであれば、ステップS206の処理にてハッシュチェーン1およびハッシュチェーン2の両方に連結したデータブロックに格納すればよい。
【0070】
また、上記実施の形態では、
図5の削除処理におけるステップS303にてハッシュチェーン1でのみ連結されたデータブロックを削除する例を示したが、当該データブロックを削除する際に、当該データブロックに含まれる、個人情報を登録した時のタイムスタンプを、ハッシュチェーン2で連結された新たなデータブロックに格納するようにしてもよい。これによれば、何らかのデータ(削除対象のデータ)が登録されていたという証拠を残すことができる。
【0071】
また、上記実施の形態では、
図5の削除処理におけるステップS304の処理において、対象のハッシュチェーンを参照専用とする例を示したが、これは一例である。ステップS304の処理は実行しなくてもよい。この場合、例えば、
図9(E)に示すように、ハッシュチェーン2のみで連結されることから、個人情報のみ登録禁止とし、治療行為を示す情報については継続して登録可能としてもよい。そして、個人情報が登録される場合には、削除ができない旨を注意喚起として表示するようにしてもよい。
【0072】
また、上記実施の形態では、患者X1のハッシュチェーンにハッシュチェーン1とハッシュチェーン2が含まれる例を示したが、これは一例である。これに加え、例えばハッシュチェーン3がさらに含まれていてもよい。この場合、ハッシュチェーン3を予備のハッシュチェーンとし、
図9(E)に示すように、ハッシュチェーン1における連結が解消された際に、現状のハッシュチェーン2を元のハッシュチェーン1と同様に用いるようにし、ハッシュチェーン3を元のハッシュチェーン2と同様にして用いるようにしてもよい。具体的に、予備のハッシュチェーン3は、ハッシュチェーン1が削除されるまで、ハッシュチェーン2と同じ連結先となるようにデータブロックを登録すればよく(ハッシュチェーン3はハッシュチェーン2のコピー)、ハッシュチェーン1が削除された場合に、ハッシュチェーン2とハッシュチェーン3が、上述したハッシュチェーン1とハッシュチェーン2と同様の関係(削除前の両ハッシュチェーンの関係)になればよく、ハッシュチェーン3には個人情報が連結されないようにすればよい。そして、ハッシュチェーン1が削除された後、再度
図5に示す削除処理が実行された場合に、ステップS302の処理にてハッシュチェーン3を参照用として設定し、ステップS303の処理にてハッシュチェーン2でのみ連結されたデータブロックを削除すればよい。これによれば、一旦個人情報を削除し、ハッシュチェーンによる連結を解消した後であっても、個人情報や治療行為を示す登録データのデータブロックへの登録を、引き続き行うことができばかりでなく、その後に個人情報を再度削除することが可能となり、ブロック上に格納されたデータの利便性をさらに向上させることができる。
【0073】
また、ハッシュチェーン1とハッシュチェーン2のうち、ハッシュチェーン1を削除する際(すなわち
図5のステップS303の処理を実行した際)に、ハッシュチェーン1で連結されていたデータブロック(削除されたデータブロックは除く)を、ハッシュチェーン3で連結されたデータブロックにコピーすることで、ハッシュチェーン3で連結されたデータブロックを新たに作成するようにしてもよい。その上で、ハッシュチェーン2とハッシュチェーン3が上述したハッシュチェーン1とハッシュチェーン2と同様の関係になればよく、ハッシュチェーン3には個人情報が連結されないようにすればよい。すなわち、
図5に示す削除処理を実行する度に、削除後に残ったデータブロックを新たなデータブロックへコピーし、新たなハッシュチェーンで連結するようにしてもよい。これによれば、一旦個人情報を削除し、ハッシュチェーンによる連結を解消した後であっても、一旦その属性のハッシュチェーンを作成すれば、個人情報や治療行為を示す登録データのデータブロックへの登録および削除を、引き続き行うことができ、ブロック上に格納されたデータの利便性をさらに向上させることができる。
【0074】
また、上記実施の形態では、患者X1と医者Y1との間の治療行為を示す登録データをデータブロックに登録する例を示したが、これは一例である。例えば、他の病院の医者Z1による患者X1に対する治療行為を示す登録データついても、患者X1のハッシュチェーンで連結されたデータブロックに登録可能であるなど、患者1人に対し複数の医者により登録データが登録可能であってよい(参照についても同様)。これによれば、複数の医者の間で、過去の治療行為の内容や症状、投与した薬の内容などの共有が可能となり、治療行為を好適に行うことができる。なお、この場合、医者Z1について、患者X1が登録および参照を承認すればよい。承認については、当該医者Z1に対し、書き込みおよび参照の権限を与える処理を実行すればよく、その方法は任意であってよい。
【0075】
また、例えば、患者X1の承諾に基づいて、当該患者X1のハッシュチェーンを、製薬会社などの第三者に参照可能としてもよい。すなわち、患者X1は、自身の属性のハッシュチェーンで連結されたデータブロックについて、登録ではなく、参照のみ、再三者に権限を与えることも可能である。これによれば、X1に対する医者Y1などの治療行為を示す登録データを、そのまま治験データとして用いることが可能となる。
【0076】
さらに、上記実施の形態では、患者X1と医者Y1とにおける医療行為を例に、患者X1の属性のハッシュチェーンに対する登録および削除について説明したが、これは一例である。この発明は、医療行為に留まらず、契約や商取引など、様々な分野に適用可能である。例えば、
図11に示すような引っ越し手続きサービスについても適用可能である。引っ越し手続きサービスは、例えば、住民Aが引っ越した場合に、当該引っ越し先の住所をハッシュチェーンで連結されたデータブロックに登録し、管轄の役所が証明データを当該住民Aのハッシュチェーン上に連結させ、電話会社やガス会社、水道局などに参照権限を与えることで、引っ越し後における電話、ガス、水道などといった手続きを一括して行うことが可能なサービスである。
【0077】
図11は、当該引っ越し手続きサービスにおけるハッシュチェーンの登録内容の例を示す図である。
図11では、住民Aが引っ越しを行い、電話とガスの手続きを行う場合の例を示している。
図11に示すように、住民Aの属性のハッシュチェーンには、上記実施の形態と同様、ハッシュチェーン1およびハッシュチェーン2で連結されたデータブロックと、ハッシュチェーン1でのみ連結されたデータブロックとが含まれている。具体的には、図示するように「データブロック#0」、「データブロック#3」、および「データブロック#4」が両方のハッシュチェーンで連結され、「データブロック#1」~「データブロック#2」がハッシュチェーン1でのみ連結されたデータブロックである。
【0078】
「データブロック#0」は上記実施の形態と同様であり、初期データと、それぞれのハッシュチェーンのハッシュ値が登録されている。「データブロック#1」には、住民Aの個人情報としての住所データが登録される。当該住所データは、住民Aの端末から送信されればよい。「データブロック#2」には、当該住所に住民Aが住んでいることを証明する証明データが個人情報として登録される。当該証明データは、住民Aの管轄の役所の端末から送信されればよい。なお、当該引っ越し手続きサービスを利用する場合、自動的に居住管轄の役所における当該ハッシュチェーンの登録を承諾したものとみなされればよい。また、証明データは、住所データが登録されることにより、管轄の役所に対して新たな住所が登録されたことが通知され、役所の側では、それを確認することで、対象のハッシュチェーンに証明データを登録すればよい。
【0079】
「データブロック#3」は、電話会社にアクセス権があることを示すアクセス権データである。当該アクセス権データが登録されることで、電話会社が住民Aのハッシュチェーンを参照(登録も含む)することができるようになる。当該アクセス権データが登録されると、その旨が電話会社へ通知される。これにより、電話会社は住民Aのハッシュチェーンを参照して住所確認および本人確認を行うことで、住所変更手続きを行う。「データブロック#4」は、ガス会社にアクセス権があることを示すアクセス権データである。当該アクセス権データが登録されることで、ガス会社が住民Aのハッシュチェーンを参照することができるようになる。当該アクセス権データが登録されると、その旨がガス会社へ通知される。これにより、ガス会社は住民Aのハッシュチェーンを参照して住所確認および本人確認を行うことで、住所変更手続きを行う。
【0080】
なお、図示する例では、電話とガスについてのみ示しているが、水道や電気などについても同様である。また、住所変更手続きが完了した場合、当該住民Aのハッシュチェーンに、新たなデータブロックを連結して、その旨を示す情報が日時情報とともに登録データとして登録される。当該登録データは、ハッシュチェーン1およびハッシュチェーン2の両方で連結されればよい。これにより、住民Aは、各種住所変更手続きが完了したことを確認することができる。
【0081】
また、全ての住所変更手続きが完了した場合、住民Aは、
図5に示す削除処理を行うことで、ハッシュチェーン1でのみ連結されたデータブロック(住所データや証明データを含むデータブロック)を削除することができる。これによれば、個人情報を参照可能な状態を不要な時期まで継続させることなく、個人情報を適格に保護することができる。
【0082】
また、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協同により実現する場合等には、OS以外の部分のみを媒体に格納してもよい。
【0083】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【符号の説明】
【0084】
1 情報処理システム、100A 情報処理装置、100B~100C 端末、110 記憶部、111 各属性のハッシュチェーン、120 制御部、121 初期登録部、122 同期処理部、123 データブロック登録部、124 データ参照部、125 削除処理部、130 入出力部、140 通信部、210 ネットワーク