JP7253344B2 - Information processing device, information processing method and program - Google Patents

Information processing device, information processing method and program Download PDF

Info

Publication number
JP7253344B2
JP7253344B2 JP2018173967A JP2018173967A JP7253344B2 JP 7253344 B2 JP7253344 B2 JP 7253344B2 JP 2018173967 A JP2018173967 A JP 2018173967A JP 2018173967 A JP2018173967 A JP 2018173967A JP 7253344 B2 JP7253344 B2 JP 7253344B2
Authority
JP
Japan
Prior art keywords
transaction
data
hash chain
information processing
customer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018173967A
Other languages
Japanese (ja)
Other versions
JP2020046855A (en
Inventor
茂樹 川森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2018173967A priority Critical patent/JP7253344B2/en
Publication of JP2020046855A publication Critical patent/JP2020046855A/en
Application granted granted Critical
Publication of JP7253344B2 publication Critical patent/JP7253344B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置、情報処理方法およびプログラムに関する。 The present invention relates to an information processing device, an information processing method, and a program.

近年、ビットコイン(登録商標)等の仮想通貨を用いた商取引が行われている。当該仮想通貨を用いた商取引では、中央集権的な管理を必要とせずに不正を防止するため、ブロックチェーンと呼ばれる技術が用いられている。ブロックチェーンでは、複数のトランザクションデータ、直前のハッシュ値及びその他の情報を「ブロック」として定義し、参加者全体で形成されるネットワーク内での合意形成のプロセスによって当該「ブロック」内の情報の信頼性を担保している。しかしながら、このようなブロックチェーンの技術により仮想通貨の商取引を行う場合、1秒あたりに処理可能な件数が少ないといった問題がある。 In recent years, commercial transactions using virtual currencies such as Bitcoin (registered trademark) have been conducted. In commercial transactions using the virtual currency, a technology called blockchain is used to prevent fraud without requiring centralized management. Blockchain defines multiple transaction data, previous hash value and other information as a "block", and the trust of information in the "block" is determined by a process of consensus building within the network formed by all participants. guarantees sexuality. However, when conducting virtual currency commercial transactions using such blockchain technology, there is a problem that the number of transactions that can be processed per second is small.

このような問題に対応するため、例えば非特許文献1には、ハッシュグラフと呼ばれる技術が開示されている。 In order to deal with such problems, for example, Non-Patent Document 1 discloses a technique called hash graph.

”ブロックチェーンを超える技術が存在!分散型台帳「Hashgraph」とは?”、[Online]、[平成30年9月3日検索]、インターネット<URL:https://coin-otaku.com/topic/7754>”Technology that surpasses blockchain exists! What is a distributed ledger “Hashgraph”? ”, [Online], [Searched on September 3, 2018], Internet <URL: https://coin-otaku.com/topic/7754>

非特許文献1に開示されているハッシュグラフの技術では、ランダムに選ばれた一部のユーザの承認によりトランザクションデータの記録を行うことから、ブロックチェーンの技術を用いた処理よりも高速な処理を実現可能となる。しかしながら、複数のトランザクションデータを時系列に格納したブロックを複数つないでいく点ではいずれの技術も共通であり、ブロック上に格納したトランザクションデータを好適に検索するという面からすると未だ十分ではなかった。 In the hash graph technology disclosed in Non-Patent Document 1, transaction data is recorded with the approval of some randomly selected users, so processing is faster than processing using blockchain technology. become feasible. However, all of these technologies have in common that multiple blocks in which multiple pieces of transaction data are stored in chronological order are linked together, and are still insufficient in terms of suitably retrieving the transaction data stored in the blocks.

本発明は、上述のような事情に鑑みてなされたものであり、ブロック上に格納されたトランザクションデータを好適に検索することができる情報処理装置、情報処理方法およびプログラムを提供することを目的としている。 SUMMARY OF THE INVENTION It is an object of the present invention to provide an information processing apparatus, an information processing method, and a program capable of suitably retrieving transaction data stored in blocks. there is

上記目的を達成するため、本発明の第1の観点に係る情報処理装置は、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納手段は、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする。
In order to achieve the above object, the information processing device according to the first aspect of the present invention includes:
Data storage means for storing transaction data, which is the content of the transaction , in data blocks linked by a hash chain constructed in the network based on the occurrence of a transaction between parties ;
the hash chain is stored for each party to the transaction;
The data storage means stores the same transaction data in each data block linked by the hash chain corresponding to the parties of the transaction occurring between the parties .
It is characterized by

前記データ格納手段は、前記ハッシュチェーンとは異なる特別ハッシュチェーンで連結されるデータブロックに、発生した前記トランザクションの前記当事者に対応するか否かに関わらず、前記トランザクションデータを、発生した順に格納する、
ようにしてもよい。
The data storage means generates the transaction data in data blocks linked by a special hash chain different from the hash chain, regardless of whether they correspond to the parties of the generated transaction . store in order
You may do so.

前記データ格納手段により格納した前記トランザクションデータを、ユーザの要求に基づいて前記ハッシュチェーンまたは前記特別ハッシュチェーンから検索する検索手段と、
前記検索手段で検索した検索結果に基づいて、前記ユーザの要求を満たす態様の図を生成する生成手段と、
前記生成手段で生成された図を表示する表示手段と、
をさらに備えるようにしてもよい。
search means for searching the transaction data stored by the data storage means from the hash chain or the special hash chain based on a user's request;
generating means for generating a diagram of a mode that satisfies the user's request based on the search results retrieved by the searching means;
display means for displaying the diagram generated by the generating means;
may be further provided.

前記検索手段は、前記ユーザの要求に時間的要素が含まれる場合に、前記特別ハッシュチェーンから検索を行い、前記時間的要素が含まれない場合に、前記ハッシュチェーンから検索を行う、
ようにしてもよい。
The search means searches from the special hash chain if the user's request includes a temporal element, and searches from the hash chain if the temporal element is not included.
You may do so.

上記目的を達成するため、本発明の第2の観点に係る情報処理方法は、
情報処理装置における情報処理方法であって、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納ステップを実行し、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納ステップでは、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする。
In order to achieve the above object, an information processing method according to a second aspect of the present invention comprises:
An information processing method in an information processing device,
Based on the occurrence of a transaction between parties , executing a data storage step of storing transaction data, which is the transaction content of the transaction, in data blocks connected by a hash chain constructed in the network,
the hash chain is stored for each party to the transaction;
In the data storing step, the same transaction data is stored in each data block linked by the hash chain corresponding to the parties of the transaction occurring between the parties .
It is characterized by

上記目的を達成するため、本発明の第3の観点に係るプログラムは、
コンピュータを、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納手段として機能させ、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納手段は、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする。
In order to achieve the above object, a program according to the third aspect of the present invention,
the computer,
Based on the occurrence of a transaction between parties , it functions as data storage means for storing transaction data, which is the transaction content of the transaction, in data blocks linked by a hash chain constructed in the network,
the hash chain is stored for each party to the transaction;
The data storage means stores the same transaction data in each data block linked by the hash chain corresponding to the parties of the transaction occurring between the parties .
It is characterized by

本発明によれば、ブロック上に格納されたトランザクションデータを好適に検索することができる。 According to the present invention, transaction data stored on blocks can be retrieved favorably.

本発明の実施形態に係る情報処理システムの一例を示すブロック図である。1 is a block diagram showing an example of an information processing system according to an embodiment of the present invention; FIG. 本発明の実施形態に係る情報処理装置の一例を示すブロック図である。1 is a block diagram showing an example of an information processing device according to an embodiment of the present invention; FIG. 初期登録処理の一例を示すフローチャートである。It is a flow chart which shows an example of initial registration processing. データブロック登録処理の一例を示すフローチャートである。9 is a flowchart showing an example of data block registration processing; ハッシュチェーンの構成例を示す図である。FIG. 4 is a diagram showing a configuration example of a hash chain; 発生したトランザクションの一例を示す図である。FIG. 4 is a diagram showing an example of transactions that have occurred; ハッシュチェーンの登録内容の例を示す図である。FIG. 4 is a diagram showing an example of registered contents of hash chains; 確認処理の一例を示すフローチャートである。9 is a flowchart showing an example of confirmation processing; 売り上げ集計が指定された場合の確認処理の実行例を示す図である。It is a figure which shows the execution example of a confirmation process when sales total is designated. 顧客リストが指定された場合の確認処理の実行例を示す図である。It is a figure which shows the execution example of a confirmation process when a customer list is designated. 履歴情報の登録内容の例を示す図である。It is a figure which shows the example of the content registered of history information. クーポン配布前後の推移が指定された場合の確認処理の実行例を示す図である。It is a figure which shows the execution example of a confirmation process when transition before and after coupon distribution is designated.

本発明における情報処理装置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と区別して説明する。 An information processing apparatus 100 according to the present invention will be described using an example in which it is applied to the information processing system 1 shown in FIG. In the information processing system 1, as shown in FIG. terminals 100F and 100G are communicably connected via a network 210 . Terminals 100C to 100E of customers A to C and terminals 100F and 100G of stores 1 and 2 can each function as information processing device 100 (terminals 100C to 100G can also function as information processing device 100). However, in order to facilitate understanding, these will be described separately from the information processing apparatus 100 in this embodiment.

情報処理装置100は、携帯電話やスマートフォン、タブレットやPC(Personal Computer)等の情報端末であり、P2P(Peer to Peer)等の分散型のネットワーク210を構築している。なお、情報処理システム1は、P2P型のシステムに限られず、例えばクラウドコンピューティング型であってもよい。 The information processing apparatus 100 is an information terminal such as a mobile phone, a smart phone, a tablet, or a PC (Personal Computer), and constructs a distributed network 210 such as P2P (Peer to Peer). The information processing system 1 is not limited to a P2P type system, and may be a cloud computing type, for example.

情報処理装置100は、例えば、顧客Aが店舗1にて買い物をした、などといった、顧客と店舗との間で発生した取引のデータ(トランザクションデータ)をネットワーク210から受信したことに基づいて、新たなデータブロックを生成して当該受信データを格納し、既存のハッシュチェーンに連結する、ハッシュチェーン登録装置として機能する。なお、上述したように、端末100C~100Gが情報処理装置100として機能することもあることから、情報処理装置100は、トランザクションデータを生成し、ネットワーク210へ配信する機能を有するトランザクション生成装置として機能することもある。ハッシュチェーン登録装置にて登録された内容は、ネットワーク210を介して、各情報処理装置100で共有される。また、通常、一定数のトランザクションデータが一つのデータブロックに格納される(一定数のトランザクションデータをひとまとめにして一つのブロックに格納する)が、この実施の形態では、理解を容易にするため、一つのトランザクションデータが一つのデータブロックに格納されるものとする。 The information processing apparatus 100 receives, from the network 210, transaction data (transaction data) that occurred between the customer and the store, such as the customer A shopping at the store 1, for example. It functions as a hash chain registration device that generates a unique data block, stores the received data, and connects it to an existing hash chain. As described above, since the terminals 100C to 100G may function as the information processing device 100, the information processing device 100 functions as a transaction generation device having a function of generating transaction data and distributing it to the network 210. sometimes. The contents registered by the hash chain registration device are shared by each information processing device 100 via the network 210 . Also, normally, a certain number of transaction data are stored in one data block (a certain number of transaction data are collectively stored in one block), but in this embodiment, for ease of understanding, It is assumed that one transaction data is stored in one data block.

この実施の形態において、顧客と店舗との間で発生した取引により生成された(端末C~端末Gのいずれかがトランザクション生成装置として機能して生成された)トランザクションデータは、データブロックと呼ばれる一つの単位に格納され、当該データブロックを時系列に連結したそれぞれの属性のハッシュチェーンによって管理される。例えば、顧客Aと店舗1との間で発生したトランザクションデータは、顧客Aの属性のハッシュチェーンおよび店舗1の属性のハッシュチェーンとに、それぞれ新たなデータブロックとして同内容のデータが登録されて管理される。 In this embodiment, transaction data generated by a transaction between a customer and a store (generated by any one of terminals C to G functioning as a transaction generation device) is called a data block. It is stored in one unit and managed by a hash chain of each attribute that links the data block in chronological order. For example, transaction data generated between customer A and store 1 is managed by registering the same data as new data blocks in the hash chain of the attribute of customer A and the hash chain of the attribute of store 1. be done.

また、この実施の形態における情報処理装置100は、各属性のハッシュチェーンに含まれるデータブロックから、ユーザの所望する登録データを分類したり集計したりするデータ統計装置としても機能する。なお、データ統計装置としての機能には、後述する履歴情報に基づいてデータを分類したり集計したりする機能も含まれる。 The information processing device 100 in this embodiment also functions as a data statistics device that sorts and aggregates registration data desired by the user from data blocks included in each attribute hash chain. It should be noted that the function of the data statistics device also includes a function of classifying and totalizing data based on history information, which will be described later.

具体的に、この実施の形態における情報処理装置100のデータ統計装置としての機能は、ユーザによる指定に基づいて、店舗毎の売り上げの集計、顧客リストの作成などを行う機能であり、ユーザにより所望されたデータを、グラフや表などの図にて表示することでユーザによる認識や分析を容易にする機能である。 Specifically, the function of the information processing device 100 in this embodiment as a data statistics device is a function of totaling sales for each store, creating a customer list, etc. based on designation by the user. This is a function that facilitates user recognition and analysis by displaying the collected data in diagrams such as graphs and tables.

次に、図2を参照し、この実施の形態における情報処理装置100の構成について説明する。なお、図示する例では、情報処理装置100Aを例としているが、情報処理装置100Bおよび端末100C~100Gの端末が情報処理装置100として機能する場合についても同様であるため、説明は省略する。なお、図示は省略しているが、トランザクション生成装置としての機能を有する機能部が設けられていてもよい。 Next, the configuration of the information processing apparatus 100 according to this embodiment will be described with reference to FIG. In the illustrated example, the information processing device 100A is taken as an example, but the information processing device 100B and the terminals 100C to 100G function as the information processing device 100 in the same manner, so description thereof will be omitted. Although illustration is omitted, a functional unit having a function as a transaction generation device may be provided.

図2に示すように、情報処理装置100A(以下、情報処理装置100)は、記憶部110と、制御部120と、入出力部130と、通信部140と、これらを相互に接続するシステムバス(図示省略)と、を備えている。 As shown in FIG. 2, the information processing device 100A (hereinafter referred to as the information processing device 100) includes a storage unit 110, a control unit 120, an input/output unit 130, a communication unit 140, and a system bus interconnecting them. (not shown).

記憶部110は、ROM(Read Only Memory)やRAM(Random Access Memory)等を備える。ROMは制御部120のCPU(Central Processing Unit)が実行するプログラム及び、プログラムを実行する上で予め必要なデータを記憶する(図示省略)。具体的に、この実施の形態では、当該情報処理装置100を、ハッシュチェーン登録装置およびデータ統計装置として機能させるためのプログラムが、予めインストールされている。RAMは、プログラム実行中に作成されたり変更されたりするデータを記憶する。記憶部110は、制御部120が実行するプログラムが用いる主要な情報として、各属性のハッシュチェーン111、履歴情報112を記憶する。 The storage unit 110 includes a ROM (Read Only Memory), a RAM (Random Access Memory), and the like. The ROM stores a program executed by a CPU (Central Processing Unit) of the control unit 120 and data required in advance for executing the program (not shown). Specifically, in this embodiment, a program is installed in advance to make the information processing device 100 function as a hash chain registration device and a data statistics device. RAM stores data that is created or modified during program execution. The storage unit 110 stores a hash chain 111 and history information 112 of each attribute as main information used by the program executed by the control unit 120 .

各属性のハッシュチェーン111は、顧客A~C、店舗1~2それぞれの属性に対応するハッシュチェーンであり、それぞれのハッシュチェーンは、トランザクションデータが格納されたデータブロックが連結されたものである。各属性のハッシュチェーン111は、後述するデータブロック登録処理にて当該記憶部110に記憶され、後述する確認処理により、ハッシュチェーンが指定された場合に参照される。 Each attribute hash chain 111 is a hash chain corresponding to each attribute of customers A to C and stores 1 and 2, and each hash chain is a concatenation of data blocks storing transaction data. The hash chain 111 of each attribute is stored in the storage unit 110 in the data block registration process described later, and is referred to when the hash chain is specified in the confirmation process described later.

履歴情報112は、全てのトランザクションデータが時系列に格納された特別なハッシュチェーンである。履歴情報112は、後述するデータブロック登録処理にて当該記憶部110に記憶され、後述する確認処理により、ハッシュチェーンが指定されなかった場合に参照される。なお、この実施の形態における履歴情報112は、1つのトランザクションデータが1つのデータブロックに格納され連結されたハッシュチェーンであり、属性に関わらず全てのトランザクションデータが格納されたハッシュチェーン(属性のないハッシュチェーン)である。なお、複数のトランザクションデータが1つのデータブロックに格納され、ハッシュチェーンとして連結されてもよい。なお、履歴情報は、時系列に格納された一覧表にしてもよい。 History information 112 is a special hash chain in which all transaction data are stored in chronological order. The history information 112 is stored in the storage unit 110 in data block registration processing, which will be described later, and is referred to in confirmation processing, which will be described later, when a hash chain is not specified. Note that the history information 112 in this embodiment is a hash chain in which one piece of transaction data is stored in one data block and linked, and a hash chain in which all transaction data are stored regardless of attributes (data without attributes). hash chain). Note that multiple transaction data may be stored in one data block and concatenated as a hash chain. Note that the history information may be a list stored in chronological order.

