(57)【要約】【課題】移動対象のアイテムのトラッキング情報のデータ量を低減させつつ、アイテムのトラッキング情報をブロックチェーンへ記録する。【解決手段】サーバ１４が、アイテムの識別情報をアキュムレータへ格納する。サーバ１４は、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、ブロックチェーンノード１６へブロードキャストする。サーバ１４が、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行ったトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得する。サーバ１４は、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する。【選択図】図１
2022000770.tif 000002
【特許請求の範囲】
【請求項１】
サーバと複数のブロックチェーンノードとを含む情報処理システムであって、
サーバが、
アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、
複数のブロックチェーンノードが、
ブロードキャストされたトランザクションデータをブロックチェーンへ記録し、
サーバが、
追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
情報処理システム。
【請求項２】
送り元を表すアドレスから送り先を表すアドレスへのアイテムの条件付き移動を表現するためのスマートコントラクトがブロックチェーン上にデプロイされており、
アキュムレータを含む実際の移動を表すトランザクションデータがブロックチェーンへ記録され、かつ条件が満たされた場合に、送り元を表すアドレスから送り先を表すアドレスへのアイテムの移動が表現される、
請求項１に記載の情報処理システム。
【請求項３】
サーバは、
複数のアイテムのうちの、第１のアイテムの送り先と第２のアイテムの送り先とが異なる場合、第１のアイテムの識別情報を第１のアキュムレータに格納し、第２のアイテムの識別情報を第２のアキュムレータへ格納する、
請求項１又は請求項２に記載の情報処理システム。
【請求項４】
サーバは、
複数のアイテムのうちの、第１のアイテムの送り先と第２のアイテムの送り先とが同一である場合、第１のアイテムの識別情報と第２のアイテムの識別情報とを同一のアキュムレータへ格納する、
請求項１〜請求項３の何れか１項に記載の情報処理システム。
【請求項５】
サーバと複数のブロックチェーンノードとを含む情報処理システムにおいて実行される情報処理方法であって、
サーバが、
アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、
複数のブロックチェーンノードが、
ブロードキャストされたトランザクションデータをブロックチェーンへ記録し、
サーバが、
追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
情報処理方法。
【請求項６】
アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、
追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
処理を実行するサーバ。
【請求項７】
アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストする処理を実行するサーバ。
【請求項８】
追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とを、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータが記録されたブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
処理を実行するサーバ。
【請求項９】
アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、
アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、
追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、
取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、
処理をコンピュータに実行させるための情報処理プログラム。
【請求項１０】
アイテムの送り元を表すアドレスと、アイテムの送り先を表すアドレスと、アイテムの識別情報が格納されたデータ構造であるアキュムレータと、を含むトランザクションデータが記録されたブロックチェーンデータ構造であって、
追跡対象のアイテムの識別情報がアキュムレータに格納されているか否かの検証が行われることにより、当該アイテムの追跡に用いられる、
ブロックチェーンデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造に関する。
【背景技術】
【０００２】
従来、ブロックチェーン技術が知られている（例えば、非特許文献１）。ブロックチェーンの各ブロックには、例えば、ビットコインに関するトランザクションを表すトランザクションの情報が書き込まれ、そのトランザクションの情報の改竄が困難な状態となる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Satoshi Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System",2008
【発明の概要】
【発明が解決しようとする課題】
【０００４】
移動対象の特定のデータ又は物品等であるアイテムが、どこで発生し、どのような遷移を辿り、現在どのような場所に存在しているのか、といったアイテムの流通を表すトラッキング情報は有用である。そのため、移動対象のアイテムのトラッキング情報をブロックチェーンに記録することが考えられる。
【０００５】
しかし、トラッキング情報がブロックチェーンに記録される場合、アイテムの数が増加するほどブロックチェーン上に記録されるトラッキング情報のデータ量が増加する。このため、アイテムのトラッキング情報をブロックチェーンへ記録する場合には、移動対象のアイテムが増加すると、ブロックチェーンに記録されるデータ量が指数関数的に増加してしまう、という課題がある。
【０００６】
本発明は、上記の事情を鑑みてなされたもので、移動対象のアイテムのトラッキング情報のデータ量を低減させつつ、アイテムのトラッキング情報をブロックチェーンへ記録することができる情報処理システム、情報処理方法、サーバ、情報処理プログラム、及びブロックチェーンデータ構造を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために本発明に係る情報処理システムは、サーバと複数のブロックチェーンノードとを含む情報処理システムであって、サーバが、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、複数のブロックチェーンノードが、ブロードキャストされたトランザクションデータをブロックチェーンへ記録し、サーバが、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、情報処理システムである。
【０００８】
また、本発明の情報処理方法は、サーバと複数のブロックチェーンノードとを含む情報処理システムにおいて実行される情報処理方法であって、サーバが、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、複数のブロックチェーンノードが、ブロードキャストされたトランザクションデータをブロックチェーンへ記録し、サーバが、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、情報処理方法である。
【０００９】
また、本発明のサーバは、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストする処理を実行するサーバである。
【００１０】
また、本発明のサーバは、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とを、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータが記録されたブロックチェーンから取得し、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、処理を実行するサーバである。
【００１１】
本発明の情報処理プログラムは、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納し、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストし、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得し、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する、処理をコンピュータに実行させるための情報処理プログラムである。
【００１２】
本発明のブロックチェーンデータ構造は、アイテムの送り元を表すアドレスと、アイテムの送り先を表すアドレスと、アイテムの識別情報が格納されたデータ構造であるアキュムレータと、を含むトランザクションデータが記録されたブロックチェーンデータ構造であって、追跡対象のアイテムの識別情報がアキュムレータに格納されているか否かの検証が行われることにより、当該アイテムの追跡に用いられる、ブロックチェーンデータ構造である。
【発明の効果】
【００１３】
本発明によれば、移動対象のアイテムのトラッキング情報のデータ量を低減させつつ、アイテムのトラッキング情報をブロックチェーンへ記録することができる、という効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態の情報処理システムの概略構成の一例を示す図である。
【図２】情報処理システムを構成する各装置として機能するコンピュータの概略ブロック図である。
【図３】本実施形態の情報処理システムの処理を説明するための説明図である。
【図４】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
【図５】本実施形態の情報処理システムの処理を説明するための説明図である。
【図６】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
【図７】本実施形態の情報処理システムの処理を説明するための説明図である。
【図８】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
【図９】本実施形態の情報処理システムの処理を説明するための説明図である。
【図１０】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
【図１１】本実施形態のアキュムレータとトランザクションとを説明するための説明図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して実施形態を詳細に説明する。
【００１６】
＜情報処理システムのシステム構成＞
【００１７】
図１は、本実施形態の情報処理システム１０を示すブロック図である。図１に示されるように、本実施形態の情報処理システム１０は、端末１２と、サーバ１４と、ブロックチェーンノード１６とを含んで構成されている。情報処理システム１０の各装置は、例えばインターネット等のネットワーク２０によって接続されている。なお、複数のブロックチェーンノード１６Ａ，１６Ｂ，１６Ｃのうちの特定のノードを説明する場合以外は、ブロックチェーンノードを単に「ブロックチェーンノード１６」と表記する。また、複数の端末１２Ａ，１２Ｂ，１２Ｃのうちの特定の端末を説明する場合以外は、端末を単に「端末１２」と表記する。
【００１８】
なお、図１には、３つのブロックチェーンノードが示されているが、より多くのブロックチェーンノードが含まれていても良い。また、図１には、３つの端末が示されているが、より多くの端末が含まれていても良い。
【００１９】
特定のデータ又は物品等であるアイテムの流通の状態を表すトラッキング情報は、有用な情報である。例えば、アイテムのトラッキング情報をユーザが取得することにより、ユーザはアイテムがどのような経路を辿りどのような場所に到着しているのか、といったことを確認することができる。
【００２０】
ここで、アイテムのトラッキング情報を適切に管理しつつ、かつ複数のユーザがトラッキング情報を簡易に取得することが可能なシステムを構築することを考える。
【００２１】
このようなシステムを構築しようとする場合、複数のユーザがトラッキング情報を取得することができるようにするために、システム上においてトラッキング情報が共有されなければならない、という点が課題となる。更に、移動対象のアイテムの数量が増加するほどトラッキング情報のデータ量が膨大となる、という点が課題となる。
【００２２】
１点目の課題を解決するために、本実施形態の情報処理システム１０は、アイテムのトラッキング情報をブロックチェーンへ格納する。ブロックチェーンを用いることにより、複数のユーザからのトラッキング情報へのアクセスが容易となり、かつトラッキング情報の改竄が困難な状態とすることができる。また、トラッキング情報をブロックチェーンへ記録した上で、２点目の課題を解決する方法として、以下の２つの方法が考えられる。
【００２３】
（１）ブロックチェーンに記録するトラッキング情報のデータ量を削減する（例えば、トラッキング情報の一部のみをブロックチェーンに記録する等）。
（２）ブロックチェーンへのトラッキング情報の記録方法を効率化することにより、トラッキング情報のデータ量を削減する。
【００２４】
本実施形態では、上記の２つの方法のうちの（２）の方法により、トラッキング情報のデータ量を削減する。具体的には、本実施形態の情報処理システム１０は、既存技術であるアキュムレータをブロックチェーンへ格納する。アキュムレータがブロックチェーンへ格納されることにより、ブロックチェーンへ記録されるデータ量が低減される。また、アキュムレータの系列は、移動対象のアイテムのトラッキング情報として利用可能である。このため、移動対象のアイテムのトラッキング情報のデータ量を低減させつつ、アイテムのトラッキング情報をブロックチェーンへ記録することができる。また、アキュムレータに対して所定の処理が実行されることにより、ある要素がアキュムレータに格納されているか否かの検証が可能となる。
【００２５】
なお、アキュムレータとしては、以下の参考文献１及び参考文献２に開示されているものが知られている。
【００２６】
参考文献１：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＞
参考文献２：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＞
【００２７】
上記参考文献１に開示されているアキュムレータは、アキュムレータのサイズが固定長で、アキュムレータに格納するアイテムの順序が関係ないRSA Accumulatorである。RSA Accumulatorは、ハッシュ関数のような一方向性を有する関数である。また、上記参考文献２に開示されているアキュムレータは、完全二分木を利用したハッシュベースのアキュムレータである。本実施形態では、アキュムレータとしてRSA Accumulatorを用いる場合を例に説明する。
【００２８】
情報処理システム１０に含まれる各装置は、ＣＰＵ（Central Processing Unit）、各処理ルーチンを実現するためのプログラム等を記憶したＲＯＭ（Read Only Memory）、データを一時的に記憶するＲＡＭ（Random Access Memory）、記憶手段としてのメモリ、ネットワークインタフェース等を含んだコンピュータによって実現される。
【００２９】
端末１２、サーバ１４、及びブロックチェーンノード１６は、例えば、図２に示すコンピュータ７０で実現することができる。コンピュータ７０はＣＰＵ７１、一時記憶領域としてのメモリ７２、及び不揮発性の記憶部７３を備える。また、コンピュータ７０は、入出力装置等（図示省略）が接続される入出力interface（Ｉ／Ｆ）７４、及び記録媒体に対するデータの読み込み及び書き込みを制御するread/write（Ｒ／Ｗ）部７５を備える。また、コンピュータ７０は、インターネット等のネットワークに接続されるネットワークＩ／Ｆ７６を備える。ＣＰＵ７１、メモリ７２、記憶部７３、入出力Ｉ／Ｆ７４、Ｒ／Ｗ部７５、及びネットワークＩ／Ｆ７６は、バス７７を介して互いに接続される。
【００３０】
記憶部７３は、Hard Disk Drive（ＨＤＤ）、solid state drive（ＳＳＤ）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部７３には、コンピュータ７０を機能させるためのプログラムが記憶されている。ＣＰＵ７１は、プログラムを記憶部７３から読み出してメモリ７２に展開し、プログラムが有するプロセスを順次実行する。
【００３１】
＜情報処理システム１０の作用＞
【００３２】
次に、本実施形態の情報処理システム１０の作用について説明する。本実施形態では、情報処理システム１０が、商品の流通を追跡する場合を例に説明する。
【００３３】
例えば、情報処理システム１０とは異なるシステムによって、商品に対して貼付するＱＲコード（登録商標）が生成される。例えば、商品の製造時にＱＲコード（登録商標）が商品単位で生成され、ＱＲコード（登録商標）が商品に貼付される。なお、ＱＲコード（登録商標）は追跡したい商品単位毎に生成される。
【００３４】
そして、例えば、商品が出荷又は入荷されるタイミングにおいて、商品に貼付されているＱＲコード（登録商標）が所定の読取装置によって読み取られ、ＱＲコード（登録商標）に対応した商品の識別情報（以下、単に「商品のＩＤ」と称する。）が得られる。この商品のＩＤが後述するアキュムレータに格納される。なお、ＩＤはロット単位など任意の単位に付与されるようにしてもよい。
【００３５】
ＱＲコード（登録商標）が貼付されている複数の商品が各拠点（例えば、店舗、倉庫、及び工場等）に配送される。なお、商品が流通する各拠点は、秘密鍵と公開鍵とのペアを有している。そして、例えば、商品の拠点間の移動（例えば、Ａ工場からＢ倉庫への移動）がブロックチェーン上におけるトランザクションによって表現される。ブロックチェーン上のトランザクションにおける送り元と送り先とが、商品の出荷元と商品の入荷先に対応する。なお、商品が各拠点に届いた際には、商品に貼付されているＱＲコード（登録商標）が読み取られ、その拠点に商品が届いたことを表す情報がブロックチェーンに記録される。そして、商品がユーザに届いた際には商品に貼付されているＱＲコード（登録商標）を読み込むことにより、商品のトラッキング情報を確認することが可能となる。
【００３６】
例えば、商品が出荷又は入荷されるタイミングにおいて、情報処理システム１０の端末１２により商品に貼付されているＱＲコード（登録商標）が読み取られると、図３に示されるシーケンスが実行される。
【００３７】
ステップＳ１００において、端末１２は、アキュムレータの作成依頼を表す信号とＱＲコード（登録商標）の読取により得られた商品の送り先とをサーバ１４に対して出力する。
【００３８】
ステップＳ１０２において、サーバ１４は、上記ステップＳ１００で出力された各情報を取得する。そして、サーバ１４は、商品のＩＤから得られる情報を格納する対象のアキュムレータを初期化する。
【００３９】
ステップＳ１０４において、端末１２は、ＱＲコード（登録商標）の読取により得られた商品のＩＤをサーバ１４に対して出力する。
【００４０】
ステップＳ１０６において、サーバ１４は、上記ステップＳ１０４で出力された商品のＩＤを取得する。そして、サーバ１４は、上記ステップＳ１０２で初期化されたアキュムレータに、商品のＩＤから得られる情報を格納する。
【００４１】
例えば、商品のＩＤ（ｘ）から得られる情報Ｈ（ｘ）がアキュムレータＡｉへ格納される場合、以下の式に従って商品のＩＤ（ｘ）がアキュムレータＡｉに格納され、新たなアキュムレータＡｉ＋１が生成される。なお、以下の式におけるＨはハッシュ関数を表し、ｉはアキュムレータを識別するためのインデックスを表す。なお、ハッシュ関数Ｈは、要素を素数へマッピングするための関数であり、既知のものである。
【００４２】
Ａｉ＋１＝ＡｉＨ（ｘ）
【００４３】
なお、複数の商品が存在している場合、上記ステップＳ１０４と上記ステップＳ１０６とを含むステップＳ１０７の処理は、商品の数だけ繰り返される。このため、例えば、図４（Ａ）に示されるように、商品のＩＤとして（ｖ，ｗ，ｘ，ｙ，ｚ）が存在している場合、アキュムレータＡ１に商品のＩＤ（ｖ，ｗ，ｘ，ｙ，ｚ）から得られる情報が格納される。
【００４４】
ステップＳ１０８において、サーバ１４は、上記ステップＳ１０６で生成されたアキュムレータを含むトランザクションデータを生成する。例えば、サーバ１４は、図４（Ｂ）に示されるような、各商品の送り元を表すアドレス１と各商品の送り先を表すアドレス２とアキュムレータＡ１とを含むトランザクションデータＴＸを生成する。
【００４５】
ステップＳ１１０において、サーバ１４は、上記ステップＳ１０８で生成されたトランザクションデータを、ブロックチェーンノード１６へブロードキャストする。
【００４６】
ステップＳ１１２において、ブロックチェーンノード１６は、上記ステップＳ１１０でブロードキャストされたトランザクションデータを取得し、トランザクションデータをブロックチェーンに記録する。これにより、商品の出荷又は入荷時において、商品のＩＤがアキュムレータに格納され、かつ商品の送り元と商品の送り先とアキュムレータとの情報を含むトランザクションデータがブロックチェーンに記録されたことになる。
【００４７】
このため、本実施形態のブロックチェーンには、商品の送り元を表すアドレスと、商品の送り先を表すアドレスと、商品のＩＤから得られる情報が格納されたデータ構造であるアキュムレータと、を含むトランザクションデータが記録された構造となっている。後述するように、このブロックチェーンは、追跡対象の商品のＩＤがアキュムレータに格納されているか否かの検証が行われることにより、当該アイテムの追跡に用いられる。
【００４８】
商品が入荷又は出荷されるタイミングにおいて図３のシーケンスが実行されることにより、商品の送り元と商品の送り先とアキュムレータとを含むトランザクションデータがブロックチェーンに記録される。なお、商品の入荷又は出荷がされる毎にアキュムレータが生成されるわけではなく、アキュムレータが一旦作成されると、そのアキュムレータは原則として利用され続ける。しかし、後述するように、商品が異なる場所へ搬送される場合等には、アキュムレータが再度生成される。また、ブロックチェーンに記録されたアキュムレータの系列は、商品の追跡を行う際に利用される。
【００４９】
なお、図３のシーケンスは、複数の商品全てが、ある送り元からある送り先へ搬送される場合のシーケンスである。このため、以下では、複数の商品のうちの一部の商品がある送り先へ搬送され、複数の商品のうちの残りの商品が別の送り先へ搬送される場合を説明する。複数の商品のうちの一部の商品がある送り先へ搬送され、複数の商品のうちの残りの商品が別の送り先へ搬送される場合には、図５のシーケンスが実行される。
【００５０】
図５のシーケンスにおいて、サーバ１４は、複数のアイテムのうちの、第１の商品の送り先と第２の商品の送り先とが異なる場合、第１の商品のＩＤから得られる情報を第１のアキュムレータに格納し、第２の商品のＩＤから得られる情報を第２のアキュムレータへ格納する。
【００５１】
具体的には、まず、ステップＳ２００において、端末１２は、アキュムレータの作成依頼を表す信号と、ＱＲコード（登録商標）の読取により得られた各商品の異なる送り先とをサーバ１４に対して出力する。
【００５２】
ステップＳ２０２において、サーバ１４は、上記ステップＳ２００で出力された各情報を取得する。そして、サーバ１４は、商品のＩＤから得られる情報を格納する対象のアキュムレータを初期化する。具体的には、サーバ１４は、送り先の異なるアキュムレータを初期化する。
【００５３】
ステップＳ２０４において、端末１２は、ＱＲコード（登録商標）の読取により得られた各商品のＩＤをサーバ１４に対して出力する。
【００５４】
ステップＳ２０６において、サーバ１４は、上記ステップＳ２０４で出力された商品のＩＤを取得する。そして、サーバ１４は、上記ステップＳ２０２で送り先毎に初期化されたアキュムレータの各々に、各商品のＩＤから得られる情報を格納する。なお、送り先が同一の商品のＩＤは同一のアキュムレータに格納される。
【００５５】
例えば、図６（Ａ）に示されるように、商品のＩＤとして（ｖ，ｗ，ｘ，ｙ，ｚ）が存在している場合を例に説明する。図６（Ａ）に示されるように、商品のＩＤ（ｖ）はアドレス２−１に対応する送り先へ搬送され、商品のＩＤ（ｗ，ｘ，ｙ，ｚ）はアドレス２−２に対応する送り先へ搬送される。この場合には、アドレス２−１に対応するアキュムレータＡ２と、アドレス２−２に対応するアキュムレータＡ３とが生成される。そして、アキュムレータＡ２には商品のＩＤ（ｖ）から得られる情報が格納され、アキュムレータＡ３には商品のＩＤ（ｗ，ｘ，ｙ，ｚ）から得られる情報が格納される。
【００５６】
ステップＳ２０８において、サーバ１４は、上記ステップＳ２０６で生成されたアキュムレータを含むトランザクションデータを生成する。例えば、サーバ１４は、図６（Ｂ）に示されるような、商品（ｖ，ｗ，ｘ，ｙ，ｚ）の送り元を表すアドレス１とアキュムレータＡ１と、商品（ｖ）の送り先を表すアドレス２−１とアキュムレータＡ２と、商品（ｗ，ｘ，ｙ，ｚ）の送り先を表すアドレス２−２とアキュムレータＡ３と、を含むトランザクションデータＴＸを生成する。
【００５７】
ステップＳ２１０において、サーバ１４は、上記ステップＳ２０８で生成されたトランザクションデータを、ブロックチェーンノード１６へブロードキャストする。
【００５８】
ステップＳ２１２において、ブロックチェーンノード１６は、上記ステップＳ２１０でブロードキャストされたトランザクションデータを取得し、トランザクションデータをブロックチェーンに記録する。これにより、商品の出荷又は入荷時において、商品のＩＤがアキュムレータに格納され、かつ商品の送り元と商品の送り先とアキュムレータとの情報を含むトランザクションデータがブロックチェーンに記録されたことになる。
【００５９】
次に、複数の異なる送り元から同一の送り先へ商品が搬送される場合を説明する。この場合には、図７のシーケンスが実行される。
【００６０】
図７のシーケンスにおいて、サーバ１４は、複数の商品のうちの、第１の商品の送り先と第２の商品の送り先とが同一である場合、第１の商品のＩＤと第２の商品のＩＤとを同一のアキュムレータへ格納する。
【００６１】
具体的には、まず、ステップＳ３００において、端末１２は、ブロックチェーンノード１６から対象の商品の直近のトランザクションデータをサーバ１４経由で取得する。そして、端末１２は、トランザクションデータに含まれるアキュムレータを取得する。
【００６２】
ステップＳ３０１において、端末１２は、上記ステップＳ３００で取得されたアキュムレータと対象の商品の送り先とをサーバ１４へ出力する。
【００６３】
ステップＳ３０２において、端末１２は、上記ステップＳ３００で取得されたアキュムレータに追加する予定の商品のＩＤをサーバ１４へ出力する。
【００６４】
ステップＳ３０４において、サーバ１４は、上記ステップＳ３０２で出力された商品のＩＤを取得する。そして、サーバ１４は、端末１２から出力された追加予定の商品のＩＤをアキュムレータに追加する。
【００６５】
例えば、図８（Ａ）に示されるように、商品のＩＤとして（ｖ，ｘ）が存在している場合を例に説明する。図８（Ａ）に示されるように、商品のＩＤ（ｖ）はアドレス３−１からアドレス４−１へ搬送され、商品のＩＤ（ｘ）はアドレス３−２からアドレス４−１へ搬送される。この場合には、端末１２は、アドレス３−１に対応するアキュムレータＡ２を取得し、アキュムレータＡ２をサーバ１４へ出力する。そして、サーバ１４は、アキュムレータＡ２に商品のＩＤ（ｘ）から得られる情報を追加して、新たなアキュムレータＡ６を生成する。これにより、アキュムレータＡ６には商品のＩＤ（ｖ，ｘ）から得られる情報が格納されたことになる。
【００６６】
ステップＳ３０６において、サーバ１４は、上記ステップＳ３０４で生成されたアキュムレータを含むトランザクションデータを生成する。例えば、サーバ１４は、図８（Ｂ）に示されるような、商品のＩＤ（ｖ）の送り元を表すアドレス３−１とアキュムレータＡ２と、商品のＩＤ（ｘ）の送り元を表すアドレス３−２とアキュムレータＡ４と、商品（ｖ，ｘ）の送り先を表すアドレス４−１とアキュムレータＡ６と、を含むトランザクションデータＴＸを生成する。
【００６７】
ステップＳ３０８において、サーバ１４は、上記ステップＳ３０６で生成されたトランザクションデータを、ブロックチェーンノード１６へブロードキャストする。
【００６８】
ステップＳ３１０において、ブロックチェーンノード１６は、上記ステップＳ３０８でブロードキャストされたトランザクションデータを取得し、トランザクションデータをブロックチェーンに記録する。これにより、商品の出荷又は入荷時において、商品のＩＤがアキュムレータに格納され、かつ商品の送り元と商品の送り先とアキュムレータとの情報を含むトランザクションデータがブロックチェーンに記録されたことになる。
【００６９】
以上の図３、図５、及び図７の各シーケンスが実行されることにより、商品のトラッキング情報であるアキュムレータの系列がブロックチェーンに格納されたことになる。
【００７０】
次に、ユーザが商品の追跡を行う場合を説明する。この場合には、図９に示されるシーケンスが実行される。
【００７１】
図９のシーケンスにおいて、サーバ１４は、追跡対象の商品のＩＤを含む要求信号を受け付けた場合、要求信号に含まれるＩＤに対応する商品の移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得する。そして、サーバ１４は、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象の商品のＩＤが格納されているか否かの検証を行い、検証結果を出力する。
【００７２】
具体的には、まず、ステップＳ４００において、商品の追跡を行おうとするユーザが操作する端末１２は、追跡対象の商品のＩＤと最終の送り先とをサーバ１４へ出力する。
【００７３】
ステップＳ４０２において、サーバ１４は、上記ステップＳ４００で出力された商品のＩＤと最終の送り先と取得する。そして、サーバ１４は、商品の最終の送り先のアドレスが含まれているトランザクションデータをブロックチェーンから取得する。
【００７４】
ステップＳ４０４において、サーバ１４は、上記ステップＳ４０２で取得されたトランザクションデータに含まれているアキュムレータに、商品のＩＤが含まれているか否かを検証する。例えば、以下の式を演算することにより、商品のＩＤ（ｘ）がアキュムレータＡに含まれているか否かを検証することができる。
【００７５】
以下の式は、アキュムレータA内に要素ｘが存在するかの包含証明をπ＝Ａ１／ｘとして提供される、ＲＳＡアキュムレータを使った場合の例であり、πと要素ｘの演算結果と、アキュムレータＡの値を比較することにより、アキュムレータＡにｘが含まれていることを表す。
【００７６】
πｘ＝Ａ
【００７７】
なお、サーバ１４は、商品の最終の送り先のアドレスが含まれているトランザクションデータの送り元のアドレスを参照し、その送り元が送り先となっているトランザクションデータを辿る。これが繰り返されることにより、追跡対象の商品の複数のトランザクションデータがサーバ１４によって取得される。このため、ステップＳ４０２とステップＳ４０４とを含むステップＳ４０５の処理は繰り返し実行される。
【００７８】
ステップＳ４０８において、サーバ１４は、複数のトランザクションデータに付与されているアキュムレータに、追跡対象の商品のＩＤが含まれていたか否かを表す検証結果を端末１２へ出力する。
【００７９】
ステップＳ４１０において、端末１２は、上記ステップＳ４０８で出力された検証結果を取得し、表示部（図示省略）へ表示する。商品の追跡を行おうとするユーザは、表示部に表示された検証結果を確認する。これにより、ユーザは、追跡対象の商品がどのような流通経路を辿ったのかを確認することができる。
【００８０】
例えば、図１０及び図１１に示されるように、ユーザが商品（ｘ）の流通経路を確認する場合を例に説明する。なお、図１１は、図１０の各フェーズにおけるトランザクションデータである。
【００８１】
図１１に示されるように、最終の送り先であるアドレス５−１の送り先内で商品（ｘ）を含むアキュムレータが探索され、図１０のトランザクションＴＸ４のアキュムレータＡ６が特定される。
【００８２】
次に、アキュムレータＡ６に商品（ｘ）が含まれている事が確認される。そして、トランザクションＴＸ４の送り先（アドレス５−１：Ａ６）に紐づく送り元（アドレス４−１：Ａ６）が特定される。なお、送り元（アドレス４−１：Ａ６）のうちのアキュムレータＡ６は、送り先（アドレス５−１：Ａ６）のアキュムレータＡ６と同一であるため、商品（ｘ）の存在確認は行われない。
【００８３】
次に、トランザクションＴＸ４の送り元（アドレス４−１：Ａ６）に紐づくトランザクションＴＸ３の送り先（アドレス４−１：Ａ６）が特定される。そして、トランザクションＴＸ３の送り先（アドレス４−１：Ａ６）に紐づくトランザクションＴＸ３の送り元（アドレス３−１：Ａ２）と送り元（アドレス３−２：Ａ４）が特定される。
【００８４】
そして、アキュムレータＡ２には商品（ｘ）が含まれていないことが確認される。この場合、それ以降のトランザクションＴＸ３の送り元（アドレス３−１：Ａ２）に関しては商品（ｘ）の追跡は行われない。
【００８５】
次に、アキュムレータＡ４に商品（ｘ）が含まれていることが確認される。そして、トランザクションＴＸ３の送り元（アドレス３−２：Ａ４）に紐づくトランザクションＴＸ２の送り先（アドレス３−２：Ａ４）が特定される。
【００８６】
次に、トランザクションＴＸ２の送り先（アドレス３−２：Ａ４）に紐づくトランザクションＴＸ２の送り元（アドレス２−２：Ａ３）が特定される。そして、アキュムレータＡ３に商品（ｘ）が含まれていることが確認される。
【００８７】
次に、トランザクションＴＸ２の送り元（アドレス２−２：Ａ３）に紐づくトランザクションＴＸ１の送り先（アドレス２−２：Ａ３）が特定される。そして、トランザクションＴＸ１の送り先（アドレス２−２：Ａ３）に紐づくトランザクションＴＸ１の送り元（アドレス１：Ａ１）が特定される。そして、アキュムレータＡ１に商品のＩＤ（ｘ）が含まれていることが確認される。
【００８８】
そして、トランザクションＴＸ１の送り元（アドレス１：Ａ１）に紐づく送り先が存在しない（又は商品のＩＤ（ｘ）を含むアキュムレータ見つからない）ため、商品のＩＤ（ｘ）の追跡が完了する。
【００８９】
以上説明したように、本実施形態に係る情報処理システムのサーバが、アイテムの識別情報を、アイテムの有無を識別するためのデータ構造であるアキュムレータへ格納する。そして、サーバが、アイテムの送り元を表すアドレスとアイテムの送り先を表すアドレスとアキュムレータとを含むトランザクションデータを、複数のブロックチェーンノードへブロードキャストする。そして、複数のブロックチェーンノードが、ブロードキャストされたトランザクションデータをブロックチェーンへ記録する。そして、サーバが、追跡対象のアイテムの識別情報を含む要求信号を受け付けた場合、要求信号に含まれる識別情報に対応するアイテムの移動を行った、送り元を表すアドレス及び送り先を表すアドレスに対応するトランザクションデータの系列と、トランザクションデータの系列に対応するアキュムレータの系列とをブロックチェーンから取得する。そして、サーバは、取得したアキュムレータの系列のうちの各アキュムレータに追跡対象のアイテムの識別情報が格納されているか否かの検証を行い、検証結果を出力する。これにより、移動対象のアイテムのトラッキング情報のデータ量を低減させつつ、アイテムのトラッキング情報をブロックチェーンへ記録することができる。
【００９０】
また、本実施形態によれば、膨大な記録はアキュムレータを用いることで効率的にデータを保持することができ、複数のユーザによるトラッキング情報の共有が可能となる。また、アキュムレータとトランザクションにおける送り元及び送り先との関係を紐付けることにより、アキュムレータに記録されたアイテムの識別情報の移動を表現することができる。これにより、アキュムレータに記録されている情報のトラッキングが可能となる。
【００９１】
また、本実施形態によれば、アキュムレータをブロックチェーンに記録することにより、アイテムの各々の個別の情報をブロックチェーンに記録することなく、移動対象のアイテムの追跡を行うことができる。具体的には、アイテムの識別情報が格納されるアキュムレータのみがブロックチェーンに記録されることにより、ブロックチェーンに記録される情報が大幅に削減される。また、アキュムレータに対象のアイテムの識別情報が格納されているか否かの検証とブロックチェーン上のトランザクションデータとから、移動がなされた特定のアイテムがどの様な経路を辿っているかが判別可能となる。
【００９２】
なお、従来のブロックチェーンにおいては、アイテムの経路はブロックチェーン上に記録される。これに対し、本実施形態では、対象となるアイテムの入荷又は出荷等の管理と連携させることにより、アイテムがどの場所に到着しているかを表すトラッキング情報を取得することができる。
【００９３】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００９４】
例えば、アイテムとしては現実物に限らず特定のデータも含まれる。
【００９５】
また、上記実施形態では、トランザクションの形式がUTXO（Unspent Transaction Output）型である場合を例に説明したが、これに限定されるものではない。例えば、Ethereumの様なアカウント型のスマートコントラクトであっても良い。この場合には、送り元を表すアドレスから送り先を表すアドレスへのアイテムの条件付き移動を表現するためのスマートコントラクトが、ブロックチェーン上に予めデプロイされる。そして、アキュムレータを含む実際の移動を表すトランザクションデータがブロックチェーンへ記録された後、所定の条件が満たされた場合に、送り元を表すアドレスから送り先を表すアドレスへのアイテムの移動が記録される。
【００９６】
なお、アイテムの識別情報は、どのようなユーザであっても比較的簡易に取得することができるため、アイテムの送信元のアドレスを保持しているユーザがどのような主体であるのか、その正当性を確認したい場合がある。このため、PKI（public key infrastructure）の仕組みを用いて、送信元のアドレスを保持しているユーザの身元を解析するようにしてもよい。この場合には、送信元のアドレスに対応する公開鍵と送信元のアドレスを保持しているユーザの情報とが予め紐づけられており、送信元のアドレスに対応する公開鍵の情報に基づき、そのユーザの正当性が確認される。
【００９７】
また、上記実施形態では、ＱＲコード（登録商標）を用いて、アイテムの識別情報を取得する場合を例に説明したが、これに限定されるものではなく、他の方法によってアイテムの識別情報を取得してもよい。また、上記の各処理が実行されるタイミングも本実施形態に限定されるものではない。
【００９８】
また、上記実施形態では、アキュムレータとしてRSA Accumulatorを用いる場合を例に説明したが、これに限定されるものではない。例えば、上記参考文献２に開示されているような完全二分木を利用したハッシュベースのアキュムレータ又は他のアキュムレータを用いるようにしてもよい。なお、上述したような、ハッシュベースのアキュムレータが用いられる場合には、アイテムの識別情報から得られる情報としてのハッシュ値を計算する必要があるが、他のアキュムレータを利用する場合には、これに限定されるものではない。例えば、アイテムの識別情報をそのままアキュムレータへ格納するようにしてもよい。
【００９９】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【０１００】
１０ 情報処理システム
１２，１２Ａ，１２Ｂ，１２Ｃ 端末
１４ サーバ
１６，１６Ａ，１６Ｂ，１６Ｃ ブロックチェーンノード
２０ ネットワーク
７０ コンピュータ
７２ メモリ
７３ 記憶部
【図１】
2022000770.tif 000003
【図２】
2022000770.tif 000004
【図３】
2022000770.tif 000005
【図４】
2022000770.tif 000006
【図５】
2022000770.tif 000007
【図６】
2022000770.tif 000008
【図７】
2022000770.tif 000009
【図８】
2022000770.tif 000010
【図９】
2022000770.tif 000011
【図１０】
2022000770.tif 000012
【図１１】
2022000770.tif 000013