(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】サーバ装置
(51)【国際特許分類】
G06Q 50/10 20120101AFI20241119BHJP
【FI】
G06Q50/10
(21)【出願番号】P 2021153996
(22)【出願日】2021-09-22
【審査請求日】2023-10-26
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】山下 雄己
【審査官】和田 財太
(56)【参考文献】
【文献】特開2020-064483(JP,A)
【文献】特開2018-173692(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 50/00
H04L 9/32
G06F 21/00
(57)【特許請求の範囲】
【請求項1】
分散型台帳技術を用いたデータ共有システムに用いられるサーバ装置であって、
前記データ共有システムは、複数の他のサーバ装置を含み、
前記サーバ装置は、
第1分散型台帳および第2分散型台帳を記憶する記憶装置と、
前記第1分散型台帳および前記第2分散型台帳を更新する制御装置とを備え、
前記第1分散型台帳は、データの共有に関する権限情報を前記複数の他のサーバ装置と共有するように構成され、
前記権限情報は、前記複数の他のサーバ装置のうち、前記データを共有する他のサーバ装置を限定するための情報を含み、
前記第2分散型台帳は、前記権限情報に基づいて前記他のサーバ装置と前記データを共有するように構成され、
前記制御装置は、前記権限情報に基づいて、前記他のサーバ装置に前記第2分散型台帳に格納された前記データを送信し、
前記サーバ装置は、所定のサービスを提供するための第1アプリケーションを提供しており、
前記第1アプリケーションは、ユーザの端末装置にインストールされており、
前記端末装置は、前記第1アプリケーションのインストール時に入力された、前記ユーザに関するユーザ情報を、前記サーバ装置に提供し、
前記制御装置は、前記ユーザ情報を取得すると、前記ユーザ情報に対する前記権限情報に前記サーバ装置を設定し、当該権限情報を前記第1分散型台帳に格納し、
前記第1アプリケーションは、第2アプリケーションを含み、
前記第2アプリケーションは、前記複数の他のサーバ装置のうちの所定のサーバ装置により提供されるアプリケーションであり、
前記第2アプリケーションの利用登録がされる場合、前記第1アプリケーションは、前記第2アプリケーションへ前記ユーザ情報を共有することに対する同意を前記端末装置に求め、
前記同意が得られた場合、前記制御装置は、前記所定のサーバ装置を前記権限情報に追加する
、サーバ装置。
【請求項2】
前記制御装置は、前記権限情報が更新された場合、更新された前記権限情報を前記第1分散型台帳に格納する、請求項
1に記載のサーバ装置。
【請求項3】
前記所定のサービスは、本人確認サービスを含み、
前記ユーザ情報は、前記ユーザの個人情報を含み、
前記制御装置は、前記ユーザ情報を取得すると、
前記ユーザ情報に対して前記本人確認サービスを実施し、
本人確認済みの前記ユーザ情報を、前記第2分散型台帳に格納する、請求項
1または請求項
2に記載のサーバ装置。
【請求項4】
前記制御装置は、前記本人確認サービスの実施結果を示す情報を前記第1分散型台帳に格納する、請求項
3に記載のサーバ装置。
【請求項5】
前記制御装置は、前記所定のサーバ装置が追加された前記権限情報に基づいて、前記第2分散型台帳に格納された前記ユーザ情報を、前記所定のサーバ装置に共有する、請求項
1から請求項4のいずれか1項に記載のサーバ装置。
【請求項6】
前記第2アプリケーションの退会登録の申請がなされると、前記制御装置は、前記所定のサーバ装置を前記権限情報から削除する、請求項
1から請求項5のいずれか1項に記載のサーバ装置。
【請求項7】
分散型台帳技術を用いたデータ共有システムに用いられるサーバ装置であって、
前記データ共有システムは、複数の他のサーバ装置を含み、
前記サーバ装置は、
第1分散型台帳および第2分散型台帳を記憶する記憶装置と、
前記第1分散型台帳および前記第2分散型台帳を更新する制御装置とを備え、
前記第1分散型台帳は、データの共有に関する権限情報を前記複数の他のサーバ装置と共有するように構成され、
前記権限情報は、前記複数の他のサーバ装置のうち、前記データを共有する他のサーバ装置を限定するための情報を含み、
前記第2分散型台帳は、前記権限情報に基づいて前記他のサーバ装置と前記データを共有するように構成され、
前記制御装置は、前記権限情報に前記サーバ装置が追加された場合、前記データを有する前記他のサーバ装置から、前記データを取得し、前記第2分散型台帳に格納し、
前記サーバ装置は、前記複数の他のサーバ装置のうちのいずれかの他のサーバ装置である所定のサーバ装置が提供する第1アプリケーションに含まれる第2アプリケーションを提供しており、
前記第1アプリケーションは、本人確認サービスを提供するアプリケーションであり、
前記第1分散型台帳には、前記所定のサーバ装置による前記本人確認サービスの実施結果を示す情報が格納されており、
前記制御装置は、前記第2アプリケーションの利用登録がされる場合、前記本人確認サービスの実施結果を示す情報を参照することにより、本人確認の実施を省略する
、サーバ装置。
【請求項8】
前記制御装置は、前記権限情報から前記サーバ装置が削除された場合、前記データを前記第2分散型台帳から削除する、請求項
7に記載のサーバ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、分散型台帳技術を用いたネットワークを形成するサーバ装置に関する。
【背景技術】
【0002】
特許第6587370号公報(特許文献1)には、ブロックチェーン技術を用いて、複数のPC(Personal Computer)間で共有される文書の改ざんを防止する文書管理システムが開示されている。この文書管理システムでは、複数のPCをネットワークで接続してPCクラスタを形成している。この文書管理システムは、あるPCに文書が記録されると、当該文書をPCクラスタに属する他のPCの記録に反映させる手段を有する。また、この文書管理システムは、上記文書のハッシュ値を生成してブロックに含める手段を有する。これにより、PCクラスタ内で文書を共有するとともに、文書の改ざんを抑制している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ブロックチェーン等の分散型台帳に格納されたデータは、分散型台帳ネットワークに参加している全ノードに参照され得る。データの内容によっては、分散型台帳ネットワークに参加している特定のノード間だけでデータ共有したいというケースもある。従来、このようなケースに対応することができなかった。
【0005】
本開示は、上記課題を解決するためになされたものであり、本開示の目的は、分散型台帳技術によりデータの改ざんを抑制しつつ、分散型台帳ネットワークに参加しているノードのうちの特定のノード間だけでのデータ共有を可能にすることである。
【課題を解決するための手段】
【0006】
(1)本開示のある局面に係るサーバ装置は、分散型台帳技術を用いたデータ共有システムに用いられるサーバ装置である。データ共有システムは、複数の他のサーバ装置を含む。サーバ装置は、データの共有に関する権限情報を複数の他のサーバ装置と共有するように構成された第1分散型台帳を備える。権限情報は、複数の他のサーバ装置のうち、上記データを共有する他のサーバ装置を限定するための情報を含む。さらに、サーバ装置は、権限情報に基づいて他のサーバ装置と上記データを共有するように構成された第2分散型台帳を備える。
【0007】
上記構成によれば、データを共有する他のサーバ装置を限定するための情報である権限情報を第1分散型台帳で管理し、当該権限情報に基づいて、他のサーバ装置だけに上記データを第2分散型台帳により共有することができる。権限情報を第1分散型台帳で管理することにより、データ共有システムに含まれる装置(サーバ装置および複数の他のサーバ装置)で権限情報が共有される。よって、全ての装置で権限情報が監視されるので、権限情報の耐改ざん性を高めることができる。そして、権限情報に基づく他のサーバ装置だけにデータを共有することができる。
【0008】
(2)ある実施の形態においては、サーバ装置は、第1分散型台帳および第2分散型台帳を更新する制御装置をさらに備える。制御装置は、権限情報に基づいて、他のサーバ装置に第2分散型台帳に格納されたデータを送信する。
【0009】
上記構成によれば、第2分散型台帳に格納されたデータを他のサーバ装置に送信し、他のサーバ装置とデータを共有することができる。
【0010】
(3)ある実施の形態においては、制御装置は、権限情報が更新された場合、更新された権限情報を第1分散型台帳に格納する。
【0011】
上記構成によれば、更新された権限情報が第1分散型台帳に格納されるので、データ共有システムに含まれる複数の他のサーバ装置に更新された権限情報を共有することができる。これにより、データ共有システムに含まれる全ての装置(サーバ装置および複数の他のサーバ装置)により権限情報が監視されるので、権限情報の耐改ざん性を高めることができる。
【0012】
(4)ある実施の形態においては、サーバ装置は、所定のサービスを提供するための第1アプリケーションを提供している。第1アプリケーションは、ユーザの端末装置にインストールされている。端末装置は、第1アプリケーションのインストール時に入力された、ユーザに関するユーザ情報を、サーバ装置に提供する。制御装置は、ユーザ情報を取得すると、ユーザ情報に対する権限情報にサーバ装置を設定し、当該権限情報を第1分散型台帳に格納する。
【0013】
端末装置のユーザは、第1アプリケーションを提供するサーバ装置にユーザ情報を提供している。上記構成によれば、サーバ装置が設定された権限情報が第1分散型台帳に格納されるので、サーバ装置にユーザ情報を得る権限が与えられたことを、複数の他のサーバ装置に共有することができる。
【0014】
(5)ある実施の形態においては、所定のサービスは、本人確認サービスを含む。ユーザ情報は、ユーザの個人情報を含む。制御装置は、ユーザ情報を取得すると、ユーザ情報に対して本人確認サービスを実施し、本人確認済みのユーザ情報を、第2分散型台帳に格納する。
【0015】
上記構成によれば、本人確認済みのユーザ情報は第2分散型台帳に格納されるので、ユーザ情報を取得する権限のない他のサーバ装置にユーザ情報が共有されることを抑制することができる。
【0016】
(6)ある実施の形態においては、制御装置は、本人確認サービスの実施結果を示す情報を第1分散型台帳に格納する。
【0017】
上記構成によれば、本人確認サービスの実施結果を示す情報が第1分散型台帳に格納されるので、複数の他のサーバ装置に更新された権限情報を共有することができる。これにより、データ共有システムに含まれる全ての装置により本人確認サービスの実施結果を示す情報が監視されるので、本人確認サービスの実施結果を示す情報の耐改ざん性を高めることができる。
【0018】
(7)ある実施の形態においては、第1アプリケーションは、第2アプリケーションを含む。第2アプリケーションは、複数の他のサーバ装置のうちの所定のサーバ装置により提供されるアプリケーションである。第2アプリケーションの利用登録がされる場合、第1アプリケーションは、第2アプリケーションへユーザ情報を共有することに対する同意を端末装置に求める。同意が得られた場合、制御装置は、所定のサーバ装置を権限情報に追加する。
【0019】
上記構成によれば、第2アプリケーションにユーザ情報を共有することに対する同意が得られた場合に、権限情報に所定のサーバ装置が追加される。この権限情報は、第1分散型台帳に格納される。よって、複数の他のサーバ装置に、所定のサーバ装置が追加された権限情報を共有することができる。
【0020】
(8)ある実施の形態においては、制御装置は、所定のサーバ装置が追加された権限情報に基づいて、第2分散型台帳に格納されたユーザ情報を、所定のサーバ装置に共有する。
【0021】
上記構成によれば、権限情報への所定のサーバ装置の追加に伴なって、ユーザ情報を所定のサーバ装置に共有することができる。
【0022】
(9)ある実施の形態においては、第2アプリケーションの退会登録の申請がなされると、制御装置は、所定のサーバ装置を権限情報から削除する。
【0023】
上記構成によれば、第2アプリケーションの退会登録の申請に応じて、第2アプリケーションを提供する所定のサーバ装置が権限情報から削除される。この更新された権限情報は、第1分散型台帳に格納されるので、複数の他のサーバ装置に更新された権限情報を共有することができる。
【0024】
(10)ある実施の形態においては第1分散型台帳および第2分散型台帳を更新する制御装置をさらに備える。制御装置は、権限情報にサーバ装置が追加された場合、データを有する他のサーバ装置から、データを取得し、第2分散型台帳に格納する。
【0025】
上記構成によれば、自身(サーバ装置)が権限情報に追加された場合、当該権限情報に対応するデータを、当該データを有する他のサーバ装置から取得することができる。
【0026】
(11)ある実施の形態においては、制御装置は、権限情報からサーバ装置が削除された場合、権限情報に対応するデータを第2分散型台帳から削除する。
【0027】
上記構成によれば、自身(サーバ装置)のデータを保有する権限が消失した場合、当該データを第2分散型台帳から適切に削除することができる。
【0028】
(12)ある実施の形態においては、サーバ装置は、複数の他のサーバ装置のうちのいずれかの他のサーバ装置である所定のサーバ装置が提供する第1アプリケーションに含まれる第2アプリケーションを提供している。第1アプリケーションは、本人確認サービスを提供するアプリケーションである。第1分散型台帳には、所定のサーバ装置による本人確認サービスの実施結果を示す情報が格納されている。制御装置は、第2アプリケーションの利用登録がされる場合、本人確認サービスの実施結果を示す情報を参照することにより、本人確認の実施を省略する。
【0029】
上記構成によれば、第1アプリケーションを提供する所定のサーバ装置が実施した本人確認サービスの実施結果を第1分散型台帳により共有することで、本人確認の実施が省略される。これにより、本人確認を実施するための工数等を削減することができる。
【発明の効果】
【0030】
本開示によれば、分散型台帳技術によりデータの改ざんを抑制しつつ、分散型台帳ネットワークに参加しているノードのうちの特定のノード間だけでのデータ共有を可能にすることができる。
【図面の簡単な説明】
【0031】
【
図1】実施の形態に係るデータ共有システムの概略的な構成を示す図である。
【
図2】管理サーバのハードウェア構成を説明するための図である。
【
図3】サービスサーバのハードウェア構成を説明するための図である。
【
図4】クライアント装置のハードウェア構成を説明するための図である。
【
図5】データ共有システムのシステム構成を概略的に示す図である。
【
図6】クライアント装置へウォレットアプリをインストールした際に実行される処理における情報の流れを模式的に示した図である。
【
図7】ウォレットアプリ内において第1アプリが利用登録される際に実行される処理における情報の流れを模式的に示した図である。
【
図8】第1アプリの退会登録時に実行される処理における情報の流れを模式的に示した図である。
【
図9】ウォレットアプリがクライアント装置にインストールされる際に実行される処理の手順を示すフローチャートである。
【
図10】第1アプリの利用登録が行なわれる際に実行される処理の手順を示すフローチャートである。
【
図11】第1アプリ(第1サービス)の退会登録が行なわれる際に実行される処理の手順を示すフローチャートである。
【
図12】変形例における、クライアント装置へウォレットアプリをインストールした際に実行される処理における情報の流れを模式的に示した図である。
【発明を実施するための形態】
【0032】
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付して、その説明は繰り返さない。
【0033】
[実施の形態]
<データ共有システムの全体構成>
図1は、本実施の形態に係るデータ共有システム1の概略的な構成を示す図である。本実施の形態に係るデータ共有システム1は、複数の企業間でコンソーシアムネットワーク(以下、単に「ネットワーク」とも称する)NWを形成し、分散型台帳技術を用いてデータを共有するためのシステムである。
【0034】
データ共有システム1は、管理サーバ2と、4台のサービスサーバ3-1~3-4と、クライアント装置4と、アプリ提供サーバ5とを備える。4台のサービスサーバ3-1~3-4の各々は、異なる企業(たとえば、A企業、B企業、C企業およびD企業)に帰属するサーバである。たとえば、サービスサーバ3-1は、A企業に帰属し、サービスサーバ3-2は、B企業に帰属し、サービスサーバ3-3は、C企業に帰属し、サービスサーバ3-4は、D企業に帰属する。以下では、サービスサーバ3-1~3-4の各々を特に区別しない場合には、総称して単に「サービスサーバ3」とも称する。
【0035】
管理サーバ2は、ネットワークNWを運営する管理企業に帰属するサーバである。管理サーバ2は、ネットワークNWを管理する。管理サーバ2は、各サービスサーバ3からのネットワークNWへの参加申請を受け付ける。管理サーバ2は、管理サーバ2の管理者による参加を許可する操作に基づき、または、所定の条件の判定結果に基づき、サービスサーバ3のネットワークNWへの参加を許可する(後述のドアマンノードの機能)。本実施の形態では、A企業、B企業、C企業およびD企業のそれぞれに帰属する4台のサービスサーバ3に対して、ネットワークNWへの参加が許可されている。
【0036】
また、管理サーバ2は、アプリ提供サーバ5を管理する。アプリ提供サーバ5は、アプリケーションを提供する所謂マーケットプレイスである。管理サーバ2は、アプリ提供サーバ5において、ウォレットアプリ50を提供している。
【0037】
アプリ提供サーバ5は、クライアント装置4と通信可能に構成されている。アプリ提供サーバ5は、クライアント装置4に対して、アプリケーションを提供する。クライアント装置4は、アプリ提供サーバ5にアクセスして、アプリ提供サーバ5において提供されているアプリケーションをインストールすることができる。本実施の形態では、アプリ提供サーバ5は、ウォレットアプリ50を提供している。クライアント装置4は、アプリ提供サーバ5からウォレットアプリ50をインストールすることができる。なお、本実施の形態においては、アプリ提供サーバ5は、1つのアプリケーション(ウォレットアプリ50)を提供する例について説明するが、アプリ提供サーバ5は、複数のアプリケーションを提供してもよい。
【0038】
ウォレットアプリ50は、KYC(Know Your Customer)サービスを提供するアプリケーションである。ウォレットアプリ50は、KYCサービスに加えて、種々のサービスを提供するアプリケーションであってよい。
【0039】
ウォレットアプリ50は、所謂スーパーアプリであり、第1アプリ51と、第2アプリ52と、第3アプリ53と、第4アプリ54とを所謂ミニアプリとして含む。第1アプリ51は、サービスサーバ3-1を管理するA企業が提供する第1サービスを利用するためのアプリケーションである。A企業のサービスサーバ3-1は、第1アプリ51をミニアプリとしてウォレットアプリ50に配信登録している。第2アプリ52は、サービスサーバ3-2を管理するB企業が提供する第2サービスを利用するためのアプリケーションである。B企業のサービスサーバ3-2は、第2アプリ52をミニアプリとしてウォレットアプリ50に配信登録している。第3アプリ53は、サービスサーバ3-3を管理するC企業が提供する第3サービスを利用するためのアプリケーションである。C企業のサービスサーバ3-3は、第3アプリ53をミニアプリとしてウォレットアプリ50に配信登録している。第4アプリ54は、サービスサーバ3-4を管理するD企業が提供する第4サービスを利用するためのアプリケーションである。D企業のサービスサーバ3-4は、第4アプリ54をミニアプリとしてウォレットアプリ50に配信登録している。
【0040】
第1アプリ51~第4アプリ54の各々は、ウォレットアプリ50のフレームワークを活用して開発される。第1アプリ51~第4アプリ54の各々は、たとえば、ウォレットアプリ50内のブラウザ上で動作し、管理サーバ2のAPI(Application Program Interface)210、および、各サービスサーバ3-1~3-4のAPI310-1~310-4と連携して、各サービスサーバ3-1~3-4が提供するサービス(第1サービス~第4サービス)を提供してもよい。第1サービス~第4サービスの各々は、たとえば、レンタカーサービス、カーシェアリングサービス、保険サービス、行政サービス、カーディーラーサービス、整備事業サービス等の任意のサービスであってよい。
【0041】
クライアント装置4は、たとえば、スマートフォン、タブレット端末、デスクトップ型のPC(Personal Computer)、ノート型のPC、または、通信機能を有するその他の情報処理端末である。クライアント装置4は、インストールしたウォレットアプリ50内から、第1アプリ51、第2アプリ52、第3アプリ53および第4アプリ54を起動させて、各企業(サービスサーバ3-1~3-4)が提供するサービスを利用することができる。後に詳細に説明するが、各ミニアプリの初回起動時(利用登録時)には、アプリケーションの提供元であるサービスサーバ3へ、クライアント装置4のユーザの個人情報を含むユーザ情報を提供することの同意が求められる。
【0042】
管理サーバ2およびサービスサーバ3の各々には、2つの分散型台帳基盤のソフトウェアが導入されている。1つ目の分散型台帳基盤のソフトウェア(以下「第1ソフトウェア」とも称する)は、ブロードキャスト型のメインチェーンを構築するノードとして機能するためのスマートコントラクトを含む。2つ目の分散型台帳基盤のソフトウェア(以下「第2ソフトウェア」とも称する)は、P2P(Peer to Peer)型のサブチェーンを構築するノードとして機能するためのスマートコントラクトを含む。2つ目の分散型台帳基盤としては、たとえばCORDA(登録商標)を採用してもよい。導入された第1ソフトウェアが機能することにより、管理サーバ2に含まれる制御装置21(
図2)およびサービスサーバ3に含まれる制御装置31(
図3)が、それぞれメインチェーンノード200A(
図2)およびメインチェーンノード300A(
図3)として機能する。導入された第2ソフトウェアが機能することにより、管理サーバ2に含まれる制御装置21(
図2)およびサービスサーバ3に含まれる制御装置31(
図3)が、それぞれサブチェーンノード200B(
図2)およびサブチェーンノード300B(
図3)として機能する。
【0043】
さらに、管理サーバ2に含まれる制御装置21(
図2)およびサービスサーバ3に含まれる制御装置31(
図3)は、それぞれ、ネットワークNW外における処理を実行するオフチェーンノード200C(
図2)およびオフチェーンノード300C(
図3)としても機能する。
図1においては、メインチェーンノード200A、サブチェーンノード200Bおよびオフチェーンノード200Cを総称して「ノード200」と表記し、メインチェーンノード300A、サブチェーンノード300Bおよびオフチェーンノード300Cを総称して「ノード300」と表記している。
【0044】
管理サーバ2は、分散型台帳セット270を有する。サービスサーバ3は、分散型台帳セット370を有する。分散型台帳セット270および分散型台帳セット370は、同様のデータ構造を有する。そのため、以下においては、分散型台帳セット270について代表的に説明する。
【0045】
分散型台帳セット270は、メインチェーンにおいて共有されるトランザクションデータを格納する分散型台帳271(
図2)と、サブチェーンにおいて共有されるトランザクションデータを格納する分散型台帳272(
図2)とを含む。
【0046】
分散型台帳271は、ブロードキャスト型のメインチェーンにおいて共有されるトランザクションデータを格納する分散型台帳であり、ネットワークNWに参加する全メインチェーンノードに公開される。すなわち、管理サーバ2が有する分散型台帳271と、サービスサーバ3-1が有する分散型台帳371-1(
図3)と、サービスサーバ3-2が有する分散型台帳371-2(
図3)と、サービスサーバ3-3が有する分散型台帳371-3(
図3)と、サービスサーバ3-4が有する分散型台帳371-4(
図3)とは、同じトランザクションデータを保有する。
【0047】
分散型台帳272は、P2P型のサブチェーンにおいて共有されるトランザクションデータを格納する分散型台帳であり、公開範囲が当事者間に限定される。詳細は後述するが、分散型台帳272は、メインチェーン(分散型台帳271)に格納された権限情報(同意情報)に基づいて、その公開範囲が限定される。それゆえに、管理サーバ2が有する分散型台帳271と、サービスサーバ3-1が有する分散型台帳371-1(
図3)と、サービスサーバ3-2が有する分散型台帳371-2(
図3)と、サービスサーバ3-3が有する分散型台帳371-3(
図3)と、サービスサーバ3-4が有する分散型台帳371-4(
図3)とは、互いに異なるトランザクションデータを保持し得る。
【0048】
また、管理サーバ2に含まれる制御装置(
図2)は、ROM(Read Only Memory)に格納されているソフトウェアが機能することにより、プラットフォームプロバイダ60として機能する。プラットフォームプロバイダ60は、ネットワークNWを管理する機能を有する。プラットフォームプロバイダ60は、ドアマンノード61と、ネットワークマップノード63と、ノータリノード65とを含む。
【0049】
ドアマンノード61は、ネットワークNWへの参加を希望するノード300からの参加申請の承認を行なう。また、ドアマンノード61は、ノード300への証明書の発行を行なう。ネットワークNWに参加したノード300は、参加時に秘密鍵および公開鍵のペアを作成し、証明書付与の要求をドアマンノード61に送信する。ドアマンノード61は、予め定められた所定の条件を検証し、証明書付与の要求があったノード300に対して証明書を発行する。
【0050】
ネットワークマップノード63は、ドアマンノード61によって証明書が発行された(すなわち、ネットワークNWへの参加が許可された)ノード300の情報(たとえばIPアドレス)を記憶する。ネットワークマップノード63は、ネットワークNWにおいて、DNS(Domain Name System)として機能する。ノード200およびノード300は、たとえば、ネットワークマップノード63から提供された情報に基づいて、トランザクションデータの送信先を認識する。
【0051】
ノータリノード65は、サブチェーンにおけるトランザクションデータにファイナリティを与える。ノード200(サブチェーンノード200B)およびノード300(サブチェーンノード300B)は、トランザクションデータを生成した際に、トランザクションデータのハッシュ値およびトランザクションデータのアウトプットのインデックスを含むデータをノータリノード65に送る。ノータリノード65は、ノード200またはノード300から受けた上記データを順番に保持することで、サブチェーンにおけるトランザクションデータの順番を保証する。
【0052】
図2は、管理サーバ2のハードウェア構成を説明するための図である。管理サーバ2は、制御装置21と、ROM22と、RAM(Random Access Memory)23と、通信装置24と、入力装置25と、表示装置26と、記憶装置27とを備える。制御装置21、ROM22、RAM23、通信装置24、入力装置25、表示装置26、および、記憶装置27は、バス29に接続されている。
【0053】
制御装置21は、たとえば、CPU(Central Processing Unit)を含む集積回路によって構成される。制御装置21は、ROM22に格納されている各種プログラムをRAM23に展開して実行する。各種プログラムには、オペレーティングシステム等が含まれる。RAM23は、ワーキングメモリとして機能し、各種プログラムの実行に必要な各種データを一時的に格納する。後に詳しく説明するが、制御装置21は、メインチェーンで機能するメインチェーンノード200Aと、サブチェーンで機能するサブチェーンノード200Bと、オフチェーン(ネットワークNW外)で機能するオフチェーンノード200Cとを含む。また、制御装置21は、ネットワークNWにおいて機能する上述のプラットフォームプロバイダ60を含む。
【0054】
通信装置24は、外部の機器との通信が可能に構成される。外部の機器は、たとえば、サービスサーバ3、クライアント装置4およびアプリ提供サーバ5等を含む。通信装置24と外部の機器との通信は、インターネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)ネットワーク、パブリックネットワーク、プライベートネットワーク、有線ネットワークまたは無線ネットワーク等、あるいは、これらの組み合わせを用いて行なわれる。
【0055】
入力装置25は、入力デバイスを含む。入力デバイスは、たとえば、マウス、キーボード、タッチパネル、および/または、ユーザの操作を受け付けることが可能なその他の装置である。
【0056】
表示装置26は、ディスプレイを含む。表示装置26は、制御装置21からの制御信号に従って、ディスプレイに各種の画像を表示させる。ディスプレイは、たとえば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、または、その他の表示機器である。
【0057】
記憶装置27は、たとえば、ハードディスクまたはフラッシュメモリ等の記憶媒体を含んで構成される。記憶装置27は、分散型台帳セット270、秘密鍵275、および、複数の公開鍵277を記憶している。分散型台帳セット270および後述の分散型台帳セット370の詳細については、後に説明する。
【0058】
秘密鍵275は、管理サーバ2を管理する管理企業の秘密鍵である。たとえば、管理サーバ2が最初にネットワークを形成するにあたり、制御装置21は、秘密鍵および公開鍵を生成する。そして、制御装置21は、生成された公開鍵を認証局(図示せず)に送信して、認証を受ける。認証局は、電子証明書を発行する認証機関である。認証局は、公開鍵の情報を含めた電子証明書を発行する。制御装置21は、認証を受けた公開鍵に対応する秘密鍵275を記憶装置27に記憶させる。また、制御装置21は、認証を受けた公開鍵(電子証明書)を、ネットワークNWに参加するサービスサーバ3-1~3-4に送信する。
【0059】
複数の公開鍵277は、A企業の公開鍵、B企業の公開鍵、C企業の公開鍵およびD企業の公開鍵を含む。制御装置21は、サービスサーバ3から受信した公開鍵を記憶装置27に記憶させる。また、記憶装置27は、自身(管理企業)の公開鍵を記憶していてもよい。
【0060】
制御装置21は、トランザクションデータの生成時に、秘密鍵275を用いて電子署名を作成し、当該電子署名をトランザクションデータに含める。また、制御装置21は、サービスサーバ3からトランザクションデータを受信した場合に、複数の公開鍵277のうちの、トランザクションデータの送信元の公開鍵を用いて、電子署名の有効性を検証する。
【0061】
図3は、サービスサーバ3のハードウェア構成を説明するための図である。サービスサーバ3-1~3-4は、基本的に同様のハードウェア構成を有する。
図3の説明においては、サービスサーバ3がいずれの企業のものであるかを特定する場合には、A企業のサービスサーバ3-1を例にして説明する。
【0062】
サービスサーバ3は、制御装置31と、ROM32と、RAM33と、通信装置34と、入力装置35と、表示装置36と、記憶装置37とを備える。制御装置31、ROM32、RAM33、通信装置34、入力装置35、表示装置36、および、記憶装置37は、バス39に接続されている。
【0063】
制御装置31は、たとえば、CPUを含む集積回路によって構成される。制御装置31は、ROM32に格納されている各種プログラムをRAM33に展開して実行する。各種プログラムには、オペレーティングシステム等が含まれる。RAM33は、ワーキングメモリとして機能し、各種プログラムの実行に必要な各種データを一時的に格納する。制御装置31は、メインチェーンで機能するメインチェーンノード300Aと、サブチェーンで機能するサブチェーンノード300Bと、オフチェーン(ネットワークNW外)で機能するオフチェーンノード300Cとを含む。
【0064】
通信装置34、入力装置35および表示装置36は、それぞれ、管理サーバ2の通信装置24、入力装置25および表示装置26と基本的に同様の構成を有するため、その説明は繰り返さない。
【0065】
記憶装置37は、たとえば、ハードディスクまたはフラッシュメモリ等の記憶媒体を含んで構成される。記憶装置37は、分散型台帳セット370、秘密鍵375、および、複数の公開鍵377を記憶している。
【0066】
秘密鍵375-1は、サービスサーバ3-1を管理するA企業の秘密鍵である。たとえば、A企業のサービスサーバ3-1が最初にネットワークNWに参加するにあたり、制御装置31-1は、秘密鍵および公開鍵を生成する。そして、制御装置31-1は、生成された公開鍵を認証局(図示せず)に送信して、認証を受ける。制御装置31-1は、認証を受けた公開鍵に対応する秘密鍵375-1を記憶装置37-1に記憶させる。また、制御装置31-1は、認証を受けた公開鍵(電子証明書)を、ドアマンノード61に送信し、証明書の付与を受ける。この証明書は、サービスサーバ3-1が発行するトランザクションデータに含まれる。また、制御装置31-1は、認証を受けた公開鍵(電子証明書)を、ネットワークNWを形成する管理サーバ2およびサービスサーバ3-2~3-4に送信する。
【0067】
複数の公開鍵377-1は、管理企業の公開鍵、B企業の公開鍵、C企業の公開鍵およびD企業の公開鍵を含む。制御装置31-1は、管理サーバ2およびサービスサーバ3-2~3-4から受信した公開鍵を記憶装置37-1に記憶させる。また、記憶装置37-1は、自身(A企業)の公開鍵を記憶していてもよい。
【0068】
制御装置31-1は、トランザクションデータの生成時に、秘密鍵375-1を用いて電子署名を作成し、当該電子署名をトランザクションデータに含める。また、制御装置31-1は、管理サーバ2またはサービスサーバ3-2~3-4からトランザクションデータを受信した場合に、複数の公開鍵377-1のうちの、トランザクションデータの送信元の公開鍵を用いて、電子署名の有効性を検証する。
【0069】
図4は、クライアント装置4のハードウェア構成を説明するための図である。クライアント装置4は、制御装置41と、ROM42と、RAM43と、通信装置44と、入力装置45と、表示装置46と、記憶装置47とを備える。制御装置41、ROM42、RAM43、通信装置44、入力装置45、表示装置46、および、記憶装置47は、バス49に接続されている。
【0070】
制御装置41は、たとえば、CPUを含む集積回路によって構成される。制御装置41は、ROM42に格納されている各種プログラムをRAM43に展開して実行する。各種プログラムには、オペレーティングシステム等が含まれる。RAM43は、ワーキングメモリとして機能し、各種プログラムの実行に必要な各種データを一時的に格納する。制御装置41は、通信装置44を介して、アプリ提供サーバ5からアプリケーションをインストールしたり、インストールしたアプリケーションを実行したりする機能を有する。
【0071】
通信装置44および表示装置46は、それぞれ、管理サーバ2の通信装置24および表示装置26と基本的に同様の構成を有するため、その説明は繰り返さない。
【0072】
入力装置45は、入力デバイスを含む。入力デバイスは、たとえば、マウス、キーボード、タッチパネル、および/または、ユーザの操作を受け付けることが可能なその他の装置である。また、入力装置45は、カメラまたはスキャナ等の情報取得装置をさらに含む。
【0073】
記憶装置47は、たとえば、ハードディスクまたはフラッシュメモリ等の記憶媒体を含んで構成される。記憶装置47は、アプリ提供サーバ5からインストールされたアプリケーションを記憶する。本実施の形態においては、記憶装置47には、ウォレットアプリ50が記憶されている。
【0074】
<ウォレットアプリおよびミニアプリの利用>
上記のような構成を有するデータ共有システム1において、クライアント装置4にインストールしたウォレットアプリ50(スーパーアプリ)は、ユーザ情報の登録と、ユーザの本人確認(KYC)とを経て、その利用が可能となる。さらに、ウォレットアプリ50のミニアプリ(第1アプリ51~第4アプリ54)を利用するためには、利用するミニアプリを提供する企業(たとえば、第1アプリ51であればA企業)に、ユーザ情報を提供し、その企業によるKYCを経ることが求められる。たとえば、ユーザが第1アプリ51の利用登録をする場合には、サービスサーバ3-1(A企業)へのユーザ情報の提供を要する一方で、サービスサーバ3-2~3-4(B企業,C企業,D企業)にはユーザ情報の提供は要しない。一般に、ブロックチェーン等の分散型台帳技術では、ネットワークに参加する全ノードにデータが共有されるため、特定のノード間だけでのデータ共有はできない。分散型台帳技術を用いて、データの耐改ざん性を向上させつつも、データを特定のノード間のみで共有する手法が望まれている。また、KYCについても、ミニアプリを提供する各サービスサーバ3(各企業)毎に実施することは、企業にとってもユーザにとっても手間であり、対策が求められている。
【0075】
そこで、本実施の形態に係るデータ共有システム1では、スーパーアプリを提供する管理企業(管理サーバ2)が行なったKYC結果をメインチェーンに格納し、ネットワークNWの参加者に共有する。ミニアプリを提供する各企業は、ミニアプリの利用申請があった場合に、メインチェーン上のKYC結果を確認することにより、ユーザの本人確認を行なったものと見做し、自らがKYCを実施することを省略することができる。
【0076】
また、ミニアプリの利用申請を受けた企業は、サービスを提供するためにユーザ情報を得る必要がある。本実施の形態に係るデータ共有システム1では、ウォレットアプリ50へのユーザ情報の登録時に入力されたユーザ情報は、KYCサービスの実施後に、管理サーバ2の分散型台帳272(サブチェーン)に格納される。クライアント装置4のユーザが、ミニアプリへのユーザ情報の提供に同意すると、サブチェーンにより、分散型台帳272に格納されたユーザ情報が、ミニアプリを提供するサービスサーバ3の分散型台帳372に共有される。
【0077】
図5は、データ共有システム1のシステム構成を概略的に示す図である。
図5および後述の
図6~
図8を参照しながら、ウォレットアプリおよびミニアプリの利用登録から退会登録まで一連の処理について説明する。
【0078】
<<ウォレットアプリのインストール:KYC>>
図6は、クライアント装置4へウォレットアプリ50をインストールした際に実行される処理における情報の流れを模式的に示した図である。
図5および
図6を参照して、クライアント装置4にウォレットアプリ50がインストールされると、ウォレットアプリ50(アプリ提供サーバ5)は、クライアント装置4にアカウント登録を求める。クライアント装置4の制御装置41は、アカウント登録の求めに応じて、秘密鍵および公開鍵を生成する。制御装置41は、生成された公開鍵を認証局(図示せず)に送信して、認証を受けてもよい。制御装置41は、認証を受けた公開鍵に対応する秘密鍵を記憶装置47に記憶させる。認証を受けた公開鍵は、後に説明するように、メインチェーンにおけるクライアント装置4(ユーザ)のIDとしても用いられる。
【0079】
次に、ウォレットアプリ50は、クライアント装置4にユーザ情報の登録を求める。クライアント装置4の制御装置41は、たとえば、表示装置46の表示画面にユーザ情報の入力欄を表示させる。ユーザ情報は、たとえば、氏名、生年月日、住所、年齢等の情報を含む。ユーザは、入力装置45を介して、氏名、生年月日、住所、年齢等の情報を入力する。さらに、ユーザ情報は、本人確認をするための情報をさらに含む。本人確認をするための情報は、たとえば、運転免許証、マイナンバーカード、または、健康保険証等であってもよい。ユーザは、たとえば、入力装置45に含まれるカメラ等により運転免許証を撮影し、その情報をユーザ情報として登録する。
【0080】
登録されたユーザ情報は、クライアント装置4の通信装置44を介して、アプリ提供サーバ5に送られる。アプリ提供サーバ5は、KYCサービスを実施する管理サーバ2のAPI210にアクセスし、ユーザ情報とともにKYCの実施要求を管理サーバ2に送信する。また、クライアント装置4の公開鍵の情報も、アプリ提供サーバ5を介して、クライアント装置4から管理サーバ2に送られる。なお、アプリ提供サーバ5は、ユーザ情報の入力漏れ、および/または、撮影された運転免許証等の画像データの容量等が、KYCサービスを実施するために定められた基準の範囲内であるかを確認してもよい。
【0081】
KYCの実施要求を受けると、管理サーバ2は、KYCサービスを実施する。そして、管理サーバ2は、KYC済みのユーザ情報を分散型台帳272に格納してサブチェーンを更新するとともに、メインチェーンにクライアント装置4のユーザのID(以下「ユーザID」とも称する)を発行し、ユーザIDに紐付ける形式で、KYC結果を分散型台帳271に格納してメインチェーンを更新する。
【0082】
具体的には、KYCの実施要求を受けると、制御装置21のオフチェーンノード200Cが機能する。オフチェーンノード200Cは、取得したユーザ情報を用いてKYCを実施する。KYCの実施には、管理サーバ2の管理者や管理サーバ2を運営する企業の従業員等の作業が介在してもよい。KYCを実施した結果、本人確認に問題がないと判断すると、オフチェーンノード200Cは、KYCの完了を示す情報をサブチェーンノード200Bに出力する。
【0083】
KYCの完了を示す情報を取得すると、制御装置21のサブチェーンノード200Bが機能する。サブチェーンノード200Bは、サブチェーンを更新するためのトランザクションデータを生成する。この時点では、クライアント装置4のユーザは、ウォレットアプリ50に対してユーザ情報の提供を同意しており、ウォレットアプリ50内のミニアプリに対してはユーザ情報の提供を同意していない。そのため、この時点では、ユーザ情報は、管理サーバ2の分散型台帳272にのみ格納され、サービスサーバ3-1~3-4の分散型台帳372-1~372-4には格納されない。よって、トランザクションデータには、ユーザ情報が含まれるとともに、トランザクションデータの送信先には自身(管理サーバ2)が指定される。さらに、トランザクションデータには、ユーザ情報のハッシュ値(以下「データハッシュ」とも称する)が含まれる。サブチェーンノード200Bは、このトランザクションデータを処理し、分散型台帳272にユーザ情報およびデータハッシュを格納する。分散型台帳272にデータハッシュを格納しておくのは、後に説明する同意情報(権限情報)の更新チェックの度に、ユーザ情報のハッシュ値を生成するという工数を削減するためである。
図5においては、ユーザ情報およびデータハッシュを「DataA」と表記している。上述のとおり、この時点においては、DataAは、管理サーバ2の分散型台帳272にのみ格納されている。
【0084】
サブチェーンが更新されると、制御装置21のメインチェーンノード200Aが機能する。メインチェーンノード200Aは、メインチェーンを更新するためのトランザクションデータを生成する。具体的には、メインチェーンノード200Aは、データハッシュ、同意情報およびKYC確認結果を示す情報を含むトランザクションデータを生成する。トランザクションデータの送信先には、メインチェーンを形成する全ノード(メインチェーンノード200Aおよびメインチェーンノード300A-1~300A-4)が指定される。また、トランザクションデータの所有者を示す情報には、クライアント装置4の公開鍵のハッシュ値が含まれる。このトランザクションデータが、ネットワークNWにブロードキャストされ、管理サーバ2のメインチェーンノード200Aおよびサービスサーバ3のメインチェーンノード300Aに処理されることにより、クライアント装置4の公開鍵のハッシュ値が、クライアント装置4のID(以下「ユーザID」とも称する)として、メインチェーンに発行される。そして、ユーザIDに紐付く形式で、データハッシュ、同意情報およびKYC確認結果を示す情報がメインチェーン(分散型台帳271および分散型台帳371)に格納される。
【0085】
同意情報(権限情報)は、ユーザ情報の共有範囲を定めるための情報であり、「誰が(From)」、「誰に(To)」、「何のデータ(Hash)について同意したか」の情報を含む。具体的には、同意情報は、同意元を示す情報(From)、同意先を示す情報(To)、および、対象となるデータを示す情報(Hash)が含まれる。上述の例では、同意元を示す情報は、たとえば、ユーザID(クライアント装置4の公開鍵のハッシュ値)である。同意先を示す情報は、たとえば、管理サーバ2を特定するための情報である管理サーバ2のID(たとえば、管理サーバ2の公開鍵のハッシュ値あるいはアドレス)である。対象となるデータを示す情報は、たとえば、ユーザ情報のハッシュ値(データハッシュ)である。
【0086】
KYC確認結果の情報は、KYCの実施結果を示す情報であり、「誰が(From)」、「誰の(To)」、「何のデータ(Hash)を確認したか」の情報を含む。具体的には、KYC確認結果の情報は、KYCの実施者を示す情報(From)、KYCの対象者を示す情報(To)、および、KYCの対象となるデータを示す情報(Hash)が含まれる。上述の例では、KYCの実施者を示す情報は、たとえば、管理サーバ2を特定するための情報である管理サーバ2のID(たとえば、管理サーバ2の公開鍵のハッシュ値あるいはアドレス)である。KYCの対象者を示す情報は、たとえば、ユーザID(クライアント装置4の公開鍵のハッシュ値)である。KYCの対象となるデータを示す情報は、たとえば、ユーザ情報のハッシュ値(データハッシュ)である。
【0087】
上記のように、クライアント装置4へのウォレットアプリ50のインストールに伴なって、ウォレットアプリ50を提供する管理サーバ2(管理企業)によりユーザのKYCが実施される。そして、ユーザ情報が管理サーバ2の分散型台帳272に格納される。さらに、メインチェーンにユーザIDが発行され、KYC結果、ユーザ情報のハッシュ値(データハッシュ)および同意情報が、ユーザIDに紐付く形式でメインチェーン(分散型台帳271および分散型台帳371-1~371-4)に格納される。
【0088】
<<ミニアプリの利用登録:KYCの省略>>
図7は、ウォレットアプリ50内において第1アプリ51が利用登録(初回利用)される際に実行される処理における情報の流れを模式的に示した図である。
図7においては、ミニアプリとして第1アプリ51を例にして説明する。
図5および
図7を参照して、前提として、第1サービスを提供しているA企業が、ウォレットアプリ50のミニアプリとして第1アプリ51を提供(配信)することを決定している。したがって、ウォレットアプリ50のミニアプリとして第1アプリ51が提供されている。
【0089】
たとえば、クライアント装置4のユーザは、ウォレットアプリ50を立ち上げて、表示装置46の表示画面に表示されている第1アプリ51を選択操作する。第1アプリ51の初回利用(起動)時には、ウォレットアプリ50(アプリ提供サーバ5)は、クライアント装置4のユーザに対して、第1アプリ51の利用登録を求める。具体的には、ウォレットアプリ50は、クライアント装置4のユーザに対して、第1アプリ51(第1サービスを提供するサービスサーバ3-1)へのユーザ情報の提供を求める。この求めに応答して、クライアント装置4の制御装置41は、第1アプリ51(第1サービスを提供するサービスサーバ3-1)へのユーザ情報の提供を求める同意画面を、表示装置46に表示させる。クライアント装置4のユーザは、入力装置45を操作して、第1アプリ51にユーザ情報を提供することに同意する。
【0090】
クライアント装置4の制御装置41は、通信装置44を介して、ユーザがユーザ情報の提供に同意したことを示す情報(同意を示す情報)を、アプリ提供サーバ5に送信する。アプリ提供サーバ5は、同意を示す情報を管理サーバ2に送信する。
【0091】
管理サーバ2は、同意を示す情報を受けると、メインチェーンの同意情報を更新する。そして、更新された同意情報に基づいて、サブチェーンにおいて、ユーザ情報をサービスサーバ3-1に送信する。
【0092】
具体的には、同意を示す情報を受けると、制御装置21のオフチェーンノード200Cが機能し、オフチェーンノード200Cからメインチェーンノード200Aに、同意を示す情報を受けたことが通知される。
【0093】
上記通知を受けると、メインチェーンノード200Aは、同意情報を更新する。具体的には、同意先を示す情報に、サービスサーバ3-1のID(たとえば、サービスサーバ3-1の公開鍵のハッシュ値あるいはアドレス)を追加した同意情報を含むトランザクションデータを生成する。すなわち、この同意情報に含まれる同意先を示す情報には、管理サーバ2のIDと、サービスサーバ3-1のIDとが含まれる。メインチェーンノード200Aは、生成されたトランザクションデータをネットワークNWにブロードキャストする。当該トランザクションデータが、メインチェーンノード200A、300Aに処理されることにより、分散型台帳271,371が更新される。これにより、メインチェーンに格納された同意情報が更新される。
【0094】
サブチェーンノード200Bは、分散型台帳271(メインチェーン)の同意情報が更新されると、更新された同意情報の内容を確認する。この確認により、サブチェーンノード200Bは、サービスサーバ3-1にユーザ情報を得る権限が生じたことを認識する。上述のとおり、同意情報の対象となるデータを示す情報(Hash)には、ハッシュ値が格納されている。本実施の形態では、分散型台帳272にユーザ情報に加えてデータハッシュが格納されているので、上記確認を行なう場合に、サブチェーンノード200Bは、ユーザ情報を再度ハッシュ化することなく、サービスサーバ3-1のサブチェーンノード300Bに共有すべきユーザ情報を特定することができる。
【0095】
サブチェーンノード200Bは、ユーザ情報およびデータハッシュを格納したトランザクションデータを生成する。このトランザクションデータの送信先には、サービスサーバ3-1のサブチェーンノード300B-1が指定される。
【0096】
なお、サブチェーンノード200Bは、サービスサーバ3-1のサブチェーンノード300B-1に送信するトランザクションデータを生成すると、当該トランザクションデータのハッシュ値およびトランザクションデータのアウトプットのインデックスを含むデータをノータリノード65に送る。これにより、トランザクションデータにファイナリティが与えられる。
【0097】
サービスサーバ3-1のサブチェーンノード300B-1は、管理サーバ2のサブチェーンノード200Bから受けたトランザクションデータを処理し、ユーザ情報を分散型台帳372-1に格納する。これにより、ユーザ情報が同期(共有)されて、サブチェーンが更新される。なお、この際に、サービスサーバ3-2~3-4のサブチェーンノード300B-2~300B-4にはトランザクションデータは送信されない。
図5に示されるように、DataAがサービスサーバ3-1の分散型台帳372-1にも格納され、DataAが管理サーバ2の分散型台帳272とサービスサーバ3-1の分散型台帳372-1とに保持された状態となる。
【0098】
サービスサーバ3-1のメインチェーンノード300A-1は、分散型台帳372-1にユーザ情報が同期されると、メインチェーン(分散型台帳371-1)を参照して、同期されたユーザ情報のハッシュ値(データハッシュ)と、KYC結果とを確認する。具体的には、メインチェーンノード300A-1は、同期されたユーザ情報のハッシュ値を分散型台帳371-1に照会させる。ユーザ情報のハッシュ値は、メインチェーンノード300A-1により生成されてもよいし、分散型台帳372-1に格納されたデータハッシュを用いてもよい。上記の照会により、メインチェーンノード300A-1は、データハッシュが紐付くユーザIDを特定する。そして、メインチェーンノード300A-1は、特定されたユーザIDに紐付く同意情報を参照することにより、分散型台帳372-1に同期されたユーザ情報が、管理サーバ2およびサービスサーバ3-1への提供が許可されたものであることを確認することができる。これによって、メインチェーンノード300A-1は、自身にユーザ情報が提供されたことが適切であることを認識することができる。また、メインチェーンノード300A-1は、特定されたユーザIDに紐付くKYC結果を参照することにより、当該ユーザIDのユーザに対して、管理サーバ2(管理企業)がKYC済みであることを確認することができる。
【0099】
メインチェーンノード300A-1によってKYC済みであることが確認されると、オフチェーンノード300C-1は、第1サービスの利用登録を完了させる。これにより、クライアント装置4のユーザは、第1アプリ51を使って、第1サービスを利用することが可能となる。
【0100】
なお、上記においては、第1アプリ51の利用登録を例にして説明したが、第2アプリ52~第4アプリ54の利用登録についても同様である。
【0101】
<<ミニアプリの退会登録>>
図8は、第1アプリ51の退会登録時に実行される処理における情報の流れを模式的に示した図である。
【0102】
図5および
図8を参照して、クライアント装置4のユーザは、ウォレットアプリ50から第1アプリ(第1サービス)の退会申し込みを行なう。退会申し込みは、第1アプリ51(サービスサーバ3-1)からユーザ情報を削除する要求(削除依頼)を含む。クライアント装置4のユーザは、たとえば、第1アプリ51の利用時に表示装置46に表示された退会ボタンを選択することにより、退会申し込みを行なうことができる。退会申し込みは、クライアント装置4の通信装置44を介して、アプリ提供サーバ5に送信される。
【0103】
アプリ提供サーバ5は、クライアント装置4への第1アプリ51の提供の停止を決定する。そして、アプリ提供サーバ5は、提供停止を示す通知を管理サーバ2に送信する。
【0104】
管理サーバ2は、提供停止を示す通知を受けると、メインチェーン(分散型台帳271)の同意情報を更新する。具体的には、アプリ提供サーバ5から提供停止を示す通知を受けると、オフチェーンノード200Cは、当該通知をメインチェーンノード200Aに出力する。メインチェーンノード200Aは、同意情報に含まれる同意先を示す情報(To)から、サービスサーバ3-1のIDを削除し、この同意情報を含むトランザクションデータを生成する。すなわち、更新された同意情報に含まれる同意先を示す情報には、管理サーバ2のIDのみが含まれている。メインチェーンノード200Aは、生成されたトランザクションデータをネットワークNWにブロードキャストする。このトランザクションデータをメインチェーンノード200Aおよびメインチェーンノード300Aが処理することにより、メインチェーン(分散型台帳271,371)の同意情報が更新される。
【0105】
サービスサーバ3-1のサブチェーンノード300B-1は、同意情報が更新され、自身のユーザ情報を保持する権限が消失したことを認識すると、分散型台帳372-1からユーザ情報(DataA)を削除する。また、ユーザの第1サービスの利用に伴なう、利用情報が分散型台帳372-1に格納されている場合には、サブチェーンノード300B-1は、その利用情報も削除する。
【0106】
なお、オフチェーンノード200Cは、アプリ提供サーバ5から提供停止を示す通知を受けた場合に、通信装置24を介して、サービスサーバ3-1に、その旨を通知してもよい。これにより、サービスサーバ3-1が退会登録の受け付けをしてもよい。
【0107】
<フローチャート>
図9は、ウォレットアプリ50がクライアント装置4にインストールされる際に実行される処理の手順を示すフローチャートである。
図9に示すフローチャートの処理は、クライアント装置4がアプリ提供サーバ5にアクセスした際に開始される。なお、
図9に示すフローチャートの各ステップ(以下ステップを「S」と略す)は、クライアント装置4の制御装置41、アプリ提供サーバ5および管理サーバ2の制御装置21によるソフトウェア処理によって実現される場合について説明するが、その一部あるいは全部が制御装置41、アプリ提供サーバ5および制御装置21内に作製されたハードウェア(電子回路)によって実現されてもよい。
【0108】
S10において、クライアント装置4に対して、ウォレットアプリ50をインストールするユーザ操作が行なわれる。当該ユーザ操作に応答して、クライアント装置4の制御装置41は、アプリ提供サーバ5からウォレットアプリ50をインストールする。
【0109】
S12において、クライアント装置4の制御装置41は、ウォレットアプリ50(アプリ提供サーバ5)からアカウント登録を求められる。クライアント装置4の制御装置41は、アカウント登録の求めに応じて、秘密鍵および公開鍵を生成する。制御装置41は、生成された公開鍵を認証局(図示せず)に送信して、認証を受けてもよい。
【0110】
S14において、クライアント装置4の制御装置41は、ウォレットアプリ50からユーザ情報の登録を求められる。クライアント装置4の制御装置41は、ユーザ情報の登録の求めに応じて、表示装置46の表示画面にユーザ情報の入力欄を表示させる。ユーザによって入力欄に情報が入力されると、クライアント装置4の制御装置41は、入力された情報をユーザ情報として登録する。
【0111】
S16において、クライアント装置4の制御装置41は、ユーザ情報および公開鍵の情報をアプリ提供サーバ5に送信する。
【0112】
S20において、アプリ提供サーバ5は、クライアント装置4からユーザ情報および公開鍵の情報を取得する。
【0113】
S22において、アプリ提供サーバ5は、KYCサービスに連携するために、S20において取得したユーザ情報と、KYCの実施要求とを、KYCサービスを実施する管理サーバ2へ送信する。また、アプリ提供サーバ5は、クライアント装置4の公開鍵の情報も管理サーバ2へ送信する。
【0114】
S30において、管理サーバ2の制御装置21は、KYCの実施要求に応答して、KYCサービスを実施する。KYCサービスの実施には、管理サーバ2の管理者や管理サーバ2を運営する企業の従業員等の作業が介在してもよい。管理サーバ2の制御装置21は、KYCを実施した結果、本人確認に問題がないと判断すると、処理をS32に進める。
【0115】
S32において、管理サーバ2の制御装置21は、サブチェーンを更新するためのトランザクションデータを生成する。管理サーバ2の制御装置21は、ユーザ情報およびデータハッシュをトランザクションデータに含める。また、管理サーバ2の制御装置21は、トランザクションデータの送信先に、自身(サブチェーンノード200B)を指定する。管理サーバ2の制御装置21は、トランザクションデータを処理し、ユーザ情報およびデータハッシュを分散型台帳272に格納して、サブチェーンを更新する。
【0116】
S34およびS36において、管理サーバ2の制御装置21は、メインチェーンを更新するためのトランザクションデータを生成する。管理サーバ2の制御装置21は、データハッシュ、同意情報およびKYC確認結果を示す情報をトランザクションデータに含める。また、管理サーバ2の制御装置21は、トランザクションデータの送信先に、メインチェーンを形成する全ノード(メインチェーンノード200Aおよびメインチェーンノード300A-1~300A-4)を指定する。また、管理サーバ2の制御装置21は、トランザクションデータの所有者を示す情報として、クライアント装置4の公開鍵のハッシュ値を含める。このトランザクションデータが、ネットワークNWにブロードキャストされ、管理サーバ2のメインチェーンノード200Aおよびサービスサーバ3のメインチェーンノード300Aに処理されることにより、ユーザIDがメインチェーン上に発行されるとともに、ユーザIDに紐付く形式で、データハッシュ、同意情報およびKYC確認結果を示す情報がメインチェーン(分散型台帳271および分散型台帳371)に格納される。
【0117】
図10は、第1アプリ51の利用登録が行なわれる際に実行される処理の手順を示すフローチャートである。
図10に示すフローチャートの処理は、ウォレットアプリ50内の第1アプリ51を初回起動させるユーザ操作によって開始される。なお、
図10および後述の
図11に示すフローチャートの各ステップは、クライアント装置4の制御装置41、アプリ提供サーバ5、管理サーバ2の制御装置21およびサービスサーバ3-1の制御装置31-1によるソフトウェア処理によって実現される場合について説明するが、その一部あるいは全部が制御装置41、アプリ提供サーバ5、制御装置21および制御装置31-1内に作製されたハードウェア(電子回路)によって実現されてもよい。
【0118】
S40において、クライアント装置4の制御装置41は、ユーザ操作に応答して、ウォレットアプリ50内で第1アプリ51を初回起動させる。
【0119】
S50において、アプリ提供サーバ5(ウォレットアプリ50)は、第1アプリ51(第1サービス)を提供するサービスサーバ3-1にユーザ情報を提供することへの同意を求める確認画面を表示させる指示をクライアント装置4に返す。ここでいうユーザ情報は、ウォレットアプリ50のインストール時に管理サーバ2に提供されたユーザ情報(たとえば、
図5の例ではDataA)である。
【0120】
S42において、クライアント装置4の制御装置41は、アプリ提供サーバ5(ウォレットアプリ50)からの指示に従って確認画面を表示させる。
【0121】
S44において、クライアント装置4のユーザが確認画面に対して同意を示す同意操作を行なう。クライアント装置4の制御装置41は、同意を示す情報をアプリ提供サーバ5に送信する。
【0122】
S52において、アプリ提供サーバ5は、同意を示す情報を取得したことを確認すると、同意を示す情報を管理サーバ2に送信する。
【0123】
S60において、管理サーバ2の制御装置21は、同意を示す情報を受けると、メインチェーンの同意情報を更新する。具体的には、管理サーバ2の制御装置21(メインチェーンノード200A)は、同意先を示す情報に、サービスサーバ3-1のIDを追加した同意情報を含むトランザクションデータを生成する。管理サーバ2の制御装置21は、生成されたトランザクションデータをネットワークNWにブロードキャストする。
【0124】
S70において、サービスサーバ3-1の制御装置31-1(メインチェーンノード300A-1)は、管理サーバ2から取得したトランザクションデータを処理する。これにより、分散型台帳371-1が更新される。同様に、S60で送信されたトランザクションデータが、サービスサーバ3-2~3-4(メインチェーンノード300A-2~300A-4)で処理されることにより、分散型台帳371-2~371-4が更新される。これにより、メインチェーンに格納された同意情報が更新される。更新された同意情報は、クライアント装置4のユーザが、管理サーバ2(管理企業)およびサービスサーバ3-1(A企業)にユーザ情報を提供することに同意していることを示す。
【0125】
S62において、管理サーバ2の制御装置21は、メインチェーン(分散型台帳271)の同意情報の更新によって、サービスサーバ3-1にユーザ情報を得る権限が生じたことを認識する。管理サーバ2の制御装置21(サブチェーンノード200B)は、ユーザ情報およびデータハッシュを格納したトランザクションデータを生成する。管理サーバ2の制御装置21(サブチェーンノード200B)は、このトランザクションデータの送信先に、サービスサーバ3-1のサブチェーンノード300B-1を指定する。なお、管理サーバ2の制御装置21(サブチェーンノード200B)は、当該トランザクションデータのハッシュ値およびトランザクションデータのアウトプットのインデックスを含むデータをノータリノード65にも送信する。
【0126】
S72において、サービスサーバ3-1の制御装置31-1(サブチェーンノード300B-1)は、管理サーバ2から受けたトランザクションデータを処理し、ユーザ情報を分散型台帳372-1に格納する。これにより、ユーザ情報が同期されて、サブチェーンが更新される。
【0127】
S74において、サービスサーバ3-1の制御装置31-1(メインチェーンノード300A-1)は、分散型台帳372-1にユーザ情報が同期されると、メインチェーン(分散型台帳371-1)を参照して、同期されたユーザ情報のハッシュ値(データハッシュ)と、KYC結果とを確認する。具体的には、サービスサーバ3-1の制御装置31-1は、同期されたユーザ情報のハッシュ値を分散型台帳371-1に照会させる。照会により、サービスサーバ3-1の制御装置31-1は、データハッシュが紐付くユーザIDを特定する。そして、サービスサーバ3-1の制御装置31-1は、特定されたユーザIDに紐付く同意情報を参照することにより、分散型台帳372-1に同期されたユーザ情報が、管理サーバ2およびサービスサーバ3-1への提供が許可されたものであることを確認することができる。これによって、サービスサーバ3-1の制御装置31-1は、自身にユーザ情報が提供されたことが適切であることを認識することができる。また、サービスサーバ3-1の制御装置31-1は、特定されたユーザIDに紐付くKYC結果を参照することにより、当該ユーザIDのユーザに対して、管理サーバ2(管理企業)がKYC済みであることを確認することができる。
【0128】
サービスサーバ3-1の制御装置31-1は、KYC済みであること確認すると、第1サービスの利用登録を完了させる。
【0129】
図11は、第1アプリ51(第1サービス)の退会登録が行なわれる際に実行される処理の手順を示すフローチャートである。
図11に示すフローチャートの処理は、第1アプリ51の退会を申請するユーザ操作によって開始される。
【0130】
S80において、クライアント装置4の制御装置41は、ユーザ操作に応答して、第1アプリ51(第1サービス)の退会登録の申請をアプリ提供サーバ5に送信する。
【0131】
S90において、アプリ提供サーバ5は、クライアント装置4から退会登録の申請を受信すると、退会登録の申請を受け付ける。
【0132】
S92において、アプリ提供サーバ5は、クライアント装置4への第1アプリ51の提供の停止を決定する。そして、アプリ提供サーバ5は、提供停止を示す通知を管理サーバ2に送信する。
【0133】
S100において、管理サーバ2の制御装置21(メインチェーンノード200A)は、提供停止を示す通知を受けると、メインチェーン(分散型台帳271)の同意情報を更新する。具体的には、管理サーバ2の制御装置21は、同意情報に含まれる同意先を示す情報(To)から、サービスサーバ3-1のIDを削除し、この同意情報を含むトランザクションデータを生成し、ネットワークNWにブロードキャストする。
【0134】
S110において、サービスサーバ3-1の制御装置31-1(メインチェーンノード300A-1)は、管理サーバ2から取得したトランザクションデータを処理する。これにより、分散型台帳371-1が更新される。同様に、S110で送信されたトランザクションデータが、サービスサーバ3-2~3-4(メインチェーンノード300A-2~300A-4)で処理されることにより、分散型台帳371-2~371-4が更新される。これにより、メインチェーンに格納された同意情報が更新される。更新された同意情報は、クライアント装置4のユーザが、管理サーバ2(管理企業)のみにユーザ情報の提供を許可していることを示す。
【0135】
S112において、サービスサーバ3-1の制御装置31-1(サブチェーンノード300B-1)は、同意情報が更新され、自身のユーザ情報を保持する権限が消失したことを認識すると、分散型台帳372-1からユーザ情報を削除する。また、ユーザの第1サービスの利用に伴なう、利用情報が分散型台帳372-1に格納されている場合には、サービスサーバ3-1の制御装置31-1は、その利用情報も削除する。
【0136】
S114において、サービスサーバ3-1の制御装置31-1は、ユーザの退会登録を完了させる。
【0137】
なお、S102において、管理サーバ2の制御装置21は、サービスサーバ3-1に、アプリ提供サーバ5から提供停止を示す通知を受けたことを通知してもよい。これに応答して、サービスサーバ3-1の制御装置31-1は、退会登録の受け付けをしてもよい。
【0138】
以上のように、本実施の形態に係るデータ共有システム1においては、クライアント装置4にウォレットアプリ50をインストールした際に、管理サーバ2(管理企業)によってKYCサービスが実施される。そのKYC結果を示す情報は、ネットワークNWに参加している全メインチェーンノードにデータが共有されるメインチェーンに格納される。これにより、KYC結果を示す情報は、ネットワークNWに参加している全メインチェーンノードに監視されるので、耐改ざん性が高められる。
【0139】
また、ウォレットアプリ50のミニアプリ(たとえば、第1アプリ51)の利用登録が行なわれる際には、ミニアプリを提供するサービスサーバ3(企業)は、ユーザに対するKYCを実施することなく、メインチェーンを参照して、管理サーバ2により実施されたKYC結果を確認する。この確認処理をもって、サービスサーバ3(企業)は、KYCを終える。このように、管理サーバ2によるKYC結果を参照することにより、KYCの実施を省略することができる。
【0140】
ミニアプリの利用申請を受けたサービスサーバ3(企業)は、サービスを提供するためにユーザ情報を得る必要がある。本実施の形態に係るデータ共有システム1では、ユーザの同意に基づいて、P2P型のサブチェーンを用いて、管理サーバ2からユーザ情報を得る権限を得たサービスサーバ3へユーザ情報が同期される。ブロードキャスト型のメインチェーンで同意情報を管理することにより、同意情報が全メインチェーンにより監視されるので、同意情報の耐改ざん性を高めることができる。そして、メインチェーンで共有された同意情報に基づいて、P2P型のサブチェーンにより、特定のサブチェーンノード間のみでのデータの同期を可能にすることができる。このように、ブロードキャスト型のメインチェーンに、P2P型のサブチェーンを組み合わせることにより、同意情報の耐改ざん性を高めつつ、同意情報に基づいた特定のサブチェーンノード間のみでのデータの同期を可能にすることができる。
【0141】
さらに、ブロードキャスト型のメインチェーンに、P2P型のサブチェーンを組み合わせることにより、同意情報の耐改ざん性を高めつつ、メインチェーンで共有された同意情報に基づいて、特定のサブチェーンノードに同期されたデータのみを削除することを可能にすることができる。
【0142】
[変形例1]
実施の形態では、たとえば
図6に示されたように、KYC結果等をメインチェーンに格納するタイミングで
メインチェーンにユーザIDが発行された。しかしながら、メインチェーンにユーザIDが発行されるタイミングは異なるタイミングであってもよい。
【0143】
図12は、変形例における、クライアント装置4へウォレットアプリ50をインストールした際に実行される処理における情報の流れを模式的に示した図である。
【0144】
図12を参照して、クライアント装置4にウォレットアプリ50がインストールされると、実施の形態と同様に、ウォレットアプリ50(アプリ提供サーバ5)は、クライアント装置4にアカウント登録を求める。クライアント装置4の制御装置41は、アカウント登録の求めに応じて、秘密鍵および公開鍵を生成する。制御装置21は、生成された公開鍵を認証局(図示せず)に送信して、認証を受けてもよい。制御装置41は、認証を受けた公開鍵に対応する秘密鍵を記憶装置47に記憶させる。
【0145】
クライアント装置4の制御装置41は、認証を受けた公開鍵、および、公開鍵のハッシュ値をアプリ提供サーバ5に送信する。
【0146】
アプリ提供サーバ5は、公開鍵、および、公開鍵のハッシュ値をIDとして、ユーザのID登録を行なう。
【0147】
アプリ提供サーバ5は、ユーザのID登録が完了すると、公開鍵のハッシュ値と、ID発行要求とを管理サーバ2に送信する。
【0148】
管理サーバ2は、公開鍵のハッシュ値およびID発行要求を受けると、当該ハッシュ値をIDとして、メインチェーンにユーザIDを発行する。具体的には、アプリ提供サーバ5から公開鍵のハッシュ値およびID発行要求を受けると、オフチェーンノード200Cが機能し、オフチェーンノード200Cからメインチェーンノード200Aに公開鍵のハッシュ値が出力される。
【0149】
メインチェーンノード200Aは、ユーザIDを発行するトランザクションデータを生成し、生成されたトランザクションデータをネットワークNWにブロードキャストする。このトランザクションデータが処理されることにより、メインチェーンにユーザIDが発行される。
【0150】
ユーザ情報の登録以降の処理は、実施の形態と同様である。KYCサービスの実施後、サブチェーン(分散型台帳272)にユーザ情報が格納されると、メインチェーンノード200Aは、データハッシュ、同意情報およびKYC確認結果を示す情報を含むトランザクションデータを生成する。このトランザクションデータには、所有者を示す情報には、ユーザIDが指定される。このトランザクションデータが処理されることにより、ユーザIDに紐付く形式で、データハッシュ、同意情報およびKYC確認結果を示す情報がメインチェーン(分散型台帳271および分散型台帳371)に格納される。
【0151】
上記のようなタイミングでメインチェーンにユーザIDが発行される構成を採用しても、実施の形態と同様の効果を奏することができる。
【0152】
[変形例2]
実施の形態および変形例1においては、ウォレットアプリ50のミニアプリとして、第1アプリ51~第4アプリ54が提供される例について説明した。しかしながら、第1アプリ51~第4アプリ54は、ミニアプリではなく、単体のアプリケーションとして、アプリ提供サーバ5に提供されてもよい。さらに、この場合には、A企業~D企業(サービスサーバ3-1~3-4)は、第1アプリ51~第4アプリ54を提供するための、アプリ提供サーバ5に相当するサーバをそれぞれ設けてもよい。
【0153】
上記のような構成であっても、各アプリケーション(第1アプリ51~第4アプリ54)がクライアント装置4にインストールされた場合に、各サービスサーバ3(サービスサーバ3-1~3-4)は、ユーザIDに基づいて、メインチェーンに格納された管理サーバ2によるKYC結果を参照することで、KYCの実施を省略することができる。クライアント装置4が、ウォレットアプリ50および第1アプリ51~第4アプリ54のアカウント登録に用いる公開鍵を共通化することによって、メインチェーンに発行されるユーザID(公開鍵のハッシュ値)が共通化されるので、ユーザIDに基づいたKYC結果の参照が可能となる。したがって、上記のような構成であっても、実施の形態と同様の効果を奏することができる。
【0154】
[変形例3]
実施の形態および変形例1,2においては、管理サーバ2が、ネットワークNWを管理する機能と、KYCサービスを実施する機能とを備えた。しかしながら、ネットワークNWを管理する機能と、KYCサービスを実施する機能とは、異なるサーバにもたせてもよい。この場合には、ウォレットアプリ50は、KYCサービスを提供するサービスサーバによって提供される。
【0155】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0156】
1 データ共有システム、2 管理サーバ、3 サービスサーバ、4 クライアント装置、5 アプリ提供サーバ、21 制御装置、22 ROM、23 RAM、24 通信装置、25 入力装置、26 表示装置、27 記憶装置、29 バス、31 制御装置、32 ROM、33 RAM、34 通信装置、35 入力装置、36 表示装置、37 記憶装置、39 バス、41 制御装置、42 ROM、43 RAM、44 通信装置、45 入力装置、46 表示装置、47 記憶装置、49 バス、50 ウォレットアプリ、51 第1アプリ、52 第2アプリ、53 第3アプリ、54 第4アプリ、60 プラットフォームプロバイダ、61 ドアマンノード、63 ネットワークマップノード、65 ノータリノード、200 ノード、200A メインチェーンノード、200B サブチェーンノード、200C オフチェーンノード、270 分散型台帳セット、271,272 分散型台帳、275 秘密鍵、277 複数の公開鍵、300 ノード、300A メインチェーンノード、300B サブチェーンノード、300C オフチェーンノード、370 分散型台帳セット、371,372 分散型台帳、375 秘密鍵、377 複数の公開鍵、NW ネットワーク。