制御部120は、CPUやASIC(Application Specific Integrated Circuit)等から構成される。制御部120は、記憶部110に記憶されたプログラムに従って動作し、当該プログラムに従った処理を実行する。制御部120は、記憶部110に記憶されたプログラムにより提供される主要な機能部として、初期登録部121と、同期処理部122と、データブロック登録部123と、データ取得部124と、グラフ生成部125と、を備える。 The control unit 120 includes a CPU, an ASIC (Application Specific Integrated Circuit), and the like. Control unit 120 operates according to a program stored in storage unit 110 and executes processing according to the program. The control unit 120 includes an initial registration unit 121, a synchronization processing unit 122, a data block registration unit 123, a data acquisition unit 124, and a graph generation unit as main functional units provided by a program stored in the storage unit 110. a portion 125;

初期登録部121は、ユーザの入出力部130に対する操作や、通信部140を介して受信した要求に基づいて、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する機能を実現する機能部である。詳しくは後述するが、初期登録部121は、例えば、顧客Aの属性のハッシュチェーンを生成するために必要な初期情報として、属性情報、顧客Aのアドレス、インデックス値などを登録する機能(すなわち、後述するハッシュチェーンの土台情報を登録する機能)を有している。 The initial registration unit 121 implements a function of registering initial information necessary to generate a hash chain with new attributes based on user operations on the input/output unit 130 and requests received via the communication unit 140. It is a functional part that Although details will be described later, the initial registration unit 121 has, for example, a function of registering attribute information, the address of customer A, an index value, etc. as initial information necessary to generate a hash chain of attributes of customer A (that is, It has a function of registering the base information of the hash chain, which will be described later).

同期処理部122は、当該情報処理装置100に記憶された各属性のハッシュチェーンと、他の情報処理装置100に記憶された各属性のハッシュチェーンとを同期する機能を実現する機能部である。詳しくは後述するが、同期処理部122は、後述するデータブロック登録処理にてトランザクションデータを当該情報処理装置100におけるデータブロックに登録する前と後に、他の情報処理装置100と同期する機能を有している。また、同期処理部122は、後述する初期登録処理において他の情報処理装置100へ、ハッシュチェーンの土台情報を同期させる機能を有している。 The synchronization processing unit 122 is a functional unit that realizes a function of synchronizing hash chains of attributes stored in the information processing device 100 and hash chains of attributes stored in other information processing devices 100 . Although details will be described later, the synchronization processing unit 122 has a function of synchronizing with another information processing device 100 before and after transaction data is registered in a data block in the information processing device 100 in a data block registration process described later. are doing. In addition, the synchronization processing unit 122 has a function of synchronizing base information of hash chains with other information processing apparatuses 100 in an initial registration process to be described later.

