IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

7384441情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造
<>
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図1
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図2
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図3
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図4
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図5
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図6
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図7
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図8
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図9
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図10
  • -情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-13
(45)【発行日】2023-11-21
(54)【発明の名称】情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造
(51)【国際特許分類】
   G06F 16/28 20190101AFI20231114BHJP
【FI】
G06F16/28
【請求項の数】 10
(21)【出願番号】P 2021141706
(22)【出願日】2021-08-31
(62)【分割の表示】P 2019188949の分割
【原出願日】2019-10-15
(65)【公開番号】P2022000770
(43)【公開日】2022-01-04
【審査請求日】2022-09-28
(73)【特許権者】
【識別番号】518182977
【氏名又は名称】株式会社chaintope
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】安土 茂亨
(72)【発明者】
【氏名】正田 英樹
(72)【発明者】
【氏名】村上 照明
(72)【発明者】
【氏名】田中 貴規
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特表2018-515824(JP,A)
【文献】特許第6943393(JP,B2)
【文献】米国特許出願公開第2019/0019183(US,A1)
【文献】米国特許出願公開第2018/0091596(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
サーバと複数のブロックチェーンノードとを含む情報処理システムであって、
サーバが、
デジタル商品であるアイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、
複数のブロックチェーンノードが、
ブロードキャストされたトランザクションデータをブロックチェーンへ記録し、
サーバが、
追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
情報処理システム。
【請求項2】
送り元を表すアドレスから送り先を表すアドレスへのアイテムの条件付き移動を表現するためのスマートコントラクトがブロックチェーン上にデプロイされており、
アキュムレータを含む実際の移動を表すトランザクションデータがブロックチェーンへ記録され、かつ条件が満たされた場合に、送り元を表すアドレスから送り先を表すアドレスへのアイテムの移動が表現される、
請求項1に記載の情報処理システム。
【請求項3】
サーバは、
複数のアイテムのうちの、第1のアイテムの送り先と第2のアイテムの送り先とが異なる場合、第1のアイテムの識別情報を第1のアキュムレータに格納し、第2のアイテムの識別情報を第2のアキュムレータへ格納し、
複数のアイテムのうちの、第1のアイテムの送り先と第2のアイテムの送り先とが同一である場合、第1のアイテムの識別情報と第2のアイテムの識別情報とを同一のアキュムレータへ格納する、
請求項1又は請求項2に記載の情報処理システム。
【請求項4】
サーバと複数のブロックチェーンノードとを含む情報処理システムにおいて実行される情報処理方法であって、
サーバが、
デジタル商品であるアイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、
複数のブロックチェーンノードが、
ブロードキャストされたトランザクションデータをブロックチェーンへ記録し、
サーバが、
追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
情報処理方法。
【請求項5】
デジタル商品であるアイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、
追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
処理を実行するサーバ。
【請求項6】
デジタル商品であるアイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスと、アイテムの送り先を表すアドレスと、前記アキュムレータと、を含むトランザクションデータを生成し、
生成された前記トランザクションデータを、複数のブロックチェーンノードへブロードキャストし、
前記トランザクションデータを生成する際に、
複数のアイテムのうちの、第1のアイテムの送り先と第2のアイテムの送り先とが同一である場合、第1のアイテムの識別情報と第2のアイテムの識別情報とを同一のアキュムレータへ格納し、
複数のアイテムのうちの、第1のアイテムの送り先と第2のアイテムの送り先とが異なる場合、第1のアイテムの識別情報を第1のアキュムレータに格納し、第2のアイテムの識別情報を第2のアキュムレータへ格納する、
処理を実行するサーバ。
【請求項7】
追跡対象のデジタル商品であるアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とを、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータが記録されたブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
処理を実行するサーバ。
【請求項8】
デジタル商品であるアイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、
追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
処理をコンピュータに実行させるための情報処理プログラム。
【請求項9】
請求項6又は請求項7に記載のサーバが実行する処理をコンピュータに実行させるための情報処理プログラム。
【請求項10】
請求項6又は請求項7に記載のサーバが実行する処理をコンピュータに実行させる情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造に関する。
【背景技術】
【0002】
従来、ブロックチェーン技術が知られている(例えば、非特許文献1)。ブロックチェーンの各ブロックには、例えば、ビットコインに関するトランザクションを表すトランザクションの情報が書き込まれ、そのトランザクションの情報の改竄が困難な状態となる。
【先行技術文献】
【非特許文献】
【0003】
【文献】Satoshi Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System",2008
【発明の概要】
【発明が解決しようとする課題】
【0004】
移動対象の特定のデータ又は物品等であるアイテムが、どこで発生し、どのような遷移を辿り、現在どのような場所に存在しているのか、といったアイテムの流通を表すトラッキング情報は有用である。そのため、移動対象のアイテムのトラッキング情報をブロックチェーンに記録することが考えられる。
【0005】
しかし、トラッキング情報がブロックチェーンに記録される場合、アイテムの数が増加するほどブロックチェーン上に記録されるトラッキング情報のデータ量が増加する。このため、アイテムのトラッキング情報をブロックチェーンへ記録する場合には、移動対象のアイテムが増加すると、ブロックチェーンに記録されるデータ量が指数関数的に増加してしまう、という課題がある。
【0006】
本発明は、上記の事情を鑑みてなされたもので、移動対象のアイテムのトラッキング情報のデータ量を低減させつつ、アイテムのトラッキング情報をブロックチェーンへ記録することができる情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の目的を達成するために本発明に係る情報処理システムは、サーバと複数のブロックチェーンノードとを含む情報処理システムであって、サーバが、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、複数のブロックチェーンノードが、ブロードキャストされたトランザクションデータをブロックチェーンへ記録し、サーバが、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、情報処理システムである。
【0008】
また、本発明の情報処理方法は、サーバと複数のブロックチェーンノードとを含む情報処理システムにおいて実行される情報処理方法であって、サーバが、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、複数のブロックチェーンノードが、ブロードキャストされたトランザクションデータをブロックチェーンへ記録し、サーバが、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、情報処理方法である。
【0009】
また、本発明のサーバは、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストする処理を実行するサーバである。
【0010】
また、本発明のサーバは、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とを、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータが記録されたブロックチェーンから取得し、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、処理を実行するサーバである。
【0011】
本発明の情報処理プログラムは、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、処理をコンピュータに実行させるための情報処理プログラムである。
【0012】
本発明のブロックチェーンデータ構造は、アイテムの送り元を表すアドレスと、アイテムの送り先を表すアドレスと、アイテムの識別情報が格納されたデータ構造であるアキュムレータと、を含むトランザクションデータが記録されたブロックチェーンデータ構造であって、追跡対象のアイテムの識別情報がアキュムレータに格納されているか否かの検証が行われることにより、当該アイテムの追跡に用いられる、ブロックチェーンデータ構造である。
【発明の効果】
【0013】
本発明によれば、移動対象のアイテムのトラッキング情報のデータ量を低減させつつ、アイテムのトラッキング情報をブロックチェーンへ記録することができる、という効果が得られる。
【図面の簡単な説明】
【0014】
図1】本実施形態の情報処理システムの概略構成の一例を示す図である。
図2】情報処理システムを構成する各装置として機能するコンピュータの概略ブロック図である。
図3】本実施形態の情報処理システムの処理を説明するための説明図である。
図4】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
図5】本実施形態の情報処理システムの処理を説明するための説明図である。
図6】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
図7】本実施形態の情報処理システムの処理を説明するための説明図である。
図8】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
図9】本実施形態の情報処理システムの処理を説明するための説明図である。
図10】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
図11】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して実施形態を詳細に説明する。
【0016】
<情報処理システムのシステム構成>
【0017】
図1は、本実施形態の情報処理システム10を示すブロック図である。図1に示されるように、本実施形態の情報処理システム10は、端末12と、サーバ14と、ブロックチェーンノード16とを含んで構成されている。情報処理システム10の各装置は、例えばインターネット等のネットワーク20によって接続されている。なお、複数のブロックチェーンノード16A,16B,16Cのうちの特定のノードを説明する場合以外は、ブロックチェーンノードを単に「ブロックチェーンノード16」と表記する。また、複数の端末12A,12B,12Cのうちの特定の端末を説明する場合以外は、端末を単に「端末12」と表記する。
【0018】
なお、図1には、3つのブロックチェーンノードが示されているが、より多くのブロックチェーンノードが含まれていても良い。また、図1には、3つの端末が示されているが、より多くの端末が含まれていても良い。
【0019】
特定のデータ又は物品等であるアイテムの流通の状態を表すトラッキング情報は、有用な情報である。例えば、アイテムのトラッキング情報をユーザが取得することにより、ユーザはアイテムがどのような経路を辿りどのような場所に到着しているのか、といったことを確認することができる。
【0020】
ここで、アイテムのトラッキング情報を適切に管理しつつ、かつ複数のユーザがトラッキング情報を簡易に取得することが可能なシステムを構築することを考える。
【0021】
このようなシステムを構築しようとする場合、複数のユーザがトラッキング情報を取得することができるようにするために、システム上においてトラッキング情報が共有されなければならない、という点が課題となる。更に、移動対象のアイテムの数量が増加するほどトラッキング情報のデータ量が膨大となる、という点が課題となる。
【0022】
1点目の課題を解決するために、本実施形態の情報処理システム10は、アイテムのトラッキング情報をブロックチェーンへ格納する。ブロックチェーンを用いることにより、複数のユーザからのトラッキング情報へのアクセスが容易となり、かつトラッキング情報の改竄が困難な状態とすることができる。また、トラッキング情報をブロックチェーンへ記録した上で、2点目の課題を解決する方法として、以下の2つの方法が考えられる。
【0023】
(1)ブロックチェーンに記録するトラッキング情報のデータ量を削減する(例えば、トラッキング情報の一部のみをブロックチェーンに記録する等)。
(2)ブロックチェーンへのトラッキング情報の記録方法を効率化することにより、トラッキング情報のデータ量を削減する。
【0024】
本実施形態では、上記の2つの方法のうちの(2)の方法により、トラッキング情報のデータ量を削減する。具体的には、本実施形態の情報処理システム10は、既存技術であるアキュムレータをブロックチェーンへ格納する。アキュムレータがブロックチェーンへ格納されることにより、ブロックチェーンへ記録されるデータ量が低減される。また、アキュムレータの系列は、移動対象のアイテムのトラッキング情報として利用可能である。このため、移動対象のアイテムのトラッキング情報のデータ量を低減させつつ、アイテムのトラッキング情報をブロックチェーンへ記録することができる。また、アキュムレータに対して所定の処理が実行されることにより、ある要素がアキュムレータに格納されているか否かの検証が可能となる。
【0025】
なお、アキュムレータとしては、以下の参考文献1及び参考文献2に開示されているものが知られている。
【0026】
参考文献1:Dan Boneh, Benedikt Bunz, Ben Fisch, "Batching Techniques for Accumulators with Applications to IOPs and Stateless Blockchains", Stanford University, <https://eprint.iacr.org/2018/1188.pdf>
参考文献2:Thaddeus Dryja, "Utreexo: A dynamic hash-based accumulator optimized for the Bitcoin UTXO set”, MIT Digital Currency Initiative, <https://eprint.iacr.org/2019/611.pdf>
【0027】
上記参考文献1に開示されているアキュムレータは、アキュムレータのサイズが固定長で、アキュムレータに格納するアイテムの順序が関係ないRSA Accumulatorである。RSA Accumulatorは、ハッシュ関数のような一方向性を有する関数である。また、上記参考文献2に開示されているアキュムレータは、完全二分木を利用したハッシュベースのアキュムレータである。本実施形態では、アキュムレータとしてRSA Accumulatorを用いる場合を例に説明する。
【0028】
情報処理システム10に含まれる各装置は、CPU(Central Processing Unit)、各処理ルーチンを実現するためのプログラム等を記憶したROM(Read Only Memory)、データを一時的に記憶するRAM(Random Access Memory)、記憶手段としてのメモリ、ネットワークインタフェース等を含んだコンピュータによって実現される。
【0029】
端末12、サーバ14、及びブロックチェーンノード16は、例えば、図2に示すコンピュータ70で実現することができる。コンピュータ70はCPU71、一時記憶領域としてのメモリ72、及び不揮発性の記憶部73を備える。また、コンピュータ70は、入出力装置等(図示省略)が接続される入出力interface(I/F)74、及び記録媒体に対するデータの読み込み及び書き込みを制御するread/write(R/W)部75を備える。また、コンピュータ70は、インターネット等のネットワークに接続されるネットワークI/F76を備える。CPU71、メモリ72、記憶部73、入出力I/F74、R/W部75、及びネットワークI/F76は、バス77を介して互いに接続される。
【0030】
記憶部73は、Hard Disk Drive(HDD)、solid state drive(SSD)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部73には、コンピュータ70を機能させるためのプログラムが記憶されている。CPU71は、プログラムを記憶部73から読み出してメモリ72に展開し、プログラムが有するプロセスを順次実行する。
【0031】
<情報処理システム10の作用>
【0032】
次に、本実施形態の情報処理システム10の作用について説明する。本実施形態では、情報処理システム10が、商品の流通を追跡する場合を例に説明する。
【0033】
例えば、情報処理システム10とは異なるシステムによって、商品に対して貼付するQRコード(登録商標)が生成される。例えば、商品の製造時にQRコード(登録商標)が商品単位で生成され、QRコード(登録商標)が商品に貼付される。なお、QRコード(登録商標)は追跡したい商品単位毎に生成される。
【0034】
そして、例えば、商品が出荷又は入荷されるタイミングにおいて、商品に貼付されているQRコード(登録商標)が所定の読取装置によって読み取られ、QRコード(登録商標)に対応した商品の識別情報(以下、単に「商品のID」と称する。)が得られる。この商品のIDが後述するアキュムレータに格納される。なお、IDはロット単位など任意の単位に付与されるようにしてもよい。
【0035】
QRコード(登録商標)が貼付されている複数の商品が各拠点(例えば、店舗、倉庫、及び工場等)に配送される。なお、商品が流通する各拠点は、秘密鍵と公開鍵とのペアを有している。そして、例えば、商品の拠点間の移動(例えば、A工場からB倉庫への移動)がブロックチェーン上におけるトランザクションによって表現される。ブロックチェーン上のトランザクションにおける送り元と送り先とが、商品の出荷元と商品の入荷先に対応する。なお、商品が各拠点に届いた際には、商品に貼付されているQRコード(登録商標)が読み取られ、その拠点に商品が届いたことを表す情報がブロックチェーンに記録される。そして、商品がユーザに届いた際には商品に貼付されているQRコード(登録商標)を読み込むことにより、商品のトラッキング情報を確認することが可能となる。
【0036】
例えば、商品が出荷又は入荷されるタイミングにおいて、情報処理システム10の端末12により商品に貼付されているQRコード(登録商標)が読み取られると、図3に示されるシーケンスが実行される。
【0037】
ステップS100において、端末12は、アキュムレータの作成依頼を表す信号とQRコード(登録商標)の読取により得られた商品の送り先とをサーバ14に対して出力する。
【0038】
ステップS102において、サーバ14は、上記ステップS100で出力された各情報を取得する。そして、サーバ14は、商品のIDから得られる情報を格納する対象のアキュムレータを初期化する。
【0039】
ステップS104において、端末12は、QRコード(登録商標)の読取により得られた商品のIDをサーバ14に対して出力する。
【0040】
ステップS106において、サーバ14は、上記ステップS104で出力された商品のIDを取得する。そして、サーバ14は、上記ステップS102で初期化されたアキュムレータに、商品のIDから得られる情報を格納する。
【0041】
例えば、商品のID(x)から得られる情報H(x)がアキュムレータAへ格納される場合、以下の式に従って商品のID(x)がアキュムレータAに格納され、新たなアキュムレータAi+1が生成される。なお、以下の式におけるHはハッシュ関数を表し、iはアキュムレータを識別するためのインデックスを表す。なお、ハッシュ関数Hは、要素を素数へマッピングするための関数であり、既知のものである。
【0042】
i+1=A H(x)
【0043】
なお、複数の商品が存在している場合、上記ステップS104と上記ステップS106とを含むステップS107の処理は、商品の数だけ繰り返される。このため、例えば、図4(A)に示されるように、商品のIDとして(v,w,x,y,z)が存在している場合、アキュムレータA1に商品のID(v,w,x,y,z)から得られる情報が格納される。
【0044】
ステップS108において、サーバ14は、上記ステップS106で生成されたアキュムレータを含むトランザクションデータを生成する。例えば、サーバ14は、図4(B)に示されるような、各商品の送り元を表すアドレス1と各商品の送り先を表すアドレス2とアキュムレータA1とを含むトランザクションデータTXを生成する。
【0045】
ステップS110において、サーバ14は、上記ステップS108で生成されたトランザクションデータを、ブロックチェーンノード16へブロードキャストする。
【0046】
ステップS112において、ブロックチェーンノード16は、上記ステップS110でブロードキャストされたトランザクションデータを取得し、トランザクションデータをブロックチェーンに記録する。これにより、商品の出荷又は入荷時において、商品のIDがアキュムレータに格納され、かつ商品の送り元と商品の送り先とアキュムレータとの情報を含むトランザクションデータがブロックチェーンに記録されたことになる。
【0047】
このため、本実施形態のブロックチェーンには、商品の送り元を表すアドレスと、商品の送り先を表すアドレスと、商品のIDから得られる情報が格納されたデータ構造であるアキュムレータと、を含むトランザクションデータが記録された構造となっている。後述するように、このブロックチェーンは、追跡対象の商品のIDがアキュムレータに格納されているか否かの検証が行われることにより、当該アイテムの追跡に用いられる。
【0048】
商品が入荷又は出荷されるタイミングにおいて図3のシーケンスが実行されることにより、商品の送り元と商品の送り先とアキュムレータとを含むトランザクションデータがブロックチェーンに記録される。なお、商品の入荷又は出荷がされる毎にアキュムレータが生成されるわけではなく、アキュムレータが一旦作成されると、そのアキュムレータは原則として利用され続ける。しかし、後述するように、商品が異なる場所へ搬送される場合等には、アキュムレータが再度生成される。また、ブロックチェーンに記録されたアキュムレータの系列は、商品の追跡を行う際に利用される。
【0049】
なお、図3のシーケンスは、複数の商品全てが、ある送り元からある送り先へ搬送される場合のシーケンスである。このため、以下では、複数の商品のうちの一部の商品がある送り先へ搬送され、複数の商品のうちの残りの商品が別の送り先へ搬送される場合を説明する。複数の商品のうちの一部の商品がある送り先へ搬送され、複数の商品のうちの残りの商品が別の送り先へ搬送される場合には、図5のシーケンスが実行される。
【0050】
図5のシーケンスにおいて、サーバ14は、複数のアイテムのうちの、第1の商品の送り先と第2の商品の送り先とが異なる場合、第1の商品のIDから得られる情報を第1のアキュムレータに格納し、第2の商品のIDから得られる情報を第2のアキュムレータへ格納する。
【0051】
具体的には、まず、ステップS200において、端末12は、アキュムレータの作成依頼を表す信号と、QRコード(登録商標)の読取により得られた各商品の異なる送り先とをサーバ14に対して出力する。
【0052】
ステップS202において、サーバ14は、上記ステップS200で出力された各情報を取得する。そして、サーバ14は、商品のIDから得られる情報を格納する対象のアキュムレータを初期化する。具体的には、サーバ14は、送り先の異なるアキュムレータを初期化する。
【0053】
ステップS204において、端末12は、QRコード(登録商標)の読取により得られた各商品のIDをサーバ14に対して出力する。
【0054】
ステップS206において、サーバ14は、上記ステップS204で出力された商品のIDを取得する。そして、サーバ14は、上記ステップS202で送り先毎に初期化されたアキュムレータの各々に、各商品のIDから得られる情報を格納する。なお、送り先が同一の商品のIDは同一のアキュムレータに格納される。
【0055】
例えば、図6(A)に示されるように、商品のIDとして(v,w,x,y,z)が存在している場合を例に説明する。図6(A)に示されるように、商品のID(v)はアドレス2-1に対応する送り先へ搬送され、商品のID(w,x,y,z)はアドレス2-2に対応する送り先へ搬送される。この場合には、アドレス2-1に対応するアキュムレータA2と、アドレス2-2に対応するアキュムレータA3とが生成される。そして、アキュムレータA2には商品のID(v)から得られる情報が格納され、アキュムレータA3には商品のID(w,x,y,z)から得られる情報が格納される。
【0056】
ステップS208において、サーバ14は、上記ステップS206で生成されたアキュムレータを含むトランザクションデータを生成する。例えば、サーバ14は、図6(B)に示されるような、商品(v,w,x,y,z)の送り元を表すアドレス1とアキュムレータA1と、商品(v)の送り先を表すアドレス2-1とアキュムレータA2と、商品(w,x,y,z)の送り先を表すアドレス2-2とアキュムレータA3と、を含むトランザクションデータTXを生成する。
【0057】
ステップS210において、サーバ14は、上記ステップS208で生成されたトランザクションデータを、ブロックチェーンノード16へブロードキャストする。
【0058】
ステップS212において、ブロックチェーンノード16は、上記ステップS210でブロードキャストされたトランザクションデータを取得し、トランザクションデータをブロックチェーンに記録する。これにより、商品の出荷又は入荷時において、商品のIDがアキュムレータに格納され、かつ商品の送り元と商品の送り先とアキュムレータとの情報を含むトランザクションデータがブロックチェーンに記録されたことになる。
【0059】
次に、複数の異なる送り元から同一の送り先へ商品が搬送される場合を説明する。この場合には、図7のシーケンスが実行される。
【0060】
図7のシーケンスにおいて、サーバ14は、複数の商品のうちの、第1の商品の送り先と第2の商品の送り先とが同一である場合、第1の商品のIDと第2の商品のIDとを同一のアキュムレータへ格納する。
【0061】
具体的には、まず、ステップS300において、端末12は、ブロックチェーンノード16から対象の商品の直近のトランザクションデータをサーバ14経由で取得する。そして、端末12は、トランザクションデータに含まれるアキュムレータを取得する。
【0062】
ステップS301において、端末12は、上記ステップS300で取得されたアキュムレータと対象の商品の送り先とをサーバ14へ出力する。
【0063】
ステップS302において、端末12は、上記ステップS300で取得されたアキュムレータに追加する予定の商品のIDをサーバ14へ出力する。
【0064】
ステップS304において、サーバ14は、上記ステップS302で出力された商品のIDを取得する。そして、サーバ14は、端末12から出力された追加予定の商品のIDをアキュムレータに追加する。
【0065】
例えば、図8(A)に示されるように、商品のIDとして(v,x)が存在している場合を例に説明する。図8(A)に示されるように、商品のID(v)はアドレス3-1からアドレス4-1へ搬送され、商品のID(x)はアドレス3-2からアドレス4-1へ搬送される。この場合には、端末12は、アドレス3-1に対応するアキュムレータA2を取得し、アキュムレータA2をサーバ14へ出力する。そして、サーバ14は、アキュムレータA2に商品のID(x)から得られる情報を追加して、新たなアキュムレータA6を生成する。これにより、アキュムレータA6には商品のID(v,x)から得られる情報が格納されたことになる。
【0066】
ステップS306において、サーバ14は、上記ステップS304で生成されたアキュムレータを含むトランザクションデータを生成する。例えば、サーバ14は、図8(B)に示されるような、商品のID(v)の送り元を表すアドレス3-1とアキュムレータA2と、商品のID(x)の送り元を表すアドレス3-2とアキュムレータA4と、商品(v,x)の送り先を表すアドレス4-1とアキュムレータA6と、を含むトランザクションデータTXを生成する。
【0067】
ステップS308において、サーバ14は、上記ステップS306で生成されたトランザクションデータを、ブロックチェーンノード16へブロードキャストする。
【0068】
ステップS310において、ブロックチェーンノード16は、上記ステップS308でブロードキャストされたトランザクションデータを取得し、トランザクションデータをブロックチェーンに記録する。これにより、商品の出荷又は入荷時において、商品のIDがアキュムレータに格納され、かつ商品の送り元と商品の送り先とアキュムレータとの情報を含むトランザクションデータがブロックチェーンに記録されたことになる。
【0069】
以上の図3図5、及び図7の各シーケンスが実行されることにより、商品のトラッキング情報であるアキュムレータの系列がブロックチェーンに格納されたことになる。
【0070】
次に、ユーザが商品の追跡を行う場合を説明する。この場合には、図9に示されるシーケンスが実行される。
【0071】
図9のシーケンスにおいて、サーバ14は、追跡対象の商品のIDを含む要求信号を受け付けた場合、要求信号に含まれるIDに対応する商品の移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得する。そして、サーバ14は、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象の商品のIDが格納されているか否かの検証を行い、検証結果を出力する。
【0072】
具体的には、まず、ステップS400において、商品の追跡を行おうとするユーザが操作する端末12は、追跡対象の商品のIDと最終の送り先とをサーバ14へ出力する。
【0073】
ステップS402において、サーバ14は、上記ステップS400で出力された商品のIDと最終の送り先と取得する。そして、サーバ14は、商品の最終の送り先のアドレスが含まれているトランザクションデータをブロックチェーンから取得する。
【0074】
ステップS404において、サーバ14は、上記ステップS402で取得されたトランザクションデータに含まれているアキュムレータに、商品のIDが含まれているか否かを検証する。例えば、以下の式を演算することにより、商品のID(x)がアキュムレータAに含まれているか否かを検証することができる。
【0075】
以下の式は、アキュムレータA内に要素xが存在するかの包含証明をπ=A1/xとして提供される、RSAアキュムレータを使った場合の例であり、πと要素xの演算結果と、アキュムレータAの値を比較することにより、アキュムレータAにxが含まれていることを表す。
【0076】
π=A
【0077】
なお、サーバ14は、商品の最終の送り先のアドレスが含まれているトランザクションデータの送り元のアドレスを参照し、その送り元が送り先となっているトランザクションデータを辿る。これが繰り返されることにより、追跡対象の商品の複数のトランザクションデータがサーバ14によって取得される。このため、ステップS402とステップS404とを含むステップS405の処理は繰り返し実行される。
【0078】
ステップS408において、サーバ14は、複数のトランザクションデータに付与されているアキュムレータに、追跡対象の商品のIDが含まれていたか否かを表す検証結果を端末12へ出力する。
【0079】
ステップS410において、端末12は、上記ステップS408で出力された検証結果を取得し、表示部(図示省略)へ表示する。商品の追跡を行おうとするユーザは、表示部に表示された検証結果を確認する。これにより、ユーザは、追跡対象の商品がどのような流通経路を辿ったのかを確認することができる。
【0080】
例えば、図10及び図11に示されるように、ユーザが商品(x)の流通経路を確認する場合を例に説明する。なお、図11は、図10の各フェーズにおけるトランザクションデータである。
【0081】
図11に示されるように、最終の送り先であるアドレス5-1の送り先内で商品(x)を含むアキュムレータが探索され、図10のトランザクションTX4のアキュムレータA6が特定される。
【0082】
次に、アキュムレータA6に商品(x)が含まれている事が確認される。そして、トランザクションTX4の送り先(アドレス5-1:A6)に紐づく送り元(アドレス4-1:A6)が特定される。なお、送り元(アドレス4-1:A6)のうちのアキュムレータA6は、送り先(アドレス5-1:A6)のアキュムレータA6と同一であるため、商品(x)の存在確認は行われない。
【0083】
次に、トランザクションTX4の送り元(アドレス4-1:A6)に紐づくトランザクションTX3の送り先(アドレス4-1:A6)が特定される。そして、トランザクションTX3の送り先(アドレス4-1:A6)に紐づくトランザクションTX3の送り元(アドレス3-1:A2)と送り元(アドレス3-2:A4)が特定される。
【0084】
そして、アキュムレータA2には商品(x)が含まれていないことが確認される。この場合、それ以降のトランザクションTX3の送り元(アドレス3-1:A2)に関しては商品(x)の追跡は行われない。
【0085】
次に、アキュムレータA4に商品(x)が含まれていることが確認される。そして、トランザクションTX3の送り元(アドレス3-2:A4)に紐づくトランザクションTX2の送り先(アドレス3-2:A4)が特定される。
【0086】
次に、トランザクションTX2の送り先(アドレス3-2:A4)に紐づくトランザクションTX2の送り元(アドレス2-2:A3)が特定される。そして、アキュムレータA3に商品(x)が含まれていることが確認される。
【0087】
次に、トランザクションTX2の送り元(アドレス2-2:A3)に紐づくトランザクションTX1の送り先(アドレス2-2:A3)が特定される。そして、トランザクションTX1の送り先(アドレス2-2:A3)に紐づくトランザクションTX1の送り元(アドレス1:A1)が特定される。そして、アキュムレータA1に商品のID(x)が含まれていることが確認される。
【0088】
そして、トランザクションTX1の送り元(アドレス1:A1)に紐づく送り先が存在しない(又は商品のID(x)を含むアキュムレータ見つからない)ため、商品のID(x)の追跡が完了する。
【0089】
以上説明したように、本実施形態に係る情報処理システムのサーバが、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納する。そして、サーバが、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストする。そして、複数のブロックチェーンノードが、ブロードキャストされたトランザクションデータをブロックチェーンへ記録する。そして、サーバが、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得する。そして、サーバは、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する。これにより、移動対象のアイテムのトラッキング情報のデータ量を低減させつつ、アイテムのトラッキング情報をブロックチェーンへ記録することができる。
【0090】
また、本実施形態によれば、膨大な記録はアキュムレータを用いることで効率的にデータを保持することができ、複数のユーザによるトラッキング情報の共有が可能となる。また、アキュムレータとトランザクションにおける送り元及び送り先との関係を紐付けることにより、アキュムレータに記録されたアイテムの識別情報の移動を表現することができる。これにより、アキュムレータに記録されている情報のトラッキングが可能となる。
【0091】
また、本実施形態によれば、アキュムレータをブロックチェーンに記録することにより、アイテムの各々の個別の情報をブロックチェーンに記録することなく、移動対象のアイテムの追跡を行うことができる。具体的には、アイテムの識別情報が格納されるアキュムレータのみがブロックチェーンに記録されることにより、ブロックチェーンに記録される情報が大幅に削減される。また、アキュムレータに対象のアイテムの識別情報が格納されているか否かの検証とブロックチェーン上のトランザクションデータとから、移動がなされた特定のアイテムがどの様な経路を辿っているかが判別可能となる。
【0092】
なお、従来のブロックチェーンにおいては、アイテムの経路はブロックチェーン上に記録される。これに対し、本実施形態では、対象となるアイテムの入荷又は出荷等の管理と連携させることにより、アイテムがどの場所に到着しているかを表すトラッキング情報を取得することができる。
【0093】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0094】
例えば、アイテムとしては現実物に限らず特定のデータも含まれる。
【0095】
また、上記実施形態では、トランザクションの形式がUTXO(Unspent Transaction Output)型である場合を例に説明したが、これに限定されるものではない。例えば、Ethereumの様なアカウント型のスマートコントラクトであっても良い。この場合には、送り元を表すアドレスから送り先を表すアドレスへのアイテムの条件付き移動を表現するためのスマートコントラクトが、ブロックチェーン上に予めデプロイされる。そして、アキュムレータを含む実際の移動を表すトランザクションデータがブロックチェーンへ記録された後、所定の条件が満たされた場合に、送り元を表すアドレスから送り先を表すアドレスへのアイテムの移動が記録される。
【0096】
なお、アイテムの識別情報は、どのようなユーザであっても比較的簡易に取得することができるため、アイテムの送信元のアドレスを保持しているユーザがどのような主体であるのか、その正当性を確認したい場合がある。このため、PKI(public key infrastructure)の仕組みを用いて、送信元のアドレスを保持しているユーザの身元を解析するようにしてもよい。この場合には、送信元のアドレスに対応する公開鍵と送信元のアドレスを保持しているユーザの情報とが予め紐づけられており、送信元のアドレスに対応する公開鍵の情報に基づき、そのユーザの正当性が確認される。
【0097】
また、上記実施形態では、QRコード(登録商標)を用いて、アイテムの識別情報を取得する場合を例に説明したが、これに限定されるものではなく、他の方法によってアイテムの識別情報を取得してもよい。また、上記の各処理が実行されるタイミングも本実施形態に限定されるものではない。
【0098】
また、上記実施形態では、アキュムレータとしてRSA Accumulatorを用いる場合を例に説明したが、これに限定されるものではない。例えば、上記参考文献2に開示されているような完全二分木を利用したハッシュベースのアキュムレータ又は他のアキュムレータを用いるようにしてもよい。なお、上述したような、ハッシュベースのアキュムレータが用いられる場合には、アイテムの識別情報から得られる情報としてのハッシュ値を計算する必要があるが、他のアキュムレータを利用する場合には、これに限定されるものではない。例えば、アイテムの識別情報をそのままアキュムレータへ格納するようにしてもよい。
【0099】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【0100】
10 情報処理システム
12,12A,12B,12C 端末
14 サーバ
16,16A,16B,16C ブロックチェーンノード
20 ネットワーク
70 コンピュータ
72 メモリ
73 記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11