(57)【要約】【課題】ブロック上に格納されたトランザクションデータを好適に検索することができる情報処理装置、情報処理方法およびプログラムを提供する。【解決手段】情報処理装置は、トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、トランザクションのデータを格納する。ハッシュチェーンは、トランザクションの取引対象毎に記憶され、発生したトランザクションの取引対象に対応するハッシュチェーンで連結されるデータブロックそれぞれに、トランザクションのデータとして共通のデータを格納する。【選択図】図５
2020046855.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、前記トランザクションの取引対象毎に記憶され、
前記データ格納手段は、発生した前記トランザクションの前記取引対象に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、前記トランザクションのデータとして共通のデータを格納する、
ことを特徴とする情報処理装置。
【請求項２】
前記データ格納手段は、前記ハッシュチェーンとは異なる特別ハッシュチェーンで連結されるデータブロックに、発生した前記トランザクションの取引対象に関わらず、前記トランザクションのデータを、発生した順に格納する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記データ格納手段により格納した前記トランザクションのデータを、ユーザの要求に基づいて前記ハッシュチェーンまたは前記特別ハッシュチェーンから検索する検索手段と、
前記検索手段で検索した検索結果に基づいて、前記ユーザの要求を満たす態様の図を生成する生成手段と、
前記生成手段で生成された図を表示する表示手段と、
をさらに備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記検索手段は、前記ユーザの要求に時間的要素が含まれる場合に、前記特別ハッシュチェーンから検索を行い、前記時間的要素が含まれない場合に、前記ハッシュチェーンから検索を行う、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
情報処理装置における情報処理方法であって、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納ステップを実行し、
前記ハッシュチェーンは、前記トランザクションの取引対象毎に記憶され、
前記データ格納ステップでは、発生した前記トランザクションの前記取引対象に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、前記トランザクションのデータとして共通のデータを格納する、
ことを特徴とする情報処理方法。
【請求項６】
コンピュータを、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段として機能させ、
前記ハッシュチェーンは、前記トランザクションの取引対象毎に記憶され、
前記データ格納手段は、発生した前記トランザクションの前記取引対象に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、前記トランザクションのデータとして共通のデータを格納する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ビットコイン（登録商標）等の仮想通貨を用いた商取引が行われている。当該仮想通貨を用いた商取引では、中央集権的な管理を必要とせずに不正を防止するため、ブロックチェーンと呼ばれる技術が用いられている。ブロックチェーンでは、複数のトランザクションデータ、直前のハッシュ値及びその他の情報を「ブロック」として定義し、参加者全体で形成されるネットワーク内での合意形成のプロセスによって当該「ブロック」内の情報の信頼性を担保している。しかしながら、このようなブロックチェーンの技術により仮想通貨の商取引を行う場合、１秒あたりに処理可能な件数が少ないといった問題がある。
【０００３】
このような問題に対応するため、例えば非特許文献１には、ハッシュグラフと呼ばれる技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】”ブロックチェーンを超える技術が存在！分散型台帳「Hashgraph」とは？”、［Online］、［平成30年9月3日検索］、インターネット<URL：https://coin-otaku.com/topic/7754>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１に開示されているハッシュグラフの技術では、ランダムに選ばれた一部のユーザの承認によりトランザクションデータの記録を行うことから、ブロックチェーンの技術を用いた処理よりも高速な処理を実現可能となる。しかしながら、複数のトランザクションデータを時系列に格納したブロックを複数つないでいく点ではいずれの技術も共通であり、ブロック上に格納したトランザクションデータを好適に検索するという面からすると未だ十分ではなかった。
【０００６】
本発明は、上述のような事情に鑑みてなされたものであり、ブロック上に格納されたトランザクションデータを好適に検索することができる情報処理装置、情報処理方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点に係る情報処理装置は、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、前記トランザクションの取引対象毎に記憶され、
前記データ格納手段は、発生した前記トランザクションの前記取引対象に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、前記トランザクションのデータとして共通のデータを格納する、
ことを特徴とする。
【０００８】
前記データ格納手段は、前記ハッシュチェーンとは異なる特別ハッシュチェーンで連結されるデータブロックに、発生した前記トランザクションの取引対象に関わらず、前記トランザクションのデータを、発生した順に格納する、
ようにしてもよい。
【０００９】
前記データ格納手段により格納した前記トランザクションのデータを、ユーザの要求に基づいて前記ハッシュチェーンまたは前記特別ハッシュチェーンから検索する検索手段と、
前記検索手段で検索した検索結果に基づいて、前記ユーザの要求を満たす態様の図を生成する生成手段と、
前記生成手段で生成された図を表示する表示手段と、
をさらに備えるようにしてもよい。
【００１０】
前記検索手段は、前記ユーザの要求に時間的要素が含まれる場合に、前記特別ハッシュチェーンから検索を行い、前記時間的要素が含まれない場合に、前記ハッシュチェーンから検索を行う、
ようにしてもよい。
【００１１】
上記目的を達成するため、本発明の第２の観点に係る情報処理方法は、
情報処理装置における情報処理方法であって、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納ステップを実行し、
前記ハッシュチェーンは、前記トランザクションの取引対象毎に記憶され、
前記データ格納ステップでは、発生した前記トランザクションの前記取引対象に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、前記トランザクションのデータとして共通のデータを格納する、
ことを特徴とする。
【００１２】
上記目的を達成するため、本発明の第３の観点に係るプログラムは、
コンピュータを、
トランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションのデータを格納するデータ格納手段として機能させ、
前記ハッシュチェーンは、前記トランザクションの取引対象毎に記憶され、
前記データ格納手段は、発生した前記トランザクションの前記取引対象に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、前記トランザクションのデータとして共通のデータを格納する、
ことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ブロック上に格納されたトランザクションデータを好適に検索することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る情報処理システムの一例を示すブロック図である。
【図２】本発明の実施形態に係る情報処理装置の一例を示すブロック図である。
【図３】初期登録処理の一例を示すフローチャートである。
【図４】データブロック登録処理の一例を示すフローチャートである。
【図５】ハッシュチェーンの構成例を示す図である。
【図６】発生したトランザクションの一例を示す図である。
【図７】ハッシュチェーンの登録内容の例を示す図である。
【図８】確認処理の一例を示すフローチャートである。
【図９】売り上げ集計が指定された場合の確認処理の実行例を示す図である。
【図１０】顧客リストが指定された場合の確認処理の実行例を示す図である。
【図１１】履歴情報の登録内容の例を示す図である。
【図１２】クーポン配布前後の推移が指定された場合の確認処理の実行例を示す図である。
【発明を実施するための形態】
【００１５】
本発明における情報処理装置１００を、図１に示す情報処理システム１に適用した例を用いて説明する。情報処理システム１では、図１に示すように、情報処理装置１００Ａおよび１００Ｂ（情報処理装置１００Ａおよび１００Ｂを単に情報処理装置１００ともいう）、顧客Ａ〜Ｃの端末１００Ｃ〜１００Ｅ、店舗１および２の端末１００Ｆおよび１００Ｇのそれぞれがネットワーク２１０を介して通信可能に接続されている。顧客Ａ〜Ｃの端末１００Ｃ〜１００Ｅ、店舗１および２の端末１００Ｆおよび１００Ｇは、それぞれ情報処理装置１００としても機能することが可能である（端末１００Ｃ〜１００Ｇが情報処理装置１００として機能することもある）が、理解を容易にするため、この実施の形態では、これらを情報処理装置１００と区別して説明する。
【００１６】
情報処理装置１００は、携帯電話やスマートフォン、タブレットやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報端末であり、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）等の分散型のネットワーク２１０を構築している。なお、情報処理システム１は、Ｐ２Ｐ型のシステムに限られず、例えばクラウドコンピューティング型であってもよい。
【００１７】
情報処理装置１００は、例えば、顧客Ａが店舗１にて買い物をした、などといった、顧客と店舗との間で発生した取引のデータ（トランザクションデータ）をネットワーク２１０から受信したことに基づいて、新たなデータブロックを生成して当該受信データを格納し、既存のハッシュチェーンに連結する、ハッシュチェーン登録装置として機能する。なお、上述したように、端末１００Ｃ〜１００Ｇが情報処理装置１００として機能することもあることから、情報処理装置１００は、トランザクションデータを生成し、ネットワーク２１０へ配信する機能を有するトランザクション生成装置として機能することもある。ハッシュチェーン登録装置にて登録された内容は、ネットワーク２１０を介して、各情報処理装置１００で共有される。また、通常、一定数のトランザクションデータが一つのデータブロックに格納される（一定数のトランザクションデータをひとまとめにして一つのブロックに格納する）が、この実施の形態では、理解を容易にするため、一つのトランザクションデータが一つのデータブロックに格納されるものとする。
【００１８】
この実施の形態において、顧客と店舗との間で発生した取引により生成された（端末Ｃ〜端末Ｇのいずれかがトランザクション生成装置として機能して生成された）トランザクションデータは、データブロックと呼ばれる一つの単位に格納され、当該データブロックを時系列に連結したそれぞれの属性のハッシュチェーンによって管理される。例えば、顧客Ａと店舗１との間で発生したトランザクションデータは、顧客Ａの属性のハッシュチェーンおよび店舗１の属性のハッシュチェーンとに、それぞれ新たなデータブロックとして同内容のデータが登録されて管理される。
【００１９】
また、この実施の形態における情報処理装置１００は、各属性のハッシュチェーンに含まれるデータブロックから、ユーザの所望する登録データを分類したり集計したりするデータ統計装置としても機能する。なお、データ統計装置としての機能には、後述する履歴情報に基づいてデータを分類したり集計したりする機能も含まれる。
【００２０】
具体的に、この実施の形態における情報処理装置１００のデータ統計装置としての機能は、ユーザによる指定に基づいて、店舗毎の売り上げの集計、顧客リストの作成などを行う機能であり、ユーザにより所望されたデータを、グラフや表などの図にて表示することでユーザによる認識や分析を容易にする機能である。
【００２１】
次に、図２を参照し、この実施の形態における情報処理装置１００の構成について説明する。なお、図示する例では、情報処理装置１００Ａを例としているが、情報処理装置１００Ｂおよび端末１００Ｃ〜１００Ｇの端末が情報処理装置１００として機能する場合についても同様であるため、説明は省略する。なお、図示は省略しているが、トランザクション生成装置としての機能を有する機能部が設けられていてもよい。
【００２２】
図２に示すように、情報処理装置１００Ａ（以下、情報処理装置１００）は、記憶部１１０と、制御部１２０と、入出力部１３０と、通信部１４０と、これらを相互に接続するシステムバス（図示省略）と、を備えている。
【００２３】
記憶部１１０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ)やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を備える。ＲＯＭは制御部１２０のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が実行するプログラム及び、プログラムを実行する上で予め必要なデータを記憶する（図示省略）。具体的に、この実施の形態では、当該情報処理装置１００を、ハッシュチェーン登録装置およびデータ統計装置として機能させるためのプログラムが、予めインストールされている。ＲＡＭは、プログラム実行中に作成されたり変更されたりするデータを記憶する。記憶部１１０は、制御部１２０が実行するプログラムが用いる主要な情報として、各属性のハッシュチェーン１１１、履歴情報１１２を記憶する。
【００２４】
各属性のハッシュチェーン１１１は、顧客Ａ〜Ｃ、店舗１〜２それぞれの属性に対応するハッシュチェーンであり、それぞれのハッシュチェーンは、トランザクションデータが格納されたデータブロックが連結されたものである。各属性のハッシュチェーン１１１は、後述するデータブロック登録処理にて当該記憶部１１０に記憶され、後述する確認処理により、ハッシュチェーンが指定された場合に参照される。
【００２５】
履歴情報１１２は、全てのトランザクションデータが時系列に格納された特別なハッシュチェーンである。履歴情報１１２は、後述するデータブロック登録処理にて当該記憶部１１０に記憶され、後述する確認処理により、ハッシュチェーンが指定されなかった場合に参照される。なお、この実施の形態における履歴情報１１２は、１つのトランザクションデータが１つのデータブロックに格納され連結されたハッシュチェーンであり、属性に関わらず全てのトランザクションデータが格納されたハッシュチェーン（属性のないハッシュチェーン）である。なお、複数のトランザクションデータが１つのデータブロックに格納され、ハッシュチェーンとして連結されてもよい。なお、履歴情報は、時系列に格納された一覧表にしてもよい。
【００２６】
制御部１２０は、ＣＰＵやＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等から構成される。制御部１２０は、記憶部１１０に記憶されたプログラムに従って動作し、当該プログラムに従った処理を実行する。制御部１２０は、記憶部１１０に記憶されたプログラムにより提供される主要な機能部として、初期登録部１２１と、同期処理部１２２と、データブロック登録部１２３と、データ取得部１２４と、グラフ生成部１２５と、を備える。
【００２７】
初期登録部１２１は、ユーザの入出力部１３０に対する操作や、通信部１４０を介して受信した要求に基づいて、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する機能を実現する機能部である。詳しくは後述するが、初期登録部１２１は、例えば、顧客Ａの属性のハッシュチェーンを生成するために必要な初期情報として、属性情報、顧客Ａのアドレス、インデックス値などを登録する機能（すなわち、後述するハッシュチェーンの土台情報を登録する機能）を有している。
【００２８】
同期処理部１２２は、当該情報処理装置１００に記憶された各属性のハッシュチェーンと、他の情報処理装置１００に記憶された各属性のハッシュチェーンとを同期する機能を実現する機能部である。詳しくは後述するが、同期処理部１２２は、後述するデータブロック登録処理にてトランザクションデータを当該情報処理装置１００におけるデータブロックに登録する前と後に、他の情報処理装置１００と同期する機能を有している。また、同期処理部１２２は、後述する初期登録処理において他の情報処理装置１００へ、ハッシュチェーンの土台情報を同期させる機能を有している。
【００２９】
データブロック登録部１２３は、発生したトランザクションのトランザクションデータを含むデータブロックを、当該情報処理装置１００の各属性のハッシュチェーン１１１のうち、対応する属性のハッシュチェーンに追加する機能を実現する機能部である。詳しくは後述するが、データブロック登録部１２３は、例えば、顧客Ａと店舗１とで取引が行われた場合、顧客Ａと店舗１のそれぞれのハッシュチェーンに、当該取引の内容（トランザクションデータ）を、新たなデータブロックとして登録する機能を有している。また、データブロック登録部１２３は、トランザクションデータを履歴情報１１２に登録する機能も有している。
【００３０】
データ取得部１２４は、ユーザの指定に基づいて、登録された各属性のハッシュチェーン１１１に含まれるデータブロックの内容や、履歴情報１１２に含まれるデータを取得する機能を実現する機能部である。なお、データ取得部１２４には、取得したデータを再配置して出力する機能も有している。
【００３１】
また、グラフ生成部１２５は、データ取得部１２４により取得したデータから、ユーザの指定に基づいて、グラフや表や図などを生成する機能を実現する機能部である。
【００３２】
これら各機能部が協働して、当該情報処理装置１００をハッシュチェーン登録装置およびデータ統計装置として機能させる。
【００３３】
入出力部１３０は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機ＥＬ（Ｅｌｅｃｔｏｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等から構成され、データの入出力を行うための装置である。
【００３４】
通信部１４０は、他の情報処理装置１００や端末Ｃ〜端末Ｇとネットワーク２１０を介して通信を行うためのデバイスである。
【００３５】
以上が、情報処理装置１００の構成である。続いて情報処理装置１００の動作などについて、図３〜図１２を参照して説明する。まず、ハッシュチェーン登録装置として機能した場合における情報処理装置１００の動作について、図３〜７を参照して説明する。
【００３６】
まず、ユーザの入出力部１３０に対する操作（入力操作）や、端末Ｃ〜端末Ｇから受信した要求（登録要求）に基づいて、図３に示す初期登録処理が行われる。初期登録処理は、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する処理である。この例では、理解を容易にするため、顧客Ａについての初期登録を行う場合について説明する。初期登録処理を開始すると、情報処理装置１００は、初期登録部１２１の機能により、属性データを生成する（ステップＳ１０１）。具体的に、ステップＳ１０１では、入力操作や登録要求に含まれる、属性情報である顧客Ａの情報および顧客Ａのアドレスを、顧客Ａの属性のハッシュチェーンを生成するための情報として、記憶部１１０へ登録する。なお、当該情報は、各属性のハッシュチェーン１１１のうちの属性Ａのハッシュチェーンとして登録されればよい。また、属性情報は登録せず、アドレスのみ登録するようにしてもよい。なお、この実施の形態では、顧客Ａ〜Ｃのアドレスを０１〜０３、店舗１および２のアドレスをＸＸおよびＹＹとしている。
【００３７】
次に、情報処理装置１００は、初期登録部１２１の機能により、登録した顧客Ａの属性のハッシュチェーンのインデックス値に、初期値である「０」を登録する（ステップＳ１０２）。インデックス値が「０」であることは、当該ハッシュチェーンが初期状態であること（何らデータブロックが登録されていない状態であること）を示している。すなわち、ステップＳ１０１およびステップＳ１０２の処理では、データブロックがチェーンで連結されてはいないものの、データブロックが未登録のハッシュチェーン（ハッシュチェーンの土台情報）が生成されていると言える。なお、この状態では、データブロックがチェーンで連結されていないため、データを削除でき、また、削除したことを検証することができない、といった問題がある。そこで、対改ざん性を高めるため、ランダムで選択したハッシュチェーンに対して、０コインの特別なトランザクションを発生させ、インデックス値が「０」のデータブロックをチェーンで連結する処理を行うようにしてもよい。
【００３８】
ステップＳ１０２の処理を実行した後、情報処理装置１００は、同期処理部１２２の機能により、他の情報処理装置１００へ、当該内容を登録し（ステップＳ１０３）、初期登録処理を終了する。具体的に、ステップＳ１０３では、当該情報処理装置１００における顧客Ａの属性のハッシュチェーン（ハッシュチェーンの土台情報）の内容を、他の情報処理装置１００の記憶部１１０における各属性のハッシュチェーン１１１へコピーする。これにより、全ての情報処理装置１００において顧客Ａの属性のハッシュチェーン（ハッシュチェーンの土台情報）が共有されることとなる。
【００３９】
次に、発生したトランザクションについて、当該トランザクションデータを対応する属性のハッシュチェーンのデータブロックへ登録するデータブロック登録処理について説明する。当該データブロック登録処理は、発生したトランザクションに対応するトランザクションデータを受信することにより実行される。トランザクションデータは、端末Ｃ〜端末Ｇのいずれかより受信するものであるが、入出力部１３０に入力されてもよい。なお、この実施の形態では、上述したように、一つのトランザクションにつき一つのデータブロックが作成され登録されることから、当該データブロック登録処理は、登録すべきトランザクションの数が複数ある場合、繰り返し実行されることとなる。
【００４０】
図４は、データブロック登録処理の一例を示すフローチャートである。この例では、理解を容易にするため、顧客Ａが店舗１にて１０００コイン購入したというトランザクションが発生した場合のデータブロック登録処理（図５（Ａ）の状態から（Ｂ）の状態へと移行する場合）について説明する。
【００４１】
顧客Ａが店舗１にて１０００コイン購入したというトランザクションが発生すると、これに対応するトランザクションデータが顧客Ａの端末Ｃまたは店舗１の端末Ｆから送信される。これにより、情報処理装置１００は、データブロック登録部１２３の機能により、データブロック登録処理を開始する。なお、端末Ｃと端末Ｆの両方から同内容のトランザクションデータを受信することをもってデータブロック登録処理を開始するようにしてもよい。異なる内容のトランザクションデータを受信した場合には、エラーを出力するようにしてもよい。
【００４２】
データブロック登録処理を開始すると、情報処理装置１００は、まず、同期処理部１２２の機能により、当該情報処理装置１００における対象のハッシュチェーンと、他の情報処理装置１００における対象のハッシュチェーンとが、同期しているか否かを判定する（ステップＳ２０１）。具体的に、この例におけるステップＳ２０１の処理では、各属性のハッシュチェーン１１１のうち、顧客Ａのハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値、および店舗１のハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値と、他の全ての情報処理装置１００に記憶されたものと同一であるか否かを判定することで、同期しているか否かを判定する。
【００４３】
図５（Ａ）に示す例を用いて説明すると、当該情報処理装置１００（トランザクションデータを受信した情報処理装置１００のことをいう、以下同様）の各属性のハッシュチェーン１１１のうち、顧客Ａのハッシュチェーンには、インデックス値「Ｎ−１」のデータブロックが最新のデータブロックとして登録されており、店舗１のハッシュチェーンには、インデックス値「Ｚ−１」のデータブロックが最新のデータブロックとして登録されている。なお、図示するように、この実施の形態におけるハッシュチェーンのデータブロック（第ｍのデータブロック）には、登録データ（トランザクションデータ）と、現在のハッシュチェーンの末尾（１つ前）のデータブロック（第ｍ−１のデータブロック）のハッシュ値（２５６ビット）が含まれる点は、従来のブロックチェーンの仕組みと同様である。また、データブロックには、例えば、当該データブロックに登録データが登録された日時を示すタイムスタンプなどの分析用付加データが含まれる（図示省略）点についても、従来のブロックチェーンの仕組みと同様である。
【００４４】
ステップＳ２０１の処理では、インデックス値「Ｎ−１」と当該Ｎ−１のハッシュ値、およびインデックス値「Ｚ−１」と当該Ｚ−１のハッシュ値が、他の全ての情報処理装置１００に記憶されているものと一致するか否かを判定することで、同期しているか否かを判定する。例えば、インデックス値「Ｎ」と当該Ｎのハッシュ値が記憶されている情報処理装置１００が存在する場合には、当該情報処理装置１００に記憶されている顧客Ａの属性のハッシュチェーンの情報が古いと判定する（インデックス値「Ｚ」および当該Ｚのハッシュ値の場合には店舗１の属性のハッシュチェーン）。一方、インデックス値「Ｎ−２」と当該Ｎ−２のハッシュ値が記憶されている情報処理装置１００が存在する場合には、その情報処理装置１００に記憶されている顧客Ａの属性のハッシュチェーンの情報が古いと判定する（インデックス値「Ｚ−２」および当該Ｚ−２のハッシュ値の場合には店舗１の属性のハッシュチェーン）。
【００４５】
同期していない場合（ステップＳ２０１；Ｎｏ）、情報処理装置１００は、同期処理部１２２の機能により、最新のハッシュチェーンの内容を、古いと判定したハッシュチェーンが登録されている情報処理装置１００へコピーする同期処理を実行する（ステップＳ２０２）。なお、ステップＳ２０２の処理では、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ（インデックス値やハッシュ値も含む）コピーしてもよい。
【００４６】
図４に戻り、ステップＳ２０１にて同期していると判定した場合（ステップＳ２０１；Ｙｅｓ）、またはステップＳ２０２の処理を実行した場合、情報処理装置１００は、対象のハッシュチェーンに同一の登録データを格納したデータブロックをそれぞれ追加する（ステップＳ２０３）。なお、上述したように、新たなデータブロック（第ｍのデータブロック）をハッシュチェーンに追加する場合、登録データ（トランザクションデータ）と、現在のハッシュチェーンの末尾（１つ前）のデータブロック（第ｍ−１のデータブロック）のハッシュ値（２５６ビット）をデータブロックに格納し、現在のハッシュチェーンの末尾（１つ前）のデータブロック（第ｍ−１のデータブロック）に連結する点は、従来のブロックチェーンの仕組みと同様である。
【００４７】
具体的に、ステップＳ２０３の処理では、図５（Ｂ）に示すように、顧客Ａの属性のハッシュチェーンには、インデックス値「Ｎ」のデータブロックがインデックス値「Ｎ−１」のデータブロックに連結されるとともに、店舗１の属性のハッシュチェーンには、インデックス値「Ｚ」のデータブロックがインデックス値「Ｚ−１」のデータブロックに連結される。連結されるそれぞれのデータブロックは、同一のトランザクションデータが含まれる。具体的に、店舗１から（Ｆｒｏｍ：ＸＸ）顧客１へ（Ｔｏ：０１）１０００のコインが移動した（価値：１０００）ことを示す内容が登録される。図示するように、「Ｆｒｏｍ」と「Ｔｏ」により、どちらからどちらに価値であるコインが移動したかが示され、価値の大きさにより、コインの移動量が示される。なお、この実施の形態では、店舗から顧客へコインが移動した場合には、現金収入があったものとしている。また、登録されるトランザクションデータは、コインを基準としているが、現金を基準としてもよい。さらに、顧客Ａの属性のハッシュチェーンにおけるインデックス値「Ｎ」のデータブロックには、Ｎ−１のハッシュ値が格納され、店舗１の属性のハッシュチェーンにおけるインデックス値「Ｚ」のデータブロックには、Ｚ−１のハッシュ値が格納される。このように、この実施の形態における情報処理装置１００は、対応するそれぞれのハッシュチェーンに、同一のトランザクションデータを追加する。
【００４８】
図４に戻り、ステップＳ２０３の処理を実行した後、情報処理装置１００は、データブロック登録部１２３の機能により、ステップＳ２０３にて追加したトランザクションデータを履歴情報１１２としてのブロックに登録する（ステップＳ２０４）。なお、図示する例では、ステップＳ２０３の処理の後に当該ステップＳ２０４の処理を実行する例を示しているが、ステップＳ２０３にて履歴情報１１２への登録を合わせて実行してもよいし、ステップＳ２０３の前にステップＳ２０４の処理を実行してもよい。なお、上述したように、履歴情報１１２は、１つのトランザクションデータが１つのデータブロックに格納され連結された、属性のないハッシュチェーンであることから、１つのブロックには、現在のハッシュチェーンの末尾（１つ前）のデータブロック（第ｍ−１のデータブロック）のハッシュ値（２５６ビット）や分析用付加データが含まれる点は、各属性のハッシュチェーン１１１と同様であるとともに、従来のブロックチェーンの仕組みと同様である。また、ステップＳ２０３の処理では、同じ内容のトランザクションデータが顧客Ａの属性のハッシュチェーンと店舗１の属性のハッシュチェーンのそれぞれに追加されるが、ステップＳ２０４では、顧客Ａが店舗１にて１０００コイン購入したことを示すトランザクションデータが、当該履歴情報１１２の１データブロックに登録されるのみである。
【００４９】
ステップＳ２０４の処理を実行した後、情報処理装置１００は、同期処理部１２２の機能により、ステップＳ２０３にてデータブロックを追加した属性のハッシュチェーンおよび履歴情報１１２を他の情報処理装置１００へ登録することにより、当該情報処理装置１００と他の情報処理装置１００とを同期してから（ステップＳ２０５）、データブロック登録処理を終了する。なお、ステップＳ２０５の処理では、当該情報処理装置１００における顧客Ａおよび店舗１の属性のハッシュチェーンそれぞれの内容と、履歴情報１１２の内容を、他の情報処理装置１００の記憶部１１０における各属性のハッシュチェーン１１１および履歴情報１１２へコピーする。なお、ステップＳ２０５の処理では、ステップＳ２０２の処理と同様に、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ（インデックス値やハッシュ値も含む）コピーしてもよい（履歴情報１１２についても同様）。
【００５０】
このように、トランザクションが発生する度に、図４に示すデータブロック登録処理が行われ、トランザクションデータが対象のハッシュチェーンに登録されることとなる。例えば、図６に示すように１０個のトランザクションが発生した場合には、図４に示すデータブロック登録処理が１０回行われ、取引を行った対象者の属性のハッシュチェーンにトランザクションデータが登録されることとなる。図７は、図６に示す１０個のトランザクションについて図４に示すデータブロック登録処理が１０回行われた場合におけるそれぞれのハッシュチェーンの登録内容を示している（履歴情報１１２における登録内容については、図１１参照）。なお、図７に示す例では、理解を容易にするため、各データブロックに格納されているハッシュ値や分析用付加データについては省略している。
【００５１】
具体的に、図６の１つ目のトランザクションに対応する顧客Ａが店舗１にて１０００コイン購入したというトランザクションデータは、図４に示すデータブロック登録処理が行われることにより、図７に示す顧客Ａの属性のハッシュチェーンにおけるデータブロック（１）および店舗１の属性のハッシュチェーンにおけるデータブロック（１）に登録される。図６の２つ目のトランザクションに対応する顧客Ａが店舗１で１００コイン分の買い物をしたというトランザクションデータは、図４に示すデータブロック登録処理が再度行われることにより、図７に示す顧客Ａの属性のハッシュチェーンにおけるデータブロック（２）および店舗１の属性のハッシュチェーンにおけるデータブロック（２）に登録される。そして、図６の３つ目のトランザクションに対応する顧客Ｂが店舗２で４００コイン購入したというトランザクションデータは、図４に示すデータブロック登録処理が再度行われることにより、図７に示す顧客Ｂの属性のハッシュチェーンにおけるデータブロック（１）および店舗２の属性のハッシュチェーンにおけるデータブロック（１）に登録される。このように、トランザクションの数に対応した回数のデータブロック登録処理が行われることにより、それぞれのトランザクションデータが対応する属性のハッシュチェーンに連結する（図６の４つ目以降のトランザクションについても同様）。また、これに合わせて、それぞれのトランザクションデータが履歴情報１１２にも登録される（図１１参照）。
【００５２】
なお、図６に示すように、この例では、顧客Ａに対してクーポンが発行された例を示しており（図６に示す６つ目のトランザクション）、このトランザクションデータについても、図４に示すデータブロック登録処理にてデータブロックに登録されることとなる。その場合には、図４のステップＳ２０３およびステップＳ２０４にて顧客Ａがクーポンを取得したことを示すトランザクションデータが新たなデータブロックに登録されればよい。具体的には、ステップＳ２０３およびＳ２０４にてクーポン取得のトランザクションデータであるかを判定し、クーポン取得のトランザクションデータである場合にその旨を登録すればよい。なお、図７に示すように、当該クーポン取得のトランザクションデータには、「Ｆｒｏｍ」にクーポンを発行した者のアドレスが、および「Ｔｏ」にはクーポンを受け取った顧客のアドレスが登録され、価値内容としてクーポンである事が登録される。なお、この他にも、例えば、割引金額や当該クーポンを使用可能な商品の情報が分析用付加データとして含まれていてもよい。すなわち、クーポンであること、およびクーポンを受け取った顧客および発行した者を特定可能な内容を含むトランザクションデータであれば、その他の情報が含まれて登録されてもよい。また、価値内容として割引金額が登録され、分析用付加データとしてクーポンであることを特定する情報が登録されるなど、クーポン取得のトランザクションデータの登録形式は、必要な情報が含まれてさえいれば任意であってよい。
【００５３】
以上がハッシュチェーン登録装置として機能した場合における情報処理装置１００の動作である。続いてデータ統計装置として機能した場合における情報処理装置１００の動作について、図８〜図１２を参照して説明する。なお、理解を容易にするため、以下の例では、図６示す１０個のトランザクションが発生し、各トランザクションに対応して１０回のデータ登録処理が行われ、図７に示すように各ハッシュチェーンのデータブロックが登録されているものとして、以下説明する。
【００５４】
図８は、確認処理の一例を示すフローチャートである。当該確認処理は、ユーザの入出力部１３０に対する操作（入力操作）や、端末Ｃ〜端末Ｇから受信した要求（確認要求）に基づいて開始される。確認処理は、各属性のハッシュチェーン１１１や履歴情報１１２から所望されたデータブロックを取得し、店舗毎の売り上げの集計や顧客リストなどを統計情報としてグラフや表などの図にて表示することで、ユーザによる認識や分析を容易にするための処理である。
【００５５】
確認処理を開始すると、情報処理装置１００は、データ取得部１２４の機能により、まず、ハッシュチェーンが指定されているか否かを判定する（ステップＳ３０１）。ステップＳ３０１では、入力操作や確認要求に含まれる要求種別にてハッシュチェーンが指定されているか否かを判定することで、ハッシュチェーンが指定されているか否かを判定する。要求種別は、ユーザの所望する表示内容の種類を指定するもので、例えば、指定店舗の売り上げの集計、顧客リスト、指定期間における全店舗の売り上げ比較、またはクーポン配布前後の推移などといったように予め複数設定されている。また、この実施の形態では、要求種別に応じてハッシュチェーンを指定するか否かが予め設定されている。より具体的には、時間的要素を含まない要求種別についてはハッシュチェーンを指定し、そうでない要求種別についてはハッシュチェーンを指定せず、履歴情報１１２を指定するよう設定されている。なお、ハッシュチェーンの指定の有無の設定はユーザによる操作により変更可能であってもよいし、入力操作時や確認要求時に選択可能であってもよい。そのため、ステップＳ３０１では、要求種別にてハッシュチェーンが指定されているか否かを判定する。なお、予めハッシュチェーンを指定する必要のある要求種別である場合には、ハッシュチェーンが指定されているか否かではなく、要求種別がいずれの要求種別であるかにより、ハッシュチェーンが指定されているか否かを判定してもよい。また、要求種別についても、ユーザによる操作にて新たに追加、変更、削除が可能となっている。
【００５６】
ステップＳ３０１にてハッシュチェーンが指定されていると判定した場合（ステップＳ３０１；Ｙｅｓ）、情報処理装置１００は、データ取得部１２４の機能により、指定された属性のハッシュチェーンから対象のトランザクションデータ（対象データ）を取得する（ステップＳ３０２）。ステップＳ３０２では、入力操作や確認要求に含まれる要求種別にて指定された属性のハッシュチェーンから、対象のトランザクションデータ（対象データ）を取得する。具体的に、入力操作や確認要求に含まれる要求種別が売り上げの集計であり、指定されたハッシュチェーンの属性が店舗１である場合を例に説明すると、ステップＳ３０２では、店舗１の属性のハッシュチェーンに含まれるデータブロックからトランザクションデータを全て取得する。
【００５７】
一方、ステップＳ３０１にてハッシュチェーンが指定されていないと判定した場合（ステップＳ３０１；Ｎｏ）、情報処理装置１００は、データ取得部１２４の機能により、履歴情報１１２から対象のトランザクションデータ（対象データ）を取得する（ステップＳ３０３）。ステップＳ３０３では、入力操作や確認要求に含まれる要求種別にて指定された期間のトランザクションデータを履歴情報１１２から取得する。具体的に、入力操作や確認要求に含まれる要求種別が、１週目（例えば１月１日〜１月7日）と２週目（例えば１月８日〜１月１５日）の全店舗の売り上げ比較である場合を例に説明すると、ステップＳ３０３では、履歴情報１１２における各トランザクションデータのうち、１週目と２週目に対応するトランザクションデータを取得する。
【００５８】
ステップＳ３０２またはステップＳ３０３の処理を実行した後、情報処理装置１００は、データ取得部１２４の機能により、ステップＳ３０２またはステップＳ３０３にて取得したデータを再配置する（ステップＳ３０４）。ステップＳ３０４にて行われる再配置には、詳しくは後述するが、例えば、売り上げの合計を算出する処理やコイン収入と現金収入とを仕分けする処理（図９（Ａ）、（Ｂ）参照）、指定した店舗のハッシュチェーンから取得したトランザクションデータを顧客毎に分類する処理（図１０（Ａ）参照）などが含まれる。
【００５９】
ステップＳ３０４の処理を実行した後、情報処理装置１００は、グラフ生成部１２５の機能により、入力操作や確認要求に含まれる要求種別に対応する内容のグラフや表、もしくはその両方といったように図を出力し（ステップＳ３０５）、確認処理を終了する。具体的に、入力操作や確認要求に含まれる要求種別が売り上げの集計であり、指定されたハッシュチェーンの属性が店舗１である場合を例に説明すると、ステップＳ３０５では、店舗１の売り上げの棒グラフを生成して入出力部１３０や、端末Ｃ〜端末Ｇの入出力部に出力する。具体的に、ユーザの入出力部１３０に対する操作（入力操作）が行われ当該確認処理が行われた場合には、入出力部１３０へ出力し、確認要求を受信したことにより当該確認処理が行われた場合には、確認要求の送信元の入出力部へ出力する。
【００６０】
このような確認処理が行われることで、ユーザの所望する要求種別に対応するグラフや表などの図が表示されることとなり、当該ユーザによる認識や分析を容易にすることが可能となる。
【００６１】
続いて確認処理が実行された場合における具体例について説明する。図９は、要求種別として、売り上げ集計が指定された場合の例を示している。より具体的には、店舗１の属性のハッシュチェーンを指定した上で、売り上げ集計の要求種別を指定して確認処理を行った場合における実行例を示している。
【００６２】
情報処理装置１００は、確認処理を開始すると、当該要求種別に店舗１の属性のハッシュチェーンが指定されていることから、図８のステップＳ３０１にてＹｅｓと判定し、ステップＳ３０２の処理において、図７に示す店舗１（アドレス：ＸＸ）のハッシュチェーンに含まれるデータブロック（１）〜（３）に含まれるトランザクションデータを取得する。
【００６３】
そして、図８のステップＳ３０４の処理にて図９（Ａ）および（Ｂ）に示すように、取得したトランザクションデータのうち、当該店舗１が「Ｆｒｏｍ」となっているトランザクションデータと、「Ｔｏ」となっているトランザクションデータとに分類することで、コイン収入と現金収入とを仕分けするとともに、価値を集計する。
【００６４】
その後、ステップＳ３０５の処理にて図９（Ｃ）に示すように、集計結果をコイン収入と現金収入とに分けて棒グラフとして生成し、表示する。なお、図示する例では棒グラフを生成することとしているが、棒グラフに限られず、円グラフや折れ線グラフなど、任意のグラフであってよいし、ユーザが選択できるようにしてもよい。なお、図９に示す例では、店舗１から（Ｆｒｏｍ：ＸＸ）顧客１へ（Ｔｏ：０１）１０００のコインが移動した（価値：１０００）ことを現金収入としているが、例えば、銀行など金融機関へ支払いを行った場合（店舗１から銀行へコインを移動させた場合）については、価値が減少したものとし、支出として扱うようにしてもよい。
【００６５】
また、図１０は、要求種別として顧客リストが指定された場合の例を示している。より具体的には、店舗１および２の属性のハッシュチェーンを指定した上で、顧客リストの要求種別を指定して確認処理を行った場合における実行例を示している。
【００６６】
この場合、情報処理装置１００は、確認処理を開始すると、当該要求種別に店舗１および２の属性のハッシュチェーンが指定されていることから、図８のステップＳ３０１にてＹｅｓと判定し、ステップＳ３０２の処理において、図７に示す店舗１（アドレス：ＸＸ）のハッシュチェーンに含まれるデータブロック（１）〜（３）を取得するとともに、図７に示す店舗２（アドレス：ＹＹ）のハッシュチェーンに含まれるデータブロック（１）〜（６）を取得する。
【００６７】
そして、図８のステップＳ３０４の処理にて図１０（Ａ）に示すように、取得した店舗１と２のトランザクションデータを、顧客毎に分類して再配置する。その後、ステップＳ３０５の処理にて、図１０（Ｂ）に示すように、店舗１の顧客と店舗２の顧客が視認して容易に把握可能な態様となるよう、顧客リストの図を生成し、表示する。なお、図示する例ではベン図を生成するとしているが、例えば、店舗１のみの顧客、店舗２のみの顧客、店舗１および２の顧客、といった項目別に表を生成するようにしてもよい。
【００６８】
このように、この実施の形態における情報処理装置１００は、属性毎のハッシュチェーンでトランザクションデータを管理するとともに、取引を行った当事者それぞれに対応する属性のハッシュチェーンに、同一内容のトランザクションデータを登録する。したがって、売り上げの集計や顧客リストの作成など、登録されたトランザクションデータを活用する際に、指定された属性のハッシュチェーンに含まれるデータブロックを取得すればよく、必要なトランザクションデータの格納先の特定が容易であり、トランザクションデータを好適に検索することができる。
【００６９】
次に、確認処理が実行された場合における具体例として、履歴情報１１２が指定された場合、すなわち、時間的要素を含む要求種別が指定され、いずれの属性のハッシュチェーンも指定されていない場合について説明する。なお、以下の例では、図６示す１０個のトランザクションが発生し、各トランザクションに対応して１０回のデータ登録処理が行われ、図１１に示すように各トランザクションデータが履歴情報１１２に登録されているものとして、以下説明する。
【００７０】
図１２は、確認処理における要求種別として、クーポン配布前後の推移が指定された場合の確認処理の実行例を示している。より具体的には、クーポン配布前１週間とクーポン配布後１週間における、クーポンを受け取った顧客グループとクーポンを受け取らなかった顧客グループの売り上げの推移を指定して確認処理を行った場合における実行例を示している。
【００７１】
情報処理装置１００は、確認処理を開始すると、当該要求種別にハッシュチェーンが指定されていないことから、図８のステップＳ３０１にてＮｏと判定し、ステップＳ３０３の処理において、クーポンが配布されたことを示すデータブロックを特定し、図１１に示すように、期間Ａに対応するデータブロック（データブロック（１）〜（５））に含まれるトランザクションデータと、期間Ｂに対応するデータブロック（データブロック（７）〜（１０））に含まれるトランザクションデータを、それぞれ対象データとして履歴情報１１２から取得する。なお、この例では、理解を容易にするため、店舗１および２におけるコイン収入を示すトランザクションデータのみを用いた場合（トランザクション（１）、（３）および（９）以外のトランザクションデータを用いた場合）、すなわち、コイン収入に関するトランザクションデータのみ取得した場合を例に、以下説明する。
【００７２】
図８のステップＳ３０４の処理にて、取得したデータブロック（２）、（４）および（５）に含まれるトランザクションデータを、クーポンが配布された顧客（顧客Ａ）とそうでない顧客（顧客Ｂ）に分類するとともに、取得したデータブロック（７）〜（８）および（１０）に含まれるトランザクションデータについても同様に、クーポンが配布された顧客（顧客Ａ）とそうでない顧客（顧客ＢおよびＣ）に分類する。具体的には、クーポンが配布されたことを示すデータブロックを特定した際に、いずれの顧客にクーポンが配布されたかを記憶し（複数ある場合には複数記憶し）、当該クーポンを受け取った顧客とそうでない顧客とに分類する。なお、クーポンが配布された顧客には、クーポンを配布した者との間に特別なトランザクションが発生していることから、クーポンを配布した者のハッシュチェーンを検索してクーポンを配布した者を特定し、クーポンが配布された顧客（顧客Ａ）とそうでない顧客（顧客ＢおよびＣ）を分類してもよい。
【００７３】
ステップＳ３０４の処理にて、コイン収入を示すトランザクションについて、クーポンの配布有無の分類をした後、同じくステップＳ３０４の処理において、クーポンを受け取った（クーポンが配布された）顧客の期間Ａと期間Ｂのそれぞれの売り上げの合計、クーポンを受け取っていない顧客の期間Ａと期間Ｂのそれぞれの売り上げの合計値から、それぞれの平均値を算出する。具体的にこの例では、クーポンを受け取った顧客として、顧客Ａの期間Ａと期間Ｂのそれぞれの売り上げの合計値から、期間Ａの売り上げ２００、期間Ｂの売り上げ５００を平均値として算出し、クーポンを受け取っていない顧客として、顧客ＢおよびＣの期間Ａと期間Ｂのそれぞれの売り上げの合計値（期間Ａの売り上げ１００、期間Ｂの売り上げ１５０）から期間Ａの売り上げ５０、期間Ｂの売り上げ７５を平均値として算出する。なお、この例では、理解を容易にするため、コイン収入についてのみを用いて平均を算出する例を示しているが、現金収入について、も別途現金売り上げとして平均を算出してもよい。また、平均でなくとも、中央値であってもよいし、例えば、取引回数が多い顧客ほど重みが高くなるような所定の演算方法により、クーポンを受け取った顧客グループとそうでない顧客グループの売り上げを算出してもよい。
【００７４】
その後、ステップＳ３０５の処理にて、図１２（Ａ）および（Ｂ）に示すように、クーポンを受け取った顧客グループ（顧客Ａ）の売り上げの推移と、クーポンを受け取っていない顧客グループ（顧客Ｂ、顧客Ｃの平均）の売り上げの推移を示す棒グラフを生成し、表示する。なお、棒グラフに限られない点は図９に示す場合と同様である。この例では、図示するように、クーポンを受け取った顧客グループについては、クーポン配布前の期間Ａよりもクーポン配布後の期間Ｂの方が、売り上げが大幅に増加しているのに対し、クーポンを受け取っていない顧客グループについては、クーポン配布前の期間Ａとクーポン配布後の期間Ｂとで売り上げに大きな変化がないことがわかる。これにより、ユーザは、クーポンを発行した場合における効果測定を容易に行うことができる。
【００７５】
このように、時間的要素を含む要求種別の場合には、履歴情報１１２から対象データを取得し、対象データを再配置することで、ブロック上に格納されたトランザクションデータを好適に検索することができる。また、この実施の形態によれば、時間的要素を含む否か、換言すると所定の属性のハッシュチェーンが指定されていない場合と指定されている場合とで、対象データの取得先を変更する。したがって、ユーザの所望する内容に応じて異なる種類のハッシュチェーンから対象データを検索可能であり、ブロック上に格納されたトランザクションデータを好適に検索することができる。
【００７６】
（変形例）
なお、この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、情報処理装置１００では、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも１つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせても良い。
【００７７】
上記実施の形態では、顧客がコインのみにより買い物を行う場合について示したが、これは一例である。例えば、顧客が店舗の商品を購入する際に、顧客のコイン残高を確認し、残高不足である場合には、コインに加えて現金を用いて商品購入を行うことがあってもよい。具体的に、図４のステップＳ２０３の処理の前に、顧客のコイン残高を確認する処理を実行してもよく、その場合には、取引を行う顧客に対応するハッシュチェーンに含まれるトランザクションデータを参照することで、当該顧客のコイン残高を確認すればよい。例えば、図６に示す７つ目のトランザクション（顧客Ａが店舗２で５００コイン分の買い物をした）が発生した際におけるデータブロック登録処理において、顧客Ａの属性のハッシュチェーンに含まれるデータブロック（図７のデータブロック（１）〜（４））のトランザクションデータを集計することで、顧客Ａの残高を確認すればよい。そして、残高が足りない場合には、不足分を現金収入として処理すればよい。この例において、顧客Ａのコイン残高が３００であった場合には、コイン３００、現金２００として５００の商品を購入した旨のトランザクションデータが登録されればよい。このように、顧客の属性のハッシュチェーンに含まれる全てのトランザクションデータを集計すれば、当該顧客の残高を容易に取得することができる。よって、ブロック上に格納されたトランザクションデータを好適に検索することができる。
【００７８】
また、上記実施の形態では、顧客と店舗の２者での取引について説明したが、例えば、３者間取引であってもよく、この場合には、３者それぞれの属性のハッシュチェーンに当該トランザクションデータとして共通内容のデータがそれぞれのデータブロックに登録されればよい。また、上記実施の形態におけるトランザクションデータには、購入した商品を特定するための情報が含まれていてもよい。これによれば、店舗毎の売れ筋商品の分析を行うことができる。
【００７９】
また、上記実施の形態では、図１２に示すように、クーポン配布前後の売り上げの推移によりクーポン配布の効果測定を行う例を示したが、これは一例である。例えば、当該クーポン配布後に、配布された顧客がクーポンを使用して買い物をしたことを示すトランザクションデータを登録することにより、配布したクーポンの使用割合を確認することも可能である。具体的に、顧客Ａが５００コインの商品を、５０コイン引きのクーポンを使って購入したことを示すトランザクションデータを、図４のステップＳ２０３の処理にて、対象のハッシュチェーン、および履歴情報１１２に登録すればよい（履歴情報１１２のみであってもよい）。そして、図８のステップ３０３の処理において、クーポンが配布されてから、ユーザに指定された期間に当該クーポンを使用した顧客とそうでない顧客のトランザクションデータを取得すればよい。このように、クーポンの使用状況をハッシュチェーン等に登録することで、使用状況の確認を容易にすることができる。さらに、複数のクーポンを配布した場合に、クーポンを識別するクーポンＩＤを分析用付加データとして登録しておけば、いずれのクーポンが使用されたか、といったことを分析することも可能である。
【００８０】
また、上記実施の形態では、図１２に示すように、クーポンを受け取った顧客グループとクーポンを受け取らなかった顧客グループの売り上げの推移を示したが、これは一例である。例えば、当該クーポンが店舗２でのみ使用可能なクーポンであった場合（分析用付加データとしてその旨が登録されている場合）、店舗１と店舗２とでそれぞれ期間Ａと期間Ｂとの売り上げを集計することで、顧客Ａが通常は店舗１で買い物をするが、クーポンが使用可能な場合には店舗２にて買い物をする、ということが容易に把握できる。
【００８１】
このように、トランザクションデータの他、分析用付加データとしてマーケティングに必要な情報を含めて履歴情報１１２へ登録することで、様々な活用が可能となる。すなわち、分析用付加データを含めた検索およびトランザクションデータ検索を好適に行うことが可能となり、マーケティングにおける効果を発揮することができる。
【００８２】
なお、上記実施の形態における履歴情報１１２が属性に関わらず全てのトランザクションデータが格納されたハッシュチェーン（属性のないハッシュチェーン）であり、他の情報処理装置１００と同期される例を示したが、これは一例である。履歴情報１１２は、ハッシュチェーンにより管理されるものに限られず、例えば、ネットワーク２１０を介して通信可能に接続されたサーバに、キャッシュとして格納されていてもよい。
【００８３】
また、上述の機能を、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とアプリケーションとの分担、またはＯＳとアプリケーションとの協同により実現する場合等には、ＯＳ以外の部分のみを媒体に格納してもよい。
【００８４】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板（ＢＢＳ、Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ）に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【符号の説明】
【００８５】
１  情報処理システム、１００Ａ〜Ｂ  情報処理装置、１００Ｃ〜１００Ｇ  端末、１１０  記憶部、１１１  各属性のハッシュチェーン、１１２  履歴情報、１１３  １２０  制御部、１２１  初期登録部、１２２  同期処理部、１２３  データブロック登録部、１２４  データ取得部、１２５  グラフ生成部、１３０  入出力部、１４０  通信部、２１０  ネットワーク
【図１】
2020046855.tif 000003
【図２】
2020046855.tif 000004
【図３】
2020046855.tif 000005
【図４】
2020046855.tif 000006
【図５】
2020046855.tif 000007
【図６】
2020046855.tif 000008
【図７】
2020046855.tif 000009
【図８】
2020046855.tif 000010
【図９】
2020046855.tif 000011
【図１０】
2020046855.tif 000012
【図１１】
2020046855.tif 000013
【図１２】
2020046855.tif 000014