データブロック登録部123は、発生したトランザクションのトランザクションデータを含むデータブロックを、当該情報処理装置100の各属性のハッシュチェーン111のうち、対応する属性のハッシュチェーンに追加する機能を実現する機能部である。詳しくは後述するが、データブロック登録部123は、例えば、顧客Aと店舗1とで取引が行われた場合、顧客Aと店舗1のそれぞれのハッシュチェーンに、当該取引の内容(トランザクションデータ)を、新たなデータブロックとして登録する機能を有している。また、データブロック登録部123は、トランザクションデータを履歴情報112に登録する機能も有している。 The data block registration unit 123 is a functional unit that implements a function of adding a data block containing transaction data of a transaction that has occurred to a hash chain of a corresponding attribute among the hash chains 111 of each attribute of the information processing apparatus 100 . be. Although details will be described later, for example, when a transaction is made between customer A and store 1, the data block registration unit 123 stores the content of the transaction (transaction data) in the respective hash chains of customer A and store 1. , has a function to register as a new data block. The data block registration unit 123 also has a function of registering transaction data in the history information 112 .

データ取得部124は、ユーザの指定に基づいて、登録された各属性のハッシュチェーン111に含まれるデータブロックの内容や、履歴情報112に含まれるデータを取得する機能を実現する機能部である。なお、データ取得部124には、取得したデータを再配置して出力する機能も有している。 The data acquisition unit 124 is a functional unit that acquires the contents of the data blocks included in the hash chain 111 of each registered attribute and the data included in the history information 112 based on the user's designation. The data acquisition unit 124 also has a function of rearranging and outputting the acquired data.

また、グラフ生成部125は、データ取得部124により取得したデータから、ユーザの指定に基づいて、グラフや表や図などを生成する機能を実現する機能部である。 Also, the graph generation unit 125 is a functional unit that realizes a function of generating graphs, tables, diagrams, and the like from the data acquired by the data acquisition unit 124 based on the user's designation.

これら各機能部が協働して、当該情報処理装置100をハッシュチェーン登録装置およびデータ統計装置として機能させる。 These functional units cooperate to cause the information processing device 100 to function as a hash chain registration device and a data statistics device.

入出力部130は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機EL(Electoro-Luminescence)ディスプレイ等から構成され、データの入出力を行うための装置である。 The input/output unit 130 includes a keyboard, mouse, camera, microphone, liquid crystal display, organic EL (Electro-Luminescence) display, and the like, and is a device for inputting/outputting data.

通信部140は、他の情報処理装置100や端末C~端末Gとネットワーク210を介して通信を行うためのデバイスである。 The communication unit 140 is a device for communicating with other information processing apparatuses 100 and terminals C to G via the network 210 .

以上が、情報処理装置100の構成である。続いて情報処理装置100の動作などについて、図3~図12を参照して説明する。まず、ハッシュチェーン登録装置として機能した場合における情報処理装置100の動作について、図3~7を参照して説明する。 The above is the configuration of the information processing apparatus 100 . Next, operations of the information processing apparatus 100 will be described with reference to FIGS. 3 to 12. FIG. First, the operation of the information processing device 100 when functioning as a hash chain registration device will be described with reference to FIGS. 3 to 7. FIG.

まず、ユーザの入出力部130に対する操作(入力操作)や、端末C~端末Gから受信した要求(登録要求)に基づいて、図3に示す初期登録処理が行われる。初期登録処理は、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する処理である。この例では、理解を容易にするため、顧客Aについての初期登録を行う場合について説明する。初期登録処理を開始すると、情報処理装置100は、初期登録部121の機能により、属性データを生成する(ステップS101)。具体的に、ステップS101では、入力操作や登録要求に含まれる、属性情報である顧客Aの情報および顧客Aのアドレスを、顧客Aの属性のハッシュチェーンを生成するための情報として、記憶部110へ登録する。なお、当該情報は、各属性のハッシュチェーン111のうちの属性Aのハッシュチェーンとして登録されればよい。また、属性情報は登録せず、アドレスのみ登録するようにしてもよい。なお、この実施の形態では、顧客A~Cのアドレスを01~03、店舗1および2のアドレスをXXおよびYYとしている。 First, the initial registration process shown in FIG. 3 is performed based on the user's operation (input operation) on the input/output unit 130 and requests (registration requests) received from the terminals C to G. FIG. The initial registration process is a process of registering initial information necessary to generate a new attribute hash chain. In this example, in order to facilitate understanding, a case of initial registration of customer A will be described. When starting the initial registration process, the information processing apparatus 100 generates attribute data using the function of the initial registration unit 121 (step S101). Specifically, in step S101, the information of the customer A and the address of the customer A, which are attribute information included in the input operation and the registration request, are stored in the storage unit 110 as information for generating a hash chain of the attributes of the customer A. Register to The information may be registered as the hash chain of attribute A among the hash chains 111 of each attribute. Alternatively, only the address may be registered without registering the attribute information. In this embodiment, the addresses of customers A to C are 01 to 03, and the addresses of stores 1 and 2 are XX and YY.

次に、情報処理装置100は、初期登録部121の機能により、登録した顧客Aの属性のハッシュチェーンのインデックス値に、初期値である「0」を登録する(ステップS102)。インデックス値が「0」であることは、当該ハッシュチェーンが初期状態であること(何らデータブロックが登録されていない状態であること)を示している。すなわち、ステップS101およびステップS102の処理では、データブロックがチェーンで連結されてはいないものの、データブロックが未登録のハッシュチェーン(ハッシュチェーンの土台情報)が生成されていると言える。なお、この状態では、データブロックがチェーンで連結されていないため、データを削除でき、また、削除したことを検証することができない、といった問題がある。そこで、対改ざん性を高めるため、ランダムで選択したハッシュチェーンに対して、0コインの特別なトランザクションを発生させ、インデックス値が「0」のデータブロックをチェーンで連結する処理を行うようにしてもよい。 Next, the information processing apparatus 100 uses the function of the initial registration unit 121 to register the initial value "0" as the index value of the hash chain of the registered attribute of the customer A (step S102). An index value of "0" indicates that the hash chain is in an initial state (a state in which no data block is registered). That is, in the processing of steps S101 and S102, although the data blocks are not linked in a chain, it can be said that a hash chain (base information of the hash chain) in which the data blocks are not registered is generated. In this state, since the data blocks are not connected by a chain, there is a problem that the data can be deleted and the deletion cannot be verified. Therefore, in order to increase the resistance to tampering, a special transaction of 0 coins is generated for the randomly selected hash chain, and the data blocks with the index value of "0" are linked by the chain. good.

ステップS102の処理を実行した後、情報処理装置100は、同期処理部122の機能により、他の情報処理装置100へ、当該内容を登録し(ステップS103)、初期登録処理を終了する。具体的に、ステップS103では、当該情報処理装置100における顧客Aの属性のハッシュチェーン(ハッシュチェーンの土台情報)の内容を、他の情報処理装置100の記憶部110における各属性のハッシュチェーン111へコピーする。これにより、全ての情報処理装置100において顧客Aの属性のハッシュチェーン(ハッシュチェーンの土台情報)が共有されることとなる。 After executing the process of step S102, the information processing apparatus 100 registers the content in the other information processing apparatus 100 using the function of the synchronization processing unit 122 (step S103), and ends the initial registration process. Specifically, in step S103, the content of the hash chain (base information of the hash chain) of the attribute of customer A in the information processing apparatus 100 is transferred to the hash chain 111 of each attribute in the storage unit 110 of the other information processing apparatus 100. make a copy. As a result, all the information processing apparatuses 100 share the hash chain of the attributes of the customer A (basic information of the hash chain).

次に、発生したトランザクションについて、当該トランザクションデータを対応する属性のハッシュチェーンのデータブロックへ登録するデータブロック登録処理について説明する。当該データブロック登録処理は、発生したトランザクションに対応するトランザクションデータを受信することにより実行される。トランザクションデータは、端末C~端末Gのいずれかより受信するものであるが、入出力部130に入力されてもよい。なお、この実施の形態では、上述したように、一つのトランザクションにつき一つのデータブロックが作成され登録されることから、当該データブロック登録処理は、登録すべきトランザクションの数が複数ある場合、繰り返し実行されることとなる。 Next, a data block registration process for registering the transaction data in the data block of the hash chain with the corresponding attribute will be described. The data block registration process is executed by receiving transaction data corresponding to the generated transaction. The transaction data is received from one of the terminals C to G, but may be input to the input/output unit 130 as well. In this embodiment, as described above, one data block is created and registered for each transaction. Therefore, the data block registration process is repeatedly executed when there are multiple transactions to be registered. It will be done.

図4は、データブロック登録処理の一例を示すフローチャートである。この例では、理解を容易にするため、顧客Aが店舗1にて1000コイン購入したというトランザクションが発生した場合のデータブロック登録処理(図5(A)の状態から(B)の状態へと移行する場合)について説明する。 FIG. 4 is a flowchart showing an example of data block registration processing. In this example, in order to facilitate understanding, data block registration processing (transition from state (A) to state (B) in FIG. 5) when a transaction of customer A purchasing 1000 coins at store 1 occurs. case) will be explained.

顧客Aが店舗1にて1000コイン購入したというトランザクションが発生すると、これに対応するトランザクションデータが顧客Aの端末Cまたは店舗1の端末Fから送信される。これにより、情報処理装置100は、データブロック登録部123の機能により、データブロック登録処理を開始する。なお、端末Cと端末Fの両方から同内容のトランザクションデータを受信することをもってデータブロック登録処理を開始するようにしてもよい。異なる内容のトランザクションデータを受信した場合には、エラーを出力するようにしてもよい。 When a transaction that the customer A purchases 1000 coins at the store 1 occurs, transaction data corresponding to this is transmitted from the terminal C of the customer A or the terminal F of the store 1 . As a result, the information processing apparatus 100 starts data block registration processing using the function of the data block registration unit 123 . The data block registration process may be started by receiving the same transaction data from both terminal C and terminal F. FIG. If transaction data with different content is received, an error may be output.

データブロック登録処理を開始すると、情報処理装置100は、まず、同期処理部122の機能により、当該情報処理装置100における対象のハッシュチェーンと、他の情報処理装置100における対象のハッシュチェーンとが、同期しているか否かを判定する(ステップS201)。具体的に、この例におけるステップS201の処理では、各属性のハッシュチェーン111のうち、顧客Aのハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値、および店舗1のハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値と、他の全ての情報処理装置100に記憶されたものと同一であるか否かを判定することで、同期しているか否かを判定する。 When the data block registration process is started, the information processing device 100 first uses the function of the synchronization processing unit 122 to create a target hash chain in the information processing device 100 and a target hash chain in another information processing device 100. It is determined whether or not they are synchronized (step S201). Specifically, in the processing of step S201 in this example, among the hash chains 111 of each attribute, the index value and hash value of the latest data block included in the hash chain of customer A and the hash chain of store 1 include By determining whether or not the index value and hash value of the latest data block are the same as those stored in all other information processing apparatuses 100, it is determined whether or not they are synchronized.

