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

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

▶ 株式会社エヌ・ティ・ティ・データの特許一覧

特許7253344情報処理装置、情報処理方法およびプログラム
<>
  • 特許-情報処理装置、情報処理方法およびプログラム 図1
  • 特許-情報処理装置、情報処理方法およびプログラム 図2
  • 特許-情報処理装置、情報処理方法およびプログラム 図3
  • 特許-情報処理装置、情報処理方法およびプログラム 図4
  • 特許-情報処理装置、情報処理方法およびプログラム 図5
  • 特許-情報処理装置、情報処理方法およびプログラム 図6
  • 特許-情報処理装置、情報処理方法およびプログラム 図7
  • 特許-情報処理装置、情報処理方法およびプログラム 図8
  • 特許-情報処理装置、情報処理方法およびプログラム 図9
  • 特許-情報処理装置、情報処理方法およびプログラム 図10
  • 特許-情報処理装置、情報処理方法およびプログラム 図11
  • 特許-情報処理装置、情報処理方法およびプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-29
(45)【発行日】2023-04-06
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
   G06F 16/182 20190101AFI20230330BHJP
   G06F 16/9038 20190101ALI20230330BHJP
   G06F 21/64 20130101ALI20230330BHJP
   G06Q 20/38 20120101ALI20230330BHJP
