(57)【要約】      （修正有）【課題】販売者がオフラインであっても、データを提供するスマートコントラクトを安全かつ迅速に実行できる情報処理システムを提供する。【解決手段】情報処理システムにおいて、第１ノードは、個人データの識別情報生成Ｓ２し、個人データ販売のための契約書のテンプレート取得Ｓ３し、取得したテンプレートに識別情報を記入して署名することにより契約書作成Ｓ４する。その後、第１ノードは、第２ノードへ契約書公開Ｓ５し、ストレージノードに対して個人データをデータ保存依頼Ｓ６する。第２ノードは、契約書選択Ｓ１１して取得した契約書に、第２ノードのデータ受け取りアドレスをアドレス記入Ｓ１２して、契約書に署名Ｓ１３を行い、ブロックチェーン４へ契約書登録Ｓ１４する。ストレージノードは、個人データと識別情報を保存実行Ｓ９し、契約成立判定Ｓ１０、Ｓ１５で契約成立済みが確認できたならば、個人データを第２ノードへデータ送信Ｓ１６する。【選択図】図５
2020077347.tif 000002
【特許請求の範囲】
【請求項１】
データを保有する第１ノードと、前記第１ノードから前記データの提供を受ける第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムであって、
前記第１ノードは、
前記データの識別情報を生成する第１識別情報生成部と、
前記第１ノードが前記データを提供するための契約書のテンプレートを取得するテンプレート取得部と、
前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成部と、
前記契約書を前記第２ノードに公開する契約書公開部と、
前記データを前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼部と、
を備え、
前記テンプレートには、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられ、
前記第２ノードは、    
前記公開された契約書を選択する契約書選択部と、
前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入部と、
前記選択された契約書に署名を行う署名部と、
前記アドレス記入部によって前記データ受取アドレスが記入され、前記署名部によって署名された前記契約書を、前記データベースに登録する登録部と、
を備え、
前記ストレージノードは、
前記保存依頼部からの前記依頼を受け付けた場合に、前記データの識別情報を生成する第２識別情報生成部と、
前記データを前記識別情報とともに保存する保存実行部と、
前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定部と、
前記契約が成立済みであると判定された場合、前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信部と、
を備えたことを特徴とする、情報処理システム。
【請求項２】
データを保有する第１ノードと、前記第１ノードから前記データの提供を受ける第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムであって、
前記第１ノードは、
前記データの識別情報を生成する第１識別情報生成部と、
前記第１ノードが前記データを提供するための契約書のテンプレートを取得するテンプレート取得部と、
前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成部と、
前記契約書を前記第２ノードに公開する契約書公開部と、
前記データを前記識別情報とともに前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼部と、
を備え、
前記テンプレートには、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられ、
前記第２ノードは、
前記公開された契約書を選択する契約書選択部と、
前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入部と、
前記選択された契約書に署名を行う署名部と、
前記アドレス記入部によって前記データ受取アドレスが記入され、前記署名部によって署名された前記契約書を、前記データベースに登録する登録部と、
を備え、
前記ストレージノードは、
前記保存依頼部からの前記依頼を受け付けた場合に、前記データを前記識別情報とともに保存する保存実行部と、
前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定部と、
前記契約が成立済みであると判定された場合、前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信部と、
を備えたことを特徴とする、情報処理システム。
【請求項３】
仲介ノードをさらに備え、
前記第１ノードは、
前記データを暗号化して暗号化データを作成する暗号化部と、
前記契約書作成部が作成した前記契約書、および前記暗号化データを復元するための復元鍵を前記仲介ノードに送信する契約書等送信部と、
をさらに備え、
前記識別情報は、前記データのハッシュ値であり、
前記第１識別情報生成部は、さらに前記暗号化データのハッシュ値である暗号ハッシュ値を計算し、
前記契約書等送信部は、さらに前記暗号ハッシュ値を前記仲介ノードに送信し、
前記保存依頼部は、前記データの代わりに前記暗号化データを前記ストレージノードに送信して、前記暗号化データを前記ストレージノードに保存するように依頼し、
前記ストレージノードにおいて、
前記保存実行部は、前記データの代わりに前記暗号化データを保存し、
前記データ送信部は、前記データの代わりに前記暗号化データを送信し、
前記第２ノードは、
前記ストレージノードから受信した前記暗号化データのハッシュ値である暗号ハッシュ値を計算するハッシュ値計算部と、
前記ハッシュ値計算部によって算出された前記暗号ハッシュ値を前記仲介ノードに送信するハッシュ値送信部と、
を備え、
前記仲介ノードは、
前記契約書等送信部から受信した前記復元鍵および前記暗号ハッシュ値を保存する保存部と、
前記ハッシュ値送信部から受信した前記暗号ハッシュ値を、前記保存された前記暗号ハッシュ値と比較する比較部と、
前記比較部によって比較された前記暗号ハッシュ値が一致した場合に、前記保存された復元鍵を前記第２ノードに送信する鍵送信部と、
を備えた、ことを特徴とする、請求項１または２に記載の情報処理システム。
【請求項４】
前記ストレージノードは、Ｐ２Ｐストレージを共同構成するノードであることを特徴とする、請求項１から３のいずれかに記載の情報処理システム。
【請求項５】
前記データベースは、ブロックチェーンであることを特徴とする、請求項１から４のいずれかに記載の情報処理システム。
【請求項６】
第１ノードと、第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムにおいて、前記第１ノードから前記第２ノードにデータを提供するデータ提供方法であって、
前記第１ノードにおいて、前記データの識別情報を生成する第１識別情報生成ステップと、
前記第１ノードにおいて、前記第１ノードが前記データを提供するための契約書のテンプレートであって、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられたテンプレートを取得するテンプレート取得ステップと、
前記第１ノードにおいて、前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成ステップと、
前記契約書を前記第２ノードに公開する契約書公開ステップと、
前記第１ノードから、前記データを前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼ステップと、
前記ストレージノードにおいて、前記保存依頼ステップにおける前記依頼を受け付けた場合に、前記データの識別情報を生成する第２識別情報生成ステップと、
前記データを前記識別情報とともに保存する保存実行ステップと、
前記ストレージノードにおいて、前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定ステップと、
前記第２ノードにおいて、前記公開された契約書を選択する契約書選択ステップと、
前記第２ノードにおいて、前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入ステップと、
前記第２ノードにおいて、前記選択された契約書に署名を行う署名ステップと、
前記アドレス記入ステップにおいて前記データ受取アドレスが記入され、前記署名ステップにおいて署名された前記契約書を、前記データベースに登録する登録ステップと、
前記契約成立判定ステップにおいて前記契約が成立済みであると判定された場合、前記ストレージノードから前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信ステップと、
を有することを特徴とする、データ提供方法。
【請求項７】
第１ノードと、第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムにおいて、前記第１ノードから前記第２ノードにデータを提供するデータ提供方法であって、
前記第１ノードにおいて、前記データの識別情報を生成する第１識別情報生成ステップと、
前記第１ノードにおいて、前記第１ノードが前記データを提供するための契約書のテンプレートであって、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられたテンプレートを取得するテンプレート取得ステップと、
前記第１ノードにおいて、前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成ステップと、
前記契約書を前記第２ノードに公開する契約書公開ステップと、
前記第１ノードから、前記データを前記識別情報とともに前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼ステップと、
前記ストレージノードにおいて、前記保存依頼ステップにおける前記依頼を受け付けた場合に、前記データを前記識別情報とともに保存する保存実行ステップと、
前記ストレージノードにおいて、前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定ステップと、
前記第２ノードにおいて、前記公開された契約書を選択する契約書選択ステップと、
前記第２ノードにおいて、前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入ステップと、
前記第２ノードにおいて、前記選択された契約書に署名を行う署名ステップと、
前記アドレス記入ステップにおいて前記データ受取アドレスが記入され、前記署名ステップにおいて署名された前記契約書を、前記データベースに登録する登録ステップと、
前記契約成立判定ステップにおいて前記契約が成立済みであると判定された場合、前記ストレージノードから前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信ステップと、
を有することを特徴とする、データ提供方法。
【請求項８】
前記データベースは、ブロックチェーンであることを特徴とする、請求項６または７に記載のデータ提供方法。
【請求項９】
データを保有する第１ノードと、前記第１ノードから前記データの提供を受ける第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムの製造方法であって、
前記データの識別情報を生成する第１識別情報生成部、
前記第１ノードが前記データを提供するための契約書のテンプレートであって、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられたテンプレートを取得するテンプレート取得部、
前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成部、
前記契約書を前記第２ノードに公開する契約書公開部、および、
前記データを前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼部、
としてコンピュータを動作させるためのプログラムを前記第１ノードに配信するステップと、
前記公開された契約書を選択する契約書選択部、
前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入部、
前記選択された契約書に署名を行う署名部、および、
前記アドレス記入部によって前記データ受取アドレスが記入され、前記署名部によって署名された前記契約書を、前記データベースに登録する登録部、
としてコンピュータを動作させるためのプログラムを前記第２ノードに配信するステップと、
前記保存依頼部からの前記依頼を受け付けた場合に、前記データの識別情報を生成する第２識別情報生成部、
前記データを前記識別情報とともに保存する保存実行部、
前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定部、および、
前記契約が成立済みであると判定された場合、前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信部、
としてコンピュータを動作させるためのプログラムを前記ストレージノードに配信するステップと、
を有することを特徴とする、情報処理システムの製造方法。
【請求項１０】
データを保有する第１ノードと、前記第１ノードから前記データの提供を受ける第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムの製造方法であって、
前記データの識別情報を生成する第１識別情報生成部、
前記第１ノードが前記データを提供するための契約書のテンプレートであって、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられたテンプレートを取得するテンプレート取得部、
前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成部、
前記契約書を前記第２ノードに公開する契約書公開部、および、
前記データを前記識別情報とともに前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼部、
としてコンピュータを動作させるためのプログラムを前記第１ノードに配信するステップと、
前記公開された契約書を選択する契約書選択部、
前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入部、
前記選択された契約書に署名を行う署名部、および、
前記アドレス記入部によって前記データ受取アドレスが記入され、前記署名部によって署名された前記契約書を、前記データベースに登録する登録部、
としてコンピュータを動作させるためのプログラムを前記第２ノードに配信するステップと、
前記保存依頼部からの前記依頼を受け付けた場合に、前記データを前記識別情報とともに保存する保存実行部、
前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定部、および、
前記契約が成立済みであると判定された場合、前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信部、
としてコンピュータを動作させるためのプログラムを前記ストレージノードに配信するステップと、
を有することを特徴とする、情報処理システムの製造方法。
【請求項１１】
前記データベースは、ブロックチェーンであることを特徴とする、請求項９または１０に記載の情報処理システムの製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密情報のスマートコントラクトを安全かつ迅速に実行するための情報処理システム、データ提供方法、および情報処理システムの製造方法に関する。
【背景技術】
【０００２】
スマートコントラクトとは、中央集権的な管理サーバに頼ること無く、不特定多数のノード群による協調処理により自動実行される取引（契約）である。スマートコントラクトは、Bitcoinの成功後、その基幹技術であるブロックチェーン技術の応用例として注目されている。
【０００３】
映画や音楽といったコンテンツや医療画像などの個人情報などの価値のある商品データを売買するスマートコントラクトの場合、契約内容がブロックチェーンに記載されて契約が成立した後（購入者から販売者への代金の支払い完了後）に、購入者が何らかの方法で販売者から商品データを受け取る必要がある。それを実現する従来技術は主に２つある。
【０００４】
１つ目の技術は、販売者から購入者に対して、秘密情報を直接送付してもらう方法である（例えば、非特許文献１）。この方法の場合、販売者がオンラインにならない限り、購入者は秘密情報を送付してもらえないという問題がある。すなわち、頻繁かつ長期にオフラインになる可能性がある一般的なユーザは、販売者としてスマートコントラクトに参加できない。
【０００５】
２つ目の技術は、販売者が秘密情報をどこかのオンラインストレージに保存して、その保存先を契約内容に記載しておき、購入者が契約成立後にその保存先からダウンロードする方式である（例えば、非特許文献２および３）。この方法であれば、販売者が頻繁かつ長期にオフラインになる場合でも、購入者は秘密情報を即時に受け取ることが可能である。しかし、この方法の場合、秘密情報の保存先がブロックチェーンに記載され、全ユーザに公開される。したがって、仮に保存先ストレージが購入者以外からのアクセスを拒否する設定になっていたとしても、強力なハッキング攻撃を受けた場合、購入者以外に秘密情報が漏洩するリスクがある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】福光正幸、外７名、「ブロックチェーンと中央集権型サーバの連携による実用的スマートコントラクトの実現手法」、情報処理学会研究報告、2018年7月25日、Vol.2018-CSEC-82、No.8
【非特許文献２】「『Kirari!』を支える構成技術:ブロックチェーン応用コンテンツ管理技術」、R&Dアクティビティ、2016年2月、［online］、インターネット<URL: http://www.ntt.co.jp/RD/active/201602/jp/pf/pf003.html>
【非特許文献３】大橋盛徳、「スマートプロパティの概要とコンテンツ管理への適用」、ＮＴＴサービスエボリューション研究所、2016年4月26日、［online］、インターネット<URL: http://www.glocom.ac.jp/wp-content/uploads/2016/04/20160426BC1_mrohashi.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、上記問題を解決するためになされたものであって、販売者がオフラインであっても、データを提供するスマートコントラクトを安全かつ迅速に実行できる技術を提供することを課題とする。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理システムは、
データを保有する第１ノードと、前記第１ノードから前記データの提供を受ける第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムであって、
前記第１ノードは、
前記データの識別情報を生成する第１識別情報生成部と、
前記第１ノードが前記データを提供するための契約書のテンプレートを取得するテンプレート取得部と、
前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成部と、
前記契約書を前記第２ノードに公開する契約書公開部と、
前記データを前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼部と、
を備え、
前記テンプレートには、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられ、
前記第２ノードは、
前記公開された契約書を選択する契約書選択部と、
前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入部と、
前記選択された契約書に署名を行う署名部と、
前記アドレス記入部によって前記データ受取アドレスが記入され、前記署名部によって署名された前記契約書を、前記データベースに登録する登録部と、
を備え、
前記ストレージノードは、
前記保存依頼部からの前記依頼を受け付けた場合に、前記データの識別情報を生成する第２識別情報生成部と、
前記データを前記識別情報とともに保存する保存実行部と、
前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定部と、
前記契約が成立済みであると判定された場合、前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信部と、
を備える。
【０００９】
本発明に係る情報処理システムは、
データを保有する第１ノードと、前記第１ノードから前記データの提供を受ける第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムであって、
前記第１ノードは、
前記データの識別情報を生成する第１識別情報生成部と、
前記第１ノードが前記データを提供するための契約書のテンプレートを取得するテンプレート取得部と、
前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成部と、
前記契約書を前記第２ノードに公開する契約書公開部と、
前記データを前記識別情報とともに前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼部と、
を備え、
前記テンプレートには、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられ、
前記第２ノードは、
前記公開された契約書を選択する契約書選択部と、
前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入部と、
前記選択された契約書に署名を行う署名部と、
前記アドレス記入部によって前記データ受取アドレスが記入され、前記署名部によって署名された前記契約書を、前記データベースに登録する登録部と、
を備え、
前記ストレージノードは、
前記保存依頼部からの前記依頼を受け付けた場合に、前記データを前記識別情報とともに保存する保存実行部と、
前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定部と、
前記契約が成立済みであると判定された場合、前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信部と、
を備える。
【００１０】
本発明に係るデータ提供方法は、
第１ノードと、第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムにおいて、前記第１ノードから前記第２ノードにデータを提供するデータ提供方法であって、
前記第１ノードにおいて、前記データの識別情報を生成する第１識別情報生成ステップと、
前記第１ノードにおいて、前記第１ノードが前記データを提供するための契約書のテンプレートであって、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられたテンプレートを取得するテンプレート取得ステップと、
前記第１ノードにおいて、前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成ステップと、
前記契約書を前記第２ノードに公開する契約書公開ステップと、
前記第１ノードから、前記データを前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼ステップと、
前記ストレージノードにおいて、前記保存依頼ステップにおける前記依頼を受け付けた場合に、前記データの識別情報を生成する第２識別情報生成ステップと、
前記データを前記識別情報とともに保存する保存実行ステップと、
前記ストレージノードにおいて、前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定ステップと、
前記第２ノードにおいて、前記公開された契約書を選択する契約書選択ステップと、
前記第２ノードにおいて、前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入ステップと、
前記第２ノードにおいて、前記選択された契約書に署名を行う署名ステップと、
前記アドレス記入ステップにおいて前記データ受取アドレスが記入され、前記署名ステップにおいて署名された前記契約書を、前記データベースに登録する登録ステップと、
前記契約成立判定ステップにおいて前記契約が成立済みであると判定された場合、前記ストレージノードから前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信ステップと、
を有する。
【００１１】
本発明に係るデータ提供方法は、
第１ノードと、第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムにおいて、前記第１ノードから前記第２ノードにデータを提供するデータ提供方法であって、
前記第１ノードにおいて、前記データの識別情報を生成する第１識別情報生成ステップと、
前記第１ノードにおいて、前記第１ノードが前記データを提供するための契約書のテンプレートであって、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられたテンプレートを取得するテンプレート取得ステップと、
前記第１ノードにおいて、前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成ステップと、
前記契約書を前記第２ノードに公開する契約書公開ステップと、
前記第１ノードから、前記データを前記識別情報とともに前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼ステップと、
前記ストレージノードにおいて、前記保存依頼ステップにおける前記依頼を受け付けた場合に、前記データを前記識別情報とともに保存する保存実行ステップと、
前記ストレージノードにおいて、前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定ステップと、
前記第２ノードにおいて、前記公開された契約書を選択する契約書選択ステップと、
前記第２ノードにおいて、前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入ステップと、
前記第２ノードにおいて、前記選択された契約書に署名を行う署名ステップと、
前記アドレス記入ステップにおいて前記データ受取アドレスが記入され、前記署名ステップにおいて署名された前記契約書を、前記データベースに登録する登録ステップと、
前記契約成立判定ステップにおいて前記契約が成立済みであると判定された場合、前記ストレージノードから前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信ステップと、
を有する。
【００１２】
本発明に係る情報処理システムの製造方法は、
データを保有する第１ノードと、前記第１ノードから前記データの提供を受ける第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムの製造方法であって、
前記データの識別情報を生成する第１識別情報生成部、
前記第１ノードが前記データを提供するための契約書のテンプレートであって、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられたテンプレートを取得するテンプレート取得部、
前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成部、
前記契約書を前記第２ノードに公開する契約書公開部、および、
前記データを前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼部、
としてコンピュータを動作させるためのプログラムを前記第１ノードに配信するステップと、
前記公開された契約書を選択する契約書選択部、
前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入部、
前記選択された契約書に署名を行う署名部、および、
前記アドレス記入部によって前記データ受取アドレスが記入され、前記署名部によって署名された前記契約書を、前記データベースに登録する登録部、
としてコンピュータを動作させるためのプログラムを前記第２ノードに配信するステップと、
前記保存依頼部からの前記依頼を受け付けた場合に、前記データの識別情報を生成する第２識別情報生成部、
前記データを前記識別情報とともに保存する保存実行部、
前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定部、および、
前記契約が成立済みであると判定された場合、前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信部、
としてコンピュータを動作させるためのプログラムを前記ストレージノードに配信するステップと、
を有する。
【００１３】
本発明に係る情報処理システムの製造方法は、
データを保有する第１ノードと、前記第１ノードから前記データの提供を受ける第２ノードと、ストレージノードと、データベースと、を備えた情報処理システムの製造方法であって、
前記データの識別情報を生成する第１識別情報生成部、
前記第１ノードが前記データを提供するための契約書のテンプレートであって、前記データの提供を所望するノードのデータ受取アドレスを記入するためのアドレス領域が設けられたテンプレートを取得するテンプレート取得部、
前記テンプレートに前記識別情報を記入して署名を行うことにより、契約書を作成する契約書作成部、
前記契約書を前記第２ノードに公開する契約書公開部、および、
前記データを前記識別情報とともに前記ストレージノードに送信して、前記データを前記ストレージノードに保存するように依頼する保存依頼部、
としてコンピュータを動作させるためのプログラムを前記第１ノードに配信するステップと、
前記公開された契約書を選択する契約書選択部、
前記選択された契約書の前記アドレス領域に、前記第２ノードのデータ受取アドレスを記入するアドレス記入部、
前記選択された契約書に署名を行う署名部、および、
前記アドレス記入部によって前記データ受取アドレスが記入され、前記署名部によって署名された前記契約書を、前記データベースに登録する登録部、
としてコンピュータを動作させるためのプログラムを前記第２ノードに配信するステップと、
前記保存依頼部からの前記依頼を受け付けた場合に、前記データを前記識別情報とともに保存する保存実行部、
前記データベースに前記識別情報が記入された前記契約書が登録されているかを検索することにより、前記契約書の契約が成立済みであるかを判定する契約成立判定部、および、
前記契約が成立済みであると判定された場合、前記契約書の前記アドレス領域に記入された前記データ受取アドレスに、前記保存された前記データを送信するデータ送信部、
としてコンピュータを動作させるためのプログラムを前記ストレージノードに配信するステップと、
を有する。
【００１４】
前記データベースは、好ましくはブロックチェーンが用いられる。
【発明の効果】
【００１５】
本発明によれば、データは、第１ノードから一旦ストレージノードに保存され、ストレージノードから第２ノードに送信されるが、契約書には、データの保存先は記載されておらず、その代わりに、購入者である第２ノードのデータ受取アドレスが記載されている。そして、契約が成立した場合、ストレージノードから契約書に記載されたデータ受取アドレスにデータが送信される構成となっている。そのため、データの販売者である第１ノード１がオフラインの場合でも、契約成立後に速やかに、購入者である第２ノードはデータを受け取ることができる。また、データベースに登録された契約書には、データの保存先（ストレージノード）は記載されていないため、第三者によるストレージノードへのハッキング攻撃も回避できる。したがって、販売者がオフラインであっても、データを提供するスマートコントラクトを安全かつ迅速に実行することができる。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態に係る情報処理システムの概略図である。
【図２】第１実施形態に係る第１ノードの構成を示す機能ブロックである。
【図３】第１実施形態に係る第２ノードの構成を示す機能ブロックである。
【図４】第１実施形態に係るストレージノードの構成を示す機能ブロックである。
【図５】第１実施形態に係る情報処理システムにおけるデータ提供方法の処理を示すシーケンスチャートである。
【図６】第１実施形態に係る契約書のテンプレートの一例である。
【図７】第１実施形態に係る第１ノードにおいて作成された契約書の一例である。
【図８】さらにアドレス記入欄にデータ受取アドレスが記入され、データ購入者の署名欄に電子署名がなされた契約書の一例である。
【図９】第２実施形態に係る情報処理システムの概略図である。
【図１０】第２実施形態に係る第１ノードの構成を示す機能ブロックである。
【図１１】第２実施形態に係る第２ノードの構成を示す機能ブロックである。
【図１２】第２実施形態に係るストレージノードの構成を示す機能ブロックである。
【図１３】第２実施形態に係る仲介ノードの構成を示す機能ブロックである。
【図１４】第２実施形態に係る情報処理システムにおけるデータ提供方法の処理を示すシーケンスチャートである。
【図１５】第２実施形態に係る情報処理システムにおけるデータ提供方法の処理を示すシーケンスチャートである。
【図１６】第２実施形態に係る契約書のテンプレートの一例である。
【図１７】第２実施形態に係る第１ノードにおいて作成された契約書の一例である。
【図１８】さらに仲介業者の署名欄に電子署名がなされた契約書の一例である。
【図１９】さらにアドレス記入欄にデータ受取アドレスが記入され、データ購入者の署名欄に電子署名がなされた契約書の一例である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について添付図面を参照して説明する。なお、本発明は、下記の実施形態に限定されるものではない。
【００１８】
〔第１実施形態〕
まず、本発明の特徴の把握を容易にすべく簡略化した実施形態を第１実施形態として説明する。
【００１９】
（システム構成）
図１は、第１実施形態に係る情報処理システム１００の概略図である。情報処理システム１００は、ブロックチェーン技術を利用したプラットフォームであり、第１ノード１と、第２ノード２と、ストレージノード３と、ブロックチェーン４と、を備えている。第１ノード１、第２ノード２、ストレージノード３およびブロックチェーン４は、例えばインターネットなどの通信ネットワークＮを介して有線または無線により通信可能に接続されている。
【００２０】
第１ノード１は、秘密情報であるデータを保有し、そのデータの販売を希望している販売者が管理している情報処理装置であり、第１ノード１には、後述する第１プログラムＰ１がインストールされている。第１ノード１は、デスクトップ型ＰＣ、ノート型ＰＣ、スマートフォン、タブレット端末、ＰＤＡなどの汎用のコンピュータで構成することができる。
【００２１】
第２ノード２は、第１ノード１が保有するデータの提供を受ける購入者が管理している情報処理装置であり、第２ノード２には、後述する第２プログラムＰ２がインストールされている。第２ノード２も、第１ノード１と同様に、デスクトップ型ＰＣ、ノート型ＰＣ、スマートフォン、タブレット端末、ＰＤＡなどの汎用のコンピュータで構成することができる。
【００２２】
ストレージノード３は、転送されるデータを一時的に保管するためのオンラインストレージを有する情報処理装置であり、ストレージノード３には、後述するストレージプログラムがインストールされている。ストレージノード３のユーザは特に限定されず、オンラインストレージサービスを提供する業者が管理するサーバであってもよいし、個人が管理する端末装置であってもよい。あるいは、後述する第２実施形態のように、ストレージノード３は、Ｐ２Ｐストレージを構成するノードであってもよい。
【００２３】
ブロックチェーン４は、情報処理システム１００に存在する全てのノード間で実施された取引情報（トランザクション）群を一定時間毎に集約してブロック化して、各ブロックが直前ブロックとの連結条件を満たしていることを示す証拠情報を各ブロックに記載して、各ブロックをチェーン状に連結させたものである。ブロックチェーン４は、これまでの全てのトランザクションを記録しており、情報処理システム１００に存在するノード群によって分散管理されている。また、情報処理システム１００では、独自の暗号通貨による取引を発生させることができる。そのような暗号通貨の例として、ビットコイン（Bitcoin）やイーサリアム（Ethereum）などが挙げられるが、本実施形態では、暗号通貨がビットコインであるものとする。
【００２４】
なお、情報処理システム１００は、第１ノード１、第２ノード２およびストレージノード３以外のノード、すなわち、第１プログラム、第２プログラムおよびストレージプログラムのいずれもがインストールされていないノードを含むことができる。
【００２５】
（各ノードの構成）
図２は、第１ノード１の構成を示す機能ブロックであり、図３は、第２ノード２の構成を示す機能ブロックであり、図４は、ストレージノード３の構成を示す機能ブロックである。
【００２６】
図２に示すように、第１ノード１は、入力部１１と、表示部１２と、通信部１３と、記憶部１４と、制御部１５と、を備えている。
【００２７】
入力部１１は、例えばキーボード、マウスまたはタッチパネルで構成することができ、表示部１２は、例えば液晶ディスプレイや有機ＥＬディスプレイで構成することができる。通信部１３は、第１ノード１が通信ネットワークＮを介して他のノード等と通信を行うためのインターフェースである。
【００２８】
記憶部１４は、第１ノード１で用いられる各種プログラムやデータを記憶するための不揮発性の補助記憶装置であり、例えばハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）で構成することができる。
【００２９】
記憶部１４には、本実施形態に係る第１プログラムＰ１、個人データＤ１およびテンプレートＴ１が記憶されている。第１プログラムＰ１は、情報処理システム１００においてスマートコントラクトの安全かつ迅速な実行を可能にするためのサービス（以下、「スマートコントラクト実行サービス」と称する）の処理の一部を第１ノード１に実行させるためのプログラムである。第１プログラムＰ１を第１ノード１に配信する方法は特に限定されず、通信ネットワークＮを介して第１プログラムＰ１を第１ノード１にダウンロードしてもよいし、コンピュータ読み取り可能な非一時的な記録媒体に第１プログラムＰ１を記録しておき、当該記憶媒体を介して第１プログラムＰ１を第１ノード１にインストールしてもよい。例えば、第１ノード１がスマートフォンである場合、Ａｐｐｌｅ社のＡｐｐＳｔｏｒｅ（登録商標）やＧｏｏｇｌｅ社のＧｏｏｇｌｅＰｌａｙ（登録商標）などを介して、第１プログラムＰ１を第１ノード１に配信することができる。
【００３０】
個人データＤ１は、第１ノード１のユーザが販売を希望する秘密情報である。そのような秘密情報として、例えばユーザの医療画像が挙げられる。
【００３１】
テンプレートＴ１は、第１ノード１が各種データを提供する契約書のテンプレートであり、第１ノード１が第１プログラムＰ１をインストールすることにより記憶部１４に格納される。テンプレートＴ１の例については、後述する。
【００３２】
制御部１５は、第１ノード１が備えるＣＰＵやＭＰＵなどの演算処理装置が、記憶部１４に記憶されている第１プログラムＰ１をＲＡＭなどの主記憶装置に読み出して実行することにより実現される機能ブロックである。制御部１５は、カタログ作成部１５１と、第１識別情報生成部１５２と、テンプレート取得部１５３と、契約書作成部１５４と、契約書公開部１５５と、保存依頼部１５６と、を備えている。これらの各部の機能については、後述する。
【００３３】
図３に示すように、第２ノード２は、入力部２１と、表示部２２と、通信部２３と、記憶部２４と、制御部２５と、を備えている。入力部２１、表示部２２、通信部２３および記憶部２４はそれぞれ、第１ノード１の入力部１１、表示部１２、通信部１３および記憶部１４と同様に構成することができる。
【００３４】
記憶部２４には、本実施形態に係る第２プログラムＰ２が記憶されている。第２プログラムＰ２は、スマートコントラクト実行サービスの処理の一部を第２ノード２に実行させるためのプログラムである。第２プログラムＰ２を第２ノード２に配信する方法は特に限定されず、通信ネットワークＮを介して第２プログラムＰ２を第２ノード２にダウンロードしてもよいし、コンピュータ読み取り可能な非一時的な記録媒体に第２プログラムＰ２を記録しておき、当該記憶媒体を介して第２プログラムＰ２を第２ノード２にインストールしてもよい。
【００３５】
制御部２５は、第２ノード２が備えるＣＰＵやＭＰＵなどの演算処理装置が、記憶部２４に記憶されている第２プログラムＰ２をＲＡＭなどの主記憶装置に読み出して実行することにより実現される機能ブロックである。制御部２５は、契約書選択部２５１と、アドレス記入部２５２と、署名部２５３と、登録部２５４と、を備えている。これらの各部の機能については、後述する。
【００３６】
図４に示すように、ストレージノード３は、入力部３１と、表示部３２と、通信部３３と、記憶部３４と、制御部３５と、を備えている。入力部３１、表示部３２、通信部３３および記憶部３４はそれぞれ、第１ノード１の入力部１１、表示部１２、通信部１３および記憶部１４と同様に構成することができる。
【００３７】
記憶部３４には、本実施形態に係るストレージプログラムＰ３が記憶されている。ストレージプログラムＰ３は、スマートコントラクト実行サービスの処理の一部をストレージノード３に実行させるためのプログラムである。ストレージプログラムＰ３をストレージノード３に配信する方法は特に限定されず、通信ネットワークＮを介してストレージプログラムＰ３をストレージノード３にダウンロードしてもよいし、コンピュータ読み取り可能な非一時的な記録媒体にストレージプログラムＰ３を記録しておき、当該記憶媒体を介してストレージプログラムＰ３をストレージノード３にインストールしてもよい。
【００３８】
制御部３５は、ストレージノード３が備えるＣＰＵやＭＰＵなどの演算処理装置が、記憶部３４に記憶されているストレージプログラムＰ３をＲＡＭなどの主記憶装置に読み出して実行することにより実現される機能ブロックである。制御部３５は、第２識別情報生成部３５１と、契約書確認部３５２と、保存実行部３５３と、契約成立判定部３５４と、データ送信部３５５と、を備えている。これらの各部の機能については、後述する。
【００３９】
（処理手順）
図５は、情報処理システム１００において、第１ノード１から第２ノード２に個人データを提供するデータ提供方法の処理を示すシーケンスチャートである。なお、各処理における通信の形態は特に限定されない。また実際には、暗号通貨による決済処理等も実施されるが、便宜上、本実施形態では省略する。
【００４０】
本実施形態では、図２〜図４にそれぞれ示す第１ノード１の制御部１５、第２ノード２の制御部２５およびストレージノード３の制御部３５によって図５の主な処理が実行される。なお、図５の処理の一部を、ユーザが第１ノード１の入力部１１、第２ノード２の入力部２１またはストレージノード３の入力部３１を介して操作することによりマニュアルで行ってもよい。
【００４１】
まず、第１ノード１において、カタログ作成部１５１が、秘密情報である個人データＤ１の内容を説明するためのカタログを作成する（ステップＳ１）。個人データＤ１が医療画像の場合、カタログには、ユーザの性別、身長、体重、病歴、撮影日時、フォーマットの種類などが含まれる。
【００４２】
続いて、第１ノード１の第１識別情報生成部１５２が、個人データＤ１の識別情報を生成する（ステップＳ２、第１識別情報生成ステップ）。識別情報の具体的な内容は特に限定されないが、本実施形態では、第１識別情報生成部１５２は、個人データＤ１のハッシュ値Ｈａｓｈ−Ｄを計算し、そのハッシュ値Ｈａｓｈ−Ｄを識別情報とする。
【００４３】
続いて、第１ノード１のテンプレート取得部１５３が、個人データＤ１を販売するための契約書のテンプレートＴ１を取得する（ステップＳ３、テンプレート取得ステップ）。本実施形態では、テンプレート取得部１５３は、記憶部１４に格納されているテンプレートＴ１を主記憶装置に読み出すことにより、テンプレートＴ１を取得する。なお、テンプレートＴ１が記憶部１４に格納されていない場合、テンプレート取得部１５３は、他のノードからテンプレートＴ１をダウンロードしたり、ユーザの操作によってテンプレートＴ１を作成することにより、テンプレートＴ１を取得してもよい。
【００４４】
図６は、テンプレートＴ１の一例である。テンプレートＴ１には、通常の契約書と同様に、識別情報（Ｄａｔａ ＩＤ）、データを提供する条件（Ｃｏｎｄｉｔｉｏｎｓ）、署名（Ｓｉｇｎａｔｕｒｅｓ）を記入するための領域が設けられている。さらに、テンプレートＴ１には、データの提供を所望するノードのデータ受取アドレス（Ｄｅｌｉｖｅｒｙ Ａｄｄｒｅｓｓ）を記入するためのアドレス領域が設けられている。
【００４５】
再び図５を参照する。テンプレートＴ１の取得が完了すると、第１ノード１の契約書作成部１５４が、テンプレートＴ１に識別情報を記入して署名を行うことにより、契約書を作成する（ステップＳ４、契約書作成ステップ）。作成された契約書の一例を図７に示す。上述のように、識別情報は個人データＤ１のハッシュ値Ｈａｓｈ−Ｄであるため、識別情報には、Ｈａｓｈ−Ｄが記入され、条件には、データの提供価格などの条件が記入され、データ販売者（Ｓｅｌｌｅｒ）の署名欄に電子署名がなされている。
【００４６】
なお、契約書におけるデータ受取アドレスの記入領域は、データ購入者（Ｂｕｙｅｒ）のアドレスを記入するための領域であるため、この段階では空欄となっている。
【００４７】
再び図５を参照する。契約書の作成が完了すると、第１ノード１の契約書公開部１５５が、契約書を第２ノード２に公開する（ステップＳ５、契約書公開ステップ）。本実施形態では、契約書公開部１５５は、所定の契約書公開サーバＳに契約書をカタログとともにアップロードすることにより、情報処理システム１００の全ノードに契約書を公開する。なお、契約書公開部１５５が契約書を第２ノード２に公開する方法は特に限定されず、例えば、第１ノード１が第２ノード２に契約書を直接送信して、個人データＤ１の販売を申し出てもよい。この場合は、第２ノード２以外のノードには契約書は公開されない。
【００４８】
また、第１ノード１において、保存依頼部１５６が、個人データＤ１をストレージノード３に送信して、個人データＤ１をストレージノード３に保存するように依頼する（ステップＳ６、保存依頼ステップ）。ストレージノード３は、第１ノード１が適宜選択してもよいし、スマートコントラクト実行サービスを提供する業者が指定するノードであってもよい。前記依頼には、ステップＳ５でアップロードされた契約書のアクセス先が含まれていてもよい。なお、ステップＳ６において、保存依頼部１５６は、個人データＤ１を識別情報（ハッシュ値Ｈａｓｈ−Ｄ）とともにストレージノード３に送信してもよい。
【００４９】
以上のように、最初のステップＳ１〜Ｓ６は、第１ノード１において実施される。
【００５０】
続いて、ストレージノード３では、第１ノード１の保存依頼部１５６からの前記依頼を受け付けた場合に、第２識別情報生成部３５１が、個人データＤ１のハッシュ値を（＝Ｈａｓｈ−Ｄ）をその識別情報Ｈ１として計算する（ステップＳ７）。なお、ステップＳ６において、保存依頼部１５６が個人データＤ１とともに識別情報もストレージノード３に送信していた場合、ステップＳ７を省略してもよい。
【００５１】
さらに、契約書確認部３５２が、ステップＳ５でアップロードされた契約書にアクセスする。契約書確認部３５２は、前述の識別情報Ｈ１に基づき、当該識別情報Ｈ１が記入された契約書が公開されていることを確認する（ステップＳ８）。なお、ステップＳ８は省略してもよい。
【００５２】
その後、ストレージノード３の保存実行部３５３が、個人データＤ１および識別情報Ｈ１をストレージノード３の記憶部３４に保存する（ステップＳ９、保存実行ステップ）。なお、個人データＤ１および識別情報Ｈ１の保存先は特に限定されず、ストレージノード３と通信可能な他のストレージであってもよい。また、契約書が第２ノード２以外に公開されていない場合は、ステップＳ８を実施せずに、ステップＳ９を実施してもよい。
【００５３】
続いて、ストレージノード３の契約成立判定部３５４が、定期的にブロックチェーン４にアクセスして、ブロックチェーン４に識別情報Ｈ１が記入された契約書が登録されているかを検索することにより、契約書の契約が成立済みであるかを判定する（ステップＳ１０、契約成立判定ステップ）。契約成立判定部３５４がブロックチェーン４にアクセスする間隔は特に限定されないが、ブロックチェーン４に新たなブロックが追加される間隔と同じであってもよい。本実施形態では、スマートコントラクトに用いられる暗号通貨がビットコインであるため、契約成立判定部３５４は約１０分ごとにブロックチェーン４にアクセスする。
【００５４】
ステップＳ５においてカタログとともに契約書公開サーバＳにアップロードされた契約書は、上述のように、契約書公開サーバＳにアクセス可能な全ノードに公開される。そして、これらのノードの中で、第２ノード２のユーザが、カタログおよび契約書を閲覧して個人データＤ１の購入を希望したとする。
【００５５】
その場合、第２ノード２の契約書選択部２５１は、例えばユーザの入力部２１を介した操作に応じて、公開された契約書を選択し、契約書を第２ノード２にダウンロードする（ステップＳ１１、契約書選択ステップ）。なお、契約書のダウンロードは必須ではない。
【００５６】
続いて、第２ノード２のアドレス記入部２５２が、前記選択された契約書のアドレス領域に、第２ノード２のデータ受取アドレスを記入し（ステップＳ１２、アドレス記入ステップ）、署名部２５３が、契約書に署名を行う（ステップＳ１３、署名ステップ）。これにより、図８に示すように契約書のアドレス記入欄に第２ノード２のデータ受取アドレス（abc@defg.com）が記入され、データ購入者（Ｂｕｙｅｒ）の署名欄に電子署名がなされた契約書が完成する。
【００５７】
続いて、第２ノード２の登録部２５４が、アドレス記入部２５２によってデータ受取アドレスが記入され、署名部２５３によって署名された契約書を、ブロックチェーン４に登録する（ステップＳ１４、登録ステップ）。登録完了後、個人データＤ１を第２ノード２のユーザに提供する旨の契約が成立する。
【００５８】
その後、ストレージノード３の契約成立判定部３５４がブロックチェーン４にアクセスし、ブロックチェーン４に契約書が登録されていることが確認できた場合、契約が成立済みであると判定する（ステップＳ１５）。
【００５９】
これに応じて、ストレージノード３のデータ送信部３５５は、契約書のアドレス領域に記入されたデータ受取アドレス（abc@defg.com）に、記憶部３４に保存された個人データＤ１を送信する（ステップＳ１６、データ送信ステップ）。これにより、第２ノード２は個人データＤ１を受け取ることができる。なお、データ受取アドレスは特に限定されず、メールアドレスであってもよいし、ストレージ領域アドレスであってもよいし、郵便住所であってもよい。
【００６０】
（本実施形態の総括）
以上のように、個人データＤ１は、第１ノード１から一旦ストレージノード３に保存され、ストレージノード３から第２ノード２に送信されるが、契約書には、個人データＤ１の保存先は記載されておらず、その代わりに、購入者である第２ノード２のデータ受取アドレスが記載されている。そして、契約が成立した場合、ストレージノード３から契約書に記載されたデータ受取アドレスに個人データＤ１が送信される構成となっている。
【００６１】
このような構成とすることにより、個人データＤ１の販売者である第１ノード１がオフラインの場合でも、契約成立後に速やかに、購入者である第２ノード２は個人データＤ１を受け取ることができる。また、ブロックチェーン４に登録された契約書には、個人データＤ１の保存先（ストレージノード３）は記載されていないため、第三者によるストレージノード３へのハッキング攻撃も回避できる。したがって、販売者がオフラインであっても、秘密情報のスマートコントラクトを安全かつ迅速に実行できる。
【００６２】
〔第２実施形態〕
第２実施形態では、スマートコントラクトの実行をさらに安全かつスムーズに行うための仲介ノードをさらに設けた形態について説明する。なお、第１実施形態におけるものと同じの機能を有する部材については、同じ符号を付し、その説明を省略する。
【００６３】
（システム構成）
図９は、第２実施形態に係る情報処理システム２００の概略図である。情報処理システム２００は、第１ノード１’と、第２ノード２’と、Ｐ２Ｐストレージ３’と、ブロックチェーン４と、仲介ノード５と、を備えている。第１ノード１’、第２ノード２’、Ｐ２Ｐストレージ３’、ブロックチェーン４および仲介ノード５は、通信ネットワークＮを介して有線または無線により通信可能に接続されている。
【００６４】
第１ノード１’は、秘密情報であるデータを保有し、そのデータの販売を希望している販売者が管理している情報処理装置であり、第１ノード１には、後述する第１プログラムＰ１’がインストールされている。第１ノード１’のハードウェア構成は、第１実施形態に係る第１ノード１と同様である。
【００６５】
第２ノード２’は、第１ノード１’が保有するデータの提供を受ける購入者が管理している情報処理装置であり、第２ノード２’には、後述する第２プログラムＰ２’がインストールされている。第２ノード２’のハードウェア構成は、第１実施形態に係る第２ノード２と同様である。
【００６６】
Ｐ２Ｐストレージ３’は、Ｐ２Ｐネットワークでつながっている不特定多数のストレージノード３”により共同で構築されているストレージである。Ｐ２Ｐストレージ３’の保存データは、複数のストレージノード３”に分散秘匿されるため、個々のストレージノード３”は完全な保存データにアクセスできない。
【００６７】
仲介ノード５は、スマートコントラクト実行サービスを提供する仲介業者が管理する情報処理装置であり、仲介ノード５には、後述する仲介プログラムＰ４がインストールされている。また本実施形態では、第１ノード１にインストールされる第１プログラムＰ１’、第２ノード２にインストールされる第２プログラムＰ２’、およびストレージノード３”にインストールされるストレージプログラムＰ３は、仲介ノード５から配信される。
【００６８】
（各ノードの構成）
図１０は、第１ノード１’の構成を示す機能ブロックであり、図１１は、第２ノード２’の構成を示す機能ブロックであり、図１２は、Ｐ２Ｐストレージ３’を共同構成するストレージノード３”の構成を示す機能ブロック図であり、図１３は、仲介ノード５の構成を示す機能ブロックである。
【００６９】
図１０に示すように、第１ノード１’は、入力部１１と、表示部１２と、通信部１３と、記憶部１４と、制御部１５’と、を備えている。すなわち、第１ノード１’は、図２に示す第１ノード１において、制御部１５を制御部１５’に置き換えた構成である。
【００７０】
記憶部１４には、本実施形態に係る第１プログラムＰ１’、個人データＤ１、テンプレートＴ１’および復元鍵Ｋ１が記憶されている。第１プログラムＰ１’は、情報処理システム２００におけるスマートコントラクト実行サービスの処理の一部を第１ノード１’に実行させるためのプログラムである。個人データＤ１は、第１実施形態におけるものと同様、第１ノード１’のユーザが販売を希望する秘密情報である。テンプレートＴ１’および復元鍵Ｋ１については、後述する。
【００７１】
制御部１５’は、カタログ作成部１５１と、第１識別情報生成部１５２と、テンプレート取得部１５３と、契約書作成部１５４と、契約書公開部１５５と、保存依頼部１５６と、暗号化部１５７と、契約書等送信部１５８と、を備えている。すなわち、制御部１５’は、図２に示す制御部１５において、暗号化部１５７および契約書等送信部１５８をさらに備えた構成である。これらの各部の機能については、後述する。
【００７２】
図１１に示すように、第２ノード２’は、入力部２１と、表示部２２と、通信部２３と、記憶部２４と、制御部２５’と、を備えている。すなわち、第２ノード２’は、図３に示す第２ノード２において、制御部２５を制御部２５’に置き換えた構成である。
【００７３】
記憶部２４には、本実施形態に係る第２プログラムＰ２’が記憶されている。第２プログラムＰ２’は、情報処理システム２００におけるスマートコントラクト実行サービスの処理の一部を第２ノード２’に実行させるためのプログラムである。
【００７４】
制御部２５’は、契約書選択部２５１と、アドレス記入部２５２と、署名部２５３と、登録部２５４と、ハッシュ値計算部２５５と、ハッシュ値送信部２５６と、復元部２５７と、を備えている。これらの各部の機能については、後述する。
【００７５】
図１２に示すように、ストレージノード３”は、入力部３１と、表示部３２と、通信部３３と、記憶部３４と、制御部３５’と、を備えている。すなわち、ストレージノード３”は、図４に示すストレージノード３において、制御部３５を制御部３５’に置き換えた構成である。
【００７６】
制御部３５’は、契約書確認部３５２と、保存実行部３５３と、契約成立判定部３５４と、データ送信部３５５と、を備えている。すなわち、制御部３５’は、図４に示す制御部３５において、第２識別情報生成部３５１を省略した構成である。
【００７７】
図１３に示すように、仲介ノード５は、入力部５１と、表示部５２と、通信部５３と、記憶部５４と、制御部５５と、を備えている。入力部５１、表示部５２、通信部５３および記憶部５４はそれぞれ、図２に示す第１ノード１の入力部１１、表示部１２、通信部１３および記憶部１４と同様に構成することができる。
【００７８】
記憶部５４には、本実施形態に係る仲介プログラムＰ４が記憶されている。仲介プログラムＰ４は、情報処理システム２００におけるスマートコントラクト実行サービスの処理の一部を仲介ノード５に実行させるためのプログラムである。
【００７９】
制御部５５は、仲介ノード５が備えるＣＰＵやＭＰＵなどの演算処理装置が、記憶部５４に記憶されている仲介プログラムＰ４をＲＡＭなどの主記憶装置に読み出して実行することにより実現される機能ブロックである。制御部５５は、検証部５５１と、保存部５５２と、署名部５５３と、アップロード部５５４と、比較部５５５と、鍵送信部５５６と、決済部５５７と、を備えている。これらの各部の機能については、後述する。
【００８０】
（処理手順）
図１４および図１５は、情報処理システム２００において、第１ノード１から第２ノード２に個人データを提供するデータ提供方法の処理を示すシーケンスチャートである。図１４および図１５におけるノード間の通信を示す矢印について、実線矢印はブロードキャストを示し、破線矢印は暗号通信を示し、一点鎖線矢印は送信元を匿名化と通信路の暗号化を実施した匿名暗号通信を示し、二点鎖線矢印はブロックチェーン４上での暗号通貨の動きを示している。なお、各処理における通信の形態は上記に限定されない。
【００８１】
本実施形態では、図１０〜図１３にそれぞれ示す第１ノード１’の制御部１５’、第２ノード２’の制御部２５’、ストレージノード３”の制御部３５’および仲介ノード５の制御部５５によって図１４および図１５の主な処理が実行される。なお、図１４および図１５の処理の一部を、ユーザが第１ノード１’の入力部１１、第２ノード２’の入力部２１、ストレージノード３”の入力部３１または仲介ノード５の入力部５１を介して操作することによりマニュアルで行ってもよい。
【００８２】
まず、第１ノード１’において、カタログ作成部１５１が、秘密情報である個人データＤ１の内容を説明するためのカタログを作成する（ステップＳ２１）。個人データＤ１が医療画像の場合、カタログには、ユーザの性別、身長、体重、病歴、撮影日時、フォーマットの種類などが含まれる。
【００８３】
続いて、第１ノード１’の暗号化部１５７が、個人データＤ１を暗号化して暗号化データを作成する（ステップＳ２２）。なお、記憶部１４に格納されている復元鍵Ｋ１は、暗号化データを復元するための鍵である。
【００８４】
続いて、第１ノード１’の第１識別情報生成部１５２が、個人データＤ１の識別情報を生成する（ステップＳ２３、第１識別情報生成ステップ）。本実施形態では、第１識別情報生成部１５２は、個人データＤ１のハッシュ値Ｈａｓｈ−Ｄを計算することにより、ハッシュ値Ｈａｓｈ−Ｄを識別情報として生成するとともに、カタログのハッシュ値であるハッシュ値Ｈａｓｈ−Ｘを計算する。さらに、第１識別情報生成部１５２は、暗号化データのハッシュ値（暗号ハッシュ値Ｈａｓｈ−Ｅとする）も計算する。
【００８５】
続いて、第１ノード１’のテンプレート取得部１５３が、個人データＤ１を販売するための契約書のテンプレートＴ１’を取得する（ステップＳ２４、テンプレート取得ステップ）。テンプレートＴ１’の取得態様は、第１実施形態と同様である。
【００８６】
図１６は、テンプレートＴ１’の一例である。テンプレートＴ１’には、識別情報（Ｄａｔａ ＩＤ）、カタログのハッシュ値（ＸＭＬ ＩＤ）、データを提供する条件（Ｃｏｎｄｉｔｉｏｎｓ）、署名（Ｓｉｇｎａｔｕｒｅｓ）およびデータ受取アドレス（Ｄｅｌｉｖｅｒｙ Ａｄｄｒｅｓｓ）を記入するための領域が設けられている。署名を記入するための領域は、データ販売者（Ｓｅｌｌｅｒ）、データ購入者（Ｂｕｙｅｒ）および仲介業者（Ａｇｅｎｔ）の署名欄からなる。
【００８７】
再び図１４を参照する。テンプレートＴ１’の取得が完了すると、第１ノード１’の契約書作成部１５４が、テンプレートＴ１’に識別情報を記入して署名を行うことにより、契約書を作成する（ステップＳ２５、契約書作成ステップ）。作成された契約書の一例を図１７に示す。上述のように、識別情報は個人データＤ１およびカタログのハッシュ値Ｈａｓｈ−Ｄ、Ｈａｓｈ−Ｘであるため、Ｄａｔａ ＩＤおよびＸＭＬ ＩＤには、Ｈａｓｈ−ＤおよびＨａｓｈ−Ｘがそれぞれ記入され、条件には、データの提供価格などの条件が記入され、データ販売者（Ｓｅｌｌｅｒ）の署名欄に電子署名がなされている。また、購入者に届いた秘匿化データの復元方法も記載されている。
【００８８】
なお、契約書におけるデータ受取アドレスの記入領域は、データ購入者のアドレスを記入するための領域であるため、この段階では空欄となっている。
【００８９】
再び図１４を参照する。契約書の作成が完了すると、第１ノード１’の契約書等送信部１５８が、仲介ノード５に契約書をカタログ、復元鍵Ｋ１および暗号ハッシュ値Ｈａｓｈ−Ｅとともに送信する（ステップＳ２６）。そして、第１ノード１’の契約書公開部１５５が、情報処理システム２００の全ノードに契約書を公開するために、仲介ノード５に対し契約書およびカタログの公開を依頼する（ステップＳ２７）。
【００９０】
これに対し、仲介ノード５の検証部５５１は、第１ノード１’から受信した契約書およびカタログに基づき、第１ノード１’が販売しようとしている個人データＤ１が社会通念上適切なものであるか（例えば反社会的な内容が含まれていないか）等を検証する（ステップＳ２８）。なお、ステップＳ２８は省略してもよい。
【００９１】
個人データＤ１が適切なものであると判定された場合、仲介ノード５の保存部５５２は、第１ノード１’から受信した復元鍵Ｋ１および暗号ハッシュ値Ｈａｓｈ−Ｅを記憶部５４に保存する（ステップＳ２９）。
【００９２】
また、仲介ノード５の署名部５５３が契約書に署名を行う（ステップＳ３０）。これにより、図１８に示すように契約書の仲介業者の署名欄に電子署名がなされる。なお、ステップＳ２９とステップＳ３０の順序は逆でもよい。
【００９３】
続いて、仲介ノード５のアップロード部５５４が、第１ノード１’から受信した契約書を所定の契約書公開サーバ（例えば、仲介業者が運営するＷｅｂサイト）にカタログとともにアップロードすることにより、契約書を公開する（ステップＳ３１、契約書公開ステップ）。
【００９４】
また、第１ノード１’において、保存依頼部１５６が、個人データＤ１を暗号化や分散化などにより秘匿化したデータを、識別情報（ハッシュ値Ｈａｓｈ−Ｄ）とともにＰ２Ｐストレージ３’を共同構成する任意のストレージノード３”群に送信して、データをストレージノード３”群に分散秘匿保存するように依頼する（ステップＳ３２、保存依頼ステップ）。当該依頼には、ステップＳ３１でアップロードされた契約書のアクセス先が含まれてもよい。すなわち本実施形態では、第１実施形態と異なり、保存依頼部１５６は、個人データＤ１の代わりに秘匿化されたデータをストレージノード３”に送信して、秘匿化されたデータをストレージノード３”群に分散秘匿保存するように依頼する。
【００９５】
続いて、各々のストレージノード３”では、第１ノード１’の保存依頼部１５６からの前記依頼を受け付けた場合に、契約書確認部３５２がステップＳ３１でアップロードされた契約書にアクセスし、保存依頼部１５６から受信した識別情報に基づき、当該識別情報が記入された契約書が公開されていることを確認する（ステップＳ３３）。なお、ステップＳ３３は省略してもよい。
【００９６】
その後、各々のストレージノード３”の保存実行部３５３が、第１ノード１’から受信した秘匿化されたデータおよび識別情報（ハッシュ値Ｈａｓｈ−Ｄ＝個人データハッシュ値Ｈ１とする）をストレージノード３”の記憶部３４に保存する（ステップＳ３４、保存実行ステップ）。すなわち本実施形態では、第１実施形態と異なり、保存実行部３５３は、個人データＤ１の代わりに秘匿化されたデータを保存する。
【００９７】
続いて、各々のストレージノード３”群の契約成立判定部３５４が、定期的にブロックチェーン４にアクセスして、ブロックチェーン４に識別情報が記入された契約書が登録されているかを検索することにより、契約書の契約が成立済みであるかを判定する（ステップＳ３５、契約成立判定ステップ）。
【００９８】
続いて、第２ノード２’のユーザが、ステップＳ３１において公開された契約書およびカタログを閲覧して個人データＤ１の購入を希望したとする。
【００９９】
その場合、第２ノード２’の契約書選択部２５１は、例えばユーザの入力部２１を介した操作に応じて、公開された契約書を選択し、契約書を第２ノード２’にダウンロードする（ステップＳ３６、契約書選択ステップ）。なお、契約書のダウンロードは必須ではない。
【０１００】
続いて、第２ノード２’のアドレス記入部２５２が、前記選択された契約書のアドレス領域に、第２ノード２’のデータ受取アドレスを記入し（ステップＳ３７、アドレス記入ステップ）、署名部２５３が、契約書に署名を行う（ステップＳ３８、署名ステップ）。これにより、図１９に示すように契約書のアドレス記入欄に第２ノード２’のデータ受取アドレス（abc@defg.com）が記入され、データ購入者（Ｂｕｙｅｒ）の署名欄に電子署名がなされた契約書が完成する。
【０１０１】
続いて、第２ノード２’の登録部２５４が、アドレス記入部２５２によってデータ受取アドレスが記入され、署名部２５３によって署名された契約書を、ブロックチェーン４に登録する（ステップＳ３９、登録ステップ）。登録完了後、個人データＤ１を第２ノード２’のユーザに販売する旨の契約が成立する。
【０１０２】
契約が成立すると、個人データＤ１の代金は、いったん仲介ノード５に預託される（Ｓ４０）。より具体的には、第２ノード２’から仲介ノード５へ、個人データＤ１の代金に仲介手数料を上乗せした金額が送金される。
【０１０３】
その後、各々のストレージノード３”の契約成立判定部３５４がブロックチェーン４にアクセスし、ブロックチェーン４に契約書が登録されていることが確認できた場合、契約書の契約が成立済みであると判定する（ステップＳ４１）。
【０１０４】
これに応じて、契約書の契約が成立済みであると判定したストレージノード３”群のデータ送信部３５５は、契約書のアドレス領域に記入されたデータ受取アドレス（abc@defg.com）に、記憶部３４に保存されている秘匿化されたデータを送信する（ステップＳ４２、データ送信ステップ）。すなわち本実施形態では、第１実施形態と異なり、データ送信部３５５は、個人データＤ１の代わりに秘匿化されたデータを第２ノード２’に送信する。これにより、第２ノード２’は、秘匿化されたデータを受信し、それを結合することで暗号データを取得する（ステップＳ４３）。
【０１０５】
続いて、暗号化データを復元して個人データＤ１を得るために、第２ノード２’および仲介ノード５によって以下の処理が実施される。
【０１０６】
まず、第２ノード２’において、ハッシュ値計算部２５５が、ストレージノード３”から受信した暗号化データのハッシュ値である暗号ハッシュ値（Ｈａｓｈ−Ｅ’とする）を計算する（ステップＳ４４）。そして、ハッシュ値送信部２５６が、ハッシュ値計算部２５５によって算出された暗号ハッシュ値Ｈａｓｈ−Ｅ’を仲介ノード５に送信する（ステップＳ４５）。
【０１０７】
これに対し、仲介ノード５では、比較部５５５が、ハッシュ値送信部２５６から受信した暗号ハッシュ値Ｈａｓｈ−Ｅ’を、記憶部５４に保存された暗号ハッシュ値Ｈａｓｈ−Ｅと比較する（ステップＳ４６）。そして、比較部５５５によって比較された２つの暗号ハッシュ値Ｈａｓｈ−Ｅ，Ｈａｓｈ−Ｅ’が一致した場合に、鍵送信部５５６が、記憶部５４に保存された復元鍵Ｋ１を第２ノード２’に送信する（ステップＳ４７）。
【０１０８】
第２ノード２’では、復元部２５７が、仲介ノード５から受信した復元鍵Ｋ１を用いて、ステップＳ４３で取得した暗号化データを復元する（ステップＳ４８）。これにより、第２ノード２’は暗号化データを復元した個人データＤ１を取得することができる。
【０１０９】
なお、何らかの不具合により、第２ノード２’が個人データＤ１を取得できなかった場合は、第２ノード２’は、仲介ノード５に対し、預託した代金の返金依頼を行う等の措置を講ずることができる。
【０１１０】
仲介ノード５では、鍵送信部５５６が第２ノード２’に復元鍵Ｋ１を送信した後、第２ノード２’から返金依頼等を受け付けることなく一定時間が経過した場合、決済部５５７が決済処理を実施する（ステップＳ４９〜Ｓ５１）。具体的には、決済部５５７は、個人データＤ１の提供元である第１ノード１’へ代金を送金するための取引（トランザクション）を作成し（ステップＳ４９）、取引をブロックチェーン４に登録する（ステップＳ５０）。これにより、第１ノード１’へ代金が送金される（ステップＳ５１）。
【０１１１】
（本実施形態の総括）
本実施形態では、個人データＤ１を暗号化した暗号化データが、第１ノード１’から一旦Ｐ２Ｐストレージ３’を共同構成するストレージノード３”群に分散秘匿保存され、ストレージノード３”群から第２ノード２’に送信されるが、契約書には、暗号化データの保存先の代わりに、第２ノード２’のデータ受取アドレスが記載されている。そして、契約が成立した場合、ストレージノード３”群から契約書に記載されたデータ受取アドレスに暗号化データが送信される。そのため、第１ノード１’がオフラインの場合でも、契約成立後に速やかに、暗号化データが第２ノード２’に送信される。また、ブロックチェーン４に登録された契約書には、暗号化データの保存先は記載されていないため、第三者によるストレージノード３”へのハッキング攻撃も回避できる。
【０１１２】
また、個人データＤ１は、複数のストレージノード３”群に秘匿分散保存されるので、個々のストレージノード３”は、個人データＤ１を知ることができず、個人データＤ１が第三者に漏洩するリスクを小さくできる。また、各種通信に匿名暗号通信を使うことで、第１ノード１の場所や、個人データＤ１の秘匿化データの分散保存先であるストレージノード３”群の場所の秘匿性を高めることができる。
【０１１３】
また、暗号化データを復元するための復元鍵および暗号化データのハッシュ値が仲介ノード５に保存され、第２ノード２’が暗号化データを受け取った場合に、暗号化データのハッシュ値を仲介ノード５に送信し、仲介ノード５において、保存されたハッシュ値と第２ノード２’から受信したハッシュ値が一致したことが確認されたことを条件に、復号鍵が第２ノード２’に提供される。このように、本実施形態では、個人データＤ１をいったん暗号化し、暗号化データを受け取った第２ノード２’に対し、所定の条件で復号鍵を提供しているため、第１実施形態に比べ、個人データＤ１が第三者に漏洩することをさらに確実に防止することができる。
【０１１４】
（付記事項）
以上、本発明の２つの実施形態について説明したが、本発明はこれらの実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて種々の変更が可能であり、例えば、各実施形態に開示された技術的手段を適宜組み合わせて得られる形態も、本発明の技術的範囲に属する。
【０１１５】
例えば、第１実施形態において、保存依頼部１５６が個人データＤ１とともに識別情報をストレージノード３に送信し、ストレージノード３では、第２識別情報生成部３５１を設けずに、識別情報を生成しない構成としてもよい。また、第２実施形態において、保存依頼部１５６が識別情報をストレージノード３”に送信せずに、ストレージノード３”において、第２識別情報生成部３５１によって秘匿化されたデータの識別情報を生成する構成としてもよい。
【０１１６】
また、上記実施形態では、情報処理システムがブロックチェーン技術を利用したプラットフォームであったが、本発明はこれに限定されず、通常のサーバ・クライアントシステムであってもよい。この場合、契約書は、ブロックチェーンの代わりに、サーバ等に設けられるデータベースに登録される。
【符号の説明】
【０１１７】
１      第１ノード
１’    第１ノード
２      第２ノード
２’    第２ノード
３      ストレージノード
３’    Ｐ２Ｐストレージ
３”    ストレージノード
４      ブロックチェーン
５      仲介ノード
１１    入力部
１２    表示部
１３    通信部
１４    記憶部
１５    制御部
１５’  制御部
１５１  カタログ作成部
１５２  第１識別情報生成部
１５３  テンプレート取得部
１５４  契約書作成部
１５５  契約書公開部
１５６  保存依頼部
１５７  暗号化部
１５８  契約書等送信部
２１    入力部
２２    表示部
２３    通信部
２４    記憶部
２５    制御部
２５’  制御部
２５１  契約書選択部
２５２  アドレス記入部
２５３  署名部
２５４  登録部
２５５  ハッシュ値計算部
２５６  ハッシュ値送信部
２５７  復元部
３１    入力部
３２    表示部
３３    通信部
３４    記憶部
３５    制御部
３５１  第２識別情報生成部
３５２  契約書確認部
３５３  保存実行部
３５４  契約成立判定部
３５５  データ送信部
５１    入力部
５２    表示部
５３    通信部
５４    記憶部
５５    制御部
５５１  検証部
５５２  保存部
５５３  署名部
５５４  アップロード部
５５５  比較部
５５６  鍵送信部
５５７  決済部
１００  情報処理システム
２００  情報処理システム
Ｄ１    個人データ
Ｈ１    個人データハッシュ値
Ｋ１    復元鍵
Ｎ      通信ネットワーク
Ｐ１    第１プログラム
Ｐ１’  第１プログラム
Ｐ２    第２プログラム
Ｐ２’  第２プログラム
Ｐ３    ストレージプログラム
Ｐ４    仲介プログラム
Ｓ      契約書公開サーバ
Ｔ１    テンプレート
Ｔ１’  テンプレート
【図１】
2020077347.tif 000003
【図２】
2020077347.tif 000004
【図３】
2020077347.tif 000005
【図４】
2020077347.tif 000006
【図５】
2020077347.tif 000007
【図６】
2020077347.tif 000008
【図７】
2020077347.tif 000009
【図８】
2020077347.tif 000010
【図９】
2020077347.tif 000011
【図１０】
2020077347.tif 000012
【図１１】
2020077347.tif 000013
【図１２】
2020077347.tif 000014
【図１３】
2020077347.tif 000015
【図１４】
2020077347.tif 000016
【図１５】
2020077347.tif 000017
【図１６】
2020077347.tif 000018
【図１７】
2020077347.tif 000019
【図１８】
2020077347.tif 000020
【図１９】
2020077347.tif 000021