図5(A)に示す例を用いて説明すると、当該情報処理装置100(トランザクションデータを受信した情報処理装置100のことをいう、以下同様)の各属性のハッシュチェーン111のうち、顧客Aのハッシュチェーンには、インデックス値「N-1」のデータブロックが最新のデータブロックとして登録されており、店舗1のハッシュチェーンには、インデックス値「Z-1」のデータブロックが最新のデータブロックとして登録されている。なお、図示するように、この実施の形態におけるハッシュチェーンのデータブロック(第mのデータブロック)には、登録データ(トランザクションデータ)と、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)のハッシュ値(256ビット)が含まれる点は、従来のブロックチェーンの仕組みと同様である。また、データブロックには、例えば、当該データブロックに登録データが登録された日時を示すタイムスタンプなどの分析用付加データが含まれる(図示省略)点についても、従来のブロックチェーンの仕組みと同様である。 Using the example shown in FIG. 5A, in the hash chain 111 of each attribute of the information processing device 100 (meaning the information processing device 100 that received the transaction data, the same shall apply hereinafter), the customer A The data block with the index value "N-1" is registered as the latest data block in the hash chain, and the data block with the index value "Z-1" is registered as the latest data block in the hash chain of store 1. Registered. As shown in the figure, the data block (m-th data block) of the hash chain in this embodiment includes registration data (transaction data) and the data block at the end (one previous) of the current hash chain ( The point that the hash value (256 bits) of the (m-1th data block) is included is the same as the mechanism of the conventional blockchain. In addition, the data block includes additional data for analysis such as a timestamp indicating the date and time when the registered data was registered in the data block (not shown), which is the same as the conventional blockchain mechanism. be.

ステップ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の属性のハッシュチェーン)。 In the process of step S201, the index value "N-1" and the hash value of N-1, and the index value "Z-1" and the hash value of Z-1 are stored in all other information processing apparatuses 100. It is determined whether or not they are synchronized by determining whether or not they match what is set. For example, if there is an information processing device 100 that stores the index value “N” and the hash value of N, the hash chain information of the attributes of customer A stored in the information processing device 100 is old. (in the case of the index value "Z" and the hash value of this Z, the hash chain of the attribute of store 1). On the other hand, if there is an information processing device 100 that stores the index value "N-2" and the hash value of N-2, the hash chain of the attribute of customer A stored in the information processing device 100 is is old (in the case of the index value "Z-2" and the hash value of Z-2, the hash chain of the attribute of store 1).

同期していない場合(ステップS201;No)、情報処理装置100は、同期処理部122の機能により、最新のハッシュチェーンの内容を、古いと判定したハッシュチェーンが登録されている情報処理装置100へコピーする同期処理を実行する(ステップS202)。なお、ステップS202の処理では、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)コピーしてもよい。 If not synchronized (step S201; No), the information processing apparatus 100 uses the function of the synchronization processing unit 122 to transfer the contents of the latest hash chain to the information processing apparatus 100 in which the hash chain determined to be old is registered. Synchronization processing for copying is executed (step S202). Note that in the process of step S202, the entire hash chain may be copied, or only the missing data block (including the index value and hash value) may be copied.

図4に戻り、ステップS201にて同期していると判定した場合(ステップS201;Yes)、またはステップS202の処理を実行した場合、情報処理装置100は、対象のハッシュチェーンに同一の登録データを格納したデータブロックをそれぞれ追加する(ステップS203)。なお、上述したように、新たなデータブロック(第mのデータブロック)をハッシュチェーンに追加する場合、登録データ(トランザクションデータ)と、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)のハッシュ値(256ビット)をデータブロックに格納し、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)に連結する点は、従来のブロックチェーンの仕組みと同様である。 Returning to FIG. 4, when it is determined that synchronization is performed in step S201 (step S201; Yes), or when the process of step S202 is executed, the information processing apparatus 100 adds the same registered data to the target hash chain. Each stored data block is added (step S203). As described above, when adding a new data block (the mth data block) to the hash chain, the registration data (transaction data) and the data block at the end (one before) of the current hash chain (the The point of storing the hash value (256 bits) of the m-1 data block) in the data block and connecting it to the data block (m-1th data block) at the end (one previous) of the current hash chain is It is the same as the conventional blockchain mechanism.

具体的に、ステップ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は、対応するそれぞれのハッシュチェーンに、同一のトランザクションデータを追加する。 Specifically, in the process of step S203, as shown in FIG. 5B, in the hash chain of the attribute of customer A, the data block with the index value "N" becomes the data block with the index value "N-1". As well as being linked, in the hash chain of the attribute of store 1, the data block with index value 'Z' is linked to the data block with index value 'Z-1'. Each concatenated data block contains the same transaction data. Specifically, the content indicating that 1000 coins (value: 1000) has been transferred from store 1 (From: XX) to customer 1 (To: 01) is registered. As shown in the figure, "From" and "To" indicate from which direction the value of the coin has moved, and the magnitude of the value indicates the amount of movement of the coin. In this embodiment, it is assumed that there is cash income when coins are transferred from the store to the customer. Also, although the transaction data to be registered is based on coins, it may be based on cash. Further, the data block with the index value "N" in the hash chain of the attribute of the customer A stores the hash value of N-1, and the data block with the index value "Z" in the hash chain of the attribute of the store 1 stores: A hash value of Z-1 is stored. Thus, the information processing apparatus 100 in this embodiment adds the same transaction data to each corresponding hash chain.

図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データブロックに登録されるのみである。 Returning to FIG. 4, after executing the process of step S203, the information processing apparatus 100 registers the transaction data added in step S203 in the block as the history information 112 using the function of the data block registration unit 123 (step S204). ). In the illustrated example, the processing of step S204 is executed after the processing of step S203. You may perform the process of step S204 before. As described above, the history information 112 is an attributeless hash chain in which one transaction data is stored in one data block and concatenated. The point that the hash value (256 bits) of the (previous) data block (m-1th data block) and the additional data for analysis are included is the same as the hash chain 111 of each attribute, and the conventional block Similar to how a chain works. In the process of step S203, the same transaction data is added to the hash chain of the attribute of customer A and the hash chain of the attribute of store 1, respectively. Transaction data indicating the purchase is only registered in one data block of the history information 112 .

ステップS204の処理を実行した後、情報処理装置100は、同期処理部122の機能により、ステップS203にてデータブロックを追加した属性のハッシュチェーンおよび履歴情報112を他の情報処理装置100へ登録することにより、当該情報処理装置100と他の情報処理装置100とを同期してから(ステップS205)、データブロック登録処理を終了する。なお、ステップS205の処理では、当該情報処理装置100における顧客Aおよび店舗1の属性のハッシュチェーンそれぞれの内容と、履歴情報112の内容を、他の情報処理装置100の記憶部110における各属性のハッシュチェーン111および履歴情報112へコピーする。なお、ステップS205の処理では、ステップS202の処理と同様に、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)コピーしてもよい(履歴情報112についても同様)。 After executing the process of step S204, the information processing apparatus 100 registers the hash chain of the attribute to which the data block was added in step S203 and the history information 112 in the other information processing apparatus 100 by the function of the synchronization processing unit 122. Thus, after synchronizing the information processing apparatus 100 with the other information processing apparatus 100 (step S205), the data block registration process ends. In the process of step S205, the contents of each hash chain of the attributes of customer A and store 1 in the information processing apparatus 100 and the contents of the history information 112 are combined with the contents of each attribute in the storage unit 110 of the other information processing apparatus 100. Copy to hash chain 111 and history information 112 . In the process of step S205, as in the process of step S202, the entire hash chain may be copied, or only the missing data blocks (including index values and hash values) may be copied (history The same applies to the information 112).

このように、トランザクションが発生する度に、図4に示すデータブロック登録処理が行われ、トランザクションデータが対象のハッシュチェーンに登録されることとなる。例えば、図6に示すように10個のトランザクションが発生した場合には、図4に示すデータブロック登録処理が10回行われ、取引を行った対象者の属性のハッシュチェーンにトランザクションデータが登録されることとなる。図7は、図6に示す10個のトランザクションについて図4に示すデータブロック登録処理が10回行われた場合におけるそれぞれのハッシュチェーンの登録内容を示している(履歴情報112における登録内容については、図11参照)。なお、図7に示す例では、理解を容易にするため、各データブロックに格納されているハッシュ値や分析用付加データについては省略している。 In this way, every time a transaction occurs, the data block registration process shown in FIG. 4 is performed, and the transaction data is registered in the target hash chain. For example, when 10 transactions occur as shown in FIG. 6, the data block registration process shown in FIG. The Rukoto. FIG. 7 shows the registration contents of each hash chain when the data block registration process shown in FIG. 4 is performed 10 times for the 10 transactions shown in FIG. See Figure 11). In the example shown in FIG. 7, hash values and analysis additional data stored in each data block are omitted for easy understanding.

具体的に、図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参照)。 Specifically, the transaction data indicating that customer A purchased 1000 coins at store 1 corresponding to the first transaction in FIG. It is registered in data block (1) in the hash chain of A's attribute and in data block (1) in the hash chain of store 1's attribute. Transaction data corresponding to the second transaction shown in FIG. 6, in which customer A made a purchase of 100 coins at store 1, is obtained by performing the data block registration process shown in FIG. is registered in the data block (2) in the hash chain of the attribute of store 1 and in the data block (2) in the hash chain of the store 1 attribute. Then, the transaction data indicating that customer B purchased 400 coins at store 2 corresponding to the third transaction in FIG. It is registered in the data block (1) in the attribute hash chain and in the data block (1) in the store 2 attribute hash chain. In this way, by performing the data block registration process the number of times corresponding to the number of transactions, each transaction data is linked to the hash chain of the corresponding attribute (the same applies to the fourth and subsequent transactions in FIG. 6). . Also, correspondingly, each transaction data is also registered in the history information 112 (see FIG. 11).

