(57)【要約】【課題】ブロックチェーンに登録されたデータの一部を削除することを可能にする。【解決手段】直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成するブロック生成部を備える、情報処理装置が提供される。【選択図】図７
2019211821.tif 000002
【特許請求の範囲】
【請求項１】
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成するブロック生成部を備える、
情報処理装置。
【請求項２】
前記第１のデータまたは前記第２のデータに含まれるトランザクションデータに対応付けられた、前記トランザクションデータの生成元を示す情報に基づいて前記生成元が有する権限情報を確認する権限確認部をさらに備え、
前記ブロック生成部は、前記権限情報の確認結果に基づいて生成対象となるブロックに前記トランザクションデータを含めるか否かを判断する、
請求項１に記載の情報処理装置。
【請求項３】
前記第１のデータまたは前記第２のデータに含まれるトランザクションデータに対応付けられた、前記トランザクションデータに対応する有体物の位置情報を確認する位置確認部をさらに備え、
前記ブロック生成部は、前記位置情報の確認結果に基づいて生成対象となるブロックに前記トランザクションデータを含めるか否かを判断する、
請求項１に記載の情報処理装置。
【請求項４】
前記位置情報は、前記トランザクションデータが生成された時点、または前記時点の前後所定時間内における前記有体物の位置を示す情報である、
請求項３に記載の情報処理装置。
【請求項５】
前記有体物は、流通の対象となる物品であり、
前記トランザクションデータは、前記物品の流通過程で生成されるデータを含む、
請求項３に記載の情報処理装置。
【請求項６】
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成すること、を有する、
コンピュータにより実行される情報処理方法。
【請求項７】
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成すること
をコンピュータに実現させるためのプログラム。
【請求項８】
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結された一部のブロックから前記第２のデータの少なくとも一部を削除するデータ削除部を備える、
情報処理装置。
【請求項９】
前記データ削除部は、前記第２のデータに含まれるトランザクションデータを少なくとも削除する、
請求項８に記載の情報処理装置。
【請求項１０】
前記トランザクションデータの削除に要する権限情報を確認する権限確認部をさらに備え、
前記データ削除部は、前記権限情報の確認結果に基づいて前記トランザクションデータを削除するか否かを判断する、
請求項９に記載の情報処理装置。
【請求項１１】
前記トランザクションデータに対応付けられた、前記トランザクションデータに対応する有体物の位置情報を確認する位置確認部をさらに備え、
前記データ削除部は、前記位置情報の確認結果に基づいて前記トランザクションデータを削除するか否かを判断する、
請求項９に記載の情報処理装置。
【請求項１２】
前記位置情報は、前記トランザクションデータが生成された時点、または前記時点の前後所定時間内における前記有体物の位置を示す情報である、
請求項１１に記載の情報処理装置。
【請求項１３】
前記データ削除部は、前記位置情報に基づいて決まる区間に対応する前記トランザクションデータの少なくとも一部を削除する、
請求項１１に記載の情報処理装置。
【請求項１４】
前記有体物は、流通の対象となる物品であり、
前記トランザクションデータは、前記物品の流通過程の情報に関連付けられたデータを含む、
請求項１３に記載の情報処理装置。
【請求項１５】
前記区間は、前記流通の始端と終端に対応する区間である、
請求項１４に記載の情報処理装置。
【請求項１６】
前記データ削除部は、前記第２のデータに含まれる前記トランザクションデータを削除し、前記第１のデータを維持する、
請求項９に記載の情報処理装置。
【請求項１７】
前記第１のデータは、前記第２のデータからは独立したデータであるブロックチェーンのナンスデータを含み、
前記第２の関連データは、前記第１のデータに含まれる前記ブロックチェーンのナンスデータに関連付けられたハッシュデータであり、
前記データ削除部は、前記第２のデータに含まれる前記トランザクションデータと前記第２の関連データを少なくとも削除する、
請求項１６に記載の情報処理装置。
【請求項１８】
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結された一部のブロックから前記第２のデータの少なくとも一部を削除すること、を有する、
コンピュータにより実行される情報処理方法。
【請求項１９】
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結された一部のブロックから前記第２のデータの少なくとも一部を削除すること
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、ブロックチェーンを使用するサービスが盛んに開発されている。例えば、仮想通貨の授受にブロックチェーンを使用するBitcoin等が挙げられる。ブロックチェーンは、登録データの改ざんなどを防ぎ、複数事業者によるノードの相互監視効果によって登録データを高い信頼度で保存することができる。
【０００３】
例えば、以下の特許文献１には、ブロックチェーン生成装置を用いる生成者の識別子に関連するトランザクションデータを用いて当該生成者が新たなブロックを生成可能な資格を有するか否かを判定し、当該判定結果に基づいて新たなブロックの生成を制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−９１１４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、ブロックチェーンは、基本的に全てのデータを削除することなく保持し続けることによってブロックチェーンに登録されているデータの真正性を担保する。そのため、ブロックチェーンの運用期間が長くなるほど、ブロックチェーン全体のデータサイズが莫大になり、それによって、莫大な情報処理リソースが消費される可能性がある。
【０００６】
そこで、本開示は上記に鑑みてなされたものであり、本開示は、ブロックチェーンに登録されたデータの一部を削除することが可能な、新規かつ改良された情報処理装置、情報処理方法、およびプログラムを提供する。
【課題を解決するための手段】
【０００７】
本開示によれば、直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成するブロック生成部を備える、情報処理装置が提供される。
【０００８】
また、本開示によれば、直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成すること、を有する、コンピュータにより実行される情報処理方法が提供される。
【０００９】
また、本開示によれば、直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成することをコンピュータに実現させるためのプログラムが提供される。
【００１０】
また、本開示によれば、直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結された一部のブロックから前記第２のデータの少なくとも一部を削除するデータ削除部を備える、情報処理装置が提供される。
【００１１】
また、本開示によれば、直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結された一部のブロックから前記第２のデータの少なくとも一部を削除すること、を有する、コンピュータにより実行される情報処理方法が提供される。
【００１２】
また、本開示によれば、直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結された一部のブロックから前記第２のデータの少なくとも一部を削除することをコンピュータに実現させるためのプログラムが提供される。
【発明の効果】
【００１３】
以上説明したように本開示によれば、ブロックチェーンに登録されたデータの一部を削除することが可能になる。
【００１４】
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１５】
【図１】ブロックチェーンの概要を説明するための図である。
【図２】ブロックチェーンの概要を説明するための図である。
【図３】ブロックチェーンの概要を説明するための図である。
【図４】ブロック生成装置１００によって生成されるブロックの具体例を示す図である。
【図５】データ削除装置２００による、ブロックチェーンに登録されたデータの削除の具体例を示す図である。
【図６】本開示が物流システムに適用された場合のイメージを示す図である。
【図７】データ削除装置２００による、ブロックチェーンに登録されたデータの削除の具体例を示す図である。
【図８】データ削除装置２００による、ブロックチェーンに登録されたデータの削除の具体例を示す図である。
【図９】データ削除装置２００による、ブロックチェーンに登録されたデータの削除の具体例を示す図である。
【図１０】本実施形態に係る情報処理システムの構成例を示す図である。
【図１１】トランザクション生成装置３００の機能構成例を示すブロック図である。
【図１２】ブロック生成装置１００の機能構成例を示すブロック図である。
【図１３】権限情報と位置情報に基づいて生成可能なトランザクションデータの種類の具体例を示す図である。
【図１４】データ削除装置２００の機能構成例を示すブロック図である。
【図１５】権限情報と位置情報に基づいて削除可能なトランザクションデータの種類の具体例を示す図である。
【図１６】トランザクション生成装置３００によるトランザクションデータの生成処理の具体例を示すフローチャートである。
【図１７】ブロック生成装置１００によるブロックの生成処理の具体例を示すフローチャートである。
【図１８】ブロック生成装置１００によるブロックの生成処理の具体例を示すフローチャートである。
【図１９】データ削除装置２００による第２のデータの削除処理の具体例を示すフローチャートである。
【図２０】変形例に係る第２の関連データの態様を示す図である。
【図２１】変形例に係る第２の関連データの態様を示す図である。
【図２２】変形例に係る第２の関連データの態様を示す図である。
【図２３】ブロック生成装置１００、データ削除装置２００、またはトランザクション生成装置３００を具現する情報処理装置９００のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１７】
なお、説明は以下の順序で行うものとする。
１．ブロックチェーンの概要
２．実施形態
２．１．本開示の概要
２．２．情報処理システムの概要
２．３．トランザクション生成装置３００の機能構成例
２．４．ブロック生成装置１００の機能構成例
２．５．データ削除装置２００の機能構成例
２．６．処理フロー例
３．変形例
４．ハードウェア構成例
５．まとめ
【００１８】
＜１．ブロックチェーンの概要＞
本実施形態に係る情報処理システムでは、ピアツーピアネットワーク（「ピアツーピア型分散ファイルシステム」とも呼称される）に流通している分散型のピアツーピアデータベースの一種であるブロックチェーンが利用される。よって本開示の一実施形態について説明する前に、まず、ブロックチェーンの概要について説明する。
【００１９】
図１に示すように、ブロックチェーンは、複数のブロックがあたかも鎖のように連なって含まれるデータである。それぞれのブロックには、１または２以上のデータが、トランザクションデータ（図中では、トランザクションデータ１〜トランザクションデータｎ）として格納され得る。
【００２０】
ブロックチェーンとしては、例えば、Bitcoin等の仮想通貨のデータの授受に用いられるブロックチェーンが挙げられる。仮想通貨のデータの授受に用いられるブロックチェーンには、例えば、直前のブロックのハッシュと、ナンスと呼ばれる値が含まれる。直前のブロックのハッシュは、直前のブロックから正しく連なる、「正しいブロック」であるか否かを判定するために用いられる情報である。ナンスは、ハッシュを用いた認証においてなりすましを防ぐために用いられる情報であり、ナンスを用いることによって改ざんが防止される。ナンスとしては、例えば、文字列、数字列、あるいは、これらの組み合わせを示すデータ等が挙げられる。
【００２１】
また、ブロックチェーンでは、各トランザクションデータに暗号鍵を用いた電子署名が付与されることによって、なりすましが防止される。また、各トランザクションデータは公開され、ブロックチェーンネットワーク全体で共有される。なお、各トランザクションデータは暗号鍵を用いて暗号化されてもよい。
【００２２】
図２は、ブロックチェーンシステムにおいて、トランザクションデータに含まれる対象データ（例えば、Bitcoinにおけるcoin）がユーザＡによって登録される様子を示す図である。ユーザＡは、ブロックチェーンに登録する対象データに対して、ユーザＡの秘密鍵を用いて生成された電子署名を付する。そしてユーザＡは、電子署名が付された対象データを含むトランザクションデータをブロックチェーンネットワーク上にブロードキャストする。これによって、対象データの保有者がユーザＡであることが担保される。
【００２３】
図３は、ブロックチェーンシステムにおいて、対象データがユーザＡからユーザＢに移行される様子を示す図である。ユーザＡは、ユーザＡの秘密鍵を用いて生成した電子署名をトランザクションデータに付し、当該トランザクションデータにユーザＢの公開鍵を含める。これにより、対象データがユーザＡからユーザＢに移行されたことが示される。また、ユーザＢは、対象データの取引に際して、ユーザＡの公開鍵をユーザＡから取得し、電子署名が付された、または暗号化された対象データを取得してもよい。
【００２４】
また、ブロックチェーンシステムでは、例えばサイドチェイン技術を利用することによって、Bitcoinのブロックチェーンなどの、既存の仮想通貨データの授受に用いられるブロックチェーンに、仮想通貨とは異なる他の対象データを含めることも可能である。
【００２５】
＜２．実施形態＞
（２．１．本開示の概要）
続いて、本開示の概要について説明する。
【００２６】
上記のとおり、ブロックチェーンは、基本的に全てのデータを削除することなく保持し続けることによってブロックチェーンに登録されているデータの真正性を担保する。より具体的には、ブロックチェーンにおける各ブロックには、直前のブロックのハッシュが登録されることによって各ブロックが互いに関連付けられる。そして、あるブロックに含まれるトランザクションデータが削除されたり改ざんされたりした場合には当該ブロックのハッシュが変わり、直後のブロックに含まれるハッシュとの整合性が失われるため、トランザクションデータの削除および改ざんの検出が可能となる。一方で、ブロックチェーン全体の整合性を保つために一度ブロックチェーンに登録されたデータを削除することは困難である。そのため、ブロックチェーンの運用期間が長くなるほど、ブロックチェーン全体のデータサイズが莫大になり、それによって、莫大な情報処理リソースが消費される可能性がある。
【００２７】
ここで、別の観点から考えてみると、各種情報処理システムで保持される各種データのうち、全てのデータが常に保持され続けなければいけないわけではない。例えば、物流に関する情報処理システムにおいては、流通の対象となる物品が流通の終端まで到達し、相当の期間（例えば、数か月間〜数年間程度）が経過した後には、流通過程で生成された一部のデータ（例えば、製品情報、または経路情報など）が削除されても業務上問題が生じない場合がある。
【００２８】
本件の開示者は上記事情に鑑みて、本開示に係る技術を創作するに至った。本開示に係る、ブロックチェーンに連結されるブロックを生成する情報処理装置（以降、「ブロック生成装置１００」と呼称する）は、直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データ（例えば、第１のデータのハッシュ）と、直前のブロックに含まれたデータであって、第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データ（例えば、第１のデータとは異なる第２のデータを少なくとも含むデータのハッシュ）と、を含むブロックを生成し、当該ブロックをブロックチェーンに連結する。
【００２９】
これによって、ブロックチェーンに登録されているデータを削除する情報処理装置（以降、「データ削除装置２００」と呼称する）は、ブロックチェーンに連結された一部のブロックから第２のデータの少なくとも一部を削除することができる。
【００３０】
ここで、図４を参照して、ブロック生成装置１００によって生成されるブロックの具体例について説明する。例えば、図４に示すブロック１がブロックチェーンの末尾に連結されており、ブロック生成装置１００がブロック２を生成する場合について考える。
【００３１】
図４に示すように、本開示に係る各ブロックには、第１のデータと、第２のデータが含まれる。「第１のデータ」は、削除対象にならないデータであり、図４の例では、第１の関連データ、ナンス（第２のデータからは独立したデータであるブロックチェーンのナンスデータ）、およびトランザクションデータ１ａが第１のデータとしてブロック１に含まれている。一方で、「第２のデータ」は、削除対象になる可能性があるデータであり（換言すると、第２のデータが削除対象にならない場合もある）、図４の例では、第２の関連データ、およびトランザクションデータ１ｂ〜トランザクションデータ１ｎが第２のデータとしてブロック１に含まれている。なお、第１のデータ、および第２のデータの内容は図４に示した内容に限定されない。
【００３２】
そして、ブロック生成装置１００は、ブロック１に含まれた第１のデータと関連付けられた第１の関連データを生成し、ブロック２に含める。ここで、「第１の関連データ」は、ハッシュを生成する所定のハッシュ関数（例えば、SHA-256、RIPEMD-160など）に対して第１のデータが入力されることで生成されるデータであることを想定している（換言すると、第１の関連データは、ハッシュによって第１のデータと関連付けられることを想定している）。互いに異なるデータによって同一のハッシュが生成される可能性は限りなく低い（換言すると、ハッシュは強衝突耐性を有している）ため、第１のデータのハッシュである第１の関連データは、第１のデータによって一意に決まる情報であると言える。なお、関連付けに用いられるハッシュ関数の種類は特に限定されない。また、第１のデータと第１の関連データとを関連付ける方法は、ハッシュに限定されない。例えば、第１の関連データは、第１のデータによって一意に決まる情報であれば如何なる情報であってもよい。
【００３３】
また、ブロック生成装置１００は、ブロック１に含まれた第２のデータを少なくとも含むデータと関連付けられた第２の関連データを生成し、ブロック２に含める。換言すると、第２の関連データと関連付けられるデータには、第２のデータ以外にも第１のデータが含まれてもよい（図４の例では、全ての第１のデータが、第２の関連データと関連付けられるデータに含まれている）。ここで、「第２の関連データ」も、第１の関連データと同様に、所定のハッシュ関数（例えば、SHA-256、RIPEMD-160など）に対して、第２のデータを少なくとも含むデータが入力されることで生成されるデータであることを想定している。なお、第２の関連データについても、関連付けに用いられるハッシュ関数の種類は特に限定されない。また、第２のデータを少なくとも含むデータと第２の関連データとを関連付ける方法は、ハッシュに限定されない。例えば、第２の関連データは、第２のデータを少なくとも含むデータによって一意に決まる情報であれば如何なる情報であってもよい。
【００３４】
ブロック生成装置１００は、上記の方法で生成した第１の関連データおよび第２の関連データ以外にも、ナンス、およびトランザクションデータなど（図中では、トランザクションデータ２ａ〜トランザクションデータ２ｎ）を含めることでブロック２を生成する。同様の方法によって、ブロック生成装置１００がブロックを連結していくことでブロックチェーンが構成されていく。
【００３５】
そして、データ削除装置２００は、上記の方法で構成されたブロックチェーンに連結された一部のブロックから第２のデータの少なくとも一部を削除する。例えば、図５に示すように、データ削除装置２００は、ブロック１に含まれる第２のデータの全てを削除してもよい。これによって、ブロック２に含まれる第２の関連データとブロック１との関連付けは無くなるが、ブロック２に含まれる第１の関連データとブロック１との関連付けは残るため、第１のデータの真正性を担保される。
【００３６】
しかし、削除対象にならなかった第２のデータの真正性が十分担保されない場合がある。例えば、図５において、ブロック１に含まれる第２のデータが削除された場合、ブロック２に含まれる第２のデータが削除されたり改ざんされたりするリスクが高くなる。
【００３７】
そこで、本開示は、第２のデータを削除可能な権限情報を設けることによって、当該権限を有する主体（例えば、人、または情報処理装置など）によってのみ第２のデータが削除されるようにする。より具体的には、データ削除装置２００は、第２のデータの削除に要する権限情報を確認し、その確認結果に基づいて第２のデータを削除するか否かを判断する。これによって、例えば、第２のデータが悪意ある第三者によって削除されるリスクが低くなる。ここで、複数の権限情報が設けられ、権限情報ごとに削除可能な第２のデータの内容が異なっていてもよい。これによって、データ削除装置２００が複数存在する場合（換言すると、データを削除する主体（例えば、人、または情報処理装置など）が複数存在する場合）などにおいて、第２のデータの削除処理をより細かく制御することができる。
【００３８】
また、データ削除装置２００は、第２のデータに含まれるトランザクションデータに対応する有体物の位置情報に基づいて第２のデータの削除可否を判断する。ここで、図６を参照して、本開示が物流システムに適用された場合を一例としてより具体的に説明する。図６には、ある物品が流通する場合における流通過程と、各過程で生成されるデータの例が示されている。本開示が物流システムに適用された場合において、「有体物」とは、例えば、流通の対象となる物品を含み、「トランザクションデータ」とは、例えば、各過程（図中では、製造業者の工場など）で生成されるデータ（図中では、製品情報など）を含む。
【００３９】
また、「位置情報」とは、トランザクションデータが生成された時点での物品（有体物）の位置を示す情報である（なお、「トランザクションデータが生成された時点」とは、トランザクションデータが生成された時点、または当該時点の前後所定時間内を含むことを留意されたい）。そして、データ削除装置２００は、位置情報に基づいて第２のデータを削除するか否かを判断する（なお、位置情報に基づいて第２のデータを削除するか否かが判断されることは、第２のデータを削除可能な権限情報が位置情報に基づいて設定されることと等価である点に留意されたい）。例えば、図６において、流通の終端である店舗が製品受領情報をトランザクションデータとしてブロックチェーンに登録した場合、データ削除装置２００は、当該トランザクションデータが生成された時点での物品の位置情報が店舗の位置を示していることを確認できた場合に、当該トランザクションデータを削除する。これによって、例えば、物品が流通の中途に位置している場合に当該物品に関するトランザクションデータが削除されることが防がれる。なお、第２のデータが削除されるタイミングは特に限定されない。例えば、データ削除装置２００は、物品が流通の中途に位置している場合であっても、位置情報に基づいて所定の条件が満たされていると判断した場合には、当該物品に関するトランザクションデータを削除してもよい。
【００４０】
さらに、データ削除装置２００は、位置情報に基づいて決まる区間を特定し、当該区間に存在する第２のデータ、すなわち、当該区間に対応する第２のデータを削除する。「位置情報に基づいて決まる区間」とは、例えば、図６における流通の始端と終端に対応する区間（換言すると、流通の始端である製造業者の工場から流通の終端である店舗に至るまでの区間）である。例えば、図７に示すように、ブロック１には、流通の始端である製造業者の工場にて生成されたトランザクションデータ（例えば、製品情報など）が含まれており、ブロック３には、流通の終端である店舗にて生成されたトランザクションデータ（例えば、製品受領情報など）が含まれているとする。この場合、データ削除装置２００は、図８に示すように、流通の始端であるブロック１から流通の終端であるブロック３に至るまでの区間における、第２のデータを削除する（一方、第１のデータは削除されずに維持される）。このように、データ削除の対象となる区間が設定されることで、データ削除装置２００は、ある物品の流通の始端から終端に至るまでに存在する第２のデータをまとめて削除することができる。
【００４１】
なお、基本的には、データ削除装置２００は、データ削除の対象となる区間に存在する第２のデータを、一度に全て削除することを想定しているが、データ削除の態様はこれに限定されない。例えば、図９に示すように、データ削除装置２００は、データ削除の対象となる区間に存在する第２のデータの一部だけを削除してもよい。図９の例では、トランザクションデータ１ｃ、トランザクションデータ２ｃ、およびトランザクションデータ３ｃ以外の第２のデータが削除されている。これによって、トランザクションデータ１ｃ、トランザクションデータ２ｃ、およびトランザクションデータ３ｃの信頼性は低下するものの、業務運用上の理由などによってデータ削除装置２００は、柔軟に削除対象となるトランザクションデータを決定することができる。また、データ削除装置２００は、第２のデータを段階的に削除してもよい。より具体的には、データ削除装置２００は、図９の例のように一度は削除せずに残したトランザクションデータを、その後に削除してもよい。また、各データ削除装置２００は、基本的に、削除対象となる第２のデータを揃えることで各装置に保持されるブロックチェーンの内容を揃えることを想定しているが、必ずしもこれに限定されない。例えば、あるデータ削除装置２００は、他のデータ削除装置２００が削除した第２のデータを、例外的に削除することなく保持し続けてもよい。
【００４２】
また、図７〜図９の例では、データ削除の対象となる区間がブロック単位で設定される場合を一例としたが、これに限定されない。例えば、データ削除の対象となる区間は、ブロックに含まれるトランザクションデータ単位で設定されてもよい。
【００４３】
また、ブロックチェーンは、トランザクションデータに対応する有体物ごとに生成されてもよい。例えば、物品が製造され、流通過程に置かれるときに新たなブロックチェーンが生成され、物品が流通過程の終端に到達したときに当該ブロックチェーンに対する新たなブロックの追加が停止されてもよい。これによって、各ブロックに登録されるトランザクションデータは全て一つの有体物に関するものとなるため、図７〜図９の例のように、データ削除の対象となる区間がブロック単位で設定され易くなる。
【００４４】
また、上記では、ブロックチェーンネットワーク内での合意形成のアルゴリズム（いわゆるコンセンサスアルゴリズム）に、ＰＯＷ（Proof of Work）が用いられる場合を一例として説明しているため、各ブロックにナンスが含まれているが、コンセンサスアルゴリズムの種類は特に限定されない（換言すると、ブロックにナンスが含まれていなくてもよい）。例えば、コンセンサスアルゴリズムとして、ＰＯＳ（Proof of Stake）、ＰＯＩ（Proof of Importance）、ＰＯＣ（Proof of Consensus）、ＰＯＢ（Proof of Burn）、またはＰＢＦＴ（Practical Byzantine Fault Tolelance）などが用いられてもよい。例えば、コンソーシアム方式（またはプライベート方式）のブロックチェーンが用いられる場合などにおいて、コンセンサスアルゴリズムとしてＰＢＦＴが用いられることで、ブロックの生成に要する時間やコストの削減が可能になる。
【００４５】
また、上記では、全てのブロックに第１のデータと第２のデータが含まれていたが、必ずしもこれに限定されない。例えば、ブロックチェーンに連結されるブロックの中には、第２のデータが含まれないブロックが存在してもよい（この場合、次のブロックには第２の関連データが含まれない）。
【００４６】
また、上記では、各ブロック間が第１の関連データと第２の関連データによって関連付けられる（換言すると、２種類の関連付けが行われる）ことで、第２のデータの削除が可能になる旨について説明したところ、３種類以上の関連付けが行われてもよい。例えば、第１の関連データと第２の関連データの他に、第１のデータと第２のデータとは異なる第３のデータを少なくとも含むデータと関連付けられた第３の関連データが設けられてもよい。これによって、データ削除装置２００は、第２のデータだけでなく、第３のデータの少なくとも一部を削除することができてもよい。なお、第２のデータが削除されるタイミングと、第３のデータが削除されるタイミングは互いに異なっていてもよい。このように、３種類以上の関連付けが行われることで、データの削除がより柔軟に実現され得る。なお、上記では便宜的に「第３のデータ」と呼称したが、第３のデータも第２のデータと同様に削除対象になり得るという意味では、第３のデータは第２のデータの一種であると言える点に留意されたい（すなわち、第３の関連データは第２の関連データの一種であるとも言える）。
【００４７】
（２．２．情報処理システムの概要）
上記では、本開示の概要について説明した。続いて、本開示の一実施形態に係る情報処理システムの概要について説明する。
【００４８】
以降では、本開示が物流システムに適用された場合を一例として説明する。より具体的には、本実施形態に係る情報処理システムにおいては、ある物品の流通過程に関係する主体（例えば、製造業者、卸売業者、配送業者、または販売業者など）の有する情報処理装置がブロックチェーンネットワークに接続されており、当該物品の流通過程でこれらの主体によって生成されるデータがトランザクションデータとしてブロックチェーンに登録される。なお、本開示が適用される情報処理システム（またはサービス）は特に限定されない。例えば、本開示は、ある物品の製造工程を管理する製造管理システムなどに適用されてもよい。
【００４９】
ここで、図１０を参照して、本実施形態に係る情報処理システムの構成例について説明する。図１０は、本実施形態に係る情報処理システムの構成例を示す図である。
【００５０】
図１０に示すように、本実施形態に係る情報処理システムは、トランザクション生成装置３００と、ブロック生成装置１００と、データ削除装置２００と、ブロックチェーンネットワーク４００と、を備える。
【００５１】
本書では、便宜的に、トランザクション生成装置３００、ブロック生成装置１００、およびデータ削除装置２００を区別して説明するが、これらの装置の機能の全部または一部は、１台の情報処理装置によって実現されてもよいし、複数台の情報処理装置の分散処理によって実現されてもよい。そして、本実施形態に係る情報処理システムにおいて、ある物品の流通過程に関係する主体（例えば、図６に示した製造業者、卸売業者、配送業者、または販売業者など）の有する情報処理装置は、ブロックチェーンネットワーク４００に接続しており、トランザクション生成装置３００、ブロック生成装置１００、およびデータ削除装置２００の機能の全部または一部を実現するとする。
【００５２】
（トランザクション生成装置３００）
トランザクション生成装置３００は、ブロックチェーンに登録されるトランザクションデータを生成する情報処理装置である。トランザクション生成装置３００は、ブロックチェーンネットワーク４００に接続しており、トランザクション生成装置３００が生成したトランザクションデータは、ブロックチェーンネットワーク４００を介して他の情報処理装置（例えば、ブロック生成装置１００、データ削除装置２００および他のトランザクション生成装置３００）に共有（ブロードキャスト）される。
【００５３】
また、トランザクションデータの生成の際、トランザクション生成装置３００は、トランザクションデータの生成元を示す情報（以降、便宜的に「生成元情報」とも呼称する）をトランザクションデータに対応付ける。「生成元情報」とは、主にトランザクションデータが適切な者によって生成されたか否かの判断に用いられる情報であり、例えば、トランザクションデータの生成元を一意に特定可能な情報（例えば、流通過程に関係する主体のＩＤなど）を含むがこれに限定されない。例えば、トランザクションデータの生成元が何らかのグループに所属している場合、「生成元情報」は、当該グループのＩＤなどでもよい。なお、トランザクションデータと生成元情報との対応付けの方法は特に限定されない。例えば、トランザクション生成装置３００は、生成元情報をトランザクションデータ内に含めることでこれらのデータを対応付けてもよいし、生成元情報を管理している記憶部が別に存在する場合には、トランザクション生成装置３００は、当該記憶部における生成元情報にトランザクションを示す情報を含めることでこれらのデータを対応付けてもよい。
【００５４】
また、トランザクションデータの生成の際、トランザクション生成装置３００は、トランザクションデータに対応する有体物の位置情報を、トランザクションデータに対応付ける。有体物および位置情報の内容は上記で説明した通りであるため、説明を省略する。当該位置情報は、ブロック生成装置１００による新たなブロックの生成の際に適切なトランザクションデータであるか否かの判断、およびデータ削除装置２００によるトランザクションデータの削除の際に削除してもよいトランザクションデータであるか否かの判断に用いられる。なお、トランザクションデータと位置情報との対応付けの方法は、生成元情報の場合と同様、特に限定されない。例えば、トランザクション生成装置３００は、位置情報をトランザクションデータ内に含めることでこれらのデータを対応付けてもよいし、位置情報を管理している記憶部が別に存在する場合には、トランザクション生成装置３００は、当該記憶部における位置情報にトランザクションを示す情報を含めることでこれらのデータを対応付けてもよい。
【００５５】
（ブロック生成装置１００）
ブロック生成装置１００は、所定の条件を満たした場合に、ブロックチェーンに連結されるブロックを生成する情報処理装置である。ブロック生成処理についてより具体的に説明すると、ブロック生成装置１００は、トランザクション生成装置３００によって生成され、ブロックチェーンネットワーク４００を介して共有されたトランザクションデータの中から、新たなブロックに含めるトランザクションデータを指定し、収集する。その際、ブロック生成装置１００は、トランザクションデータに対応付けられた生成元情報に基づいて生成元が有する権限情報を確認する。より具体的には、ブロック生成装置１００は、トランザクションデータの生成元が適切な権限情報を有しているか否かを判断する。ブロック生成装置１００は、トランザクションデータの生成元が適切な権限情報を有している場合には、当該トランザクションデータを新たなブロックに含め、そうでない場合には、当該トランザクションデータを新たなブロックに含めない。
【００５６】
また、ブロック生成装置１００は、トランザクションデータに対応付けられた位置情報に基づいてトランザクションデータに対応する有体物の位置情報を確認する。そして、ブロック生成装置１００は、有体物の位置との関係でトランザクションデータが適切なものであるか否かを判断する。物流システムにおいては、生成されるトランザクションデータは流通過程によって決まる場合が多く、すなわち、トランザクションデータは流通過程の情報に関連付けられている（なお、物流システムに限定されない）。例えば、製造された製品に関する情報である製品情報は、全流通過程のうち製造業者の工場にて生成される場合が多い。そのため、ブロック生成装置１００は、トランザクションデータに対応する有体物（流通の対象となる物品など）の位置情報に基づいて当該トランザクションデータの生成時における有体物の位置を確認することで、トランザクションデータが適切なものであるか否かを判断することができる。そして、ブロック生成装置１００は、有体物の位置との関係でトランザクションデータが適切なものであると判断した場合には、当該トランザクションデータを新たなブロックに含め、そうでない場合には、当該トランザクションデータを新たなブロックに含めない。
【００５７】
さらに、ブロック生成装置１００は、上記のとおり、直前ブロックに含まれる第１のデータおよび第２のデータを用いて第１の関連データおよび第２の関連データを生成する。そしてブロック生成装置１００は、収集したトランザクションデータ、生成した第１の関連データと第２の関連データ、およびナンスを生成中のブロックに追加する。ブロック生成装置１００は、当該ブロックに対して所定のハッシュ関数（例えば、SHA-256、RIPEMD-160など）を適用した場合に出力されるハッシュの先頭の数ビットがすべて“０”になるまでナンスの値を変更していく（換言すると、所定の条件に合うナンスを探索する）。ブロック生成装置１００は、所定の条件に合うナンスを発見できた場合、新たなブロックをブロックチェーンの末尾に追加し、追加対象となるブロックに関する情報（例えば、ブロックの内容、またはブロック自体など）をブロックチェーンネットワーク４００上にブロードキャストする。その後、ブロックチェーンネットワーク４００に接続している他のブロック生成装置１００による承認処理が行われることで、新たなブロックが正式にブロックチェーンに追加される。なお、他のブロック生成装置１００によって行われる承認処理の内容は、例えば、権限情報、位置情報、およびナンスが適切であることを確認することを含み得るがこれに限定されない。例えば、他のブロック生成装置１００は、承認処理において、権限情報、または位置情報を確認しなくてもよい。
【００５８】
上記のブロック生成処理は、基本的に複数台のブロック生成装置１００によって行われ、所定の条件に合うナンスを最初に発見したブロック生成装置１００が、ブロックチェーンに追加するブロックを決定することができるため、情報処理システム内での公平性が担保される。なお上記のとおり、本書では、ブロック生成装置１００はコンセンサスアルゴリズムとしてＰＯＷを用いることを一例として説明しているが、ブロック生成装置１００がブロックの生成に用いるコンセンサスアルゴリズムの種類は特に限定されない。
【００５９】
（データ削除装置２００）
データ削除装置２００は、所定の条件を満たした場合に、トランザクションデータを含む第２のデータを削除する情報処理装置である。第２のデータの削除処理についてより具体的に説明すると、データ削除装置２００は、トランザクションデータの削除に要する権限情報を確認する。そして、データ削除装置２００は、データ削除装置２００（または、データ削除装置２００を使用する主体）がトランザクションデータの削除に要する権限情報を有している場合には、当該トランザクションデータを削除することを決定し、そうでない場合には、当該トランザクションデータを削除しないことを決定する。
【００６０】
また、データ削除装置２００は、上記のとおり、トランザクションデータに対応付けられた、トランザクションデータに対応する有体物の位置情報を確認し、位置情報の確認結果に基づいてトランザクションデータを削除するか否かを判断する。そして、データ削除装置２００は、有体物の位置との関係でトランザクションデータを削除してもよいと判断した場合には、当該トランザクションデータを削除することを決定し、そうでない場合には、当該トランザクションデータを削除しないことを決定する。
【００６１】
そして、データ削除装置２００は、上記のとおり、位置情報に基づいてデータの削除対象となる区間を特定する。例えば、データ削除装置２００は、位置情報に基づいて物流システムにおいて流通の始端と終端に対応する区間を特定し、当該区間を、データの削除対象となる区間として決定する。
【００６２】
上記の処理によって、削除対象となる第２のデータ（トランザクションデータを含む）、および削除対象となる区間を決定したデータ削除装置２００は、削除対象となる第２のデータ（トランザクションデータを含む）を示す情報をブロックチェーンネットワーク４００上にブロードキャストする。その後、ブロックチェーンネットワーク４００に接続している他のデータ削除装置２００による承認処理が行われることで、正式に第２のデータが削除される。なお、他のデータ削除装置２００によって行われる承認処理の内容は、例えば、権限情報、位置情報、および削除対象となる区間が適切であることを確認することを含み得るがこれに限定されない。例えば、他のデータ削除装置２００は、承認処理において、権限情報、位置情報、または削除対象となる区間を確認しなくてもよい。
【００６３】
（ブロックチェーンネットワーク４００）
ブロックチェーンネットワーク４００は、ブロックチェーンが流通しているネットワークである。上記のとおり、トランザクション生成装置３００、ブロック生成装置１００、およびデータ削除装置２００は、ブロックチェーンネットワーク４００に接続することで、他の情報処理装置が保持するブロックチェーンと整合性を保ちながら、ブロックチェーンを更新することができる。
【００６４】
なお本書において、ブロックチェーンネットワーク４００は、複数組織によって運営されるコンソーシアム方式のネットワーク、または単一組織によって運営されるプライベート方式のネットワークであることを想定しているが、ブロックチェーンネットワーク４００の種類は特に限定されない。例えば、ブロックチェーンネットワーク４００は、参加者を特に限定しないパブリック方式のネットワークであってもよい。
【００６５】
なお、ブロックチェーンネットワーク４００に用いられる通信方式、または回線の種類などは特に限定されない。例えば、ブロックチェーンネットワーク４００は、ＩＰ−ＶＰＮ（Internet Protocol-Virtual Private Network）などの専用回線網で実現されてもよい。また、ブロックチェーンネットワーク４００は、インターネット、電話回線網、衛星通信網などの公衆回線網で実現されてもよい。また、ブロックチェーンネットワーク４００は、Ｅｔｈｅｒｎｅｔ（登録商標）を含む各種のＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などで実現されてもよい。さらに、ブロックチェーンネットワーク４００は、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線通信網で実現されてもよい。
【００６６】
以上、本実施形態に係る情報処理システムの構成例について説明した。なお、図１０を参照して説明した上記の構成はあくまで一例であり、本実施形態に係る情報処理システムの構成は係る例に限定されない。例えば、情報処理システムを構成する各装置の台数は特に限定されない。また、トランザクション生成装置３００、ブロック生成装置１００、およびデータ削除装置２００それぞれの機能の全部または一部を有する別の装置が設けられてもよい。本実施形態に係る情報処理システムの構成は、仕様や運用に応じて柔軟に変形可能である。
【００６７】
（２．３．トランザクション生成装置３００の機能構成例）
上記では、本実施形態に係る情報処理システムの概要について説明した。続いて、図１１を参照して、トランザクション生成装置３００の機能構成例について説明する。図１１は、トランザクション生成装置３００の機能構成例を示すブロック図である。
【００６８】
図１１に示すように、トランザクション生成装置３００は、処理部３１０と、記憶部３２０と、通信部３３０と、を備える。
【００６９】
（処理部３１０）
処理部３１０は、トランザクションデータの生成に関する各種処理を実現する機能構成である。例えば、処理部３１０は、ユーザの操作入力をトリガとして、当該操作入力によって指定されたトランザクションデータの生成処理を開始する。なお、トランザクションデータの生成のトリガはこれに限定されない。図１１に示すように、処理部３１０は、位置確認部３１１と、トランザクション生成部３１２と、を備える。
【００７０】
（位置確認部３１１）
位置確認部３１１は、トランザクションデータの生成の際に、トランザクションデータに対応する有体物の位置情報を確認する機能構成である。より具体的には、位置確認部３１１は、トランザクションデータが生成された時点（なお、「トランザクションデータが生成された時点」とは、トランザクションデータが生成された時点、または当該時点の前後所定時間内を含むことを留意されたい）での有体物の位置情報を確認する。
【００７１】
位置確認部３１１による位置情報の確認方法は特に限定されない。例えば、トランザクションデータに対応する有体物（例えば、流通の対象となる物品など）が各種センサ（例えば、ＧＮＳＳ（Global Navigation
Satelite System）受信機、気圧センサ、地磁気センサ、近接センサ、ジャイロセンサ、または加速度センサなど）を備えている場合、位置確認部３１１は、有体物と各種通信を行うことでこれらのセンサ情報を取得し、取得したセンサ情報を解析することで有体物の位置を確認（特定）してもよい。
【００７２】
例えば、位置確認部３１１は、ＧＮＳＳ受信機および気圧センサによって取得されたセンサ情報を解析することで有体物の位置する緯度、経度、および高度を特定してもよい。また、位置確認部３１１は、ジャイロセンサ、または加速度センサによって取得されたセンサ情報を解析することで有体物の動き、または姿勢の時間変化を認識し、有体物の状態（例えば、有体物が運搬されている状態、または有体物が保管されている状態など）を認識することで、有体物の位置を特定してもよい。例えば、位置確認部３１１は、有体物が所定時間にわたって運搬された後に保管されていることを認識した場合、有体物の位置が倉庫であることを特定してもよい。また、位置確認部３１１は、ユーザによって入力された有体物の位置情報に基づいて有体物の位置を特定してもよい。また、位置確認部３１１は、他の情報処理装置によって解析され提供された有体物の位置情報に基づいて有体物の位置を特定してもよい。例えば、リーダライタが有体物に付加されたバーコード（またはRFID（radio frequency identifier）など）を読み取った場合、当該リーダライタが自装置に備えられたセンサによって取得されたセンサ情報を解析することで自装置の位置情報を認識する。そして、当該リーダライタが位置情報をトランザクション生成装置３００へ送信することで、位置確認部３１１は、当該位置情報を有体物の位置情報とみなしてもよい。
【００７３】
（トランザクション生成部３１２）
トランザクション生成部３１２は、トランザクションデータを生成する機能構成である。例えば、トランザクション生成部３１２は、ユーザの操作入力によって指定されたトランザクションデータを生成し、生成元情報、および位置確認部３１１によって取得された位置情報を当該トランザクションデータに対応付ける。生成元情報および位置情報と、トランザクションデータとの対応付けの方法は上記のとおりであるため、説明を省略する。トランザクション生成部３１２は、生成したトランザクションデータを、後述するトランザクション記憶部３２２に登録し、かつ、ブロックチェーンネットワーク４００を介して他の情報処理装置（他のトランザクション生成装置３００、ブロック生成装置１００、およびデータ削除装置２００）にブロードキャストする。これによって、トランザクション生成部３１２によって生成されたトランザクションデータが他の情報処理装置との間で共有される。
【００７４】
（記憶部３２０）
記憶部３２０は、各種情報を記憶する機能構成である。例えば、記憶部３２０は、トランザクション生成装置３００の各機能構成によって使用されるプログラム、またはパラメータなどを記憶する。なお、記憶部３２０が記憶する情報の内容はこれらに限定されない。図１１に示すように、記憶部３２０は、共有データ３２１を備える。
【００７５】
（共有データ３２１）
共有データ３２１は、ブロックチェーンネットワーク４００に接続している情報処理装置間で共有されるデータの集合である。各情報処理装置は、ブロックチェーンネットワーク４００を介して共有データ３２１を取得し、他の情報処理装置が保持する共有データと整合性を保ちながら当該共有データ３２１を更新していく。図１１に示すように、共有データ３２１は、トランザクション記憶部３２２と、ブロックチェーン３２３と、を備える。
【００７６】
（トランザクション記憶部３２２）
トランザクション記憶部３２２は、ブロックチェーン３２３に登録されていないトランザクションデータを記憶する機能構成である。トランザクション記憶部３２２には、トランザクション生成部３１２によって生成されたトランザクションデータ、および他のトランザクション生成装置３００によって生成されてブロックチェーンネットワーク４００を介して共有されたトランザクションデータが登録される。トランザクション記憶部３２２に登録されているトランザクションデータは、他のトランザクション生成装置３００、ブロック生成装置１００、およびデータ削除装置２００に登録されているトランザクションデータと基本的に同一である。
【００７７】
（ブロックチェーン３２３）
ブロックチェーン３２３は、トランザクション生成装置３００によって保持されるブロックチェーンである。ブロックチェーン３２３は、ブロック生成装置１００から提供される、新たなブロックに関する情報に基づいて更新される。ブロックチェーン３２３は、他のトランザクション生成装置３００、ブロック生成装置１００、およびデータ削除装置２００が保持するブロックチェーンと基本的に同一である。
【００７８】
なお、ブロックチェーン３２３に登録される情報は、上記で説明してきたトランザクションデータなどに限定されない。例えば、ブロックチェーン３２３には、ブロックチェーン３２３上で実行されるプログラム（以降、「ブロックチェーンプログラム」と呼称する）が登録されてもよい。
【００７９】
ブロックチェーンプログラムは、ブロックチェーン３２３に備えられ、ブロックチェーン３２３上で実行される所定のプログラムである。ブロックチェーンプログラムが用いられることによって、例えば、ブロックチェーンネットワーク４００に接続する情報処理装置が所定のルールに従って一貫性を保ちつつ各種処理を実現することができる。ブロックチェーンプログラムは、ブロックチェーン３２３に対して行われる処理全般を実現することができる。例えば、ブロックチェーンプログラムによってブロックチェーン３２３へのブロックの追加に関する処理、ブロックチェーン３２３からのトランザクションデータの取得（読み出し）に関する処理が実現され得る。ブロックチェーンプログラムがブロックチェーン３２３に設けられることによって当該プログラムが不正に改変されるリスクが低減される。ブロックチェーンプログラムは、ハイパーレッジャー（Hyperledger）におけるチェーンコードであるが、これに限定されない。例えば、ブロックチェーンプログラムは、スマートコントラクトを指してもよい。なお、ブロックチェーンプログラムによって実現される処理は上記に限定されない。ブロックチェーンプログラムの開発言語、またはブロックチェーン３２３上に設けられるブロックチェーンプログラムの個数等は特に限定されない。
【００８０】
（通信部３３０）
通信部３３０は、外部装置との各種通信を行う機能構成である。例えば、通信部３３０は、トランザクションデータに対応する有体物と各種通信を行うことで有体物によって取得されたセンサ情報（例えば、位置情報の取得に使用されるセンサ情報など）を受信する。また、通信部３３０は、トランザクション生成部３１２によって生成されたトランザクションデータをブロックチェーンネットワーク４００に送信することで、当該トランザクションデータを他の情報処理装置に共有する。また、通信部３３０は、他の情報処理装置から提供された各種データ（例えば、他のトランザクション生成装置３００によって生成されたトランザクションデータ、ブロック生成装置１００によって生成されたブロックに関する情報、またはデータ削除装置２００によって削除されたトランザクションデータを示す情報など）を受信する。なお、通信部３３０が通信するデータ、および通信するケースはこれらに限定されない。
【００８１】
以上、トランザクション生成装置３００の機能構成例について説明した。なお、図１１を用いて説明した上記の機能構成はあくまで一例であり、トランザクション生成装置３００の機能構成は係る例に限定されない。例えば、トランザクション生成装置３００は、図１１に示す構成の全てを必ずしも備えなくてもよい。また、トランザクション生成装置３００の機能構成は、仕様や運用に応じて柔軟に変形可能である。
【００８２】
（２．４．ブロック生成装置１００の機能構成例）
上記では、トランザクション生成装置３００の機能構成例について説明した。続いて、図１２を参照して、ブロック生成装置１００の機能構成例について説明する。図１２は、ブロック生成装置１００の機能構成例を示すブロック図である。
【００８３】
図１２に示すように、ブロック生成装置１００は、処理部１１０と、記憶部１２０と、通信部１３０と、を備える。
【００８４】
（処理部１１０）
処理部１１０は、新たなブロックの生成に関する各種処理を実現する機能構成である。例えば、処理部１１０は、所定のタイミングで新たなブロックの生成処理を開始する。ここで、新たなブロックの生成処理の開始タイミングは特に限定されない。例えば、処理部１１０は、新たなブロックを生成した直後（または、新たなブロックを生成し所定時間が経過した後）に次の新たなブロックの生成を開始してもよいし、ユーザの操作入力をトリガとして次の新たなブロックの生成を開始してもよい。図１２に示すように、処理部１１０は、権限確認部１１１と、位置確認部１１２と、ブロック生成部１１３と、を備える。
【００８５】
（権限確認部１１１）
権限確認部１１１は、トランザクションデータに対応付けられた、当該トランザクションデータの生成元情報に基づいて生成元が有する権限情報を確認する機能構成である。より具体的に説明すると、権限確認部１１１は、後述するブロック生成部１１３によって指定されたトランザクションデータに対応付けられた生成元情報を、トランザクション記憶部１２２へアクセスすることによって取得する。そして、権限確認部１１１は、各権限情報に応じて生成が許可されているトランザクションデータの種類が示された情報を記憶部１２０から取得する。そして、権限確認部１１１は、当該情報と、トランザクションデータに対応付けられた生成元情報とを比較することで、トランザクションデータの生成元が適切な権限情報を有しているか否かを判断する。
【００８６】
ここで、図１３を参照して、各権限情報に応じて生成が許可されているトランザクションデータの種類が示された情報の一例について説明する。例えば、図１３に示すように、第１の生成権限と、第２の生成権限が権限情報として設けられ、各権限情報に応じて生成が許可されているトランザクションデータ（第１のデータ、または第２のデータを含む）の種類が定められている。なお、図１３の例では、トランザクションデータの生成が許可されている権限情報が位置情報にも基づいて定められている。後述する位置確認部１１２は、トランザクションデータに対応付けられた、当該トランザクションデータに対応する有体物の位置情報に基づいて当該トランザクションデータを新たなブロックに含めるか否かを判断するところ、これは、図１３に示すように、トランザクションデータの生成が許可されている権限情報が位置情報に基づいて定められることと等価である点に留意されたい。
【００８７】
（位置確認部１１２）
位置確認部１１２は、トランザクションデータに対応付けられた、当該トランザクションデータに対応する有体物の位置情報を確認する機能構成である。より具体的には、位置確認部１１２は、後述するブロック生成部１１３によって指定されたトランザクションデータに対応付けられた位置情報を、トランザクション記憶部１２２へアクセスすることによって取得する。そして、位置確認部１１２は、当該位置情報と、各位置情報に応じて生成が許可されているトランザクションデータの種類が示された情報（例えば、図１３に示す情報など）とを比較することで、有体物の位置との関係でトランザクションデータが適切なものであるか否かを判断する。
【００８８】
（ブロック生成部１１３）
ブロック生成部１１３は、所定の条件を満たした場合に、ブロックチェーン１２３に連結されるブロックを生成する機能構成である。より具体的に説明すると、ブロック生成部１１３は、トランザクション記憶部１２２に記憶されているトランザクションデータの中から、新たなブロックに含めるトランザクションデータを指定し、収集する。例えば、ブロック生成部１１３は、生成日時が最も古いトランザクションデータから所定のデータサイズに達するまでのトランザクションデータを、新たなブロックに含めるトランザクションデータとして指定してもよい。このとき、生成日時に関する情報が各トランザクションデータ内に含まれる場合において、ブロック生成部１１３が各トランザクションデータを解析することで当該生成日時を認識したり、トランザクションデータが生成日時順にトランザクション記憶部１２２に格納されたりすることで、当該処理が実現され得る。なお、ブロック生成部１１３が各トランザクションデータの生成日時（または生成順）を認識する方法はこれらに限定されない。
【００８９】
そして、ブロック生成部１１３は、上記の処理で収集したトランザクションデータの中から、トランザクションデータの生成元が適切な権限情報を有していないと権限確認部１１１によって判断されたトランザクションデータ、および有体物の位置との関係でトランザクションデータが適切なものでないと位置確認部１１２によって判断されたトランザクションデータを除外する。
【００９０】
その後、ブロック生成部１１３は、ブロックチェーンネットワーク４００内での合意形成に関する処理を行う。より具体的には、ブロック生成部１１３は、直前ブロックに含まれる第１のデータおよび第２のデータを用いて第１の関連データおよび第２の関連データを生成する。そして、ブロック生成部１１３は、収集したトランザクションデータ、生成した第１の関連データと第２の関連データ、およびナンスを生成中のブロックに追加する。その後、ブロック生成部１１３は、当該ブロックに対して所定のハッシュ関数を適用して出力されるハッシュが所定の条件を満たすナンスを探索する。
【００９１】
所定の条件を満たすナンスを発見したブロック生成部１１３は、ブロックチェーン１２３へ新たなブロックを追加し、当該ブロックに関する情報（例えば、ブロックの内容、またはブロック自体など）を、ブロックチェーンネットワーク４００を介して他の情報処理装置（トランザクション生成装置３００、他のブロック生成装置１００、およびデータ削除装置２００）にブロードキャストする。その後、ブロックチェーンネットワーク４００に接続している他のブロック生成装置１００に備えられるブロック生成部１１３による承認処理が行われることで、新たなブロックが正式にブロックチェーン１２３に追加される。
【００９２】
ここで、他のブロック生成装置１００に備えられるブロック生成部１１３によって行われる承認処理の内容は、例えば、権限情報、位置情報、およびナンスが適切であることを確認する処理を含み得るがこれに限定されない。例えば、他のブロック生成装置１００に備えられるブロック生成部１１３は、承認処理において、権限情報、または位置情報を確認しなくてもよい。
【００９３】
（記憶部１２０）
記憶部１２０は、各種情報を記憶する機能構成である。例えば、記憶部１２０は、上記で説明した、各権限情報に応じて生成が許可されているトランザクションデータの種類が示された情報（図１３参照）を記憶する。また、記憶部１２０は、ブロック生成装置１００の各機能構成によって使用されるプログラム、またはパラメータなどを記憶する。なお、記憶部１２０が記憶する情報の内容はこれらに限定されない。図１２に示すように、記憶部１２０は、共有データ１２１を備える。また、共有データ１２１は、トランザクション記憶部１２２と、ブロックチェーン１２３と、を備える。
【００９４】
（共有データ１２１、トランザクション記憶部１２２、ブロックチェーン１２３）
共有データ１２１、トランザクション記憶部１２２、およびブロックチェーン１２３は、上記で説明したトランザクション生成装置３００に備えられる共有データ３２１、トランザクション記憶部３２２、およびブロックチェーン３２３と同様であるため説明を省略する。
【００９５】
（通信部１３０）
通信部１３０は、外部装置との各種通信を行う機能構成である。例えば、通信部１３０は、ブロックチェーン１２３への追加対象であるブロックに関する情報（例えば、ブロックの内容、またはブロック自体など）を、ブロックチェーンネットワーク４００を介して他の情報処理装置（トランザクション生成装置３００、他のブロック生成装置１００、およびデータ削除装置２００）へ送信する。また、通信部１３０は、他の情報処理装置から提供された各種データ（例えば、トランザクション生成装置３００によって生成されたトランザクションデータ、他のブロック生成装置１００によって追加されたブロックに関する情報、またはデータ削除装置２００によって削除されたトランザクションデータを示す情報など）を受信する。なお、通信部１３０が通信するデータ、および通信するケースはこれらに限定されない。
【００９６】
以上、ブロック生成装置１００の機能構成例について説明した。なお、図１２を用いて説明した上記の機能構成はあくまで一例であり、ブロック生成装置１００の機能構成は係る例に限定されない。例えば、ブロック生成装置１００は、図１２に示す構成の全てを必ずしも備えなくてもよい。また、ブロック生成装置１００の機能構成は、仕様や運用に応じて柔軟に変形可能である。
【００９７】
（２．５．データ削除装置２００の機能構成例）
上記では、ブロック生成装置１００の機能構成例について説明した。続いて、図１４を参照して、データ削除装置２００の機能構成例について説明する。図１４は、データ削除装置２００の機能構成例を示すブロック図である。
【００９８】
図１４に示すように、データ削除装置２００は、処理部２１０と、記憶部２２０と、通信部２３０と、を備える。
【００９９】
（処理部２１０）
処理部２１０は、第２のデータ（トランザクションデータを含む）の削除に関する各種処理を実現する機能構成である。図１４に示すように、処理部２１０は、権限確認部２１１と、位置確認部２１２と、データ削除部２１３と、を備える。
【０１００】
（権限確認部２１１）
権限確認部２１１は、第２のデータ（トランザクションデータを含む）の削除に要する権限情報を確認する機能構成である。より具体的に説明すると、権限確認部２１１は、各権限情報に応じて削除が許可されているトランザクションデータの種類が示された情報を記憶部２２０から取得する。そして、権限確認部２１１は、当該情報とデータ削除装置２００が保持する権限情報とを比較することで、データ削除装置２００（または、データ削除装置２００を使用する主体）が、後述するブロック生成部１１３によって指定されたトランザクションデータの削除に要する権限情報を有しているか否かを判断する。
【０１０１】
ここで、図１５を参照して、各権限情報に応じて削除が許可されているトランザクションデータの種類が示された情報の一例について説明する。例えば、図１５に示すように、第１の削除権限と、第２の削除権限が権限情報として設けられ、各権限情報に応じて削除が許可されているトランザクションデータ（第２のデータ）の種類が定められている。なお、図１５の例では、トランザクションデータの削除が許可されている権限情報が位置情報にも基づいて定められている。後述する位置確認部２１２は、トランザクションデータに対応付けられた、当該トランザクションデータに対応する有体物の位置情報に基づいて当該トランザクションデータの削除が許可されているか否かを判断するところ、これは、図１５に示すように、トランザクションデータの削除が許可されている権限情報が位置情報に基づいて定められることと等価である点に留意されたい。また、図１５の例では、流通の対象となる物品が流通の終端に到達した後にのみ第２のデータの削除が許可されている旨が示されているが、上記のとおり、物品が流通の中途に位置している場合にも第２のデータが削除されてもよい。
【０１０２】
（位置確認部２１２）
位置確認部２１２は、トランザクションデータに対応付けられた、当該トランザクションデータに対応する有体物の位置情報を確認する機能構成である。より具体的には、位置確認部１１２は、後述するデータ削除部２１３によって指定されたトランザクションデータに対応付けられた位置情報を、ブロックチェーン２２３へアクセスすることによって取得する。そして、位置確認部２１２は、当該位置情報と、各位置情報に応じて削除が許可されているトランザクションデータの種類が示された情報（例えば、図１５に示す情報など）とを比較することで、有体物の位置との関係で削除対象となるトランザクションデータが適切なものであるか否かを判断する。
【０１０３】
（データ削除部２１３）
データ削除部２１３は、所定の条件を満たした場合に、ブロックチェーン２２３に連結された一部のブロックから第２のデータの少なくとも一部を削除する機能構成である。より具体的に説明すると、データ削除部２１３は、所定の条件が満たされた第２のデータ（トランザクションデータを含む）を削除対象として指定する。ここで、「所定の条件」とは、例えば、物流システムにおいて流通の対象となる物品が流通の終端に到達してから所定の期間が経過することや、流通の終端である店舗などが物品を適切に受領したこと（受領情報がトランザクションデータとして登録されたこと）などを含むがこれらに限定されない。例えば、流通の対象となる物品が流通の中途に位置している場合にも、データ削除部２１３は、当該物品に関するトランザクションデータを削除対象として指定してもよい。
【０１０４】
そして、データ削除部２１３は、削除対象のトランザクションデータの中から、データ削除装置２００（または、データ削除装置２００を使用する主体）が適切な権限情報を有していないと権限確認部２１１によって判断されたトランザクションデータ、および有体物の位置との関係でトランザクションデータを削除してはいけないと位置確認部２１２によって判断されたトランザクションデータを除外する。
【０１０５】
その後、データ削除部２１３は、ブロックチェーン２２３に連結された一部のブロックから、削除対象であるトランザクションデータを含む第２のデータを削除し、かつ、削除対象であるトランザクションデータを示す情報（例えば、トランザクションデータのＩＤ、またはトランザクションデータ自体など）を、ブロックチェーンネットワーク４００を介して他の情報処理装置（トランザクション生成装置３００、ブロック生成装置１００、および他のデータ削除装置２００）にブロードキャストする（なお、データ削除部２１３は第１のデータを維持する）。その後、ブロックチェーンネットワーク４００に接続している他のデータ削除装置２００に備えられるデータ削除部２１３による承認処理が行われることで、削除対象のトランザクションデータが正式にブロックチェーンから削除される。
【０１０６】
ここで、他のデータ削除装置２００に備えられるデータ削除部２１３によって行われる承認処理の内容は、例えば、権限情報、位置情報、および削除対象となる区間が適切であることを確認することを含むがこれらに限定されない。例えば、他のデータ削除装置２００に備えられるデータ削除部２１３は、承認処理において、権限情報、位置情報、または削除対象となる区間を確認しなくてもよい。なお、上記で説明してきたように、データ削除部２１３は、基本的に第２のデータの少なくとも一部を削除するが、必要に応じて第１のデータの一部を削除してもよい（この場合、第１の関連データによるブロック間の関連付けは無くなる）。
【０１０７】
（記憶部２２０）
記憶部２２０は、各種情報を記憶する機能構成である。例えば、記憶部２２０は、上記で説明した、権限情報に応じて削除が許可されているトランザクションデータの種類が示された情報（図１５参照）を記憶する。また、記憶部２２０は、データ削除装置２００の各機能構成によって使用されるプログラム、またはパラメータなどを記憶する。なお、記憶部２２０が記憶する情報の内容はこれらに限定されない。図１４に示すように、記憶部２２０は、共有データ２２１を備える。また、共有データ２２１は、トランザクション記憶部２２２と、ブロックチェーン２２３と、を備える。
【０１０８】
（共有データ２２１、トランザクション記憶部２２２、ブロックチェーン２２３）
共有データ２２１、トランザクション記憶部２２２、およびブロックチェーン２２３は、上記で説明したトランザクション生成装置３００に備えられる共有データ３２１、トランザクション記憶部３２２、およびブロックチェーン３２３と同様であるため説明を省略する。
【０１０９】
（通信部２３０）
通信部２３０は、外部装置との各種通信を行う機能構成である。例えば、通信部２３０は、削除対象であるトランザクションデータを示す情報（例えば、トランザクションデータのＩＤ、またはトランザクションデータ自体など）を、ブロックチェーンネットワーク４００を介して他の情報処理装置（トランザクション生成装置３００、ブロック生成装置１００、および他のデータ削除装置２００）へ送信する。また、通信部２３０は、他の情報処理装置から提供された各種データ（例えば、トランザクション生成装置３００によって生成されたトランザクションデータ、ブロック生成装置１００によって追加されたブロックに関する情報、または他のデータ削除装置２００によって削除されたトランザクションデータを示す情報など）を受信する。なお、通信部２３０が通信するデータ、および通信するケースはこれらに限定されない。
【０１１０】
以上、データ削除装置２００の機能構成例について説明した。なお、図１４を用いて説明した上記の機能構成はあくまで一例であり、データ削除装置２００の機能構成は係る例に限定されない。例えば、データ削除装置２００は、図１４に示す構成の全てを必ずしも備えなくてもよい。また、データ削除装置２００の機能構成は、仕様や運用に応じて柔軟に変形可能である。
【０１１１】
（２．６．処理フロー例）
上記では、データ削除装置２００の機能構成例について説明した。続いて、各装置の処理フローの例について説明する。
【０１１２】
（トランザクションデータの生成処理）
まず、図１６を参照して、トランザクション生成装置３００によるトランザクションデータの生成処理について説明する。図１６は、トランザクション生成装置３００によるトランザクションデータの生成処理の具体例を示すフローチャートである。
【０１１３】
ステップＳ１０００では、トランザクション生成装置３００のトランザクション生成部３１２が生成対象となるトランザクションデータを決定する。例えば、トランザクション生成部３１２は、ユーザの操作入力によって指定されたトランザクションデータを生成対象となるトランザクションデータとして決定する。ステップＳ１００４では、位置確認部３１１が、生成対象であるトランザクションデータに対応する有体物の位置情報を取得する。ステップＳ１００８では、トランザクション生成部３１２が、生成対象であるトランザクションデータを生成し、生成元情報および位置情報を当該トランザクションデータに対応付ける。ステップＳ１０１２では、トランザクション生成部３１２が、生成したトランザクションデータを、ブロックチェーンネットワーク４００を介して他の情報処理装置（他のトランザクション生成装置３００、ブロック生成装置１００、およびデータ削除装置２００）にブロードキャストすることで、一連の処理が終了する。これによって、ブロック生成装置１００は、当該トランザクションデータを用いて新たなブロックの生成処理を行うことができる。
【０１１４】
（ブロックの生成処理）
続いて、図１７および図１８を参照して、ブロック生成装置１００によるブロックの生成処理について説明する。図１７および図１８は、ブロック生成装置１００によるブロックの生成処理の具体例を示すフローチャートである。
【０１１５】
ステップＳ１１００では、ブロック生成装置１００のブロック生成部１１３は、新たなブロックへの追加対象となるトランザクションデータを決定する。例えば、ブロック生成部１１３は、生成日時が最も古いトランザクションデータから所定のデータサイズに達するまでのトランザクションデータを、新たなブロックへの追加対象となるトランザクションデータとして決定する。
【０１１６】
ステップＳ１１０４では、権限確認部１１１が、各トランザクションデータに対応付けられた、当該トランザクションデータの生成元情報に基づいて、生成元が有する権限情報を確認することで、トランザクションデータの生成元が適切な権限情報を有しているか否かを判断する。トランザクションデータの生成元が適切な権限情報を有していない場合（ステップＳ１１０４／Ｎｏ）、ステップＳ１１０８にて、ブロック生成部１１３は、新たなブロックへの追加対象となるトランザクションデータから当該トランザクションデータを除外する。
【０１１７】
トランザクションデータの生成元が適切な権限情報を有している場合（ステップＳ１１０４／Ｙｅｓ）、ステップＳ１１１２にて、位置確認部１１２が、トランザクションデータに対応付けられた、当該トランザクションデータに対応する有体物の位置情報を確認することで、有体物の位置との関係でトランザクションデータが適切であるか否かを判断する。有体物の位置との関係でトランザクションデータが適切でない場合（ステップＳ１１１２／Ｎｏ）、ステップＳ１１０８にて、ブロック生成部１１３は、新たなブロックへの追加対象となるトランザクションデータから当該トランザクションデータを除外する。
【０１１８】
有体物の位置との関係でトランザクションデータが適切である場合（ステップＳ１１１２／Ｙｅｓ）、ブロック生成部１１３は、新たなブロックへの追加対象となるトランザクションデータから当該トランザクションデータを除外しない。ブロック生成装置１００の各機能構成は、上記のステップＳ１１０４〜ステップＳ１１１２の処理を、ステップＳ１１００にて新たなブロックへの追加対象として決定されたトランザクションデータ毎に繰り返す。
【０１１９】
その後、ブロック生成部１１３は、ブロックチェーンネットワーク４００内での合意形成に関する処理を行う。より具体的には、ステップＳ１１１６では、ブロック生成部１１３が、所定の条件を満たすナンスの探索を開始する。ブロック生成部１１３が所定の条件を満たすナンスを発見した場合（ステップＳ１１２０／Ｙｅｓ）、ブロック生成部１１３は、ステップＳ１１２４にて、新たなブロックをブロックチェーンへ追加し、ステップＳ１１２８にて、追加対象であるブロックに関する情報（例えば、ブロックの内容、またはブロック自体など）を、ブロックチェーンネットワーク４００を介して他の情報処理装置にブロードキャストすることで一連の処理が終了する。その後、ブロックチェーンネットワーク４００に接続している他のブロック生成装置１００に備えられるブロック生成部１１３による承認処理が行われることで、新たなブロックが正式にブロックチェーンに追加される。
【０１２０】
（第２のデータの削除処理）
続いて、図１９を参照して、データ削除装置２００による第２のデータの削除処理について説明する。図１９は、データ削除装置２００による第２のデータの削除処理の具体例を示すフローチャートである。
【０１２１】
ステップＳ１２００では、データ削除装置２００のデータ削除部２１３が、所定の条件（例えば、流通の対象となる物品が流通の終端に到達したか否かなど）が満たされたトランザクションデータ（第２のデータ）を削除対象として抽出する。
【０１２２】
ステップＳ１２０４では、権限確認部２１１がトランザクションデータの削除に要する権限情報を確認することで、データ削除装置２００が適切な権限情報を有しているか否かを判断する。データ削除装置２００が適切な権限情報を有していない場合（ステップＳ１２０４／Ｎｏ）、ステップＳ１２０８にて、データ削除部２１３は、削除対象となるトランザクションデータから当該トランザクションデータを除外する。
【０１２３】
データ削除装置２００が適切な権限情報を有している場合（ステップＳ１２０４／Ｙｅｓ）、ステップＳ１２１２にて、位置確認部２１２が、トランザクションデータに対応付けられた、当該トランザクションデータに対応する有体物の位置情報を確認することで、有体物の位置との関係で削除対象となるトランザクションデータが適切なものであるか否かを判断する。有体物の位置との関係で削除対象となるトランザクションデータが適切でない場合（ステップＳ１２１２／Ｎｏ）、ステップＳ１２０８にて、データ削除部２１３は、削除対象となるトランザクションデータから当該トランザクションデータを除外する。
【０１２４】
有体物の位置との関係で削除対象となるトランザクションデータが適切である場合（ステップＳ１２１２／Ｙｅｓ）、データ削除部２１３は、削除対象となるトランザクションデータから当該トランザクションデータを除外しない。データ削除装置２００の各機能構成は、上記のステップＳ１２０４〜ステップＳ１２１２の処理を、ステップＳ１２００にて削除対象として抽出されたトランザクションデータ毎に繰り返す。
【０１２５】
その後、データ削除部２１３は、ステップＳ１２１６にて、ブロックチェーンから削除対象であるトランザクションデータを含む第２のデータを削除し、ステップＳ１２２０にて、削除対象であるトランザクションデータを示す情報（例えば、トランザクションデータのＩＤ、またはトランザクションデータ自体など）を、ブロックチェーンネットワーク４００を介して他の情報処理装置にブロードキャストすることで一連の処理が終了する。その後、ブロックチェーンネットワーク４００に接続している他のデータ削除装置２００に備えられるデータ削除部２１３による承認処理が行われることで、削除対象のトランザクションデータが正式にブロックチェーンから削除される。
【０１２６】
なお、図１６〜図１９のフローチャートにおける各ステップは、必ずしも記載された順序に沿って時系列に処理される必要はない。すなわち、フローチャートにおける各ステップは、記載された順序と異なる順序で処理されても、並列的に処理されてもよい。
【０１２７】
＜３．変形例＞
上記では、各装置の処理フローの例について説明した。続いて、本開示の変形例として、ブロック間の関連付けの態様に関するバリエーションについて説明する。
【０１２８】
上記で説明したとおり、第１の関連データは、直前のブロックの第１のデータと関連付けられたデータであり、第２の関連データは、第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられたデータである。そして、上記の実施形態においては、第２の関連データは、全ての第１のデータおよび全ての第２のデータを含むデータと関連付けられている（図７などを参照）。
【０１２９】
しかし、第２の関連データの態様はこれに限定されない。例えば、図２０に示すように、第２の関連データは、一部（図２０の例では、第１の関連データ）を除外した第１のデータおよび全ての第２のデータを含むデータと関連付けられてもよい。なお、除外される第１のデータは、第１の関連データに限定されない。例えば、図２０におけるナンス、またはトランザクションデータ１ａが除外されてもよい。
【０１３０】
また、図２１に示すように、第２の関連データは、第１のデータを含まず第２のデータのみを含むデータと関連付けられてもよい。例えば、第１の関連データの生成に用いられるナンス（図中では、「第１のナンス」と表記）および第２の関連データの生成に用いられるナンス（図中では、「第２のナンス」と表記）が設けられる場合、図２１に示すように、第２の関連データは、第１のデータを含まず第２のデータのみを含むデータと関連付けられてもよい（換言すると、ナンスが複数設けられることによって、第２の関連データは、第１のデータを含まず第２のデータのみを含むデータと関連付けられることができる）。
【０１３１】
コンセンサスアルゴリズムとしてＰＯＷが採用されて各ブロックにナンスが含まれる場合、当該ナンスによって改ざんなどの発生が検出され得る。より具体的に説明すると、あるトランザクションデータが改ざんされた場合、当該トランザクションデータと同一のブロックに含まれるナンスは所定の条件（当該ブロックに対して所定のハッシュ関数を適用した場合に出力されるハッシュの先頭の数ビットがすべて“０”になるなど）を満たさなくなるため、不整合が生じることになる。改ざんを行った者がこの不整合を解消するためには、改ざんが行われたブロック以降に連結されたブロックに含まれる全てのナンスを再び探索し直す必要などがあり、処理に要する負荷などの観点から実質的に改ざんが不可能と言われている。
【０１３２】
ここで、上記で説明してきた実施形態にて、第２のデータの一部がデータ削除装置２００によって削除された場合、当該ブロックに含まれるナンスは所定の条件を満たさなくなるため、不整合が生じることになる。換言すると、上記で説明してきた実施形態においては、第２のデータの一部が削除されると、ナンスを用いて改ざんを検出することが不可能になる。
【０１３３】
一方、図２０に示したように、第１の関連データの生成に用いられる第１のナンスと、第２の関連データの生成に用いられる第２のナンスが設けられることによって、第２のデータの一部がデータ削除装置２００によって削除された場合であっても、当該ブロックに含まれる第１のナンスは所定の条件を満たしたままの状態である。したがって、本変形例においては、第２のデータの一部が削除された後も、第１のナンスを用いて第１のデータの改ざんなどを検出することが可能であるため、本変形例は有用であると言える。
【０１３４】
なお、上記で説明したように３種類以上の関連付けが行われる場合、関連付けの種類に応じてナンスが設けられてもよい。より具体的には、例えば、第１の関連データと第２の関連データの他に、第１のデータと第２のデータとは異なる第３のデータを少なくとも含むデータと関連付けられた第３の関連データが設けられた場合、第３の関連データの生成に用いられる第３のナンスがさらに設けられてもよい。
【０１３５】
続いて、図２２を参照して、本変形例に係るブロック生成装置１００によるブロックの生成処理について説明する。図２２は、本変形例に係るブロック生成装置１００によるブロックの生成処理の具体例を示すフローチャートであり、図１７に示したステップＳ１１１２の後に行われる一連の処理の具体例を示したものである。
【０１３６】
図１７のステップＳ１１１２までの処理にて、新たなブロックへの追加対象となるトランザクションデータが決定される。その後、図２２のステップＳ１３００にて、本変形例に係るブロック生成部１１３が、所定の条件を満たす第１のナンスと第２のナンスの探索を開始する。例えば、ブロック生成部１１３は、新たなブロックにおける第１のデータに対して所定のハッシュ関数（例えば、SHA-256、RIPEMD-160など）を適用した場合に出力されるハッシュの先頭の数ビットがすべて“０”になるまでナンスの値を変更していく。また、同様に、ブロック生成部１１３は、新たなブロックにおける第２のデータに対して所定のハッシュ関数を適用した場合に出力されるハッシュの先頭の数ビットがすべて“０”になるまでナンスの値を変更していく。
【０１３７】
ブロック生成部１１３が所定の条件を満たす第１のナンスを発見し（ステップＳ１３０４／Ｙｅｓ）、所定の条件を満たす第２のナンスを発見した場合（ステップＳ１３０８／Ｙｅｓ）、ステップＳ１３１２にて、ブロック生成部１１３は、新たなブロックをブロックチェーンへ追加する。そして、ステップＳ１３１６にて、ブロック生成部１１３は、追加対象であるブロックに関する情報（例えば、ブロックの内容、またはブロック自体など）を、ブロックチェーンネットワーク４００を介して他の情報処理装置にブロードキャストすることで一連の処理が終了する。その後、ブロックチェーンネットワーク４００に接続している他のブロック生成装置１００に備えられるブロック生成部１１３による承認処理が行われることで、新たなブロックが正式にブロックチェーンに追加される。
【０１３８】
なお、図２２のフローチャートにおける各ステップは、必ずしも記載された順序に沿って時系列に処理される必要はない。すなわち、フローチャートにおける各ステップは、記載された順序と異なる順序で処理されても、並列的に処理されてもよい。
【０１３９】
＜４．ハードウェア構成例＞
上記では、本開示の変形例について説明した。続いて、図２３を参照して、各装置のハードウェア構成について説明する。
【０１４０】
図２３は、ブロック生成装置１００、データ削除装置２００、またはトランザクション生成装置３００のハードウェア構成の一例を示すブロック図である。これらの装置は、図２３に示す情報処理装置９００によって具現され得る。
【０１４１】
情報処理装置９００は、例えば、ＭＰＵ９０１と、ＲＯＭ９０２と、ＲＡＭ９０３と、記録媒体９０４と、入出力インタフェース９０５と、操作入力デバイス９０６と、表示デバイス９０７と、通信インタフェース９０８とを備える。また、情報処理装置９００は、例えば、データの伝送路としてのバス９０９で各構成要素間を接続する。
【０１４２】
ＭＰＵ９０１は、例えば、ＭＰＵなどの演算回路で構成される、１または２以上のプロセッサや、各種処理回路などで構成され、ブロック生成装置１００の処理部１１０、データ削除装置２００の処理部２１０、またはトランザクション生成装置３００の処理部３１０として機能する。なお、これらの機能構成は、上記で説明した各種処理を実現可能な専用の（または汎用の）回路（例えば、ＭＰＵ９０１とは別体のプロセッサなど）で構成されていてもよい。
【０１４３】
ＲＯＭ９０２は、ＭＰＵ９０１が使用するプログラムや演算パラメータなどの制御用データなどを記憶する。ＲＡＭ９０３は、例えば、ＭＰＵ９０１により実行されるプログラムなどを一時的に記憶する。
【０１４４】
記録媒体９０４は、ブロック生成装置１００の記憶部１２０、データ削除装置２００の記憶部２２０、またはトランザクション生成装置３００の記憶部３２０として機能し、各実施形態に係る情報処理に関するデータや各種プログラムなど様々なデータを記憶する。ここで、記録媒体９０４としては、例えば、ハードディスクなどの磁気記録媒体や、フラッシュメモリなどの不揮発性メモリが挙げられる。また、記録媒体９０４は、情報処理装置９００から着脱可能であってもよい。
【０１４５】
入出力インタフェース９０５は、例えば、操作入力デバイス９０６や、表示デバイス９０７を接続する。ここで、入出力インタフェース９０５としては、例えば、ＵＳＢ（Universal  Serial  Bus）端子や、ＤＶＩ（Digital  Visual  Interface）端子、ＨＤＭＩ（High-Definition  Multimedia  Interface）（登録商標）端子、各種処理回路などが挙げられる。
【０１４６】
また、操作入力デバイス９０６は、例えば、情報処理装置９００上に備えられ、情報処理装置９００の内部で入出力インタフェース９０５と接続される。操作入力デバイス９０６としては、例えば、キーボード、マウス、キーパッド、タッチパネル、マイクロホン、操作ボタン、方向キーまたはジョグダイヤルなどの回転型セレクタ、あるいは、これらの組み合わせなどが挙げられる。
【０１４７】
また、表示デバイス９０７は、例えば、情報処理装置９００上に備えられ、情報処理装置９００の内部で入出力インタフェース９０５と接続される。表示デバイス９０７としては、例えば、液晶ディスプレイ（Liquid  Crystal  Display）や有機ＥＬディスプレイ（Organic  Electro-Luminescence  Display）などが挙げられる。
【０１４８】
なお、入出力インタフェース９０５が、情報処理装置９００の外部の操作入力デバイスや外部の表示デバイスなどの外部デバイスと接続することも可能であることは、言うまでもない。また、表示デバイス９０７は、例えばタッチパネルなど、表示とユーザ操作とが可能なデバイスであってもよい。
【０１４９】
通信インタフェース９０８は、情報処理装置９００が備える通信手段であり、ブロック生成装置１００の通信部１３０、データ削除装置２００の通信部２３０、またはトランザクション生成装置３００の通信部３３０として機能する。また、通信インタフェース９０８は、任意のネットワークを介して（あるいは、直接的に）、例えば、サーバなどの任意の外部装置と、無線または有線で通信を行う機能を有していてもよい。ここで、通信インタフェース９０８としては、例えば、通信アンテナおよびＲＦ（Radio  Frequency）回路（無線通信）や、ＩＥＥＥ８０２．１５．１ポートおよび送受信回路（無線通信）、ＩＥＥＥ８０２．１１ポートおよび送受信回路（無線通信）、あるいはＬＡＮ（Local  Area  Network）端子および送受信回路（有線通信）などが挙げられる。
【０１５０】
なお、情報処理装置９００のハードウェア構成は、図２３に示す構成に限られない。例えば、情報処理装置９００は、接続されている外部の通信デバイスを介して通信を行う場合には、通信インタフェース９０８を備えていなくてもよい。また、通信インタフェース９０８は、複数の通信方式によって通信を行うことが可能な構成であってもよい。また、情報処理装置９００は、例えば、操作入力デバイス９０６または表示デバイス９０７等を備えなくてもよい。また、例えば、図２３に示す構成の一部または全部は、１または２以上のＩＣ（Integrated  Circuit）で実現されてもよい。
【０１５１】
＜５．まとめ＞
以上で説明してきたように、ブロック生成装置１００は、直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データ（例えば、第１のデータのハッシュ）と、直前のブロックに含まれたデータであって、第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データ（例えば、第１のデータとは異なる第２のデータを少なくとも含むデータのハッシュ）と、を含むブロックを生成し、当該ブロックをブロックチェーンに連結する。その際、ブロック生成装置１００は、トランザクションデータに対応付けられた生成元情報に基づいて生成元が有する権限情報を確認し、権限情報の確認結果に基づいて生成対象となるブロックに当該トランザクションデータを含めるか否かを判断する。また、ブロック生成装置１００は、トランザクションデータに対応付けられた、当該トランザクションデータに対応する有体物の位置情報を確認し、位置情報の確認結果に基づいて生成対象となるブロックに当該トランザクションデータを含めるか否かを判断する。
【０１５２】
そして、データ削除装置２００は、ブロックチェーンに連結された一部のブロックから第２のデータの少なくとも一部を削除する。その際、データ削除装置２００は、トランザクションデータの削除に要する権限情報を確認し、権限情報の確認結果に基づいて当該トランザクションデータを削除するか否かを判断する。また、データ削除装置２００は、トランザクションデータに対応付けられた位置情報を確認し、位置情報の確認結果に基づいて当該トランザクションデータを削除するか否かを判断する。そして、トランザクションデータを削除することを決定したデータ削除装置２００は、位置情報に基づいて決まる区間に存在する第２のデータの少なくとも一部を削除する。
【０１５３】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１５４】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０１５５】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成するブロック生成部を備える、
情報処理装置。
（２）
前記第１のデータまたは前記第２のデータに含まれるトランザクションデータに対応付けられた、前記トランザクションデータの生成元を示す情報に基づいて前記生成元が有する権限情報を確認する権限確認部をさらに備え、
前記ブロック生成部は、前記権限情報の確認結果に基づいて生成対象となるブロックに前記トランザクションデータを含めるか否かを判断する、
前記（１）に記載の情報処理装置。
（３）
前記第１のデータまたは前記第２のデータに含まれるトランザクションデータに対応付けられた、前記トランザクションデータに対応する有体物の位置情報を確認する位置確認部をさらに備え、
前記ブロック生成部は、前記位置情報の確認結果に基づいて生成対象となるブロックに前記トランザクションデータを含めるか否かを判断する、
前記（１）または（２）に記載の情報処理装置。
（４）
前記位置情報は、前記トランザクションデータが生成された時点、または前記時点の前後所定時間内における前記有体物の位置を示す情報である、
前記（３）に記載の情報処理装置。
（５）
前記有体物は、流通の対象となる物品であり、
前記トランザクションデータは、前記物品の流通過程で生成されるデータを含む、
前記（３）または（４）に記載の情報処理装置。
（６）
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成すること、を有する、
コンピュータにより実行される情報処理方法。
（７）
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結されるブロックを生成すること
をコンピュータに実現させるためのプログラム。
（８）
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結された一部のブロックから前記第２のデータの少なくとも一部を削除するデータ削除部を備える、
情報処理装置。
（９）
前記データ削除部は、前記第２のデータに含まれるトランザクションデータを少なくとも削除する、
前記（８）に記載の情報処理装置。
（１０）
前記第２のデータに含まれるトランザクションデータの削除に要する権限情報を確認する権限確認部をさらに備え、
前記データ削除部は、前記権限情報の確認結果に基づいて前記トランザクションデータを削除するか否かを判断する、
前記（９）に記載の情報処理装置。
（１１）
前記第２のデータに含まれるトランザクションデータに対応付けられた、前記トランザクションデータに対応する有体物の位置情報を確認する位置確認部をさらに備え、
前記データ削除部は、前記位置情報の確認結果に基づいて前記トランザクションデータを削除するか否かを判断する、
前記（９）または（１０）に記載の情報処理装置。
（１２）
前記位置情報は、前記トランザクションデータが生成された時点、または前記時点の前後所定時間内における前記有体物の位置を示す情報である、
前記（１１）に記載の情報処理装置。
（１３）
前記データ削除部は、前記位置情報に基づいて決まる区間に対応する前記トランザクションデータの少なくとも一部を削除する、
前記（１１）または（１２）に記載の情報処理装置。
（１４）
前記有体物は、流通の対象となる物品であり、
前記トランザクションデータは、前記物品の流通過程の情報に関連付けられたデータを含む、
前記（１３）に記載の情報処理装置。
（１５）
前記区間は、前記流通の始端と終端に対応する区間である、
前記（１４）に記載の情報処理装置。
（１６）
前記データ削除部は、前記第２のデータに含まれる前記トランザクションデータを削除し、前記第１のデータを維持する、
前記（９）から（１５）のいずれか１項に記載の情報処理装置。
（１７）
前記第１のデータは、前記第２のデータからは独立したデータであるブロックチェーンのナンスデータを含み、
前記第２の関連データは、前記第１のデータに含まれる前記ブロックチェーンのナンスデータに関連付けられたハッシュデータであり、
前記データ削除部は、前記第２のデータに含まれる前記トランザクションデータと前記第２の関連データを少なくとも削除する、
前記（１６）に記載の情報処理装置。
（１８）
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結された一部のブロックから前記第２のデータの少なくとも一部を削除すること、を有する、
コンピュータにより実行される情報処理方法。
（１９）
直前のブロックに含まれた少なくとも一部のデータである第１のデータと関連付けられた第１の関連データと、前記直前のブロックに含まれたデータであって、前記第１のデータとは異なる第２のデータを少なくとも含むデータと関連付けられた第２の関連データと、を含み、ブロックチェーンに連結された一部のブロックから前記第２のデータの少なくとも一部を削除すること
をコンピュータに実現させるためのプログラム。
【符号の説明】
【０１５６】
１００    ブロック生成装置
１１０    処理部
１１１    権限確認部
１１２    位置確認部
１１３    ブロック生成部
１２０    記憶部
１２１    共有データ
１２２    トランザクション記憶部
１２３    ブロックチェーン
１３０    通信部
２００    データ削除装置
２１０    処理部
２１１    権限確認部
２１２    位置確認部
２１３    データ削除部
２２０    記憶部
２２１    共有データ
２２２    トランザクション記憶部
２２３    ブロックチェーン
２３０    通信部
３００    トランザクション生成装置
３１０    処理部
３１１    位置確認部
３１２    トランザクション生成部
３２０    記憶部
３２１    共有データ
３２２    トランザクション記憶部
３２３    ブロックチェーン
４００    ブロックチェーンネットワーク
【図１】
2019211821.tif 000003
【図２】
2019211821.tif 000004
【図３】
2019211821.tif 000005
【図４】
2019211821.tif 000006
【図５】
2019211821.tif 000007
【図６】
2019211821.tif 000008
【図７】
2019211821.tif 000009
【図８】
2019211821.tif 000010
【図９】
2019211821.tif 000011
【図１０】
2019211821.tif 000012
【図１１】
2019211821.tif 000013
【図１２】
2019211821.tif 000014
【図１３】
2019211821.tif 000015
【図１４】
2019211821.tif 000016
【図１５】
2019211821.tif 000017
【図１６】
2019211821.tif 000018
【図１７】
2019211821.tif 000019
【図１８】
2019211821.tif 000020
【図１９】
2019211821.tif 000021
【図２０】
2019211821.tif 000022
【図２１】
2019211821.tif 000023
【図２２】
2019211821.tif 000024
【図２３】
2019211821.tif 000025