(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024015177
(43)【公開日】2024-02-01
(54)【発明の名称】データ流通方法、データ流通システム及びプログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20240125BHJP
G06F 21/60 20130101ALI20240125BHJP
G06F 21/64 20130101ALI20240125BHJP
【FI】
G09C1/00 650Z
G06F21/60 320
G06F21/64
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023204724
(22)【出願日】2023-12-04
(62)【分割の表示】P 2019098638の分割
【原出願日】2019-05-27
(31)【優先権主張番号】62/714,405
(32)【優先日】2018-08-03
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】海上 勇二
(57)【要約】
【課題】データのプライバシ保護を行いつつ、データを利活用することができるデータ流通方法等を提供する。
【解決手段】複数の認証サーバを備えるデータ流通システムにおけるデータ流通方法であって、暗号化したまま演算が可能な秘密計算方式を用いて機器の履歴情報が暗号化された暗号化履歴情報を含み、生成されたトランザクションデータを、複数の認証サーバのうちの第1の認証サーバが受信するステップ(S104)と、第1の認証サーバが、機器から受信したトランザクションデータの正当性を確認した場合、第1の認証サーバ以外の複数の認証サーバと同期して、トランザクションデータを分散台帳に記録するステップ(S105~S108)と、第1の認証サーバが、トランザクションデータに含まれる暗号化履歴情報に対し、暗号化したまま演算処理を実行する秘密計算を行うステップとを含む。
【選択図】
図12
【特許請求の範囲】
【請求項1】
データ流通システムにおけるデータ流通方法であって、
暗号化したまま演算が可能な秘密計算方式を用いて機器の履歴情報が暗号化された暗号化履歴情報を含み、生成されたトランザクションデータを前記機器から受信するステップと、
前記機器から受信した前記トランザクションデータの正当性を確認した場合、前記トランザクションデータを分散台帳に記録するステップと、
前記トランザクションデータを生成した機器に対してトークンを発行する旨を示す第2トランザクションデータを生成し、生成した前記第2トランザクションデータを前記分散台帳に記録するステップと、を含む
データ流通方法。
【請求項2】
さらに、前記トランザクションデータに含まれる前記暗号化履歴情報に対し、暗号化したまま演算処理を実行する秘密計算を行うステップとを含み、
前記暗号化履歴情報が前記秘密計算に用いられた回数に応じて前記トークンを発行する、
請求項1に記載のデータ流通方法。
【請求項3】
前記演算処理では、前記機器の履歴情報を画像認識処理または統計処理することで前記機器の履歴情報の画像認識データまたは統計データを算定する、
請求項2に記載のデータ流通方法。
【請求項4】
さらに、
前記分散台帳に記録された前記トランザクションデータのうち秘密計算が行われたトランザクションデータである第1のトランザクションデータのブロックチェーンアドレスを含み、前記ブロックチェーンアドレスに対してトークンを生成した旨を示す第3のトランザクションデータを生成するステップと、
前記第3のトランザクションデータを前記分散台帳に記録するステップとを含む、
請求項1~3のいずれか1項に記載のデータ流通方法。
【請求項5】
前記データ流通システムは、さらに、サービスサーバを備え、
前記データ流通方法は、さらに、
前記サービスサーバが、データ分析の依頼を示す第4のトランザクションデータを生成し、第1の認証サーバに送信するステップと、
前記第1の認証サーバが、前記サービスサーバから受信した前記第4のトランザクションデータの正当性を確認した場合、複数の認証サーバそれぞれが、前記第4のトランザクションデータを分散台帳に記録するステップと、
前記第1の認証サーバが、秘密計算を行うステップにおいて、前記分散台帳に記録された前記トランザクションデータのうち、前記データ分析の依頼に基づく演算処理の対象である第1のトランザクションデータに含まれる前記暗号化履歴情報に対して、前記秘密計算を行い、前記秘密計算の演算結果を前記サービスサーバに送信し、
前記サービスサーバが、前記秘密計算の演算結果を前記第1の認証サーバから受信するステップとを含む、
請求項1~4のいずれか1項に記載のデータ流通方法。
【請求項6】
前記データ流通方法は、
前記第1の認証サーバが、前記秘密計算を行った前記第1のトランザクションデータのトランザクションIDを含み、前記秘密計算の演算結果を前記サービスサーバに送信した旨を示す第5のトランザクションデータを生成し、前記第1の認証サーバ以外の前記複数の認証サーバに送信するステップと、
前記第1の認証サーバが、前記第1の認証サーバ以外の前記複数の認証サーバと同期して、前記第5のトランザクションデータを分散台帳に記録するステップと、を含む、
請求項5に記載のデータ流通方法。
【請求項7】
前記履歴情報は、前記機器のユーザのパーソナルデータを含む、
請求項1~4のいずれか1項に記載のデータ流通方法。
【請求項8】
機器と認証サーバとを備えるデータ流通システムであって、
前記機器は、暗号化したまま演算が可能な秘密計算方式を用いて前記機器の履歴情報が暗号化された暗号化履歴情報を含むトランザクションデータを生成し、
前記認証サーバは、生成されたトランザクションデータを受信し、
前記機器から受信した前記トランザクションデータの正当性を確認した場合、前記トランザクションデータを分散台帳に記録し、
前記トランザクションデータを生成した機器に対してトークンを発行する旨を示す第2トランザクションデータを生成し、生成した前記第2トランザクションデータを前記分散台帳に記録する、
データ流通システム。
【請求項9】
請求項1~7のいずれか1項に記載のデータ流通方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ流通方法、データ流通システム及びプログラムに関する。
【背景技術】
【0002】
近年、ユーザのデータ及び機器のデータなどのデータを収集、分析及び流通するシステムが検討されている。今後、IoT(Internet of Things)が進展しAI等が普及することにより、従来よりも多くのデータを収集することが可能となるため、収集したデータの利活用が期待されている。
【0003】
しかし、収集したデータを利活用するためには、データに含まれるプライバシ情報の保護すなわちデータのプライバシ保護が重要になる。
【0004】
例えば非特許文献1では、産業用制御システム(ICS:Industrial Control Systems)及びIoTにおけるセキュリティについて記載されている。非特許文献1によれば、センサ情報だけでなく、ヘルスケア及びウェアラブルなどのパーソナルデータに関連するプライバシ情報の保護が重要である。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Cyber Physical Security for Industrial Control Systems and IoT、IEICE TRANS. INF. & SYST., VOL.E99-D, NO.4 APRIL 2016
【非特許文献2】ABY - A Framework for Efficient Mixed-Protocol Secure Two-Party Computation、NDSS Symposium 2015
【非特許文献3】SecureML: A System for Scalable Privacy-Preserving Machine Learning、https://eprint.iacr.org/2017/396.pdf(2018年7月13日検索)
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、データを収集及び流通するシステムが、収集したデータのプライバシ保護を行うためにデータを暗号化して流通させる場合には、サービスを提供したい企業などでは、取得できるデータが暗号化されているため、データの利活用が難しい。一方、当該システムが、収集したデータを平文化のまま流通させる場合には、ユーザはデータの漏えいのリスクからデータそのものを提供してくれないため、当該システムはデータを利活用できるほどのデータを収集できない。
【0007】
本開示は、上述の事情を鑑みてなされたもので、データのプライバシ保護を行いつつ、データを利活用することができるデータ流通方法等を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本開示のデータ流通方法は、データ流通システムにおけるデータ流通方法であって、暗号化したまま演算が可能な秘密計算方式を用いて前記機器の履歴情報が暗号化された暗号化履歴情報を含み、生成されたトランザクションデータを機器から受信するステップと、前記機器から受信した前記トランザクションデータの正当性を確認した場合、前記トランザクションデータを分散台帳に記録するステップと、前記トランザクションデータを生成した機器に対してトークンを発行する旨を示す第2のトランザクションデータを生成し、生成した前記第2トランザクションデータを前記分散台帳に記録するステップと、を含むデータ流通方法である。
【0009】
なお、これらの包括的または具体的な態様は、システム、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0010】
本開示によれば、データのプライバシ保護を行いつつ、データを利活用することができるデータ流通方法等を実現できる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施の形態に係るデータ流通システムの全体構成の一例を示す図である。
【
図2】
図2は、実施の形態に係る住宅の全体構成の一例を示す図である。
【
図3】
図3は、
図2に示すコントローラの機能構成の一例を示すブロック図である。
【
図4】
図4は、実施の形態に係るトランザクションデータのデータ構造の一例を示す図である。
【
図5】
図5は、実施の形態に係る端末の機能構成の一例を示すブロック図である。
【
図6】
図6は、実施の形態に係る車両が有する車載ネットワークシステムの全体構成の一例を示す図である。
【
図7】
図7は、
図5に示すゲートウェイの機能構成の一例を示すブロック図である。
【
図8】
図8は、実施の形態に係る認証サーバの機能構成の一例を示すブロック図である。
【
図9】
図9は、ブロックチェーンのデータ構造を示す説明図である。
【
図10】
図10は、実施の形態に係るサービスサーバの機能構成の一例を示すブロック図である。
【
図11】
図11は、実施の形態に係るデータ流通の全体シーケンス図である。
【
図12】
図12は、実施の形態に係るトランザクションデータ登録処理のシーケンス図である。
【
図13】
図13は、実施の形態に係るデータ提供処理のシーケンス図である。
【
図14】
図14は、実施の形態に係るトークン発行処理のシーケンス図である。
【発明を実施するための形態】
【0012】
本開示の一実施態様のデータ流通方法は、データ流通システムにおけるデータ流通方法であって、暗号化したまま演算が可能な秘密計算方式を用いて前記機器の履歴情報が暗号化された暗号化履歴情報を含み、生成されたトランザクションデータを機器から受信するステップと、前記機器から受信した前記トランザクションデータの正当性を確認した場合、前記トランザクションデータを分散台帳に記録するステップと、前記トランザクションデータを生成した機器に対してトークンを発行する旨を示す第2のトランザクションデータを生成し、生成した前記第2トランザクションデータを前記分散台帳に記録するステップと、を含むデータ流通方法である。
【0013】
本開示の一実施態様のデータ流通システムは、機器と認証サーバとを備えるデータ流通システムであって、前記機器は、暗号化したまま演算が可能な秘密計算方式を用いて機器の履歴情報が暗号化された暗号化履歴情報を含むトランザクションデータを生成し、前記認証サーバは、生成されたトランザクションデータを受信し、前記機器から受信した前記トランザクションデータの正当性を確認した場合、前記トランザクションデータを分散台帳に記録し、前記トランザクションデータを生成した機器に対してトークンを発行する旨を示す第2のトランザクションデータを生成し、生成した前記第2トランザクションデータを前記分散台帳に記録するとを備える、データ流通システムである。
【0014】
本開示の一実施態様のデータ流通方法は、機器と複数の認証サーバを備えるデータ流通システムにおけるデータ流通方法であって、暗号化したまま演算が可能な秘密計算方式を用いて前記機器の履歴情報が暗号化された暗号化履歴情報を含み、生成されたトランザクションデータを、前記複数の認証サーバのうちの第1の認証サーバが受信するステップと、前記第1の認証サーバが、前記機器から受信した前記トランザクションデータの正当性を確認した場合、前記第1の認証サーバ以外の前記複数の認証サーバと同期して、前記トランザクションデータを分散台帳に記録するステップと、前記第1の認証サーバが、前記トランザクションデータに含まれる前記暗号化履歴情報に対し、暗号化したまま演算処理を実行する秘密計算を行うステップとを含む。
【0015】
これにより、データのプライバシ保護を行いつつ、データを利活用することができるデータ流通方法等を実現できる。
【0016】
また、さらに、前記第1の認証サーバが、前記分散台帳に記録された前記トランザクションデータのうち前記秘密計算を行った第1のトランザクションデータのブロックチェーンアドレスを含み、前記ブロックチェーンアドレスに対してトークンを生成した旨を示す第2のトランザクションデータを生成し、前記第1の認証サーバ以外の前記複数の認証サーバに送信するステップと、前記第1の認証サーバが、前記第1の認証サーバ以外の前記複数の認証サーバと同期して、前記第2のトランザクションデータを前記分散台帳に記録するステップとを含むとしてもよい。
【0017】
これにより、機器の履歴情報の提供に対してインセンティブを与えることができる。
【0018】
また、前記データ流通システムは、さらに、サービスサーバを備え、前記データ流通方法は、さらに、前記サービスサーバが、データ分析の依頼を示す第3のトランザクションデータを生成し、前記第1の認証サーバに送信するステップと、前記第1の認証サーバが、前記サービスサーバから受信した前記第3のトランザクションデータの正当性を確認した場合、前記複数の認証サーバそれぞれが、前記第3のトランザクションデータを分散台帳に記録するステップと、前記第1の認証サーバが、前記秘密計算を行うステップにおいて、前記分散台帳に記録された前記トランザクションデータのうち、前記データ分析の依頼に基づく前記演算処理の対象である第1のトランザクションデータに含まれる前記暗号化履歴情報に対して、前記秘密計算を行い、前記秘密計算の演算結果を前記サービスサーバに送信し、前記サービスサーバが、前記秘密計算の演算結果を前記第1の認証サーバから受信するステップとを含むとしてもよい。
【0019】
これにより、機器の履歴情報のプライバシ保護を行いつつ、利活用することができる。
【0020】
また、前記データ流通システムは、さらに、サービスサーバを備え、前記データ流通方法は、さらに、前記サービスサーバが、データ分析の依頼を示す第3のトランザクションデータを生成し、前記第1の認証サーバに送信するステップと、前記第1の認証サーバが、前記サービスサーバから受信した前記第3のトランザクションデータの正当性を確認した場合、前記複数の認証サーバそれぞれが、前記第3のトランザクションデータを分散台帳に記録するステップと、前記第1の認証サーバが、前記秘密計算を行うステップにおいて、前記分散台帳に記録された前記トランザクションデータのうち、前記データ分析の依頼に基づく前記演算処理の対象である第1のトランザクションデータに含まれる前記暗号化履歴情報に対して、前記秘密計算を行い、前記秘密計算の演算結果を前記サービスサーバに送信し、前記サービスサーバが、前記秘密計算の演算結果を前記第1の認証サーバから受信するステップとを含むとしてもよい。
【0021】
また、例えば、前記履歴情報は、前記機器のユーザのパーソナルデータを含んでもよい。
【0022】
また、例えば、前記演算処理は、画像認識処理を含んでもよい。
【0023】
また、本開示の一実施態様の認証サーバは、機器と複数の認証サーバとを備えるデータ流通システムにおける、前記複数の認証サーバのうちの一つの認証サーバであって、暗号化したまま演算が可能な秘密計算方式を用いて機器の履歴情報が暗号化された暗号化履歴情報を含み、生成されたトランザクションデータを受信する通信部と、前記機器から受信した前記トランザクションデータの正当性を確認した場合、前記トランザクションデータを分散台帳に記録する記録部と、前記トランザクションデータに含まれる前記暗号化履歴情報に対し、暗号化したまま演算処理を実行する秘密計算を行う秘密計算部とを備える。
【0024】
また、本開示の一実施態様のデータ構造は、機器と複数の認証サーバとを備えるデータ流通システムにおいてブロックチェーンとして記録されるブロックに用いられるデータ構造であって、前記データ構造は、ブロックチェーンのブロックに含まれるトランザクションデータを生成した主体を識別する識別子であるブロックチェーンアドレスと、前記トランザクションデータを識別するトランザクションIDと、前記トランザクションデータに含まれる暗号化履歴情報であって、暗号化したまま演算が可能な秘密計算方式を用いて前記機器の履歴情報が暗号化された暗号化履歴情報と、前記トランザクションデータのユーザの電子署名とを含み、前記暗号化履歴情報は、前記複数の認証サーバのうちの第1の認証サーバが、暗号化したままでデータ分析を含む演算処理を実行する秘密計算処理に用いられる。
【0025】
以下、図面を参照しながら、実施の形態について説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置および接続形態等は、一例であって本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本開示の一形態に係る実現形態を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。本開示の実現形態は、現行の独立請求項に限定されるものではなく、他の独立請求項によっても表現され得る。
【0026】
(実施の形態)
まず、本開示のシステム構成について説明する。
【0027】
[1. システム構成]
本開示のデータ流通システムは、機器の履歴情報などのデータを秘密計算が可能な方式で暗号化した暗号化データを、トランザクションデータに含めて分散台帳に記録する。これにより、本開示のデータ流通システムは、ブロックチェーン技術を活用して、データのプライバシ保護を行いつつ、データの収集及び利活用を行うことができる。
【0028】
以下では、図面を参照しながら実施の形態におけるデータ流通システム等の説明を行う。
【0029】
[1.1 データ流通システム10の全体構成]
図1は、本実施の形態に係るデータ流通システム10の全体構成の一例を示す図である。
【0030】
データ流通システム10は、
図1に示すように、住宅100と、端末110と、車両120と、認証サーバ200a、200b、200cと、サービスサーバ300とを備える。これらは、通信ネットワーク400で接続されている。
【0031】
また、認証サーバ200a、200b、200c(以下、認証サーバ200とも表現する)は、記憶装置201a、201b、201c(以下、記憶装置201とも表現する)と接続する。認証サーバ200は、記憶装置201と通信ネットワーク400を介して接続されていてもよいし、内部に記憶装置201を備えてもよい。記憶装置201は、ブロックチェーンのトランザクションデータ及びブロックが電子的に記録される分散台帳を有する。
【0032】
なお、
図1では、データ流通システム10が、3つの認証サーバを備える場合の例が示されているが、これに限らない。すなわち、データ流通システム10は、4つ以上の認証サーバを備えてもよい。
【0033】
[1.2 住宅100の構成]
図2は、本実施の形態に係る住宅100の全体構成の一例を示す図である。
【0034】
住宅100は、
図2に示すように、コントローラ101と、太陽光発電102と、蓄電池103と、電力メータ104とを備える。コントローラ101、太陽光発電102、蓄電池103及び電力メータ104は、通信ネットワーク105で接続されている。また、太陽光発電102、蓄電池103及び電力メータ104は、電力ネットワーク106で接続されている。なお、住宅100は、例えば住家などの家屋であるが、これに限られない。住宅100は、工場、ビルなどの建物であってもよい。つまり、住宅100は、ユーザが使用する建物であれば、その態様は問われない。また以下では、住宅100内にある機器を宅内の機器と称する。宅内の機器は、本開示の機器の一例である。宅内の機器には、太陽光発電102、蓄電池103及び電力メータ104を含めても、含めなくてもよい。また、住宅100を本開示の機器の一例としてもよい。
【0035】
<コントローラ101>
コントローラ101は、例えば、エネルギーマネジメントシステムのコントローラである。本実施の形態では、コントローラ101は、太陽光発電102を制御したり、太陽光発電102での発電状況及び蓄電池103の蓄電状態を表示したり、売電または買電の申請などを入力したりする。また、コントローラ101は、電力メータ104を介して、外部の電力ネットワーク(不図示)に送電された電力量を管理し、認証サーバ200に通知する。このように、コントローラ101は、宅内の機器を操作したり、宅内の機器の状態を表示したり、宅内の機器に対する入力等を行ったり、宅内の機器の動作履歴、状態変更を管理したりする。
【0036】
<太陽光発電102>
太陽光発電102は、太陽電池を用いて太陽光から直接的に電力に変換する発電方式を搭載した装置である。太陽光発電102は、発電した電力を、住宅100内で使用したり、蓄電池103に蓄電したり、電力ネットワークに送電したりする。
【0037】
<蓄電池103>
蓄電池103は、太陽光発電102で発電された電力を蓄電する。蓄電池103は、例えばコントローラ101の送電指示により、蓄電した電力を電力ネットワークに送電する。また、蓄電池103は、例えばコントローラ101の受電指示により、電力ネットワークから受電された電力を蓄電してもよい。なお、蓄電池103は必須の構成ではなく、住宅100に備えられていなくてもよい。
【0038】
<電力メータ104>
電力メータ104は、外部の電力ネットワークに送電される電力量または外部の電力ネットワークから受電される電力量を計測する。電力メータ104は、コントローラの送電指示により、太陽光発電102または蓄電池103が電力ネットワークに送電したとき、太陽光発電102または蓄電池103が送電した時刻と電力量とを計測し、コントローラ101に通知する。また、電力メータ104は、コントローラ101からの電力使用の指示により、電力ネットワークから受電して使用した電力を計測する。
【0039】
以下、コントローラ101の構成の一例について説明する。
【0040】
[1.3 コントローラ101の構成]
図3は、
図2に示すコントローラ101の機能構成の一例を示すブロック図である。
【0041】
コントローラ101は、プロセッサと、プロセッサに所定の処理を実行させるプログラムが記憶されたメモリとを備える。つまり、コントローラ101は、プロセッサがメモリを用いて所定のプログラムを実行することで実現される。本実施の形態では、コントローラ101は、
図3に示すように、トランザクションデータ生成部1011と、秘密計算部1012と、記録部1013と、通信部1014とを備える。
【0042】
<トランザクションデータ生成部1011>
トランザクションデータ生成部1011は、ユーザが宅内の機器の操作をし、機器から操作履歴を受信する場合、または、宅内の機器が状態変更し、機器から状態履歴を受信する場合、操作履歴及び状態履歴などの機器の履歴情報を基に、ブロックチェーンにおけるトランザクションデータを生成する。ここで、機器の履歴情報は、パーソナルデータの一例であり、機器のユーザのパーソナルデータを含む。
【0043】
本実施の形態では、トランザクションデータ生成部1011は、機器から受信した機器の履歴情報を、秘密計算部1012に送信し、秘密計算部1012から、暗号化したまま演算が可能な秘密計算方式を用いて暗号化された暗号化履歴情報を受信する。トランザクションデータ生成部1011は、受信した暗号化履歴情報を含めたトランザクションデータを生成する。
【0044】
ここで、
図4を用いて、トランザクションデータ生成部1011が生成するトランザクションデータの構造(データ構造)の一例について説明する。
図4は、本実施の形態に係るトランザクションデータのデータ構造の一例を示す図である。
【0045】
図4に示すように、トランザクションデータ生成部1011が生成するトランザクションデータのデータ構造には、トランザクションIDと、ブロックチェーンアドレスと、暗号化履歴情報と、署名とが含まれる。トランザクションIDは、トランザクションデータを識別する識別子である。ブロックチェーンアドレスは、トランザクションデータを生成した主体を識別する識別子であり、
図4でBCアドレスと表されている。本実施の形態では、ブロックチェーンアドレスにより、暗号化履歴情報のユーザまたはコントローラを特定することができる。暗号化履歴情報は、暗号化したまま演算が可能な秘密計算方式を用いて機器の履歴情報が暗号化されたデータであり、トランザクションデータに含まれる。
図4に示すように、暗号化履歴情報は、トランザクションデータのデータ本体であるペイロード部分に含まれる。署名は、ユーザの電子署名である。本実施の形態では、署名は、ユーザ個別の署名生成鍵を用いて生成される。
【0046】
なお、
図4に示すように、トランザクションデータ生成部1011は、暗号化履歴情報の種別を示す種別情報をさらに付与したトランザクションデータを生成してもよい。種別情報とは、例えば、宅内の機器の操作履歴もしくは状態履歴、または、太陽光発電102で発電した電力量など、暗号化履歴情報を構成する履歴情報(データ)の種類を示す。
【0047】
また、トランザクションデータ生成部1011は、生成したトランザクションデータを記録部1013に記録する。また、トランザクションデータ生成部1011は、生成したトランザクションデータを、通信部1014を介して、認証サーバ200a、200b、200cのうちの少なくとも1つの認証サーバ200に送信する。
【0048】
<秘密計算部1012>
秘密計算部1012は、暗号化したまま演算が可能な秘密計算方式を用いて機器の履歴情報を暗号化した暗号化履歴情報を生成する。本実施の形態では、秘密計算部1012は、トランザクションデータ生成部1011から受信した機器の履歴情報に対して秘密計算方式の暗号化処理を行う。
【0049】
秘密計算方式を用いて暗号化処理されたデータは、暗号化した状態のままで画像認識を含む演算処理を行うことができる。秘密計算方式を用いた暗号化処理は、例えば非特許文献2または非特許文献3に開示される方法を用いて行うことができる。非特許文献2に開示される方法を用いてデータを暗号化する場合、暗号化したまま四則演算が可能となる。この場合には、暗号化したままで例えば統計データを演算することができる。また、非特許文献3に開示される方法を用いてデータを暗号化する場合、ニューラルネットワークの予測演算ができる。暗号化処理に用いる方法は事前に決まっていてもよいし、暗号化時にどの方法を用いるかを認証データなどから取得するとしてもよい。また、暗号化処理に、複数の方法を用いるとしてもよい。
【0050】
<記録部1013>
記録部1013は、トランザクションデータ生成部1011で生成したトランザクションデータを記録する。本実施の形態では、記録部1013は、トランザクションデータ生成部1011で生成した秘密計算が可能な暗号化履歴情報を含むトランザクションデータを記録する。
【0051】
<通信部1014>
通信部1014は、通信ネットワーク400を介してサービスサーバ300及び認証サーバ200との通信を行う。この通信は、TLS(Transport Layer Security)によりなされてもよい。この場合、TLS通信用の暗号鍵は通信部1014で保持してもよい。
【0052】
次に、端末110について説明する。
【0053】
[1.4 端末110の構成]
図5は、本実施の形態に係る端末110の機能構成の一例を示すブロック図である。
【0054】
端末110は、本開示の機器の一例であり、プロセッサがメモリを用いて所定のプログラムを実行することで実現される。また、端末110は、例えばスマートフォンのような表示部及び入力部を有する機器、または、ウェアラブルデバイスのようなユーザのセンサ情報を取得する機器などである。
【0055】
本実施の形態では、端末110は、
図5に示すように、トランザクションデータ生成部1101と、秘密計算部1102と、記録部1103と、通信部1104とを備える。
【0056】
<トランザクションデータ生成部1101>
トランザクションデータ生成部1101は、ユーザによる端末110の操作履歴、ユーザが端末110に入力した情報の履歴、及び端末110が収集したユーザに関する情報の履歴などを含む履歴情報を基に、ブロックチェーンにおけるトランザクションデータを生成する。ユーザが端末110に入力した情報の履歴は、例えば、ユーザが端末110を利用して撮影した過去の複数の写真である。端末110が収集したユーザに関する情報の履歴は、例えばユーザの体温を示す情報などのセンサ情報の履歴である。
【0057】
本実施の形態では、トランザクションデータ生成部1101は、端末110から取得した履歴情報を、秘密計算部1102に送信し、秘密計算部1102から、暗号化したまま演算が可能な秘密計算方式を用いて暗号化された暗号化履歴情報を受信する。トランザクションデータ生成部1101は、受信した暗号化履歴情報を含めたトランザクションデータを生成する。
【0058】
ここで、トランザクションデータ生成部1101が生成するトランザクションデータの構造(データ構造)は、
図4に示した通りである。すなわち、トランザクションデータ生成部1101が生成するトランザクションデータのデータ構造には、トランザクションIDと、ブロックチェーンアドレスと、暗号化履歴情報と、署名とが含まれる。
【0059】
なお、このブロックチェーンアドレスは、上述したように、トランザクションデータを生成した主体を識別する識別子であり、ユーザまたは端末110を特定することができる。また、上記と同様に、トランザクションデータ生成部1101は、暗号化履歴情報の種別を示す種別情報をさらに付与したトランザクションデータを生成してもよい。この種別情報とは、例えば、端末110の操作履歴または端末110が保持する過去の複数の写真、センサ情報の履歴など暗号化履歴情報を構成する履歴情報(データ)の種類を示す。
【0060】
また、トランザクションデータ生成部1101は、生成したトランザクションデータを記録部1103に記録する。また、トランザクションデータ生成部1101は、生成したトランザクションデータを、通信部1104を介して、認証サーバ200a、200b、200cのうちの少なくとも1つの認証サーバ200に送信する。
【0061】
<秘密計算部1102>
秘密計算部1102は、暗号化したまま演算が可能な秘密計算方式を用いて端末110の履歴情報を暗号化した暗号化履歴情報を生成する。本実施の形態では、秘密計算部1102は、トランザクションデータ生成部1101から受信した端末110の履歴情報または端末110が保持する過去の複数の写真、センサ情報の履歴などの履歴情報に対して、秘密計算方式の暗号化処理を行う。秘密計算方式を用いた暗号化処理は、上述した通りのため詳述を省略するが、例えば非特許文献2及び/または非特許文献3に開示される方法を用いればよい。
【0062】
なお、上述した通り暗号化処理に用いる方法は事前に決まっていてもよいし、どの方法を用いるかをデータなどから取得するとしてもよい。また、暗号化処理に、複数の方法を用いるとしてもよい。
【0063】
<記録部1103>
記録部1103は、トランザクションデータ生成部1101で生成したトランザクションデータを記録する。本実施の形態では、記録部1103は、トランザクションデータ生成部1101で生成した秘密計算が可能な暗号化履歴情報を含むトランザクションデータを記録する。
【0064】
<通信部1104>
通信部1104は、通信ネットワーク400を介してサービスサーバ300及び認証サーバ200との通信を行う。この通信は、TLSによりなされてもよい。この場合、TLS通信用の暗号鍵は、通信部1104で保持してもよい。
【0065】
次に、車両120について説明する。
【0066】
[1.5 車両120の構成]
車両120は、例えば自動車であるが、これに限られない。車両120は、自動二輪車、船舶等であってもよい。つまり、車両120等は、車両120内のネットワークに複数のECUが接続されていればよい。
【0067】
図6は、本実施の形態に係る車両120が有する車載ネットワークシステムの全体構成の一例を示す図である。
【0068】
複数の電子制御ユニットであるECU1211a、ECU1221、ECU1231、ECU1241、ECU1251、及び、ゲートウェイ121が車載ネットワークで接続されている。ここで、車載ネットワークはCANであってもよいし、Ethernet(登録商標)であってもよいし、CANとEthernet(登録商標)とが混在したものであってもよい。なお、車載ネットワークがEthernet(登録商標)を含む場合でも、ブロードキャストでメッセージを送信されるとしてもよい。
【0069】
車載ネットワークには、例えば、エンジン1210、バッテリー1230や、図示しないモータ、燃料の制御に関連する駆動系のECUが接続されている。
図6に示す例では、車載ネットワークには、エンジン1210用のECU1211a、及び、バッテリー1230用のECU1231が接続されている。
【0070】
また、車載ネットワークには、運転アシスト部1220、並びに、図示しない自動ブレーキ、車線維持、車間距離機能、衝突防止機能及びエアバッグなどの安全快適機能系ECUが接続されている。
図6に示す例では、車載ネットワークには、運転アシスト部1220用のECU1221が接続されている。
【0071】
また、車載ネットワークには、ヘッドユニット1240などインフォテイメント系ECUが接続されている。
図6に示す例では、車載ネットワークには、ヘッドユニット1240用のECU1241が接続されている。なお、ヘッドユニット1240用のECU1241がなく、ヘッドユニット1240がECU1241を介さず車載ネットワークに直接接続されていてもよい。また、ヘッドユニットは表示部及び入力部を有し、車両120の中すなわち車内に搭乗しているユーザに対し、画面の表示及び情報入力を受け付ける機能を保持する。
【0072】
また、車載ネットワークには、認証サーバ200と通信する通信機能を有する通信部1250など通信系ECUが接続されている。
図6に示す例では、車載ネットワークには、通信部1250用のECU1251が接続されている。
【0073】
なお、上述したECU1211a~ECU1251は、それぞれが接続する部品と一体すなわち1つの部品で構成されるとしてもよい。例えば、エンジン1210とこれに接続されるエンジン1210用のECU1211aとが1つの部品として構成されてもよい。他のECU1221等も同様である。
【0074】
このような複数の電子制御ユニットすなわちECU1211a~ECU1251は、定期的または非定期的にメッセージを送信する。例えば、エンジン1210用のECU1211aは、エンジン1210の回転数を取得しており、定期的に、取得したエンジン1210の回転数を示すメッセージを送信する。また、例えば運転アシスト部1220用のECU1221であれば、運転アシスト機能がONになった時にその旨を示すメッセージを送信する。また、ECUが新規に車載ネットワークに接続したときに、その旨を示すメッセージを送信するとしてもよい。
【0075】
次に、車載ネットワークに接続されているゲートウェイ121について説明する。
【0076】
[1.6 ゲートウェイ121の構成]
図7は、
図6に示すゲートウェイ121の機能構成の一例を示すブロック図である。
【0077】
ゲートウェイ121は、プロセッサがメモリを用いて所定のプログラムを実行することで実現される。本実施の形態では、ゲートウェイ121は、
図7に示すように、トランザクションデータ生成部1211と、秘密計算部1212と、記録部1213と、通信部1214とを備える。
【0078】
<トランザクションデータ生成部1211>
トランザクションデータ生成部1211は、車両120の手動運転履歴もしくは自動運転履歴、及び、車両120のセンサ情報の履歴などを含む車両120の履歴情報を基に、ブロックチェーンにおけるトランザクションデータを生成する。
【0079】
本実施の形態では、トランザクションデータ生成部1211は、車両120から取得した履歴情報を、秘密計算部1212に送信し、秘密計算部1212から、暗号化したまま演算が可能な秘密計算方式を用いて暗号化された暗号化履歴情報を受信する。トランザクションデータ生成部1211は、受信した暗号化履歴情報を含めたトランザクションデータを生成する。
【0080】
ここで、トランザクションデータ生成部1211が生成するトランザクションデータの構造(データ構造)は、
図4に示した通りである。すなわち、トランザクションデータ生成部1211が生成するトランザクションデータのデータ構造には、トランザクションIDと、ブロックチェーンアドレスと、暗号化履歴情報と、署名とが含まれる。
【0081】
なお、このブロックチェーンアドレスは、トランザクションデータを生成した主体を識別する識別子であり、車両120のユーザ、ゲートウェイ121または車両120を特定することができる。また、上記と同様に、トランザクションデータ生成部1211は、暗号化履歴情報の種別を示す種別情報をさらに付与したトランザクションデータを生成してもよい。この種別情報とは、車両120の走行データなどの運転履歴、センサ情報の履歴など暗号化履歴情報を構成する履歴情報(データ)の種類を示す。
【0082】
また、トランザクションデータ生成部1211は、生成したトランザクションデータを記録部1213に記録する。また、トランザクションデータ生成部1211は、生成したトランザクションデータを、通信部1214を介して、認証サーバ200a、200b、200cのうちの少なくとも1つの認証サーバ200に送信する。
【0083】
<秘密計算部1212>
秘密計算部1212は、暗号化したまま演算が可能な秘密計算方式を用いて車両120の履歴情報を暗号化した暗号化履歴情報を生成する。本実施の形態では、秘密計算部1212は、トランザクションデータ生成部1211から受信した車両120の運転履歴、センサ情報の履歴などの履歴情報に対して、秘密計算方式の暗号化処理を行う。秘密計算方式を用いた暗号化処理は、上述した通りのため詳述を省略するが、例えば非特許文献2及び/または非特許文献3に開示される方法を用いればよい。
【0084】
<記録部1213>
記録部1213は、トランザクションデータ生成部1211で生成したトランザクションデータを記録する。本実施の形態では、記録部1213は、トランザクションデータ生成部1211で生成した秘密計算が可能な暗号化履歴情報を含むトランザクションデータを記録する。
【0085】
<通信部1214>
通信部1214は、通信ネットワーク400を介してサービスサーバ300及び認証サーバ200との通信を行う。この通信は、TLSによりなされてもよい。この場合、TLS通信用の暗号鍵は、通信部1214で保持してもよい。
【0086】
次に、認証サーバ200a等について説明する。
【0087】
[1.7 認証サーバ200aの構成]
図8は、本実施の形態に係る認証サーバ200aの機能構成の一例を示すブロック図である。認証サーバ200b、200cも同様の構成であるため、以下では、認証サーバ200aを例に挙げて説明する。
【0088】
認証サーバ200aは、
図8に示すように、トランザクションデータ検証部211、ブロック生成部212と、同期部213と、秘密計算部214と、トークン生成部215と、記録部216と、通信部217とを備える。認証サーバ200aは、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。以下、各構成要素について説明する。
【0089】
<トランザクションデータ検証部211>
トランザクションデータ検証部211は、受信したトランザクションデータを検証する。具体的には、住宅100、端末110または車両120などの機器からのトランザクションデータを受信すると、トランザクションデータのフォーマットが合っているか、及び署名が正当であるかを検証する。このように、トランザクションデータ検証部211は、受信したトランザクションデータの正当性を確認することでトランザクションデータを検証する。
【0090】
トランザクションデータ検証部211は、検証の結果、トランザクションデータの正当性を確認した場合、そのトランザクションデータを、記録部216に記録し、同期部213へ通知する。
【0091】
<ブロック生成部212>
ブロック生成部212は、トランザクションデータ検証部211においてトランザクションデータの検証が成功した場合、複数の認証サーバの間で、トランザクションデータについてのコンセンサスアルゴリズムを実行する。ここで、コンセンサスアルゴリズムには、PBFT(Practical Byzantine Fault Tolerance)とよばれるコンセンサスアルゴリズムを用いてもよいし、その他の公知のコンセンサスアルゴリズムを用いてもよい。
【0092】
このように、本実施の形態では、ブロック生成部212は、認証サーバ200a、認証サーバ200b及び認証サーバ200cの間でコンセンサスアルゴリズムを実行する。すなわち、ブロック生成部212は、まず、1以上のトランザクションデータを含むブロックチェーンのブロックを生成する。次に、ブロック生成部212は、コンセンサスアルゴリズムを実行する。そして、ブロック生成部212は、コンセンサスアルゴリズムを実行することで合意形成ができた場合、生成したブロックを記録部216に記録する。ブロック生成部212により生成されたブロックは、記録部216によりブロックチェーンに接続されて記録される。
【0093】
ここで、ブロックチェーンのデータ構造と、ブロックチェーンに含まれるトランザクションデータの一部のデータ構造とについて説明する。
【0094】
図9は、ブロックチェーンのデータ構造を示す説明図である。
【0095】
ブロックチェーンは、その記録単位であるブロックがチェーン(鎖)状に接続されたものである。それぞれのブロックは、複数のトランザクションデータと、直前のブロックのハッシュ値とを有している。具体的には、ブロックB2には、その前のブロックB1のハッシュ値が含まれている。そして、ブロックB2に含まれる複数のトランザクションデータと、ブロックB1のハッシュ値とから演算されたハッシュ値が、ブロックB2のハッシュ値として、ブロックB3に含められる。このように、前のブロックの内容をハッシュ値として含めながら、ブロックをチェーン状に接続することで、接続されたトランザクションデータの改ざんを有効に防止する。
【0096】
仮に過去のトランザクションデータが変更されると、ブロックのハッシュ値が変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降のブロックすべてを作り直さなければならず、この作業は現実的には非常に困難である。
【0097】
<同期部213>
同期部213は、認証サーバ(認証サーバ200a~200c)の間でブロックチェーンのブロック、または、トランザクションデータの同期を行う。
【0098】
複数の認証サーバ200a~200cの同期部213では、peer to peerでブロックチェーンのトランザクションデータの同期を行う。そして、同期部213は、同期が行われたブロックチェーンのトランザクションデータを記録部216に記録する。
【0099】
例えば、同期部213は、トランザクションデータ検証部211においてトランザクションデータの正当性が検証されると、他の認証サーバ200である認証サーバ200b、200cに検証済みのトランザクションデータを転送する。また、同期部213は、他の認証サーバ200から検証済みのトランザクションデータを受信した場合、受信した検証済みのトランザクションデータを記録部216に記録する。
【0100】
<秘密計算部214>
秘密計算部214は、トランザクションデータに含まれる暗号化履歴情報に対し、暗号化したまま演算処理を実行する秘密計算を行う。より具体的には、秘密計算部214は、サービスサーバ300から、データ分析の依頼を受けると、ブロックチェーンに記憶装置201aの分散台帳に記録されたトランザクションデータのうち、データ分析の依頼に基づく演算処理の対象である第1のトランザクションデータに含まれる暗号化履歴情報に対して、秘密計算を行う。秘密計算部214が実行する秘密計算における演算処理には、統計処理及び画像認識処理などのデータ分析処理が含まれる。
【0101】
そして、秘密計算部214は、秘密計算の演算結果をサービスサーバ300に送信する。
【0102】
例えば、秘密計算部214は、サービスサーバ300から、統計データの取得依頼を受けると、受けた依頼に基づき、記憶装置201aの分散台帳に記録されているトランザクションデータを用いて統計データを計算する。より具体的には、秘密計算部214は、トランザクションデータに含まれる暗号化履歴情報の統計データに秘密計算を用いて統計処理を実行する。そして、秘密計算部214は、秘密計算を用いて統計処理を実行して得た統計データをサービスサーバ300に送信する。なお、この秘密計算は、非特許文献2及び/または非特許文献3に開示される方法を用いて実行すればよい。
【0103】
これにより、例えば電力量の最大値または平均を演算したり、端末110が保持する写真データを分析したり、車両120の車速から、ある地域における平均車速を演算して渋滞を予測したりすることなどが可能となる。
【0104】
また、秘密計算部214は、秘密計算に用いた暗号化履歴情報のブロックチェーンアドレスをトークン生成部215に送信する。
【0105】
<トークン生成部215>
トークン生成部215は、秘密計算に用いた暗号化履歴情報のユーザに対してインセンティブを付与する。本実施の形態では、トークン生成部215は、秘密計算部214からブロックチェーンアドレスを受信すると、受信したブロックチェーンアドレスに対してトークンを発行するトランザクションデータを生成する。トークン生成部215は、生成したトランザクションデータを、ブロック生成部212と同期部213とに送信することで、同期部213に他の認証サーバ200と同期を行わせ、ブロック生成部212にブロックの生成を行わせる。そして、トークン生成部215は、受信したブロックチェーンアドレスが示す住宅100、端末110または車両120に対して、通信部217を介して、トークンを発行した旨の通知を行う。
【0106】
<記録部216>
記録部216は、トランザクションデータをブロックに含めて、記憶装置201aの分散台帳にあるブロックチェーンに記録する。当該記憶装置201aは、記録部216の内部に構成されていてもよいし、
図1に示すように、認証サーバ200aの外部に構成されていてもよい。
【0107】
このトランザクションデータは、住宅100、端末110または車両120から受信したトランザクションデータ、及び、トークン生成部215により生成したトークンのトランザクションデータを含む。
【0108】
本実施の形態では、記録部216は、機器から受信したトランザクションデータの正当性が確認された場合、そのトランザクションデータを分散台帳に記録する。
【0109】
<通信部217>
通信部217は、住宅100、端末110、車両120、認証サーバ200b、200c、及び、サービスサーバ300との通信を行う。この通信は、TLSによりなされてもよい。この場合、TLS通信用の暗号鍵は通信部217で保持してもよい。本実施の形態では、通信部217は、暗号化したまま演算が可能な秘密計算方式を用いて機器の履歴情報が暗号化された暗号化履歴情報を含み、生成されたトランザクションデータを受信する。
【0110】
次に、サービスサーバ300について説明する。
【0111】
[1.8 サービスサーバ300の構成]
図10は、本実施の形態に係るサービスサーバ300の機能構成の一例を示すブロック図である。
【0112】
サービスサーバ300は、
図10に示すように、サービス管理部311と、通信部312とを備える。
【0113】
<サービス管理部311>
サービス管理部311は、データ分析の依頼を示すトランザクションデータを生成し、認証サーバ200に送信する。例えば、サービス管理部311は、住宅100、端末110または車両120などの機器についての情報を活用する場合、認証サーバ200に、統計データの提供依頼を送信する。ここで、統計データとしては、住宅100での電力量の最大値または平均値の統計データ、及び、端末110で撮影した写真を人物または風景に分類した統計データなどが挙げられる。なお、データ分析の依頼には、統計データの提供依頼に限らず、画像認識データの提供依頼なども含まれる。
【0114】
本実施の形態では、サービス管理部311は、トランザクションID、データ分析の依頼内容を示す情報、及び、署名を含むトランザクションデータを生成する。
【0115】
<通信部312>
通信部312は、認証サーバ200との通信を行う。この通信は、TLSによりなされてもよい。この場合、TLS通信用の暗号鍵は通信部312で保持してもよい。
【0116】
[1.9 住宅と認証サーバとサービスサーバとの間のデータ流通の全体シーケンス]
続いて、住宅100と認証サーバ200a~200cとサービスサーバとの間におけるデータ流通のシーケンスについて説明する。
【0117】
図11は、本実施の形態に係るデータ流通の全体シーケンス図である。各処理については後述する。なお、
図11に示す住宅100は、端末110または車両120でもよく、いずれも本開示の機器の一例となる。
【0118】
まず、ステップS100において、住宅100と、認証サーバ200a、200b、200cとの間でトランザクションデータ登録処理が行われる。次に、ステップS200において、認証サーバ200a、200b、200cとサービスサーバ300との間でデータ提供処理が行われる。次に、ステップS300において、住宅100と認証サーバ200a、200b、200cとの間でトークン発行処理が行われる。
【0119】
なお、ステップS300すなわちトークン発行処理は、データ提供処理が行われるたびに実行されてもよいし、定期的に実行されるとしてもよい。
【0120】
[1.9.1 住宅と認証サーバとの間のトランザクションデータ登録処理]
続いて、住宅100と認証サーバ200a、200b、200cとの間でのトランザクションデータ登録処理について説明する。
【0121】
図12は、本実施の形態に係るトランザクションデータ登録処理のシーケンス図である。
図12では、本開示の機器の一例としての住宅100がトランザクションデータを登録するとして説明するが、これに限らない。端末110または車両120であってもよく、同様のシーケンスとなる。
【0122】
まず、ステップS101において、住宅100のコントローラ101は、宅内の機器の履歴情報などを取得し、トランザクションデータの元となるデータを生成する。例えば、住宅100は、宅内にある家電機器の操作履歴、太陽光発電102で発電した電力量もしくは蓄電池103から出力された電力量などの履歴情報を取得し、トランザクションデータの元となるデータを生成する。
【0123】
次に、ステップS102において、住宅100のコントローラ101は、ステップS101で取得した履歴情報などのデータに対し、秘密計算処理すなわち秘密計算方式を用いた暗号化処理を行う。秘密計算方式は、認証サーバ200a、200b、200cと住宅100のコントローラ101との間で予め共有してもよいし、データ流通システム10で決まっているとしてもよい。
【0124】
次に、ステップS103において、住宅100のコントローラ101は、ステップS102で秘密計算方式を用いて暗号化処理を行ったデータを用いて、トランザクションデータを生成する。より具体的には、暗号化したまま演算が可能な秘密計算方式を用いて機器の履歴情報が暗号化された暗号化履歴情報を含むトランザクションデータを生成する。ここで、トランザクションデータには、暗号化履歴情報以外に、上述したようにトランザクションIDと、ブロックチェーンアドレスと、署名とが含まれている。
【0125】
次に、ステップS104において、住宅100のコントローラ101は、ステップS103で生成したトランザクションデータを、認証サーバ200aに送信する。なお、
図12に示す例では、住宅100のコントローラ101は、生成したトランザクションデータを認証サーバ200aに送信するとして説明しているが、認証サーバ200bまたは認証サーバ200cに送信してもよい。認証サーバ200bまたは認証サーバ200cに送信した場合も同様の処理となるからである。
【0126】
次に、ステップS105において、認証サーバ200aは、住宅100からトランザクションデータを受信すると、受信したトランザクションデータを検証する。
【0127】
ステップS105において、認証サーバ200aは、トランザクションデータの検証が成功しなかった場合(S105でN)、住宅100にその旨の通知を送信し(S106)、処理を終了する。
【0128】
一方、ステップS105において、認証サーバ200aは、トランザクションデータの検証が成功した場合(S105でY)、他の認証サーバ200(認証サーバ200b、200c)にトランザクションデータを転送する(S107)。なお、認証サーバ200b、200cでも、転送されて受信したトランザクションデータを検証する。
【0129】
次に、ステップS108において、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、コンセンサスアルゴリズムを実行する。認証サーバ200aと認証サーバ200bと認証サーバ200cとは、受信したトランザクションデータが正当なトランザクションデータであること(つまり正当性)を検証すると、それぞれトランザクションデータを含むブロックを生成する。そして、認証サーバ200a、200b、200cは、トランザクションデータを含むブロックを記憶装置201a、201b、201cの分散台帳に記録する。換言すると、認証サーバ200aは、住宅100から受信したトランザクションデータの正当性を確認した場合、認証サーバ200a以外の認証サーバ200b、200cと同期して、トランザクションデータを分散台帳に記録する。
【0130】
[1.9.2 サービスサーバと認証サーバとの間のデータ提供処理]
続いて、サービスサーバ300と認証サーバ200a、200b、200cとの間でのデータ提供処理について説明する。
【0131】
図13は、本実施の形態に係るデータ提供処理のシーケンス図である。
【0132】
まず、ステップS201において、サービスサーバ300は、データ分析の依頼を生成する。具体的には、サービスサーバ300は、住宅100での電力使用の平均もしくは最大値の算出などの統計データ、または、端末110の写真の分類情報などのデータ分析の依頼を生成する。
【0133】
次に、ステップS202において、サービスサーバ300は、ステップS201で生成したデータ分析の依頼を示すトランザクションデータ(以下、第3のトランザクションデータと称する)を生成する。例えば、サービスサーバ300は、サービスサーバ300を示し、トランザクションデータを識別するためのトランザクションID、データ分析の依頼内容を示す情報、及び、署名を含む第3のトランザクションデータを生成する。
【0134】
次に、ステップS203において、サービスサーバ300は、ステップS202で生成したデータ分析の依頼を示す第3のトランザクションデータを、認証サーバ200cに送信する。なお、
図13では、サービスサーバ300は、第3のトランザクションデータを認証サーバ200cに送信したとして説明するが、これに限らない。他の認証サーバ200(認証サーバ200b、200a)に送信してもよく、同様のシーケンスとなる。
【0135】
次に、ステップS204において、認証サーバ200cは、サービスサーバから第3のトランザクションデータを受信すると、受信した第3のトランザクションデータを検証する。
【0136】
ステップS204において、認証サーバ200cは、第3のトランザクションデータの検証が成功しなかった場合(S204でN)、サービスサーバ300にその旨の通知を送信し(S205)、処理を終了する。
【0137】
一方、ステップS204において、認証サーバ200cは、トランザクションデータの検証が成功した場合(S204でY)、他の認証サーバ200(認証サーバ200a、200b)に、第3のトランザクションデータを転送する。他の認証サーバ200でも、転送されて受信した第3のトランザクションデータを検証する。
【0138】
次に、ステップS207において、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、コンセンサスアルゴリズムを実行する。認証サーバ200aと認証サーバ200bと認証サーバ200cとは、受信したトランザクションデータが正当なトランザクションデータであること(つまり正当性)を検証すると、それぞれトランザクションデータを含むブロックを生成する。そして、認証サーバ200a、200b、200cは、トランザクションデータを含むブロックを記憶装置201a、201b、201cの分散台帳に記録する。換言すると、認証サーバ200cは、サービスサーバ300から受信した第3のトランザクションデータの正当性を確認した場合、認証サーバ200c以外の認証サーバ200a、200bと同期して、第3のトランザクションデータを分散台帳に記録する。
【0139】
次に、ステップS208において、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、サービスサーバ300から受信した第3のトランザクションデータに含まれるデータ分析の依頼に基づき、秘密計算処理を実行して統計データなどの演算結果を得る。具体的には、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、分散台帳に記録されているトランザクションデータのうち演算処理の対象である第1のトランザクションデータに含まれる暗号化履歴情報に対して、秘密計算における演算処理を実行する。演算処理の対象である第1のトランザクションデータは、データ種別を基に選択されるとしてもよい。このとき、秘密計算に用いられた第1のトランザクションデータのブロックチェーンアドレスは記録される。
【0140】
なお、ステップS208では、秘密計算における演算処理を、認証サーバ200aと認証サーバ200bと認証サーバ200cとで分散して行うとしたが、これに限らない。例えば認証サーバ200cなどのみで秘密計算における演算処理を行うとしてもよい。
【0141】
次に、ステップS209において、認証サーバ200cは、認証サーバ200間で秘密計算処理を実行して得た統計データなどの演算結果を、サービスサーバ300に送信する。
【0142】
次に、ステップS210において、認証サーバ200cは、ステップS208で秘密計算処理に用いた第1のトランザクションデータのトランザクションIDを基に、トランザクション(以下、第4のトランザクションデータと称する)を生成する。換言すると、認証サーバ200cは、秘密計算処理を行った第1のトランザクションデータのトランザクションIDを含み、秘密計算処理の演算結果をサービスサーバ300に送信した旨を示す第4のトランザクションデータを生成する。生成される第4のトランザクションデータには、秘密計算処理に用いた第1のトランザクションデータのトランザクションIDと、認証サーバ200cの署名とが含まれる。なお、署名は、認証サーバ200cのみの署名でもよいし、秘密計算処理を行ったすべての認証サーバ200(認証サーバ200a、200b、200c)の署名を含めるとしてもよい。
【0143】
次に、ステップS211において、認証サーバ200cは、他の認証サーバ200(認証サーバ200a、200b)に生成した第4のトランザクションデータを転送する。他の認証サーバ200では、転送されて受信した第4のトランザクションデータを検証する。
【0144】
次に、ステップS212において、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、コンセンサスアルゴリズムを実行する。認証サーバ200aと認証サーバ200bと認証サーバ200cとは、受信した第4のトランザクションデータが正当なトランザクションデータであること(つまり正当性)を検証すると、それぞれ第4のトランザクションデータを含むブロックを生成する。そして、認証サーバ200a、200b、200cは、第4のトランザクションデータを含むブロックを記憶装置201a、201b、201cの分散台帳に記録する。換言すると、認証サーバ200cは、認証サーバ200c以外の複数の認証サーバ(認証サーバ200a、200b)と同期して、第4のトランザクションデータを分散台帳に記録する。
【0145】
[1.9.3 住宅と認証サーバとの間のトークン発行処理]
続いて、住宅と認証サーバ間でのトークン発行処理について説明する。
【0146】
図14は、本実施の形態に係るトークン発行処理のシーケンス図である。
図14に示す例では、認証サーバ200cがトークンを発行するとして説明するが、認証サーバ200bまたは認証サーバ200aが行ってもよい。認証サーバ200bまたは認証サーバ200aが行っても、同様の処理となるからである。
【0147】
まず、ステップS301において、認証サーバ200cは、秘密計算処理に用いたブロックチェーンアドレスを含むブロックを参照し、ブロックチェーンアドレスを抽出する。そして、認証サーバ200cは、抽出したブロックチェーンアドレスに対し、トークンを発行するトランザクションデータ(以下、第2のトランザクションデータと称する)を生成する。換言すると、認証サーバ200cは、分散台帳に記録されたトランザクションデータのうち秘密計算処理を行った第1のトランザクションデータのブロックチェーンアドレスを含み、当該ブロックチェーンアドレスに対してトークンを生成した旨を示す第2のトランザクションデータを生成する。
【0148】
次に、ステップS302において、認証サーバ200cは、認証サーバ200a、200bに、第2のトランザクションデータを転送する。つまり、認証サーバ200cは精製した第2のトランザクションデータを、認証サーバ200c以外の複数の認証サーバ200に送信する。なお、認証サーバ200c以外の複数の認証サーバ200すなわち認証サーバ200a、200bでは、受信した第2のトランザクションデータを検証する。
【0149】
次に、ステップS303において、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、コンセンサスアルゴリズムを実行する。認証サーバ200aと認証サーバ200bと認証サーバ200cとは、受信した第2のトランザクションデータが正当なトランザクションデータであること(つまり正当性)を検証すると、それぞれ第2のトランザクションデータを含むブロックを生成する。そして、認証サーバ200a、200b、200cは、第2のトランザクションデータを含むブロックを記憶装置201a、201b、201cの分散台帳に記録する。換言すると、認証サーバ200cが、認証サーバ200c以外の複数の認証サーバ200(認証サーバ200a、200b)と同期して、第2のトランザクションデータを分散台帳に記録する。
【0150】
次に、ステップS304において、認証サーバ200cは、トークンを発行したブロックチェーンアドレスに対して、トークンを発行した旨の通知を行う。
図14に示す例では、住宅100に通知している。
【0151】
[1.10 実施の形態の効果]
本実施の形態では、住宅100、端末110または車両120などの機器から、履歴情報などのパーソナルデータを秘密計算が可能な方式で暗号化した暗号化データをトランザクションデータに含めて分散台帳に記録する。これにより、暗号化データの改ざんを有効に防止できるだけでなく、ブロックチェーンのブロックに含まれる当該トランザクションデータが公開されたとしても、パーソナルデータが漏えいさせずに、プライバシ保護を行うことができる。また、秘密計算を用いることで、復号せずに当該トランザクションデータに含まれるパーソナルデータを利活用できる。
【0152】
この結果、ユーザは、パーソナルデータを提供してもプライバシ保護されることから、パーソナルデータを提供すなわち、秘密計算が可能な方式で暗号化した暗号化データを含めたトランザクションデータを認証サーバ200に提供しやすくなる。さらに、送信したトランザクションデータが利活用されるとトークンが発行されるので、ユーザにとってもパーソナルデータを提供するメリットがある。つまり、ユーザがパーソナルデータを提供することにインセンティブを与えることができる。
【0153】
このように、認証サーバ200が分散台帳を公開したとしても、パーソナルデータのプライバシ保護を行うことができ、かつ、パーソナルデータを利活用できる。つまり、ブロックチェーン技術を活用して、パーソナルデータの改ざんを有効に防止するだけでなく、パーソナルデータのプライバシ保護を行いつつ利活用できる安全なシステムを構築することができる。
【0154】
[2. その他変形例]
なお、本開示を上記の実施の形態に基づいて説明してきたが、本開示は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
【0155】
(1)上記の実施の形態では、認証サーバ200とサービスサーバ300とは別の装置として説明したが、認証サーバ200とサービスサーバ300とを同一の装置としてもよい。
【0156】
(2)上記の実施の形態では、認証サーバ200は、トランザクションデータの検証を失敗した場合、住宅100、端末110または車両120に通知しているが、サービスサーバ300にも通知してもよい。
【0157】
(3)上記の実施の形態では、認証サーバ200は、秘密計算処理に用いたブロックチェーンアドレスに対して、トークンを発行しているが、サービスサーバ300で保有しているトークンを当該ブロックチェーンアドレスに送信するとしてもよい。また、サービスサーバ300は、認証サーバ200にトークンを発行してもらい、発行してもらったトークンを当該ブロックチェーンアドレスに送信するとしてもよい。
【0158】
(4)上記の実施の形態では、認証サーバ200がトークンを発行しているが、流通システム10の外部で発行されたトークンまたは仮想通貨を、認証サーバ200の記憶装置201等であらかじめ保有しておき、当該ブロックチェーンアドレスに送付するとしてもよい。
【0159】
(5)上記の実施の形態で説明したように、複数の認証サーバ200が協力して秘密計算処理を行ってもよいし、既存の秘密計算の暗号化方式に基づいて、1つの認証サーバ200が秘密計算処理を行ってもよい。このとき、秘密計算処理を行った認証サーバ200がトークンを生成してもよいし、秘密計算処理を行わなかったその他の認証サーバ200がトークンを生成してもよい。
【0160】
(6)上記の実施の形態では、秘密計算処理に用いたブロックチェーンアドレスに対して、認証サーバ200がトークンを発行しているが、トランザクションデータ登録処理でトランザクションデータを登録した住宅100、端末110、または車両120などの機器にトークンを発行するとしてもよい。これにより、より多くのトランザクションデータが登録される可能性がある。
【0161】
(7)上記の実施の形態において、秘密計算による暗号化処理は、複数の暗号化方式を用いるとしてもよい。これにより、統計データまたは機械学習の予測処理など複数の方式に対応ができる。
【0162】
(8)上記の実施の形態では、秘密計算処理に用いたブロックチェーンアドレスに対して、トークンを発行しているが、トークンの発行単位として秘密計算処理に一回用いられると1トークンを発行するとしてもよい。また、秘密計算処理に複数回用いられた場合、都度ずつ1トークンを発行してもよいし、多く用いられた場合に複数トークンをまとめて発行するとしてもよい。これにより、サービスサーバ300へパーソナルデータが多く提供された場合に、ユーザへのインセンティブを増やすことができる。
【0163】
(9)上記の実施の形態では、住宅100、端末110及び車両120のトランザクションデータを生成する際に、秘密計算により暗号化した暗号化履歴情報を含んでいるが、これに限らない。当該トランザクションデータに、暗号化履歴情報そのものを含まずに暗号化履歴情報を識別する履歴識別情報のみを含めるとしてもよい。このとき、暗号化履歴情報は、認証サーバ200の記録部に記録され、複数の認証サーバ200のうち、一つ以上の認証サーバ200で暗号化履歴情報を保持するとしてもよい。
【0164】
(10)さらに、本開示には、上記実施の形態のデータ流通システム10においてブロックチェーンとして記録されるブロックに用いられるデータ構造も含まれる。より具体的には、本開示のデータ構造は、ブロックチェーンのブロックに含まれるトランザクションデータを生成した主体を識別する識別子であるブロックチェーンアドレスと、トランザクションデータを識別するトランザクションIDと、トランザクションデータに含まれる暗号化履歴情報であって、暗号化したまま演算が可能な秘密計算方式を用いて機器の履歴情報が暗号化された暗号化履歴情報と、トランザクションデータのユーザの電子署名とを含む。そして、本開示のデータ構造に含まれる暗号化履歴情報は、複数の認証サーバ200のうちの第1の認証サーバが、暗号化したままでデータ分析を含む演算処理を実行する秘密計算処理に用いられる。
【0165】
(11)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0166】
(12)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0167】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されてもよい。
【0168】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0169】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0170】
(13)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0171】
(14)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0172】
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0173】
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0174】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0175】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0176】
(15)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【0177】
本開示は、データ流通システムにおいて、機器の履歴情報を秘密計算の方式で暗号化して送信し、認証サーバで暗号化したままデータを演算することで、プライバシを保護しつつ、データを活用することができる。
【符号の説明】
【0178】
100 住宅
101 コントローラ
102 太陽光発電
103 蓄電池
104 電力メータ
105、400 通信ネットワーク
106 電力ネットワーク
110 端末
120 車両
121 ゲートウェイ
200a、200b、200c 認証サーバ
211 トランザクションデータ検証部
212 ブロック生成部
213 同期部
214、1012、1102、1212 秘密計算部
215 トークン生成部
216、1013、1103、1213 記録部
217、312、1014、1104、1214 通信部
300 サービスサーバ
311 サービス管理部
1011、1101、1211 トランザクションデータ生成部
1210 エンジン
1220 運転アシスト部
1230 バッテリー
1240 ヘッドユニット
1250 通信部
1211a、1221、1231、1241、1251 ECU