なお、図6に示すように、この例では、顧客Aに対してクーポンが発行された例を示しており(図6に示す6つ目のトランザクション)、このトランザクションデータについても、図4に示すデータブロック登録処理にてデータブロックに登録されることとなる。その場合には、図4のステップS203およびステップS204にて顧客Aがクーポンを取得したことを示すトランザクションデータが新たなデータブロックに登録されればよい。具体的には、ステップS203およびS204にてクーポン取得のトランザクションデータであるかを判定し、クーポン取得のトランザクションデータである場合にその旨を登録すればよい。なお、図7に示すように、当該クーポン取得のトランザクションデータには、「From」にクーポンを発行した者のアドレスが、および「To」にはクーポンを受け取った顧客のアドレスが登録され、価値内容としてクーポンである事が登録される。なお、この他にも、例えば、割引金額や当該クーポンを使用可能な商品の情報が分析用付加データとして含まれていてもよい。すなわち、クーポンであること、およびクーポンを受け取った顧客および発行した者を特定可能な内容を含むトランザクションデータであれば、その他の情報が含まれて登録されてもよい。また、価値内容として割引金額が登録され、分析用付加データとしてクーポンであることを特定する情報が登録されるなど、クーポン取得のトランザクションデータの登録形式は、必要な情報が含まれてさえいれば任意であってよい。 As shown in FIG. 6, this example shows an example in which a coupon is issued to customer A (the sixth transaction shown in FIG. 6), and this transaction data is also shown in FIG. It will be registered in the data block in the data block registration process. In that case, the transaction data indicating that the customer A acquired the coupon in steps S203 and S204 of FIG. 4 should be registered in a new data block. Specifically, in steps S203 and S204, it is determined whether the transaction data is coupon acquisition transaction data, and if the transaction data is coupon acquisition transaction data, that effect is registered. As shown in FIG. 7, in the transaction data for acquiring the coupon, the address of the person who issued the coupon is registered in "From" and the address of the customer who received the coupon is registered in "To". is registered as a coupon. In addition to this, for example, the discount amount and information on products for which the coupon can be used may be included as additional data for analysis. That is, as long as the transaction data includes the fact that it is a coupon and the content that can identify the customer who received the coupon and the person who issued the coupon, other information may be included and registered. In addition, the registration format of transaction data for coupon acquisition, such as registering the discount amount as value content and registering information specifying the coupon as additional data for analysis, as long as the necessary information is included. can be arbitrary.

以上がハッシュチェーン登録装置として機能した場合における情報処理装置100の動作である。続いてデータ統計装置として機能した場合における情報処理装置100の動作について、図8~図12を参照して説明する。なお、理解を容易にするため、以下の例では、図6示す10個のトランザクションが発生し、各トランザクションに対応して10回のデータ登録処理が行われ、図7に示すように各ハッシュチェーンのデータブロックが登録されているものとして、以下説明する。 The above is the operation of the information processing device 100 when functioning as a hash chain registration device. Next, the operation of the information processing device 100 when functioning as a data statistics device will be described with reference to FIGS. 8 to 12. FIG. For ease of understanding, in the following example, 10 transactions shown in FIG. 6 are generated, data registration processing is performed 10 times corresponding to each transaction, and each hash chain is shown in FIG. The following description assumes that the data blocks of are registered.

図8は、確認処理の一例を示すフローチャートである。当該確認処理は、ユーザの入出力部130に対する操作(入力操作)や、端末C~端末Gから受信した要求(確認要求)に基づいて開始される。確認処理は、各属性のハッシュチェーン111や履歴情報112から所望されたデータブロックを取得し、店舗毎の売り上げの集計や顧客リストなどを統計情報としてグラフや表などの図にて表示することで、ユーザによる認識や分析を容易にするための処理である。 FIG. 8 is a flowchart illustrating an example of confirmation processing. The confirmation process is started based on a user's operation (input operation) on the input/output unit 130 or a request (confirmation request) received from terminals C to G. FIG. The confirmation process acquires the desired data block from the hash chain 111 of each attribute and the history information 112, and displays the total sales for each store, the customer list, etc. as statistical information in graphs, tables, etc. , is a process for facilitating recognition and analysis by the user.

確認処理を開始すると、情報処理装置100は、データ取得部124の機能により、まず、ハッシュチェーンが指定されているか否かを判定する(ステップS301)。ステップS301では、入力操作や確認要求に含まれる要求種別にてハッシュチェーンが指定されているか否かを判定することで、ハッシュチェーンが指定されているか否かを判定する。要求種別は、ユーザの所望する表示内容の種類を指定するもので、例えば、指定店舗の売り上げの集計、顧客リスト、指定期間における全店舗の売り上げ比較、またはクーポン配布前後の推移などといったように予め複数設定されている。また、この実施の形態では、要求種別に応じてハッシュチェーンを指定するか否かが予め設定されている。より具体的には、時間的要素を含まない要求種別についてはハッシュチェーンを指定し、そうでない要求種別についてはハッシュチェーンを指定せず、履歴情報112を指定するよう設定されている。なお、ハッシュチェーンの指定の有無の設定はユーザによる操作により変更可能であってもよいし、入力操作時や確認要求時に選択可能であってもよい。そのため、ステップS301では、要求種別にてハッシュチェーンが指定されているか否かを判定する。なお、予めハッシュチェーンを指定する必要のある要求種別である場合には、ハッシュチェーンが指定されているか否かではなく、要求種別がいずれの要求種別であるかにより、ハッシュチェーンが指定されているか否かを判定してもよい。また、要求種別についても、ユーザによる操作にて新たに追加、変更、削除が可能となっている。 When the confirmation process is started, the information processing apparatus 100 first determines whether or not a hash chain is designated by the function of the data acquisition unit 124 (step S301). In step S301, it is determined whether or not a hash chain is specified by determining whether or not a hash chain is specified by the request type included in the input operation or confirmation request. The request type designates the type of display content desired by the user. Multiple settings. Also, in this embodiment, whether or not to specify a hash chain is set in advance according to the request type. More specifically, the hash chain is specified for request types that do not include a temporal element, and the history information 112 is specified without specifying the hash chain for other request types. The setting of whether or not to designate a hash chain may be changed by an operation by the user, or may be selectable at the time of an input operation or a confirmation request. Therefore, in step S301, it is determined whether or not a hash chain is specified in the request type. If the request type requires a hash chain to be specified in advance, it does not depend on whether or not the hash chain is specified, but on which request type the hash chain is specified. It may be determined whether Also, request types can be newly added, changed, or deleted by the user's operation.

ステップS301にてハッシュチェーンが指定されていると判定した場合(ステップS301;Yes)、情報処理装置100は、データ取得部124の機能により、指定された属性のハッシュチェーンから対象のトランザクションデータ(対象データ)を取得する(ステップS302)。ステップS302では、入力操作や確認要求に含まれる要求種別にて指定された属性のハッシュチェーンから、対象のトランザクションデータ(対象データ)を取得する。具体的に、入力操作や確認要求に含まれる要求種別が売り上げの集計であり、指定されたハッシュチェーンの属性が店舗1である場合を例に説明すると、ステップS302では、店舗1の属性のハッシュチェーンに含まれるデータブロックからトランザクションデータを全て取得する。 If it is determined in step S301 that a hash chain is specified (step S301; Yes), the information processing apparatus 100 uses the function of the data acquisition unit 124 to extract the target transaction data (target data) is obtained (step S302). In step S302, the target transaction data (target data) is acquired from the hash chain of the attribute specified by the request type included in the input operation or confirmation request. Specifically, a case where the request type included in the input operation or confirmation request is total sales and the specified hash chain attribute is store 1 will be described as an example. Get all transaction data from the data blocks included in the chain.

一方、ステップS301にてハッシュチェーンが指定されていないと判定した場合(ステップS301;No)、情報処理装置100は、データ取得部124の機能により、履歴情報112から対象のトランザクションデータ(対象データ)を取得する(ステップS303)。ステップS303では、入力操作や確認要求に含まれる要求種別にて指定された期間のトランザクションデータを履歴情報112から取得する。具体的に、入力操作や確認要求に含まれる要求種別が、1週目(例えば1月1日~1月7日)と2週目(例えば1月8日~1月15日)の全店舗の売り上げ比較である場合を例に説明すると、ステップS303では、履歴情報112における各トランザクションデータのうち、1週目と2週目に対応するトランザクションデータを取得する。 On the other hand, if it is determined in step S301 that no hash chain is designated (step S301; No), the information processing apparatus 100 uses the function of the data acquisition unit 124 to extract the target transaction data (target data) from the history information 112. is obtained (step S303). In step S303, the transaction data for the period specified by the input operation or the request type included in the confirmation request is acquired from the history information 112. FIG. Specifically, all stores whose request types included in input operations and confirmation requests are the first week (for example, January 1st to January 7th) and the second week (for example, January 8th to January 15th) , the transaction data corresponding to the first week and the second week are obtained from among the transaction data in the history information 112 in step S303.

ステップS302またはステップS303の処理を実行した後、情報処理装置100は、データ取得部124の機能により、ステップS302またはステップS303にて取得したデータを再配置する(ステップS304)。ステップS304にて行われる再配置には、詳しくは後述するが、例えば、売り上げの合計を算出する処理やコイン収入と現金収入とを仕分けする処理(図9(A)、(B)参照)、指定した店舗のハッシュチェーンから取得したトランザクションデータを顧客毎に分類する処理(図10(A)参照)などが含まれる。 After executing the process of step S302 or step S303, the information processing apparatus 100 rearranges the data acquired in step S302 or step S303 by the function of the data acquisition unit 124 (step S304). Details of the rearrangement performed in step S304 will be described later. This includes processing for classifying transaction data acquired from the hash chain of the specified store by customer (see FIG. 10A).

ステップS304の処理を実行した後、情報処理装置100は、グラフ生成部125の機能により、入力操作や確認要求に含まれる要求種別に対応する内容のグラフや表、もしくはその両方といったように図を出力し(ステップS305)、確認処理を終了する。具体的に、入力操作や確認要求に含まれる要求種別が売り上げの集計であり、指定されたハッシュチェーンの属性が店舗1である場合を例に説明すると、ステップS305では、店舗1の売り上げの棒グラフを生成して入出力部130や、端末C~端末Gの入出力部に出力する。具体的に、ユーザの入出力部130に対する操作(入力操作)が行われ当該確認処理が行われた場合には、入出力部130へ出力し、確認要求を受信したことにより当該確認処理が行われた場合には、確認要求の送信元の入出力部へ出力する。 After executing the process of step S304, the information processing apparatus 100 uses the function of the graph generating unit 125 to generate a diagram such as a graph or table, or both, corresponding to the request type included in the input operation or confirmation request. Output (step S305) and end the confirmation process. Specifically, a case where the request type included in the input operation or confirmation request is total sales and the specified hash chain attribute is store 1 will be described as an example. is generated and output to the input/output unit 130 and the input/output units of the terminals C to G. Specifically, when the user performs an operation (input operation) on the input/output unit 130 and the confirmation process is performed, the confirmation process is performed by outputting to the input/output unit 130 and receiving the confirmation request. If the confirmation request is received, it is output to the input/output unit that sent the confirmation request.