【FI】
G06F16/182
G06F16/9038
G06F21/64
G06Q20/38 310
【請求項の数】 6
(21)【出願番号】P 2018173967
(22)【出願日】2018-09-18
(65)【公開番号】P2020046855
(43)【公開日】2020-03-26
【審査請求日】2021-07-19
(73)【特許権者】
【識別番号】000102728
【氏名又は名称】株式会社エヌ・ティ・ティ・データ
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100132883
【弁理士】
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100166442
【弁理士】
【氏名又は名称】鈴木 洋雅
(74)【代理人】
【識別番号】100174067
【弁理士】
【氏名又は名称】湯浅 夏樹
(74)【代理人】
【識別番号】100208410
【弁理士】
【氏名又は名称】岩瀬 寛司
(72)【発明者】
【氏名】川森 茂樹
【審査官】酒井 恭信
(56)【参考文献】
【文献】国際公開第2018/007828(WO,A2)
【文献】特表2019-525685(JP,A)
【文献】米国特許出願公開第2018/0173747(US,A1)
【文献】特開2018-116578(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
G06F 21/64
G06Q 20/38
(57)【特許請求の範囲】
【請求項1】
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納手段は、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする情報処理装置。
【請求項2】
前記データ格納手段は、前記ハッシュチェーンとは異なる特別ハッシュチェーンで連結されるデータブロックに、発生した前記トランザクションの前記当事者に対応するか否かに関わらず、前記トランザクションデータを、発生した順に格納する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記データ格納手段により格納した前記トランザクションデータを、ユーザの要求に基づいて前記ハッシュチェーンまたは前記特別ハッシュチェーンから検索する検索手段と、
前記検索手段で検索した検索結果に基づいて、前記ユーザの要求を満たす態様の図を生成する生成手段と、
前記生成手段で生成された図を表示する表示手段と、
をさらに備えることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記検索手段は、前記ユーザの要求に時間的要素が含まれる場合に、前記特別ハッシュチェーンから検索を行い、前記時間的要素が含まれない場合に、前記ハッシュチェーンから検索を行う、
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
情報処理装置における情報処理方法であって、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納ステップを実行し、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納ステップでは、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする情報処理方法。
【請求項6】
コンピュータを、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納手段として機能させ、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納手段は、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
近年、ビットコイン(登録商標)等の仮想通貨を用いた商取引が行われている。当該仮想通貨を用いた商取引では、中央集権的な管理を必要とせずに不正を防止するため、ブロックチェーンと呼ばれる技術が用いられている。ブロックチェーンでは、複数のトランザクションデータ、直前のハッシュ値及びその他の情報を「ブロック」として定義し、参加者全体で形成されるネットワーク内での合意形成のプロセスによって当該「ブロック」内の情報の信頼性を担保している。しかしながら、このようなブロックチェーンの技術により仮想通貨の商取引を行う場合、1秒あたりに処理可能な件数が少ないといった問題がある。
【0003】
このような問題に対応するため、例えば非特許文献1には、ハッシュグラフと呼ばれる技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】”ブロックチェーンを超える技術が存在!分散型台帳「Hashgraph」とは?”、[Online]、[平成30年9月3日検索]、インターネット<URL:https://coin-otaku.com/topic/7754>
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1に開示されているハッシュグラフの技術では、ランダムに選ばれた一部のユーザの承認によりトランザクションデータの記録を行うことから、ブロックチェーンの技術を用いた処理よりも高速な処理を実現可能となる。しかしながら、複数のトランザクションデータを時系列に格納したブロックを複数つないでいく点ではいずれの技術も共通であり、ブロック上に格納したトランザクションデータを好適に検索するという面からすると未だ十分ではなかった。
【0006】
本発明は、上述のような事情に鑑みてなされたものであり、ブロック上に格納されたトランザクションデータを好適に検索することができる情報処理装置、情報処理方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の第1の観点に係る情報処理装置は、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納手段は、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする。
【0008】
前記データ格納手段は、前記ハッシュチェーンとは異なる特別ハッシュチェーンで連結されるデータブロックに、発生した前記トランザクションの前記当事者に対応するか否かに関わらず、前記トランザクションデータを、発生した順に格納する、
ようにしてもよい。
【0009】
前記データ格納手段により格納した前記トランザクションデータを、ユーザの要求に基づいて前記ハッシュチェーンまたは前記特別ハッシュチェーンから検索する検索手段と、
前記検索手段で検索した検索結果に基づいて、前記ユーザの要求を満たす態様の図を生成する生成手段と、
前記生成手段で生成された図を表示する表示手段と、
をさらに備えるようにしてもよい。
【0010】
前記検索手段は、前記ユーザの要求に時間的要素が含まれる場合に、前記特別ハッシュチェーンから検索を行い、前記時間的要素が含まれない場合に、前記ハッシュチェーンから検索を行う、
ようにしてもよい。
【0011】
上記目的を達成するため、本発明の第2の観点に係る情報処理方法は、
情報処理装置における情報処理方法であって、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納ステップを実行し、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納ステップでは、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする。
【0012】
上記目的を達成するため、本発明の第3の観点に係るプログラムは、
コンピュータを、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納手段として機能させ、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納手段は、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする。
【発明の効果】
【0013】
本発明によれば、ブロック上に格納されたトランザクションデータを好適に検索することができる。
【図面の簡単な説明】
【0014】
図1】本発明の実施形態に係る情報処理システムの一例を示すブロック図である。
図2】本発明の実施形態に係る情報処理装置の一例を示すブロック図である。
図3】初期登録処理の一例を示すフローチャートである。
図4】データブロック登録処理の一例を示すフローチャートである。
図5】ハッシュチェーンの構成例を示す図である。
図6】発生したトランザクションの一例を示す図である。
図7】ハッシュチェーンの登録内容の例を示す図である。
図8】確認処理の一例を示すフローチャートである。
図9】売り上げ集計が指定された場合の確認処理の実行例を示す図である。
図10】顧客リストが指定された場合の確認処理の実行例を示す図である。
図11】履歴情報の登録内容の例を示す図である。
図12】クーポン配布前後の推移が指定された場合の確認処理の実行例を示す図である。
【発明を実施するための形態】
【0015】
本発明における情報処理装置100を、図1に示す情報処理システム1に適用した例を用いて説明する。情報処理システム1では、図1に示すように、情報処理装置100Aおよび100B(情報処理装置100Aおよび100Bを単に情報処理装置100ともいう)、顧客A~Cの端末100C~100E、店舗1および2の端末100Fおよび100Gのそれぞれがネットワーク210を介して通信可能に接続されている。顧客A~Cの端末100C~100E、店舗1および2の端末100Fおよび100Gは、それぞれ情報処理装置100としても機能することが可能である(端末100C~100Gが情報処理装置100として機能することもある)が、理解を容易にするため、この実施の形態では、これらを情報処理装置100と区別して説明する。
【0016】
情報処理装置100は、携帯電話やスマートフォン、タブレットやPC(Personal Computer)等の情報端末であり、P2P(Peer to Peer)等の分散型のネットワーク210を構築している。なお、情報処理システム1は、P2P型のシステムに限られず、例えばクラウドコンピューティング型であってもよい。
【0017】
情報処理装置100は、例えば、顧客Aが店舗1にて買い物をした、などといった、顧客と店舗との間で発生した取引のデータ(トランザクションデータ)をネットワーク210から受信したことに基づいて、新たなデータブロックを生成して当該受信データを格納し、既存のハッシュチェーンに連結する、ハッシュチェーン登録装置として機能する。なお、上述したように、端末100C~100Gが情報処理装置100として機能することもあることから、情報処理装置100は、トランザクションデータを生成し、ネットワーク210へ配信する機能を有するトランザクション生成装置として機能することもある。ハッシュチェーン登録装置にて登録された内容は、ネットワーク210を介して、各情報処理装置100で共有される。また、通常、一定数のトランザクションデータが一つのデータブロックに格納される(一定数のトランザクションデータをひとまとめにして一つのブロックに格納する)が、この実施の形態では、理解を容易にするため、一つのトランザクションデータが一つのデータブロックに格納されるものとする。
【0018】
この実施の形態において、顧客と店舗との間で発生した取引により生成された(端末C~端末Gのいずれかがトランザクション生成装置として機能して生成された)トランザクションデータは、データブロックと呼ばれる一つの単位に格納され、当該データブロックを時系列に連結したそれぞれの属性のハッシュチェーンによって管理される。例えば、顧客Aと店舗1との間で発生したトランザクションデータは、顧客Aの属性のハッシュチェーンおよび店舗1の属性のハッシュチェーンとに、それぞれ新たなデータブロックとして同内容のデータが登録されて管理される。
【0019】
また、この実施の形態における情報処理装置100は、各属性のハッシュチェーンに含まれるデータブロックから、ユーザの所望する登録データを分類したり集計したりするデータ統計装置としても機能する。なお、データ統計装置としての機能には、後述する履歴情報に基づいてデータを分類したり集計したりする機能も含まれる。
【0020】
具体的に、この実施の形態における情報処理装置100のデータ統計装置としての機能は、ユーザによる指定に基づいて、店舗毎の売り上げの集計、顧客リストの作成などを行う機能であり、ユーザにより所望されたデータを、グラフや表などの図にて表示することでユーザによる認識や分析を容易にする機能である。
【0021】
次に、図2を参照し、この実施の形態における情報処理装置100の構成について説明する。なお、図示する例では、情報処理装置100Aを例としているが、情報処理装置100Bおよび端末100C~100Gの端末が情報処理装置100として機能する場合についても同様であるため、説明は省略する。なお、図示は省略しているが、トランザクション生成装置としての機能を有する機能部が設けられていてもよい。
【0022】
図2に示すように、情報処理装置100A(以下、情報処理装置100)は、記憶部110と、制御部120と、入出力部130と、通信部140と、これらを相互に接続するシステムバス(図示省略)と、を備えている。
【0023】
記憶部110は、ROM(Read Only Memory)やRAM(Random Access Memory)等を備える。ROMは制御部120のCPU(Central Processing Unit)が実行するプログラム及び、プログラムを実行する上で予め必要なデータを記憶する(図示省略)。具体的に、この実施の形態では、当該情報処理装置100を、ハッシュチェーン登録装置およびデータ統計装置として機能させるためのプログラムが、予めインストールされている。RAMは、プログラム実行中に作成されたり変更されたりするデータを記憶する。記憶部110は、制御部120が実行するプログラムが用いる主要な情報として、各属性のハッシュチェーン111、履歴情報112を記憶する。
【0024】
各属性のハッシュチェーン111は、顧客A~C、店舗1~2それぞれの属性に対応するハッシュチェーンであり、それぞれのハッシュチェーンは、トランザクションデータが格納されたデータブロックが連結されたものである。各属性のハッシュチェーン111は、後述するデータブロック登録処理にて当該記憶部110に記憶され、後述する確認処理により、ハッシュチェーンが指定された場合に参照される。
【0025】
履歴情報112は、全てのトランザクションデータが時系列に格納された特別なハッシュチェーンである。履歴情報112は、後述するデータブロック登録処理にて当該記憶部110に記憶され、後述する確認処理により、ハッシュチェーンが指定されなかった場合に参照される。なお、この実施の形態における履歴情報112は、1つのトランザクションデータが1つのデータブロックに格納され連結されたハッシュチェーンであり、属性に関わらず全てのトランザクションデータが格納されたハッシュチェーン(属性のないハッシュチェーン)である。なお、複数のトランザクションデータが1つのデータブロックに格納され、ハッシュチェーンとして連結されてもよい。なお、履歴情報は、時系列に格納された一覧表にしてもよい。
【0026】
制御部120は、CPUやASIC(Application Specific Integrated Circuit)等から構成される。制御部120は、記憶部110に記憶されたプログラムに従って動作し、当該プログラムに従った処理を実行する。制御部120は、記憶部110に記憶されたプログラムにより提供される主要な機能部として、初期登録部121と、同期処理部122と、データブロック登録部123と、データ取得部124と、グラフ生成部125と、を備える。
【0027】
初期登録部121は、ユーザの入出力部130に対する操作や、通信部140を介して受信した要求に基づいて、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する機能を実現する機能部である。詳しくは後述するが、初期登録部121は、例えば、顧客Aの属性のハッシュチェーンを生成するために必要な初期情報として、属性情報、顧客Aのアドレス、インデックス値などを登録する機能(すなわち、後述するハッシュチェーンの土台情報を登録する機能)を有している。
【0028】
同期処理部122は、当該情報処理装置100に記憶された各属性のハッシュチェーンと、他の情報処理装置100に記憶された各属性のハッシュチェーンとを同期する機能を実現する機能部である。詳しくは後述するが、同期処理部122は、後述するデータブロック登録処理にてトランザクションデータを当該情報処理装置100におけるデータブロックに登録する前と後に、他の情報処理装置100と同期する機能を有している。また、同期処理部122は、後述する初期登録処理において他の情報処理装置100へ、ハッシュチェーンの土台情報を同期させる機能を有している。
【0029】
データブロック登録部123は、発生したトランザクションのトランザクションデータを含むデータブロックを、当該情報処理装置100の各属性のハッシュチェーン111のうち、対応する属性のハッシュチェーンに追加する機能を実現する機能部である。詳しくは後述するが、データブロック登録部123は、例えば、顧客Aと店舗1とで取引が行われた場合、顧客Aと店舗1のそれぞれのハッシュチェーンに、当該取引の内容(トランザクションデータ)を、新たなデータブロックとして登録する機能を有している。また、データブロック登録部123は、トランザクションデータを履歴情報112に登録する機能も有している。
【0030】
データ取得部124は、ユーザの指定に基づいて、登録された各属性のハッシュチェーン111に含まれるデータブロックの内容や、履歴情報112に含まれるデータを取得する機能を実現する機能部である。なお、データ取得部124には、取得したデータを再配置して出力する機能も有している。
【0031】
また、グラフ生成部125は、データ取得部124により取得したデータから、ユーザの指定に基づいて、グラフや表や図などを生成する機能を実現する機能部である。
【0032】
これら各機能部が協働して、当該情報処理装置100をハッシュチェーン登録装置およびデータ統計装置として機能させる。
【0033】
入出力部130は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機EL(Electoro-Luminescence)ディスプレイ等から構成され、データの入出力を行うための装置である。
【0034】
通信部140は、他の情報処理装置100や端末C~端末Gとネットワーク210を介して通信を行うためのデバイスである。
【0035】
以上が、情報処理装置100の構成である。続いて情報処理装置100の動作などについて、図3図12を参照して説明する。まず、ハッシュチェーン登録装置として機能した場合における情報処理装置100の動作について、図3~7を参照して説明する。
【0036】
まず、ユーザの入出力部130に対する操作(入力操作)や、端末C~端末Gから受信した要求(登録要求)に基づいて、図3に示す初期登録処理が行われる。初期登録処理は、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する処理である。この例では、理解を容易にするため、顧客Aについての初期登録を行う場合について説明する。初期登録処理を開始すると、情報処理装置100は、初期登録部121の機能により、属性データを生成する(ステップS101)。具体的に、ステップS101では、入力操作や登録要求に含まれる、属性情報である顧客Aの情報および顧客Aのアドレスを、顧客Aの属性のハッシュチェーンを生成するための情報として、記憶部110へ登録する。なお、当該情報は、各属性のハッシュチェーン111のうちの属性Aのハッシュチェーンとして登録されればよい。また、属性情報は登録せず、アドレスのみ登録するようにしてもよい。なお、この実施の形態では、顧客A~Cのアドレスを01~03、店舗1および2のアドレスをXXおよびYYとしている。
【0037】
次に、情報処理装置100は、初期登録部121の機能により、登録した顧客Aの属性のハッシュチェーンのインデックス値に、初期値である「0」を登録する(ステップS102)。インデックス値が「0」であることは、当該ハッシュチェーンが初期状態であること(何らデータブロックが登録されていない状態であること)を示している。すなわち、ステップS101およびステップS102の処理では、データブロックがチェーンで連結されてはいないものの、データブロックが未登録のハッシュチェーン(ハッシュチェーンの土台情報)が生成されていると言える。なお、この状態では、データブロックがチェーンで連結されていないため、データを削除でき、また、削除したことを検証することができない、といった問題がある。そこで、対改ざん性を高めるため、ランダムで選択したハッシュチェーンに対して、0コインの特別なトランザクションを発生させ、インデックス値が「0」のデータブロックをチェーンで連結する処理を行うようにしてもよい。
【0038】
ステップS102の処理を実行した後、情報処理装置100は、同期処理部122の機能により、他の情報処理装置100へ、当該内容を登録し(ステップS103)、初期登録処理を終了する。具体的に、ステップS103では、当該情報処理装置100における顧客Aの属性のハッシュチェーン(ハッシュチェーンの土台情報)の内容を、他の情報処理装置100の記憶部110における各属性のハッシュチェーン111へコピーする。これにより、全ての情報処理装置100において顧客Aの属性のハッシュチェーン(ハッシュチェーンの土台情報)が共有されることとなる。
【0039】
次に、発生したトランザクションについて、当該トランザクションデータを対応する属性のハッシュチェーンのデータブロックへ登録するデータブロック登録処理について説明する。当該データブロック登録処理は、発生したトランザクションに対応するトランザクションデータを受信することにより実行される。トランザクションデータは、端末C~端末Gのいずれかより受信するものであるが、入出力部130に入力されてもよい。なお、この実施の形態では、上述したように、一つのトランザクションにつき一つのデータブロックが作成され登録されることから、当該データブロック登録処理は、登録すべきトランザクションの数が複数ある場合、繰り返し実行されることとなる。
【0040】
図4は、データブロック登録処理の一例を示すフローチャートである。この例では、理解を容易にするため、顧客Aが店舗1にて1000コイン購入したというトランザクションが発生した場合のデータブロック登録処理(図5(A)の状態から(B)の状態へと移行する場合)について説明する。
【0041】
顧客Aが店舗1にて1000コイン購入したというトランザクションが発生すると、これに対応するトランザクションデータが顧客Aの端末Cまたは店舗1の端末Fから送信される。これにより、情報処理装置100は、データブロック登録部123の機能により、データブロック登録処理を開始する。なお、端末Cと端末Fの両方から同内容のトランザクションデータを受信することをもってデータブロック登録処理を開始するようにしてもよい。異なる内容のトランザクションデータを受信した場合には、エラーを出力するようにしてもよい。
【0042】
データブロック登録処理を開始すると、情報処理装置100は、まず、同期処理部122の機能により、当該情報処理装置100における対象のハッシュチェーンと、他の情報処理装置100における対象のハッシュチェーンとが、同期しているか否かを判定する(ステップS201)。具体的に、この例におけるステップS201の処理では、各属性のハッシュチェーン111のうち、顧客Aのハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値、および店舗1のハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値と、他の全ての情報処理装置100に記憶されたものと同一であるか否かを判定することで、同期しているか否かを判定する。
【0043】
図5(A)に示す例を用いて説明すると、当該情報処理装置100(トランザクションデータを受信した情報処理装置100のことをいう、以下同様)の各属性のハッシュチェーン111のうち、顧客Aのハッシュチェーンには、インデックス値「N-1」のデータブロックが最新のデータブロックとして登録されており、店舗1のハッシュチェーンには、インデックス値「Z-1」のデータブロックが最新のデータブロックとして登録されている。なお、図示するように、この実施の形態におけるハッシュチェーンのデータブロック(第mのデータブロック)には、登録データ(トランザクションデータ)と、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)のハッシュ値(256ビット)が含まれる点は、従来のブロックチェーンの仕組みと同様である。また、データブロックには、例えば、当該データブロックに登録データが登録された日時を示すタイムスタンプなどの分析用付加データが含まれる(図示省略)点についても、従来のブロックチェーンの仕組みと同様である。
【0044】
ステップS201の処理では、インデックス値「N-1」と当該N-1のハッシュ値、およびインデックス値「Z-1」と当該Z-1のハッシュ値が、他の全ての情報処理装置100に記憶されているものと一致するか否かを判定することで、同期しているか否かを判定する。例えば、インデックス値「N」と当該Nのハッシュ値が記憶されている情報処理装置100が存在する場合には、当該情報処理装置100に記憶されている顧客Aの属性のハッシュチェーンの情報が古いと判定する(インデックス値「Z」および当該Zのハッシュ値の場合には店舗1の属性のハッシュチェーン)。一方、インデックス値「N-2」と当該N-2のハッシュ値が記憶されている情報処理装置100が存在する場合には、その情報処理装置100に記憶されている顧客Aの属性のハッシュチェーンの情報が古いと判定する(インデックス値「Z-2」および当該Z-2のハッシュ値の場合には店舗1の属性のハッシュチェーン)。
【0045】
同期していない場合(ステップS201;No)、情報処理装置100は、同期処理部122の機能により、最新のハッシュチェーンの内容を、古いと判定したハッシュチェーンが登録されている情報処理装置100へコピーする同期処理を実行する(ステップS202)。なお、ステップS202の処理では、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)コピーしてもよい。
【0046】
図4に戻り、ステップS201にて同期していると判定した場合(ステップS201;Yes)、またはステップS202の処理を実行した場合、情報処理装置100は、対象のハッシュチェーンに同一の登録データを格納したデータブロックをそれぞれ追加する(ステップS203)。なお、上述したように、新たなデータブロック(第mのデータブロック)をハッシュチェーンに追加する場合、登録データ(トランザクションデータ)と、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)のハッシュ値(256ビット)をデータブロックに格納し、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)に連結する点は、従来のブロックチェーンの仕組みと同様である。
【0047】
具体的に、ステップS203の処理では、図5(B)に示すように、顧客Aの属性のハッシュチェーンには、インデックス値「N」のデータブロックがインデックス値「N-1」のデータブロックに連結されるとともに、店舗1の属性のハッシュチェーンには、インデックス値「Z」のデータブロックがインデックス値「Z-1」のデータブロックに連結される。連結されるそれぞれのデータブロックは、同一のトランザクションデータが含まれる。具体的に、店舗1から(From:XX)顧客1へ(To:01)1000のコインが移動した(価値:1000)ことを示す内容が登録される。図示するように、「From」と「To」により、どちらからどちらに価値であるコインが移動したかが示され、価値の大きさにより、コインの移動量が示される。なお、この実施の形態では、店舗から顧客へコインが移動した場合には、現金収入があったものとしている。また、登録されるトランザクションデータは、コインを基準としているが、現金を基準としてもよい。さらに、顧客Aの属性のハッシュチェーンにおけるインデックス値「N」のデータブロックには、N-1のハッシュ値が格納され、店舗1の属性のハッシュチェーンにおけるインデックス値「Z」のデータブロックには、Z-1のハッシュ値が格納される。このように、この実施の形態における情報処理装置100は、対応するそれぞれのハッシュチェーンに、同一のトランザクションデータを追加する。
【0048】
図4に戻り、ステップS203の処理を実行した後、情報処理装置100は、データブロック登録部123の機能により、ステップS203にて追加したトランザクションデータを履歴情報112としてのブロックに登録する(ステップS204)。なお、図示する例では、ステップS203の処理の後に当該ステップS204の処理を実行する例を示しているが、ステップS203にて履歴情報112への登録を合わせて実行してもよいし、ステップS203の前にステップS204の処理を実行してもよい。なお、上述したように、履歴情報112は、1つのトランザクションデータが1つのデータブロックに格納され連結された、属性のないハッシュチェーンであることから、1つのブロックには、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)のハッシュ値(256ビット)や分析用付加データが含まれる点は、各属性のハッシュチェーン111と同様であるとともに、従来のブロックチェーンの仕組みと同様である。また、ステップS203の処理では、同じ内容のトランザクションデータが顧客Aの属性のハッシュチェーンと店舗1の属性のハッシュチェーンのそれぞれに追加されるが、ステップS204では、顧客Aが店舗1にて1000コイン購入したことを示すトランザクションデータが、当該履歴情報112の1データブロックに登録されるのみである。
【0049】
ステップS204の処理を実行した後、情報処理装置100は、同期処理部122の機能により、ステップS203にてデータブロックを追加した属性のハッシュチェーンおよび履歴情報112を他の情報処理装置100へ登録することにより、当該情報処理装置100と他の情報処理装置100とを同期してから(ステップS205)、データブロック登録処理を終了する。なお、ステップS205の処理では、当該情報処理装置100における顧客Aおよび店舗1の属性のハッシュチェーンそれぞれの内容と、履歴情報112の内容を、他の情報処理装置100の記憶部110における各属性のハッシュチェーン111および履歴情報112へコピーする。なお、ステップS205の処理では、ステップS202の処理と同様に、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)コピーしてもよい(履歴情報112についても同様)。
【0050】
このように、トランザクションが発生する度に、図4に示すデータブロック登録処理が行われ、トランザクションデータが対象のハッシュチェーンに登録されることとなる。例えば、図6に示すように10個のトランザクションが発生した場合には、図4に示すデータブロック登録処理が10回行われ、取引を行った対象者の属性のハッシュチェーンにトランザクションデータが登録されることとなる。図7は、図6に示す10個のトランザクションについて図4に示すデータブロック登録処理が10回行われた場合におけるそれぞれのハッシュチェーンの登録内容を示している(履歴情報112における登録内容については、図11参照)。なお、図7に示す例では、理解を容易にするため、各データブロックに格納されているハッシュ値や分析用付加データについては省略している。
【0051】
具体的に、図6の1つ目のトランザクションに対応する顧客Aが店舗1にて1000コイン購入したというトランザクションデータは、図4に示すデータブロック登録処理が行われることにより、図7に示す顧客Aの属性のハッシュチェーンにおけるデータブロック(1)および店舗1の属性のハッシュチェーンにおけるデータブロック(1)に登録される。図6の2つ目のトランザクションに対応する顧客Aが店舗1で100コイン分の買い物をしたというトランザクションデータは、図4に示すデータブロック登録処理が再度行われることにより、図7に示す顧客Aの属性のハッシュチェーンにおけるデータブロック(2)および店舗1の属性のハッシュチェーンにおけるデータブロック(2)に登録される。そして、図6の3つ目のトランザクションに対応する顧客Bが店舗2で400コイン購入したというトランザクションデータは、図4に示すデータブロック登録処理が再度行われることにより、図7に示す顧客Bの属性のハッシュチェーンにおけるデータブロック(1)および店舗2の属性のハッシュチェーンにおけるデータブロック(1)に登録される。このように、トランザクションの数に対応した回数のデータブロック登録処理が行われることにより、それぞれのトランザクションデータが対応する属性のハッシュチェーンに連結する(図6の4つ目以降のトランザクションについても同様)。また、これに合わせて、それぞれのトランザクションデータが履歴情報112にも登録される(図11参照)。
【0052】
なお、図6に示すように、この例では、顧客Aに対してクーポンが発行された例を示しており(図6に示す6つ目のトランザクション)、このトランザクションデータについても、図4に示すデータブロック登録処理にてデータブロックに登録されることとなる。その場合には、図4のステップS203およびステップS204にて顧客Aがクーポンを取得したことを示すトランザクションデータが新たなデータブロックに登録されればよい。具体的には、ステップS203およびS204にてクーポン取得のトランザクションデータであるかを判定し、クーポン取得のトランザクションデータである場合にその旨を登録すればよい。なお、図7に示すように、当該クーポン取得のトランザクションデータには、「From」にクーポンを発行した者のアドレスが、および「To」にはクーポンを受け取った顧客のアドレスが登録され、価値内容としてクーポンである事が登録される。なお、この他にも、例えば、割引金額や当該クーポンを使用可能な商品の情報が分析用付加データとして含まれていてもよい。すなわち、クーポンであること、およびクーポンを受け取った顧客および発行した者を特定可能な内容を含むトランザクションデータであれば、その他の情報が含まれて登録されてもよい。また、価値内容として割引金額が登録され、分析用付加データとしてクーポンであることを特定する情報が登録されるなど、クーポン取得のトランザクションデータの登録形式は、必要な情報が含まれてさえいれば任意であってよい。
【0053】
以上がハッシュチェーン登録装置として機能した場合における情報処理装置100の動作である。続いてデータ統計装置として機能した場合における情報処理装置100の動作について、図8図12を参照して説明する。なお、理解を容易にするため、以下の例では、図6示す10個のトランザクションが発生し、各トランザクションに対応して10回のデータ登録処理が行われ、図7に示すように各ハッシュチェーンのデータブロックが登録されているものとして、以下説明する。
【0054】
図8は、確認処理の一例を示すフローチャートである。当該確認処理は、ユーザの入出力部130に対する操作(入力操作)や、端末C~端末Gから受信した要求(確認要求)に基づいて開始される。確認処理は、各属性のハッシュチェーン111や履歴情報112から所望されたデータブロックを取得し、店舗毎の売り上げの集計や顧客リストなどを統計情報としてグラフや表などの図にて表示することで、ユーザによる認識や分析を容易にするための処理である。
【0055】
確認処理を開始すると、情報処理装置100は、データ取得部124の機能により、まず、ハッシュチェーンが指定されているか否かを判定する(ステップS301)。ステップS301では、入力操作や確認要求に含まれる要求種別にてハッシュチェーンが指定されているか否かを判定することで、ハッシュチェーンが指定されているか否かを判定する。要求種別は、ユーザの所望する表示内容の種類を指定するもので、例えば、指定店舗の売り上げの集計、顧客リスト、指定期間における全店舗の売り上げ比較、またはクーポン配布前後の推移などといったように予め複数設定されている。また、この実施の形態では、要求種別に応じてハッシュチェーンを指定するか否かが予め設定されている。より具体的には、時間的要素を含まない要求種別についてはハッシュチェーンを指定し、そうでない要求種別についてはハッシュチェーンを指定せず、履歴情報112を指定するよう設定されている。なお、ハッシュチェーンの指定の有無の設定はユーザによる操作により変更可能であってもよいし、入力操作時や確認要求時に選択可能であってもよい。そのため、ステップS301では、要求種別にてハッシュチェーンが指定されているか否かを判定する。なお、予めハッシュチェーンを指定する必要のある要求種別である場合には、ハッシュチェーンが指定されているか否かではなく、要求種別がいずれの要求種別であるかにより、ハッシュチェーンが指定されているか否かを判定してもよい。また、要求種別についても、ユーザによる操作にて新たに追加、変更、削除が可能となっている。
【0056】
ステップS301にてハッシュチェーンが指定されていると判定した場合(ステップS301;Yes)、情報処理装置100は、データ取得部124の機能により、指定された属性のハッシュチェーンから対象のトランザクションデータ(対象データ)を取得する(ステップS302)。ステップS302では、入力操作や確認要求に含まれる要求種別にて指定された属性のハッシュチェーンから、対象のトランザクションデータ(対象データ)を取得する。具体的に、入力操作や確認要求に含まれる要求種別が売り上げの集計であり、指定されたハッシュチェーンの属性が店舗1である場合を例に説明すると、ステップS302では、店舗1の属性のハッシュチェーンに含まれるデータブロックからトランザクションデータを全て取得する。
【0057】
一方、ステップS301にてハッシュチェーンが指定されていないと判定した場合(ステップS301;No)、情報処理装置100は、データ取得部124の機能により、履歴情報112から対象のトランザクションデータ(対象データ)を取得する(ステップS303)。ステップS303では、入力操作や確認要求に含まれる要求種別にて指定された期間のトランザクションデータを履歴情報112から取得する。具体的に、入力操作や確認要求に含まれる要求種別が、1週目(例えば1月1日~1月7日)と2週目(例えば1月8日~1月15日)の全店舗の売り上げ比較である場合を例に説明すると、ステップS303では、履歴情報112における各トランザクションデータのうち、1週目と2週目に対応するトランザクションデータを取得する。
【0058】
ステップS302またはステップS303の処理を実行した後、情報処理装置100は、データ取得部124の機能により、ステップS302またはステップS303にて取得したデータを再配置する(ステップS304)。ステップS304にて行われる再配置には、詳しくは後述するが、例えば、売り上げの合計を算出する処理やコイン収入と現金収入とを仕分けする処理(図9(A)、(B)参照)、指定した店舗のハッシュチェーンから取得したトランザクションデータを顧客毎に分類する処理(図10(A)参照)などが含まれる。
【0059】
ステップS304の処理を実行した後、情報処理装置100は、グラフ生成部125の機能により、入力操作や確認要求に含まれる要求種別に対応する内容のグラフや表、もしくはその両方といったように図を出力し(ステップS305)、確認処理を終了する。具体的に、入力操作や確認要求に含まれる要求種別が売り上げの集計であり、指定されたハッシュチェーンの属性が店舗1である場合を例に説明すると、ステップS305では、店舗1の売り上げの棒グラフを生成して入出力部130や、端末C~端末Gの入出力部に出力する。具体的に、ユーザの入出力部130に対する操作(入力操作)が行われ当該確認処理が行われた場合には、入出力部130へ出力し、確認要求を受信したことにより当該確認処理が行われた場合には、確認要求の送信元の入出力部へ出力する。
【0060】
このような確認処理が行われることで、ユーザの所望する要求種別に対応するグラフや表などの図が表示されることとなり、当該ユーザによる認識や分析を容易にすることが可能となる。
【0061】
続いて確認処理が実行された場合における具体例について説明する。図9は、要求種別として、売り上げ集計が指定された場合の例を示している。より具体的には、店舗1の属性のハッシュチェーンを指定した上で、売り上げ集計の要求種別を指定して確認処理を行った場合における実行例を示している。
【0062】
情報処理装置100は、確認処理を開始すると、当該要求種別に店舗1の属性のハッシュチェーンが指定されていることから、図8のステップS301にてYesと判定し、ステップS302の処理において、図7に示す店舗1(アドレス:XX)のハッシュチェーンに含まれるデータブロック(1)~(3)に含まれるトランザクションデータを取得する。
【0063】
そして、図8のステップS304の処理にて図9(A)および(B)に示すように、取得したトランザクションデータのうち、当該店舗1が「From」となっているトランザクションデータと、「To」となっているトランザクションデータとに分類することで、コイン収入と現金収入とを仕分けするとともに、価値を集計する。
【0064】
その後、ステップS305の処理にて図9(C)に示すように、集計結果をコイン収入と現金収入とに分けて棒グラフとして生成し、表示する。なお、図示する例では棒グラフを生成することとしているが、棒グラフに限られず、円グラフや折れ線グラフなど、任意のグラフであってよいし、ユーザが選択できるようにしてもよい。なお、図9に示す例では、店舗1から(From:XX)顧客1へ(To:01)1000のコインが移動した(価値:1000)ことを現金収入としているが、例えば、銀行など金融機関へ支払いを行った場合(店舗1から銀行へコインを移動させた場合)については、価値が減少したものとし、支出として扱うようにしてもよい。
【0065】
また、図10は、要求種別として顧客リストが指定された場合の例を示している。より具体的には、店舗1および2の属性のハッシュチェーンを指定した上で、顧客リストの要求種別を指定して確認処理を行った場合における実行例を示している。
【0066】
この場合、情報処理装置100は、確認処理を開始すると、当該要求種別に店舗1および2の属性のハッシュチェーンが指定されていることから、図8のステップS301にてYesと判定し、ステップS302の処理において、図7に示す店舗1(アドレス:XX)のハッシュチェーンに含まれるデータブロック(1)~(3)を取得するとともに、図7に示す店舗2(アドレス:YY)のハッシュチェーンに含まれるデータブロック(1)~(6)を取得する。
【0067】
そして、図8のステップS304の処理にて図10(A)に示すように、取得した店舗1と2のトランザクションデータを、顧客毎に分類して再配置する。その後、ステップS305の処理にて、図10(B)に示すように、店舗1の顧客と店舗2の顧客が視認して容易に把握可能な態様となるよう、顧客リストの図を生成し、表示する。なお、図示する例ではベン図を生成するとしているが、例えば、店舗1のみの顧客、店舗2のみの顧客、店舗1および2の顧客、といった項目別に表を生成するようにしてもよい。
【0068】
このように、この実施の形態における情報処理装置100は、属性毎のハッシュチェーンでトランザクションデータを管理するとともに、取引を行った当事者それぞれに対応する属性のハッシュチェーンに、同一内容のトランザクションデータを登録する。したがって、売り上げの集計や顧客リストの作成など、登録されたトランザクションデータを活用する際に、指定された属性のハッシュチェーンに含まれるデータブロックを取得すればよく、必要なトランザクションデータの格納先の特定が容易であり、トランザクションデータを好適に検索することができる。
【0069】
次に、確認処理が実行された場合における具体例として、履歴情報112が指定された場合、すなわち、時間的要素を含む要求種別が指定され、いずれの属性のハッシュチェーンも指定されていない場合について説明する。なお、以下の例では、図6示す10個のトランザクションが発生し、各トランザクションに対応して10回のデータ登録処理が行われ、図11に示すように各トランザクションデータが履歴情報112に登録されているものとして、以下説明する。
【0070】
図12は、確認処理における要求種別として、クーポン配布前後の推移が指定された場合の確認処理の実行例を示している。より具体的には、クーポン配布前1週間とクーポン配布後1週間における、クーポンを受け取った顧客グループとクーポンを受け取らなかった顧客グループの売り上げの推移を指定して確認処理を行った場合における実行例を示している。
【0071】
情報処理装置100は、確認処理を開始すると、当該要求種別にハッシュチェーンが指定されていないことから、図8のステップS301にてNoと判定し、ステップS303の処理において、クーポンが配布されたことを示すデータブロックを特定し、図11に示すように、期間Aに対応するデータブロック(データブロック(1)~(5))に含まれるトランザクションデータと、期間Bに対応するデータブロック(データブロック(7)~(10))に含まれるトランザクションデータを、それぞれ対象データとして履歴情報112から取得する。なお、この例では、理解を容易にするため、店舗1および2におけるコイン収入を示すトランザクションデータのみを用いた場合(トランザクション(1)、(3)および(9)以外のトランザクションデータを用いた場合)、すなわち、コイン収入に関するトランザクションデータのみ取得した場合を例に、以下説明する。
【0072】
図8のステップS304の処理にて、取得したデータブロック(2)、(4)および(5)に含まれるトランザクションデータを、クーポンが配布された顧客(顧客A)とそうでない顧客(顧客B)に分類するとともに、取得したデータブロック(7)~(8)および(10)に含まれるトランザクションデータについても同様に、クーポンが配布された顧客(顧客A)とそうでない顧客(顧客BおよびC)に分類する。具体的には、クーポンが配布されたことを示すデータブロックを特定した際に、いずれの顧客にクーポンが配布されたかを記憶し(複数ある場合には複数記憶し)、当該クーポンを受け取った顧客とそうでない顧客とに分類する。なお、クーポンが配布された顧客には、クーポンを配布した者との間に特別なトランザクションが発生していることから、クーポンを配布した者のハッシュチェーンを検索してクーポンを配布した者を特定し、クーポンが配布された顧客(顧客A)とそうでない顧客(顧客BおよびC)を分類してもよい。
【0073】
ステップS304の処理にて、コイン収入を示すトランザクションについて、クーポンの配布有無の分類をした後、同じくステップS304の処理において、クーポンを受け取った(クーポンが配布された)顧客の期間Aと期間Bのそれぞれの売り上げの合計、クーポンを受け取っていない顧客の期間Aと期間Bのそれぞれの売り上げの合計値から、それぞれの平均値を算出する。具体的にこの例では、クーポンを受け取った顧客として、顧客Aの期間Aと期間Bのそれぞれの売り上げの合計値から、期間Aの売り上げ200、期間Bの売り上げ500を平均値として算出し、クーポンを受け取っていない顧客として、顧客BおよびCの期間Aと期間Bのそれぞれの売り上げの合計値(期間Aの売り上げ100、期間Bの売り上げ150)から期間Aの売り上げ50、期間Bの売り上げ75を平均値として算出する。なお、この例では、理解を容易にするため、コイン収入についてのみを用いて平均を算出する例を示しているが、現金収入について、も別途現金売り上げとして平均を算出してもよい。また、平均でなくとも、中央値であってもよいし、例えば、取引回数が多い顧客ほど重みが高くなるような所定の演算方法により、クーポンを受け取った顧客グループとそうでない顧客グループの売り上げを算出してもよい。
【0074】
その後、ステップS305の処理にて、図12(A)および(B)に示すように、クーポンを受け取った顧客グループ(顧客A)の売り上げの推移と、クーポンを受け取っていない顧客グループ(顧客B、顧客Cの平均)の売り上げの推移を示す棒グラフを生成し、表示する。なお、棒グラフに限られない点は図9に示す場合と同様である。この例では、図示するように、クーポンを受け取った顧客グループについては、クーポン配布前の期間Aよりもクーポン配布後の期間Bの方が、売り上げが大幅に増加しているのに対し、クーポンを受け取っていない顧客グループについては、クーポン配布前の期間Aとクーポン配布後の期間Bとで売り上げに大きな変化がないことがわかる。これにより、ユーザは、クーポンを発行した場合における効果測定を容易に行うことができる。
【0075】
このように、時間的要素を含む要求種別の場合には、履歴情報112から対象データを取得し、対象データを再配置することで、ブロック上に格納されたトランザクションデータを好適に検索することができる。また、この実施の形態によれば、時間的要素を含む否か、換言すると所定の属性のハッシュチェーンが指定されていない場合と指定されている場合とで、対象データの取得先を変更する。したがって、ユーザの所望する内容に応じて異なる種類のハッシュチェーンから対象データを検索可能であり、ブロック上に格納されたトランザクションデータを好適に検索することができる。
【0076】
(変形例)
なお、この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、情報処理装置100では、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも1つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせても良い。
【0077】
上記実施の形態では、顧客がコインのみにより買い物を行う場合について示したが、これは一例である。例えば、顧客が店舗の商品を購入する際に、顧客のコイン残高を確認し、残高不足である場合には、コインに加えて現金を用いて商品購入を行うことがあってもよい。具体的に、図4のステップS203の処理の前に、顧客のコイン残高を確認する処理を実行してもよく、その場合には、取引を行う顧客に対応するハッシュチェーンに含まれるトランザクションデータを参照することで、当該顧客のコイン残高を確認すればよい。例えば、図6に示す7つ目のトランザクション(顧客Aが店舗2で500コイン分の買い物をした)が発生した際におけるデータブロック登録処理において、顧客Aの属性のハッシュチェーンに含まれるデータブロック(図7のデータブロック(1)~(4))のトランザクションデータを集計することで、顧客Aの残高を確認すればよい。そして、残高が足りない場合には、不足分を現金収入として処理すればよい。この例において、顧客Aのコイン残高が300であった場合には、コイン300、現金200として500の商品を購入した旨のトランザクションデータが登録されればよい。このように、顧客の属性のハッシュチェーンに含まれる全てのトランザクションデータを集計すれば、当該顧客の残高を容易に取得することができる。よって、ブロック上に格納されたトランザクションデータを好適に検索することができる。
【0078】
また、上記実施の形態では、顧客と店舗の2者での取引について説明したが、例えば、3者間取引であってもよく、この場合には、3者それぞれの属性のハッシュチェーンに当該トランザクションデータとして共通内容のデータがそれぞれのデータブロックに登録されればよい。また、上記実施の形態におけるトランザクションデータには、購入した商品を特定するための情報が含まれていてもよい。これによれば、店舗毎の売れ筋商品の分析を行うことができる。
【0079】
また、上記実施の形態では、図12に示すように、クーポン配布前後の売り上げの推移によりクーポン配布の効果測定を行う例を示したが、これは一例である。例えば、当該クーポン配布後に、配布された顧客がクーポンを使用して買い物をしたことを示すトランザクションデータを登録することにより、配布したクーポンの使用割合を確認することも可能である。具体的に、顧客Aが500コインの商品を、50コイン引きのクーポンを使って購入したことを示すトランザクションデータを、図4のステップS203の処理にて、対象のハッシュチェーン、および履歴情報112に登録すればよい(履歴情報112のみであってもよい)。そして、図8のステップ303の処理において、クーポンが配布されてから、ユーザに指定された期間に当該クーポンを使用した顧客とそうでない顧客のトランザクションデータを取得すればよい。このように、クーポンの使用状況をハッシュチェーン等に登録することで、使用状況の確認を容易にすることができる。さらに、複数のクーポンを配布した場合に、クーポンを識別するクーポンIDを分析用付加データとして登録しておけば、いずれのクーポンが使用されたか、といったことを分析することも可能である。
【0080】
また、上記実施の形態では、図12に示すように、クーポンを受け取った顧客グループとクーポンを受け取らなかった顧客グループの売り上げの推移を示したが、これは一例である。例えば、当該クーポンが店舗2でのみ使用可能なクーポンであった場合(分析用付加データとしてその旨が登録されている場合)、店舗1と店舗2とでそれぞれ期間Aと期間Bとの売り上げを集計することで、顧客Aが通常は店舗1で買い物をするが、クーポンが使用可能な場合には店舗2にて買い物をする、ということが容易に把握できる。
【0081】
このように、トランザクションデータの他、分析用付加データとしてマーケティングに必要な情報を含めて履歴情報112へ登録することで、様々な活用が可能となる。すなわち、分析用付加データを含めた検索およびトランザクションデータ検索を好適に行うことが可能となり、マーケティングにおける効果を発揮することができる。
【0082】
なお、上記実施の形態における履歴情報112が属性に関わらず全てのトランザクションデータが格納されたハッシュチェーン(属性のないハッシュチェーン)であり、他の情報処理装置100と同期される例を示したが、これは一例である。履歴情報112は、ハッシュチェーンにより管理されるものに限られず、例えば、ネットワーク210を介して通信可能に接続されたサーバに、キャッシュとして格納されていてもよい。
【0083】
また、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協同により実現する場合等には、OS以外の部分のみを媒体に格納してもよい。
【0084】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【符号の説明】
【0085】
1 情報処理システム、100A~B 情報処理装置、100C~100G 端末、110 記憶部、111 各属性のハッシュチェーン、112 履歴情報、113 120 制御部、121 初期登録部、122 同期処理部、123 データブロック登録部、124 データ取得部、125 グラフ生成部、130 入出力部、140 通信部、210 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12