(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】データ保存システム、データ保存方法、及びコンピュータプログラムを記憶したコンピュータ読み取り可能な非一過性記憶媒体
(51)【国際特許分類】
G06F 21/64 20130101AFI20241008BHJP
G06F 21/62 20130101ALI20241008BHJP
【FI】
G06F21/64
G06F21/62
(21)【出願番号】P 2023551262
(86)(22)【出願日】2022-01-18
(86)【国際出願番号】 JP2022001555
(87)【国際公開番号】W WO2022185755
(87)【国際公開日】2022-09-09
【審査請求日】2023-08-23
(32)【優先日】2021-03-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】黄 浩倫
(72)【発明者】
【氏名】徐 ▲シン▼
【審査官】上島 拓也
(56)【参考文献】
【文献】国際公開第2020/210405(WO,A1)
【文献】国際公開第2020/219178(WO,A1)
【文献】米国特許出願公開第2020/0004855(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/64
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
ブロックチェーン(BC)を保存するように構成されているノード(16、30)と、
データ保存サーバ(26)と、を備え、
前記ノード(16、30)は、データソースからデータを受信したことに基づいて、
前記データを機密データと公開データとに分けることと、
前記機密データの非改ざん証明データを取得することと、
前記データ保存サーバ(26)に前記機密データを送信することと、
前記公開データと前記非改ざん証明データを前記ブロックチェーンに保存することと、を実施し、
前記ノード(16、30)は、さらに、データ利用者からデータ要求を受信したことに基づいて、
前記データ要求に対応する前記機密データの前記非改ざん証明データを前記ブロックチェーン(BC)から取得することと、
前記データ要求に対応する前記公開データを前記ブロックチェーン(BC)から取得することと、を実行するように構成されており、
前記データ保存サーバ(26)は、
前記ノード(16、30)から前記機密データを受信したことに基づいて、前記機密データを保存する
ことと、
前記データ利用者から前記データ要求を受信したことに基づいて、前記データ要求に対応する前記機密データを前記データ利用者に送信することと、を実施するように構成されて
おり、
前記ノードは、アクセスゲートウェイ(30)と複数のノードとを含み、
前記ノードは、前記アクセスゲートウェイ(30)を介して前記データ要求を受信し、
前記データ保存サーバ(26)は、複数の前記ノード(16)のそれぞれに対応する複数のサーバを含み、
複数の前記サーバは、それぞれ異なる前記機密データを保存し、
前記ノードは、各機密データの保存場所を示すロケーションテーブル(34)を前記ブロックチェーン(BC)上に保存するように構成されており、
前記アクセスゲートウェイ(30)は、前記データ利用者から前記データ要求を受信したことに基づいて、
前記ブロックチェーン(BC)から取得される前記公開データと前記非改ざん証明データを、前記データ利用者に向けて送信することと、
前記ロケーションテーブル(34)を参照することにより前記データ要求に対応する前記機密データの保存場所を取得することと、
取得した保存場所に基づいて、複数の前記サーバのうち、要求された機密データを保存している前記サーバに向けて前記データ要求を送信することと、を実行するように構成されている、データ保存システム。
【請求項2】
前記ノード(16、30)は、前記データ利用者から前記データ要求を受信したことに基づいて、前記データ保存サーバ(26)に前記非改ざん証明データを送信するように構成されており、
前記データ保存サーバ(26)は、
前記非改ざん証明データを用いて前記機密データが改ざんされているかを判定することと、
前記機密データは改ざんされていないと判定したことに基づいて、前記機密データを前記データ利用者に送信することと、を実行するように構成されている、
請求項
1に記載のデータ保存システム。
【請求項3】
前記非改ざん証明データは、前記機密データのハッシュ値を計算することで取得される、
請求項1
又は2に記載のデータ保存システム。
【請求項4】
少なくとも1つのプロセッサ(16a、26a)によって実行される、データを保存するための方法であって、
前記少なくとも1つのプロセッサ(16a、26a)が、
データソースから受信したデータを機密データと公開データとに分けることと、
前記機密データの非改ざん証明データを取得することと、
前記公開データと前記非改ざん証明データをブロックチェーン(BC)に保存することと、
前記機密データを、複数のサーバ(26)のうち、前記データソースから前記データを受信したノードに紐づくサーバに保存することと、
前記機密データの保存場所を示すロケーションテーブル(34)を前記ブロックチェーン(BC)上に保存することと、
データ利用者からデータ要求を受信することと、
前記データ要求に対応する前記機密データの前記非改ざん証明データを前記ブロックチェーン(BC)から取得することと、
前記データ要求に対応する前記公開データを前記ブロックチェーン(BC)から取得することと、
前記非改ざん証明データと前記公開データを前記データ利用者に送信することと、
前記ロケーションテーブル(34)を参照することにより前記データ要求に対応する前記機密データの保存場所を取得することと、
取得した保存場所に基づいて、複数の前記サーバのうち、要求された機密データを保存している前記サーバに向けて前記データ要求を送信することと、
前記データ要求に対応する前記機密データを前記データ利用者に送信することと、
を含む、データを保存するための方法。
【請求項5】
前記少なくとも1つのプロセッサ(16a、26a)が、
前記サーバ(26)に保存されている前記機密データが改ざんされているかを、前記ブロックチェーン(BC)から取得される前記非改ざん証明データを用いて判定することと、
前記機密データは改ざんされていないと判定したことに基づいて、前記機密データを前記データ利用者に送信することと、
を含む、請求項4に記載の方法。
【請求項6】
少なくとも1つのプロセッサ(16a、26a)に、
データソースから受信したデータを機密データと公開データとに分けることと、
前記機密データの非改ざん証明データを取得することと、
前記公開データと前記非改ざん証明データをブロックチェーンに保存することと、
前記機密データを
、複数のサーバ(26)のうち、前記データソースから前記データを受信したノードに紐づくサーバに保存することと、
前記機密データの保存場所を示すロケーションテーブル(34)を前記ブロックチェーン(BC)上に保存することと、
データ利用者からデータ要求を受信することと、
前記データ要求に対応する前記機密データの前記非改ざん証明データを前記ブロックチェーン(BC)から取得することと、
前記データ要求に対応する前記公開データを前記ブロックチェーン(BC)から取得することと、
前記非改ざん証明データと前記公開データを前記データ利用者に送信することと、
前記ロケーションテーブル(34)を参照することにより前記データ要求に対応する前記機密データの保存場所を取得することと、
取得した保存場所に基づいて、複数の前記サーバのうち、要求された機密データを保存している前記サーバに向けて前記データ要求を送信することと、
前記データ要求に対応する前記機密データを前記データ利用者に送信することと、
を実行させるように構成されたコンピュータプログラムを記憶しているコンピュータ読み取り可能な非一過性記憶媒体。
【請求項7】
前記少なくとも1つのプロセッサ(16a、26a)に、
前
記サーバに保存されている前記機密データが改ざんされているかを、前記ブロックチェーン(BC)から取得される前記非改ざん証明データを用いて判定することと、
前記機密データは改ざんされていないと判定したことに基づいて、前記機密データを前記データ利用者に送信することと、
をさらに実行させるように構成されたコンピュータプログラムを記憶している請求項
6に記載のコンピュータ読み取り可能な非一過性記憶媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2021年3月4日に米国に出願された仮出願第63/156737号を基礎としており、当該仮出願の内容は、全体的に、参照により本明細書に組み込まれる。
【技術分野】
【0002】
本明細書に記載される主題は、データ保存システム、データ保存方法、及びコンピュータプログラムを記憶したコンピュータ読み取り可能な非一過性記憶媒体に関する。
【背景技術】
【0003】
近年、様々な企業や組織において、相互に関連する事業活動を強化するために、互いにデータを共有する必要性が高まっている。例えば、自動車メーカー(OEM)同士は、走行性能を向上させるために自律走行データを共有している。また、自動車メーカーは、自動車のリサイクル事業のために、例えば走行距離や修理履歴などといった、車両関連データを保存及び共有する。しかし、データの共有に際してデータの使いやすさと信頼性のバランスを保つことは、解決すべき最も重要な課題の1つである。
【0004】
近年、保存データを違法に又は不正に変更することを困難にする分散型のデータ保存メカニズムを提供するために、ブロックチェーン技術が開発されてきた。例えば、Hyperledger(登録商標) Fabricは、ブロックチェーンネットワーク内の複数のコンソーシアム間で機密データを保護するために、限定的な情報チャネルベースの共有システムを提供している(非特許文献1参照)。しかしながら、非特許文献1に開示されるメカニズムは、各参加者が自分自身のデータを取り扱う点において十分な柔軟性を有していない。そのため、各参加者が柔軟にデータを取り扱えるようデータ保存システムの改善が求められていた。
【先行技術文献】
【非特許文献】
【0005】
【文献】“Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains” arXiv:1801.10228v2 [cs.DC], 2018年4月17日
【発明の概要】
【0006】
本節は、本開示の一般的な要約を記載したものであり、その全範囲又は全特徴を包括的に開示するものではない。
【0007】
本開示の第1の態様によれば、データ保存システムは、ブロックチェーン(BC)を保存するように構成されているノード(16、30)と、データ保存サーバ(26)と、を備え、ノード(16、30)は、データソースからデータを受信したに基づいて、データを機密データと公開データとに分けることと、機密データの非改ざん証明データを取得することと、データ保存サーバ(26)に機密データを送信することと、公開データと非改ざん証明データをブロックチェーンに保存することと、を実施し、ノード(16、30)は、さらに、データ利用者からデータ要求を受信したことに基づいて、データ要求に対応する機密データの非改ざん証明データをブロックチェーン(BC)から取得することと、データ要求に対応する公開データをブロックチェーン(BC)から取得することと、を実行するように構成されており、データ保存サーバ(26)は、ノード(16、30)から機密データを受信したことに基づいて、機密データを保存することと、データ利用者からデータ要求を受信したことに基づいて、データ要求に対応する機密データをデータ利用者に送信することと、を実施するように構成されており、ノードは、アクセスゲートウェイ(30)と複数のノードとを含み、ノードは、アクセスゲートウェイ(30)を介してデータ要求を受信し、データ保存サーバ(26)は、複数のノード(16)のそれぞれに対応する複数のサーバを含み、複数のサーバは、それぞれ異なる機密データを保存し、ノードは、各機密データの保存場所を示すロケーションテーブル(34)をブロックチェーン(BC)上に保存するように構成されており、アクセスゲートウェイ(30)は、データ利用者からデータ要求を受信したことに基づいて、ブロックチェーン(BC)から取得される公開データと非改ざん証明データを、データ利用者に向けて送信することと、ロケーションテーブル(34)を参照することによりデータ要求に対応する機密データの保存場所を取得することと、取得した保存場所に基づいて、複数のサーバのうち、要求された機密データを保存しているサーバに向けてデータ要求を送信することと、を実行するように構成されている。
【0008】
本開示の第2の側面によれば、データ保存方法は、少なくとも1つのプロセッサ(16a、26a)によって実行される、データを保存するための方法であって、少なくとも1つのプロセッサ(16a、26a)が、データソースから受信したデータを機密データと公開データとに分けることと、機密データの非改ざん証明データを取得することと、公開データと非改ざん証明データをブロックチェーン(BC)に保存することと、機密データを、複数のサーバ(26)のうち、データソースからデータを受信したノードに紐づくサーバに保存することと、機密データの保存場所を示すロケーションテーブル(34)をブロックチェーン(BC)上に保存することと、データ利用者からデータ要求を受信することと、データ要求に対応する機密データの非改ざん証明データをブロックチェーン(BC)から取得することと、データ要求に対応する公開データをブロックチェーン(BC)から取得することと、非改ざん証明データと公開データをデータ利用者に送信することと、ロケーションテーブル(34)を参照することによりデータ要求に対応する機密データの保存場所を取得することと、取得した保存場所に基づいて、複数のサーバのうち、要求された機密データを保存しているサーバに向けてデータ要求を送信することと、データ要求に対応する機密データをデータ利用者に送信することと、を含む。
【0009】
本開示の第3の態様によれば、コンピュータ読み取り可能な非一過性の記憶媒体は、少なくとも1つのプロセッサに、データソースから受信したデータを機密データと公開データとに分けることと、機密データの非改ざん証明データを取得することと、公開データと非改ざん証明データをブロックチェーンに保存することと、機密データの保存場所を示すロケーションテーブル(34)をブロックチェーン(BC)上に保存することと、機密データを、複数のサーバ(26)のうち、データソースからデータを受信したノードに紐づくサーバに保存することと、データ利用者からデータ要求を受信することと、データ要求に対応する機密データの非改ざん証明データをブロックチェーン(BC)から取得することと、データ要求に対応する公開データをブロックチェーン(BC)から取得することと、非改ざん証明データと公開データをデータ利用者に送信することと、ロケーションテーブル(34)を参照することによりデータ要求に対応する機密データの保存場所を取得することと、取得した保存場所に基づいて、複数のサーバのうち、要求された機密データを保存しているサーバに向けてデータ要求を送信することと、データ要求に対応する機密データをデータ利用者に送信することと、を実行させるように構成されたコンピュータプログラムを記憶している。
【図面の簡単な説明】
【0010】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本開示の様々なシステム、方法、及び他の実施形態を示す。図中の図示された要素の境界(例えば、ボックス、ボックス群、又は他の形状)は、一実施形態を表すものと解されてよい。いくつかの実施形態では、要素は縮尺通りに描かれていない場合がある。
【
図1】データストレージシステムの1つの実施形態の全体構成を模式的に示す図である。
【
図2】本実施形態による事業体の構成を示すブロック図である。
【
図3】各サーバに格納される機密データと、ブロックチェーンに格納される公開データ、非改ざん証明データ、及びデータ位置の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本開示の一実施形態について、図面を参照しながら説明する。
【0012】
図1は、本実施形態に係るデータ保存システム(以下、「システム」という)10の一例を模式的に示す図である。システム10は、オンチェーン及びオフチェーンの両方のレイヤを使用して、自動車、オートバイ、スマートホーム、製品、商品、美術品、作物、デジタル資産等といった、様々なタイプの物事や資産に関連するデータを格納するように構成される。上記のような対象物のデータは、自動車や、オートバイ、スマートホームの所有者、及び、システム10を提供する事業体の労働者又は従業員などといった、様々な種類のデータソースから提供される。また、システム10は、保存されているデータを、様々なタイプのデータ利用者からのデータ要求を受信したときに、データ利用者に提供するように構成されている。データ利用者には、システム10を構成する参加事業体、システム10を構成しないがシステム10の使用を許可された非参加事業体、及びシステム10の使用を許可された個人が含まれ得る。
【0013】
システム10は、後述するように、機密データをオフチェーン(すなわち、ローカルサーバ)に格納する一方、公開データをオンチェーン(すなわち、ブロックチェーンBC)に格納するように構成されている。システム10は、データ要求を受信した場合、ローカルサーバから機密データを取得するとともに、ブロックチェーンBCから公開データを取得することによって、要求されたデータをデータ利用者に提供する。
図1に示すように、システム10は、認可又は許可された事業体BE(又はコンソーシアム)のみが参加を許されるブロックチェーンコンソーシアムを形成する。この実施形態では、システム10は、複数の事業体BEとアクセスゲートウェイノード30とで形成されている。アクセスゲートウェイノード30は、システム10のゲートウェイとして機能するように構成されており、データ利用者からのデータ要求は、アクセスゲートウェイノード30を介してシステム10に入力される。
【0014】
参加している事業体BEには、複数の自動車メーカー(OEM)、保険会社、修理工場(又はディーラー)、銀行などが含まれるが、必ずしもこれらに限定されない。各事業体BEは、対象物の公開データを格納するブロックチェーンネットワーク14を形成するノードとして機能することができる。各事業体BEは、対象物の機密データを自身のデータベース(DB)に格納するローカルサーバとしても機能する。したがって、各事業体BEは、オンチェーン層とオフチェーン層の両方で動作する。
【0015】
図1に示すように、本実施形態では、システム10は、3つの事業体BE(例えば、OEM、保険会社、修理工場)を含む。各事業体BEは、コンソーシアムノード16(以下、「ノード」という)と、データ保存サーバ26(以下、「サーバ」という)とを含み、参加事業体BEの全てのノード16が互いに接続されてブロックチェーンネットワーク14を形成している。全てのノード16は、対象物の公開データが記録されたブロックチェーンBCを保存及び保護する。より具体的には、各ノード16は、ブロックチェーンBC上の公開データ記憶部32に公開データを保存するように構成されている。さらに、ノード16は、後述するように、ブロックチェーンBC上にあるロケーションテーブル34及び非改ざん証明データ記憶部36に、データの保存場所及び機密データの非改ざん証明データをそれぞれ格納する。ノード16は、EthereumやHyperledger Fabric等といった、様々な公知のプラットフォーム上で動作してよい。
【0016】
図2に示すように、ノード16は、少なくとも1つのプロセッサ(又はノードプロセッサ16a)及び少なくとも1つのメモリ(又はノードメモリ16b)を含む。1つの局面において、ノードプロセッサ16aは、ノードメモリ16bに記憶されたプログラムを実行するときに、本明細書で説明するような様々な機能を実行することができるマイクロプロセッサなどの電子プロセッサであってよい。1つの実施形態では、ノードメモリ16bは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードディスクドライブ、フラッシュメモリ、又は、プログラムを記憶するための他の適切なメモリであってよい。プログラムは、ノードプロセッサ16aによって実行されると、ノードプロセッサ16aに本明細書に開示される様々な機能を実行させるコンピュータ読み取り可能な命令である。以下で詳細に説明するように、所定条件が満たされたことを受けてブロックチェーンBC上に格納されたスマートコントラクトが実行されることによって、オンチェーン層のノードプロセッサ16aによる一部の機能は、アプリケーション(アプリ)を介して提供される。
【0017】
ノード16がデータソースから対象物に関連するデータを受信すると、ノードプロセッサ16aは、各事業体BEによって事前に定義されたデータポリシーに基づいて、データを機密データと公開データとに分離するようにプログラムされている。データは、複数のデータ項目を含むデータセットの形態でノード16に提供される。複数のデータ項目は、1つ又は複数のデータカテゴリに分類される。データポリシーは、データソースから提供されたデータがどのように扱うべきか、すなわち、ブロックチェーンBCに公開保存されるか、又はローカルサーバに秘密に保存されるかを定義する規則である。各事業体BEは、そのビジネス目的やデータソースからの要求に応じて、データポリシーを自由に作成又は変更する。例えば、事業体BEは、データソースの個人データ又は個人を特定可能なデータを「機密データ」に分類するようにデータポリシーを定義してよい。データポリシーは、事業体BEにとって事業価値の高いデータ(例えば、企業秘密)を「機密データ」に分類するように設定されていてもよい。対称的に、データソースの非個人データ又は個人を特定できないデータは「公開データ」に分類されるよう、データポリシーは定義されていてよい。さらに、データポリシーは、高いビジネス価値を持たないデータを「公開データ」に分類するよう設定されていても良い。
【0018】
図3は、各事業体BEにおいて秘密に保存されたデータと、ブロックチェーンBCに公開保存されたデータを模式的に示している。この例では、対象は、所有者が所有する特定の自動車(「車両A」と称する)である。事業体BEの一例としての自動車メーカー(OEM)は、車両Aの車両関連情報を収集することができる。車両関連情報には、例えば、所有者情報、速度、位置、走行距離、及び車載カメラ画像データなどが含まれる。この例では、車両関連情報がデータカテゴリであり、所有者情報、位置情報、及び車載カメラ画像データといったデータ項目は、個人データ又は個人を特定可能なデータに分類することができる。したがって、ノードプロセッサ16aは、これらのデータ項目を「機密データ」に分類する。逆に、速度及び走行距離のデータ項目は、個人を特定できないデータであるため、公に共有することができ、ノードプロセッサ16aはこれらのデータ項目を「公開データ」に分類する。この例では、車両Aの所有者が、車両Aの車両関連情報を提供するデータソースである。
【0019】
事業体BEの他の例としての修理工場は、例えば、車両Aに関する「修理項目」と「修理代情報」の2つのデータカテゴリを収集することができる。修理項目のデータカテゴリには、修理工場で修理された車両Aの部品である「部品A」及び「部品B」が含まれ得る。また、修理代情報のデータカテゴリには、データ項目として、「修理代金」及び「アカウント情報」が含まれてもよい。この例では、修理項目のデータカテゴリの情報(すなわち、部品A及び部品B)はすべて、ノードプロセッサ16aによって公開データに分類される。これらのデータ項目は、個人又は個人を特定できる性質を有していないためである。これに対して、修理代情報のデータカテゴリでは、ノードプロセッサ16aによって、すべてのデータ項目が機密データに分類される。修理代情報に含まれる情報は秘密に保管されるべきものだからである。なお、修理工場(すなわち、ノードプロセッサ16a)は、車両Aの修理が終了した後、修理工場の整備士等がこれらの情報をDBに入力することにより、これらの情報を取得する。従って、この例では、このような整備士がデータソースとなる。
【0020】
保険会社も事業体BEの他の例である。保険会社は、「保険内容」という1つのデータカテゴリに属するデータを収集することができる。保険内容のデータカテゴリは、「被保険者情報」、「保険約款」、及び「支払情報」のデータ項目を含む。この例では、ノードプロセッサ16aは、「保険内容」に含まれるすべてのデータ項目を「機密データ」に分類する。保険会社(すなわち、ノードプロセッサ16a)は、保険契約の成立後、保険会社の従業員が情報をデータベースに入力する際に、これらのデータ項目を受け取る。したがって、このような保険会社の従業員が、データソースとしての役割を担いうる。
【0021】
ノードプロセッサ16aは、受信データを機密データと公開データとに分離した後、機密データの非改ざん証明データを取得するようにプログラムされている。この例では、非改ざん証明データは、ハッシュ関数を使用して機密データから計算されたハッシュ値である。さらに、ノードプロセッサ16aは、データのカテゴリごとに機密データのハッシュ値を計算するようにプログラムされている。上述した
図3の例では、「車両関連情報」のデータカテゴリには、3つのデータ項目(すなわち、所有者情報、位置情報、及び車載カメラ画像データ)が機密データとして含まれている。このような場合、ノードプロセッサ16aは、ハッシュ関数を用いて3つのデータ項目全体に対するハッシュ値を算出する。ハッシュ値の計算には、一般に公開されているハッシュ関数を用いられて良い。一般に公開されているハッシュ関数の例としては、SHA-256やSHA3-256等がある。
【0022】
ノードプロセッサ16aは、公開データ及び非改ざん証明データを、ブロックチェーンBC上のデータマネージャ38に送信する。データマネージャ38は、スマートコントラクトが実行されるときに動作するアプリケーション(アプリ)である。データマネージャ38は、公開データを受信すると、その公開データをブロックチェーンBC上の公開データ記憶部32に格納するようにプログラムされている。また、データマネージャ38は、機密データの非改ざん証明データをブロックチェーンBC上の非改ざん証明データ記憶部36に格納するようにプログラムされている。データマネージャ38は、公開データ記憶部32に、公開データをそのデータカテゴリとともに格納する。
図3に示すように、「速度」及び「走行距離」のデータ項目は、車両関連情報のデータカテゴリの下に格納され、「部品A」及び「部品B」のデータ項目は、修理項目のデータカテゴリの下に格納される。なお、保険内容のデータカテゴリに含まれるデータ項目は何れも「機密データ」に分類されるため、これらの項目がブロックチェーンBC上の公開データ記憶部32に格納されることはない。
【0023】
データマネージャ38は、非改ざん証明データ記憶部36に、各データカテゴリの非改ざん証明データ(すなわち、ハッシュ値)を記憶するようにプログラムされている。
図3の例では、車両関連情報のデータカテゴリの非改ざん証明データは「XXX」であり、修理代情報のデータカテゴリの非改ざん証明データは「YYY」であり、保険内容のデータカテゴリの非改ざん証明データは「ZZZ」である。
【0024】
ノードプロセッサ16aはさらに、ブロックチェーンBC上にロケーションテーブル34を格納するようにプログラムされている。ロケーションテーブル34は、機密データとその保存場所との対応関係を示すテーブルである。ロケーションテーブル34は、ノード16がデータソースからデータを受信すると、データマネージャ38によって更新される。本実施形態では、ロケーションテーブル34は、データカテゴリ毎に、機密データの保存場所を指し示す。
図3に示す上述の例では、ロケーションテーブル34は、「修理代情報」のデータカテゴリは、修理工場に位置している(すなわち、保存されている)ことを示している。さらに、ロケーションテーブル34は、「車両関連情報」のデータカテゴリがOEMに、「保険内容」のデータカテゴリが保険会社に、それぞれ配置されている(すなわち、格納されている)ことを示している。この例に示すように、ロケーションテーブル34には、データ項目自体は含んでいない。
【0025】
ノードプロセッサ16aはさらに、データ要求が承認されているかどうかを確認するようにプログラムされている。データ要求の承認は、データユーザがシステム10を通じてデータを取得することを適切に許可されていることを証明する証明書をデータ要求が含むかどうかを確認することによって実行される。データ要求が承認されていると判定された場合、ノードプロセッサ16aは、要求された機密データを取得してデータユーザに提供するようサーバ26に指示するようにプログラムされている。
【0026】
アクセスゲートウェイノード30は、データ要求を受信し、データ要求によって要求された機密データを格納する適切な事業体BE(より具体的には、適切なノード16)に向けて、データ要求を転送するゲートウェイとして機能する。事業体BEのノード16と同様に、アクセスゲートウェイノード30は、少なくとも1つのプロセッサ及び少なくとも1つのメモリ(図示せず)を含む。アクセスゲートウェイノード30がデータ利用者からデータ要求を受信すると、アクセスゲートウェイノード30は、データマネージャ38を介してロケーションテーブル34から要求された機密データの保存場所を取得する。本実施形態では、データ要求によりデータカテゴリ単位でデータが要求される。データマネージャ38は、ロケーションテーブル34を参照して要求されたデータカテゴリの保存場所を取得する。そして、データマネージャ38は、取得した保存場所の情報をアクセスゲートウェイノード30に送信する。アクセスゲートウェイノード30は、保存場所情報にて特定されるノードに向けてデータ要求を転送するように構成されている。
【0027】
また、アクセスゲートウェイノード30は、データマネージャ38から公開データと機密データの非改ざん証明データを取得するように構成されている。例えば、データ利用者が車両関連情報のデータカテゴリのデータを要求した場合、データマネージャ38は、公開データ記憶部32から「速度」及び「走行距離」のデータ項目を取得する。また、データマネージャ38は、非改ざん証明データ記憶部36から車両関連情報の非改ざん証明データ「XXX」を取得する。そして、データマネージャ38は、取得した公開データと非改ざん証明データとをアクセスゲートウェイノード30に送信する。アクセスゲートウェイノード30は、公開データと非改ざん証明データとをデータ利用者に送信する。後述するように、非改ざん証明データは、データ利用者が、機密データが保存されてから改ざんされていないかどうかを検証するために使用される。取得された非改ざん証明データは、要求された機密データを格納している事業体BEにも送信される。
【0028】
各事業体BEは、データベース(以降、DB)28を有するサーバ26(すなわち、ローカルサーバ)を含む。ノード16から送信された機密データは、DB28に格納される。
図2に示すように、サーバ26は、少なくとも1つのプロセッサ(又はサーバプロセッサ26a)と、少なくとも1つのメモリ(又はサーバメモリ26b)とを含む。サーバプロセッサ26aは、サーバメモリ26bに記憶されたプログラムを実行する際に、本明細書で説明するような様々な機能を実行可能なマイクロプロセッサであってもよい。サーバメモリ26bは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードディスクドライブ、フラッシュメモリ、又はプログラムを記憶するための他の適切なメモリであってよい。プログラムは、サーバプロセッサ26aによって実行されると、サーバプロセッサ26aに本明細書に開示される様々な機能を実行させるコンピュータ読み取り可能な命令である。
【0029】
各事業体BEのサーバ26は、1つ以上の対象物の機密データをDB28に格納するように構成されている。また、サーバ26は、データソースから更新された情報を受信すると、DB28に保存されている機密データを更新するように構成されている。本実施形態では、各サーバ26は、対象物に関する1つ以上のデータカテゴリをDB28に格納する。各データカテゴリは、機密データに分類される1つ以上のデータ項目を含む。機密データを収容する1つ以上のデータカテゴリは、サーバ26毎に固有である。したがって、あるサーバ26に格納されている機密データの1つ以上のデータカテゴリは、他のサーバ26に格納されている機密データのデータカテゴリとは異なる。
図2の例では、DB28は、データカテゴリAとデータカテゴリBとに分類されたデータを記憶する。データカテゴリAは、2つのデータ項目(データ項目1及びデータ項目2)を含み、データカテゴリBは、1つのデータ項目(データ項目1)を含む。
【0030】
より具体的には、
図3に示す例では、OEMのサーバ26(DB28)は、「機密データ」として、車両関連情報のデータカテゴリの下に、所有者情報、位置情報、及び車載カメラ画像データを保管している。修理工場のサーバ26は、「機密データ」として、修理代情報のデータカテゴリの下に修理代金及びアカウント情報を格納する。保険会社のサーバ26は、「機密データ」として、保険内容のデータカテゴリの下に、被保険者情報、保険約款、及び支払情報を格納する。
【0031】
サーバプロセッサ26aは、ノードプロセッサ16aから命令を受信すると、データ要求によって要求された機密データを検索するようにプログラムされている。また、サーバプロセッサ26aは、読み出した機密データのハッシュ値を計算し、計算されたハッシュ値をアクセスゲートウェイノード30から受信した非改ざん証明データと比較するようにプログラムされている。サーバプロセッサ26aは、ハッシュ値が非改ざん証明データの値と一致する場合にのみ(すなわち、読み出した機密データが改ざんされていないと判定された場合にのみ)、その読み出した機密データをデータ利用者に送信するようにプログラムされている。
【0032】
次に、本実施形態に係るシステム10が実行する処理全体の一例について説明する。一般に、システム10は、データ提供元からデータが提供された場合にはデータ保存処理を行い、データ利用者からデータ要求が発行された場合にはデータ提供処理を行う。まず、
図1乃至
図4を参照して、データ保存処理について説明する。
図1では、データ保存処理におけるデータの流れを黒塗り矢印で示している。以下の説明では、車両Aの所有者が、
図3で説明したように、車両Aに関するデータをOEMに提供するものとする。所有者から提供されるデータは、所有者情報、位置情報、車載カメラ画像データ、速度、及び走行距離を含む、車両関連情報の単一のデータカテゴリで形成される。
【0033】
ステップ10にてOEMのノード16が所有者からデータを受信すると、データ保存処理が開始される。ステップ20では、ノードプロセッサ16aが予め定義されたデータポリシーに従って、受信データを機密データと公開データに分離する。この例では、ノードプロセッサ16aは、所有者情報、位置情報、及び車載カメラ画像データを機密データに分類する。また、ノードプロセッサ16aは、残りのデータ(すなわち、速度及び走行距離)を公開データに分類する。次に、ノードプロセッサ16aは、ステップ30において、データカテゴリごとに、機密データの非改ざん証明データを取得する。この例では、ノードプロセッサ16aは、全ての機密データ(すなわち、所有者情報、位置情報、及び車載カメラ画像データ)のハッシュ値を非改ざん証明データとして算出する。
【0034】
次に、ノードプロセッサ16aは、ステップ40で、非改ざん証明データ及び公開データ(すなわち、速度及び走行距離)をデータマネージャ38に送信する。次に、データマネージャ38は、ステップ50で、公開データと非改ざん証明データをそれぞれ公開データ記憶部32と非改ざん証明データ記憶部36に格納する。この例では、速度及び走行距離は、
図3に示すように、公開データ記憶部32の車両関連情報のデータカテゴリの下に格納される。機密データ(すなわち、所有者情報、位置情報、車載カメラ画像データ)の非改ざん証明データ(YYY)は、非改ざん証明データ記憶部36において、車両関連情報のデータカテゴリの下に格納される。また、データマネージャ38は、ステップ60において、車両関連情報のデータカテゴリの保存場所(すなわち、OEM)を示すデータをロケーションテーブル34に登録する。
【0035】
次に、ノードプロセッサ16aは、ステップ70で、機密データ(すなわち、所有者情報、位置情報、車載カメラ画像データ)をOEMのサーバ26に送信する。OEMのサーバ26は、機密データを受信すると、ステップ80において、DB28に機密データを格納する。その後、データ保存処理は終了する。
【0036】
上述したように、ノードプロセッサ16aは、データポリシーに従って、受信したデータを機密データと公開データとに分離する。したがって、公開データのみがブロックチェーンBCに保存され、機密データは事業体BEのサーバ26に保存される。このように、機密データは各事業体BEにおいて秘密に保管されうる。さらに、データポリシーの設定に応じて、各事業体BEはデータを機密データと公開データとに自由に分類することができる。したがって、事業体BEは、その事業目的やデータの価値に応じて柔軟にデータを取り扱うことができる。さらに、サーバ26は、機密データのみを自己のDB28に格納し、残りの公開データをブロックチェーンBCに格納する。従って、各サーバ26に保存されるデータ量を削減することができ、保存効率の向上やコスト削減を図ることができる。
【0037】
非改ざん証明データ及び公開データは、ブロックチェーンBC上の非改ざん証明データ記憶部36及び公開データ記憶部にそれぞれ格納される。したがって、非改ざん証明データ及び公開データは、違法に又は不正に変更される危険性が低い状態で、安全に保管されうる。
【0038】
次に、
図1及び
図5を参照して、データ提供処理について説明する。
図1では、データ提供処理におけるデータの流れを白抜き矢印で示している。以下の説明では、保険会社から車両Aの修理に関するデータを取得するためのデータ要求が発行されたものとする。この場合、データ要求には、修理代情報及び修理項目の2つのデータカテゴリの取得要求が含まれる。また、データ要求には、保険会社がシステム10を通じてデータを取得することを許可されたことを証明する証明書も含まれる。したがって、この例では、保険会社は、データ利用者であると同時に、システム10を構成する1つの事業体BEでもある。
【0039】
ステップ100でアクセスゲートウェイノード30が保険会社からデータ要求を受信すると、データ提供処理が開始される。アクセスゲートウェイノード30は、ステップ110で、データマネージャ38に、要求されたデータカテゴリの機密データの保存場所、要求されたデータカテゴリの公開データ、及び、要求されたデータカテゴリの機密データの非改ざん証明データを取得するための指示を送信する。この例では、アクセスゲートウェイノード30は、データマネージャ38に、データ要求によって要求された修理代情報の保存場所を取得するよう要求する。また、アクセスゲートウェイノード30は、データ要求によって要求された修理項目の公開データを取得するようにデータマネージャ38に要求する。さらに、アクセスゲートウェイノード30は、データマネージャ38に対して、データ要求によって要求された修理代情報の非改ざん証明データを取得するよう要求する。
【0040】
データマネージャ38は、アクセスゲートウェイノード30からの指示を受けて、ステップ120にてロケーションテーブル34を参照し、修理代情報の保存場所(すなわち、修理工場)を取得する。また、データマネージャ38は、ステップ130において、公開データ記憶部32及び非改ざん証明データ記憶部36から、それぞれ修理品(すなわち、部品A及び部品B)の公開データ及び修理代情報の非改ざん証明データ(すなわち、「YYY」)を取得する。次に、データマネージャ38は、ステップ140において、アクセスゲートウェイノード30に、取得した保存場所情報、公開データ、及び非改ざん証明データを送信する。
【0041】
アクセスゲートウェイノード30は、データマネージャ38から上述の情報を受信すると、ステップ150において、公開データ(すなわち、部品A及び部品B)及び非改ざん証明データ(すなわち、「YYY」)をデータ利用者に送信する。次に、アクセスゲートウェイノード30は、ステップ160において、データ要求及び非改ざん証明データを、保存場所情報によって識別される事業体BEのノード16に転送する。この例では、保存場所情報は、修理代情報は修理工場に格納されていることを示す。そのため、アクセスゲートウェイノード30は、データ要求と非改ざん証明データを修理工場のノード16に送信する。
【0042】
修理工場のノード16がアクセスゲートウェイノード30からデータ要求を受信すると、修理工場のノードプロセッサ16aは、ステップ170において、データ要求に含まれる証明書に基づいて、データ要求が承認されているか否かを検証する。ノードプロセッサ16aは、データ要求が適切に承認されていることを確認すると(ステップ170:Yes)、処理をステップ180に進める。逆に、ノードプロセッサ16aはデータ要求が適切に承認されていると判断しない場合(ステップ170:No)、データ提供処理は終了する。この例では、保険会社(データ利用者)が適切に承認されているので、処理はステップ180に進む。
【0043】
ステップ180で、ノードプロセッサ16aは、要求された機密データを読み出す命令をサーバ26に送信する。また、ノードプロセッサ16aは、アクセスゲートウェイノード30から受信した非改ざん証明データをサーバ26に送信する。この例では、データ要求にて修理代情報のデータカテゴリが要求されているため、修理工場のノードプロセッサ16aは、修理代情報に分類されるデータ項目を読み出すよう修理工場のサーバ26に指示する。サーバ26は、ノードプロセッサ16aから指示を受けると、ステップ190において、サーバプロセッサ26aは、要求された機密データをDB28から取得する。この例では、修理工場のサーバ26は、修理代金情報に分類されるデータ項目を検索するように指示されているので、サーバプロセッサ26aは、DB28から修理代金及びアカウント情報を検索する。
【0044】
次に、サーバプロセッサ26aは、ステップ200において、読み出された機密データのハッシュ値を計算する。この例では、サーバプロセッサ26aは、ハッシュ関数を用いて修理代金及びアカウント情報のハッシュ値を計算する。次に、サーバプロセッサ26aは、ステップ210において、読み出された機密データが改ざんされていないかどうかを検証する。より具体的には、サーバプロセッサ26aは、算出されたハッシュ値と、アクセスゲートウェイノード30から受信した非改ざん証明データとを比較する。そして、算出されたハッシュ値が非改ざん証明データと一致する場合、サーバプロセッサ26aは、読み出された機密データが改ざんされていないものであることを認め(ステップ210:Yes)、処理がステップ220に進められる。逆に、計算されたハッシュ値が非改ざん証明データと一致しない場合、サーバプロセッサ26aは、取り出された機密データが改ざんされていると判断し(ステップ210:No)、データ提供プロセスは終了する。ステップ220において、サーバプロセッサ26aは、取り出した機密データをデータ利用者に送信する。本例においては、サーバプロセッサ26aは、データ利用者としての保険会社に修理代金及びアカウント情報を送信する。その後、データ提供処理は終了する。
【0045】
以上のように、本実施形態のシステム10によれば、データ利用者は、要求されたデータを、機密データの非改ざん証明データとともに取得する。したがって、データ利用者は、取得した機密データのハッシュ値を算出し、算出したハッシュ値と非改ざん証明データを比較することにより、機密データが改ざんされているか否かを確認することができる。さらに、サーバ26は、データ利用者に機密データを送信する前に、読み出された機密データが改ざんされていないことを確認する。このように、システム10は、改ざんの危険性が極めて低い状態で、要求された機密データを提供することができる。
【0046】
アクセスゲートウェイノード30は、ロケーションテーブル34から機密データの保存場所を取得する。したがって、アクセスゲートウェイノード30は、保存場所に基づいて、要求された機密データを格納している適切な事業体BEを特定することができる。
【0047】
(実施形態の変形例)
上述した実施形態では、アクセスゲートウェイノード30のみが、データ要求を受信及び処理する。しかし、事業体BEのノード16がアクセスゲートウェイノード30と同様の機能を果たすようにしてもよい。この場合、アクセスゲートウェイノード30は省略されてもよい。さらに、アクセスゲートウェイノード30は、データソースからデータを受信し、受信したデータを適切な事業体BEに配信するように構成されてもよい。
【0048】
上述の実施形態では、アクセスゲートウェイノード30が非改ざん証明データを取得し、事業体BEのノード16に送信する。しかし、ノード16は、機密データが改ざんされていないことを確認するために、データマネージャ38を介して非改ざん証明データを直接取得してもよい。上述した実施形態では、複数の事業体BEがシステム10を構成している。しかし、単一の事業体がシステム10を構成してもよい。
【0049】
上述した実施形態では、データ利用者は、1つ以上のデータカテゴリを指定してデータ要求を発行する。しかし、データ要求は、1つ以上のデータカテゴリを指定する代わりに、各データ項目を指定するものであってもよい。