このような確認処理が行われることで、ユーザの所望する要求種別に対応するグラフや表などの図が表示されることとなり、当該ユーザによる認識や分析を容易にすることが可能となる。 By performing such confirmation processing, a diagram such as a graph or a table corresponding to the type of request desired by the user is displayed, thereby facilitating recognition and analysis by the user.

続いて確認処理が実行された場合における具体例について説明する。図9は、要求種別として、売り上げ集計が指定された場合の例を示している。より具体的には、店舗1の属性のハッシュチェーンを指定した上で、売り上げ集計の要求種別を指定して確認処理を行った場合における実行例を示している。 Next, a specific example when confirmation processing is executed will be described. FIG. 9 shows an example in which sales total is specified as the request type. More specifically, an execution example is shown in which the hash chain of the attribute of the store 1 is specified, and then the request type for total sales is specified and the confirmation process is performed.

情報処理装置100は、確認処理を開始すると、当該要求種別に店舗1の属性のハッシュチェーンが指定されていることから、図8のステップS301にてYesと判定し、ステップS302の処理において、図7に示す店舗1(アドレス:XX)のハッシュチェーンに含まれるデータブロック(1)~(3)に含まれるトランザクションデータを取得する。 When the confirmation process is started, the information processing apparatus 100 determines Yes in step S301 of FIG. Acquire the transaction data included in the data blocks (1) to (3) included in the hash chain of store 1 (address: XX) shown in 7.

そして、図8のステップS304の処理にて図9(A)および(B)に示すように、取得したトランザクションデータのうち、当該店舗1が「From」となっているトランザクションデータと、「To」となっているトランザクションデータとに分類することで、コイン収入と現金収入とを仕分けするとともに、価値を集計する。 Then, as shown in FIGS. 9A and 9B in the processing of step S304 in FIG. By classifying into the transaction data, the coin income and the cash income are sorted, and the value is totaled.

その後、ステップS305の処理にて図9(C)に示すように、集計結果をコイン収入と現金収入とに分けて棒グラフとして生成し、表示する。なお、図示する例では棒グラフを生成することとしているが、棒グラフに限られず、円グラフや折れ線グラフなど、任意のグラフであってよいし、ユーザが選択できるようにしてもよい。なお、図9に示す例では、店舗1から(From:XX)顧客1へ(To:01)1000のコインが移動した(価値:1000)ことを現金収入としているが、例えば、銀行など金融機関へ支払いを行った場合(店舗1から銀行へコインを移動させた場合)については、価値が減少したものとし、支出として扱うようにしてもよい。 After that, in the process of step S305, as shown in FIG. 9C, the tabulated result is generated as a bar graph for coin income and cash income, and displayed. Although a bar graph is generated in the illustrated example, it is not limited to a bar graph, and may be an arbitrary graph such as a pie chart or a line graph, or may be selected by the user. In the example shown in FIG. 9, cash income is the transfer of 1000 coins (value: 1000) from store 1 (From: XX) to customer 1 (To: 01). (when the coin is moved from the store 1 to the bank), the value may be reduced and treated as an expense.

また、図10は、要求種別として顧客リストが指定された場合の例を示している。より具体的には、店舗1および2の属性のハッシュチェーンを指定した上で、顧客リストの要求種別を指定して確認処理を行った場合における実行例を示している。 Also, FIG. 10 shows an example in which a customer list is designated as the request type. More specifically, an execution example is shown in which the hash chains of the attributes of stores 1 and 2 are specified, and then the request type of the customer list is specified and confirmation processing is performed.

この場合、情報処理装置100は、確認処理を開始すると、当該要求種別に店舗1および2の属性のハッシュチェーンが指定されていることから、図8のステップS301にてYesと判定し、ステップS302の処理において、図7に示す店舗1(アドレス:XX)のハッシュチェーンに含まれるデータブロック(1)~(3)を取得するとともに、図7に示す店舗2(アドレス:YY)のハッシュチェーンに含まれるデータブロック(1)~(6)を取得する。 In this case, when starting the confirmation process, the information processing apparatus 100 determines Yes in step S301 of FIG. 7, the data blocks (1) to (3) included in the hash chain of store 1 (address: XX) shown in FIG. 7 are acquired, and the hash chain of store 2 (address: YY) shown in FIG. Get the contained data blocks (1)-(6).

そして、図8のステップS304の処理にて図10(A)に示すように、取得した店舗1と2のトランザクションデータを、顧客毎に分類して再配置する。その後、ステップS305の処理にて、図10(B)に示すように、店舗1の顧客と店舗2の顧客が視認して容易に把握可能な態様となるよう、顧客リストの図を生成し、表示する。なお、図示する例ではベン図を生成するとしているが、例えば、店舗1のみの顧客、店舗2のみの顧客、店舗1および2の顧客、といった項目別に表を生成するようにしてもよい。 Then, in the process of step S304 in FIG. 8, as shown in FIG. 10A, the acquired transaction data of stores 1 and 2 are classified and rearranged for each customer. After that, in the process of step S305, as shown in FIG. 10B, a diagram of the customer list is generated so that the customer of the store 1 and the customer of the store 2 can visually recognize and easily understand, indicate. In the illustrated example, a Venn diagram is generated, but a table may be generated for each item, such as customers of store 1 only, customers of store 2 only, and customers of stores 1 and 2, for example.

このように、この実施の形態における情報処理装置100は、属性毎のハッシュチェーンでトランザクションデータを管理するとともに、取引を行った当事者それぞれに対応する属性のハッシュチェーンに、同一内容のトランザクションデータを登録する。したがって、売り上げの集計や顧客リストの作成など、登録されたトランザクションデータを活用する際に、指定された属性のハッシュチェーンに含まれるデータブロックを取得すればよく、必要なトランザクションデータの格納先の特定が容易であり、トランザクションデータを好適に検索することができる。 In this way, the information processing apparatus 100 in this embodiment manages transaction data with hash chains for each attribute, and registers transaction data with the same content in the hash chains of attributes corresponding to each party who has made a transaction. do. Therefore, when using the registered transaction data, such as summarizing sales or creating a customer list, it is sufficient to obtain the data block included in the hash chain of the specified attribute, and specify the storage location of the necessary transaction data. is easy, and the transaction data can be preferably retrieved.

次に、確認処理が実行された場合における具体例として、履歴情報112が指定された場合、すなわち、時間的要素を含む要求種別が指定され、いずれの属性のハッシュチェーンも指定されていない場合について説明する。なお、以下の例では、図6示す10個のトランザクションが発生し、各トランザクションに対応して10回のデータ登録処理が行われ、図11に示すように各トランザクションデータが履歴情報112に登録されているものとして、以下説明する。 Next, as a specific example when the confirmation process is executed, when the history information 112 is specified, that is, when a request type including a temporal element is specified and no attribute hash chain is specified explain. In the following example, 10 transactions shown in FIG. 6 occur, data registration processing is performed 10 times corresponding to each transaction, and each transaction data is registered in the history information 112 as shown in FIG. It is explained below assuming that

図12は、確認処理における要求種別として、クーポン配布前後の推移が指定された場合の確認処理の実行例を示している。より具体的には、クーポン配布前1週間とクーポン配布後1週間における、クーポンを受け取った顧客グループとクーポンを受け取らなかった顧客グループの売り上げの推移を指定して確認処理を行った場合における実行例を示している。 FIG. 12 shows an execution example of confirmation processing when transition before and after coupon distribution is specified as a request type in confirmation processing. More specifically, this is an execution example in which confirmation processing is performed by specifying changes in sales for a group of customers who received coupons and a group of customers who did not receive coupons, one week before coupon distribution and one week after coupon distribution. is shown.

情報処理装置100は、確認処理を開始すると、当該要求種別にハッシュチェーンが指定されていないことから、図8のステップS301にてNoと判定し、ステップS303の処理において、クーポンが配布されたことを示すデータブロックを特定し、図11に示すように、期間Aに対応するデータブロック(データブロック(1)~(5))に含まれるトランザクションデータと、期間Bに対応するデータブロック(データブロック(7)~(10))に含まれるトランザクションデータを、それぞれ対象データとして履歴情報112から取得する。なお、この例では、理解を容易にするため、店舗1および2におけるコイン収入を示すトランザクションデータのみを用いた場合(トランザクション(1)、(3)および(9)以外のトランザクションデータを用いた場合)、すなわち、コイン収入に関するトランザクションデータのみ取得した場合を例に、以下説明する。 When starting the confirmation process, the information processing apparatus 100 determines No in step S301 of FIG. , and as shown in FIG. 11, the transaction data included in the data block (data blocks (1) to (5)) corresponding to period A and the data block corresponding to period B (data block The transaction data included in (7) to (10) are obtained from the history information 112 as target data. In this example, for ease of understanding, only transaction data indicating coin income at stores 1 and 2 are used (when transaction data other than transactions (1), (3) and (9) are used). ), that is, a case where only transaction data relating to coin income is obtained will be described below as an example.

