(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-21
(45)【発行日】2022-10-31
(54)【発明の名称】電子取引システム、電子取引システムのデータ秘匿化方法
(51)【国際特許分類】
G06F 21/62 20130101AFI20221024BHJP
G06F 21/64 20130101ALI20221024BHJP
G06Q 30/06 20120101ALI20221024BHJP
【FI】
G06F21/62
G06F21/64
G06Q30/06 300
(21)【出願番号】P 2020185357
(22)【出願日】2020-11-05
【審査請求日】2021-09-07
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】福中 勝博
【審査官】平井 誠
(56)【参考文献】
【文献】特開2019-197597(JP,A)
【文献】米国特許出願公開第2019/0354967(US,A1)
【文献】石田 達郎 大橋 盛徳 近田 昌義 藤村 滋 中平 篤,ブロックチェーンとIPFSを組み合わせたデータ連携システムの実装と評価,マルチメディア,分散,協調とモバイル(DICOMO2020)シンポジウム論文集,Vol.2020 No.1,日本,一般社団法人情報処理学会,2020年06月17日,19~22
【文献】Mathis Steichen et al.,Blockchain-Based, Decentralized Access Control for IPFS,2018 IEEE Confs on Internet of Things, Green Computing and Communications, Cyber, Physical and Social Computing, Smart Data, Blockchain, Computer and Information Technology, Congress on Cybermatics,2018年07月30日,pages 1499-1506
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/64
G06Q 30/06
(57)【特許請求の範囲】
【請求項1】
取引対象の電子取引を管理するブロックチェーンを、複数のノードで管理する電子取引システムであって、
前記複数のノードのそれぞれは、
取引対象の電子取引の要求や電子取引の参照要求を行うクライアント部と、
契約の条件確認や履行までを自動的に実行させるスマートコントラクト管理部と、
ブロックチェーンの分散台帳を管理するブロックチェーン管理部と、
ブロックチェーンの分散台帳を格納する第1の記憶部と、
ブロックチェーンを構成する特定のノードを除く他のノードに対し、秘匿される取引対象の内容を実データとして格納する第2の記憶部と、を有し、
前記第1の記憶部に格納される分散台帳は、ブロックチェーンを管理する前記複数のノードの全てで格納されて、共有され、
前記複数のノードの第1のノードは、第1の取引対象を管理する第2のノードに対し、電子取引要求を行い、
前記第2のノードのスマートコントラクト管理部は、前記第1のノードに対し、前記第2のノードの第2の記憶部に格納される前記第1の取引対象の実データに対するアクセスを可能とするアクセス権を設定し、前記アクセス権を前記分散台帳に格納する、ことを特徴とする電子取引システム。
【請求項2】
請求項1に記載の電子取引システムにおいて、
前記第1の取引対象の実データは、前記ブロックチェーンを構成する複数のノードの内、前記第1の取引対象の電子取引を行う前記第1のノード及び前記第2のノードの第2の記憶部に記憶され、前記ブロックチェーンを構成する他のノードの第2の記憶部には格納されないことを特徴とする電子取引システム。
【請求項3】
請求項1に記載の電子取引システムにおいて、
前記第2のノードのスマートコントラクト管理部は、
前記複数のノードの第3のノードのクライアント部から、前記第1の取引対象に関する電子取引要求を受領すると、前記第1の取引対象が前記第2のノードの利用者の開発製品か否か判断し、
開発製品でない場合には、前記第3のノードに対して、前記第2のノードの第2の記憶部に格納された前記第1の取引対象の実データのアクセス権を設定することを特徴とする電子取引システム。
【請求項4】
請求項3に記載の電子取引システムにおいて、
前記第2のノードのスマートコントラクト管理部は、
前記第3のノードのクライアント部からの前記第1の取引対象に関する電子取引要求を受領すると、前記第1の取引対象が前記第2のノードの利用者の開発製品か否か判断し、
開発製品である場合には、さらに、前記第1の取引対象に導入品が含まれているか判断し、
前記第1の取引対象に導入品が含まれている場合、導入品の提供元に対し、前記第2のノードの第2の記憶部に格納された前記第1の取引対象の実データにアクセス権を設定する、ことを特徴とする電子取引システム。
【請求項5】
請求項4に記載の電子取引システムにおいて、
前記第2のノードのスマートコントラクト管理部は、
前記第1の取引対象に導入品が含まれていない場合、前記第2のノードの第2の記憶部に前記第1の取引対象の実データを格納する、ことを特徴とする電子取引システム。
【請求項6】
請求項5に記載の電子取引システムにおいて、
前記第3のノードのクライアント部は、前記第3のノードのスマートコントラクト管理部に対し、前記第1の取引対象の実データの参照要求を行い、
前記第3のノードのスマートコントラクト管理部は、前記第3のノードが前記第1の取引対象の実データに対し、アクセス権を有するか判断し、アクセス権がある場合には、アクセス権を有する他のノードに関する情報を前記第3のノードのクライアント部に返却し、アクセス権がない場合には、アクセス権を有さないことを返却する、ことを特徴とする電子取引システム。
【請求項7】
請求項6に記載の電子取引システムにおいて、
前記第3のノードのクライアント部は、アクセス権を有する他のノードのスマートコントラクト管理部に前記第1の取引対象の実データの参照要求を行い、
前記アクセス権を有する他のノードのスマートコントラクト管理部は、
前記第3のノードが前記第1の取引対象の実データに対しアクセス権を有するか判断し、 アクセス権が無い場合、エラーを前記第3のノードに返却し、
アクセス権がある場合、自ノードの第2の記憶部に前記第1の取引対象の実データが格納されているか判断し、
前記第1の取引対象の実データが格納されている場合には、前記第3のノードに前記第1の取引対象の実データを返却し、格納されていない場合には、前記第3のノードにエラーを返却する、ことを特徴とする電子取引システム。
【請求項8】
請求項2に記載の電子取引システムにおいて、
前記第1の取引対象の実データは、前記第1のノード及び前記第2のノードの第2の記憶部に加え、第3者機関においても格納することを特徴とする電子取引システム。
【請求項9】
取引対象の電子取引を管理するブロックチェーンを、複数のノードで管理する電子取引システムのデータ秘匿化方法であって、
前記複数のノードのそれぞれは、取引対象の電子取引の要求や電子取引の参照要求を行うクライアント部と、契約の条件確認や履行までを自動的に実行させるスマートコントラクト管理部と、ブロックチェーンの分散台帳を管理するブロックチェーン管理部と、ブロックチェーンの分散台帳を格納する第1の記憶部と、ブロックチェーンを構成する特定のノードを除く他のノードに対し、秘匿される取引対象の内容を実データとして格納する第2の記憶部と、を有し、
前記第1の記憶部に格納される分散台帳は、ブロックチェーンを管理する前記複数のノードの全てで格納されて、共有され、
前記複数のノードの第1のノードは、
第1の取引対象を管理する第2のノードに対し、電子取引要求を行い、
電子取引の要求を受けた前記第2のノードのスマートコントラクト管理部は、
前記第1のノードに対し、前記第2のノードの第2の記憶部に格納される前記第1の取引対象の実データに対するアクセスを可能とするアクセス権を設定し、前記アクセス権を前記分散台帳に格納することを特徴とする電子取引システムのデータ秘匿化方法。
【請求項10】
請求項9に記載の電子取引システムのデータ秘匿化方法において、
前記複数のノードの第1のノードのスマートコントラクト管理部は、
前記複数のノードの第3のノードから、前記第1の取引対象に関する電子取引要求を受領すると、前記第1の取引対象が前記第2のノードの利用者の開発製品か否か判断し、
開発製品でない場合には、前記第3のノードに対して、前記第2のノードの第2の記憶部に格納された前記第1の取引対象の実データのアクセス権を設定し、
前記第3のノードから、前記第1の取引対象に関する電子取引要求を受領すると、前記第1の取引対象が前記第2のノードの利用者の開発製品か否か判断し、
開発製品である場合には、さらに、前記第1の取引対象に導入品が含まれているか判断し、
前記第1の取引対象に導入品が含まれている場合、導入品の提供元に対し、前記第2のノードの第2の記憶部に格納された前記第1の取引対象の実データにアクセス権を設定する、ことを特徴とすることを特徴とする電子取引システムのデータ秘匿化方法。
【請求項11】
請求項9に記載の電子取引システムのデータ秘匿化方法において、
前記第2のノードのスマートコントラクト管理部は、
前記第1の取引対象に導入品が含まれていない場合、前記第2のノードの第2の記憶部に前記第1の取引対象の実データを格納する、ことを特徴とする電子取引システムのデータ秘匿化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多数の参加者で共有される電子取引のデータの一部を秘匿化する技術に関する。
【背景技術】
【0002】
近年、ビットコインを支える技術として「ブロックチェーン」が注目を集めている。取引のデータ(履歴)を「トランザクション」と呼ぶ。「ブロックチェーン」では、このトランザクションを複数まとめたものを「ブロック」と呼び、このブロックが連なるように保存される。
【0003】
「ブロックチェーン」は、ビットコインの売買など、ブロックチェーンに記録されているすべての取引履歴は、だれでも分散台帳から確認できる特徴がある。つまり、ブロックチェーンでは、取引の公正性が、当該ブロックチェーンを構成する各ノードによって保証されるため、取引の内容が基本的に公開されるという性質を有する。
【0004】
そのため、第三者に秘匿したい機微なデータに関する取引及び決済をブロックチェーン上で行うことは困難である。
【0005】
ブロックチェーンで取引データの秘匿性と取引の公正性を保証する技術として特許文献1を挙げることができる。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記特許文献1には、電子データの取引に関するブロックチェーンのノードを構成する電子取引装置が開示されている。この電子取引装置は、取引対象の電子データの送信端末において暗号鍵によって暗号化された前記電子データを含む第1のトランザクションと、前記電子データの受信端末に係る公開鍵によって暗号化された前記暗号鍵を含む第2のトランザクションとを受信する受信部と、前記受信端末から送信される、前記公開鍵に対応する秘密鍵を含む、前記電子データの検証要求を受信すると、前記秘密鍵を用いて前記暗号鍵を復号し、復号された前記暗号鍵を用いて前記電子データを復号して、復号された電子データを検証する検証部と、を有する。このように、特許文献1では、暗号技術を用いて取引されるデータの内容を、ブロックチェーンを構成する全てのノードに公開することなく、取引の公正性を保証している。
【0008】
しかしながら、特許文献1は、トランザクション毎に、暗号鍵、公開鍵、秘密鍵の対応関係(組合せ)を管理する必要があり、トランザクションや取引参加者が増えると暗号鍵、公開鍵、秘密鍵の組合せの数が爆発的増加し、その管理を困難とする。つまり、取引の秘匿性を図るためには、送信端末によって電子データ(取引データ)を暗号化する暗号鍵と、受信端末によって暗号鍵を暗号化する受信端末に係る公開鍵と、受信端末から送信される、受信端末に係る公開鍵に対応する秘密鍵との対応関係を、トランザクション毎に管理する必要がある。
【0009】
また、トランザクションは、取引参加者の増加に伴い増加することが考えられるため、暗号鍵、公開鍵、秘密鍵の対応関係の管理は、ますます困難となることが考えられる。
【0010】
さらに、暗号鍵により暗号化された取引データがブロックチェーンにトランザクションとして転送され、各ノードの記憶されるため、将来の暗号解読技術が向上すると、各ノードで取引データの中身を見られる恐れがある。
【0011】
そこで、本発明の目的は、ブロックチェーンを用いた取引データの秘匿性を、少ない情報で管理できる電子取引システム、及び電子取引システムのデータ秘匿化方法を提供することにある。
【0012】
また、本発明の他の目的は、取引データを解読される恐れがなく、取引データを格納するための記憶容量を低減可能な電子取引システム、及び電子取引システムのデータ秘匿化方法を提供することにある。
【課題を解決するための手段】
【0013】
上記目的を達成するため、本発明の電子取引システムの一態様は、取引対象の電子取引を管理するブロックチェーンを、複数のノードで管理する電子取引システムであって、複数のノードのそれぞれは、取引対象の電子取引の要求や電子取引の参照要求を行うクライアント部と、契約の条件確認や履行までを自動的に実行させるスマートコントラクト管理部と、ブロックチェーンの分散台帳を管理するブロックチェーン管理部と、ブロックチェーンの分散台帳を格納する第1の記憶部と、ブロックチェーンを構成する特定のノードを除く他のノードに対し、秘匿される取引対象の内容を実データとして格納する第2の記憶部と、を有する。第1の記憶部に格納される分散台帳は、ブロックチェーンを管理する前記複数のノードの全てで格納されて、共有される。複数のノードの第1のノードのクライアント部は、第1の取引対象を管理する第2のノードのスマートコントラクト管理部に対し、電子取引要求を行う。第2のノードのスマートコントラクト管理部は、第1のノードに対し、第2のノードの第2の記憶部に格納される第1の取引対象の実データに対するアクセスを可能とするアクセス権を設定し、アクセス権を前記分散台帳に格納する。
【0014】
また、本発明の電子取引システムのデータ秘匿化方法の一の態様は、取引対象の電子取引を管理するブロックチェーンを、複数のノードで管理する電子取引システムのデータ秘匿化方法であって、複数のノードのそれぞれは、取引対象の電子取引の要求や電子取引の参照要求を行うクライアント部と、契約の条件確認や履行までを自動的に実行させるスマートコントラクト管理部と、ブロックチェーンの分散台帳を管理するブロックチェーン管理部と、ブロックチェーンの分散台帳を格納する第1の記憶部と、ブロックチェーンを構成する特定のノードを除く他のノードに対し、秘匿される取引対象の内容を実データとして格納する第2の記憶部と、を有する。第1の記憶部に格納される分散台帳は、ブロックチェーンを管理する前記複数のノードの全てで格納されて、共有される。複数のノードの第1のノードのクライアント部は、第1の取引対象を管理する第2のノードのスマートコントラクト管理部に対し、電子取引要求を行う。電子取引の要求を受けた前記第2のノードのスマートコントラクト管理部は、前記第1のノードに対し、前記第2のノードの第2の記憶部に格納される前記第1の取引対象の実データに対するアクセスを可能とするアクセス権を設定し、前記アクセス権を前記分散台帳に格納する。
【発明の効果】
【0015】
本発明によれば、ブロックチェーンを用いた取引データの秘匿性を、少ない情報で管理できる。
【0016】
また、本発明によれば、取引データを解読される恐れがなく、取引データを格納するための記憶容量を低減することができる。
【図面の簡単な説明】
【0017】
【
図1】実施の形態における電子取引システムのシステム構成図である。
【
図2】実施の形態における電子取引システムの管理ノードのハードウェアブロック図である。
【
図3】実施の形態におけるメタデータの一例を示した図である。
【
図4】実施の形態における取引内容の内、秘匿したいデータ(実データ)の一例を示した図である。
【
図5】実施の形態における電子取引システムにおける、取引内容に伴うメタデータと実データの一例を示した図である。
【
図6】実施の形態における電子取引システムにおける、取引内容に伴うメタデータと実データの他の例を示した図である。
【
図7】実施の形態における電子取引システムにおける、取引内容に伴うメタデータと実データの他の例を示した図である。
【
図8】実施の形態における取引時にメタデータ更新と実データ格納処理を示すフローチャートである。
【
図9】実施の形態におけるクライアント部から実データの参照要求時の処理を示すフローチャートである。
【
図10】実施の形態におけるクライアント部から実データの参照要求時の処理を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、図面を参照しながら実施の形態を説明する。また、以下の説明では、「テーブル」等の表現にて各種情報を説明することがあるが、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「テーブル」を「管理情報」と呼ぶことができる。
【0019】
また、「プログラム」を主語として処理を説明する場合がある。そのプログラムは、処理部であるプロセッサ、例えば、MP(Micro Processor)やCPU(Central Processing Unit)によって実行されるもので、定められた処理をするものである。尚、プロセッサは、記憶資源(例えばメモリ)及び通信インタフェース装置(例えば、通信ポート)を用いながら処理を行うため、処理の主語がプロセッサ、或いは処理部とされてもよい。プロセッサは、CPUの他に専用ハードウェアを有していてもよい。コンピュータプログラムは、プログラムソースから各コンピュータにインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアなどで提供されるものであってもよい。
【0020】
また、実施例の図及び説明において同一部分には同一符号を付与しているが、本発明が実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
【実施例1】
【0021】
<システム構成>
図1は、本実施形態に係る電子取引システムのシステム構成図の一例を示す図である。
図1において、電子取引システム10は、ユーザが使用し、インターネットなどのネットワーク150を介して電子データの送受信を行う複数の管理ノード101(101a、101b、101c、101z)を有する。
【0022】
図1では、発明の理解を容易にするため、ブロックチェーンの参加者と管理ノードとの関係を一対一で記載している。つまり、参加者A社が管理ノードA101aを、参加者B社が管理ノードB101bを、参加者C社が管理ノードC101cを、参加者Z社が管理ノードZ101zを利用する。そして、A社からB社やC社に部品、商品、サービスなどの取引対象が電子データとして取引(電子取引)される形態を前提としている。但し、本実施例はこれに限るものではなく、広く電子取引を対象とする。また、本明細書では例えば、A社からB社へ取引対象を取引する行為を、管理ノードAと管理ノードBとの間で取引データの送受を行う行為として説明する場合がある。
【0023】
管理ノードは、仮想マシン(VM)やコンテナ技術を利用した仮想化技術を用いて、一つの物理的ノードから複数のノードを作成したり、複数のノードから一つの管理ノードを作成して用いることもできる。
【0024】
各管理ノード101は、処理部がクライアントアプリケーション、スマートコントラクト、ブロックチェーンを構成するソフトウェアを実行することで、クライアント部111、スマートコントラクト管理部112、ブロックチェーン管理部113の各機能を実現する。
【0025】
クライアント部111は電子取引の要求や電子取引の参照要求を行う機能、スマートコントラクト管理部112は契約の条件確認や履行までを自動的に実行させる能、ブロックチェーン管理部113はブロックチェーンの分散台帳を管理する機能を有する。
図1では、クライアントアプリケーションによるクライアント部と示し、スマートコントラクト管理部をスマートコントラクトと、ブロックチェーン管理部をブロックチェーンと省略して記載している。
【0026】
ブロックチェーンは、分散型データベース技術により構築された分散型データベースに、分散型データベースの編集履歴を共有するための編集履歴共有処理機構を加えたものが、ネットワーク150で接続された複数の管理ノード101により構築されたものである。
【0027】
なお、ブロックチェーンは、イーサリアムやビットコイン(Bitcoin)のように、一方向ハッシュ関数の特性に基づいて分散型データベースの編集履歴を共有する処理機構を有するものに限らず、その他の仕組みで編集履歴を共有する処理機構を有することで、分散型データベースを共有するものであっても良い。
【0028】
また、ブロックチェーンは、イーサリアムやビットコインのように、分散型データベースに追加していくデータをブロックとしてひとまとまりにして追加して更新する機構を有するものに限らず、個々のデータを一つずつ逐次的に追加して更新する機構を有するものや、不定期に追加して更新する機構を有するもの、又はその他の形態で追加して更新する機構を有するものであっても良い。
【0029】
さらに、ブロックチェーンは、イーサリアムやビットコインのように、分散型データベース上に記録されるデータを、1本のチェーンのように連続した1次元的なデータとして追加していくものに限らず、データを複数のチェーンに並行して追加していくものやネットワーク状に追加していくもの、2次元平面的に追加していくもの、3次元など多次元的に追加していくもの、又はその他の形態で追加していくものであっても良い。
【0030】
ブロックチェーンは、単一のノードではなく、ブロックチェーンを構成する多数のノードで構成されるネットワークである。このブロックチェーンネットワーク全体に対してトランザクションや分散台帳に格納されるメタデータを送信することを、ブロードキャストと呼ぶ。
【0031】
図2は、実施の形態における電子取引システムの管理ノードのハードウェアブロック図である。
【0032】
管理ノード101の物理的な実体は、
図2に例示するように、SSDなど不揮発性記憶素子からなる記憶装置203、RAMなど揮発性記憶素子からなるメモリ202、記憶装置203に保持されるプログラムをメモリ202に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUなどの処理部201、ユーザからのキー入力や音声入力を受け付ける入力装置204、処理データの表示を行うディスプレイ等の出力装置205、ネットワーク150と接続し他装置との通信処理を担う通信装置(図示せず)、処理部201、メモリ202、記憶装置203、入力装置204、出力装置205、通信装置をそれぞれ接続するバス等の接続装置206と、を有する一般的な計算機である。
【0033】
尚、管理ノード101は、クライアント部111、スマートコントラクト管理部112、ブロックチェーン管理部113は、それぞれソフトウェアにより実現され、処理部201によって実行され、電子取引の要求や電子取引の参照要求を行うクライアント部111、契約の条件確認や履行までを自動的に実行させるスマートコントラクト管理部112、ブロックチェーン管理部113の機能を実現する。尚、図面においては、クライアント部をクライアントアプリ、スマートコントラクト管理部をスマートコントラクト、ブロックチェーン管理部をブロックチェーンと略して記載している。
【0034】
また、管理ノード101の記憶装置203は、ブロックチェーンの分散台帳をメタデータとして格納する第1の記憶部121と、取引データの内、ブロックチェーンを構成する参加者の一部に対して秘匿したい取引データを格納する第2の記憶部122とを有する。この第2の記憶部に格納される秘匿したい取引データ(取引対象の内容)を「実データ」と呼ぶ。
【0035】
ブロックチェーンでは、取引の公正性が、当該ブロックチェーンを構成する各管理ノードによって保障されるため、取引の内容が基本的に公開される性質があるが、本実施例は、取引データの内の一部を実データとして、ブロックチェーンの参加者の一部の参加者に秘匿する技術を提供する。実データが秘匿されるブロックチェーンの参加者の一部の参加者は、例えば、実際に取引対象の取引を行う参加者以外の参加者である。
【0036】
<管理情報>
図3は、実施の形態におけるメタデータの一例を示した図である。メタデータ300は、ブロックチェーンの分散台帳として格納され、ブロックチェーンを構成する全ての管理ノードで共有される。このメタデータ300は、各管理ノード101の記憶装置120の第1の記憶部121に格納される。
【0037】
ID301は、例えば取引される商品を識別する情報で、当該商品の開発者を特定することができる情報である。
実データの保持者302は、ブロックチェーンを構成する他の参加者に対し秘匿すべき実データを第2の記憶部122に格納する管理ノード(参加者)を示す情報である。
実データのハッシュ値303は、
図4に示すID301に対応して管理される実データのハッシュ値である。
実データへのアクセス権304は、第2の記憶部122に格納される実データに対するアクセス権を有する管理ノード(参加者)を表す情報である。
登録日時305は、ID301のエントリ302-308が登録された日時を示す情報である。
更新日時306は、ID301のエントリ303、304、307、308の何れかが更新された日時を示す情報である。
所有者307は、ID301で識別される商品の所有者を示す情報である。その他の情報308もメタデータ300に含ませることができる。
【0038】
メタデータ300について、例えば、行で表されたエントリ30は、商品A-1を加工せず、B社がZ社へ譲渡する取引により、実データへのアクセス権304にZ社が追加され、更新日時306が更新され、商品A-1の所有者307がB社からZ社に移ったことを示している。
【0039】
また、メタデータ300の行で表されたエントリ31、32は、商品A-2を加工して、生産した商品C-1を、C社がZ社へ譲渡する取引により、実データへのアクセス権304にZ社が追加され、更新日時306が更新され、商品A-2の所有者307がC社からZ社に移ったことを示している。
【0040】
このように、メタデータ300の各行のエントリは、ID301により識別される商品について、取引が確定した際に追加される。これは、ブロックチェーンにおいて、トランザクションが確定し、当該トランザクションが、分散台帳に記憶されているブロックチェーンに追加されることに対応する。
【0041】
尚、
図3のIDは、商品を識別する情報として説明したが、これに限らず、サービスや部品等、取引対象を識別する情報である。
【0042】
図4は、実施の形態における取引内容の内、秘匿したい取引データ(実データ)の一例を示した図である。実データ400は、例えば、ID401、導入品ID402、商品名403、数量404、保証期間405、その他のデータ406を対応させて管理する。
【0043】
ID401は、
図3のID301と同様、例えば取引される商品を識別する情報で、当該商品の開発者を特定することができる情報である。
【0044】
導入品ID402は、例えば、商品C-1が導入品A-2を含む場合に、導入品A-2を識別する情報を格納する。商品名403は商品や部品の名前、数量404は商品の数、保証期間405は商品や部品の保証期間の情報を格納する。
図4で示した実データ400は例示であって、実データはブロックチェーンを構成する他の参加者に対し秘匿にしたい情報である。
【0045】
図3に示したメタデータを格納する第1の記憶部121は、
図4に示した秘匿したい実データを格納する第2の記憶部122とは、物理的に異なる記憶装置120としても良いし、記憶装置120の記憶領域を論理的に分割して構成されても良いし、ファイルシステムのように異なるディレクトリに格納されるように構成されても良い。第2の記憶部122は、よりセキュアなエリアであることが望ましい。
【0046】
<取引内容に伴うメタデータと実データ更新>
図5は、実施の形態の電子取引システムにおける、取引内容に伴うメタデータと実データの一例を示した図である。具体的には、A社(管理ノードAを利用する参加者)が生産した商品A-1をB社(管理ノードBを利用する参加者)へ、商品A-2をC社(管理ノードCを利用する参加者)へ譲渡した時点のメタデータと実データを示した図である。
【0047】
この場合、管理ノードA101aの第1の記憶部121aに格納されるメタデータには、商品A-1がA社からB社に譲渡されていることから、A社とB社に対して、商品A-1に対するアクセス権が認められていることを示す情報が格納されている。
【0048】
また、管理ノードA101aの第1の記憶部121aに格納されるメタデータには、商品A-2がA社からC社に譲渡されていることから、A社とC社に対して、商品A-2に対するアクセス権が認められていることを示す情報が格納されている。
【0049】
管理ノードA101aの第2の記憶部122aには、商品A-1の実データと商品A-2の実データが格納される。
【0050】
また、管理ノードB101bの第1の記憶部121b、管理ノードCの第1の記憶部121c、管理ノードZの第1の記憶部121zにも、管理ノードAの第1の記憶部121aと同じメタデータが格納される。ブロックチェーンに参加する全ての管理ノードでアクセス権に関する情報が共有される。
【0051】
一方、商品A-1の実データは、商品A-1に関して実際に取引を行ったA社とB社が利用する、管理ノードAの第2の記憶部122aと、管理ノードBの第2の記憶部122bとに格納される。
【0052】
商品A-2の実データは、商品A-2に関して実際に取引を行ったA社とC社が利用する、管理ノードAの第2の記憶部122aと、管理ノードCの第2の記憶部122cとに格納される。
【0053】
このように、本実施例では、秘匿したいデータ(実データ)は、取引を行う参加者が利用する管理ノードのみに格納され、他の管理ノードには格納されないため、ブロックチェーンを構成する全管理ノードで格納するより、電子取引システムの記憶容量を削減することができる。
【0054】
また、暗号化技術を用いて秘匿化する場合に比べ、トランザクション毎に暗号鍵、公開鍵、秘密鍵の対応関係や各鍵情報の交換動作が必要なく、実データに対するアクセス権をメタデータとして分散台帳に格納すればよい。
【0055】
さらに、秘匿したいデータ(実データ)は、取引を行う参加者が利用する管理ノードのみに格納されるため、将来の暗号解読技術が向上しても、各ノードで取引データの中身を見られる危険を少なくすることができる。
【0056】
図6は、実施の形態の電子取引システムにおける、取引内容に伴うメタデータと実データの他の例を示した図である。具体的には、
図5の状態からB社が商品A-1を加工せずZ社に卸した(提供した、あるいは、譲渡した。以下、譲渡と記載して説明する)場合の第1の記憶部121に格納されるメタデータの更新と第2の記憶部122に格納される実データの状態を示している。
【0057】
商品A-1がB社からZ社に譲渡されるトランザクションにより、Z社が商品A-1の実データにアクセスするアクセス権が付与され、メタデータとして各管理ノードで共有されている。
【0058】
一方、商品A-1の実データは、既に管理ノードAと管理ノードBにより格納されており、B社が商品A-1を加工せずZ社に譲渡していることから、管理ノードZには格納されず、管理ノードAと管理ノードBの二か所に格納されたままとなる。
【0059】
図7は、実施の形態の電子取引システムにおける、取引内容に伴うメタデータと実データの他の例を示した図である。具体的には、
図5の状態からC社が商品A-2を加工して生産した商品C-1を、Z社に卸した(譲渡した)場合の第1の記憶部121に格納されるメタデータの更新と第2の記憶部122に格納される実データの状態を示している。
【0060】
この段階で、商品C-1が生産されたため、メタデータに商品C-1が追加されている。Z社は、譲渡を受けた商品C-1に加え、商品C-1を生産するための材料となっている商品A-2についても実データへのアクセスができることが望ましいため、商品A-2に対するアクセス権が付与されている。一方、商品C-1の実データには、商品C-1の材料となった商品A-2の生産者であるA社と、商品A-2を加工して商品C-1としてZ社に譲渡したC社と、商品C-1を譲渡されたZ社とからアクセスできることが望ましいため、A社、C社及びZ社にアクセス権が付与されている。
【0061】
商品C-1の実データ131、132は、生産者であるC社と、商品C-1の譲渡を受けたZ社が利用する管理ノードの第2の記憶部122に格納される。
【0062】
このように、実データを、取引を行う参加者の利用する管理ノードに格納し、取引を行わない他の参加者の管理ノードには格納しない。そのため、暗号技術を用いて取引データの秘匿化を行う場合には、全ての管理ノードで暗号化された取引データを格納するのに対し、電子取引システム全体として、実データを格納する記憶領域を削減することができる。
【0063】
また、暗号化を用いた秘匿化技術では、取引毎(トランザクション毎)に暗号鍵、公開鍵、秘密鍵の対応関係を管理しなければならないのに対し、本実施例のメタデータでは、実データのアクセス権を管理すればよい。
【0064】
また、暗号化された実データを各管理ノードに格納すると、将来暗号が破られた場合、実データの秘匿性が失われるが、本実施の形態では、実データそのものが全ての管理ノードに格納されるわけではないので、実データの秘匿性を担保することができる。
【0065】
<処理手順>
図8は、実施の形態における取引時にメタデータ更新と実データ格納処理を示すフローチャートである。
図8を用いて、
図5から
図7に示したメタデータと実データの格納手順を説明する。尚、
図8から
図10に示す処理手順は、ブロックチェーン管理部としてHyperledger Fabricを用いた場合の動作説明を行う。但し、本発明は、Hyperledger Fabricに限定されるものではない。
【0066】
処理が開始(ステップS801)されると、クライアント部111は、実データ保持者の管理ノードのスマートコントラクト管理部に更新要求を行う(S802)。電子データの取引を行うため、取引を行う管理ノードのクライアントアプリ111が同じ管理ノードのスマートコントラクト管理部112に対し取引要求を行う。そして、取引要求を受けたスマートコントラクト管理部112は、取引対象を管理する管理ノード(実データの保持者の管理ノード)のスマートコントラクト管理部112に対して、電子データの取引を要求する。
【0067】
以下、フローチャートを用いて、上述の動作を行うことを前提に説明を行う。
【0068】
例えば、商品A-1について、A社からB社に対して譲渡する取引する第1の取引、第1の取引の後、商品A-1をB社からZ社に譲渡する取引を行う場合の動作を想定する。
【0069】
つまり、商品A-1について、
図5に示した状態、及び、
図5に示した状態から
図6に示した状態となる取引が行われる場合について説明する。
【0070】
ステップS801では、管理ノードB100bのクライアント部111bが管理ノードB100bのスマートコントラクト管理部112bに対し、商品A-1を取引対象として、A社から取り寄せる要求を行う。すると、スマートコントラクト管理部112bは、管理ノードA100aのスマートコントラクト管理部112aに対し、電子取引の要求することになる。
【0071】
尚、クライアント部111bからスマートコントラクト管理部112aに電子取引の要求を行うこともできる。この際、各管理ノード101は、第1の記憶部に格納されたメタデータから商品A-1の実データを格納する管理ノードA、管理ノードBを特定することができる。以下、取引を要求するクライアント部が実データを格納する管理ノードのスマートコントラクト管理部に対して取引対象の取引を要求する、即ち、更新要求を行う形態で説明を続ける。
【0072】
ステップS802で、B社のクライアント部111bは、管理ノードAのスマートコントラクト管理部112aと管理ノードBのスマートコントラクト管理部112bに対して、更新要求を行う。
【0073】
ステップS803では、スマートコントラクト管理部112a、112bは、商品A-1が自社製品か否か判定する。スマートコントラクト管理部112aは、商品A-1を自社開発しているため、YESとなり、ステップS804に進む。ここで、商品が自社開発であるかは、商品A-1がクライアント部111aを利用するユーザの開発商品であるか、即ち、譲渡元のクライアントの商品であるかによって判断する。
【0074】
ステップS804では、商品A-1は導入品を含まないため、NOとなり、ステップS805に進む。尚、導入品を含むか否かは、
図4の実データに含まれる導入品ID402により判定できる。
【0075】
ステップS805では、管理ノードAの記憶装置120aの第2の記憶部122aに商品A-1の実データを格納する。
図5の状態で商品A-1の実データは第2の記憶部122aに格納されていれば、上書きされても良いし、実データが格納されていることを確認するだけでも良い。商品A-1の実データが格納される管理ノードには実データに対するアクセス権が付与される。
【0076】
尚、更新要求を受けた管理ノードBのスマートコントラクト管理部112bについても、ステップ803からステップ807の処理は、スマートコントラクト管理部112aの処理と同じとなり、実データが管理ノードBの第2の記憶部122bに格納される。このように、取引対象の開発者の利用するノードと、開発者に対して取引対象の取引要求を行ったノードに実データは格納され、実データに対するアクセス権が付与される。
【0077】
一方、B社が商品A-1をZ社に卸す場合には、スマートコントラクト管理部112bは、商品A-1はA社が開発した商品のため、NOとなり、ステップS806に進む。ステップS806では、卸先であるZ社に商品A-1に関するアクセス権を付与する。
【0078】
ステップS806で付与されたアクセス権の内容を反映するため、ブロックチェーン管理部113bは商品A-1に関する実データに関連するメタデータを更新し、各管理ノードにブロードキャストして、全管理ノードが更新されたメタデータを共有する(S808)。
【0079】
次に、
図5に示した状態から
図7に示した状態となる取引が行われる場合について説明する。
【0080】
図7では、C社が商品A-2を加工して生産した商品C-1をZ社に譲渡する取引である。この場合、ステップS802で、取引を行うクライアント部がスマートコントアクト管理部に対して、取引要求を行う。例えば、Z社のクライアント部111zが、スマートコントラクト管理部113zに対し、取引要求を行うと、スマートコントラクト管理部113zがスマートコントラクト管理部113cと取引契約を結ぶ、更新要求を行う。
【0081】
ステップS803で、スマートコントラクト管理部112cは、商品C-1を自社開発商品であると判定し、ステップS804に進む。
【0082】
ステップS804では、商品C-1に導入品が含まれるか判定する。商品C-1には商品A-1が導入品として含まれるため、ステップS807に進む。
【0083】
ステップS807では、商品C-1の導入品A-1の卸元(導入品の提供元、譲渡元)であるA社に対して、商品C-1の実データに対するアクセス権を付与する。
【0084】
その後、ステップS805で、商品C-1に関する実データを管理ノードCの記憶装置120cに格納し、管理ノードCには商品C-1の実データに対するアクセス権が付与される。
【0085】
ステップS808は、
図7で示した更新されたメタデータを各管理ノードにブロードキャストして共有する。
【0086】
尚、スマートコントラクト管理部112zについても、ステップ803からステップ807の処理は、スマートコントラクト管理部112bの処理と同じとなり、実データが管理ノードZの第2の記憶部122zに格納され、商品C-1の実データに関するアクセス権が管理ノードZに付与される。
【0087】
また、
図8のステップS802はクライアント部111の処理で、ステップS803からS807はスマートコントラクト管理部112の処理で、ステップS808はブロックチェーン管理部113の処理となる。
【0088】
また、ステップS805の記憶装置に実データを格納するステップは、スマートコントラクト管理部112が取引対象の取引を行う時点で行っても良い。
【0089】
図8の処理では、実データを2つの管理ノードで格納するため、2つの管理ノードで異なる実データが格納される場合等、データ改ざんを検知することができる。
【0090】
また、商品の流通過程において、商品が加工される場合には、加工前の商品と加工後の商品の取引参加者に適切に商品に関する実データのアクセス権を付与し、ブロックチェーンの他の参加者には商品に関する実データを秘匿できる。
【0091】
図9は、実施の形態におけるクライアント部から実データの参照要求時の処理を示すフローチャートである。
【0092】
ステップS902で、クライアント部111からスマートコントラクト管理部112に参照要求を行う。
【0093】
クライアント部111から参照要求を受けたスマートコントラクト管理部112は、実データへのアクセス権があるか判定し(S903)、アクセス権がある場合、実データを保持する保持者に関する情報をクライアント部111に対して返却する(S904)。実データを保持する保持者に関する情報は、アクセス権を有する他のノードに関する情報であり、実データを保持する可能性のあるノードと理解することができる。アクセス権が無い場合、実データに関するアクセス権がないことをクライアント部111に対して返却する(S905)。
【0094】
例えば、
図7に示す状態からZ社のクライアント部111zが商品A-2の実データの参照要求をスマートコントラクト管理部112zに行うと、管理ノードZの第1の記憶部121zに格納されるメタデータでは、A社、C社、Z社に対し、商品A-2にアクセスするアクセス権が付与されている。そのため、商品A-2に関する実データを保持する保持者であるA社とC社を、実データ保持者に関する情報としてステップS904で返却する。アクセス権が多くの参加者に付与されている場合、その内のどの参加者が実データを保持するか不明であるが、ステップS904ではアクセス権が付与されている他の参加者をクライアント部に対して返却する。ステップS904で返却された情報の管理ノードが実データを保持しない場合の処理は、
図10において説明する。
【0095】
一方、クライアント部111zが商品A-1に関する実データに対して、スマートコントラクト管理部112zに参照要求を行うと、商品A-1の実データに関するアクセス権がZ社に付与されていないため、ステップS905で、実データへのアクセス権がないことを返却される。
【0096】
尚、
図9のステップS902はクライアント部111の処理で、ステップS903からS905はスマートコントラクト管理部112の処理となる。
【0097】
図10は、実施の形態におけるクライアント部から実データの参照要求時の処理を示すフローチャートである。
【0098】
図9の処理で、実データの保持者に関する情報を受け取ったクライアント部111は、実データの保持者に関する情報に従って、管理ノード(実データの保持者が利用する管理ノード)のスマートコントラクトに参照要求を行う(S1002)。
【0099】
ステップS1003で、クライアント部111から参照要求を受け取ったスマートコントラクト管理部112は、参照要求を行ったクライアント部111(管理ノードの利用者)にアクセス権があるか、判断する。メタデータは各管理ノードで共有されているはずであるが、メタデータのアクセス権の改ざんによる不正アクセスを防止するためのダブルチェックを行うためである。参照要求を行うクライアント部111と参照要求を受け取るスマートコントラクト管理部112は、通常、異なる管理ノード上に存在する。
【0100】
アクセス権が無い場合、ステップS1006に進み、アクセス権なしによるエラーを、参照要求を行ったクライアント部に返し、処理を終了する。
【0101】
一方、ステップS1003でアクセス権がある場合には、ステップS1004に進み、参照要求を受領したスマートコントラクト管理部112を有する管理ノード101の第2の記憶部122に実データがあるか判定する。ステップS1004の判断が必要な理由は、メタデータで管理されているアクセス権だけでは、実データを保持する可能性のある参加者を特定することはできるが、アクセス権が付与された全ての参加者が実データを保持するとは限らないためである。
【0102】
要求された実データを格納している場合には、ステップS1005で、要求された実データを記憶装置120から取得し、参照要求元のクライアント部111に返す。
【0103】
一方、要求された実データを格納していない場合、スマートコントラクト管理部112は、データ取得失敗としてエラーを、参照要求元のクライアント部111に返す。尚、
図9の処理で実データを格納する管理ノードの情報(実データ保持者に関する情報)が間違っていると、クライアント部111が参照要求を行う管理ノードに実データが格納されておらず、エラーとして返ってくる。エラーが返ってきたクライアント部は、メタデータでアクセス権が設定されている他の参加者が利用する管理ノードのスマートコントラクトに対して参照要求を行うようにしても良い。
【0104】
図10のステップS1002はクライアント部111の処理で、ステップS1003からS1007はスマートコントラクト管理部112の処理となる。
【0105】
尚、
図8から
図10に示す処理手順は、ブロックチェーン管理部としてHyperledger Fabricを用いた場合の動作説明を行っているが、実施例1のアクセス権の付与、実データの格納等についての考え方を用いて、他のブロックチェーン基盤に適応することができる。
【0106】
実施例1によれば、ブロックチェーンにおいて、秘匿したいデータ(実データ)の秘匿性を、少ない情報で管理できる。
【0107】
また、実施例1によれば、ブロックチェーンに参加する各管理ノードに実データを格納しないので、取引データを解読されるリスクを低減し、取引データを格納するための記憶容量を低減することができる。
【0108】
また、暗号化技術を用いて秘匿化する場合に比べ、トランザクション毎に暗号鍵、公開鍵、秘密鍵の対応関係の管理や各鍵情報の交換動作を不要とすることができる。
【実施例2】
【0109】
実施例1では、ブロックチェーンを構成する管理ノードの2つの管理ノードに実データを格納するよう構成したが、実施例2では、各ノードで格納される実データをすべて格納するデータ検証用として第三者機関の管理ノードを追加する。
【0110】
この第三者機関の管理ノードは、ブロックチェーンを構成する管理ノード間でトランザクションが発生し、各ノードのメタデータが更新されると、第三者機関の管理ノードのメタデータも更新して格納する第3の記憶部と、トランザクションの取引内容の一部(関係者以外には秘匿したいデータ)である実データの全てを格納する第4の記憶部とを有する。
【0111】
第三者機関の管理ノードは、実際の商品等の取引に参加しないが、全取引データを管理しているため、ブロックチェーンを構成する管理ノードのデータ改ざんを検証することができる。
【0112】
以上、各実施例によれば、ブロックチェーンにおいて、秘匿したいデータ(実データ)の秘匿性を、少ない情報で管理できる。
【0113】
また、各実施例によれば、ブロックチェーンに参加する各管理ノードに実データを格納しないので、取引データを解読されるリスクを低減し、取引データを格納するための記憶容量を低減することができる。
【0114】
また、各実施例によれば、暗号化技術を用いて秘匿化する場合に比べ、トランザクション毎に暗号鍵、公開鍵、秘密鍵の対応関係の管理や各鍵情報の交換動作を不要とすることができる。
【符号の説明】
【0115】
10:電子取引システム
101:管理ノード
110:処理部
111:クライアント部
112:スマートコントラクト管理部
113:ブロックチェーン管理部
120:記憶装置
121:第1の記憶部
122:第2の記憶部
201:処理部
202:メモリ
203:記憶装置
204:入力装置
205:出力装置
300:メタデータ
400:実データ