【解決手段】複数の認証サーバを少なくとも備える不正データ検知システムにおける制御方法であって、機器から取得したデータが不正データであるか否かを検知し(S205)、データを示す情報を含む第1トランザクションデータを取得し(S202)、データが不正データではないことを検知した場合(S205でN)、複数の認証サーバのうちの第1認証サーバが、取得した第1トランザクションデータの検証を行い(S210)、コンセンサスアルゴリズムによって前記第1トランザクションデータの正当性について合意された場合(S213)、第1トランザクションデータを含むブロックを分散台帳に記録する。
前記第1認証サーバが、前記機器から前記同意情報を含む第3トランザクションデータを取得するとともに、前記同意情報に基づき前記データを提供可能であるかを判断することを実行可能にプログラム化されたスマートコントラクトを取得し、
前記第1認証サーバが、前記第2トランザクションデータを取得した場合、取得した前記第3トランザクションデータに基づき前記スマートコントラクトを実行することで、前記データを前記サービスサーバに提供可能であると判断したとき、前記データが、前記サービスサーバに提供される、
請求項4に記載の制御方法。
【発明を実施するための形態】
【0012】
本開示の一実施態様の制御方法は、複数の認証サーバを少なくとも備える不正データ検知システムにおける制御方法であって、機器から取得したデータが不正データではないか否かを検知し、前記データを示す情報を含み前記機器が生成した第1トランザクションデータを取得し、前記データが不正データではないことを検知した場合に、複数の認証サーバのうちの第1認証サーバが、取得した前記第1トランザクションデータの検証を行い、前記第1認証サーバが、前記検証を行うことで前記第1トランザクションデータの正当性を確認した場合、前記複数の認証サーバのうちの前記第1認証サーバを除く複数の第2認証サーバとともに、前記第1トランザクションデータの正当性について合意するためのコンセンサスアルゴリズムを実行し、前記コンセンサスアルゴリズムによって前記第1トランザクションデータの正当性について合意された場合、前記第1認証サーバが、前記第1トランザクションデータを含むブロックを分散台帳に記録する。
【0013】
このように、取得したデータに関する情報を分散台帳に記録する前に、当該データを検証して、セキュアなデータである旨とともに当該データに関する情報を分散台帳に記録できる。これにより、ブロックチェーン技術を活用して、取得したデータがセキュアなデータであることを保証できる。よって、分散台帳を用いて、安心してデータを利活用することができる。
【0014】
また、前記不正データ検知システムは、検知サーバを含み、前記検知サーバが、前記機器から取得したデータが不正データであるか否かを検知し、前記機器から、前記第1トランザクションデータを取得し、前記データが不正データではないことを検知した場合に、前記第1トランザクションデータを、前記第1認証サーバに送信し、前記第1認証サーバが、前記データが不正データではないことを検知した場合として前記検知サーバから前記第1トランザクションデータが送信された場合、前記検知サーバから前記第1トランザクションデータを取得し、取得した前記第1トランザクションデータの検証を行うとしてもよい。
【0015】
これにより、検知サーバによりデータが不正データではないことを検知された場合に、第1トランザクションデータが第1認証サーバに送信され、第1認証サーバの分散台帳に記録される。よって、第1認証サーバの分散台帳に当該データに関する情報が記録された当該データがセキュアなデータであることを保証できるので、安心して当該データを利活用することができる。
【0016】
また、前記第1認証サーバが、前記機器から取得したデータが不正データであるか否かを検知し、前記機器から、前記第1トランザクションデータを取得し、前記データが不正データではないことを検知した場合に、前記第1トランザクションデータの検証を行うとしてもよい。
【0017】
これにより、第1認証サーバは、データが不正データではないことを検知した場合に、第1トランザクションデータを、第1認証サーバの分散台帳に記録する。よって、第1認証サーバの分散台帳に当該データに関する情報が記録された当該データがセキュアなデータであることを保証できるので、安心して当該データを利活用することができる。
【0018】
また、前記不正データ検知システムは、さらにサービスサーバを含み、前記制御方法では、前記サービスサーバが、前記データの取得を依頼する旨を示すデータ取得依頼を含む第2トランザクションデータを生成して、前記第1認証サーバに送信し、前記第1認証サーバが、前記第2トランザクションデータを取得した場合、前記機器から得た、前記データの利活用に関する同意情報に基づいて前記データを前記サービスサーバに提供可能であると判断したとき、前記データが、前記サービスサーバに提供されるとしてもよい。
【0019】
また、前記第1認証サーバが、前記機器から前記同意情報を含む第3トランザクションデータを取得するとともに、前記同意情報に基づき前記データを提供可能であるかを判断することを実行可能にプログラム化されたスマートコントラクトを取得し、前記第1認証サーバが、前記第2トランザクションデータを取得した場合、取得した前記第3トランザクションデータに基づき前記スマートコントラクトを実行することで、前記データを前記サービスサーバに提供可能であると判断したとき、前記データが、前記サービスサーバに提供されてもよい。
【0020】
また、前記データが不正データであるか否かを検知する際、前記機器から、前記データとして測定された歩数データを取得した場合、前記歩数データに、予め決められた期間において測定された歩数が閾値以上である歩数が含まれているときには、前記データが不正データであることを検知してもよい。
【0021】
また、前記データが不正データであるか否かを検知する際、前記機器から、前記データとして測定された歩数及び測定時の位置情報を含む歩数データを取得した場合、前記歩数データに、所定時間以上前記位置情報が変化しない状態の歩数が含まれているときには、前記データが不正データであることを検知してもよい。
【0022】
また、前記データが不正データであるか否かを検知する際、前記機器から、前記データとして測定された歩数及び測定時の心拍数を含む歩数データを取得した場合、前記歩数データに、所定時間以上前記心拍数が変化しない状態の歩数が含まれているときには、前記データが不正データであることを検知してもよい。
【0023】
また、前記データが不正データであるか否かを検知する際、前記機器から前記データを取得した場合、前記機器が異常であることを示す情報を取得したときには、前記データが不正データであることを検知してもよい。
【0024】
また、前記データが不正データであるか否かを検知する際、前記データが不正データではないことを検知した場合に、さらに、前記データに対する信用度を判定し、取得した前記第1トランザクションデータにおける前記データを示す情報に、判定した前記信用度を含めるとしてもよい。
【0025】
また、前記制御方法は、さらに、前記データが不正データであることを検知した場合には、前記第1トランザクションデータにおける前記情報に、前記データが不正データである旨を含めて第4トランザクションデータとして生成し、前記データが不正データであることを検知した場合、前記第1認証サーバが、前記第4トランザクションデータの検証を行い、前記第1認証サーバが、前記検証を行うことで前記第4トランザクションデータの正当性を確認した場合、前記複数の第2認証サーバとともに、前記第4トランザクションデータの正当性について合意するためのコンセンサスアルゴリズムを実行し、前記コンセンサスアルゴリズムによって前記第4トランザクションデータの正当性について合意された場合、前記第1認証サーバが、前記第4トランザクションデータを含むブロックを分散台帳に記録するとしてもよい。
【0026】
また、前記第1トランザクションデータには、前記データを示す情報として、前記データまたは前記データのハッシュ値が含まれてもよい。
【0027】
また、本開示の一実施態様の不正データ検知システムは、複数の認証サーバと検知サーバとを備える不正データ検知システムであって、前記検知サーバは、機器から取得したデータが不正データではないか否かを検知する検知部と、前記データを示す情報を含み前記機器が生成した第1トランザクションデータを取得し、前記データが不正データでないことを検知した場合に、前記第1トランザクションデータを、前記複数の認証サーバのうちの第1認証サーバに送信するデータ管理部と、を備え、前記第1認証サーバは、前記データが不正データではないことを検知した場合に、取得した前記第1トランザクションデータの検証を行うトランザクションデータ検証部と、前記検証を行うことで前記第1トランザクションデータの正当性を確認した場合、前記複数の認証サーバのうちの前記第1認証サーバを除く複数の第2認証サーバとともに、前記第1トランザクションデータの正当性について合意するためのコンセンサスアルゴリズムを実行するブロック生成部と、前記コンセンサスアルゴリズムによって前記第1トランザクションデータの正当性について合意された場合、前記第1認証サーバが、前記第1トランザクションデータを含むブロックを分散台帳に記録する記録部とを備える。
【0028】
以下、図面を参照しながら、実施の形態について説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序などは、本開示の一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本開示の一形態に係る実現形態を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。本開示の実現形態は、現行の独立請求項に限定されるものではなく、他の独立請求項によっても表現され得る。
【0029】
(実施の形態)
まず、本開示のシステム構成について説明する。
【0030】
[1. システム構成]
本開示の不正データ検知システムは、取得したデータに関する情報を分散台帳に記録する前に、当該データが不正データであるか否かを検知することで、不正データではない当該データにおけるデータに関する情報を分散台帳に記録する。これにより、本開示の不正データ検知システムは、ブロックチェーン技術を活用して、取得した当該データがセキュアなデータであることを保証できるので、安心して当該データの利活用を行うことができる。
【0031】
以下では、図面を参照しながら実施の形態における不正データ検知システム等の説明を行う。
【0032】
[1.1 不正データ検知システム10の全体構成]
図1は、本実施の形態に係る不正データ検知システム10の全体構成の一例を示す図である。不正データ検知システムは、
図1に示すように、住宅100と、端末110と、認証サーバ200a、200b、200cと、検知サーバ300と、サービスサーバ400とを備える。これらは、通信ネットワーク500で接続されている。
【0033】
認証サーバ200a、200b、200c(以下、認証サーバ200とも表現する)は、ブロックチェーンのトランザクションデータ及びブロックが電子的に記録される分散台帳を有する記憶装置と接続する。なお、認証サーバ200は、当該記憶装置と通信ネットワーク500を介して接続されていてもよいし、内部に当該記憶装置を備えてもよい。
【0034】
なお、
図1では、不正データ検知システム10が、3つの認証サーバ200を備える場合の例が示されているが、これに限らない。すなわち、不正データ検知システム10は、4つ以上の認証サーバ200を備えてもよい。
【0035】
[1.2 住宅100の構成]
図2は、本実施の形態に係る住宅100の全体構成の一例を示す図である。
【0036】
住宅100は、データを取得または収集する本開示に係る機器の一例である。取得または収集されるデータは、例えばユーザの健診データ、睡眠データ、血圧データ、体重データ、運動データなどヘルスケアデータであってもよいが、これに限らない。取得または収集されるデータは、ヘルスケアデータに限らず、心拍などのバイタルデータを含むユーザパーソナルデータであってもよいし、測定データであってもよいし、機器の動作履歴または機器の操作履歴などの機器の履歴情報であってもよい。このように、取得または収集されるデータは、サービス事業者が利活用できるデータであればよい。
【0037】
本実施の形態では、住宅100は、
図2に示すように、コントローラ101と、太陽光発電装置102と、蓄電池103と、エアコン104と、体組成計105と、血圧計106とを備える。これらは通信ネットワークで接続されている。
【0038】
<コントローラ101>
コントローラ101は、エアコン104、体組成計105及び血圧計106など宅内機器の制御を行う。また、制御部1011は、太陽光発電装置102及び蓄電池103の動作状況を表示してもよい。
【0039】
また、コントローラ101は、宅内機器の動作履歴または操作履歴などの履歴情報を収集してもよいし、太陽光発電装置102及び蓄電池103の動作状況の履歴情報を収集してもよい。また、コントローラ101は、宅内機器により測定された測定データを収集してもよい。
【0040】
さらに、コントローラ101は、収集した履歴情報及び測定データなどのデータを、検知サーバ300に送信してもよいし、生成したトランザクションデータを認証サーバ200に送信してもよい。
【0041】
<太陽光発電装置102>
太陽光発電装置102は、太陽電池を用いて太陽光を直接的に電力に変換する発電方式を搭載した装置である。太陽光発電装置102が発電した電力は、住宅100内で使用されたり、蓄電池103に蓄電されたりする。なお、太陽光発電装置102は必須の構成ではなく、住宅100に備えられていなくてもよい。
【0042】
<蓄電池103>
蓄電池103は、太陽光発電装置102が発電した電力を蓄電する。なお、蓄電池103は必須の構成ではなく、住宅100に備えられていなくてもよい。
【0043】
<エアコン104、体組成計105及び血圧計106>
エアコン104、体組成計105及び血圧計106は、ユーザが利用する宅内機器であるが、本開示の機器の一例であってもよい。例えばエアコン104の動作履歴または操作履歴などの履歴情報は、検知サーバ300に送信される。また、体組成計105及び血圧計106の動作履歴または操作履歴などの履歴情報、体組成計105により測定されたユーザの体重データ、及び/または血圧計106により測定されたユーザの血圧データなどの測定データも検知サーバ300に送信される。なお、これらのデータは、コントローラ101を経由して検知サーバ300に送信されてもよいし、直接検知サーバ300に送信されてもよい。
【0044】
以下、コントローラ101の構成の一例について説明する。
【0045】
[1.3 コントローラ101の構成]
図3は、
図2に示すコントローラ101の構成の一例を示すブロック図である。
【0046】
コントローラ101は、プロセッサ(不図示)と、プロセッサに所定の処理を実行させるプログラムが記憶されたメモリ(不図示)とを備える。つまり、コントローラ101は、プロセッサがメモリを用いて所定のプログラムを実行することで実現される。本実施の形態では、コントローラ101は、
図3に示すように、制御部1011、トランザクションデータ生成部1012と、入力部1013と、記録部1014と、通信部1015とを備える。
【0047】
<制御部1011>
制御部1011は、宅内機器の制御を行ってもよい。
図2に示す例では、制御部1011は、エアコン104、体組成計105及び血圧計106などの宅内機器を操作したり、宅内機器の動作履歴、状態を管理したりする。また、制御部1011は、太陽光発電装置102及び蓄電池103の動作状況を表示してもよい。例えば、制御部1011は、太陽光発電装置102での発電状況または蓄電池103の蓄電状態を表示してもよい。また、制御部1011は、宅内機器の状態または体組成計105または血圧計106で測定したバイタルデータを表示してもよい。
【0048】
また、制御部1011は、宅内機器の動作履歴または操作履歴などの履歴情報を収集してもよいし、太陽光発電装置102及び蓄電池103の動作状況の履歴情報を収集してもよい。また、制御部1011は、宅内機器により測定された測定データを収集してもよい。
【0049】
<入力部1013>
入力部1013は、取得または収集したデータの利活用に関する同意情報を生成する。ここで、同意情報は、取得または収集したデータが利活用されることについてユーザが同意している内容を示す情報であり、ユーザの操作に基づいて生成される。同意情報は、例えば入力部1013が提供するデータ提供先のサービス事業者の一覧またはデータの一覧の中から、選択または選択を外すことで生成されてもよい。この場合、同意情報には、ユーザが同意したデータ提供可能なサービス事業者またはユーザが同意した提供可能なデータもしくはデータの種類が含まれる。つまり、同意情報には、ユーザが提供を同意したサービス事業者、または、データもしくはデータの種類が含まれる。また、同意情報には、さらに、フィードバックが一定以上である場合に提供することを同意する情報が含まれていてもよい。
【0050】
また、入力部1013は、生成した同意情報に基づいて、スマートコントラクトを生成してもよい。ここで、このスマートコントラクトは、データを提供可能であるかを判断することを実行可能にプログラム化されたものである。このスマートコントラクトには、入力部1013により生成された同意情報が含まれてもよい。
【0051】
なお、入力部1013は、コントローラ101にインストールされたアプリケーションであってもよく、その場合には、インストールされたアプリケーションが入力部1013の上記機能を実現する。
【0052】
<トランザクションデータ生成部1012>
トランザクションデータ生成部1012は、ブロックチェーンにおけるトランザクションデータを生成する。本実施の形態では、トランザクションデータ生成部1012は、入力部1013で生成された同意情報を含むトランザクションデータを生成する。より具体的には、トランザクションデータ生成部1012は、例えば、ユーザが保有するブロックチェーンアドレスと、ユーザが提供を同意したサービス事業者またはデータもしくはデータの種類を含む同意情報と、署名とを含むトランザクションデータを生成する。なお、トランザクションデータ生成部1012は、さらに、識別子を付与してトランザクションデータを生成してもよい。トランザクションデータ生成部1012は、ユーザ個別の署名生成鍵を用いて署名を生成する。
【0053】
また、トランザクションデータ生成部1012は、入力部1013で生成されたスマートコントラクトを含むトランザクションデータを生成してもよい。なお、トランザクションデータ生成部1012は、入力部1013で生成された同意情報とスマートコントラクトとを含むトランザクションデータを生成してもよい。
【0054】
また、トランザクションデータ生成部1012は、制御部1011で収集等された履歴情報または測定データなどのデータを示す情報を含むトランザクションデータを生成してもよい。この場合、トランザクションデータ生成部1012は、例えば、ユーザが保有するブロックチェーンアドレスと、制御部1011で収集等されたデータを示す情報と、署名とを含むトランザクションデータを生成すればよい。ここで、データを示す情報は、例えば、制御部1011で収集等されたデータそのものであってもよいし、当該データのハッシュ値でもよいし、当該データのハッシュ値及び当該データの属性情報でもよい。
【0055】
データの属性情報には、例えば当該データを収集等したセンサまたは機器の種別が含まれてもよい。また、データが歩数データ、体重データ、体脂肪率データまたは血圧データなどである場合、データの属性情報には、当該データがいつ、どうやって、どの項目で、測定または収集されたかを示すデータ項目などが含まれてもよい。データが、家電機器などの宅内機器の場合も、その動作履歴、動作日時などを示すデータ項目が含まれてもよい。
【0056】
トランザクションデータ生成部1012は、生成したトランザクションデータを記録部1014に記録する。トランザクションデータ生成部1012は、通信部1015を介して認証サーバ200または検知サーバ300に送信する。
【0057】
<記録部1014>
記録部1014は、制御部1011で収集した履歴情報及び測定データなどのデータを記録する。また、記録部1014は、トランザクションデータ生成部1012が生成したトランザクションデータを記録する。また、記録部1014は、入力部1013で生成された同意情報及びスマートコントラクトを記録してもよい。
【0058】
<通信部1015>
通信部1015は、通信ネットワーク500を介して、認証サーバ200、検知サーバ300、及び、サービスサーバ400と通信を行う。この通信は、TLS(Transport Layer Security)によりなされてもよい。この場合、TLS通信用の暗号鍵は通信部1015で保持してもよい。
【0059】
続いて、端末110の構成の一例について説明する。
【0060】
[1.4 端末110の構成]
図4は、本実施の形態に係る端末110の構成の一例を示すブロック図である。端末110は、本開示の機器の一例であり、プロセッサがメモリを用いて所定のプログラムを実行することで実現される。また、端末110は、例えばスマートフォンのような表示部及び入力部を有する機器、または、ウェアラブルデバイスのようなユーザの測定データを取得する機器などである。
【0061】
本実施の形態では、端末110は、
図4に示すように、トランザクションデータ生成部1101と、入力部1102と、データ取得部1103と、記録部1104と、通信部1105とを備える。
【0062】
<入力部1102>
入力部1102は、データの利活用に関するユーザの同意情報を生成する。同意情報は、上述したように、取得または収集したデータが利活用されることについてユーザが同意している内容を示す情報であり、ユーザの操作に基づいて生成される。
【0063】
例えば、同意情報は、入力部1013が提供するデータ提供先のサービス事業者の一覧またはデータの一覧の中から、選択または選択を外すことで生成されてもよい。この場合、ユーザは、データの活用の目的、データの活用実績、または、データを活用したことによるユーザへのフィードバックもしくはインセンティブを基に、データ提供先のサービス事業者を選択してもよい。インセンティブまたはフィードバックの一例としては、ユーザがデータをサービス事業者に提供した場合に当該サービス事業者からユーザに仮想通貨が支払われることもしくは享受できる情報が表示されることが挙げられる。また、インセンティブまたはフィードバックの一例としては、ユーザが体組成計もしくは血圧計の測定履歴などの測定データをスポーツクラブに提供した場合にスポーツクラブから無料体験または会費の減額を享受できることもしくは享受できる情報が表示されることが挙げられる。
【0064】
また、入力部1102は、生成した同意情報に基づいて、データを提供可能であるかを判断することを実行可能にプログラム化されたスマートコントラクトを生成してもよい。
【0065】
<トランザクションデータ生成部1101>
トランザクションデータ生成部1101は、ブロックチェーンにおけるトランザクションデータを生成する。本実施の形態では、トランザクションデータ生成部1101は、入力部1102で生成された同意情報を含むブロックチェーンにおけるトランザクションデータを生成する。より具体的には、トランザクションデータ生成部1101は、例えば、ユーザが保有するブロックチェーンアドレスと、ユーザが提供を同意したサービス事業者またはデータもしくはデータの種類を含む同意情報と、署名とを含むトランザクションデータを生成する。
【0066】
なお、トランザクションデータ生成部1101は、さらに、識別子を付与してトランザクションデータを生成してもよい。トランザクションデータ生成部1101は、ユーザ個別の署名生成鍵を用いて署名を生成すればよい。
【0067】
また、トランザクションデータ生成部1101は、データ取得部1103で取得したデータを示す情報を含むトランザクションデータを生成するとしてもよい。この場合、トランザクションデータ生成部1101は、例えば、ユーザが保有するブロックチェーンアドレスと、データ取得部1103で取得したデータを示す情報と、署名とを含むトランザクションデータを生成すればよい。データを示す情報は、例えば、データ取得部1103で取得したデータそのものであってもよいし、当該データのハッシュ値でもよいし、当該データのハッシュ値及び当該データの属性情報でもよい。
【0068】
また、トランザクションデータ生成部1101は、入力部1102で生成されたスマートコントラクトを含むトランザクションデータを生成してもよい。なお、トランザクションデータ生成部1101は、入力部1102で生成された同意情報とスマートコントラクトとを含むトランザクションデータを生成してもよい。
【0069】
トランザクションデータ生成部1101は、生成したトランザクションデータを記録部1104に記録する。トランザクションデータ生成部1101は、生成したトランザクションデータを、通信部1105を介して、認証サーバ200または検知サーバ300に送信する。
【0070】
<データ取得部1103>
データ取得部1103は、端末110が保有するセンサが得た測定データなどのデータを取得する。例えば端末110が加速度センサ及びGPSセンサを保有する場合、データ取得部1103は、測定データとして、加速度センサから得た歩数、GPSセンサから得た位置情報を含む歩数データを取得する。また、データ取得部1103は、測定データとして、血圧データを取得してもよいし、心拍データを取得してもよい。つまり、データ取得部1103は、サービス事業者が利活用できるデータを取得する。
【0071】
データ取得部1103は、取得したデータを記録部1104に記録する。データ取得部1103は、通信部1105を介して、検知サーバ300に送信してもよい。
【0072】
<記録部1104>
記録部1104は、トランザクションデータ生成部1101が生成したトランザクションデータを記録する。また、記録部1104は、データ取得部1103が取得したデータを記録する。なお、記録部1104は、入力部1102が生成した同意情報及びスマートコントラクトを記録してもよい。
【0073】
<通信部1105>
通信部1105は、通信ネットワーク500を介して、認証サーバ200、検知サーバ300と通信を行う。この通信は、TLSによりなされてもよい。この場合、TLS通信用の暗号鍵は通信部1105で保持してもよい。
【0074】
続いて、認証サーバ200の構成の一例について説明する。
【0075】
[1.5 認証サーバ200aの構成]
図5は、本実施の形態に係る認証サーバ200aの構成の一例を示すブロック図である。認証サーバ200b、200cも同様の構成である。このため、以下では、認証サーバ200aを例に挙げて説明する。
【0076】
認証サーバ200aは、
図5に示すように、トランザクションデータ検証部211と、ブロック生成部212と、同期部213と、スマートコントラクト実行部214と、記録部215と、通信部216とを備える。認証サーバ200aは、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。以下、各構成要素について説明する。
【0077】
<トランザクションデータ検証部211>
トランザクションデータ検証部211は、受信したトランザクションデータを検証する。具体的には、住宅100または端末110などの機器からのトランザクションデータを受信すると、トランザクションデータ検証部211は、トランザクションデータのフォーマットが合っているか、及び署名が正当であるかを検証する。例えば、同意情報を含むトランザクションデータを検証する場合、トランザクションデータ検証部211は、当該トランザクションデータに含まれるアドレス、同意情報及び署名が正当であるかを検証する。なお、例えばデータを示す情報を含むトランザクションデータを検証する場合、トランザクションデータ検証部211は、当該トランザクションデータに含まれるアドレス、データを示す情報及び署名が正当であるかを検証すればよい。
【0078】
このように、トランザクションデータ検証部211は、受信したトランザクションデータの正当性を確認することでトランザクションデータを検証する。
【0079】
トランザクションデータ検証部211は、検証した結果、トランザクションデータの正当性を確認した場合、そのトランザクションデータを記録部215に記録する。ここで、正当なトランザクションデータと判断した場合は、同期部213へ通知する。
【0080】
<ブロック生成部212>
ブロック生成部212は、トランザクションデータ検証部211においてトランザクションデータの検証が成功した場合、複数の認証サーバ200の間で、トランザクションデータについてのコンセンサスアルゴリズムを実行する。ここで、コンセンサスアルゴリズムは、PBFT(Practical Byzantine Fault Tolerance)とよばれるコンセンサスアルゴリズムを用いてもよいし、PoW(Proof of Work)などその他の公知のコンセンサスアルゴリズムを用いてもよい。
【0081】
本実施の形態では、ブロック生成部212は、認証サーバ200a、認証サーバ200b及び認証サーバ200cの間でコンセンサスアルゴリズムを実行する。すなわち、ブロック生成部212は、まず、1以上のトランザクションデータを含むブロックチェーンのブロックを生成する。次に、ブロック生成部212は、コンセンサスアルゴリズムを実行する。そして、ブロック生成部212は、コンセンサスアルゴリズムを実行することで合意形成ができた場合、生成したブロックを記録部215に記録する。ブロック生成部212により生成されたブロックは、記録部215によりブロックチェーンに接続されて記録される。
【0082】
ここで、ブロックチェーンのデータ構造について説明する。
【0083】
図6は、ブロックチェーンのデータ構造を示す説明図である。
【0084】
ブロックチェーンは、その記録単位であるブロックがチェーン(鎖)状に接続されたものである。それぞれのブロックは、複数のトランザクションデータと、直前のブロックのハッシュ値とを有している。具体的には、ブロックB2には、その前のブロックB1のハッシュ値が含まれている。そして、ブロックB2に含まれる複数のトランザクションデータと、ブロックB1のハッシュ値とから演算されたハッシュ値が、ブロックB2のハッシュ値として、ブロックB3に含められる。このように、前のブロックの内容をハッシュ値として含めながら、ブロックをチェーン状に接続することで、接続されたトランザクションデータの改ざんを有効に防止する。
【0085】
仮に過去のトランザクションデータが変更されると、ブロックのハッシュ値が変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降のブロックすべてを作り直さなければならず、この作業は現実的には非常に困難である。
【0086】
<同期部213>
同期部213は、複数の認証サーバ200(認証サーバ200a〜200c)の間でブロックチェーンのブロック、または、トランザクションデータの同期を行う。
【0087】
複数の認証サーバ200の同期部213では、peer to peerでブロックチェーンのトランザクションデータの同期を行う。そして、同期部213は、同期が行われたブロックチェーンのトランザクションデータを記録部215に記録する。例えば、同期部213は、トランザクションデータ検証部211においてトランザクションデータの正当性が検証されると、他の認証サーバ200である認証サーバ200b、200cに検証済みのトランザクションデータを転送する。また、同期部213は、他の認証サーバ200から検証済みのトランザクションデータを受信した場合、受信した検証済みのトランザクションデータを記録部215に記録する。
【0088】
<スマートコントラクト実行部214>
スマートコントラクト実行部214は、分散台帳に記録されているスマートコントラクトを、ワーキングメモリに格納する。スマートコントラクト実行部214は、ワーキングメモリに格納されるスマートコントラクトを実行する。
【0089】
例えば、スマートコントラクト実行部214は、データ取得依頼を含むトランザクションデータが分散台帳に記録されるすなわち当該トランザクションデータを含むブロックが生成されて分散台帳に記録されると、ユーザの同意情報に基づいて生成されたスマートコントラクトをワーキングメモリに格納する。スマートコントラクト実行部214は、ワーキングメモリに格納したスマートコントラクトを実行することで、実行されたスマートコントラクトに、データ提供可否を判断させることができる。また、実行されたスマートコントラクトは、データ提供可否の判断結果の通知をしたり、データ取得依頼を含むトランザクションデータに含まれるブロックチェーンアドレスに対して、アクセス権の付与を行ったりする。このように、スマートコントラクト実行部214は、サービスサーバ400からのアクセスをトリガにして、スマートコントラクトを実行することで、検知サーバ300が保有するデータに対するサービスサーバ400のアクセス管理ができる。
【0090】
また、例えば、スマートコントラクト実行部214は、インセンティブ支払いまたはフィードバック提供に関する情報を含むトランザクションデータが分散台帳に記録されると、インセンティブ支払いまたはフィードバック提供に基づいて生成されたスマートコントラクトをワーキングメモリに格納する。スマートコントラクト実行部214は、ワーキングメモリに格納したスマートコントラクトを実行することで、実行されたスマートコントラクトに、インセンティブ支払いまたはフィードバック提供をさせることができる。インセンティブ支払いまたはフィードバック提供は、インセンティブ支払いまたはフィードバック提供をした旨の通知をすることでもよいし、ユーザに対してインセンティブ支払いまたはフィードバック提供をすることでもよい。
【0091】
<記録部215>
記録部215は、トランザクションデータをブロックに含めて、認証サーバ200aの分散台帳に記録する。当該分散台帳は、記録部215の内部に構成されていてもよいし、認証サーバ200aの外部記憶装置の内部に構成されていてもよい。
【0092】
なお、当該トランザクションデータは、住宅100または端末110から受信したトランザクションデータを含む。
【0093】
本実施の形態では、記録部215は、本開示の機器から受信したトランザクションデータの正当性が確認された場合、当該トランザクションデータを含むブロックを認証サーバ200aの分散台帳に記録する。なお、分散台帳に記録されるブロックチェーンのブロックは、サービスサーバ400、住宅100または端末110に公開されてもよい。
【0094】
<通信部216>
通信部216は、住宅100、端末110、認証サーバ200b、200c、検知サーバ300、及びサービスサーバ400との通信を行う。この通信は、TLSによりなされてもよい。この場合、TLS通信用の暗号鍵は通信部216で保持するとしてもよい。
【0095】
このように、認証サーバ200aは、住宅100または端末110から取得したデータの正当性を検証したり、データ提供の可否を管理したり、サービスサーバ400にデータ提供したりするための処理を行う。なお、住宅100または端末110から取得されるデータは、検知サーバ300で記録され、認証サーバ200aで記録されないとして説明したが、これに限らない。認証サーバ200aで当該データが記録されてもよい。この場合、認証サーバ200aの分散台帳に、当該データを含めたトランザクションデータとして記録されてもよい。
【0096】
次に、検知サーバ300について説明する。
【0097】
[1.6 検知サーバ300の構成]
図7は、本実施の形態に係る検知サーバ300の構成の一例を示すブロック図である。
【0098】
検知サーバ300は、
図7に示すように、データ管理部311と、検知部312と、トランザクションデータ生成部313と、記録部314と、通信部315とを備える。検知サーバ300は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。以下、各構成要素について説明する。
【0099】
<データ管理部311>
データ管理部311は、住宅100または端末110から取得したデータを管理する。データ管理部311は、検知部312で不正データではないことが検知されたデータを記録部314に記録する。データ管理部311は、検知サーバ300が、住宅100または端末110から、データを示す情報を含むトランザクションデータを受信しなかった場合には、住宅100または端末110から取得したデータの属性情報などをトランザクションデータ生成部313に送信する。なお、データの属性情報には、上述したように当該データを収集等したセンサまたは機器の種別またはデータ項目などが含まれてもよい。また、データ管理部311は、検知部312で不正データであることが検知されたデータを、不正データである旨の情報が付与されて記録部314に記録してもよい。
【0100】
また、データ管理部311は、サービスサーバ400からデータ提供の依頼を受けたときには、認証サーバ200の分散台帳に記録されている同意情報に基づいて、ユーザのデータを提供する。本実施の形態では、認証サーバ200で同意情報に基づいて生成されたスマートコントラクトが実行され、データの提供可を示す通知を認証サーバ200から、検知サーバ300が受信したとする。この場合、データ管理部311は、サービスサーバ400からデータ提供の依頼を受けたときには、ユーザの当該データを提供する。なお、データ管理部311は、サービスサーバ400から、データ提供の依頼とともに、データ提供してほしいデータに対応するブロックチェーンアドレスも受けてもよい。
【0101】
<検知部312>
検知部312は、住宅100または端末110などの機器から取得したデータが不正データであるかどうかを検知する。ここで、例えば、住宅100または端末110などの機器から、測定された歩数データを取得した場合、検知部312は、歩数データに、予め決められた期間において測定された歩数が閾値以上である歩数が含まれているときには、歩数データが不正データであることを検知すればよい。具体的には、検知部312は、歩数データに、10分間に1万歩以上の歩数が測定されている場合、当該歩数データが不正データであると検知すればよい。ユーザなどの人が10分間で1万歩歩くことは不可能であるため、10分間に1万歩以上の歩数が測定されている場合、歩数データが改ざんされるなどの不正がなされていて、歩数データが不正データであると考えることができるからである。
【0102】
また、検知部312は、歩数データに、閾値以上の時間において一定の割合で増加する歩数が含まれているときには、歩数データが不正データであることを検知すればよい。閾値以上の時間において一定の割合で歩数が増加する場合は、振り子などを使ってセンサを保有する端末110等を動作させているなどの不正がなされていると考えられ、歩数データが不正データであると考えることができるからである。
【0103】
また、例えば、住宅100または端末110などの機器から、測定された歩数及び測定時の位置情報を含む歩数データを取得した場合、検知部312は、歩数データに、所定時間以上、位置情報が変化しない状態の歩数が含まれているときには、歩数データが不正データであることを検知してもよい。位置情報が変わらないにもかかわらず歩数が増加する場合、振り子などを使ってセンサを保有する端末110等を動作させているなどの不正がなされていると考えられ、歩数データが不正データであると考えることができるからである。
【0104】
また、例えば、住宅100または端末110などの機器から、測定された歩数及び測定時の心拍数を含む歩数データを取得した場合、検知部312は、歩数データに、所定時間以上、心拍数が変化しない状態の歩数が含まれているときには、歩数データが不正データであることを検知してもよい。
【0105】
また、例えば、端末110などの機器から、測定中の歩数データを取得した場合、検知部312は、端末110などの機器に、ユーザに何かしらの入力をさせるためのメッセージを送信してもよい。そして、検知部312は、端末110からメッセージに対する何かしらの入力結果を取得できないときには、取得した歩数データが不正データであることを検知してもよい。
【0106】
また、住宅100または端末110などの機器から、体組成計の測定データを取得した場合、検知部312は、測定データに、前回の体組成計測値から閾値以上の値の変化がある体組成計測値が含まれるときには、取得した測定データが不正データであると検知してもよい。
【0107】
また、住宅100または端末110などの機器から、体組成計の測定データを取得した場合、検知部312は、前回の体組成計測値からある期間以下で閾値以上の変化があったときには、測定データが不正データであると検知してもよい。具体的には、検知部312は、前回の血圧値から1分以内に計測された血圧値が30以上変化している場合には、血圧値の測定データが不正データであると検知してもよい。また、検知部312は、前回の体組成計測値から1日以内に計測された体組成計測値が5キログラム以上変化している場合には、体組成計測値の測定データが不正データであると検知してもよい。
【0108】
また、例えば、住宅100または端末110などの機器からデータを取得した場合、さらに、当該機器が異常であることを示す情報を取得したときには、検知部312は、取得したデータが不正データであることを検知してもよい。
【0109】
なお、検知部312は、住宅100が有する太陽光発電装置102または蓄電池103などの機器の異常を検知してもよい。例えば、検知部312は、外部サーバ(不図示)から天気の情報を入手し、天気が晴れていないにもかかわらず、太陽光発電装置102の発電量が多いときには、太陽光発電装置102が異常または故障であると検知してもよい。また、例えば、検知部312は、住宅100内のエアコン104などの機器が蓄電池103の電力を利用しているにも関わらず、蓄電池103の残量が減少しないときには、蓄電池103が異常または故障であると検知してもよい。
【0110】
また、検知部312は、取得したデータが不正データできることを検知することに加えて、機器の故障等の不具合による非正常動作または非動作を検知してもよい。具体的には、検知部312は、住宅100の太陽光発電装置102または蓄電池103などの機器から定期的に取得するデータを受信できない場合、または、取得したデータが破損しているなど取得したデータが異常データの場合、機器が故障していると検知してもよい。
【0111】
また、検知部312は、住宅100が有する太陽光発電装置102または蓄電池103などの機器の異常を検知するために、他の端末または他の住宅のデータを用いてもよい。例えば、検知部312は、住宅100に隣接する住宅の太陽光発電装置の発電量を用いて、住宅100から取得した太陽光発電装置102の発電量を検証し、閾値以上に異なる場合、太陽光発電装置102が異常または故障であると検知してもよい。また、当該端末や住宅内の機器から過去に受信したデータや端末を利用するユーザのデータをもとにデータを検証するとしてもよい。
【0112】
また、検知部312は、住宅100または端末110などの機器から取得したデータが不正データではないことを検知した場合、当該データをデータ管理部311に送信し、記録部314に記録する。
【0113】
一方、検知部312は、住宅100または端末110などの機器から取得したデータが不正データであることを検知した場合、当該データを破棄してもよいし、当該データの属性に不正データであることを付与して記録部314に記録してもよい。そして、検知部312は、不正データであることを付与した属性情報をトランザクションデータ生成部313に送信してもよい。
【0114】
なお、検知部312は、機器から取得したデータが不正データであることを検知した場合または機器の異常を検知した場合、端末110または住宅100のコントローラ101にその旨の通知を送信し、ユーザに問い合わせてもよい。
【0115】
<トランザクションデータ生成部313>
トランザクションデータ生成部313は、検知サーバ300が、住宅100または端末110から、データを示す情報を含むトランザクションデータを受信せず、データ管理部311からデータの属性情報を受信する場合、データの属性情報を含むトランザクションデータを生成する。トランザクションデータ生成部313は、生成したトランザクションデータを記録部314に記録する。また、トランザクションデータ生成部313は、生成したトランザクションデータを、通信部315を介して認証サーバ200に送信する。
【0116】
<記録部314>
記録部314は、住宅100または端末110などの本開示の機器からデータを取得した場合、取得したデータを記録する。また、記録部314は、検知サーバ300が取得したデータが不正データであるか否かを検知した検知結果を記録する。また、記録部314は、トランザクションデータ生成部313がトランザクションデータを生成した場合、そのトランザクションデータを記録する。
【0117】
<通信部315>
通信部315は、通信ネットワーク500を介して、住宅100、端末110、認証サーバ200、サービスサーバ400と通信を行う。この通信は、TLSによりなされてもよい。この場合、TLS通信用の暗号鍵は通信部315で保持してもよい。
【0118】
このように、検知サーバ300は、住宅100または端末110から取得したデータが、不正データであるかを検知し、かつ、当該データを記録する。検知サーバ300は、例えば、端末110から歩数データを取得し、歩数データが不正データではないことを検知した場合、当該データを記録し、認証サーバ200に当該データに関する情報を記録する。
【0119】
なお、本実施の形態では、検知サーバ300と認証サーバ200とは独立したサーバとして説明しているが、これに限らない。検知サーバ300の機能は、認証サーバ200に含まれて動作してもよい。
【0120】
続いて、サービスサーバ400の構成の一例について説明する。
【0121】
[1.7 サービスサーバ400の構成]
図8は、本実施の形態に係るサービスサーバ400の構成の一例を示すブロック図である。
【0122】
サービスサーバ400は、サービス事業者がサービスを提供するために管理するサーバであり、例えばスポーツクラブのサーバである。本実施の形態では、サービスサーバ400は、
図8に示すように、サービス管理部411と、ユーザ管理部412と、トランザクションデータ生成部413と、記録部414と、通信部415とを備える。サービスサーバ400は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。以下、各構成要素について説明する。
【0123】
<サービス管理部411>
サービス管理部411は、ユーザ管理部412が管理するユーザの情報を活用し、サービスを提供する。例えば、サービス管理部411は、ユーザの体組成計測値または血圧計測値などの測定データを含むデータを検知サーバ300から取得し、新たなヘルスケアサービスを提供したり、効果を実証したりする。
【0124】
サービス管理部411は、ユーザ管理部412が管理するユーザの情報を利用して、データの取得を依頼する旨を示すデータ取得依頼を生成し、トランザクションデータ生成部413に送信する。サービス管理部411は、例えば、ユーザのどのようなデータを取得したいかを決定し、取得したいユーザの属性情報または取得したいデータ種別などを基に、データ取得依頼を生成する。データ取得依頼には、例えば、ユーザの識別子が事前に判明している場合はユーザの識別子を指定した依頼が含まれていてもよいし、ブロックチェーンアドレスが指定した依頼が含まれていてもよいし、属性を指定した依頼が含まれていてもよい。ここでの属性は、住宅100または端末110などの機器の種別でもよいし、機器から取得したデータの種別でもよいし、ユーザの属性でもよい。
【0125】
また、サービス管理部411は、データを取得した場合、取得したデータに対する対価として、取得したデータのユーザに対してインセンティブ支払いまたはフィードバック提供に関する情報を生成し、トランザクションデータ生成部413に送信する。ここで、インセンティブ支払いまたはフィードバック提供に関する情報は、取得したデータに対する対価として、ユーザのブロックチェーンアドレスに対して仮想通貨が支払われた旨が含まれていてもよい。なお、サービス管理部411は、生成したインセンティブ支払いまたはフィードバック提供に基づいてスマートコントラクトを生成してもよい。この場合、スマートコントラクトには、例えば、取得したデータに対する対価として、ユーザのブロックチェーンアドレスに対して仮想通貨を支払うことを実行するためのプログラムが含まれていてもよい。
【0126】
<ユーザ管理部412>
ユーザ管理部412は、サービスを提供する対象となるユーザの情報を取得し、取得したユーザの情報を管理する。
【0127】
<トランザクションデータ生成部413>
トランザクションデータ生成部413は、サービス管理部411により生成されたデータ取得依頼を含むトランザクションデータを生成する。
【0128】
また、トランザクションデータ生成部413は、サービス管理部411により生成されたインセンティブ支払いまたはフィードバック提供に関する情報を含むトランザクションデータを生成する。
【0129】
また、トランザクションデータ生成部413は、サービス管理部411により生成されたインセンティブ支払いまたはフィードバック提供に基づくスマートコントラクトを含むトランザクションデータを生成してもよい。
【0130】
<記録部414>
記録部414は、サービス提供に必要なユーザの情報またはサービスの情報を記録する。また、記録部414は、トランザクションデータ生成部413が生成したトランザクションデータを記録する。なお、記録部414は、サービス管理部411により生成されたデータ取得依頼、インセンティブ支払いもしくはフィードバック提供に関する情報、及び、スマートコントラクトを記録してもよい。
【0131】
<通信部415>
通信部415は、通信ネットワーク500を介して、認証サーバ200及び検知サーバ300と通信を行う。この通信は、TLSによりなされてもよい。この場合、TLS通信用の暗号鍵は通信部415で保持するとしてもよい。
【0132】
[1.8 不正データ検知システム10の全体シーケンス]
続いて、不正データ検知システム10の全体シーケンスについて説明する。
図9は、本実施の形態に係る不正データ検知システム10の全体シーケンス図である。各処理については後述する。
【0133】
まず、ステップS100において、端末110と住宅100と認証サーバ200a〜200cとの間で同意情報登録処理が行われる。なお、後述する同意情報登録処理では、端末110が同意情報を登録する場合について説明する。住宅100のコントローラ101が同意情報を登録する場合でも同様の処理となるため、住宅100のコントローラ101が同意情報を登録する場合の説明は省略する。
【0134】
次に、ステップS200において、端末110と住宅100と認証サーバ200a〜200cと検知サーバ300との間でデータ登録処理が行われる。後述するデータ登録処理では、端末110から取得したデータを登録する場合について説明する。住宅100が宅内機器のデータを登録する場合でも同様の処理となるため、住宅100が宅内機器のデータを登録する場合の説明は省略する。
【0135】
次に、ステップS300において、端末110と住宅100と認証サーバ200a〜200cと検知サーバ300とサービスサーバ400との間でデータ参照処理が行われる。
【0136】
なお、ステップS300のデータ参照処理は、ステップS100の同意情報登録処理においてユーザの同意情報が登録された後に実行可能になる。
【0137】
[1.8.1 同意情報登録処理]
続いて、端末110と認証サーバ200a〜200cとの間での同意情報登録処理について説明する。
【0138】
図10は、本実施の形態に係る端末110と認証サーバ200a〜200cとの間での同意情報登録処理を示すシーケンス図である。
図10に示す例では、端末110が同意情報を登録する場合について説明する。
【0139】
まず、端末110は、ユーザの操作に基づいて同意情報を生成する(S101)。ここで、端末110には、入力部1013としてアプリケーションが導入されており、アプリケーションがユーザの操作に基づいて同意情報を生成してよい。この場合、ユーザは、入力部1013が提供するデータ提供先のサービス事業者の一覧またはデータの一覧の中から、選択または選択を外すかを指示するだけで、端末110に同意情報を生成させることができる。
【0140】
なお、ユーザは、端末110に同意情報を生成させる際、サービス事業者からのフィードバックが多いか否かを判断した上で同意情報を生成させてもよい。例えば、ユーザは、データをサービス事業者に提供した場合、仮想通貨が提供されること、または、サービス事業者のクーポンもしくは割引が提供されることといったフィードバックの内容から、選択するデータ提供先(つまりデータ提供の同意)を決めてもよい。また、例えば、ユーザは、データをサービス事業者に提供した場合に提供される仮想通貨の額またはクーポンもしくは割引の額などユーザへのフィードバックの内容を基に選択するデータ提供先(つまりデータ提供の同意)を決めてもよい。フィードバックの内容は、サービス事業者から公開されるとしてもよいし、認証サーバ200のブロックチェーンに記録されていてもよい。
【0141】
次に、端末110は、ステップS101で生成した同意情報に基づいて、スマートコントラクトを生成する(S102)。このスマートコントラクトは、データを提供可能であるかを判断することを実行可能にプログラム化されたものである。このスマートコントラクトには、ステップS101で生成された同意情報が含まれてもよい。さらに、このスマートコントラクトには、フィードバックが一定以上である場合に提供するか否かを判断することを実行可能にプログラムが含まれていてもよい。
【0142】
次に、端末110は、生成した同意情報とスマートコントラクトとを含むトランザクションデータ(以下、第3トランザクションデータと称する)を生成する(S103)。
【0143】
次に、端末110は、ステップS103で生成した第3トランザクションデータを、認証サーバ200aに送信する(S104)。なお、
図10に示す例では、端末110は、生成した第3トランザクションデータを認証サーバ200aに送信しているが、認証サーバ200b、200cに送信してもよい。認証サーバ200b、200cに送信した場合も同様である。
【0144】
次に、認証サーバ200aは、端末110から第3トランザクションデータを取得すると(S105)、取得した第3トランザクションデータの検証を行う(S106)。
【0145】
ステップS106において、第3トランザクションデータの検証が成功しなかった場合(S106でN)、認証サーバ200aは、端末110にその旨の通知を送信する(S107)。
【0146】
一方、ステップS106において、第3トランザクションデータの検証が成功した場合(S106でY)、認証サーバ200aは、他の認証サーバ200(認証サーバ200b、200c)に第3トランザクションデータを転送する(S108)。なお、他の認証サーバ200でも、転送された第3トランザクションデータを検証する。
【0147】
次に、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、コンセンサスアルゴリズムを実行する(S109)。認証サーバ200aと認証サーバ200bと認証サーバ200cとは、第3トランザクションデータが正当なトランザクションデータであること(つまり正当性)を検証すると、それぞれ第3トランザクションデータを含むブロックを生成する。そして、認証サーバ200a、200b、200cは、第3トランザクションデータを含むブロックを分散台帳に記録する。
【0148】
このようにして端末110が作成したスマートコントラクトと同意情報とが分散台帳に記録される。
【0149】
そして、スマートコントラクトは、分散台帳に記録されることで、実行可能になるすなわち稼働する(S110)。なお、スマートコントラクトは、分散台帳に記録されることで、認証サーバ200a等のワーキングメモリに格納されるので実行可能になる。
【0150】
[1.8.2 データ登録処理]
続いて、端末110と認証サーバ200a〜200cと検知サーバ300との間でのデータ登録処理について説明する。
【0151】
図11は、本実施の形態に係る端末110と認証サーバ200a〜200cと検知サーバ300との間でのデータ登録処理を示すシーケンス図である。
図11に示す例では、端末110から取得したデータを検知サーバ300に登録する場合について説明する。
【0152】
まず、端末110は、端末110が保有するセンサが得た測定データなどのデータを取得する(S201)。端末110が例えばウェアラブル端末であり、センサを保有する場合、センサの測定データに基づき得た例えば歩数データまたは血圧データなどのバイタルデータを当該データとして取得する。なお、当該データは、上述したように、歩数データまたは血圧データなどのバイタルデータに限らず、サービス事業者が利活用できるデータであればよい。
【0153】
次に、端末110は、ステップS201で取得したデータに関する情報を含むトランザクションデータ(以下、第1トランザクションデータと称する)を生成する(S202)。ここでのデータに関する情報は、例えば、当該データのハッシュ値及び当該データの属性情報であるとする。この場合、第1トランザクションデータは、ブロックチェーンアドレス、ハッシュ値、属性情報及び署名を含む。
【0154】
次に、端末110は、ステップS201で取得したデータと、ステップS202で生成した第1ランザクションデータとを、検知サーバ300に送信する(S203)。
【0155】
次に、検知サーバ300は、端末110から第1トランザクションデータとデータとを取得すると(S204)、検知サーバ300は、ステップS201で取得したデータが不正データであるか否かを検知する(S205)。
【0156】
ステップS205において、ステップS201で取得したデータが不正データであった場合(S205でY)、検知サーバ300は、端末110にその旨の通知を送信する(S206)。
【0157】
一方、ステップS205において、ステップS201で取得したデータが不正データでなかった場合(S205でN)、検知サーバ300は、ステップS204で取得した第1トランザクションデータを認証サーバ200aに送信する。なお、
図11に示す例では、端末110は、ステップS204で取得した第1トランザクションデータを認証サーバ200aに送信しているが、認証サーバ200b、200cに送信してもよい。認証サーバ200b、200cに送信した場合も同様である。
【0158】
次に、検知サーバ300は、ステップS201で取得したデータを記録する(S208)。
【0159】
次に、認証サーバ200aは、検知サーバ300から第1トランザクションデータを取得すると(S209)、取得した第1トランザクションデータの検証を行う(S210)。なお、ステップS208とステップS209の順番は、この通りではなく、変更してもよい。
【0160】
ステップS210において、第1トランザクションデータの検証が成功しなかった場合(S210でN)、認証サーバ200aは、検知サーバ300にその旨の通知を送信する(S211)。
【0161】
一方、ステップS210において、第1トランザクションデータの検証が成功した場合(S210でY)、認証サーバ200aは、他の認証サーバ200(認証サーバ200b、200c)に第1トランザクションデータを転送する(S212)。なお、他の認証サーバ200でも、転送された第1トランザクションデータを検証する。
【0162】
次に、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、コンセンサスアルゴリズムを実行する(S213)。認証サーバ200aと認証サーバ200bと認証サーバ200cとは、第1トランザクションデータが正当なトランザクションデータであること(つまり正当性)を検証すると、それぞれ第1トランザクションデータを含むブロックを生成する。そして、認証サーバ200a、200b、200cは、第1トランザクションデータを含むブロックを分散台帳に記録する。
【0163】
このようにして、データに関する情報を含む第1トランザクションデータを含むブロックとが分散台帳に記録され、データそのものが検知サーバ300に記録される。
【0164】
なお、ステップS205において、ステップS201で取得したデータが不正データであった場合(S205でY)、検知サーバ300は、端末110にその旨の通知を送信しているが、認証サーバ200aにもその旨の通知を送信してもよい。そして、検知サーバ300が認証サーバ200aにもその旨の通知を送信する際、取得したデータが不正データである旨を示すトランザクションデータを生成して、認証サーバ200aに送信してもよい。
【0165】
[1.8.3 データ参照処理]
続いて、端末110と認証サーバ200a〜200cと検知サーバ300とサービスサーバ400との間でのデータ参照処理について説明する。
【0166】
図12A及び
図12Bは、本実施の形態に係る端末110と認証サーバ200a〜200cと検知サーバ300とサービスサーバ400との間でのデータ参照処理を示すシーケンス図である。
【0167】
図12A及び
図12Bに示す例では、サービスサーバ400が、検知サーバ300からデータを取得する場合について説明する。
【0168】
まず、サービスサーバ400は、例えば、ユーザのどのようなデータを取得したいかを決定した場合、データ取得の依頼を行うことを決定する(S301)。
【0169】
次に、サービスサーバ400は、データ取得を依頼する旨を示すデータ取得依頼を生成し、データ取得依頼を含むトランザクションデータ(以下、第2トランザクションデータと称する)を生成する(S302)。
【0170】
次に、サービスサーバ400は、生成した第2トランザクションデータを、認証サーバ200cに送信する(S303)。
図12Aに示す例では、サービスサーバ400は、ステップS302で生成した第2トランザクションデータを認証サーバ200cに送信しているが、認証サーバ200a、200bに送信してもよい。認証サーバ200a、200bに送信した場合も同様である。
【0171】
次に、認証サーバ200cは、サービスサーバ400から第2トランザクションデータを取得すると(S304)、取得した第2トランザクションデータの検証を行う(S305)。
【0172】
ステップS305において、第2トランザクションデータの検証が成功しなかった場合(S305でN)、認証サーバ200cは、サービスサーバ400にその旨の通知を送信する(S306)。
【0173】
一方、ステップS305において、第2トランザクションデータの検証が成功した場合(S305でY)、認証サーバ200cは、他の認証サーバ200(認証サーバ200a、200b)に第2トランザクションデータを転送する(S307)。なお、他の認証サーバ200でも、転送された第2トランザクションデータを検証する。
【0174】
次に、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、コンセンサスアルゴリズムを実行する(S308)。認証サーバ200aと認証サーバ200bと認証サーバ200cとは、第2トランザクションデータが正当なトランザクションデータであること(つまり正当性)を検証すると、それぞれ第2トランザクションデータを含むブロックを生成する。そして、認証サーバ200a、200b、200cは、第2トランザクションデータを含むブロックを分散台帳に記録する。
【0175】
次に、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、分散台帳に記録されたスマートコントラクトを実行する(S309)。このスマートコントラクトは、同意情報に基づいて生成されたものであり、分散台帳に記録されたことで、ワーキングメモリに格納されて実行可能になっている。そして、認証サーバ200で実行されたスマートコントラクトは、同意情報に基づいて、サービスサーバ400に依頼されたデータの提供が可能か否かを判断する。当該スマートコントラクトは、判断結果の通知を、検知サーバ300とサービスサーバ400とに送信する(S310)。
【0176】
次に、検知サーバ300とサービスサーバ400とは、ステップS310で送信された通知を受信する(S311)。ここで、ステップS310で送信された通知は、サービスサーバ400に依頼されたデータの提供が可能である旨を示しているとする。
【0177】
次に、サービスサーバ400は、検知サーバ300に対して、データ提供の依頼を行う(S312)。なお、サービスサーバ400は、データ提供を取得するために検知サーバ300にアクセスするとしてもよい。
【0178】
次に、検知サーバ300は、サービスサーバ400から、データ提供の依頼を取得すると(S313)、ステップS311で認証サーバ200から受信した通知を確認し、サービスサーバ400に依頼されたデータの提供が可能であるかを判断する(S314)。なお、ステップS314において、ステップS311で認証サーバ200から受信した通知を確認し、サービスサーバ400に依頼されたデータの提供が不可であることを判断すると(S314でN)、サービスサーバ400にその旨の通知を送信する(S315)。
【0179】
ステップS314において、ステップS311で認証サーバ200から受信した通知を確認し、サービスサーバ400に依頼されたデータの提供が可能であることを判断すると(S314でY)、サービスサーバ400に、依頼されたデータを提供する(S316)。
【0180】
次に、サービスサーバ400は、依頼したデータを取得する(S317)。
【0181】
すると、サービスサーバ400は、インセンティブ支払いのトランザクションデータを生成する(S318)。より具体的には、サービスサーバ400は、インセンティブ支払いに関する情報を含むトランザクションデータを生成する。
【0182】
次に、サービスサーバ400は、ステップS318で生成したトランザクションデータを、認証サーバ200cに送信する(S319)。なお、
図12Bに示す例では、サービスサーバ400は、生成したトランザクションデータを認証サーバ200cに送信しているが、認証サーバ200a、200bに送信してもよい。認証サーバ200a、200bに送信した場合も同様である。
【0183】
次に、認証サーバ200cは、サービスサーバ400からトランザクションデータを取得すると(S320)、取得したトランザクションデータの検証を行う(S321)。
【0184】
ステップS321において、トランザクションデータの検証が成功しなかった場合(S321でN)、認証サーバ200cは、サービスサーバ400にその旨の通知を送信する(S322)。
【0185】
一方、ステップS321において、トランザクションデータの検証が成功した場合(S321でY)、認証サーバ200cは、他の認証サーバ200(認証サーバ200a、200b)にトランザクションデータを転送する(S323)。なお、他の認証サーバ200でも、転送されたトランザクションデータを検証する。
【0186】
次に、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、コンセンサスアルゴリズムを実行する(S324)。認証サーバ200aと認証サーバ200bと認証サーバ200cとは、トランザクションデータが正当なトランザクションデータであること(つまり正当性)を検証すると、それぞれ当該トランザクションデータを含むブロックを生成する。そして、認証サーバ200a、200b、200cは、トランザクションデータを含むブロックを分散台帳に記録する。
【0187】
次に、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、分散台帳に記録された、インセンティブ支払いに関するスマートコントラクトを実行する(S325)。このスマートコントラクトは、インセンティブ支払いに基づいて生成されたものであり、分散台帳に記録されたことで、ワーキングメモリに格納されて実行可能になっている。本実施の形態では、インセンティブ支払いに関するスマートコントラクトが、ユーザに対してインセンティブ支払いを行ってもよい。
【0188】
そして、例えば認証サーバ200aのスマートコントラクトは、ユーザに対してインセンティブ支払いを行った旨のインセンティブ通知を送信する(S326)。
【0189】
なお、サービスサーバ400は、ステップS318において、フィードバック提供に関する情報を含むトランザクションデータを生成してもよい。この場合、ステップS325において、フィードバック提供に関するスマートコントラクトが実行されることになる。
【0190】
このようにして、端末110と住宅100と認証サーバ200a〜200cと検知サーバ300とサービスサーバ400との間でデータ参照処理が行われ、その後、インセンティブ支払い処理が行われる。
【0191】
なお、
図12Aに示すデータ参照処理の例では、認証サーバ200により実行されたスマートコントラクトは、ステップS310において、その判断結果を検知サーバ300とサービスサーバ400とに送信しているが、これに限らない。認証サーバ200により実行されたスマートコントラクトは、ステップS310において、さらに、サービスサーバ400がデータを取得する旨の通知を、ユーザすなわち端末110に送信してもよい。
【0192】
また、
図12Aに示すデータ参照処理の例では、ステップS311及びS312において、サービスサーバ400は、認証サーバ200で実行されたスマートコントラクトの判断結果を受信してから、データ提供を依頼してデータを取得しているが、これに限らない。ステップS309において、認証サーバ200で実行されたスマートコントラクトによって、検知サーバ300に記録されたデータであってサービスサーバ400が提供依頼したデータがサービスサーバ400に提供されてもよい。
【0193】
[1.8.4 インセンティブ支払いに関するスマートコントラクト登録処理]
続いて、認証サーバ200a〜200cとサービスサーバ400との間でのインセンティブ支払いに関するスマートコントラクト登録処理について説明する。
【0194】
図13は、本実施の形態に係る認証サーバ200a〜200cとサービスサーバ400との間でのインセンティブ支払いに関するスマートコントラクト登録処理を示すシーケンス図である。
【0195】
まず、サービスサーバ400は、インセンティブ支払いに関するスマートコントラクトを生成する(S401)。
【0196】
次に、サービスサーバ400は、ステップS401で生成したインセンティブ支払いに関するスマートコントラクトを含むトランザクションデータを生成する(S402)。
【0197】
次に、サービスサーバ400は、ステップS402で生成したトランザクションデータを、認証サーバ200aに送信する(S403)。
図12Aに示す例では、サービスサーバ400は、ステップS402で生成したトランザクションデータを認証サーバ200aに送信しているが、認証サーバ200b、200cに送信してもよい。認証サーバ200b、200cに送信した場合も同様である。
【0198】
次に、認証サーバ200aは、サービスサーバ400からトランザクションデータを取得すると(S404)、取得したトランザクションデータの検証を行う(S405)。
【0199】
ステップS405において、トランザクションデータの検証が成功しなかった場合(S405でN)、認証サーバ200aは、サービスサーバ400にその旨の通知を送信する(S406)。
【0200】
一方、ステップS405において、トランザクションデータの検証が成功した場合(S405でY)、認証サーバ200aは、他の認証サーバ200(認証サーバ200b、200c)に当該トランザクションデータを転送する(S407)。なお、他の認証サーバ200でも、転送されたトランザクションデータを検証する。
【0201】
次に、認証サーバ200aと認証サーバ200bと認証サーバ200cとは、コンセンサスアルゴリズムを実行する(S408)。認証サーバ200aと認証サーバ200bと認証サーバ200cとは、当該トランザクションデータが正当なトランザクションデータであること(つまり正当性)を検証すると、それぞれトランザクションデータを含むブロックを生成する。そして、認証サーバ200a、200b、200cは、トランザクションデータを含むブロックを分散台帳に記録する。
【0202】
次に、当該トランザクションデータに含まれるインセンティブ支払いに関するスマートコントラクトは、分散台帳に記録されることで、実行可能になるすなわち稼働する(S409)。なお、インセンティブ支払いに関するスマートコントラクトは、分散台帳に記録されることで、認証サーバ200a等のワーキングメモリに格納されるので実行可能になる。[1.9 実施の形態の効果]
以上のように、本開示の制御方法、プログラム及び不正データ検知システムによれば、取得したデータに関する情報を分散台帳に記録する前に、当該データを検証して、セキュアなデータである旨とともに当該データに関する情報を分散台帳に記録できる。これにより、ブロックチェーン技術を活用して、取得したデータがセキュアなデータであることを保証できる。よって、分散台帳を用いて、安心してデータを利活用することができる。
【0203】
また、本実施の形態によれば、ユーザの同意情報を、ブロックチェーン技術を用いた分散台帳に、安全に記録できる。また、本実施の形態によれば、住宅100または端末110等の機器から収集したデータのうち不正データではないことが検知されたデータのみを、ユーザの同意のもとに当該データをサービスサーバ400に提供できる。これにより、サービス事業者は、セキュアなデータであることを保証されたユーザのデータを利活用することができる。
【0204】
なお、住宅100内の宅内機器または端末110から取得したデータが不正データではないことが検知された旨の情報が分散台帳に記録されている場合、住宅100内の宅内機器または端末110は、不正データではないデータを提供する機器であることの証明にもなる。
【0205】
[2. その他の変形例]
なお、本開示を上記各実施の形態に基づいて説明してきたが、本開示は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
【0206】
(1)上記の実施の形態では、体組成計105及び血圧計106は、住宅100のコントローラ100と接続されていたが、これに限らない。体組成計105及び血圧計106は、端末110と無線接続されてもよい。この場合、端末110は、体組成計105及び血圧計106の測定データを収集し、収集したデータを検知サーバ300に送信するとしてもよい。
【0207】
(2)上記の実施の形態では、検知サーバ300とサービスサーバ400とは別の装置であるとして説明したが、これに限らない。検知サーバ300とサービスサーバ400とは、同一の装置であってもよい。
【0208】
(3)上記の実施の形態では、検知サーバ300に、機器から取得したデータが記録される場合について説明したが、これに限らない。端末110または住宅100などの機器のデータを収集するデータ収集サーバを、検知サーバ300と別に設けてもよい。
【0209】
この場合、検知サーバ300は、取得したデータのうち不正データではないことを検知したデータのみをデータ収集サーバに記録させてもよい。また、検知サーバ300は、データ収集サーバが記録したデータが不正データではないか否かを検知するとしてもよい。
【0210】
(4)上記実施の形態では、検知サーバ300の検知部312は、機器から取得したデータが不正データであるか否かを検知するというように、2値的に検知するが、これに限らない。検知サーバ300は、機器から取得したデータが不正データではない場合、さらに当該データの信用度を付与するとしてもよい。より具体的には、検知サーバ300は、取得したデータが不正データではないことを検知した場合に、さらに、当該データに対する信用度を判定してもよい。そして、検知サーバ300は、取得した第1トランザクションデータにおけるデータを示す情報に、判定した信用度を含めればよい。
【0211】
ここで、検知サーバ300は、閾値を用いて当該データに対する信用度を判定してもよいし、取得したデータのうち、不正データではないことを検知したデータの割合を信用度として判定してもよい。
【0212】
また、検知サーバ300は、取得したデータの一部あるいは全部のデータについて、信用度を付与するとしてもよい。例えば、取得したデータが不正データではないことを検知した場合を100とし、取得したデータが不正データであることを検知した場合を0とする。この場合、検知サーバ300は、今回取得した歩数データの値が前回受信した歩数データの値を基準に3%以下の変化であれば信用度を100とし、5%以下の変化であれば信用度を90とし、50%以上の変化であれば信用度を30と判定してもよい。
【0213】
また、検知サーバ300が、不正データではないことを検知したデータに対して信用度を付与した場合、サービスサーバ400は、信用度を指定したデータ取得依頼を含む第2トランザクションデータを生成してもよい。これにより、サービスサーバ400は、不正データではないデータのうちでも信用度の高いデータのみを活用することができる。
【0214】
なお、サービスサーバ400は、提供されたデータの信用度に応じて、インセンティブを変更してもよい。
【0215】
(5)上記実施の形態では、検知サーバ300の検知部312は、機器から取得したデータが不正データであるか否かを検知するとして説明したが、これに限らない。検知サーバ300は、検知サーバ300とは異なる別のセキュリティサーバに、取得したデータを転送し、セキュリティサーバがデータが不正データであるか否かを検知した検知結果を受信してもよい。
【0216】
ここで、例えばセキュリティサーバには、検知サーバ300の検知部312と同様の機能だけでなく、他の端末などの他の機器のデータを収集して、検知サーバ300から転送されたデータが不正データまたは異常データであるかどうかを検証する機能を持ってもよい。これにより、セキュリティサーバは、一つの端末から取得したデータだけでは不正データまたは異常データであるかどうかを検証できないようなデータも検証することが可能となる。具体的には、ある地域の天候が悪いにもかかわらず、当該地域の住宅から取得した太陽光発電装置のデータに差異がある場合、セキュリティサーバは、転送された太陽光発電装置のデータが不正データまたは異常データであると検証できる。また、セキュリティサーバは、例えば雪などの通常通りに歩くことが難しい状況にもかかわらず、歩数データが著しく増加している場合などでは、転送された歩数データが不正データまたは異常データであると検証できる。このように、セキュリティサーバは、転送されたデータ以外の他の情報を用いて検証してもよい。
【0217】
また、セキュリティサーバは、入力部と表示部とを有し、転送された端末110または住宅100のデータを表示部で表示し、入力部に対する監視員の入力に基づいて転送されたデータが不正データまたは異常データであると判断してもよい。また、セキュリティサーバは、入力部に対する監視員の入力に基づいて、不正データではないと判断されたデータに信用度を付与してもよい。
【0218】
(6)上記実施の形態では、検知サーバ300は、機器から取得したデータが不正データであるか否かを検知することを1回だけ行うとして説明したが、複数回行ってもよい。この場合、検知サーバ300は、最初の検知結果の内容に変更があった場合、検知結果が変更になった旨を示すトランザクションデータを生成し、認証サーバ200に送信してもよい。なお、このとき生成されるトランザクションデータには、当該データの識別子または当該データに対する検知結果が変更になった旨を示す情報などが含まれるとよい。なお、検知サーバ300は、当該データに対する検知結果が変更になった旨を示す情報を、サービスサーバ400に通知してもよい。
【0219】
(7)上記実施の形態では、検知サーバ300は、機器から取得したデータが不正データであるか否かを検知すると説明したが、これに限らない。検知サーバ300は、機器から取得したデータが不正データであるか否かを1回目に検知した結果、当該データが不正データではないと検知した場合、当該データが不正データではないことを仮決定する。さらに、検知サーバ300は、当該データが不正データであるか否かを再度(2回目に)検知した結果、当該データが不正データではないと検知した場合、当該データが不正データではないことを本決定してもよい。
【0220】
このとき、1回目に検知後一定時間経過した時点で再度検知した場合において、当該データが不正データであることが判断できないときに、検知サーバ300は、当該データが不正データではないことを本決定してもよい。ここで、検知サーバ300は、不正データではないことを仮決定した当該データの信用度に応じて、一定時間の期間を決めてもよいし、再度検知する回数を決めてもよい。
【0221】
なお、検知サーバ300は、当該データよりも過去に取得したデータまたは1回目の検知後に取得したデータを用いて再度検知としてもよい。
【0222】
(8)上記実施の形態では、端末110は、同意情報を生成するとして説明したが、これに限らない。端末110は、同意情報を生成する際、同意情報により提供するデータのレベルを設定してもよい。ここで、レベルは、同意情報により提供可能なデータの匿名化の尺度を指定するものであってよい。例えば、提供可能なデータのレベルは、端末110から収集したデータそのもの(全部)を提供可能と指定すること、または、収集したデータの属性のうちのユーザの性別、年齢は提供可能だが、収集したデータの一部を匿名化して提供することを指定することが挙げられる。
【0223】
また、同意情報において、提供可能なデータのレベルとして、収集したデータの統計データまでと指定し、データ提供者は匿名化することを指定してもよい。この場合、例えば認証サーバ200または検知サーバ300が、匿名化されたデータ提供者に対するどのデータを統計化したかを記録するとする。この場合、サービスサーバ400は、データ提供に対するインセンティブを、認証サーバ200または検知サーバ300に送信することで、認証サーバ200または検知サーバ300は、匿名化したデータ提供者に対してインセンティブを送付するとしてもよい。
【0224】
(9)上記実施の形態では、検知サーバ300は、機器から取得したデータが不正データであるか否かを検知すると説明したが、これに限らない。検知サーバ300は、機器から不正データを検知し続ける場合、当該機器からデータを受信しないとしてもよい。
【0225】
(10)上記実施の形態では、検知サーバ300は、機器から取得したデータが不正データであるか否かを検知すると説明したが、これに限らない。検知サーバ300は、機器ごとに公開鍵証明書と秘密鍵とを保有し、データに署名をつけて、署名がないデータを不正と判断するとしてもよい。
【0226】
(11)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0227】
(12)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0228】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部またはすべてを含むように1チップ化されてもよい。
【0229】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0230】
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0231】
(13)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0232】
(14)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0233】
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0234】
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0235】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0236】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0237】
(15)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。