図8のステップS304の処理にて、取得したデータブロック(2)、(4)および(5)に含まれるトランザクションデータを、クーポンが配布された顧客(顧客A)とそうでない顧客(顧客B)に分類するとともに、取得したデータブロック(7)~(8)および(10)に含まれるトランザクションデータについても同様に、クーポンが配布された顧客(顧客A)とそうでない顧客(顧客BおよびC)に分類する。具体的には、クーポンが配布されたことを示すデータブロックを特定した際に、いずれの顧客にクーポンが配布されたかを記憶し(複数ある場合には複数記憶し)、当該クーポンを受け取った顧客とそうでない顧客とに分類する。なお、クーポンが配布された顧客には、クーポンを配布した者との間に特別なトランザクションが発生していることから、クーポンを配布した者のハッシュチェーンを検索してクーポンを配布した者を特定し、クーポンが配布された顧客(顧客A)とそうでない顧客(顧客BおよびC)を分類してもよい。 In the process of step S304 in FIG. 8, the transaction data contained in the acquired data blocks (2), (4) and (5) are analyzed by the customer (customer A) to whom the coupon was distributed and the customer (customer B) to whom the coupon was not distributed. Similarly, the transaction data contained in the acquired data blocks (7) to (8) and (10) are also divided into the customer (customer A) to whom the coupon was distributed and the customer (customers B and C) to whom the coupon was not distributed. classified into Specifically, when a data block indicating that a coupon has been distributed is specified, to which customer the coupon has been distributed is stored (if there are more than one, multiple stores are stored), and the customer who received the coupon is stored. and customers who are not. In addition, since a special transaction has occurred with the person who distributed the coupon to the customer to whom the coupon was distributed, the person who distributed the coupon can be identified by searching the hash chain of the person who distributed the coupon. Then, customers to whom coupons have been distributed (customer A) and customers to whom coupons have not been distributed (customers B and C) may be classified.

ステップ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を平均値として算出する。なお、この例では、理解を容易にするため、コイン収入についてのみを用いて平均を算出する例を示しているが、現金収入について、も別途現金売り上げとして平均を算出してもよい。また、平均でなくとも、中央値であってもよいし、例えば、取引回数が多い顧客ほど重みが高くなるような所定の演算方法により、クーポンを受け取った顧客グループとそうでない顧客グループの売り上げを算出してもよい。 In the process of step S304, after classifying the transaction indicating the coin income as to whether or not the coupon is distributed, in the process of step S304, the period A and the period B of the customer who received the coupon (the coupon was distributed) Each average value is calculated from the total sales for each and the total sales for the period A and the period B for the customers who did not receive the coupon. Specifically, in this example, as a customer who received the coupon, from the total value of customer A's sales in period A and period B, 200 sales in period A and 500 sales in period B are calculated as average values, and the coupon As customers who have not received Calculated as an average value. In this example, in order to facilitate understanding, an example is shown in which the average is calculated using only the coin income, but the average of the cash income may also be calculated separately as cash sales. In addition, the median value may be used instead of the average. For example, the sales of the customer group who received the coupon and the customer group who did not are calculated by a predetermined calculation method such that the customer who has more transactions has a higher weight. can be calculated.

その後、ステップS305の処理にて、図12(A)および(B)に示すように、クーポンを受け取った顧客グループ(顧客A)の売り上げの推移と、クーポンを受け取っていない顧客グループ(顧客B、顧客Cの平均)の売り上げの推移を示す棒グラフを生成し、表示する。なお、棒グラフに限られない点は図9に示す場合と同様である。この例では、図示するように、クーポンを受け取った顧客グループについては、クーポン配布前の期間Aよりもクーポン配布後の期間Bの方が、売り上げが大幅に増加しているのに対し、クーポンを受け取っていない顧客グループについては、クーポン配布前の期間Aとクーポン配布後の期間Bとで売り上げに大きな変化がないことがわかる。これにより、ユーザは、クーポンを発行した場合における効果測定を容易に行うことができる。 After that, in the process of step S305, as shown in FIGS. 12A and 12B, the change in sales of the customer group (customer A) who received the coupon and the customer group who did not receive the coupon (customer B, Generate and display a bar graph showing changes in sales for customer C). It should be noted that it is the same as the case shown in FIG. 9 in that it is not limited to the bar graph. In this example, as shown in the figure, for the customer group who received the coupon, sales increased significantly in the period B after the coupon was distributed compared to the period A before the coupon was distributed. As for the customer group that did not receive the coupon, it can be seen that there is no significant change in sales between the period A before the coupon distribution and the period B after the coupon distribution. This allows the user to easily measure the effect of issuing the coupon.

このように、時間的要素を含む要求種別の場合には、履歴情報112から対象データを取得し、対象データを再配置することで、ブロック上に格納されたトランザクションデータを好適に検索することができる。また、この実施の形態によれば、時間的要素を含む否か、換言すると所定の属性のハッシュチェーンが指定されていない場合と指定されている場合とで、対象データの取得先を変更する。したがって、ユーザの所望する内容に応じて異なる種類のハッシュチェーンから対象データを検索可能であり、ブロック上に格納されたトランザクションデータを好適に検索することができる。 In this way, in the case of a request type that includes a temporal element, by obtaining target data from the history information 112 and rearranging the target data, it is possible to suitably search for transaction data stored in blocks. can. Further, according to this embodiment, the source of target data is changed depending on whether or not a temporal element is included, in other words, whether a hash chain with a predetermined attribute is specified or not. Therefore, target data can be retrieved from different types of hash chains according to the content desired by the user, and transaction data stored in blocks can be retrieved favorably.

(変形例)
なお、この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、情報処理装置100では、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも1つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせても良い。
(Modification)
The present invention is not limited to the above embodiments, and various modifications and applications are possible. For example, the information processing apparatus 100 does not have to have all the technical features shown in the above embodiments. It may have a configuration of parts. Moreover, at least a part of each of the following modified examples may be combined.

上記実施の形態では、顧客がコインのみにより買い物を行う場合について示したが、これは一例である。例えば、顧客が店舗の商品を購入する際に、顧客のコイン残高を確認し、残高不足である場合には、コインに加えて現金を用いて商品購入を行うことがあってもよい。具体的に、図4のステップS203の処理の前に、顧客のコイン残高を確認する処理を実行してもよく、その場合には、取引を行う顧客に対応するハッシュチェーンに含まれるトランザクションデータを参照することで、当該顧客のコイン残高を確認すればよい。例えば、図6に示す7つ目のトランザクション(顧客Aが店舗2で500コイン分の買い物をした)が発生した際におけるデータブロック登録処理において、顧客Aの属性のハッシュチェーンに含まれるデータブロック(図7のデータブロック(1)~(4))のトランザクションデータを集計することで、顧客Aの残高を確認すればよい。そして、残高が足りない場合には、不足分を現金収入として処理すればよい。この例において、顧客Aのコイン残高が300であった場合には、コイン300、現金200として500の商品を購入した旨のトランザクションデータが登録されればよい。このように、顧客の属性のハッシュチェーンに含まれる全てのトランザクションデータを集計すれば、当該顧客の残高を容易に取得することができる。よって、ブロック上に格納されたトランザクションデータを好適に検索することができる。 In the above embodiment, the case where the customer makes a purchase using only coins has been described, but this is just an example. For example, when a customer purchases a product at a store, the customer's coin balance may be checked, and if the balance is insufficient, cash may be used in addition to coins to purchase the product. Specifically, before the process of step S203 in FIG. 4, a process of confirming the customer's coin balance may be executed. By referring to it, the customer's coin balance can be confirmed. For example, in the data block registration process when the seventh transaction (customer A purchases 500 coins at store 2) shown in FIG. The balance of customer A can be confirmed by aggregating the transaction data of data blocks (1) to (4) in FIG. Then, if the balance is insufficient, the shortfall can be treated as cash income. In this example, if customer A's coin balance is 300, transaction data indicating that he purchased 500 items with 300 coins and 200 cash should be registered. In this way, by aggregating all the transaction data included in the customer's attribute hash chain, it is possible to easily obtain the customer's balance. Therefore, the transaction data stored on the block can be retrieved favorably.

また、上記実施の形態では、顧客と店舗の2者での取引について説明したが、例えば、3者間取引であってもよく、この場合には、3者それぞれの属性のハッシュチェーンに当該トランザクションデータとして共通内容のデータがそれぞれのデータブロックに登録されればよい。また、上記実施の形態におけるトランザクションデータには、購入した商品を特定するための情報が含まれていてもよい。これによれば、店舗毎の売れ筋商品の分析を行うことができる。 In addition, in the above embodiment, a transaction between two parties, a customer and a store, was explained, but for example, a transaction among three parties is also possible. Data having common contents may be registered in each data block. Further, the transaction data in the above embodiment may contain information for identifying the purchased product. According to this, it is possible to analyze the best-selling products for each store.

また、上記実施の形態では、図12に示すように、クーポン配布前後の売り上げの推移によりクーポン配布の効果測定を行う例を示したが、これは一例である。例えば、当該クーポン配布後に、配布された顧客がクーポンを使用して買い物をしたことを示すトランザクションデータを登録することにより、配布したクーポンの使用割合を確認することも可能である。具体的に、顧客Aが500コインの商品を、50コイン引きのクーポンを使って購入したことを示すトランザクションデータを、図4のステップS203の処理にて、対象のハッシュチェーン、および履歴情報112に登録すればよい(履歴情報112のみであってもよい)。そして、図8のステップ303の処理において、クーポンが配布されてから、ユーザに指定された期間に当該クーポンを使用した顧客とそうでない顧客のトランザクションデータを取得すればよい。このように、クーポンの使用状況をハッシュチェーン等に登録することで、使用状況の確認を容易にすることができる。さらに、複数のクーポンを配布した場合に、クーポンを識別するクーポンIDを分析用付加データとして登録しておけば、いずれのクーポンが使用されたか、といったことを分析することも可能である。 Further, in the above-described embodiment, as shown in FIG. 12, an example was shown in which the effect of coupon distribution was measured based on the change in sales before and after coupon distribution, but this is just an example. For example, after the coupon is distributed, it is possible to check the usage rate of the distributed coupon by registering transaction data indicating that the customer who received the coupon used the coupon for shopping. Specifically, transaction data indicating that customer A purchased a product for 500 coins using a 50-coin discount coupon is stored in the target hash chain and history information 112 in the processing of step S203 in FIG. All that is necessary is to register it (only the history information 112 may be used). Then, in the process of step 303 in FIG. 8, the transaction data of the customers who used the coupon and those who did not during the period specified by the user after the coupon was distributed can be obtained. In this way, by registering the coupon usage status in the hash chain or the like, it is possible to easily check the usage status. Furthermore, when a plurality of coupons are distributed, it is possible to analyze which coupon has been used by registering the coupon ID that identifies the coupon as additional data for analysis.

