(57)【要約】      （修正有）【課題】ブロック上に格納されたデータの利便性を向上させる。【解決手段】情報処理装置は、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、トランザクションのデータを格納する。ハッシュチェーンは、第１のハッシュチェーンと、第２のハッシュチェーンとを含み、トランザクションのデータが第１の種類のデータである場合、両方のハッシュチェーンで連結されるデータブロックにデータを登録する一方、第２の種類のデータである個人情報データの場合、第１のハッシュチェーンのみで連結されるデータブロックに登録する。そして、削除される個人情報データである第３の種類のデータである場合、参照対象となるデータブロックを、第１のハッシュチェーンで連結されたデータブロックから第２のハッシュチェーンで連結されたデータブロックに変更する。【選択図】図４
2020086553.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、第１のハッシュチェーンと、第２のハッシュチェーンとを含み、
前記データ格納手段は、
前記トランザクションのデータが第１の種類のデータである場合、前記第１のハッシュチェーンと前記第２のハッシュチェーンで連結されるデータブロックに、前記第１の種類のデータを格納し、
前記トランザクションのデータが第２の種類のデータである場合、前記第１のハッシュチェーンのみで連結されるデータブロックに、前記第２の種類のデータを格納し、
前記トランザクションのデータが第３の種類のデータである場合、参照対象となるデータブロックを、前記第１のハッシュチェーンで連結されたデータブロックから前記第２のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする情報処理装置。
【請求項２】
前記トランザクションのデータが第３の種類のデータである場合、前記第１のハッシュチェーンのみで連結されたデータブロックを削除する削除処理手段を、
さらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記データ格納手段は、前記第１のハッシュチェーンで連結されたデータブロックのうち、前記削除処理手段により削除されたデータブロック以外のデータブロックに含まれる前記第１の種類のデータを、前記第１のハッシュチェーンおよび前記第２のハッシュチェーンとは異なる新たなハッシュチェーンで連結されるデータブロックに格納する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
情報処理装置における情報処理方法であって、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納ステップを備え、
前記ハッシュチェーンは、第１のハッシュチェーンと、第２のハッシュチェーンとを含み、
前記データ格納ステップでは、
前記トランザクションのデータが第１の種類のデータである場合、前記第１のハッシュチェーンと前記第２のハッシュチェーンで連結されるデータブロックに、前記第１の種類のデータを格納し、
前記トランザクションのデータが第２の種類のデータである場合、前記第１のハッシュチェーンのみで連結されるデータブロックに、前記第２の種類のデータを格納し、
前記トランザクションのデータが第３の種類のデータである場合、参照対象となるデータブロックを、前記第１のハッシュチェーンで連結されたデータブロックから前記第２のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする情報処理方法。
【請求項５】
コンピュータを、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段、として機能させ、
前記ハッシュチェーンは、第１のハッシュチェーンと、第２のハッシュチェーンとを含み、
前記データ格納手段は、
前記トランザクションのデータが第１の種類のデータである場合、前記第１のハッシュチェーンと前記第２のハッシュチェーンで連結されるデータブロックに、前記第１の種類のデータを格納し、
前記トランザクションのデータが第２の種類のデータである場合、前記第１のハッシュチェーンのみで連結されるデータブロックに、前記第２の種類のデータを格納し、
前記トランザクションのデータが第３の種類のデータである場合、参照対象となるデータブロックを、前記第１のハッシュチェーンで連結されたデータブロックから前記第２のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ビットコイン（登録商標）等の仮想通貨を用いた商取引が行われている。当該仮想通貨を用いた商取引では、中央集権的な管理を必要とせずに不正を防止するため、ブロックチェーンと呼ばれる技術が用いられている。ブロックチェーンでは、複数のトランザクションデータ、直前のハッシュ値及びその他の情報を「ブロック」として定義し、参加者全体で形成されるネットワーク内での合意形成のプロセスによって当該「ブロック」内の情報の信頼性を担保している。このようなブロックチェーンの技術は、仮想通貨の商取引にとどまらず、ヘルスケア、保険など、様々な分野に採用されはじめている。しかしながら、このようなブロックチェーンの技術は、登録された情報を改変・削除できないという利点を持つが、個人情報の削除権を保障するといった点で矛盾が生じてしまう問題がある。
【０００３】
そこで、例えば非特許文献１には、このような問題に対応するための手法が開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】” 矛盾するブロックチェーンとGDPR...「削除不可能性」を巡り欧州フィンテック界が混乱”、［Online］、［平成30年10月30日検索］、インターネット<URL：https://roboteer-tokyo.com/archives/12815/2>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１に開示されている手法では、現実性に乏しいことや欠点が残ってしまうなどの様々な問題点があり、未だ改善の余地があった。すなわち、ブロック上に格納されたデータの利便性向上という観点からすると未だ十分ではなかった。
【０００６】
本発明は、上述のような事情に鑑みてなされたものであり、ブロック上に格納されたデータの利便性を向上させることができる情報処理装置、情報処理方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点に係る情報処理装置は、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、第１のハッシュチェーンと、第２のハッシュチェーンとを含み、
前記データ格納手段は、
前記トランザクションのデータが第１の種類のデータである場合、前記第１のハッシュチェーンと前記第２のハッシュチェーンで連結されるデータブロックに、前記第１の種類のデータを格納し、
前記トランザクションのデータが第２の種類のデータである場合、前記第１のハッシュチェーンのみで連結されるデータブロックに、前記第２の種類のデータを格納し、
前記トランザクションのデータが第３の種類のデータである場合、参照対象となるデータブロックを、前記第１のハッシュチェーンで連結されたデータブロックから前記第２のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする。
【０００８】
前記トランザクションのデータが第３の種類のデータである場合、前記第１のハッシュチェーンのみで連結されるデータブロックを削除する削除処理手段を、
さらに備えるようにしてもよい。
【０００９】
前記データ格納手段は、前記第１のハッシュチェーンで連結されたデータブロックのうち、前記削除処理手段により削除されたデータブロック以外のデータブロックに含まれる前記第１の種類のデータを、前記第１のハッシュチェーンおよび前記第２のハッシュチェーンとは異なる新たなハッシュチェーンで連結されるデータブロックに格納する、
ようにしてもよい。
【００１０】
上記目的を達成するため、本発明の第２の観点に係る情報処理方法は、
情報処理装置における情報処理方法であって、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納ステップを備え、
前記ハッシュチェーンは、第１のハッシュチェーンと、第２のハッシュチェーンとを含み、
前記データ格納ステップでは、
前記トランザクションのデータが第１の種類のデータである場合、前記第１のハッシュチェーンと前記第２のハッシュチェーンで連結されるデータブロックに、前記第１の種類のデータを格納し、
前記トランザクションのデータが第２の種類のデータである場合、前記第１のハッシュチェーンのみで連結されるデータブロックに、前記第２の種類のデータを格納し、
前記トランザクションのデータが第３の種類のデータである場合、参照対象となるデータブロックを、前記第１のハッシュチェーンで連結されたデータブロックから前記第２のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする。
【００１１】
上記目的を達成するため、本発明の第３の観点に係るプログラムは、
コンピュータを、
トランザクションが発生したことに基づいて、ネットワーク内に構築される所定のハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段、として機能させ、
前記ハッシュチェーンは、第１のハッシュチェーンと、第２のハッシュチェーンとを含み、
前記データ格納手段は、
前記トランザクションのデータが第１の種類のデータである場合、前記第１のハッシュチェーンと前記第２のハッシュチェーンで連結されるデータブロックに、前記第１の種類のデータを格納し、
前記トランザクションのデータが第２の種類のデータである場合、前記第１のハッシュチェーンのみで連結されるデータブロックに、前記第２の種類のデータを格納し、
前記トランザクションのデータが第３の種類のデータである場合、参照対象となるデータブロックを、前記第１のハッシュチェーンで連結されたデータブロックから前記第２のハッシュチェーンで連結されたデータブロックに変更する、
ことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ブロック上に格納されたデータの利便性を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る情報処理システムの一例を示すブロック図である。
【図２】本発明の実施形態に係る情報処理装置の一例を示すブロック図である。
【図３】初期登録処理の一例を示すフローチャートである。
【図４】データブロック登録処理の一例を示すフローチャートである。
【図５】削除処理の一例を示すフローチャートである。
【図６】発生したトランザクションの一例を示す図である。
【図７】ハッシュチェーンの登録内容の例を示す図である。
【図８】ハッシュチェーンの登録内容の例を示す図である。
【図９】ハッシュチェーンの登録内容の例を示す図である。
【図１０】参照処理の一例を示すフローチャートである。
【図１１】変形例におけるハッシュチェーンの登録内容の例を示す図である。
【発明を実施するための形態】
【００１４】
本発明における情報処理装置１００を、図１に示す情報処理システム１に適用した例を用いて説明する。情報処理システム１では、図１に示すように、情報処理装置１００Ａ（情報処理装置１００Ａを単に情報処理装置１００ともいう）、患者Ｘ１の端末１００Ｂ、医者Ｙ１の端末１００Ｃのそれぞれがネットワーク２１０を介して通信可能に接続されている。患者Ｘ１の端末１００Ｂ、医者Ｙの端末１００Ｃは、それぞれ情報処理装置１００としても機能することが可能であるが、理解を容易にするため、この実施の形態では、これらを情報処理装置１００と区別して説明する。また、情報処理装置１００Ａは、他の情報処理装置１００とネットワークを介して通信可能に接続されている（図示省略）。
【００１５】
情報処理装置１００は、携帯電話やスマートフォン、タブレットやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報端末であり、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）等の分散型のネットワーク２１０を構築している。なお、情報処理システム１は、Ｐ２Ｐ型のシステムに限られず、例えばクラウドコンピューティング型であってもよい。
【００１６】
情報処理装置１００は、例えば、患者Ｘ１の個人情報や、医者Ｙ１が患者Ｘ１に行った治療行為を示す情報（トランザクションデータ）をネットワーク２１０から受信したことに基づいて、新たなデータブロックを生成して当該受信データを格納し、既存のハッシュチェーンに連結する、ハッシュチェーン登録装置として機能する。なお、上述したように、端末１００Ｂおよび１００Ｃが情報処理装置１００として機能することもあることから、情報処理装置１００は、トランザクションデータを生成し、ネットワーク２１０へ配信する機能を有するトランザクション生成装置として機能することもある。ハッシュチェーン登録装置にて登録された内容は、ネットワーク２１０を介して、各情報処理装置１００（図示省略）で共有される。また、通常、一定数のトランザクションデータが一つのデータブロックに格納される（一定数のトランザクションデータをひとまとめにして一つのデータブロックに格納する）が、この実施の形態では、理解を容易にするため、一つのトランザクションデータが一つのデータブロックに格納されるものとする。
【００１７】
この実施の形態において、トランザクション生成装置としての機能により生成されたトランザクションデータは、データブロックと呼ばれる一つの単位に格納され、当該データブロックを時系列に連結したハッシュチェーンによって管理される。具体的に、トランザクションデータは、ハッシュチェーン登録装置としての機能により、新たに生成されたデータブロックに格納された後、既存のハッシュチェーンに連結され、各情報処理装置１００（端末１００Ｂや１００Ｃ、その他の情報処理装置を含む）で共有される。この実施の形態では、登録対象のトランザクションデータの種類によって、連結されるデータブロックが異なっている。
【００１８】
例えば、新たなトランザクションデータが配信されると、ハッシュチェーン登録装置の機能により、当該トランザクションデータについての検証を行い、新たなデータブロック（第ｎのデータブロック）を生成する。そして、当該トランザクションデータに個人情報が含まれている場合、現在のハッシュチェーンの末尾のデータブロック（第ｎ−１のデータブロック）のハッシュ値（２５６ビット）とともに、新たなデータブロック（第ｎのデータブロック）に格納する（ハッシュチェーン１）。一方、当該トランザクションデータに個人情報が含まれていない場合、個人情報を含まないデータブロック（第ｎ−１のデータブロックに個人情報が格納されている場合、第ｎ−２のデータブロック）のハッシュ値（２５６ビット）と、現在のハッシュチェーンの末尾のデータブロック（第ｎ−１のデータブロック）のハッシュ値（２５６ビット）とともに、新たなデータブロック（第ｎのブロック）に格納する。これにより、トランザクションデータがデータブロックに格納され、ハッシュチェーンにより時系列に管理されることとなる。すなわち、詳しくは後述するが、個人情報を含むトランザクションデータの場合には、トランザクションデータが一つのハッシュ値とともに格納されるため、当該データブロックは、一つのハッシュチェーンにて連結されることとなる。その一方で、個人情報を含まないトランザクションデータの場合、トランザクションデータが二つのハッシュ値とともに格納されるため、当該データブロックは、二つのハッシュチェーンにて連結されることとなる。したがって、この実施の形態では、一連のデータブロックについて、個人情報を含むデータブロックを連結したハッシュチェーン１と、個人情報を含まないデータブロックを連結したハッシュチェーン２とが存在することとなる。
【００１９】
また、この実施の形態における情報処理装置１００は、各属性のハッシュチェーン１１１に含まれるデータブロックから、ユーザの所望する登録データ（個人情報など）を削除するデータ削除装置としても機能する。
【００２０】
この実施の形態における情報処理装置１００のデータ削除装置としての機能は、ユーザによる指定に基づき、削除データを新たなデータブロックに登録して個人情報などのデータを含むデータブロックを削除する機能である。具体的には、上述した二つのハッシュチェーンについて、参照用として設定されたハッシュチェーンを変更するとともに（例えば、参照用としてハッシュチェーン１が設定されている場合には、ハッシュチェーン２を参照用として変更し）、元のハッシュチェーンのみ（ハッシュチェーン１のみ）で連結されたデータブロックを削除することで、個人情報を削除する機能である。
【００２１】
次に、図２を参照し、この実施の形態における情報処理装置１００の構成について説明する。なお、図示する例では、情報処理装置１００Ａを例としているが、端末１００Ｂおよび端末１００Ｃが情報処理装置１００として機能する場合についても同様であるため、説明は省略する。なお、図示は省略しているが、トランザクション生成装置としての機能を有する機能部が設けられていてもよい。
【００２２】
図２に示すように、情報処理装置１００Ａ（以下、情報処理装置１００）は、記憶部１１０と、制御部１２０と、入出力部１３０と、通信部１４０と、これらを相互に接続するシステムバス（図示省略）と、を備えている。
【００２３】
記憶部１１０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ)やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を備える。ＲＯＭは制御部１２０のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が実行するプログラム及び、プログラムを実行する上で予め必要なデータを記憶する（図示省略）。具体的に、この実施の形態では、当該情報処理装置１００を、ハッシュチェーン登録装置およびデータ削除装置として機能させるためのプログラムが、予めインストールされている。ＲＡＭは、プログラム実行中に作成されたり変更されたりするデータを記憶する。記憶部１１０は、制御部１２０が実行するプログラムが用いる主要な情報として、各属性のハッシュチェーン１１１を記憶する。
【００２４】
なお、この実施の形態では、理解を容易にするため、各属性のハッシュチェーン１１１が患者Ｘ１のハッシュチェーンのみである場合を例として以下説明するが、その他にも、例えば、患者Ｘ２や患者Ｘ３のハッシュチェーンが記憶部１１０に記憶される。各属性のハッシュチェーン１１１は、後述するデータブロック登録処理にて当該記憶部１１０に記憶され、後述する参照処理により、ハッシュチェーンが指定された場合に参照される。
【００２５】
制御部１２０は、ＣＰＵやＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等から構成される。制御部１２０は、記憶部１１０に記憶されたプログラムに従って動作し、当該プログラムに従った処理を実行する。制御部１２０は、記憶部１１０に記憶されたプログラムにより提供される主要な機能部として、初期登録部１２１と、同期処理部１２２と、データブロック登録部１２３と、データ参照部１２４と、削除処理部１２５と、を備える。
【００２６】
初期登録部１２１は、ユーザの入出力部１３０に対する操作や、通信部１４０を介して受信した要求に基づいて、新たな属性のハッシュチェーンを生成するために必要な初期情報（初期データ）を登録する機能を実現する機能部である。詳しくは後述するが、初期登録部１２１は、例えば、患者Ｘ１の属性のハッシュチェーンを生成するために必要な初期情報として、属性情報、患者Ｘ１のアドレス、インデックス値などを登録する機能（すなわち、後述するハッシュチェーンの土台情報を登録する機能）を有している。
【００２７】
同期処理部１２２は、当該情報処理装置１００に記憶された各属性のハッシュチェーンと、他の情報処理装置１００に記憶された各属性のハッシュチェーンとを同期する機能を実現する機能部である。同期処理部１２２は、後述するデータブロック登録処理にてトランザクションデータを当該情報処理装置１００におけるデータブロックに登録する前と後に、他の情報処理装置１００と同期する機能を有している。また、同期処理部１２２は、後述する初期登録処理において他の情報処理装置１００へ、ハッシュチェーンの土台情報を同期させる機能を有している。
【００２８】
データブロック登録部１２３は、発生したトランザクションのトランザクションデータを含むデータブロックを、当該情報処理装置１００の各属性のハッシュチェーン１１１のうち、対応する属性のハッシュチェーンに追加する機能を実現する機能部である。詳しくは後述するが、データブロック登録部１２３は、例えば、患者Ｘ１の個人情報などを登録する場合や、患者Ｘ１に対して治療が行われた場合に、患者Ｘ１のハッシュチェーンに、当該個人情報（トランザクションデータ）や当該治療行為を示す情報（トランザクションデータ）を、それぞれ新たなデータブロックとして登録する機能を有している。なお、データブロック登録部１２３は、削除データを新たなデータブロックに登録する機能も有している。
【００２９】
データ参照部１２４は、ユーザの指定に基づく属性のハッシュチェーン１１１に含まれるハッシュチェーン１とハッシュチェーン２のうち、参照用として設定された方のハッシュチェーンで連結されたデータブロックに登録された登録データを表示させる機能を実現する機能部である。なお、参照用として設定されたハッシュチェーンがハッシュチェーン１とハッシュチェーン２のいずれであるかを示す設定情報が記憶部１１０に記憶されてもよいし、通常時はハッシュチェーン１を参照用として設定し、削除データがデータブロックに登録されている場合にのみハッシュチェーン２を参照用としてもよい。この実施の形態では、記憶部１１０に設定情報が記憶されているものとする。
【００３０】
削除処理部１２５は、削除データが新たなデータブロックに登録されたことに基づいて、参照用のハッシュチェーンを、設定情報を更新して変更するとともに、変更前のハッシュチェーンでのみ連結されたデータブロックを削除する機能を実現する機能部である。
【００３１】
これら各機能部が協働して、当該情報処理装置１００をハッシュチェーン登録装置およびデータ削除装置として機能させる。
【００３２】
入出力部１３０は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等から構成され、データの入出力を行うための装置である。
【００３３】
通信部１４０は、他の情報処理装置１００（図示省略）や端末１００Ｂおよび端末１００Ｃとネットワーク２１０を介して通信を行うためのデバイスである。
【００３４】
以上が、情報処理装置１００の構成である。続いてハッシュチェーン登録装置およびデータ削除装置として機能した場合における情報処理装置１００の動作について、図３〜図１０を参照して説明する。
【００３５】
まず、ユーザの入出力部１３０に対する操作（入力操作）や、端末１００Ｂまたは端末１００Ｃから受信した要求（登録要求）に基づいて、図３に示す初期登録処理が行われる。初期登録処理は、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する処理である。この例では、理解を容易にするため、患者Ｘ１についての初期登録を行う場合について説明する。初期登録処理を開始すると、情報処理装置１００は、初期登録部１２１の機能により、属性データを生成する（ステップＳ１０１）。具体的に、ステップＳ１０１では、入力操作や登録要求に含まれる、属性情報である患者Ｘ１の情報（患者Ｘ１を識別する識別情報など）および患者Ｘ１のアドレスを、患者Ｘ１の属性のハッシュチェーンを生成するための情報として、記憶部１１０へ登録する。なお、属性情報は登録せず、アドレスのみ登録するようにしてもよい。
【００３６】
次に、情報処理装置１００は、初期登録部１２１の機能により、登録した患者Ｘ１の属性のハッシュチェーンのインデックス値に、初期値である「０」を登録する。すなわち、ステップＳ１０２では、インデックス値「０」のデータブロックを生成する（ステップＳ１０２）。そして、当該インデックス値「０」のデータブロックに、初期データを格納するとともに、ハッシュチェーン１のハッシュ値の初期値として、インデックス値「０」に対応する初期値を格納する。これに合わせ、ハッシュチェーン２のハッシュ値の初期値として、ハッシュチェーン１のハッシュ値と同様に、インデックス値「０」に対応する初期値を、それぞれ格納する（図７（Ａ）参照）。なお、初期データは、例えば、当該データブロックが生成された際のタイムスタンプや、患者Ｘ１の識別情報を生成して格納したタイムスタンプなどの情報が含まれる。また、この段階では、ハッシュチェーン１のハッシュ値およびハッシュチェーン２のハッシュ値の値は同一である。また、患者Ｘ１のハッシュチェーンと言った場合には、ハッシュチェーン１で連結されたデータブロックおよびハッシュチェーン２で連結されたデータブロックの両方を指すものとする。また、図７（Ａ）に示すインデックス値「０」のデータブロックのことを、患者Ｘ１の属性のハッシュチェーンの土台情報ともいう。
【００３７】
ステップＳ１０２の処理を実行した後、情報処理装置１００は、ハッシュチェーン１で連結されたデータブロックに含まれる登録データ、すなわちハッシュチェーン１を参照用に設定する（ステップＳ１０３）。ステップＳ１０３では、ハッシュチェーン１で連結されたデータブロックと、ハッシュチェーン２で連結されたデータブロックのうち、ハッシュチェーン１で連結されたデータブロックに格納された登録データを参照対象とするよう、設定情報を更新する。続いて、情報処理装置１００は、同期処理部１２２の機能により、他の情報処理装置１００へ、当該内容を登録し（ステップＳ１０４）、初期登録処理を終了する。具体的に、ステップＳ１０４では、当該情報処理装置１００における患者Ｘ１の属性のハッシュチェーン（ハッシュチェーンの土台情報）の内容を、他の情報処理装置１００の記憶部１１０における各属性のハッシュチェーン１１１へコピーする。これにより、全ての情報処理装置１００において患者Ｘ１の属性のハッシュチェーン（ハッシュチェーンの土台情報）が共有されることとなる。
【００３８】
次に、発生したトランザクションについて、当該トランザクションデータを対応する属性のハッシュチェーンのデータブロックへ登録するデータブロック登録処理について説明する。当該データブロック登録処理は、発生したトランザクションに対応するトランザクションデータを受信することにより実行される。トランザクションデータは、端末１００Ｂおよび端末１００Ｃのいずれかより受信するものであるが、入出力部１３０に入力されてもよい。なお、この実施の形態では、上述したように、一つのトランザクションにつき一つのデータブロックが作成され登録されることから、当該データブロック登録処理は、登録すべきトランザクションの数が複数ある場合、繰り返し実行されることとなる。
【００３９】
図４は、データブロック登録処理の一例を示すフローチャートである。上述したように、データブロック登録処理は、ユーザから入出力部１３０への操作（入力操作）によりトランザクションデータが入力された場合や、端末１００Ｂまたは端末１００Ｃからトランザクションデータを受信したことなど、トランザクションが発生したこと基づいて開始される。
【００４０】
この例では、患者Ｘ１と医者Ｙ１との間で発生したトランザクションとして、図６に示す１〜３のトランザクションがこの順番に発生した場合を例に、それぞれに対応するトランザクションデータを登録する場合について説明する。なお、患者Ｘ１のハッシュチェーンの土台情報であるインデックス値「０」のデータブロックが既に登録されているものとして、以下説明する。すなわち、図３の初期登録処理が行われ、図７（Ａ）に示す状態となっているものとして、以下説明する。また、図６に示す１および３に対応する内容のトランザクションデータは、患者Ｘ１の端末１００Ｂから受信し、図６に示す２に対応する内容のトランザクションデータは、医者Ｙ１の端末１００Ｃから受信するものとする。さらに、当該患者Ｘ１のハッシュチェーンで連結された各データブロックに含まれるデータは、患者Ｘ１および医者Ｙ１など、患者Ｘ１が承認した者のみが登録および参照可能であるものとする。
【００４１】
なお、図６に示す１〜３に対応するトランザクションデータを登録することから、当該データブロック登録処理は、３回実行される。さらに、患者Ｘ１の個人情報には、例えば、身長、体重、年齢、血圧、病歴などといった情報が含まれ、医者Ｙ１の治療行為には、例えば、症状と診察内容、処方した薬の内容などの情報（カルテに記入される内容を示す情報）が含まれ、これらの内容がトランザクションデータ（登録データ）としてデータブロックに登録されるものとする。また、各データブロックに格納されるハッシュ値には、ハッシュチェーン１として連結されているかハッシュチェーン２として連結されているのかを識別可能な情報が含まれていてもよい。また、ハッシュチェーン１用のハッシュ値、ハッシュチェーン２用のハッシュ値、といったように予めそれぞれのハッシュ値を登録する領域をデータブロック内に設けてもよい。この実施の形態では、データブロック内に予めハッシュチェーン１用のハッシュ値とハッシュチェーン２用のハッシュ値とを登録するための領域が設けられており、登録データが個人情報の場合には、ハッシュチェーン１用のハッシュ値の領域にのみハッシュ値が登録されることとなる。
【００４２】
図４に示すデータブロック登録処理を開始すると、情報処理装置１００は、まず、同期処理部１２２の機能により、当該情報処理装置１００における対象のハッシュチェーンと、他の情報処理装置１００における対象のハッシュチェーンとが、同期しているか否かを判定する（ステップＳ２０１）。具体的に、この例におけるステップＳ２０１の処理では、各属性のハッシュチェーン１１１のうち、患者Ｘ１のハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値が、当該内容のデータを共有する他の全ての情報処理装置１００に記憶されたものと同一であるか否かを判定することで、同期しているか否かを判定する。
【００４３】
図７（Ａ）に示す例を用いて説明すると、当該情報処理装置１００（トランザクションデータを受信した情報処理装置１００のことをいう、以下同様）の患者Ｘ１のハッシュチェーンには、インデックス値「０」のデータブロックが最新のデータブロックとして登録されている。ステップＳ２０１の処理では、インデックス値「０」と、当該インデックス値「０」に対応するデータブロック（データブロック＃０）に格納されているハッシュチェーン１のハッシュ値およびハッシュチェーン２のハッシュ値（この状態ではいずれも同一の値）が、他の全ての情報処理装置１００に記憶されているものと一致するか否かを判定することで、同期しているか否かを判定する。
【００４４】
例えば、インデックス値「１」に対応するデータブロックが記憶されている情報処理装置１００が存在する場合には、当該情報処理装置１００に記憶されている患者Ｘ１の属性のハッシュチェーンの情報が古いと判定する。一方、Ｘ１の属性のハッシュチェーンが記憶されていない情報処理装置１００が存在する場合には、その情報処理装置１００に記憶されている情報が古いと判定する。なお、データブロック登録処理を実行した情報処理装置１００にインデックス値「Ｎ」と、当該「データブロック＃Ｎ」にハッシュチェーン１およびハッシュチェーン２のそれぞれハッシュ値が格納されている場合に、インデックス値「Ｎ−１」と、当該「データブロック＃Ｎ−１」にハッシュチェーン１およびハッシュチェーン２のそれぞれハッシュ値が格納されている情報処理装置１００が存在する場合には、その情報処理装置１００に記憶されている情報が古いと判定する。なお、インデックス値が同一であるにも関わらず、ハッシュチェーン１同士のハッシュ値、またはハッシュチェーン２同士のハッシュ値が一致しない場合には、異常と判定して当該データブロック登録処理を終了してもよい。
【００４５】
図４に戻り、同期していない場合（ステップＳ２０１；Ｎｏ）、すなわち、インデックス値、ハッシュチェーン１のハッシュ値およびハッシュチェーン２のハッシュ値のいずれかが一致していない場合、情報処理装置１００は、同期処理部１２２の機能により、最新のハッシュチェーンの内容を、古いと判定したハッシュチェーンが登録されている情報処理装置１００へコピーする同期処理を実行する（ステップＳ２０２）。なお、ステップＳ２０２の処理では、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ（インデックス値やハッシュ値も含む）コピーしてもよい。
【００４６】
図４に戻り、ステップＳ２０１にて同期していると判定した場合（ステップＳ２０１；Ｙｅｓ）、またはステップＳ２０２の処理を実行した場合、情報処理装置１００は、データブロック登録部１２３の機能により、今回登録するトランザクションデータ（登録データ）が個人情報であるか否かを判定する（ステップＳ２０３）。個人情報であるか否かについては、例えば、予め個人情報を示すデータの一覧を記憶部１１０に記憶しておき、当該記憶されたデータと比較することで判定してもよい。また、トランザクションを発生させる際に、トランザクションデータ内（登録データ内）に個人情報であるか否かを示すデータを含め、当該受信したトランザクションデータに、そのデータが含まれているか否かにより判定してもよい。この実施の形態では、トランザクションデータ内に個人情報であるか否かを示すデータが含まれているものとし、ステップＳ２０３では、当該データが含まれているか否かを判定することで、個人情報であるか否かを判定する。
【００４７】
図６に示す１に対応する内容のトランザクションデータを登録する場合、図４のステップＳ２０３にて個人情報であることを示すデータが含まれていると判定される。ステップＳ２０３にて個人情報であると判定した場合（ステップＳ２０３；Ｙｅｓ）、情報処理装置１００は、データブロック登録部１２３の機能により、対象のハッシュチェーンである患者Ｘ１のハッシュチェーンのうち、ハッシュチェーン１にのみ連結されるデータブロックとして、当該個人情報を登録データとして含むデータブロックを追加する（ステップＳ２０４）。
【００４８】
通常、新たなデータブロック（第ｍのデータブロック）をハッシュチェーンに追加する場合、登録データ（トランザクションデータ）と、現在のハッシュチェーンの末尾（１つ前）のデータブロック（第ｍ−１のデータブロック）のハッシュ値（２５６ビット）をデータブロックに格納し、現在のハッシュチェーンの末尾（１つ前）のデータブロック（第ｍ−１のデータブロック）に連結する。この実施の形態におけるステップＳ２０４では、インデックス値「０」のハッシュ値である、ハッシュチェーン１のハッシュ値とハッシュチェーン２のハッシュ値のうち、ハッシュチェーン１のハッシュ値を、個人情報（登録データ１）とともに「データブロック＃１」に格納し、インデックス値「０」の「データブロック＃０」と連結する（図７（Ｂ）参照）。
【００４９】
図４に戻り、ステップＳ２０４の処理により患者Ｘ１の個人情報が登録データ１として「データブロック＃１」に格納され、「データブロック＃０」に連結されると、情報処理装置１００は、同期処理部１２２の機能により、ステップＳ２０４にてデータブロックを追加した属性のハッシュチェーンを他の情報処理装置１００へ登録することにより、当該情報処理装置１００と他の情報処理装置１００とを同期してから（ステップＳ２０８）、データブロック登録処理を終了する。これにより、図６に示す１に対応する内容のトランザクションデータの登録が終了することとなり、全ての情報処理装置１００における患者Ｘ１のハッシュチェーンの状態が図７（Ｂ）に示す状態となる。なお、ステップＳ２０８の処理では、当該情報処理装置１００における患者Ｘ１のハッシュチェーンを、他の情報処理装置１００の記憶部１１０における各属性のハッシュチェーン１１１へコピーする。なお、ステップＳ２０８の処理では、ステップＳ２０２の処理と同様に、患者Ｘ１のハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ（インデックス値やハッシュ値も含む）コピーしてもよい。なお、当該データブロック登録処理は、登録すべきトランザクションデータの数分繰り返し実行される。
【００５０】
次に、図６に示す２に対応する内容のトランザクションデータを登録する場合（すなわち、図７（Ｂ）の状態から図８（Ｃ）の状態となる場合）について説明する。この場合、再度実行された図４のデータブロック登録処理におけるステップＳ２０３において（ステップＳ２０１およびＳ２０２については上述したとおりである）、登録データに個人情報であることを示すデータが含まれていないと判定される。ステップＳ２０３にて個人情報でないと判定した場合（ステップＳ２０３；Ｎｏ）、情報処理装置１００は、データブロック登録部１２３の機能により、今回登録するトランザクションデータ（登録データ）が削除処理を行うことを示す削除処理データであるか否かを判定する（ステップＳ２０５）。削除処理データであるか否かは、トランザクションデータ（登録データ）に削除処理を行うことを示すデータが含まれていればよく、ステップＳ２０５では、当該データが含まれているか否かを判定することで、削除処理データであるか否かを判定すればよい。なお、登録データが個人情報であるか否か、削除処理データであるか否か、については、例えば、データ種別が「０１」であれば個人情報、「０２」であれば削除処理データ、「０３」であればいずれでもない、など予め定められたデータ種別（コード）によりいずれの種類の登録データであるかを判定してもよい。
【００５１】
図６に示す２に対応する内容のトランザクションデータを登録する場合、ステップＳ２０５にて削除処理を行うことを示すデータが含まれていないと判定される。図４のステップＳ２０５にて登録データが削除処理データでないと判定した場合（ステップＳ２０５；Ｎｏ）、情報処理装置１００は、データブロック登録部１２３の機能により、ステップＳ２０４とは異なり、対象のハッシュチェーンである患者Ｘ１のハッシュチェーンのうち、ハッシュチェーン１およびハッシュチェーン２の両方に連結されるデータブロックとして、当該トランザクションデータ（登録データ２）を含むデータブロックを追加する（ステップＳ２０６）。
【００５２】
具体的に、ステップＳ２０６では、まず、患者Ｘ１のハッシュチェーンを確認し（図７（Ｂ）の状態を確認し）、現在の末尾（１つ前）のインデックス値が「１」であると認定する。なお、ハッシュチェーン１で連結されたデータブロックとハッシュチェーン２で連結されたデータブロックのうち、インデックスの最大値を患者Ｘ１のハッシュチェーンの末尾として判断すればよい。末尾のインデックス値が「１」であることから、情報処理装置１００は、「データブロック＃２」のデータブロックを生成する。ここで、ハッシュチェーン１で連結されているデータブロックの末尾は「データブロック＃１」である一方で、ハッシュチェーン２で連結されているデータブロックの末尾は「データブロック＃０」である。そのため、ステップＳ２０６では、「データブロック＃２」のデータブロックに、ハッシュチェーン１では「データブロック＃１」と連結されるよう、ハッシュチェーン２では「データブロック＃２」と連結されるよう、登録データ２とともにそれぞれのハッシュ値を格納する。
【００５３】
すなわち、「データブロック＃２」には、登録データ２とともに、ハッシュチェーン１のハッシュ値として、「データブロック＃１」に基づくハッシュ値が格納され、ハッシュチェーン２のハッシュ値として、「データブロック＃０」に基づくハッシュ値が格納される。なお、これらのハッシュ値は互いに相違する値となっている。これにより、図８（Ｃ）に示すように「データブロック＃２」として、「データブロック＃０」、「データブロック＃１」および「データブロック＃２」で連結されたハッシュチェーン１と、「データブロック＃０」および「データブロック＃２」で連結されたハッシュチェーン２とを含む患者Ｘ１のハッシュチェーンが登録されることとなる。
【００５４】
ステップＳ２０６の処理を実行した後、情報処理装置１００は、同期処理部１２２の機能により、ステップＳ２０６にてデータブロックを追加した属性のハッシュチェーンを他の情報処理装置１００へ登録することにより、当該情報処理装置１００と他の情報処理装置１００とを同期してから（ステップＳ２０８）、データブロック登録処理を終了する。これにより、図６に示す２に対応する内容のトランザクションデータの登録が終了することとなり、全ての情報処理装置１００における患者Ｘ１のハッシュチェーンの状態が図８（Ｃ）に示す状態となる。
【００５５】
次に、図６に示す３に対応する内容のトランザクションデータを登録する場合（すなわち、図８（Ｃ）の状態から図８（Ｄ）および図９（Ｅ）の状態となる場合）について説明する。この場合、再度実行された図４のデータブロック登録処理におけるステップＳ２０５において（ステップＳ２０１およびＳ２０２については上述したとおりである）、登録データに削除処理データであることを示すデータが含まれていると判定される。ステップＳ２０５にて登録データが削除処理データであると判定した場合（ステップＳ２０５；Ｙｅｓ）、情報処理装置１００は、データブロック登録部１２３および削除処理部１２５の機能により、削除処理を実行する（ステップＳ２０７）。
【００５６】
図５は、図４のステップＳ２０７にて実行する削除処理の一例を示すフローチャートである。図５に示す削除処理において、情報処理装置１００は、データブロック登録部１２３の機能により、ステップＳ２０６の処理と同様、対象のハッシュチェーンである患者Ｘ１のハッシュチェーンのうち、ハッシュチェーン１およびハッシュチェーン２の両方に連結されるデータブロックとして、当該削除処理データを含むデータブロックを追加する（ステップＳ３０１）。
【００５７】
ステップＳ３０１では、患者Ｘ１のハッシュチェーンの現在の末尾（１つ前）のインデックス値が「２」であることから、「データブロック＃３」のデータブロックを生成する。そして、ハッシュチェーン１およびハッシュチェーン２で連結されているデータブロックの末尾がいずれも「データブロック＃２」であるため、「データブロック＃３」には、削除処理データとともに、ハッシュチェーン１のハッシュ値として、「データブロック＃２」に基づくハッシュ値が格納されるとともに、ハッシュチェーン２のハッシュ値としても「データブロック＃２」に基づくハッシュ値が格納される。これにより、図８（Ｄ）に示すように「データブロック＃３」として、「データブロック＃０」、「データブロック＃１」、「データブロック＃２」、および「データブロック＃３」で連結されたハッシュチェーン１と、「データブロック＃０」、「データブロック＃２」、および「データブロック＃３」で連結されたハッシュチェーン２とを含む患者Ｘ１のハッシュチェーンが登録されることとなる。
【００５８】
図５のステップＳ３０１の処理を実行した後、情報処理装置１００は、削除処理部１２５の機能により、ハッシュチェーン１で連結されたデータブロックと、ハッシュチェーン２で連結されたデータブロックのうち、ハッシュチェーン２で連結されたデータブロックに格納されたデータを参照対象として設定情報を更新することで、ハッシュチェーン２を参照用に設定する（ステップＳ３０２）。具体的に、ステップＳ３０２では、図８（Ｄ）に示す患者Ｘ１のハッシュチェーンについて、ハッシュチェーン２で連結された「データブロック＃０」、「データブロック＃２」、および「データブロック＃３」の内容が参照対象となる。
【００５９】
ステップＳ３０２の処理を実行した後、情報処理装置１００は、削除処理部１２５の機能により、ハッシュチェーン１でのみ連結されたデータブロックを削除する（ステップＳ３０３）。具体的に、ステップＳ３０３では、図８（Ｄ）に示す患者Ｘ１のハッシュチェーンにおけるハッシュチェーン１でのみ連結されたデータブロック１を削除する。なお、ハッシュチェーン１でのみ連結されたデータブロックであるか否かは、例えば、ハッシュチェーン１で連結されたデータブロックとハッシュチェーン２で連結されたデータブロックとの差により特定してもよいし、ハッシュ値を参照することにより特定してもよい。これにより、図９（Ｅ）に示すように、個人情報が格納された「データブロック＃１」が削除される。これにより、患者Ｘ１のハッシュチェーンは、ハッシュチェーン２で連結されたデータブロックのみとなる（ハッシュチェーン１における連結は解消される）。
【００６０】
図５のステップＳ３０３の処理を実行した後、情報処理装置１００は、削除処理部１２５の機能により、患者Ｘ１のハッシュチェーン（より具体的には、患者Ｘ１のハッシュチェーンに含まれるハッシュチェーン２で連結されたデータブロックの登録データ）を参照専用に設定し（ステップＳ３０４）、削除処理を終了する。ステップＳ３０４では、データブロック登録処理が再度行われたとしても、当該ハッシュチェーンにデータブロックが追加されないよう、書込み禁止の設定が行われればよい。
【００６１】
図４に戻り、ステップＳ２０７の処理を実行した後、情報処理装置１００は、同期処理部１２２の機能により、ステップＳ２０７にてデータブロックを追加および削除した属性のハッシュチェーンを他の情報処理装置１００へ登録することにより、当該情報処理装置１００と他の情報処理装置１００とを同期してから（ステップＳ２０８）、データブロック登録処理を終了する。これにより、図６に示す３に対応する内容のトランザクションデータの登録が終了することとなり、全ての情報処理装置１００における患者Ｘ１のハッシュチェーンの状態が図９（Ｅ）に示す状態となる。
【００６２】
以上がハッシュチェーン登録装置およびデータ削除装置として機能した場合における情報処理装置１００の動作である。続いて、情報処理装置１００が上記のようなハッシュチェーン登録装置およびデータ削除装置として機能することにより登録または削除されたハッシュチェーンを参照する場合における参照処理について説明する。
【００６３】
図１０は、参照処理の一例を示すフローチャートである。図１０に示す参照処理は、患者Ｘ１による端末１００Ｂからの参照要求や、医者Ｙ１による端末１００Ｃからの参照要求を受信することにより開始する。なお、参照要求には、各例えば、患者Ｘ１のハッシュチェーンなどといったように、各属性のハッシュチェーン１１１のうち、参照対象のハッシュチェーンを特定する情報が含まれている。この例では、上記の例と同様に、患者Ｘ１のハッシュチェーンについての参照要求を受信した場合を例に説明する。
【００６４】
参照処理を開始すると、情報処理装置１００は、データ参照部１２４の機能により、参照用として設定されているハッシュチェーンがハッシュチェーン１であるか否かを判定する（ステップＳ４０１）。具体的に、図３に示す初期登録処理が実行された後は、図５に示す削除処理が実行されるまでの間、参照用として設定されているハッシュチェーンはハッシュチェーン１であり、図５に示す削除処理が実行されることで、参照用として設定されているハッシュチェーンがハッシュチェーン２変更される。ステップＳ４０１は、記憶部１１０に記憶されている設定情報を参照することで、参照用として設定されているハッシュチェーンがハッシュチェーン１であるか否かを判定する。
【００６５】
図５に示す削除処理が実行される前、例えば、図８（Ｃ）に示す状態において参照処理が実行された場合、図１０のステップＳ４０１では、参照用として設定されているハッシュチェーンがハッシュチェーン１であると判定される。ステップＳ４０１にてハッシュチェーン１と判定した場合（ステップＳ４０１；Ｙｅｓ）、情報処理装置１００は、データ参照部１２４の機能により、ハッシュチェーン１で連結されたデータブロックに含まれる登録データを要求元の端末に表示し（ステップＳ４０２）、参照処理を終了する。具体的に、ステップＳ４０２の処理が実行されることにより、ハッシュチェーン１で連結された「データブロック＃０」、「データブロック＃１」、「データブロック＃２」、および「データブロック＃３」のデータブロックに含まれる登録データ１および２（初期データについては表示されてもされなくてもよい）が、要求元の端末に表示されることとなる。
【００６６】
続いて、図５に示す削除処理が実行された後、例えば、図９（Ｅ）に示す状態において参照処理が実行された場合について説明する。この場合、図１０のステップＳ４０１にて、参照用として設定されているハッシュチェーンがハッシュチェーン２であると判定される。ステップＳ４０１にてハッシュチェーン２と判定した場合（ステップＳ４０１；Ｎｏ）、情報処理装置１００は、データ参照部１２４の機能により、ハッシュチェーン２で連結されたデータブロックに含まれる登録データを要求元の端末に表示し（ステップＳ４０３）、参照処理を終了する。具体的に、ステップＳ４０３の処理が実行されることにより、ハッシュチェーン２で連結された「データブロック＃０」、「データブロック＃２」、および「データブロック＃３」のデータブロックに含まれる登録データ２（初期データについては表示されてもされなくてもよい）が、要求元の端末に表示されることとなる。
【００６７】
このように、図５に示す削除処理が実行される前後で、参照対象となるデータブロックが異なるようになっており、削除処理が実行された後では、個人情報を含まないデータブロックのみが連結されたハッシュチェーンが参照対象となるように変更される（ハッシュチェーン１で連結されたデータブロックからハッシュチェーン２で連結されたデータブロックへ参照対象が変更される）。したがって、個人情報を参照不可能な状態にすることができ、ブロック上に格納されたデータの利便性を向上させることができる。また、これに伴い、ハッシュチェーン１のみで連結されたデータブロックについては、すなわち、個人情報が格納されたデータブロックについては、削除される。したがって、個人情報の削除権を保障することができ、ブロック上に格納されたデータの利便性を向上させることができる。
【００６８】
（変形例）
なお、この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、情報処理装置１００では、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも１つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせてもよい。
【００６９】
上記実施の形態では、理解を容易にするため、図６に示す１〜３のみのトランザクションを例に、それぞれに対応するトランザクションデータを登録する場合の例を説明したが、これは一例である。例えば、図６に示す３の「削除」のトランザクションの前に、複数のトランザクションが発生することが一般的であり、具体的に、体重や血圧などの個人情報や、症状と診察内容、処方した薬の内容などの治療行為を示す情報（治療行為を示す登録データ）などは、複数回登録されることとなる。この場合には、図４に示すデータブロック登録処理にて個人情報である場合にはステップＳ２０４の処理にてハッシュチェーン１に連結したデータブロックに格納し、個人情報でなく治療行為を示す登録データであれば、ステップＳ２０６の処理にてハッシュチェーン１およびハッシュチェーン２の両方に連結したデータブロックに格納すればよい。
【００７０】
また、上記実施の形態では、図５の削除処理におけるステップＳ３０３にてハッシュチェーン１でのみ連結されたデータブロックを削除する例を示したが、当該データブロックを削除する際に、当該データブロックに含まれる、個人情報を登録した時のタイムスタンプを、ハッシュチェーン２で連結された新たなデータブロックに格納するようにしてもよい。これによれば、何らかのデータ（削除対象のデータ）が登録されていたという証拠を残すことができる。
【００７１】
また、上記実施の形態では、図５の削除処理におけるステップＳ３０４の処理において、対象のハッシュチェーンを参照専用とする例を示したが、これは一例である。ステップＳ３０４の処理は実行しなくてもよい。この場合、例えば、図９（Ｅ）に示すように、ハッシュチェーン２のみで連結されることから、個人情報のみ登録禁止とし、治療行為を示す情報については継続して登録可能としてもよい。そして、個人情報が登録される場合には、削除ができない旨を注意喚起として表示するようにしてもよい。
【００７２】
また、上記実施の形態では、患者Ｘ１のハッシュチェーンにハッシュチェーン１とハッシュチェーン２が含まれる例を示したが、これは一例である。これに加え、例えばハッシュチェーン３がさらに含まれていてもよい。この場合、ハッシュチェーン３を予備のハッシュチェーンとし、図９（Ｅ）に示すように、ハッシュチェーン１における連結が解消された際に、現状のハッシュチェーン２を元のハッシュチェーン１と同様に用いるようにし、ハッシュチェーン３を元のハッシュチェーン２と同様にして用いるようにしてもよい。具体的に、予備のハッシュチェーン３は、ハッシュチェーン１が削除されるまで、ハッシュチェーン２と同じ連結先となるようにデータブロックを登録すればよく（ハッシュチェーン３はハッシュチェーン２のコピー）、ハッシュチェーン１が削除された場合に、ハッシュチェーン２とハッシュチェーン３が、上述したハッシュチェーン１とハッシュチェーン２と同様の関係（削除前の両ハッシュチェーンの関係）になればよく、ハッシュチェーン３には個人情報が連結されないようにすればよい。そして、ハッシュチェーン１が削除された後、再度図５に示す削除処理が実行された場合に、ステップＳ３０２の処理にてハッシュチェーン３を参照用として設定し、ステップＳ３０３の処理にてハッシュチェーン２でのみ連結されたデータブロックを削除すればよい。これによれば、一旦個人情報を削除し、ハッシュチェーンによる連結を解消した後であっても、個人情報や治療行為を示す登録データのデータブロックへの登録を、引き続き行うことができばかりでなく、その後に個人情報を再度削除することが可能となり、ブロック上に格納されたデータの利便性をさらに向上させることができる。
【００７３】
また、ハッシュチェーン１とハッシュチェーン２のうち、ハッシュチェーン１を削除する際（すなわち図５のステップＳ３０３の処理を実行した際）に、ハッシュチェーン１で連結されていたデータブロック（削除されたデータブロックは除く）を、ハッシュチェーン３で連結されたデータブロックにコピーすることで、ハッシュチェーン３で連結されたデータブロックを新たに作成するようにしてもよい。その上で、ハッシュチェーン２とハッシュチェーン３が上述したハッシュチェーン１とハッシュチェーン２と同様の関係になればよく、ハッシュチェーン３には個人情報が連結されないようにすればよい。すなわち、図５に示す削除処理を実行する度に、削除後に残ったデータブロックを新たなデータブロックへコピーし、新たなハッシュチェーンで連結するようにしてもよい。これによれば、一旦個人情報を削除し、ハッシュチェーンによる連結を解消した後であっても、一旦その属性のハッシュチェーンを作成すれば、個人情報や治療行為を示す登録データのデータブロックへの登録および削除を、引き続き行うことができ、ブロック上に格納されたデータの利便性をさらに向上させることができる。
【００７４】
また、上記実施の形態では、患者Ｘ１と医者Ｙ１との間の治療行為を示す登録データをデータブロックに登録する例を示したが、これは一例である。例えば、他の病院の医者Ｚ１による患者Ｘ１に対する治療行為を示す登録データついても、患者Ｘ１のハッシュチェーンで連結されたデータブロックに登録可能であるなど、患者１人に対し複数の医者により登録データが登録可能であってよい（参照についても同様）。これによれば、複数の医者の間で、過去の治療行為の内容や症状、投与した薬の内容などの共有が可能となり、治療行為を好適に行うことができる。なお、この場合、医者Ｚ１について、患者Ｘ１が登録および参照を承認すればよい。承認については、当該医者Ｚ１に対し、書き込みおよび参照の権限を与える処理を実行すればよく、その方法は任意であってよい。
【００７５】
また、例えば、患者Ｘ１の承諾に基づいて、当該患者Ｘ１のハッシュチェーンを、製薬会社などの第三者に参照可能としてもよい。すなわち、患者Ｘ１は、自身の属性のハッシュチェーンで連結されたデータブロックについて、登録ではなく、参照のみ、再三者に権限を与えることも可能である。これによれば、Ｘ１に対する医者Ｙ１などの治療行為を示す登録データを、そのまま治験データとして用いることが可能となる。
【００７６】
さらに、上記実施の形態では、患者Ｘ１と医者Ｙ１とにおける医療行為を例に、患者Ｘ１の属性のハッシュチェーンに対する登録および削除について説明したが、これは一例である。この発明は、医療行為に留まらず、契約や商取引など、様々な分野に適用可能である。例えば、図１１に示すような引っ越し手続きサービスについても適用可能である。引っ越し手続きサービスは、例えば、住民Ａが引っ越した場合に、当該引っ越し先の住所をハッシュチェーンで連結されたデータブロックに登録し、管轄の役所が証明データを当該住民Ａのハッシュチェーン上に連結させ、電話会社やガス会社、水道局などに参照権限を与えることで、引っ越し後における電話、ガス、水道などといった手続きを一括して行うことが可能なサービスである。
【００７７】
図１１は、当該引っ越し手続きサービスにおけるハッシュチェーンの登録内容の例を示す図である。図１１では、住民Ａが引っ越しを行い、電話とガスの手続きを行う場合の例を示している。図１１に示すように、住民Ａの属性のハッシュチェーンには、上記実施の形態と同様、ハッシュチェーン１およびハッシュチェーン２で連結されたデータブロックと、ハッシュチェーン１でのみ連結されたデータブロックとが含まれている。具体的には、図示するように「データブロック＃０」、「データブロック＃３」、および「データブロック＃４」が両方のハッシュチェーンで連結され、「データブロック＃１」〜「データブロック＃２」がハッシュチェーン１でのみ連結されたデータブロックである。
【００７８】
「データブロック＃０」は上記実施の形態と同様であり、初期データと、それぞれのハッシュチェーンのハッシュ値が登録されている。「データブロック＃１」には、住民Ａの個人情報としての住所データが登録される。当該住所データは、住民Ａの端末から送信されればよい。「データブロック＃２」には、当該住所に住民Ａが住んでいることを証明する証明データが個人情報として登録される。当該証明データは、住民Ａの管轄の役所の端末から送信されればよい。なお、当該引っ越し手続きサービスを利用する場合、自動的に居住管轄の役所における当該ハッシュチェーンの登録を承諾したものとみなされればよい。また、証明データは、住所データが登録されることにより、管轄の役所に対して新たな住所が登録されたことが通知され、役所の側では、それを確認することで、対象のハッシュチェーンに証明データを登録すればよい。
【００７９】
「データブロック＃３」は、電話会社にアクセス権があることを示すアクセス権データである。当該アクセス権データが登録されることで、電話会社が住民Ａのハッシュチェーンを参照（登録も含む）することができるようになる。当該アクセス権データが登録されると、その旨が電話会社へ通知される。これにより、電話会社は住民Ａのハッシュチェーンを参照して住所確認および本人確認を行うことで、住所変更手続きを行う。「データブロック＃４」は、ガス会社にアクセス権があることを示すアクセス権データである。当該アクセス権データが登録されることで、ガス会社が住民Ａのハッシュチェーンを参照することができるようになる。当該アクセス権データが登録されると、その旨がガス会社へ通知される。これにより、ガス会社は住民Ａのハッシュチェーンを参照して住所確認および本人確認を行うことで、住所変更手続きを行う。
【００８０】
なお、図示する例では、電話とガスについてのみ示しているが、水道や電気などについても同様である。また、住所変更手続きが完了した場合、当該住民Ａのハッシュチェーンに、新たなデータブロックを連結して、その旨を示す情報が日時情報とともに登録データとして登録される。当該登録データは、ハッシュチェーン１およびハッシュチェーン２の両方で連結されればよい。これにより、住民Ａは、各種住所変更手続きが完了したことを確認することができる。
【００８１】
また、全ての住所変更手続きが完了した場合、住民Ａは、図５に示す削除処理を行うことで、ハッシュチェーン１でのみ連結されたデータブロック（住所データや証明データを含むデータブロック）を削除することができる。これによれば、個人情報を参照可能な状態を不要な時期まで継続させることなく、個人情報を適格に保護することができる。
【００８２】
また、上述の機能を、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とアプリケーションとの分担、またはＯＳとアプリケーションとの協同により実現する場合等には、ＯＳ以外の部分のみを媒体に格納してもよい。
【００８３】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板（ＢＢＳ、Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ）に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【符号の説明】
【００８４】
１  情報処理システム、１００Ａ  情報処理装置、１００Ｂ〜１００Ｃ  端末、１１０  記憶部、１１１  各属性のハッシュチェーン、１２０  制御部、１２１  初期登録部、１２２  同期処理部、１２３  データブロック登録部、１２４  データ参照部、１２５  削除処理部、１３０  入出力部、１４０  通信部、２１０  ネットワーク
【図１】
2020086553.tif 000003
【図２】
2020086553.tif 000004
【図３】
2020086553.tif 000005
【図４】
2020086553.tif 000006
【図５】
2020086553.tif 000007
【図６】
2020086553.tif 000008
【図７】
2020086553.tif 000009
【図８】
2020086553.tif 000010
【図９】
2020086553.tif 000011
【図１０】
2020086553.tif 000012
【図１１】
2020086553.tif 000013