また、上記実施の形態では、図12に示すように、クーポンを受け取った顧客グループとクーポンを受け取らなかった顧客グループの売り上げの推移を示したが、これは一例である。例えば、当該クーポンが店舗2でのみ使用可能なクーポンであった場合(分析用付加データとしてその旨が登録されている場合)、店舗1と店舗2とでそれぞれ期間Aと期間Bとの売り上げを集計することで、顧客Aが通常は店舗1で買い物をするが、クーポンが使用可能な場合には店舗2にて買い物をする、ということが容易に把握できる。 Moreover, in the above-described embodiment, as shown in FIG. 12, the change in sales of the customer group that received the coupon and the customer group that did not receive the coupon were shown, but this is an example. For example, if the coupon is a coupon that can only be used at store 2 (if that effect is registered as additional data for analysis), the sales at stores 1 and 2 during period A and period B, respectively, are calculated. By summarizing, it can be easily understood that customer A normally shops at store 1, but shop at store 2 when the coupon can be used.

このように、トランザクションデータの他、分析用付加データとしてマーケティングに必要な情報を含めて履歴情報112へ登録することで、様々な活用が可能となる。すなわち、分析用付加データを含めた検索およびトランザクションデータ検索を好適に行うことが可能となり、マーケティングにおける効果を発揮することができる。 In this way, by registering in the history information 112 including information necessary for marketing as additional data for analysis in addition to the transaction data, various utilization becomes possible. That is, it is possible to suitably perform a search including the additional data for analysis and a transaction data search, thereby exerting an effect in marketing.

なお、上記実施の形態における履歴情報112が属性に関わらず全てのトランザクションデータが格納されたハッシュチェーン(属性のないハッシュチェーン)であり、他の情報処理装置100と同期される例を示したが、これは一例である。履歴情報112は、ハッシュチェーンにより管理されるものに限られず、例えば、ネットワーク210を介して通信可能に接続されたサーバに、キャッシュとして格納されていてもよい。 Although the history information 112 in the above embodiment is a hash chain (hash chain without attributes) in which all transaction data is stored regardless of attributes, and is synchronized with another information processing device 100, an example has been shown. , which is an example. The history information 112 is not limited to being managed by hash chains, and may be stored as a cache in a server communicatively connected via the network 210, for example.

また、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協同により実現する場合等には、OS以外の部分のみを媒体に格納してもよい。 Further, when the above-described functions are realized by sharing the responsibility between an OS (Operating System) and an application, or by cooperation between the OS and an application, only parts other than the OS may be stored in the medium.

また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。 It is also possible to superimpose a program on a carrier wave and distribute it via a communication network. For example, the program may be posted on a bulletin board (BBS, Bulletin Board System) on a communication network and distributed via the network. These programs may be activated and executed in the same manner as other application programs under the control of the operating system so that the above processing can be executed.

1 情報処理システム、100A~B 情報処理装置、100C~100G 端末、110 記憶部、111 各属性のハッシュチェーン、112 履歴情報、113 120 制御部、121 初期登録部、122 同期処理部、123 データブロック登録部、124 データ取得部、125 グラフ生成部、130 入出力部、140 通信部、210 ネットワーク 1 information processing system 100A-B information processing device 100C-100G terminal 110 storage unit 111 hash chain of each attribute 112 history information 113 120 control unit 121 initial registration unit 122 synchronization processing unit 123 data block Registration Unit 124 Data Acquisition Unit 125 Graph Generation Unit 130 Input/Output Unit 140 Communication Unit 210 Network

Claims (6)

当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納手段を備え、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納手段は、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする情報処理装置。
Data storage means for storing transaction data, which is the content of the transaction , in data blocks linked by a hash chain constructed in the network based on the occurrence of a transaction between parties ;
the hash chain is stored for each party to the transaction;
The data storage means stores the same transaction data in each data block linked by the hash chain corresponding to the parties of the transaction occurring between the parties .
An information processing device characterized by:
前記データ格納手段は、前記ハッシュチェーンとは異なる特別ハッシュチェーンで連結されるデータブロックに、発生した前記トランザクションの前記当事者に対応するか否かに関わらず、前記トランザクションデータを、発生した順に格納する、
ことを特徴とする請求項1に記載の情報処理装置。
The data storage means generates the transaction data in data blocks linked by a special hash chain different from the hash chain, regardless of whether they correspond to the parties of the generated transaction . store in order
The information processing apparatus according to claim 1, characterized by:
前記データ格納手段により格納した前記トランザクションデータを、ユーザの要求に基づいて前記ハッシュチェーンまたは前記特別ハッシュチェーンから検索する検索手段と、
前記検索手段で検索した検索結果に基づいて、前記ユーザの要求を満たす態様の図を生成する生成手段と、
前記生成手段で生成された図を表示する表示手段と、
をさらに備えることを特徴とする請求項2に記載の情報処理装置。
search means for searching the transaction data stored by the data storage means from the hash chain or the special hash chain based on a user's request;
generating means for generating a diagram of a mode that satisfies the user's request based on the search results retrieved by the searching means;
display means for displaying the diagram generated by the generating means;
3. The information processing apparatus according to claim 2, further comprising:
前記検索手段は、前記ユーザの要求に時間的要素が含まれる場合に、前記特別ハッシュチェーンから検索を行い、前記時間的要素が含まれない場合に、前記ハッシュチェーンから検索を行う、
ことを特徴とする請求項3に記載の情報処理装置。
The search means searches from the special hash chain if the user's request includes a temporal element, and searches from the hash chain if the temporal element is not included.
4. The information processing apparatus according to claim 3, characterized by:
情報処理装置における情報処理方法であって、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納ステップを実行し、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納ステップでは、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とする情報処理方法。
An information processing method in an information processing device,
Based on the occurrence of a transaction between parties , executing a data storage step of storing transaction data, which is the transaction content of the transaction, in data blocks connected by a hash chain constructed in the network,
the hash chain is stored for each party to the transaction;
In the data storing step, the same transaction data is stored in each data block linked by the hash chain corresponding to the parties of the transaction occurring between the parties .
An information processing method characterized by:
コンピュータを、
当事者間でトランザクションが発生したことに基づいて、ネットワーク内に構築されるハッシュチェーンで連結されるデータブロックに、前記トランザクションの取引内容であるトランザクションデータを格納するデータ格納手段として機能させ、
前記ハッシュチェーンは、前記トランザクションの当事者毎に記憶され、
前記データ格納手段は、当事者間で発生した前記トランザクションの前記当事者に対応する前記ハッシュチェーンで連結されるデータブロックそれぞれに、同一の前記トランザクションデータを格納する、
ことを特徴とするプログラム。
the computer,
Based on the occurrence of a transaction between parties , it functions as data storage means for storing transaction data, which is the transaction content of the transaction, in data blocks linked by a hash chain constructed in the network,
the hash chain is stored for each party to the transaction;
The data storage means stores the same transaction data in each data block linked by the hash chain corresponding to the parties of the transaction occurring between the parties .
A program characterized by
JP2018173967A 2018-09-18 2018-09-18 Information processing device, information processing method and program Active JP7253344B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018173967A JP7253344B2 (en) 2018-09-18 2018-09-18 Information processing device, information processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018173967A JP7253344B2 (en) 2018-09-18 2018-09-18 Information processing device, information processing method and program

Publications (2)

Publication Number Publication Date
JP2020046855A JP2020046855A (en) 2020-03-26
JP7253344B2 true JP7253344B2 (en) 2023-04-06

Family

ID=69899683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018173967A Active JP7253344B2 (en) 2018-09-18 2018-09-18 Information processing device, information processing method and program

Country Status (1)

Country Link
JP (1) JP7253344B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7375242B1 (en) 2023-03-29 2023-11-07 PayPay株式会社 Information processing device, information processing method, and information processing program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018007828A2 (en) 2016-07-08 2018-01-11 Kalypton International Limited Distributed transaction processing and authentication system
US20180173747A1 (en) 2016-12-19 2018-06-21 Swirlds, Inc. Methods and apparatus for a distributed database that enables deletion of events
JP2018116578A (en) 2017-01-19 2018-07-26 富士通株式会社 Information processing system, verification device, information processing method, verification method and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018007828A2 (en) 2016-07-08 2018-01-11 Kalypton International Limited Distributed transaction processing and authentication system
JP2019525685A (en) 2016-07-08 2019-09-05 カリプトン インターナショナル リミテッドKalypton International Limited Distributed transaction processing and authentication system
US20180173747A1 (en) 2016-12-19 2018-06-21 Swirlds, Inc. Methods and apparatus for a distributed database that enables deletion of events
JP2018116578A (en) 2017-01-19 2018-07-26 富士通株式会社 Information processing system, verification device, information processing method, verification method and program

Also Published As

Publication number Publication date
JP2020046855A (en) 2020-03-26

Similar Documents

Publication Publication Date Title
CN110337647A (en) Visual block chain browser
US11783370B2 (en) Graph-based compression of data records
CN104685490A (en) Adaptive gathering of structured and unstructured data system and method
US11379523B2 (en) Method and apparatus for implementing a search index generator
US8793236B2 (en) Method and apparatus using historical influence for success attribution in network site activity
WO2012045154A1 (en) System and method of capturing point-of-sale data and providing real-time advertising content
JP2019016024A (en) Transaction management method, transaction management system, transaction management device and transaction management program
CN111488616A (en) Method and device for realizing preplan machine of service data block chain
US20210049620A1 (en) Blockchain based mobile terminal e-commerce system and mobile terminal
JP7253344B2 (en) Information processing device, information processing method and program
US10268991B1 (en) Dynamic selection across cache
WO2022269989A1 (en) Information processing device, information processing method, and program
CN103038791A (en) Affiliate management device, affiliate management method, affiliate management program, and computer readable recording medium storing the program
JP6899647B2 (en) Data provision system, data provision method, and data provision program
JP7253410B2 (en) Information processing device, information processing method and program
JP2021022279A (en) Information processing apparatus, information processing method, and program
JP2020107263A (en) Receipt sharing system, control method, and program
JP2015197699A (en) Affiliated store provision data output system
JP7413442B2 (en) Appendix management system, appendix management program and appendix management method
JP7349547B1 (en) Computer systems and programs for securities companies that handle securities transactions
JP7287926B2 (en) Decision device, decision method and decision program
CN111488357A (en) Method and device for realizing digital account of service data block chain
JP2023177433A (en) Information processing system, method, and program
JP2023132703A (en) Computer system handling settlement information of credit card
KR20230140939A (en) Method of trading creative work based on non-fungible token

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230327

R150 Certificate of patent or registration of utility model

Ref document number: 7253344

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350