JP2019121220A - Information processing device, audit support method, and computer program - Google Patents

Information processing device, audit support method, and computer program Download PDF

Info

Publication number
JP2019121220A
JP2019121220A JP2018001214A JP2018001214A JP2019121220A JP 2019121220 A JP2019121220 A JP 2019121220A JP 2018001214 A JP2018001214 A JP 2018001214A JP 2018001214 A JP2018001214 A JP 2018001214A JP 2019121220 A JP2019121220 A JP 2019121220A
Authority
JP
Japan
Prior art keywords
transaction
data
goods
audit
apple
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.)
Granted
Application number
JP2018001214A
Other languages
Japanese (ja)
Other versions
JP7165386B2 (en
Inventor
弘 出口
Hiroshi Deguchi
弘 出口
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.)
Tokyo Institute of Technology NUC
Original Assignee
Tokyo Institute of Technology NUC
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 Tokyo Institute of Technology NUC filed Critical Tokyo Institute of Technology NUC
Priority to JP2018001214A priority Critical patent/JP7165386B2/en
Publication of JP2019121220A publication Critical patent/JP2019121220A/en
Application granted granted Critical
Publication of JP7165386B2 publication Critical patent/JP7165386B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

To improve the traceability of property to be a transaction object.SOLUTION: A transaction data storage device 106 stores transaction data including double entry bookkeeping data showing property transfer and compensation acquisition by using exchange algebra as transaction description of a first entity side, and double entry bookkeeping data showing property acquisition and compensation transfer by using exchange algebra as transaction description of a second entity side in association with a property ID in the case that the first entity sells the property to the second entity. A transaction management device 108 receives an audit request designating ID of certain property, and acquires a plurality of transaction data associated with the ID from the transaction data storage device 106. The transaction management device 108 generates property transaction chain data being data obtained by projecting elements about the property transaction from the sum of the plurality of transaction data, and generates data for supporting an audit about the transaction of the property identified by the ID designated with the audit request on the basis of the property transaction chain data.SELECTED DRAWING: Figure 9

Description

本発明はデータ処理技術に関し、特に情報処理装置、監査支援方法、およびコンピュータプログラムに関する。   The present invention relates to data processing technology, and more particularly to an information processing apparatus, an audit support method, and a computer program.

本発明者は、交換代数を適用して実物の取引を記録する手法を提案している(例えば特許文献1参照)。   The inventor has proposed a method of recording real transactions by applying exchange algebra (see, for example, Patent Document 1).

国際公開第2017/077920号International Publication No. 2017/077920

食品をはじめ多くの分野で、商品の安全性や、消費者の選択権に対する関心が高まっており、商品のトレーサビリティが注目されてきている。本発明者は、交換代数を用いて実物の取引を記録することにより、取引対象となる財のトレーサビリティを向上させることができると考えた。   In many fields including food, interest in product safety and consumer choice has increased, and product traceability has been attracting attention. The present inventor thought that the traceability of the goods to be traded can be improved by recording real transactions using exchange algebra.

本発明は本発明者の上記着想に基づきなされたものであり、1つの目的は、取引対象となる財のトレーサビリティを向上させることである。   The present invention has been made based on the above-described idea of the inventor, and one object is to improve the traceability of goods to be traded.

上記課題を解決するために、本発明のある態様の情報処理装置は、第1主体から第2主体へ財が販売された場合に、第1主体側の取引記述としての、財の移転と対価の獲得を交換代数を用いて示す複式簿記データと、第2主体側の取引記述としての、財の獲得と対価の移転を交換代数を用いて示す複式簿記データとを含む取引データを、財のIDと対応づけて記憶する記憶部にアクセス可能であり、或る財のIDを指定した監査要求を受け付ける監査要求受付部と、監査要求で指定されたIDに対応付けられた複数の取引データの和から、財の取引に関する要素を射影したデータである財取引連鎖データを生成し、財取引連鎖データに基づいて、監査要求で指定されたIDで識別される財の取引に関する監査を支援するデータを生成する監査部と、を備える。   In order to solve the above problems, an information processing apparatus according to an aspect of the present invention transfers goods as a transaction description on the side of the first entity and pays the goods when the goods are sold from the first entity to the second entity. Transaction data including double-entry bookkeeping data that indicates the acquisition of L using exchange algebra, and double-entry book data that indicates the acquisition of goods and transfer of consideration using exchange algebra as the transaction description of the second entity, An audit request receiving unit that can access a storage unit that stores in association with an ID and that receives an audit request specifying an ID of a certain item, and a plurality of transaction data items associated with the ID specified in the audit request Data that generates goods transaction chain data, which is data obtained by projecting elements related to goods transactions, from the sum, and based on the goods transaction chain data, data that supports audit on goods transactions identified by the ID specified in the audit request Audit to generate And, equipped with a.

本発明の別の態様は、監査支援方法である。この方法は、第1主体から第2主体へ財が販売された場合に、第1主体側の取引記述としての、財の移転と対価の獲得を交換代数を用いて示す複式簿記データと、第2主体側の取引記述としての、財の獲得と対価の移転を交換代数を用いて示す複式簿記データとを含む取引データを、財のIDと対応づけて記憶する記憶装置にアクセス可能なコンピュータが、或る財のIDを指定した監査要求を受け付けるステップと、監査要求で指定されたIDに対応付けられた複数の取引データの和から、財の取引に関する要素を射影したデータである財取引連鎖データを生成し、財取引連鎖データに基づいて、監査要求で指定されたIDで識別される財の取引に関する監査を支援するデータを生成するステップと、を実行する。   Another aspect of the present invention is an audit support method. In this method, when goods are sold from the first entity to the second entity, double-entry bookkeeping data indicating the transfer of goods and the acquisition of compensation using exchange algebra as a transaction description on the first entity side, and A computer capable of accessing a storage device which stores transaction data including transaction data including acquisition of goods and transfer of consideration using exchange algebra as transaction descriptions of two entities in association with the ID of the goods A step of accepting an audit request specifying an ID of a good, and a commodity transaction chain which is data obtained by projecting an element related to a transaction of a good from the sum of a plurality of transaction data associated with the ID designated in the audit request Generating data, and based on the goods transaction chain data, generating data to support an audit related to the trade of the good identified by the ID specified in the audit request.

なお、以上の構成要素の任意の組合せ、本発明の表現を、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。   Note that any combination of the above-described components, and one obtained by converting the expression of the present invention between a system, a program, a recording medium storing the program, and the like are also effective as an aspect of the present invention.

本発明によれば、取引対象となる財のトレーサビリティを向上させることができる。   According to the present invention, the traceability of goods to be traded can be improved.

売上伝票の例を示す図である。It is a figure showing an example of a sales slip. 前提技術2のデータ編集装置の機能構成を示すブロック図である。FIG. 18 is a block diagram showing a functional configuration of a data editing device of Prerequisite Technique 2. 会計型データを操作するためのユーザコードの一例を示す図である。It is a figure which shows an example of the user code for operating accounting type data. 図3のユーザコードに対応する実行コードを示す図である。It is a figure which shows the execution code corresponding to the user code of FIG. 図3のユーザコードに対応する実行コードを示す図である。It is a figure which shows the execution code corresponding to the user code of FIG. レコード型データを操作するためのユーザコードの一例を示す図である。It is a figure which shows an example of the user code for operating record type | mold data. 図5のユーザコードに対応する実行コードを示す図である。It is a figure which shows the execution code corresponding to the user code of FIG. 図5のユーザコードに対応する実行コードを示す図である。It is a figure which shows the execution code corresponding to the user code of FIG. データ編集装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of a data editing apparatus. 図8(a)と図8(b)は、価格表示による取引記述を示す図である。8 (a) and 8 (b) are diagrams showing transaction descriptions by price display. 図9(a)と図9(b)は、実物簿記を用いた取引記述を示す図である。9 (a) and 9 (b) are diagrams showing transaction descriptions using actual bookkeeping. 実施例の取引管理システムの構成を示す図である。It is a figure which shows the structure of the transaction management system of an Example. 図10の取引者装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the trader apparatus of FIG. 取引データコンテナの例を示す図である。FIG. 6 is a diagram showing an example of a transaction data container. 取引ハッシュコンテナの例を示す図である。FIG. 6 is a diagram showing an example of a transaction hash container. 図10の取引管理装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the transaction management apparatus of FIG. 取引データコンテナの例を示す図である。FIG. 6 is a diagram showing an example of a transaction data container. 取引ハッシュコンテナの例を示す図である。FIG. 6 is a diagram showing an example of a transaction hash container. 取引経路図の例を示す図である。It is a figure showing an example of a transaction route map. 流通過程で財が分割される取引の例を示す図である。It is a figure which shows the example of the transaction by which goods are divided | segmented in a distribution process. 流通過程で新たな財が生産される取引の例を示す図である。It is a figure which shows the example of the transaction in which a new good is produced in a distribution process.

(前提技術1)
本発明の実施の形態の構成を説明する前に、本実施の形態の前提となる交換代数について説明する。
(Prerequisite technology 1)
Before describing the configuration of the embodiment of the present invention, the exchange algebra on which the present embodiment is based will be described.

本発明者は、以下に示す2つのデータ構造により、企業等の組織における8〜9割のデータを表現することができると考えた。
1.多分類数値型(以下、「会計型データ」とも呼ぶ。)
データの値とデータの属性(以下、「基底」とも呼ぶ。)の組み合わせであり、データの値として数値が用いられ、データの属性として名称・単位・時間・主体が用いられる。例えば、40<現金,円>+30<ミカン,個>・・・と表現される。
2.多分類混合型(以下、「レコード型データ」とも呼ぶ。)
データの値と基底の組み合わせであり、データの値および基底には数値や数値以外の様々なリテラルが用いられる。例えば、55<年齢>+山田太郎<名前>+津軽<好きな果物>・・・と表現される。
以下では、主に会計型データについて詳細に説明する。
The inventor considered that eight to ninety percent of data in an organization such as a company can be represented by the two data structures shown below.
1. Multi-class type (hereinafter also referred to as "accounting type data")
A combination of data values and data attributes (hereinafter also referred to as “base”), numerical values are used as data values, and names, units, times, subjects are used as data attributes. For example, it is expressed as 40 <cash, yen> +30 <tanger, individual>.
2. Multi-class mixed type (hereinafter also referred to as "record type data")
It is a combination of data values and bases, and numbers and non-numeric literals are used for data values and bases. For example, it is expressed as 55 <age> + Taro Yamada <name> + Tsugaru <favorite fruit>.
The following mainly describes the accounting data in detail.

会計型データは、何らかの分類された項目ごとに与えられた数値データをまとめて表現し、その上で演算を行うための代数系(以下、「交換代数」とも呼ぶ。)に属するものであり、交換代数データとも言える。会計型データにおける基底(すなわち分類項目)は、<名称,単位,時間,主体>と4つの項目からなる。データは、1以上の基底に対する値の組み合わせ、言い換えれば、1以上の基底に対する値の和で表現される。
例1:x=200<リンゴ,円,#,#>+400<さんま,円,#,#>
例2:y=200<リンゴ,円,2006年第1四半期,#>+400<リンゴ,円,2006年第2四半期,#>+720<リンゴ,円,2006年第3四半期,#>
上記の例1では時間と主体が省略されており、例2では主体が省略されている。例2は時系列データが表現されたものとも言える。また基底の主体には企業名等の組織の識別情報が設定されてもよい。
The accounting type data collectively represents numerical data given for each classified item, and belongs to an algebraic system (hereinafter also referred to as "exchange algebra") for performing an operation thereon. It can be said that it is exchange algebra data. The basis (that is, classification item) in accounting type data consists of <name, unit, time, subject> and four items. Data is expressed as a combination of values for one or more bases, in other words, a sum of values for one or more bases.
Example 1: x = 200 <apple, circle, #, #> + 400 <sample, circle, #, #>
Example 2: y = 200 <apple, yen, first quarter of 2006, #> + 400 <apple, yen, second quarter of 2006, #> + 720 <apple, yen, third quarter of 2006, #>
In Example 1 above, time and subject are omitted, and in Example 2 the subject is omitted. In Example 2, it can be said that time-series data is represented. Further, identification information of an organization such as a company name may be set as a base subject.

交換代数による表現のメリットとして、様々な基底(分類)を用いてデータを表現できること、またプログラムコードではなく人間に解釈容易な文字で基底を表現できることが挙げられる。さらにまた、後述するように振替という演算による統一的なデータ編集が可能になる。   The merits of representation by exchange algebra are that data can be represented using various bases (classifications), and that bases can be represented by characters that can be easily interpreted by humans rather than program code. Furthermore, as will be described later, unified data editing by transfer operation becomes possible.

前提技術の交換代数では、マイナスの数値の代わりに^(ハット)という記号を用いる。例えばx=20^<リンゴ,#,#,#>はリンゴが20減ることを示す。言い換えれば、^はある項目に対して相殺すべき反対項目を意味する基底を示す。また相殺操作を表す作用素(オペレータ)として「〜(バー)」を導入する。以下例を示す。
x1=30<現金>+20<リンゴ>+50<負債>
y1=^x1=30^<現金>+20^<リンゴ>+50^<負債>
〜(y1+x1)=(30^<現金>+20^<リンゴ>+50^<負債>)+(30<現金>+20<リンゴ>+50<負債>)=0
In the exchange algebra of the base technology, the symbol ^ (hat) is used instead of a negative number. For example, x = 20 ^ <apple, #, #, #> indicates that the number of apples is reduced by 20. In other words, ^ indicates a base that means the opposite item to be offset for a certain item. Also, "-(bar)" is introduced as an operator (operator) representing the cancellation operation. An example is shown below.
x1 = 30 <cash> +20 <apple> +50 <debt>
y1 = ^ x1 = 30 ^ <cash> + 20 ^ <apple> + 50 ^ <debt>
~ (Y1 + x 1) = (30 ^ <cash> + 20 ^ <apple> + 50 ^ <debt>) + (30 <cash> + 20 <apple> + 50 <debt>) = 0

次に、交換代数による振替え操作について説明する。簿記では振替という操作がある。これは一種の分類替え(基底変換)の操作と言える。ここでは、図1の(a)に示す八百屋の売上伝票を図1の(b)に示す売上伝票へ振替える例を示す。   Next, transfer operation by exchange algebra will be described. In bookkeeping, there is an operation called transfer. This can be said to be a sort of reclassification (basis transformation) operation. Here, an example is shown in which the sales slip of the grocery store shown in (a) of FIG. 1 is transferred to the sales slip shown in (b) of FIG.

図1の(a)および(b)で示す取引は円表示で以下のように表現できる。
x1=200<現金,円>+100^<リンゴ,円>+100<利益,円>
x2=50<光熱費,円>+50^<現金,円>
x3=100^<利益,円>+100<営業収益,円>
x4=50^<営業収益,円>+50^<光熱費,円>
y=x1+x2+x3+x4=(200<現金,円>+100^<リンゴ,円>+100<利益,円>)+(50<光熱費,円>+50^<現金,円>)+(100^<利益,円>+100<営業収益,円>)+(50^<営業収益,円>+50^<光熱費,円>)
〜y=150<現金,円>+100^<リンゴ,円>+50<営業収益,円>
The transactions shown in (a) and (b) of FIG. 1 can be expressed as follows in a circle.
x1 = 200 <Cash, Yen> + 100 ^ <Apple, Yen> +100 <Profit, Yen>
x2 = 50 <utility fee, yen> + 50 ^ <cash, yen>
x3 = 100 ^ <Profit, Yen> +100 <Operating revenue, Yen>
x4 = 50 ^ <operating revenue, yen> + 50 ^ <heat expenses, yen>
y = x 1 + x 2 + x 3 + x 4 = (200 <cash, yen> + 100 ^ <apple, yen> + 100 <profit, yen>) + (50 <utility cost, yen> + 50 ^ <cash, yen>) + (100 ^ <profit, yen > + 100 <Operating revenue, Yen> + (50 ^ <Operating revenue, Yen> + 50 ^ <Utility expenses, Yen>)
~ Y = 150 <cash, yen> + 100 ^ <apple, yen> + 50 <operating revenue, yen>

次に、振替え操作と見なすアグリゲーション(合併)と按分について説明する。
1.アグリゲーション
300円の津軽と200円の富士と100円の紅玉(いずれもリンゴの1品種)があったとする。これを、x=300<津軽,円>+200<富士,円>+100<紅玉,円>と表現する。この津軽・富士・紅玉を「リンゴ」とまとめて分類する操作も一種の振替であり、アグリゲーションとよぶ。なお前提として{津軽,富士,紅玉}-->{リンゴ}という対応関係のマップが与えられている必要がある。
Next, aggregation (merger) regarded as a transfer operation and distribution will be described.
1. Aggregation Suppose that there were 300 yen Tsugaru, 200 yen Fuji and 100 yen red ball (all are one variety of apple). This is expressed as x = 300 <Tsugaru, circle> +200 <Fuji, circle> +100 <red ball, circle>. The operation of grouping and classifying this Tsugaru-Fuji-Kohidama as "apple" is also a kind of transfer, and is called aggregation. In addition, it is necessary to be given the map of correspondence of {Tsugaru, Fuji, red ball}-> {apple} as a premise.

この例では上記の対応関係のマップにしたがって、F(x)=300^<津軽,円>+200^<富士,円>+100^<紅玉,円>+300<リンゴ,円>+200<リンゴ,円>+100<リンゴ,円>、という元を生成する。基底<リンゴ>の値は、集約対象の基底<津軽>、<富士>、<紅玉>のそれぞれに対する値である。言い換えれば、集約対象の基底<津軽>、<富士>、<紅玉>のそれぞれに対する値の集計値が、基底<リンゴ>の値として算出される。   In this example, F (x) = 300 ^ <Tsugaru, circle> + 200 ^ <Fuji, circle> + 100 ^ <red ball, circle> +300 <apple, circle> +200 <apple, circle> according to the map of the above correspondence. Generate an element of +100 <apple, circle>. The value of the base <apple> is a value for each of the base <Tsugaru>, <Fuji>, and <red ball> to be consolidated. In other words, the total value of the values for each of the base <Tsugaru>, <Fuji>, and <red ball> to be consolidated is calculated as the value of the base <apple>.

アグリゲーションを表す振替G(x)は、F(x)を用いて、〜{x+F(x)}で与えられる。すなわち、G(x)=〜{x+F(x)}=(300<津軽,円>+200<富士,円>+100<紅玉,円>)+(300^<津軽,円>+200^<富士,円>+100^<紅玉,円>+300<リンゴ,円>+200<リンゴ,円>+100<リンゴ,円>)=600<リンゴ,円>、となる。   The transfer G (x) representing the aggregation is given by ̃ {x + F (x)} using F (x). That is, G (x) = 〜 {x + F (x)} = (300 <Tsugaru, yen> +200 <Fuji, circle> +100 <red ball, circle>) + (300 ^ <Tsugaru, circle> + 200 ^ <Fuji, circle > + 100 ^ <red ball, circle> +300 <apple, circle> +200 <apple, circle> +100 <apple, circle>) = 600 <apple, circle>.

2.按分
按分とは、1つの分類項目をさらに細かく複数の分類項目へ分割することである。例えば、アグリゲーションに示した例では基底<リンゴ>に対応する値を、津軽・富士・紅玉へ分割することを意味する。なお前提として{リンゴ}-->{津軽,富士,紅玉}の按分比率が与えられている必要があり、ここでは1:1:1であることとする。
2. Proportional division is the division of one classification item into more detailed classification items. For example, in the example shown in the aggregation, it means that the value corresponding to the base <apple> is divided into Tsugaru-Fuji-red ball. As a premise, it is necessary to give a division ratio of {apple}-> {Tsugaru, Fuji, red ball}, and in this case, it is 1: 1: 1.

この例では上記の按分比率にしたがって、x=600<リンゴ,円>に対して、F(x)=600^<リンゴ,円>+200<津軽,円>+200<富士,円>+200<紅玉,円>、という元を生成する。
按分を表す振替えG(x)は、F(x)を用いて、〜{x+F(x)}で与えられる。すなわち、G(x)=〜{x+F(x)}=600<リンゴ,円>+(600^<リンゴ,円>+200<津軽,円>+200<富士,円>+200<紅玉,円>)=200<津軽,円>+200<富士,円>+200<紅玉,円>、となる。
In this example, F (x) = 600 ^ <apple, circle> +200 <Tsugaru, circle> +200 <Fuji, circle> +200 <red ball, according to the distribution ratio described above, for x = 600 <apple, circle> Generate an element of circle>.
The transfer G (x), which represents the division, is given by ~ {x + F (x)} using F (x). That is, G (x) = 〜 {x + F (x)} = 600 <apple, circle> + (600 ^ <apple, circle> +200 <Tsugaru, circle> +200 <Fuji, circle> +200 <red ball, circle>) = 200 <Tsugaru, circle> + 200 <Fuji, circle> + 200 <red ball, circle>.

(前提技術2)
以下、前提技術1の交換代数の考え方を利用してデータ編集処理を実行する情報処理装置(以下、「データ編集装置」と呼ぶ。)について説明する。前提技術2において、ユーザは、対象がその集合に属するための必要十分条件を与えることによって集合を記述する方法である内包的記法を用いて、データの編集内容を記述する。前提技術2のデータ編集装置は、内包的記法により記述された編集内容に基づいて、集合の要素をすべて列挙することで集合を記述する方法である外延的記法で記述されたプログラムコードを出力する。そして、編集対象のデータを、交換代数に対応する形式のデータオブジェクトとしてメモリに読み込み、上記のプログラムコードを実行することによりデータの編集処理を実行する。
(Required technology 2)
Hereinafter, an information processing apparatus (hereinafter, referred to as “data editing apparatus”) that executes data editing processing using the concept of the exchange algebra of the base technology 1 will be described. In Prerequisite Technique 2, the user describes the content of editing data using an inclusive notation, which is a method of describing a set by giving necessary and sufficient conditions for an object to belong to the set. The data editing apparatus of the base technology 2 outputs the program code described in the extensional notation, which is a method of describing the set by enumerating all the elements of the set based on the edited content described by the intensional notation. . Then, the data to be edited is read into the memory as a data object in a format corresponding to the exchange algebra, and the above program code is executed to execute data editing processing.

図2は、前提技術2のデータ編集装置10の機能構成を示すブロック図である。データ編集装置10は、データ保持部12と、コード対応関係テーブル14と、集約規則テーブル16と、按分規則テーブル18と、コード取得部20と、コード生成部22と、編集処理部24を備える。   FIG. 2 is a block diagram showing a functional configuration of the data editing device 10 of the prerequisite technology 2. As shown in FIG. The data editing apparatus 10 includes a data holding unit 12, a code correspondence relationship table 14, an aggregation rule table 16, a distribution rule table 18, a code acquisition unit 20, a code generation unit 22, and an editing processing unit 24.

本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、図2の各機能ブロックは、ソフトウェアとして記録媒体に格納されデータ編集装置10のハードディスクにインストールされ、データ編集装置10のメインメモリに適宜読み出されてCPUにて実行されてもよい。   Each block shown in the block diagram of the present specification can be realized by hardware as an element such as a CPU of a computer or a mechanical device, and as software as a computer program or the like. It depicts the functional blocks realized by the coordination of them. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by a combination of hardware and software. For example, each functional block in FIG. 2 may be stored as software in a recording medium, installed in the hard disk of the data editing device 10, read appropriately into the main memory of the data editing device 10, and executed by the CPU.

データ保持部12は、編集対象となる編集前のデータと編集後のデータとを保持する記憶領域である。データ保持部12は、編集前のデータと編集後のデータのそれぞれについて、データの値と基底とを対応づけたCSV(Comma Separated Values)ファイルを保持する。例えば、CSVファイルの一行が「値,ハットの有無,名称,単位,時間,主体」となり、空白行が元(げん)の区切りを示してもよい。なおデータ保持部12は、データ編集装置10とは異なる情報処理装置、例えばデータベースサーバ内に設けられてもよいことはもちろんである。この場合、LAN・WAN・インターネット等の通信網を介して当該データベースサーバとデータ編集装置10が接続された情報処理システムが構築されてもよい。   The data holding unit 12 is a storage area for holding pre-edit data to be edited and post-edit data. The data holding unit 12 holds a CSV (Comma Separated Values) file in which data values and bases are associated with each other before editing data and after editing data. For example, one line of the CSV file may be "value, presence / absence of hat, name, unit, time, subject", and a blank line may indicate the original division. Of course, the data holding unit 12 may be provided in an information processing apparatus different from the data editing apparatus 10, for example, a database server. In this case, an information processing system in which the database server and the data editing apparatus 10 are connected via a communication network such as LAN, WAN, or the Internet may be constructed.

コード対応関係テーブル14は、データの編集内容(編集操作)を内包的記法により記述するためのプログラム言語(以下、「内包的記法言語」とも呼ぶ。)と、データの編集内容を外延的記法により記述するためのプログラム言語(以下、「外延的記法言語」)との対応関係を保持する記憶領域である。前提技術2における外延的記法言語はJava(登録商標)言語であることとするが、C言語等、他のプログラム言語であってもよい。   The code correspondence relationship table 14 includes a program language (hereinafter, also referred to as “inclusive notation language”) for describing editing content (editing operation) of data by an inclusive notation, and the editing content of data by an extension notation. It is a storage area that holds the correspondence with a program language (hereinafter, "extensible notation language") to be described. The extension notation language in the base technology 2 is assumed to be Java (registered trademark) language, but may be another programming language such as C language.

内包的記法言語と外延的記法言語との対応関係は、例えば、内包的記法言語における編集操作を示すキーワードと、外延的記法言語におけるその編集操作を実現するためのロジックを実装したコード(関数)とを対応づけたものである。より具体的には、内包的記法言語における複数のデータから特定のデータを抽出する条件の記述は、外延的記法言語における複数のデータを逐次列挙するための繰り返し命令の記述と対応づけられる。また例えば、内包的記法言語において入力データを指定するコードと、外延的記法言語においてその入力データをメモリ内に読み込むロジックを実装したコードとを対応づけたものである。なお、対応関係の具体例は図3〜図6において後述する。   For example, the correspondence relation between the inclusive notation language and the extension notation language is a code (function) that implements a keyword indicating an editing operation in the inclusion notation language and a logic for realizing the editing operation in the extension notation language And are associated with each other. More specifically, the description of the condition for extracting specific data from the plurality of data in the intensional notation language is associated with the description of the repetitive instruction for sequentially listing the plurality of data in the extension notation language. Also, for example, a code that specifies input data in a comprehension notation language and a code that implements a logic for reading the input data into a memory in the extension notation language are associated with each other. A specific example of the correspondence will be described later with reference to FIGS.

集約規則テーブル16は、アグリゲーション操作時に参照されるべき複数種類の基底の集約関係を定めた集約規則を保持する記憶領域である。集約規則は、例えば上述の{津軽,富士,紅玉}-->{リンゴ}という集約関係を定めたものである。複数種類の基底を集約する基底(上記例ではリンゴ)を以下では「集約基底」と呼ぶこととする。按分規則テーブル18は、按分操作時に参照される複数種類の基底の按分比率を定めた按分規則を保持する記憶領域である。按分規則は、例えば上述の{リンゴ}-->{津軽,富士,紅玉}という按分関係と、1:1:1という按分比率を定めたものである。   The aggregation rule table 16 is a storage area that holds an aggregation rule that defines an aggregation relationship of a plurality of types of bases to be referred to at the time of aggregation operation. The aggregation rule defines, for example, the above-mentioned aggregation relationship of {Tsugaru, Fuji, red ball}-> {apple}. Hereinafter, a base (a apple in the above example) that aggregates plural types of bases will be referred to as an “aggregate base”. The distribution rule table 18 is a storage area that holds distribution rules that define distribution ratios of a plurality of types of bases that are referred to at the time of distribution operation. The distribution rule defines, for example, the aforementioned distribution relationship of {apple}-> {Tsugaru, Fuji, red ball} and a distribution ratio of 1: 1: 1.

コード取得部20は、キーボード等の所定の入力装置を介してユーザにより入力されたプログラムコード(以下、「ユーザコード」とも呼ぶ。)を取得する。このユーザコードは、内包的記法言語で記述される。具体的なユーザコード例は後述する。   The code acquisition unit 20 acquires a program code (hereinafter, also referred to as “user code”) input by the user via a predetermined input device such as a keyboard. This user code is described in a comprehension notation language. Specific user code examples will be described later.

コード生成部22は、コード対応関係テーブル14に保持された対応関係にしたがって、ユーザコードから、ユーザコードに記述されたデータ編集内容が外延的記法言語で記述されたプログラムコード(以下、「実行コード」とも呼ぶ。)を生成する。前提技術2における実行コードはJavaバイトコードであることとする。具体的には、ユーザコードに対応するJavaソースコードを生成し、そのソースコードをコンパイルすることによりJavaバイトコードを生成する。具体的な実行コード例は後述する。   The code generation unit 22 is a program code in which the data editing content described in the user code is described in the extended notation language from the user code according to the correspondence relationship held in the code correspondence relationship table 14 (hereinafter referred to as “execution code Also called "). The execution code in Prerequisite Technique 2 is Java byte code. Specifically, the Java source code corresponding to the user code is generated, and the Java code is generated by compiling the source code. A concrete execution code example will be described later.

編集処理部24は、コード生成部22において生成された実行コードにしたがって、データ保持部12に保持された編集対象のデータを編集する。編集処理部24は、データ読込部26とデータ編集部28と編集結果出力部30を含む。なお、実行コードが所定の実行エンジンにおいて実行されることにより、編集処理部24(データ読込部26〜編集結果出力部30)の機能が実現されてもよいことはもちろんである。例えば、実行コードがJavaバイトコードの場合、実行エンジンはJVM(Java Virtual Machine)となる。   The editing processing unit 24 edits the data to be edited held in the data holding unit 12 in accordance with the execution code generated by the code generation unit 22. The editing processing unit 24 includes a data reading unit 26, a data editing unit 28, and an editing result output unit 30. Of course, the functions of the editing processing unit 24 (the data reading unit 26 to the editing result output unit 30) may be realized by executing the execution code in a predetermined execution engine. For example, when the execution code is Java byte code, the execution engine is a JVM (Java Virtual Machine).

データ読込部26は、データ保持部12から編集対象のデータを読み込み、そのデータから、データの値と基底とが対応づけられたデータオブジェクトをメモリ上に生成する。データ編集部28は、データ読込部26において生成されたデータオブジェクトに対する操作を実行して編集結果のデータを設定する。編集結果出力部30は、データ読込部26において設定された編集結果のデータをCSVファイルとして記録し、データ保持部12へ格納する。   The data reading unit 26 reads the data to be edited from the data holding unit 12 and generates a data object in which the value of the data is associated with the base on the memory from the data. The data editing unit 28 performs an operation on the data object generated by the data reading unit 26 to set data of an editing result. The editing result output unit 30 records the data of the editing result set in the data reading unit 26 as a CSV file, and stores the data in the data holding unit 12.

図3は、会計型データを操作するためのユーザコードの一例を示す。以下のコード例では、左端に行番号を示しており、その行番号によりコードの位置を適宜示す。図3では、編集対象データとして、200<現金>+100<小麦>という元と、200<現金>+200<大豆>という元を含む集合Cが指定されている。ここでは説明の簡明化のため編集対象データを直接入力しているが、典型的には入力ファイルとしてのCSVファイルの名称や、そのCSVファイルにおける入力データの記述位置が指定されることにより入力データを示すデータオブジェクトが生成される。   FIG. 3 shows an example of a user code for operating the accounting type data. In the following code example, a line number is shown at the left end, and the position of the code is appropriately indicated by the line number. In FIG. 3, a set C including an element of 200 <cash> +100 <wheat> and an element of 200 <cash> +200 <soy> is specified as edit target data. Although the data to be edited is directly input here for simplification of the explanation, typically the input data is specified by specifying the name of the CSV file as an input file and the description position of the input data in the CSV file. A data object indicating is generated.

図3の4行目では、交換代数のプロジェクション処理、すなわち指定された基底と一致する部分要素を抽出する射影操作が指定されている。具体的には、集合Cから基底<現金>もしくは<小麦>に該当し、かつ、値が設定済という条件を充足する元を抽出して集合asetへ代入する処理が指定されている。そして5行目でaset内の元の加算処理が指定されている。asetは200<現金>、100<小麦>、200<現金>を含むため、加算結果alphaは400<現金>+100<小麦>となる。ここでは説明の簡明化のため編集結果を標準出力へ出力することとしているが、典型的には出力ファイルとしてのCSVファイルが指定されて、当該CSVファイルに編集結果(ここでは加算結果alphaの内容)が記録される。   In the fourth line of FIG. 3, projection processing of exchange algebra, that is, a projection operation for extracting a subelement that matches the specified base is specified. Specifically, a process is specified for extracting from the set C a base that corresponds to the base <cash> or <wheat> and that satisfies the condition that the value has already been set and substitutes it into the set aset. The fifth line specifies the original addition process in aset. Since aset includes 200 <cash>, 100 <wheat>, and 200 <cash>, the addition result alpha is 400 <cash> +100 <wheat>. Here, to simplify the explanation, the editing result is output to the standard output, but typically a CSV file as an output file is specified, and the editing result (here, the contents of the addition result alpha is added to the CSV file) ) Is recorded.

図4(a)は、図3のユーザコードに対応する実行コードを示す。具体的には図3の2行目に応じてコード生成部22が生成する実行コードであり、データ読込部26の機能に対応する。なお、前提技術2の説明では実行コードとして便宜的にJavaソースプログラムを示す。同図では、集合Cに対応するExAlgeSetオブジェクトに、200<現金>+100<小麦>という元に対応するExAlgeオブジェクト(15〜23行目)と、200<現金>+200<大豆>という元に対応するExAlgeオブジェクト(24〜32行目)が格納されている。   FIG. 4A shows an execution code corresponding to the user code of FIG. Specifically, the execution code is generated by the code generation unit 22 according to the second line of FIG. 3 and corresponds to the function of the data reading unit 26. In the description of the base technology 2, a Java source program is shown as an execution code for convenience. In the figure, the ExAlgeSet object corresponding to the set C corresponds to the ExAlge object (lines 15 to 23) corresponding to the source of 200 <cash> +100 <wheat> and the source of 200 <cash> +200 <soy> The ExAlge object (the 24th to 32nd lines) is stored.

図4(b)は、図3のユーザコードに対応する実行コードを示す。具体的には図3の4行目に応じてコード生成部22が生成する実行コードであり、データ編集部28の機能に対応する。同図では、集合Cに含まれる複数の元に対応するExAlgeオブジェクトを列挙するforループと、集合Dに含まれる複数の基底に対応するExBaseオブジェクトを列挙するforループとの2重ループの中で、プロジェクションメソッドが呼び出され、プロジェクション処理の結果がリストへ追加される。そして、そのリストから集合asetが設定されている。   FIG. 4 (b) shows the execution code corresponding to the user code of FIG. Specifically, the execution code is generated by the code generation unit 22 in accordance with the fourth line in FIG. 3, and corresponds to the function of the data editing unit 28. In the same figure, it is in a double loop of a for loop which enumerates ExAlge objects corresponding to a plurality of elements contained in set C, and a for loop which enumerates ExBase objects corresponding to a plurality of bases contained in set D , Projection method is called, and the result of projection processing is added to the list. And the set aset is set from the list.

図5は、レコード型データを操作するためのユーザコードの一例を示す。同図では、山田<name>+5<score>、田中<name>+3<score>、鈴木<name>+4<score>、佐藤<name>+2<score>、本田<name>+5<score>の5つの元を含む集合datasetが指定されている。   FIG. 5 shows an example of user code for operating record type data. In the figure, there are 5 of Yamada <name> + 5 <score>, Tanaka <name> + 3 <score>, Suzuki <name> + 4 <score>, Sato <name> +2 <score>, Honda <name> + 5 <score>. A set dataset containing two elements is specified.

図5の9行目では、基底<score>に対応づけられた値が4以上の元が存在するたびに、元「1<4以上,人,#,#>」を集合asetへ代入する処理が指定されている。そして、11行目でaset内の元の加算処理が指定されている。この結果として、asetには元「1<4以上,人,#,#>」が3個含まれることになり、ret=3<4以上,人,#,#>となる。すなわちこの例は、scoreが4以上の人数を集計するものとなる。   In line 9 of FIG. 5, a process of substituting the element “1 <4 or more, people, #, #>” into the set aset whenever an element having a value of 4 or more associated with the base <score> exists. Is specified. Then, in line 11, the original addition process in aset is specified. As a result, the aset includes three elements “1 <4 or more, people, #, #>”, and ret = 3 <4 or more, people, #, #>. That is, this example counts the number of people having a score of 4 or more.

図6(a)は、図5のユーザコードに対応する実行コードを示す。具体的には図5の2〜7行目に応じてコード生成部22が生成する実行コードであり、データ読込部26の機能に対応する。同図では、集合datasetに対応するDtAlgeSetオブジェクトに、上記5つのレコード型データの元のそれぞれに対応するDtalgeオブジェクトが格納される。レコード型データは値と基底の両方で様々なデータ型を許容するため、値と基底のそれぞれのデータ型を示す情報もDtalgeオブジェクトに設定される。   FIG. 6A shows an execution code corresponding to the user code of FIG. Specifically, the execution code is generated by the code generation unit 22 in accordance with the 2nd to 7th lines in FIG. 5, and corresponds to the function of the data reading unit 26. In the figure, Dtalge objects corresponding to the originals of the five record type data are stored in DtAlgeSet objects corresponding to the set data set. Since record type data allows various data types in both value and base, information indicating the data type of each of value and base is also set in the Dtalge object.

図6(b)は、図5のユーザコードに対応する実行コードを示す。具体的には図5の9行目に応じてコード生成部22が生成する実行コードであり、データ編集部28の機能に対応する。同図では、集合datasetに含まれる複数の元に対応するDtAlgeSetオブジェクトを列挙するforループの中で、基底<score>に対応する値が4以上の場合に、元「1<4以上,人,#,#>」がリストへ追加される。そして、そのリストから集合asetが設定されている。   FIG. 6 (b) shows an execution code corresponding to the user code of FIG. Specifically, it is an execution code generated by the code generation unit 22 according to the ninth line in FIG. 5, and corresponds to the function of the data editing unit 28. In the figure, in a for loop that enumerates DtAlgeSet objects corresponding to a plurality of elements included in the set dataset, if the value corresponding to the base <score> is 4 or more, the element “1 <4 or more, a person, #, #> Is added to the list. And the set aset is set from the list.

なおユーザコードにアグリゲーション命令(関数)が設定された場合、コード生成部22は、集約規則テーブル16に保持された集約規則を参照して、まず簿記の記載に対応するオブジェクト(以下、「中間オブジェクト」とも呼ぶ。)を設定する実行コードを生成する。具体的には、集約対象の複数のデータの集計値を算出し、その集計値と集約基底とを対応づけたデータと、集約対象の複数のデータそれぞれの値を差し引くことを示すデータ(すなわち集約対象の複数のオリジナルデータにハット属性を付加したデータ)とを加算する元を示すオブジェクトを、中間オブジェクトとして設定する実行コードを生成する。この中間オブジェクトは、前提技術1のアグリゲーションで示したF(x)に対応する。   When an aggregation instruction (function) is set in the user code, the code generation unit 22 refers to the aggregation rule held in the aggregation rule table 16 and firstly, an object corresponding to the description of bookkeeping (hereinafter referred to as “intermediate object Generate an executable code to set "." Specifically, data indicating aggregation of plural aggregation target data is calculated, data indicating that the aggregation value is associated with the aggregation base, and each value of the aggregation target plurality of data is subtracted (ie, aggregation An execution code is generated in which an object indicating an object to be added with data obtained by adding a hat attribute to a plurality of target original data is set as an intermediate object. This intermediate object corresponds to F (x) shown in the aggregation of the base technology 1.

そしてコード生成部22は、集約対象の複数のオリジナルデータが加算される元を示すオブジェクトと中間オブジェクトとを加算する、言い換えれば、集約対象の複数のオリジナルデータとそれらのデータにハット属性を付加したデータとを相殺することにより、集約対象の複数のデータの集計値と集約基底とを対応づけたデータを、集計結果のオブジェクトへ格納する実行コードを生成する。この実行コードは、前提技術1のアグリゲーションで示した〜(x+F(x))に対応するコードである。なおコード生成部22は、中間オブジェクトの内容を所定のファイルへ出力する実行コードをさらに生成してもよい。この態様によると、中間オブジェクトの内容をユーザへ提示することにより、効率的なデバッグを支援するとともに、簿記の振替計算に利用可能な情報をユーザへ提供できる。   Then, the code generation unit 22 adds the object indicating the source to which the plurality of original data to be aggregated is added and the intermediate object, in other words, the hat attribute is added to the plurality of original data to be aggregated and their data. By offsetting the data, an execution code is generated that stores data in which the aggregation value of the plurality of data to be aggregated and the aggregation base are associated with each other in the object of the aggregation result. This execution code is a code corresponding to ̃ (x + F (x)) shown in the aggregation of the base technology 1. The code generation unit 22 may further generate an execution code for outputting the content of the intermediate object to a predetermined file. According to this aspect, by presenting the contents of the intermediate object to the user, it is possible to support efficient debugging and to provide the user with information that can be used for bookkeeping transfer calculation.

またユーザコードに按分命令(関数)が設定された場合、コード生成部22は、按分規則テーブル18に保持された集約規則を参照して、アグリゲーション時と同様にまず中間オブジェクトを設定する実行コードを生成する。具体的には、按分対象のデータの値を按分比率にしたがって按分し、按分した値と按分先の各基底とを対応づけたデータと、按分対象のオリジナルデータにハット属性を付加したデータとを加算する元を示すオブジェクトを、中間オブジェクトとして設定する実行コードを生成する。この中間オブジェクトは、前提技術1の按分で示したF(x)に対応する。   Also, when an apportionment instruction (function) is set in the user code, the code generation unit 22 refers to the aggregation rule held in the apportionment rule table 18 and first sets an execution code to set an intermediate object as in aggregation. Generate Specifically, the value of the distribution target data is distributed according to the distribution ratio, and data in which the distribution value is associated with each base of the distribution destination and data obtained by adding the hat attribute to the distribution target original data are used. An execution code is generated that sets an object indicating an addition source as an intermediate object. This intermediate object corresponds to F (x) shown in the distribution of the base technology 1.

そしてコード生成部22は、按分対象のオリジナルデータの元を示すオブジェクトと中間オブジェクトとを加算する、言い換えれば、按分対象のオリジナルデータとそのデータにハット属性を付加したデータとを相殺することにより、按分した値と按分先の各基底とを対応づけたデータを、按分結果のオブジェクトへ格納する実行コードを生成する。この実行コードは、前提技術1の按分で示した〜(x+F(x))に対応するコードである。なおコード生成部22は、アグリゲーションと同様に、中間オブジェクトの内容を所定のファイルへ出力する実行コードをさらに生成してもよい。   Then, the code generation unit 22 adds the object indicating the source of the original data of the distribution target and the intermediate object, in other words, by offsetting the original data of the distribution target and the data obtained by adding the hat attribute to the data. An execution code is generated for storing data in which the apportioned values are associated with the respective bases of the apportioned distribution in the apportionment result object. This execution code is a code corresponding to ̃ (x + F (x)) shown in proportion to the base technology 1. The code generation unit 22 may further generate an execution code for outputting the content of the intermediate object to a predetermined file, as in the aggregation.

以上の構成による動作を以下説明する。
図7は、データ編集装置10の動作を示すフローチャートである。まずユーザは、内包的記法言語を用いてデータの編集内容を内包的記法により記述し、そのプログラムコードを指定したデータの編集指示をデータ編集装置10へ入力する。データ編集装置10が所定の入力装置を介してデータの編集指示を受け付けた場合(S10のY)、データ編集装置10のコード取得部20は、ユーザにより入力されたプログラムコードをユーザコードとして取得する(S12)。コード生成部22は、コード対応関係テーブル14に保持されたユーザコードと実行コード間の対応関係にしたがって、ユーザコードから実行コードの生成処理を開始する(S14)。
The operation according to the above configuration will be described below.
FIG. 7 is a flowchart showing the operation of the data editing apparatus 10. First, the user describes the editing content of data by the comprehension-like notation using the comprehension-like notation language, and inputs an editing instruction of data designating the program code to the data editing apparatus 10. When the data editing apparatus 10 receives a data editing instruction via a predetermined input device (Y in S10), the code acquisition unit 20 of the data editing apparatus 10 acquires the program code input by the user as a user code. (S12). The code generation unit 22 starts an execution code generation process from the user code in accordance with the correspondence between the user code and the execution code held in the code correspondence relationship table 14 (S14).

ユーザコードにアグリゲーション命令や按分命令等の振替え命令が存在する場合(S16のY)、コード生成部22はその振替え命令に応じた相殺処理のための中間オブジェクトの出力命令を実行コードへ設定する(S18)。ユーザコードに振替え命令がなければ(S16のN)、S18をスキップする。編集処理部24は、生成された実行コードにしたがって編集対象データに対する編集処理を実行する(S20)。例えば、データ読込部26は、データ保持部12の入力データ格納用のCSVファイルから、ユーザコードおよびユーザコードから生成された実行コードにおいて指定された編集対象のデータを読み込みデータオブジェクトを生成する。そしてデータ編集部28は、生成されたデータオブジェクトに対して実行コードにて指定された編集操作(基底に基づく射影操作・アグリゲーション操作・按分操作等)を実行し、編集結果を示すデータオブジェクトを生成する。編集結果出力部30は、編集処理部24による編集結果、例えばデータ編集部28により生成された編集結果を示すデータオブジェクトの内容(属性値等)を、データ保持部12の編集結果格納用のCSVファイルへ出力する(S22)。データ編集装置10がデータの編集指示を受け付けなければ(S10のN)、S12以降はスキップされる。   When there is a transfer instruction such as an aggregation instruction or an apportionment instruction in the user code (Y in S16), the code generation unit 22 sets an output instruction of an intermediate object for offset processing according to the transfer instruction in the execution code ( S18). If there is no transfer instruction in the user code (N in S16), S18 is skipped. The editing processing unit 24 executes editing processing on the data to be edited according to the generated execution code (S20). For example, the data reading unit 26 reads the user code and the data to be edited specified in the execution code generated from the user code from the CSV file for storing the input data of the data holding unit 12 and generates a data object. Then, the data editing unit 28 executes an editing operation (a projection operation based on a base, an aggregation operation, an apportionment operation, etc.) specified by the execution code on the generated data object, and generates a data object indicating an editing result. Do. The editing result output unit 30 edits the editing result by the editing processing unit 24, for example, the contents (attribute values, etc.) of the data object indicating the editing result generated by the data editing unit 28 into a CSV for storing the editing result of the data holding unit 12. Output to a file (S22). If the data editing apparatus 10 does not receive the data editing instruction (N at S10), the process from S12 is skipped.

前提技術2のデータ編集装置10によれば、従来RDBで扱われていたデータを、会計型データに対応するデータオブジェクト、もしくは、レコード型データに対応するデータオブジェクトとして表現することができる。これにより、コンピュータ上におけるデータオブジェクト表現の標準化を支援することができる。また、編集対象のデータの蓄積においてRDBのような複雑な仕組みを必要とせず、可視性の高いCSVファイルで蓄積することができる。   According to the data editing apparatus 10 of the base technology 2, data which has conventionally been handled by the RDB can be expressed as a data object corresponding to accounting type data or a data object corresponding to record type data. This can support standardization of data object representation on a computer. In addition, accumulation of data to be edited does not require a complicated mechanism like RDB, and can be accumulated in a highly visible CSV file.

またデータ編集装置10によれば、ユーザはデータの編集内容を内包的記法言語で記述できるため、データの編集内容を正しく理解しているユーザであれば、実際にコンピュータを動作させるための外延的記法言語について理解していなくても、正しいデータ編集を実現させることができる。またデータ編集装置10では編集対象のデータが値と基底との組み合わせとして保持されるため、ユーザは内包的記法を用いることで、規定に基づく編集内容を容易に記述することができる。また内包的記法はコンピュータに依存せず、データ編集の仕様を反映するものであるため、ユーザは正しい仕様記述を行えば、正しいデータ編集を実現させることができる。例えば、forループ等を意識せずに、ユーザはデータの編集内容を仕様通りに記載すればよい。したがって、ユーザコードへのバグの混入を低減させることができ、言い換えれば、バグの発生箇所をデータそのもののバグに限定させやすくなる。例えば、会計型データの操作においては、アグリゲーションや按分等、様々な振替処理をロバストに記述することができる。   Further, according to the data editing apparatus 10, since the user can describe the editing content of data in a comprehension-like notation language, if a user who correctly understands the editing content of data, the extension operation for actually operating the computer Even if you do not understand the notation language, you can realize correct data editing. Further, since the data to be edited is held as a combination of the value and the base in the data editing apparatus 10, the user can easily describe the editing content based on the definition by using the inclusive notation. In addition, since the intensional notation does not depend on a computer and reflects the specification of data editing, the user can realize correct data editing if the specification of the correct specification is made. For example, the user may describe the edited content of the data as specified, without being aware of the for loop and the like. Therefore, it is possible to reduce the incorporation of bugs into user code, in other words, it becomes easy to limit the occurrence of a bug to a bug of the data itself. For example, in the operation of accounting data, various transfer processes such as aggregation and apportionment can be described robustly.

またデータ編集装置10によれば、データの基底に基づいて値の編集処理が行われることにより、データの形式(スキーマ)に変更があった場合でも、その影響範囲を限定することができる。例えば、編集対象のデータを格納したテーブルにおいてカラムの入れ替えが発生しても、ユーザコードにおける編集ロジックへの影響を排除することができる。   Further, according to the data editing apparatus 10, by performing value editing processing based on the basis of data, even if there is a change in the data format (schema), the influence range can be limited. For example, even if column replacement occurs in a table storing data to be edited, the influence on editing logic in user code can be eliminated.

またデータ編集装置10によれば、アグリゲーションや按分等の振替処理の規則がプログラムコード外のテーブルに保持されるため、規則に変更が生じてもテーブルのデータを変更すればよく、プログラムコードへの影響を排除できる。   Further, according to the data editing apparatus 10, since the rules for transfer processing such as aggregation and apportionment are held in the table outside the program code, it is sufficient to change the data of the table even if the rule is changed. You can eliminate the impact.

変形例として、データ編集装置10は振替規則テーブルをさらに備えてもよい。振替規則テーブルは、振替操作(ここではアグリゲーションや按分を伴わない基底の変換操作であることとする)において参照されるべき振替規則を保持する記憶領域である。振替規則は、振替元の基底と振替先の基底とを対応づけたデータである。コード生成部22は、ユーザコードに振替命令が設定された場合、振替規則テーブルに保持された振替規則を参照して、中間オブジェクトF(x)を設定する実行コードを生成する。例えば、x=数値A<振替元の基底>の場合、F(x)=数値A^<振替元の基底>+数値A<振替先の基底>となる。そしてコード生成部22は、〜(x+F(x))に対応した実行コードを生成する。当該コードの実行結果として、上記の例では、数値A<振替元の基底>が、数値A<振替先の基底>に変換されることになる。   As a modification, the data editing device 10 may further include a transfer rule table. The transfer rule table is a storage area for holding transfer rules to be referred to in a transfer operation (here, it is assumed to be a base conversion operation without aggregation or apportionment). The transfer rule is data in which a transfer source base and a transfer destination base are associated. When the transfer instruction is set in the user code, the code generation unit 22 generates an execution code for setting the intermediate object F (x) with reference to the transfer rule held in the transfer rule table. For example, in the case of x = numerical value A <transfer source base>, F (x) = numerical value A ^ <transfer source base> + numeric value A <transfer destination base>. Then, the code generation unit 22 generates an execution code corresponding to (x + F (x)). As the execution result of the code, in the above example, the numerical value A <transfer source base> is converted to the numerical value A <transfer destination base>.

(実施例の概要説明)
実施例では、ユニークなIDが付与された財が主体間で取引され、その取引が連鎖していく場合に、取引または財に関するトレーサビリティ(追跡可能性)を向上する技術を提案する。具体的には、上記のトレーサビリティに関する監査を支援するシステムおよび装置(後述の取引管理システム100、取引管理装置108)を提案する。「財」は、物質的または精神的に何らかの効用を持つものであり、取引の対象となる有形財、無形財(サービス等)、知的財産を含む。実施例における「財」はリンゴ等の商品とする。また、実施例における「監査」は、取引の内容または取引の主体に関する認証・検証を含む。取引の主体は、様々な企業、団体、個人を含む。
(Description of the outline of the embodiment)
The embodiment proposes a technology for improving the traceability of a trade or a good when a good with a unique ID is traded between entities and the trade is chained. Specifically, a system and apparatus (a transaction management system 100 and a transaction management apparatus 108 described later) that support the above-described audit related to traceability are proposed. A “good” is something that has some utility, materially or mentally, and includes tangible goods, intangible goods (services, etc.) and intellectual property that are the subject of transactions. The "goods" in the embodiment is a product such as an apple. Also, “audit” in the embodiment includes authentication / verification regarding the content of the transaction or the subject of the transaction. Transaction entities include various companies, organizations, and individuals.

2主体間での取引を複式簿記で記述する場合、一般的には価格表示が用いられる。例えば、主体Aが主体Bに1つ以上のリンゴを800円で販売したとすると、この取引は図8(a)、図8(b)のように記述される。図8(a)は、主体A側の取引記述を示し、図8(b)は、主体B側の取引記述を示している。価格表示の場合、主体A側の取引記述と、主体B側の取引記述は対称ではない。主体Aは、図8(a)に示すリンゴの原価を含む情報を主体Bに知られたくない。これは売上勘定を用いても同様である。したがって、図8(a)、図8(b)の情報を主体A、主体B間で共有することはできない。   When describing transactions between two entities in double-entry bookkeeping, prices are generally used. For example, assuming that the entity A sells one or more apples to the entity B for 800 yen, this transaction is described as shown in FIGS. 8 (a) and 8 (b). FIG. 8A shows the transaction description on the side of the subject A, and FIG. 8B shows the transaction description on the side of the subject B. In the case of price display, the transaction description on the subject A side and the transaction description on the subject B side are not symmetrical. The subject A does not want the subject B to know the information including the cost of the apple shown in FIG. This is the same as using the sales account. Therefore, the information shown in FIGS. 8A and 8B can not be shared between the subject A and the subject B.

実施例では、簿記の抽象化である交換代数を用い、代数表現を用いて複式簿記を拡張した多元簿記を用いて、実物の取引を記録する。具体的には、取引記述において、財ごとに固有の計量の単位系(例えばリンゴであればKgでその量を評価する)を許す複式簿記記述(以下「実物簿記」とも呼ぶ。)を用いる。   In the embodiment, real transactions are recorded using multiple bookkeeping, which is an extension of double-entry bookkeeping using algebraic expressions, using exchange algebra, which is a bookkeeping abstraction. Specifically, in the transaction description, a double-entry bookkeeping statement (hereinafter, also referred to as "actual bookkeeping") is used which allows a unit system of measurement unique to each item (for example, in the case of an apple, its amount is evaluated by Kg).

図9(a)と図9(b)は、主体Aが主体Bにリンゴ2Kgを800円で販売した場合の、実物簿記を用いた取引記述を示す。図9(a)は、主体A側の取引記述を示し、図9(b)は、主体B側の取引記述を示している。実物簿記では、主体A側の取引記述と、主体B側の取引記述とが対称な形になる。また、実物簿記による取引記述は、販売側の原価情報を含まない。したがって、取引を行った主体間で、実物簿記を用いた取引記述の内容を共有することができる。   FIGS. 9 (a) and 9 (b) show the transaction description using the real bookkeeping when the subject A sells 2 Kg of apple to the subject B for 800 yen. FIG. 9A shows the transaction description on the side of the subject A, and FIG. 9B shows the transaction description on the side of the subject B. In the real thing bookkeeping, the transaction description on the subject A side and the transaction description on the subject B side are symmetrical. In addition, the transaction statement by physical bookkeeping does not include selling side cost information. Therefore, it is possible to share the contents of the transaction description using the real bookkeeping among the entities that have made the transaction.

実施例のシステムでは、2主体間での財の取引を基本的な単位として、その取引を、実物簿記を用いた取引記述のデータ(仕訳のデータとも言える)として記録する。そして、当該財が転々流通する都度、取引記述のデータを蓄積していく。実施例のシステムは、当該財に関する複数の取引記述のデータを合成して、当該財の取引の連鎖を示すデータ(「取引チェイン」とも呼ぶ。)を生成し、取引チェインに基づいて、当該財のトレーサビリティを確保する。また、実施例のシステムは、取引チェインに対して種々の監査計算(言い換えれば認証計算)を実行し、その結果として、種々の監査情報(言い換えれば認証情報)を提供する。   In the system of the embodiment, a transaction of goods between two entities is a basic unit, and the transaction is recorded as transaction description data (also referred to as journal data) using real bookkeeping. Then, each time the goods are being circulated several times, data of transaction descriptions are accumulated. The system of the embodiment combines data of a plurality of transaction descriptions related to the goods to generate data (also referred to as a “trade chain”) indicating a chain of trades of the goods, and based on the trade chains, the goods Ensure traceability of In addition, the system of the embodiment executes various audit calculations (in other words, authentication calculation) on the transaction chain, and as a result, provides various audit information (in other words, authentication information).

監査情報の提供先の特別なケースとして国の統計局が考えられる。現在、国の国民経済計算作成の基盤となっている「コモディティーフロー法」は、企業間の財の流れを調査票で把握しようとするものである。このコモディティーフロー法には、調査の精度や時間遅れなど大きな課題がある。企業間の取引のトレーサビリティチェーンが、信用ある取引に必須なものであると認識されて広がったならば、この取引チェインの情報から、個々の企業の情報としてではなく、品目単位で商品の流れの状況を日単位、週単位、月単位で捕捉できる。これにより、経済という取引のネットワークの動的プロセスの状態を観察することができ、また、従来の社会統計を刷新するものとして、国の政策立案のみならず企業自体の経営計画の策定に大きく寄与することができる。さらに、金融統計でも、例えばCDS(クレジットディフォルトスワップ)の生成や波及の取引を、同様なトレーサビリティチェーンとしてトレースすることができれば、金融リスクそのものも動的プロセスとして観察し評価することが可能となり政策的意義が大きいと考えられる。   The national statistics bureau can be considered as a special case for providing audit information. The Commodity Flow Law, which forms the basis of national accounts for the national economy, seeks to grasp the flow of goods between companies using questionnaires. The commodity flow method has major problems such as the accuracy of survey and time delay. If the traceability chain of inter-company transactions is recognized and expanded as essential to a credible transaction, the information of this transaction chain is not used as information of individual companies but of goods flow per item. You can capture the situation daily, weekly, monthly. This makes it possible to observe the state of the dynamic process of the network of economic transactions, and greatly contributes not only to national policy planning but also to the business plan of the company itself, as a means of revitalizing conventional social statistics. can do. Furthermore, in financial statistics, for example, if it is possible to trace the creation and spread transactions of CDS (credit default swap) as a similar traceability chain, it is possible to observe and evaluate the financial risk itself as a dynamic process, which is policyistic It is considered that the significance is great.

実施例のシステムでは、前提技術に記載の交換代数に基づく実物簿記を用いて取引を記録する。以下の式1は、図9(a)に示した仕訳の内容を表し、式2は、図9(b)に示した仕訳の内容を表している。
x1 = 2^<Apple, Kg, apple_243, id_A> + 800<Cash, Yen, *, id_A> ・・(式1)
y1 = 2<Apple, Kg, apple_243, id_B> + 800^<Cash, Yen, *, id_B> ・・(式2)
式1と式2の「apple_243」は、取引対象財(リンゴ)のユニークなIDである。また、「id_A」と「id_B」は、取引当事者である主体Aと主体BのIDである。
In the system of the embodiment, the transaction is recorded using the real bookkeeping based on the exchange algebra described in the base technology. The following equation 1 represents the contents of the journal entry shown in FIG. 9 (a), and the equation 2 represents the contents of the journal entry shown in FIG. 9 (b).
x1 = 2 ^ <Apple, Kg, apple_243, id_A> + 800 <Cash, Yen, *, id_A> (Equation 1)
y1 = 2 <Apple, Kg, apple_243, id_B> + 800 ^ <Cash, Yen, *, id_B> (Equation 2)
"Apple_243" of Formula 1 and Formula 2 is a unique ID of a tradeable item (apple). Also, “id_A” and “id_B” are the IDs of the entities A and B who are the transaction parties.

前提技術において一部既述したように、実施例における複式簿記データや交換代数データは、実際には、オブジェクト指向言語におけるオブジェクトデータとしてストレージおよびメモリに記憶されてもよく、CSVファイルのデータとして永続的に記憶されてもよい。複式簿記データや交換代数データを処理する各装置のCPUは、上記のオブジェクトデータを、論理的に複式簿記データや交換代数データとして取り扱い、基底に基づく各種演算処理を実行してもよい。   As described in part in the base technology, the compounding book data and exchange algebra data in the embodiment may actually be stored in storage and memory as object data in an object-oriented language, and persistent as data in a CSV file. May be stored. The CPU of each device that processes double-entry bookkeeping data and exchange algebra data may treat the above object data logically as double-entry bookkeeping data and exchange algebra data, and may execute various arithmetic processing based on the base.

(第1実施例)
図10は、実施例の取引管理システム100の構成を示す。取引管理システム100は、複数の取引者装置102(例えば取引者装置102a、取引者装置102b、取引者装置102c)と、監査者装置104と、取引データ保管装置106と、取引管理装置108を備える。これらの装置は、LAN、WAN、インターネット等を含む通信網110を介して接続される。
(First embodiment)
FIG. 10 shows the configuration of the transaction management system 100 of the embodiment. The transaction management system 100 includes a plurality of trader devices 102 (for example, a trader device 102a, a trader device 102b, a trader device 102c), an auditor device 104, a transaction data storage device 106, and a transaction management device 108. . These devices are connected via a communication network 110 including a LAN, a WAN, the Internet, and the like.

複数の取引者装置102は、商品の取引の当事者(主体A、主体B等、実際には企業の従業員等)により操作される情報処理装置である。監査者装置104は、商品の取引を監査する監査者により操作される情報処理装置である。監査者は、企業または個人(最終消費者等)であってもよい。また、監査者は取引の当事者であってもよく、その場合、監査者装置104と取引者装置102は同一であってもよい。取引者装置102と監査者装置104は、例えば、PC、タブレット端末、スマートフォンであってもよい。   The plurality of trader devices 102 are information processing devices operated by the parties of transaction of goods (subject A, subject B, etc., in fact, employees of a company, etc.). The auditor device 104 is an information processing device operated by an auditor who audits a transaction of a product. The auditor may be a company or an individual (such as an end consumer). Also, the auditor may be a party of the transaction, in which case the auditor device 104 and the trader device 102 may be identical. The trader device 102 and the auditor device 104 may be, for example, a PC, a tablet terminal, or a smartphone.

取引データ保管装置106は、第1主体から第2主体へ財が販売された場合に、その取引の内容を示す取引データを、取引対象の財のIDと対応づけて記憶する記憶装置である。取引データは、第1主体側の取引記述としての、財の移転と対価の獲得を交換代数を用いて示す複式簿記データと、第2主体側の取引記述としての、財の獲得と対価の移転を交換代数を用いて示す複式簿記データとを含む。実施例の取引データ保管装置106は、複数の取引者装置102から登録された複数の取引データコンテナ(後述)を記憶する。取引データ保管装置106は、ストレージ装置であってもよく、また、データベースサーバであってもよい。   The transaction data storage device 106 is a storage device that stores transaction data indicating the contents of the transaction in association with the ID of the transaction target when the item is sold from the first entity to the second entity. The transaction data includes double-entry bookkeeping data indicating the transfer of goods and the acquisition of compensation using the exchange algebra as the transaction description of the first entity, and the acquisition of goods and the transfer of compensation as the transaction description of the second entity. And double entry bookkeeping data showing the exchange algebra. The transaction data storage apparatus 106 according to the embodiment stores a plurality of transaction data containers (described later) registered from a plurality of trader devices 102. The transaction data storage device 106 may be a storage device or a database server.

取引管理装置108は、商品の取引を示す取引データのハッシュ値(実施例では後述する取引ハッシュコンテナ)を記憶し、商品の取引に関する監査(または認証)を支援する情報処理装置である。実施例の取引管理装置108は、取引に関する監査および認証を支援する機関(「認証局」とも呼ぶ。)に設置される。   The transaction management device 108 is an information processing device that stores a hash value of transaction data (in the embodiment, a transaction hash container to be described later) indicating a transaction of a product, and supports an audit (or authentication) regarding the transaction of the product. The transaction management device 108 according to the embodiment is installed in an organization (also referred to as a “certificate authority”) that supports audit and certification regarding transactions.

図11は、図10の取引者装置102の機能構成を示すブロック図である。取引者装置102は、取引実績取得部120、取引データコンテナ生成部122、取引データコンテナ登録部124、取引ハッシュコンテナ生成部126、取引ハッシュコンテナ登録部128を備える。これら複数の機能ブロックに対応する複数のモジュールを含むコンピュータプログラムが、DVD等の記録媒体に格納されて、または、ネットワーク経由でダウンロードされて、取引者装置102のストレージへインストールされてもよい。取引者装置102のCPUは、上記コンピュータプログラムをメインメモリへ読み出して実行することにより、各機能ブロックの機能を発揮してもよい。   FIG. 11 is a block diagram showing a functional configuration of the trader device 102 of FIG. The trader device 102 includes a transaction record acquisition unit 120, a transaction data container generation unit 122, a transaction data container registration unit 124, a transaction hash container generation unit 126, and a transaction hash container registration unit 128. A computer program including a plurality of modules corresponding to the plurality of functional blocks may be stored in a recording medium such as a DVD or downloaded via a network and installed in the storage of the trader device 102. The CPU of the trader device 102 may exert the function of each functional block by reading the computer program to the main memory and executing it.

取引実績取得部120は、キーボードから入力された取引実績データを取得する。または、取引実績取得部120は、不図示の他装置から送信された取引実績データを取得する。実施例の取引実績データは、取引者のID(例えば販売者のIDと購入者のID)、取引対象の財のIDと財の種類、取引日時、取引量(財の販売量、販売価格(対価の量))を含む。販売実績データの内容を総称して取引内容とも呼ぶ。   The transaction result acquisition unit 120 acquires transaction result data input from the keyboard. Alternatively, the transaction result acquisition unit 120 acquires transaction result data transmitted from another device (not shown). The transaction result data of the embodiment includes the ID of the trader (for example, the ID of the seller and the ID of the purchaser), the ID of the goods to be traded and the type of the goods, the date and time of trading, the volume of trading Amount of consideration)). The contents of sales record data are generically referred to as transaction contents.

取引データコンテナ生成部122は、取引実績データに基づいて、実物簿記による取引記述を含む、取引データコンテナを生成する。図12は、取引データコンテナの例を示す。実施例の取引データコンテナは、キーバリュー型である。また、取引データコンテナは、JSON(JavaScript(登録商標) Object Notation、)形式であってもよい。後述の取引ハッシュコンテナも同様である。   The transaction data container generation unit 122 generates a transaction data container including a transaction description based on physical bookkeeping based on the transaction result data. FIG. 12 shows an example of a transaction data container. The transaction data container of the embodiment is key-value type. Also, the transaction data container may be in JSON (JavaScript (registered trademark) Object Notation) format. The same applies to the transaction hash container described later.

取引データコンテナ生成部122は、予め定められた変換規則にしたがって、取引実績データから、2主体間の取引記述(例えば上記の式1および式2)を生成する。例えば、取引データコンテナ生成部122は、取引実績データの各項目の値と、上記生成した取引記述を、取引データコンテナにおける対応する項目へ設定する。   The transaction data container generation unit 122 generates a transaction description between the two entities (for example, Equation 1 and Equation 2 above) from the transaction result data according to a predetermined conversion rule. For example, the transaction data container generation unit 122 sets the value of each item of the transaction result data and the generated transaction description to the corresponding item in the transaction data container.

変換規則は、取引対象となりうる複数種類の財のそれぞれに対して付与すべき基底に関するデータを含んでもよい。例えば、財の種類と基底のデータ(例えばリンゴと「<Apple, Kg, 財のID, 取引主体のID>」を対応付けたデータを含んでもよい。また、変換規則は、各基底が、複式簿記における貸方科目に該当するか、借方科目に該当するか、を定めたデータを含んでもよい。また、変換規則は、販売元主体のデータおよび販売先主体のデータに対する「^」(ハット)を付与有無を定めたデータを含んでもよい。   The conversion rules may include data on bases to be assigned to each of a plurality of types of goods that can be traded. For example, it may include data in which the type of goods and data of the base (for example, apple and "<Apple, Kg, ID of goods, ID of trade subject ID>") are associated. The conversion rule may include data defining whether the item corresponds to a credit item in bookkeeping or a debit item, and the conversion rules include “^” (hat) for seller-source data and seller-destination data. It may also include data that determines whether or not to grant.

取引データコンテナ生成部122は、取引データコンテナにおける取引データの値に、2主体間の取引記述(図12では上記の式1と式2)を、認証局から予め提供された認証局の公開鍵(P_key1)で暗号化したデータ「Encode[P_key1]({x1, y1})」を設定する。また、取引データコンテナ生成部122は、取引データコンテナにおける取引日時の値に、取引実績データが示す取引日時を設定する。また、取引データコンテナ生成部122は、取引データコンテナにおける取引者IDの値に、取引当事者である2主体のIDを設定する。実施例では、「{財の販売者,財の購入者}」の順に設定する。また、取引データコンテナ生成部122は、取引データコンテナにおける財IDの値に、取引対象商品のIDを設定する。   The transaction data container generation unit 122 is a public key of the certificate authority provided in advance by the certificate authority with the transaction description between the two entities (the above-mentioned Equation 1 and Equation 2 in FIG. 12) as the value of the transaction data in the transaction data container. The data "Encode [P_key1] ({x1, y1})" encrypted by (P_key1) is set. Further, the transaction data container generation unit 122 sets the transaction date and time indicated by the transaction result data to the value of the transaction date and time in the transaction data container. In addition, the transaction data container generation unit 122 sets, as the value of the trader ID in the transaction data container, the IDs of the two parties who are the transaction parties. In the embodiment, they are set in the order of “{seller of goods, purchaser of goods}}. In addition, the transaction data container generation unit 122 sets the ID of the transaction target product to the value of the item ID in the transaction data container.

図11に戻り、取引データコンテナ登録部124は、取引データコンテナ生成部122により生成された取引データコンテナを取引データ保管装置106に登録する。例えば、取引データコンテナ登録部124は、取引データコンテナを含む登録要求を取引データ保管装置106へ送信し、取引データ保管装置106に取引データコンテナを記憶させる。   Referring back to FIG. 11, the transaction data container registration unit 124 registers the transaction data container generated by the transaction data container generation unit 122 in the transaction data storage device 106. For example, the transaction data container registration unit 124 transmits a registration request including the transaction data container to the transaction data storage device 106, and causes the transaction data storage device 106 to store the transaction data container.

取引ハッシュコンテナ生成部126は、取引実績データに基づいて、実物簿記による取引記述のハッシュ値を含む、取引ハッシュコンテナを生成する。取引ハッシュコンテナ生成部126は、2主体間の取引記述(図12では上記の式1と式2)を、認証局から予め提供された認証局の公開鍵(P_key1)で暗号化し、その暗号化データを所定のハッシュ関数に入力してハッシュ値「Hash(encode[P_key1]({x1, y1}))」を取得する。言い換えれば、取引ハッシュコンテナ生成部126は、取引データコンテナに設定された取引データのハッシュ値を取得する。使用するハッシュ関数は、MD5やSHA−2等、公知のものでよい。   The transaction hash container generation unit 126 generates a transaction hash container that includes a hash value of a transaction description based on physical bookkeeping, based on the transaction result data. The transaction hash container generation unit 126 encrypts the transaction description between the two entities (the above Equation 1 and Equation 2 in FIG. 12) with the certificate authority public key (P_key 1) provided in advance from the certificate authority and encrypts it. Data is input to a predetermined hash function to obtain a hash value "Hash (encode [P_key1] ({x1, y1}))". In other words, the transaction hash container generation unit 126 acquires the hash value of the transaction data set in the transaction data container. The hash function to be used may be a known one such as MD5 or SHA-2.

図13は、取引ハッシュコンテナの例を示す。取引ハッシュコンテナ生成部126は、取引ハッシュコンテナにおける取引ハッシュデータの値に、取引データのハッシュ値を設定する。他の項目は、取引データコンテナと同様である。   FIG. 13 shows an example of a transaction hash container. The transaction hash container generation unit 126 sets the hash value of the transaction data to the value of the transaction hash data in the transaction hash container. Other items are similar to the transaction data container.

図11に戻り、取引ハッシュコンテナ登録部128は、取引ハッシュコンテナ生成部126により生成された取引ハッシュコンテナを取引管理装置108に登録する。例えば、取引ハッシュコンテナ登録部128は、取引ハッシュコンテナを含む登録要求を取引管理装置108へ送信し、取引管理装置108に取引ハッシュコンテナを記憶させる。   Referring back to FIG. 11, the transaction hash container registration unit 128 registers the transaction hash container generated by the transaction hash container generation unit 126 in the transaction management device 108. For example, the transaction hash container registration unit 128 transmits a registration request including the transaction hash container to the transaction management device 108, and causes the transaction management device 108 to store the transaction hash container.

なお、既述したように、実物簿記を適用した或る取引に関する取引データは、取引の当事者である2主体間で共有可能である。そのため、取引データコンテナと取引ハッシュコンテナの登録主体は、2主体(例えば上記の主体A、主体B)のいずれであってもよい。   Note that, as described above, transaction data related to a certain transaction to which actual bookkeeping is applied can be shared between two parties who are parties to the transaction. Therefore, the registration entity of the transaction data container and the transaction hash container may be any of two entities (for example, the above-mentioned entity A and entity B).

図14は、図10の取引管理装置108の機能構成を示すブロック図である。取引管理装置108は、取引ハッシュコンテナ記憶部130、取引ハッシュコンテナ受付部132、監査要求受付部134、取引データコンテナ抽出部136、取引ハッシュコンテナ抽出部138、監査部140、監査データ送信部142を備える。これら複数の機能ブロックに対応する複数のモジュールを含むコンピュータプログラムが、DVD等の記録媒体に格納されて、または、ネットワーク経由でダウンロードされて、取引管理装置108のストレージへインストールされてもよい。取引管理装置108のCPUは、上記コンピュータプログラムをメインメモリへ読み出して実行することにより、各機能ブロックの機能を発揮してもよい。   FIG. 14 is a block diagram showing a functional configuration of the transaction management device 108 of FIG. The transaction management device 108 includes a transaction hash container storage unit 130, a transaction hash container reception unit 132, an audit request reception unit 134, a transaction data container extraction unit 136, a transaction hash container extraction unit 138, an audit unit 140, and an audit data transmission unit 142. Prepare. A computer program including a plurality of modules corresponding to the plurality of functional blocks may be stored in a recording medium such as a DVD or downloaded via a network and installed in the storage of the transaction management device 108. The CPU of the transaction management device 108 may exert the function of each functional block by reading the computer program to the main memory and executing it.

なお、取引管理装置108は、取引データ保管装置106の機能を含む構成でもよい。すなわち、取引管理装置108は、取引データコンテナを記憶する記憶部と、取引者装置102から送信された登録要求データを受け付けて、上記記憶部に取引データコンテナを格納する取引データコンテナ受付部とをさらに備えてもよい。   The transaction management device 108 may be configured to include the function of the transaction data storage device 106. That is, the transaction management device 108 comprises: a storage unit for storing the transaction data container; and a transaction data container reception unit for receiving the registration request data transmitted from the trader device 102 and storing the transaction data container in the storage unit. You may provide further.

取引ハッシュコンテナ記憶部130は、第1主体から第2主体へ財が販売された場合に、その取引の内容を示す取引データのハッシュ値を、取引対象の財のIDと対応づけて記憶する。既述したように、取引データは、第1主体側の取引記述としての、財の移転と対価の獲得を交換代数を用いて示す複式簿記データと、第2主体側の取引記述としての、財の獲得と対価の移転を交換代数を用いて示す複式簿記データとを含む。実施例では、取引ハッシュコンテナ記憶部130は、複数の取引者装置102から登録された複数の取引ハッシュコンテナを記憶する。   When a good is sold from the first entity to the second entity, the transaction hash container storage unit 130 stores the hash value of the transaction data indicating the content of the transaction in association with the ID of the good to be transacted. As described above, the transaction data includes, as the transaction description of the first entity, double-entry bookkeeping data indicating the transfer of goods and the acquisition of compensation using exchange algebra, and the goods as the transaction description of the second entity. Including double-entry bookkeeping data showing exchange acquisition and transfer of consideration using exchange algebra. In the embodiment, the transaction hash container storage unit 130 stores a plurality of transaction hash containers registered from the plurality of trader devices 102.

取引ハッシュコンテナ受付部132は、複数の取引者装置102のそれぞれから送信された登録要求データを受け付け、登録要求データに含まれる取引ハッシュコンテナを取引ハッシュコンテナ記憶部130に格納する。   The transaction hash container reception unit 132 receives the registration request data transmitted from each of the plurality of trader devices 102, and stores the transaction hash container included in the registration request data in the transaction hash container storage unit 130.

監査要求受付部134は、監査者装置104から送信された、監査対象となる特定の財のID(商品IDとも言え、例えば上記の「apple_243」)を指定した監査要求を受け付ける。監査要求は、監査処理の実行を取引管理装置108に指示するデータと言え、また、監査支援情報の提供を要求するデータとも言える。   The audit request reception unit 134 receives an audit request specifying an ID of an item to be audited (also referred to as a product ID, for example, “apple_243” described above) transmitted from the auditor apparatus 104. The audit request can be said to be data that instructs the transaction management device 108 to execute audit processing, and can also be said to be data that requests provision of audit support information.

取引データコンテナ抽出部136は、監査要求受付部134が受け付けた監査要求で指定された財IDをキーとして、その財IDを含む取引データコンテナを取引データ保管装置106から取得する。取引データコンテナ抽出部136は、取得した1つ以上の取引データコンテナを監査部140に渡す。   The transaction data container extraction unit 136 acquires, from the transaction data storage device 106, a transaction data container including the item ID with the item ID designated by the inspection request received by the inspection request receiver 134 as a key. The transaction data container extraction unit 136 passes the acquired one or more transaction data containers to the audit unit 140.

取引ハッシュコンテナ抽出部138は、監査要求受付部134が受け付けた監査要求で指定された財IDをキーとして、その財IDを含む取引ハッシュコンテナを取引ハッシュコンテナ記憶部130から取得する。取引ハッシュコンテナ抽出部138は、取引データコンテナ抽出部136により取得された取引データコンテナに対応する取引ハッシュコンテナを取得し、言い換えれば、取引データコンテナ抽出部136により取得された取引データコンテナと同一の取引に関する取引ハッシュコンテナを取得する。取引ハッシュコンテナ抽出部138は、取得した1つ以上の取引ハッシュコンテナを監査部140に渡す。   The transaction hash container extraction unit 138 acquires a transaction hash container including the item ID from the transaction hash container storage unit 130, using the item ID designated by the audit request received by the inspection request accepting unit 134 as a key. The transaction hash container extraction unit 138 acquires the transaction hash container corresponding to the transaction data container acquired by the transaction data container extraction unit 136, in other words, the same as the transaction data container acquired by the transaction data container extraction unit 136. Get a transaction hash container for the transaction. The transaction hash container extraction unit 138 passes the acquired one or more transaction hash containers to the audit unit 140.

監査部140は、取引データコンテナ抽出部136から入力された複数の取引データコンテナそれぞれが改ざんされていないことを確認する。具体的には、監査部140は、互いに対応する取引データコンテナと取引ハッシュコンテナについて、取引データコンテナに含まれる取引データのハッシュ値を求め、求めたハッシュ値が、取引ハッシュコンテナに含まれる取引ハッシュデータの値と一致するか否かを判定する。互いに対応する取引データコンテナと取引ハッシュコンテナは、同じ取引に基づいて記録されたデータである。監査部140は、取引日時、取引者ID、財IDがいずれも一致する取引データコンテナと取引ハッシュコンテナを対応するものとして識別する。   The audit unit 140 confirms that each of the plurality of transaction data containers input from the transaction data container extraction unit 136 is not falsified. Specifically, the auditing unit 140 obtains the hash value of the transaction data included in the transaction data container for the transaction data container and the transaction hash container corresponding to each other, and the obtained hash value is included in the transaction hash container. Determine if it matches the value of the data. The corresponding transaction data container and the transaction hash container are data recorded based on the same transaction. The audit unit 140 identifies the transaction data container and the transaction hash container that correspond to the transaction date and time, the trader ID, and the goods ID as corresponding to each other.

監査部140は、両者のハッシュ値が一致する場合、取引データコンテナの取引データに改ざんがないと判定し、両者のハッシュ値が不一致の場合、取引データコンテナの取引データに改ざんがあると判定する。監査部140は、取引データコンテナの取引データに改ざんがあると判定した場合、監査要求に基づく監査支援処理をスキップする。この場合、監査部140は、取引データに改ざんがある旨のアラート情報を所定のログへ記録し、または、所定の外部装置へ通知してもよい。   The audit unit 140 determines that the transaction data of the transaction data container is not falsified if the two hash values match, and determines that the transaction data of the transaction data container is falsified if the two hash values do not match. . If the audit unit 140 determines that the transaction data of the transaction data container is tampered with, the audit unit 140 skips the audit support process based on the audit request. In this case, the audit unit 140 may record alert information indicating that the transaction data is falsified in a predetermined log or notify the predetermined external device of the alert information.

監査部140は、取引データコンテナの取引データに改ざんがないと判定した場合、監査要求に基づく監査支援処理を継続する。監査部140は、監査要求で指定された財IDに対応付けられた複数の取引データの和から、財の取引に関する要素を射影したデータである財取引連鎖データを生成する。監査部140は、財取引連鎖データに基づいて、監査要求で指定された財IDで識別される財の取引に関する監査を支援するデータ(以下「監査支援データ」とも呼ぶ。)を生成する。   If it is determined that the transaction data of the transaction data container is not tampered with, the audit unit 140 continues the audit support processing based on the audit request. The auditing unit 140 generates goods transaction chain data, which is data obtained by projecting an element related to goods transactions, from the sum of a plurality of pieces of transaction data associated with the goods ID specified in the audit request. The audit unit 140 generates data (hereinafter, also referred to as “audit support data”) that supports an audit related to the transaction of the goods identified by the goods ID specified in the audit request, based on the goods transaction chain data.

監査データ送信部142は、監査部140により生成された監査支援データを監査者装置104へ送信する。または、監査データ送信部142は、監査支援データを監査ログとして所定の記憶装置に記憶させてもよい。   The audit data transmission unit 142 transmits the audit support data generated by the audit unit 140 to the auditor device 104. Alternatively, the audit data transmission unit 142 may store audit support data as an audit log in a predetermined storage device.

監査部140は、唯一性監査部144、生産者監査部146、取引経路監査部148を含む。唯一性監査部144は、財取引連鎖データを相殺することにより、監査要求で指定された財IDで識別される財の取引の唯一性に関するデータを監査支援データとして生成する。財の取引の唯一性に関するデータは、財の二重売買(重複した売買)の有無を示すデータであってもよい。   The audit unit 140 includes a uniqueness audit unit 144, a producer audit unit 146, and a transaction path audit unit 148. The uniqueness audit unit 144 generates data as audit support data on the uniqueness of the transaction of the good identified by the good ID specified in the audit request by offsetting the good transaction chain data. The data on the uniqueness of the trade of goods may be data indicating the presence or absence of double trade of goods (duplicate trade).

生産者監査部146は、財取引連鎖データを相殺することにより、監査要求で指定された財IDで識別される財を生産した主体(「生産主体」とも呼ぶ。)、または、当該財の一連の取引を開始した主体(「取引開始主体」とも呼ぶ。)に関するデータを監査支援データとして生成する。   The producer audit part 146, by offsetting the goods transaction chain data, an entity (also referred to as "production entity") which produced the goods identified by the goods ID specified in the audit request, or a series of the goods Data on an entity (also referred to as a “transaction initiating entity”) that has initiated the transaction of the above is generated as audit support data.

取引経路監査部148は、財取引連鎖データを相殺することにより、監査要求で指定された財IDで識別される財の一連の取引の取引開始主体、または、一連の取引の終端の主体(「取引終端主体」とも呼ぶ。)を識別する。取引経路監査部148は、取引開始主体または取引終端主体を含む取引データを起点として当該財の取引を示す他の取引データを辿ることにより、当該財の取引経路に関するデータを監査支援データとして生成する。   The transaction path auditing unit 148, by offsetting the commodity transaction chain data, starts the transaction initiating entity of the series of transactions of the commodity identified by the commodity ID specified in the audit request, or the entity of the terminal of the series of transactions (“ Identify the end-of-transaction entity). The transaction path auditing unit 148 generates data on the transaction path of the product as audit support data by tracing the other transaction data indicating the transaction of the product starting from the transaction data including the transaction initiating entity or the transaction terminating entity. .

以上の構成による取引管理システム100の動作を説明する。
ここでは、主体Aから主体Bへ販売され、さらに主体Bから主体Cへ販売された財に対して、監査者Dが監査を行うこととする。監査者Dは、例えば、主体Cから上記財の購入を検討している者でもよい。
The operation of the transaction management system 100 having the above configuration will be described.
Here, the auditor D audits the goods sold from the subject A to the subject B and from the subject B to the subject C. The auditor D may be, for example, a person who is examining the purchase of the above-mentioned good from the subject C.

具体的には、主体Aが主体Bへリンゴ2Kg(ロットのIDは「apple_243」)を800円で販売した。この取引は、上記の式1(x1)、式2(x2)の取引記述で表される。また、主体Bが主体Cへリンゴ2Kg(ロットのIDは「apple_243」)を1000円で販売した。この取引は、以下の式3、式4で表される。式3は、主体B側の取引記述であり、式4は、主体C側の取引記述である。
x2 = 2^<Apple, Kg, apple_243, id_B> + 1000<Cash, Yen, *, id_B> ・・(式3)
y2 = 2<Apple, Kg, apple_243, id_C> + 1000^<Cash, Yen, *, id_C> ・・(式4)
Specifically, subject A sold apple 2 kg (the lot ID is “apple — 243”) to subject B for 800 yen. This transaction is represented by the transaction description of the above-mentioned Formula 1 (x1) and Formula 2 (x2). In addition, the subject B sold 2 Kg of an apple to the subject C (ID of lot is “apple — 243”) for 1000 yen. This transaction is expressed by Equation 3 and Equation 4 below. Formula 3 is a transaction description on the subject B side, and formula 4 is a transaction description on the subject C side.
x2 = 2 ^ <Apple, Kg, apple_243, id_B> + 1000 <Cash, Yen, *, id_B> (Equation 3)
y2 = 2 <Apple, Kg, apple_243, id_C> + 1000 ^ <Cash, Yen, *, id_C> (Equation 4)

式1と式2の取引データは、実物簿記であり、販売側の原価情報を含まないため、取引当事者のAとB間で共有可能である。同様に、式3と式4の取引データも、実物簿記であり、販売側の原価情報を含まないため、取引当事者のBとC間で共有可能である。   The transaction data of Formula 1 and Formula 2 are real bookkeeping and can be shared between A and B of the transaction parties because they do not include the selling side cost information. Similarly, the transaction data of Equation 3 and Equation 4 are also real bookkeeping, and can be shared between B and C of the transaction parties because they do not include the selling side cost information.

主体Aまたは主体Bは、自社の取引者装置102に取引実績データを入力する。取引者装置102の取引データコンテナ生成部122は、取引実績データに基づいて、図12で示した取引データコンテナを生成する。取引者装置102の取引データコンテナ登録部124は、その取引データコンテナを取引データ保管装置106に登録する。また、取引者装置102の取引ハッシュコンテナ生成部126は、取引実績データに基づいて、図13で示した取引ハッシュコンテナを生成する。取引者装置102の取引ハッシュコンテナ登録部128は、その取引ハッシュコンテナを取引管理装置108に登録する。   The subject A or the subject B inputs transaction result data to its own trader device 102. The transaction data container generation unit 122 of the trader device 102 generates the transaction data container shown in FIG. 12 based on the transaction result data. The transaction data container registration unit 124 of the trader device 102 registers the transaction data container in the transaction data storage device 106. Further, the transaction hash container generation unit 126 of the trader device 102 generates the transaction hash container shown in FIG. 13 based on the transaction result data. The transaction hash container registration unit 128 of the transaction apparatus 102 registers the transaction hash container in the transaction management apparatus 108.

主体Bまたは主体Cは、自社の取引者装置102に取引実績データを入力する。取引者装置102の取引データコンテナ生成部122は、取引データコンテナを生成し、取引データコンテナ登録部124は、その取引データコンテナを取引データ保管装置106に登録する。また、取引者装置102の取引ハッシュコンテナ生成部126は、取引ハッシュコンテナを生成し、取引ハッシュコンテナ登録部128は、その取引ハッシュコンテナを取引管理装置108に登録する。ここでの取引データコンテナの例を図15に示し、取引ハッシュコンテナの例を図16に示す。   The subject B or the subject C inputs transaction result data to the trader apparatus 102 of the company. The transaction data container generation unit 122 of the trader device 102 generates a transaction data container, and the transaction data container registration unit 124 registers the transaction data container in the transaction data storage device 106. Also, the transaction hash container generation unit 126 of the trader device 102 generates a transaction hash container, and the transaction hash container registration unit 128 registers the transaction hash container in the transaction management device 108. An example of the transaction data container here is shown in FIG. 15, and an example of the transaction hash container is shown in FIG.

監査者Dは、財ID「apple_243」を指定した監査要求を監査者装置104から取引管理装置108へ送信させる。取引管理装置108の監査要求受付部134は、監査者装置104から送信された監査要求を受け付ける。実施例での監査要求は、(1)取引の唯一性の監査要求、(2)財生産者に関する監査要求、(3)取引経路の監査要求を含みうる。   The auditor D transmits an audit request specifying the item ID “apple — 243” from the auditor device 104 to the transaction management device 108. The audit request accepting unit 134 of the transaction management device 108 accepts the audit request transmitted from the auditor device 104. The audit request in the embodiment may include (1) audit request for uniqueness of transaction, (2) audit request for goods producer, and (3) audit request for transaction path.

取引管理装置108の取引データコンテナ抽出部136は、取引データ保管装置106に記憶された複数の取引データコンテナの中から、監査要求で指定された財IDに対応づけられた取引データコンテナを検索し、この例では2つの取引データコンテナ(図12、図15)を取得する。また、取引ハッシュコンテナ抽出部138は、取引ハッシュコンテナ記憶部130に記憶された複数の取引ハッシュコンテナの中から、監査要求で指定された財IDに対応づけられた取引ハッシュコンテナを検索し、この例では2つの取引ハッシュコンテナ(図13、図16)を取得する。   The transaction data container extraction unit 136 of the transaction management device 108 searches the plurality of transaction data containers stored in the transaction data storage device 106 for the transaction data container associated with the item ID specified in the audit request. In this example, two transaction data containers (FIG. 12, FIG. 15) are acquired. Further, the transaction hash container extraction unit 138 searches the transaction hash container associated with the item ID specified in the audit request from among the plurality of transaction hash containers stored in the transaction hash container storage unit 130, and In the example, two transaction hash containers (FIG. 13, FIG. 16) are acquired.

監査部140は、取引データコンテナ抽出部136により取得された各取引データコンテナの取引データの改ざん有無を、対応する取引ハッシュコンテナの取引ハッシュデータに基づいて判定する。複数の取引データコンテナのいずれも改ざんされていない場合、監査部140は、複数の取引データコンテナの取引データを、予め記憶された取引管理装置108の秘密鍵を用いて復号する。例えば、監査部140は、図12の取引データコンテナの取引データから取引記述x1とy1を取得し、図15の取引データコンテナの取引データから取引記述x2とy2を取得する。以下、x1、y1、x2、y2を単に取引データとも呼ぶ。   The audit unit 140 determines whether the transaction data of each transaction data container acquired by the transaction data container extraction unit 136 is tampered with based on the transaction hash data of the corresponding transaction hash container. If none of the plurality of transaction data containers has been tampered with, the audit unit 140 decrypts the transaction data of the plurality of transaction data containers using the secret key of the transaction management device 108 stored in advance. For example, the audit unit 140 acquires the transaction descriptions x1 and y1 from the transaction data of the transaction data container of FIG. 12, and acquires the transaction descriptions x2 and y2 from the transaction data of the transaction data container of FIG. Hereinafter, x1, y1, x2 and y2 are also simply referred to as transaction data.

監査部140は、監査要求で指定された財ID「apple_243」についての取引連鎖データ(交換代数チェインとも言え、以下「ExalgeChain」とも呼ぶ。)を生成する。取引連鎖データは、監査要求で指定された財IDを持つ取引データコンテナから抽出した取引データの和をとったものとなる。一般に、ある財の取引連鎖データを「ExalgeChain[財のID]」と表現する。ここでの例では、監査部140は、取引連鎖データとして以下の式(5)を生成する。   The audit unit 140 generates transaction chain data (also referred to as exchange algebra chain, hereinafter also referred to as “ExalgeChain”) for the item ID “apple — 243” specified in the audit request. The transaction chain data is the sum of transaction data extracted from the transaction data container having the item ID specified in the audit request. Generally, transaction chain data of a certain good is expressed as "ExalgeChain [goods ID]". In the example here, the audit unit 140 generates the following equation (5) as the transaction chain data.

ExalgeChain[apple_243] = Σ{x|x∈{x1, y1}∪{x2, y2}}
= 2^<Apple, Kg, apple_243, id_A> + 800<Cash, Yen, *, id_A>
+ 2<Apple, Kg, apple_243, id_B> + 800^<Cash, Yen, *, id_B>
+ 2^<Apple, Kg, apple_243, id_B> + 1000<Cash, Yen, *, id_B>
+ 2<Apple, Kg, apple_243, id_C> + 1000^<Cash, Yen, *, id_C> ・・(式5)
ExalgeChain [apple_243] = {{x | x ∈ {x1, y1} ∪ {x2, y2}}
= 2 ^ <Apple, Kg, apple_243, id_A> + 800 <Cash, Yen, *, id_A>
+ 2 <Apple, Kg, apple_243, id_B> + 800 ^ <Cash, Yen, *, id_B>
+ 2 ^ <Apple, Kg, apple_243, id_B> + 1000 <Cash, Yen, *, id_B>
+ 2 <Apple, Kg, apple_243, id_C> + 1000 ^ <Cash, Yen, *, id_C> (Equation 5)

監査部140は、取引連鎖データから財の取引に関する要素のみを射影した交換代数データを、財取引連鎖データ(交換代数プロダクトチェインとも言え、以下「ExalgeProductChain」とも呼ぶ。)として生成する。財取引連鎖データは、取引対象の財の最初の販売者(例えば財の生産者)から最後の購入者(例えば最終消費者)までの、財の売買の連鎖を表すデータである。ここでの例では、監査部140は、財取引連鎖データとして以下の式6を生成する。   The audit unit 140 generates exchange algebra data obtained by projecting only elements related to the trade of goods from the trade chain data as goods trade chain data (also referred to as exchange algebra product chain and hereinafter also referred to as “ExalgeProductChain”). The goods transaction chain data is data representing a chain of buying and selling goods from the first seller (for example, producer of goods) of the goods to be traded to the last buyer (for example, final consumer). In the example here, the audit unit 140 generates the following equation 6 as goods transaction chain data.

w1 = Projection[<Apple, *, apple_243, *>](ExalgeChain[apple_243])
= 2<Apple, Kg, apple_243, id_B> + 2<Apple, Kg, apple_243, id_C>
w2 = Projection[^<Apple, *, apple_243, *>](ExalgeChain[apple_243])
= 2^<Apple, Kg, apple_243, id_A> + 2^<Apple, Kg, apple_243, id_B>
ExalgeProductChain[apple_243] = w1 + w2
= 2<Apple, Kg, apple_243, id_B> + 2<Apple, Kg, apple_243, id_C> + 2^<Apple, Kg, apple_243, id_A> + 2^<Apple, Kg, apple_243, id_B> ・・(式6)
実施例の監査部140は、この財取引連鎖データに基づいて、種々の監査支援データを生成する。
w1 = Projection [<Apple, *, apple_243, *>] (ExalgeChain [apple_243])
= 2 <Apple, Kg, apple_243, id_B> + 2 <Apple, Kg, apple_243, id_C>
w2 = Projection [^ <Apple, *, apple_243, *>] (ExalgeChain [apple_243])
= 2 ^ <Apple, Kg, apple_243, id_A> + 2 ^ <Apple, Kg, apple_243, id_B>
ExalgeProductChain [apple_243] = w1 + w2
= 2 <Apple, Kg, apple_243, id_B> + 2 <Apple, Kg, apple_243, id_C> + 2 ^ <Apple, Kg, apple_243, id_A> + 2 ^ <Apple, Kg, apple_243, id_B> 6)
The audit unit 140 of the embodiment generates various audit support data based on the goods transaction chain data.

(1)取引の唯一性の監査要求を受け付けた場合:
唯一性監査部144は、財取引連鎖データに相殺オペレーションを施す。ここでの例では、唯一性監査部144は、相殺結果として、以下の式7を生成する。
~(ExalgeProductChain[apple_243]) = 2<Apple, Kg, apple_243, id_C> + 2^<Apple, Kg, apple_243, id_A> ・・(式7)
財取引連鎖データに相殺オペレーションを施すことにより、中間売買としての主体Bによる売買が相殺され、最初の販売者(ここでは主体A)と、最後の購入者(ここでは主体C)が抽出される。また、最初の販売者から最後の購入者までの間に何段階の売買が存在しても、実物簿記であるため価格の変化に関係なく中間の売買は相殺される。
(1) When an audit request for uniqueness of transaction is received:
The uniqueness audit unit 144 performs the offset operation on the good transaction chain data. In the example here, the uniqueness audit unit 144 generates Equation 7 below as the offset result.
~ (ExalgeProductChain [apple_243]) = 2 <Apple, Kg, apple_243, id_C> + 2 ^ <Apple, Kg, apple_243, id_A>
By performing an offset operation on the goods transaction chain data, the trade by Entity B as an intermediate trade is offset, and the first seller (here, Entity A) and the last buyer (here, Entity C) are extracted. . Also, regardless of the number of stages of trading between the first seller and the last buyer, the middle trading is offset regardless of the change in price because it is a real bookkeeping.

財取引連鎖データの相殺結果において、最初の販売者による販売量は、「^」有りの項の取引量となり、「^」有りの項が複数存在すれば、それら複数の項の取引量の合計となる。また、最後の購入者による購入量は、「^」なしの項の取引量となり、「^」なしの項が複数存在すれば、それら複数の項の取引量の合計となる。取引の唯一性が維持されている場合、財取引連鎖データの相殺結果では、最初の販売者による販売量(この例では「^」付きのリンゴ2Kg)と、最後の購入者による購入量(この例では「^」なしのリンゴ2Kg)は等しくなる。一方、取引に唯一性がない場合、例えば主体Bが主体Cとは別の主体Eに「apple_243」と偽ってリンゴを販売していた場合、最初の販売者による販売量と、最後の購入者による購入量が不一致となる。   In the offset result of the goods transaction chain data, the first sales volume by the seller is the transaction volume of the item with "^", and if there are multiple terms with "^", the total of the transaction volumes of those multiple terms It becomes. In addition, the amount purchased by the final purchaser is the transaction amount of the term without "^", and if there are a plurality of terms without "^", the total of the transaction amounts of the plurality of terms is obtained. If the uniqueness of the transaction is maintained, the offset result of the goods transaction chain data is the sales volume by the first seller (in this example, 2 kg of apples with "^") and the purchase volume by the last buyer (this In the example, 2 Kg of apples without "^" are equal. On the other hand, when the transaction is not unique, for example, when the entity B falsely sells an apple as "apple_243" to the subject E different from the subject C, the sales volume by the first seller and the last buyer The amount purchased by will not match.

唯一性監査部144は、財取引連鎖データの相殺結果において、最初の販売者による販売量と、最後の購入者による購入量とが一致する場合、財ID「apple_243」の取引に唯一性がある旨の監査支援データを生成する。一方、唯一性監査部144は、最初の販売者による販売量と、最後の購入者による購入量とが不一致の場合、財ID「apple_243」の取引に唯一性がない旨の監査支援データを生成する。この監査支援データは、取引の唯一性の認証結果データとも言える。この態様によると、監査者により指定された財の取引の唯一性の有無を効率的に検出し、監査者へ提示することができる。   The uniqueness inspection unit 144 is unique in the transaction of the good ID "apple_243" when the sales volume by the first seller and the purchase amount by the last purchaser match in the offset result of the goods transaction chain data Generate audit support data. On the other hand, when the sales volume by the first seller and the purchase amount by the last buyer do not match, the uniqueness audit unit 144 generates audit support data indicating that the transaction of the good ID “apple_243” is not unique. Do. This audit support data can also be said to be certification result data of transaction uniqueness. According to this aspect, it is possible to efficiently detect the presence or absence of the uniqueness of the trade of the goods designated by the auditor and present it to the auditor.

(2)財生産者に関する監査要求を受け付けた場合:
生産者監査部146は、唯一性監査部144と同様に、財取引連鎖データに相殺オペレーションを施す。ここでの例では、生産者監査部146は、相殺結果として、上記の式7を生成する。
(2) When receiving an audit request for a goods producer:
Similar to the uniqueness audit unit 144, the producer audit unit 146 performs the offset operation on the good transaction chain data. In the example here, the producer audit part 146 generates Equation 7 above as the offset result.

生産者監査部146は、財取引連鎖データの相殺結果において、「^」有りの項の取引者(すなわち基底の4番目のデータ)を、財の最初の販売者または財の生産者として示す監査支援データを生成する。ここでの監査支援データは、生産者の認証結果データとも言える。この態様によると、監査者により指定された財の生産者または取引開始者を効率的に検出し、監査者へ提示することができる。   The producer auditing section 146 audits the trader in the item with “^” (ie, the fourth data in the base) as the first seller of the goods or the producer of the goods in the offset result of the goods transaction chain data. Generate support data. The audit support data here can be said to be the certification result data of the producer. According to this aspect, it is possible to efficiently detect the producer or the trade initiator of the goods designated by the auditor and present it to the auditor.

(3)取引経路の監査要求を受け付けた場合:
取引経路監査部148は、唯一性監査部144と同様に、財取引連鎖データに相殺オペレーションを施す。ここでの例では、取引経路監査部148は、相殺結果として、上記の式7を生成する。取引経路監査部148は、財取引連鎖データの相殺結果において、「^」有りの項の取引者(すなわち基底の4番目のデータ)を、財の最初の販売者として識別する。財の最初の販売者は、財の一連の取引における最上流の取引者であり、以下「取引開始者」と呼ぶ。
(3) When a transaction route audit request is received:
Similar to the uniqueness audit unit 144, the transaction path audit unit 148 performs the offset operation on the good transaction chain data. In the example here, the transaction path auditing unit 148 generates Equation 7 above as the offset result. The trade path auditing unit 148 identifies the trader in the term with “^” (ie, the fourth data in the base) as the first seller of the goods in the offset result of the goods transaction chain data. The first seller of a good is the top-of-the-line trader in a series of goods trades and will be referred to hereinafter as the "trade initiator."

取引経路監査部148は、取引データコンテナ抽出部136に、監査要求で指定された財IDに対応付けられた取引データコンテナであり、かつ、取引者IDの販売者側の値が取引開始者のIDに一致する取引データコンテナを取引データ保管装置106から取得させる。取引経路監査部148は、取得された取引データコンテナにおける取引者IDの購入者側の値を、2番目の取引者として識別する。また、取引経路監査部148は、取引データコンテナ抽出部136に、監査要求で指定された財IDに対応付けられた取引データコンテナであり、かつ、取引者IDの販売者側の値が2番目の取引者のIDに一致する取引データコンテナを取引データ保管装置106から取得させる。   The transaction path auditing unit 148 is a transaction data container associated with the item ID designated in the audit request to the transaction data container extracting unit 136, and the value of the seller side of the trader ID is the transaction initiator A transaction data container matching the ID is acquired from the transaction data storage device 106. The trade path auditing unit 148 identifies the purchaser's value of the trader ID in the acquired trade data container as the second trader. Further, the transaction path auditing unit 148 is a transaction data container associated with the item ID specified in the audit request in the transaction data container extracting unit 136, and the value of the seller side of the trader ID is second. A transaction data container that matches the ID of the trader of the transaction is acquired from the transaction data storage device 106.

取引経路監査部148は、取得された取引データコンテナにおける取引者IDの購入者側の値を、3番目の取引者として識別する。これを繰り返してN番目の取引者を識別する。取引経路監査部148は、監査要求で指定された財IDに対応付けられた取引データコンテナであり、かつ、取引者IDの販売者側の値がN番目の取引者のIDに一致する取引データコンテナが、取引データ保管装置106に存在しない場合、N番目の取引者を最後の購入者として識別する。   The trade path auditing unit 148 identifies the purchaser's value of the trader ID in the acquired trade data container as the third trader. Repeat this to identify the N-th trader. The transaction path auditing unit 148 is a transaction data container associated with the item ID specified in the audit request, and transaction data in which the value of the seller side of the trader ID matches the ID of the N-th trader If the container does not exist in the transaction data storage device 106, the Nth trader is identified as the last purchaser.

このように、取引経路監査部148は、取引開始者の取引データコンテナを起点として、同じ財の取引を示す他の取引データコンテナを辿ることにより、最後の購入者まで識別する。例えば、監査要求で財ID「apple_243」が指定された場合、取引経路監査部148は、図12および図15の取引データコンテナを順次取得し、最初の販売者「主体A」、中間の取引者「主体B」、最後の購入者「主体C」を識別する。   In this manner, the transaction path auditing unit 148 identifies the last purchaser by tracing the other transaction data containers indicating the same good transaction starting from the transaction data container of the transaction initiator. For example, if the item ID “apple — 243” is specified in the audit request, the transaction path auditing unit 148 sequentially acquires the transaction data containers shown in FIGS. 12 and 15, and the first seller “subject A”, middle trader Identify "subject B", the last buyer "subject C".

取引経路監査部148は、最初の販売者から、中間の取引者を挟み、最後の購入者までを並べて示す取引経路図を監査支援データとして生成する。図17は、取引経路図の例を示す。取引経路監査部148は、取引開始者の取引データコンテナと、当該コンテナを起点として順次辿った他の取引データコンテナそれぞれの取引データを参照して、各取引者間での財の取引量を識別し、取引量を取引経路図に設定する。この態様によると、財が生産されてから現在まで、どのような経路で販売されてきたかの監査を支援することができる。   The transaction path auditing unit 148 generates, as audit support data, a transaction path diagram showing, from the first seller, the middle trader and arranging up to the last purchaser. FIG. 17 shows an example of a transaction path diagram. The transaction path auditing unit 148 refers to the transaction data container of the transaction initiator and the transaction data of each of the other transaction data containers sequentially traced starting from the container, and identifies the volume of goods trade among the respective traders And set the trading volume in the trading route diagram. According to this aspect, it is possible to support an audit as to what route the goods have been sold to the present.

なお、ここでは、財の流通を、最初の販売者から下流方向へ辿ったが、変形例として、財の流通を、最後の購入者から上流方向へ遡って、中間の取引者、最初の販売者を順次識別してもよい。例えば、取引経路監査部148は、財取引連鎖データの相殺結果において、「^」なしの項の取引者を、財の最後の購入者として識別してもよい。取引経路監査部148は、当該購入者に対応する取引データコンテナを起点として、同じ財の取引に関する他の取引データコンテナを順次取得してもよい。   Here, the distribution of goods is traced from the first seller to the downstream, but as a modification, the distribution of goods is traced from the last buyer to the upstream, and the middle trader, the first sales Persons may be identified sequentially. For example, the trade path auditing unit 148 may identify the trader in the item without “^” as the last purchaser of the good in the offset result of the good transaction chain data. The transaction path auditing unit 148 may sequentially acquire other transaction data containers related to the same good transaction starting from the transaction data container corresponding to the purchaser.

別の変形例として、取引経路監査部148は、取引データコンテナ抽出部136に、監査要求で指定された財IDに対応付けられた1つ以上の取引データコンテナを取引データ保管装置106から取得させてもよい。取引経路監査部148は、取得された1つ以上の取引データコンテナを取引日時の順(言い換えれば取引の時系列)に並べ、取引日時が最も早い取引データコンテナから、取引日時が後の取引データコンテナへ順次辿っていくことにより、最初の販売者、中間の取引者、最後の購入者を識別してもよい。   As another modification, the transaction path auditing unit 148 causes the transaction data container extracting unit 136 to obtain one or more transaction data containers associated with the item ID specified in the audit request from the transaction data storage device 106. May be The transaction path auditing unit 148 arranges the acquired one or more transaction data containers in order of transaction date and time (in other words, time series of transactions), and from the transaction data container with the earliest transaction date and time, transaction data whose transaction date is later The sequential sellers may identify the first seller, the middle trader, and the last buyer.

(第2実施例)
第1実施例における取引経路は、途中で分割されず、また、途中で合成がないこととした。しかし、実際のビジネスでは、購入したリンゴ2Kgを、1Kgずつ異なる主体へ販売する分割が行われることがあり、この場合、取引経路の分割が発生する。また、リンゴと砂糖を原料としてジャムを生産し、そのジャムを別途購入したガラス瓶に入れて販売する場合、取引経路の合成が発生する。第2実施例では、取引経路が分割され、もしくは合成される場合のトレーサビリティを向上させる技術を提案する。
Second Embodiment
The trade route in the first embodiment is not divided midway, and there is no synthesis midway. However, in an actual business, there may be a division in which 2 Kg of purchased apples are sold to different subjects by 1 Kg, and in this case, a division of the transaction path occurs. Also, when producing jams using apples and sugar as raw materials and putting the jams in separately purchased glass bottles and selling them, synthesis of the trading route occurs. In the second embodiment, a technique is proposed to improve traceability in the case where transaction routes are divided or combined.

第2実施例の取引管理システム100の構成、および、取引管理システム100の各装置の機能は、第1実施例と同様である。以下、第1実施例で説明済みの内容は適宜省略し、主に、第1実施例と異なる点を説明する。   The configuration of the transaction management system 100 of the second embodiment and the function of each device of the transaction management system 100 are the same as in the first embodiment. Hereinafter, the contents described in the first embodiment will be omitted as appropriate, and mainly the points different from the first embodiment will be described.

1.取引経路が分割を含む場合(言い換えれば流通過程で財が分割される取引):
取引データ保管装置106は、財の流通過程において当該財の流通経路が複数に分割された場合、流通経路分割前の財のIDである分割前IDと、分割後の各々の流通経路における財のIDである複数の分割後IDとの対応関係を示す取引データを記憶する。取引管理装置108の監査部140は、監査要求で分割前IDまたは分割後ID(例えば複数の分割後IDのいずれか)が指定された場合、分割前IDに対応付けられた取引データと、分割後ID(例えば複数の分割後IDのそれぞれ)に対応づけられた取引データの両方に基づいて財取引連鎖データを生成する。
1. When the transaction path includes a split (in other words, a transaction in which goods are split in the distribution process):
When the distribution channel of the goods is divided into a plurality of parts in the distribution process of the goods, the transaction data storage device 106 pre-division ID, which is the ID of the goods before the division, and the goods in each of the distribution paths after division. The transaction data indicating the correspondence with a plurality of post-division IDs, which are IDs, is stored. When the pre-division ID or the post-division ID (for example, any of a plurality of post-division IDs) is designated in the audit request, the audit unit 140 of the transaction management device 108 divides the transaction data associated with the pre-division ID with Goods transaction chain data is generated based on both of the transaction data associated with the post ID (e.g., each of the plurality of post-division IDs).

例として、食品の流通では、始点となる生産者から出荷された商品が、卸売から小売になる段階で小分けされ、販売されることがある。図18は、流通過程で財が分割される取引の例を示す。この例では、主体Bが、リンゴのIDの付け替えを行う。この場合、主体Bの所でも新たなIDのリンゴが生産されたこととして、この生産を主体Bの内部取引として記述することで、分割前の取引と分割後の取引を接続することができる。   As an example, in the distribution of food, goods shipped from a starting producer may be subdivided and sold from wholesale to retail. FIG. 18 shows an example of a transaction in which a good is divided in the distribution process. In this example, the subject B changes the ID of the apple. In this case, it is possible to connect the pre-division transaction and the post-division transaction by describing the production as the internal transaction of the subject B as an apple with a new ID is produced even at the subject B.

この例では、主体Aから主体Bへリンゴ2Kgが800円で販売されたとする。この取引は以下の式8、式9で表される。
x1 = 2^<Apple, Kg, apple_243, id_A> + 800<Cash, Yen, *, id_A> ・・(式8)
y1 = 2<Apple, Kg, apple_243, id_B> + 800^<Cash, Yen, *, id_B> ・・(式9)
主体Aまたは主体Bの取引者装置102は、式8と式9の取引記述を格納した取引データコンテナを取引データ保管装置106に登録する。
In this example, it is assumed that 2 kg of apples are sold for 800 yen from subject A to subject B. This transaction is expressed by Equation 8 and Equation 9 below.
x1 = 2 ^ <Apple, Kg, apple_243, id_A> + 800 <Cash, Yen, *, id_A> (Equation 8)
y1 = 2 <Apple, Kg, apple_243, id_B> + 800 ^ <Cash, Yen, *, id_B> (Equation 9)
The trader device 102 of the entity A or B registers the transaction data container storing the transaction descriptions of the equations 8 and 9 in the transaction data storage device 106.

また、主体Bは、リンゴ2Kgのロットから、リンゴ1Kgのロット2つを生産し、各ロットに新たなロット番号(財ID)を付与する。このことは以下の式10で表される。なお、新たな財IDを「apple_243_1」、「apple_243_2」とする。
x2 = 2^<Apple, Kg, apple_243, id_B> + 1<Apple, Kg, apple_243_1, id_B> + 1<Apple, Kg, apple_243_2, id_B> ・・(式10)
Also, Subject B produces two lots of 1 kg of apples from a lot of 2 kg of apples, and assigns a new lot number (goods ID) to each lot. This is expressed by the following equation 10. The new item IDs are "apple_243_1" and "apple_243_2".
x2 = 2 ^ <Apple, Kg, apple_243, id_B> + 1 <Apple, Kg, apple_243_1, id_B> + 1 <Apple, Kg, apple_243_2, id_B>

主体Bの取引者装置102は、式10の取引記述を格納した取引データコンテナを取引データ保管装置106に登録する。取引データコンテナの財IDには、オリジナルの財ID「apple_243」と、分割後の新たな財ID「apple_243_1」「apple_243_2」の両方が設定される。さらに、取引データコンテナには、財の分割を示す取引データ(交換代数データ)を含むことを示すフラグ(以下「分割定義フラグ」とも呼ぶ。)が付加される。   The trader device 102 of the subject B registers the transaction data container storing the transaction description of Expression 10 in the transaction data storage device 106. In the item ID of the transaction data container, both the original item ID “apple — 243” and the new item ID “apple — 243 — 1” “apple — 243 — 2 after division are set. Further, to the transaction data container, a flag (hereinafter also referred to as "division definition flag") indicating that the transaction data (exchange algebra data) indicating division of goods is included is added.

続いて、主体Bから主体Cへリンゴ1Kgが500円で販売され、主体Bから主体Dへリンゴ1Kgが500円で販売されたこととする。前者の取引は、以下の式11、式12で表され、後者の取引は、以下の式13、式14で表される。
x3 = 1^<Apple, Kg, apple_243_1, id_B> + 500<Cash, Yen, *, id_B> ・・(式10)
y2 = 1<Apple, Kg, apple_243_1, id_C> + 500^<Cash, Yen, *, id_C> ・・(式11)
x4 = 1^<Apple, Kg, apple_243_2, id_B> + 500<Cash, Yen, *, id_B> ・・(式12)
y3 = 1<Apple, Kg, apple_243_2, id_D> + 500^<Cash, Yen, *, id_D> ・・(式13)
Subsequently, it is assumed that 1 kg of apples is sold for 500 yen from subject B to subject C, and 1 kg of apples is sold for 500 yen from subject B to subject D. The former transaction is represented by Equation 11 and Equation 12 below, and the latter transaction is represented by Equation 13 and Equation 14 below.
x3 = 1 ^ <Apple, Kg, apple_243_1, id_B> + 500 <Cash, Yen, *, id_B> (Equation 10)
y2 = 1 <Apple, Kg, apple_243_1, id_C> + 500 ^ <Cash, Yen, *, id_C> (Equation 11)
x4 = 1 ^ <Apple, Kg, apple_243_2, id_B> + 500 <Cash, Yen, *, id_B> (Equation 12)
y3 = 1 <Apple, Kg, apple_243_2, id_D> + 500 ^ <Cash, Yen, id, id_D> (Equation 13)

主体Bまたは主体Cの取引者装置102は、式10と式11の取引記述を格納した取引データコンテナを取引データ保管装置106に登録する。また、主体Bまたは主体Dの取引者装置102は、式12と式13の取引記述を格納した取引データコンテナを取引データ保管装置106に登録する。   The trader device 102 of the subject B or the subject C registers the transaction data container storing the transaction descriptions of Equation 10 and Equation 11 in the transaction data storage device 106. Also, the trader device 102 of the subject B or the subject D registers the transaction data container storing the transaction descriptions of Equation 12 and Equation 13 in the transaction data storage device 106.

監査要求では、財ID「apple_243」が指定されたとする。取引管理装置108の取引データコンテナ抽出部136は、財ID「apple_243」に対応付けられた取引データコンテナを取引データ保管装置106から取得する。また、取引データコンテナ抽出部136は、取得した取引データコンテナのうち分割定義フラグが付加された取引データコンテナの取引データに基づいて、ID「apple_243」の財が、ID「apple_243_1」の財と「apple_243_2」の財に分割されたことを検出する。取引データコンテナ抽出部136は、財ID「apple_243_1」または「apple_243_2」に対応付けられた取引データコンテナを取引データ保管装置106からさらに取得する。   It is assumed that the item ID "apple_243" is specified in the audit request. The transaction data container extraction unit 136 of the transaction management device 108 acquires, from the transaction data storage device 106, the transaction data container associated with the item ID “apple — 243”. Further, the transaction data container extraction unit 136 determines that the item with the ID “apple_243” has the item with the ID “apple_243_1”, based on the transaction data of the transaction data container to which the division definition flag is added among the acquired transaction data containers. It detects that it has been divided into “apple_243_2” goods. The transaction data container extraction unit 136 further acquires, from the transaction data storage device 106, the transaction data container associated with the item ID “apple — 243 — 1” or “apple — 243 — 2”.

なお、第1実施例と同様に、取引ハッシュコンテナ抽出部138は、取引データコンテナに対応する取引ハッシュコンテナを取引ハッシュコンテナ記憶部130から取得する。監査部140は、取引データコンテナから生成したハッシュ値と、取引ハッシュコンテナに予め格納されたハッシュ値とを比較することにより、取引データコンテナの改ざん有無を検出する。   As in the first embodiment, the transaction hash container extraction unit 138 acquires a transaction hash container corresponding to the transaction data container from the transaction hash container storage unit 130. The inspection unit 140 detects the presence or absence of tampering of the transaction data container by comparing the hash value generated from the transaction data container with the hash value stored in advance in the transaction hash container.

監査部140は、財ID「apple_243」に対応付けられた取引データコンテナに含まれる取引データと、財ID「apple_243_1」または「apple_243_2」に対応付けられた取引データコンテナに含まれる取引データとの和を取引連鎖データとして生成する(以下の式14)。
ExalgeChain[apple_243] = Σ{x|x∈{x1, y1}∪{x2}∪{x3, y2}∪{x4, y3}}
= 2^<Apple, Kg, apple_243, id_A> + 800<Cash, Yen, *, id_A>
+ 2<Apple, Kg, apple_243, id_B> + 800^<Cash, Yen, *, id_B>
+ 2^<Apple, Kg, apple_243, id_B> + 1<Apple, Kg, apple_243_1, id_B> + 1<Apple, Kg, apple_243_2, id_B>
+ 1^<Apple, Kg, apple_243_1, id_B> + 500<Cash, Yen, *, id_B>
+ 1<Apple, Kg, apple_243_1, id_C> + 500^<Cash, Yen, *, id_C>
+ 1^<Apple, Kg, apple_243_2, id_B> + 500<Cash, Yen, *, id_B>
+ 1<Apple, Kg, apple_243_2, id_D> + 500^<Cash, Yen, *, id_D> ・・(式14)
The auditing unit 140 sums the transaction data included in the transaction data container associated with the item ID “apple_243” and the transaction data included in the transaction data container associated with the item ID “apple_243_1” or “apple_243_2”. Are generated as transaction chain data (equation 14 below).
ExalgeChain [apple_243] = {{x | x ∈ {x1, y1} ∪ {x2} ∪ {x3, y2} ∪ {x4, y3}}
= 2 ^ <Apple, Kg, apple_243, id_A> + 800 <Cash, Yen, *, id_A>
+ 2 <Apple, Kg, apple_243, id_B> + 800 ^ <Cash, Yen, *, id_B>
+ 2 ^ <Apple, Kg, apple_243, id_B> + 1 <Apple, Kg, apple_243_1, id_B> + 1 <Apple, Kg, apple_243_2, id_B>
+ 1 ^ <Apple, Kg, apple_243_1, id_B> + 500 <Cash, Yen, *, id_B>
+ 1 <Apple, Kg, apple_243_1, id_C> + 500 ^ <Cash, Yen, *, id_C>
+ 1 ^ <Apple, Kg, apple_243_2, id_B> + 500 <Cash, Yen, *, id_B>
+ 1 <Apple, Kg, apple_243_2, id_D> + 500 ^ <Cash, Yen, *, id_D> (Equation 14)

監査部140は、上記の取引連鎖データに対して、「apple_243」「apple_243_1」「apple_243_2」を含めて射影操作を行い財取引連鎖データを得る(以下の式15)。
ExalgeProductChain[apple_243]
= Projection[<Apple, *, apple_243, *>](ExalgeChain[apple_243])
+ Projection[^<Apple, *, apple_243, *>](ExalgeChain[apple_243])
+ Projection[<Apple, *, apple_243_1, *>](ExalgeChain[apple_243])
+ Projection[^<Apple, *, apple_243_1, *>](ExalgeChain[apple_243])
+ Projection[<Apple, *, apple_243_2, *>](ExalgeChain[apple_243])
+ Projection[^<Apple, *, apple_243_2, *>](ExalgeChain[apple_243])
= 2^<Apple, Kg, apple_243, id_A> + 2<Apple, Kg, apple_243, id_B> + 2^<Apple, Kg, apple_243, id_B> + 1<Apple, Kg, apple_243_1, id_B> + 1<Apple, Kg, apple_243_2, id_B> + 1^<Apple, Kg, apple_243_1, id_B> + 1<Apple, Kg, apple_243_1, id_C> + 1^<Apple, Kg, apple_243_2, id_B> + 1<Apple, Kg, apple_243_2, id_D> ・・(式15)
The auditing unit 140 performs a projection operation on the above-described transaction chain data, including “apple_243”, “apple_243_1”, and “apple_243_2”, to obtain good transaction chain data (Equation 15 below).
ExalgeProductChain [apple_243]
= Projection [<Apple, *, apple_243, *>] (ExalgeChain [apple_243])
+ Projection [^ <Apple, *, apple_243, *>] (ExalgeChain [apple_243])
+ Projection [<Apple, *, apple_243_1, *>] (ExalgeChain [apple_243])
+ Projection [^ <Apple, *, apple_243_1, *>] (ExalgeChain [apple_243])
+ Projection [<Apple, *, apple_243_2, *>] (ExalgeChain [apple_243])
+ Projection [^ <Apple, *, apple_243_2, *>] (ExalgeChain [apple_243])
= 2 ^ <Apple, Kg, apple_243, id_A> + 2 <Apple, Kg, apple_243, id_B> + 2 ^ <Apple, Kg, apple_243, id_B> + 1 <Apple, Kg, apple_243_1, id_B> + 1 <Apple , Kg, apple_243_2, id_B> + 1 ^ <Apple, Kg, apple_243_1, id_B> + 1 <Apple, Kg, apple_243_1, id_C> + 1 ^ <Apple, Kg, apple_243_2, id_B> + 1 <Apple, Kg, apple_243_2 , id_D> · · · (Equation 15)

監査部140は、第1実施例と同様に、財取引連鎖データに基づいて、種々の監査支援データを生成可能である。例えば、式15の財取引連鎖データに相殺オペレーションを施すと以下の式16が得られる。
~(ExalgeProductChain[apple_243]) = 2^<Apple, Kg, apple_243, id_A> + 1<Apple, Kg, apple_243_1, id_C> + 1<Apple, Kg, apple_243_2, id_D> ・・(式16)
唯一性監査部144、生産者監査部146、取引経路監査部148は、式16に示す財取引連鎖データの相殺結果に基づいて、第1実施例と同様の手順により監査支援データを生成することができる。
As in the first embodiment, the audit unit 140 can generate various audit support data based on the goods transaction chain data. For example, the following equation 16 is obtained by performing the offset operation on the goods transaction chain data of equation 15.
~ (ExalgeProductChain [apple_243]) = 2 ^ <Apple, Kg, apple_243, id_A> + 1 <Apple, Kg, apple_243_1, id_C> + 1 <Apple, Kg, apple_243_2, id_D>
The uniqueness audit unit 144, the producer audit unit 146, and the transaction path audit unit 148 generate audit support data according to the same procedure as the first embodiment based on the offset result of the goods transaction chain data shown in Expression 16. Can.

上記の監査要求では、流通経路分割前の財ID(「apple_243」)が指定されたが、流通経路分割後の財ID(「apple_243_1」または「apple_243_2」)が指定されてもよい。監査要求で通経路分割後の財ID(ここでは「apple_243_1」とする)が指定された場合、取引データコンテナ抽出部136は、財ID「apple_243_1」に対応付けられた取引データコンテナを取引データ保管装置106から取得する。   Although the item ID (“apple_243”) before the distribution route division is specified in the above-mentioned audit request, the item ID (“apple_243_1” or “apple_243_2”) after the distribution route division may be specified. When the item ID after the route division (here, “apple_243_1”) is specified in the audit request, the transaction data container extraction unit 136 stores the transaction data container associated with the item ID “apple_243_1” as transaction data Acquired from the device 106.

取引データコンテナ抽出部136は、取得した取引データコンテナのうち分割定義フラグが付加された取引データコンテナの取引データに基づいて、ID「apple_243」の財が、ID「apple_243_1」の財と「apple_243_2」の財に分割されたことを検出する。取引データコンテナ抽出部136は、財ID「apple_243」または「apple_243_2」に対応付けられた取引データコンテナを取引データ保管装置106からさらに取得する。以降、上記例と同様に、財ID「apple_243」、「apple_243_1」、または「apple_243_2」に対応付けられた取引データコンテナに基づいて、各種監査支援データを生成可能になる。   Among the acquired transaction data containers, the transaction data container extraction unit 136 determines, based on the transaction data of the transaction data container to which the division definition flag is added, the item of ID “apple_243” is the item of ID “apple_243_1” and “apple_243_2” Detect that it has been divided into The transaction data container extraction unit 136 further acquires, from the transaction data storage device 106, the transaction data container associated with the item ID “apple — 243” or “apple — 243 — 2”. Thereafter, as in the above example, various audit support data can be generated based on the transaction data container associated with the item ID “apple — 243”, “apple — 243 — 1”, or “apple — 243 — 2”.

2.取引経路が合成を含む場合(言い換えれば流通過程で新たな財が生産される取引):
取引データ保管装置106は、財の流通過程において複数の流通経路が1つの流通経路に合成された場合、流通経路合成前の各々の流通経路における財のIDである複数の合成前IDと、合成後の流通経路における財のIDである合成後IDとの対応関係を示す取引データを記憶する。取引管理装置108の監査部140は、監査要求で合成前ID(例えば複数の合成前IDのいずれか)または合成後IDが指定された場合、合成前ID(例えば複数の合成前IDのそれぞれ)に対応付けられた取引データと、合成後IDに対応づけられた取引データの両方に基づいて財取引連鎖データを生成する。
2. If the transaction path involves composition (in other words, a transaction in which new goods are produced in the distribution process):
When a plurality of distribution channels are combined into one distribution channel in the distribution process of goods, the transaction data storage device 106 combines a plurality of pre-combination IDs, which are IDs of goods in each distribution channel before distribution channel composition, The transaction data indicating the correspondence with the post-combination ID, which is the ID of the good in the later distribution channel, is stored. When the pre-combination ID (for example, any one of a plurality of pre-combination IDs) or the post-combination ID is designated in the audit request, the audit unit 140 of the transaction management device 108 pre-combination ID (for example, each of a plurality of pre-combination IDs) The product transaction chain data is generated on the basis of both the transaction data associated with and the transaction data associated with the post-combination ID.

図19は、流通過程で新たな財が生産される取引の例を示す。この例では、主体Cが、主体Aから購入したリンゴ2Kg、主体Bから購入した砂糖600g、主体Cから購入したガラス瓶10個をもとに(瓶入りの)ジャム10個を生産し、そのジャム10個を主体Eへ販売する。   FIG. 19 shows an example of a transaction in which a new good is produced in the distribution process. In this example, subject C produces 10 jams (bottled) based on 2 kg of apples purchased from subject A, 600 g of sugar purchased from subject B, and 10 glass bottles purchased from subject C. Sell 10 pieces to subject E.

主体Aから主体Dへのリンゴ2Kgの販売は次のような取引記述となる。
x1 = 2^<Apple, Kg, apple_243, id_A> + 800<Cash, Yen, *, id_A> ・・(式17)
y1 = 2<Apple, Kg, apple_243, id_D> + 800^<Cash, Yen, *, id_D> ・・(式18)
主体Bから主体Dへの砂糖600gの販売は次のような取引記述となる。
x2 = 600^<Sugar, g, sugar_111, id_B> + 300<Cash, Yen, *, id_B> ・・(式19)
y2 = 600<Sugar, g, sugar_111, id_D> + 300^<Cash, Yen, *, id_D> ・・(式20)
主体Cから主体Dへのガラス瓶10個の販売は次のような取引記述となる。
x3 = 10^<Jar,個, jar_222, id_C> + 100<Cash, Yen, *, id_C> ・・(式21)
y3 = 10<Jar,個, jar_222, id_D> + 100^<Cash, Yen, *, id_D> ・・(式22)
The sale of 2 kg of apple from subject A to subject D is the following transaction description.
x1 = 2 ^ <Apple, Kg, apple_243, id_A> + 800 <Cash, Yen, *, id_A> (17)
y1 = 2 <Apple, Kg, apple_243, id_D> + 800 ^ <Cash, Yen, *, id_D> (Equation 18)
The sale of 600 g of sugar from subject B to subject D results in the following transaction description:
x2 = 600 ^ <Sugar, g, sugar_111, id_B> + 300 <Cash, Yen, *, id_B> (Equation 19)
y2 = 600 <Sugar, g, sugar_111, id_D> + 300 ^ <Cash, Yen, *, id_D> (Equation 20)
The sale of 10 glass bottles from subject C to subject D results in the following transaction description:
x3 = 10 ^ <Jar, q, jar_222, id_C> + 100 <Cash, Yen, *, id_C> (Equation 21)
y3 = 10 <Jar, q, jar_222, id_D> + 100 ^ <Cash, Yen, *, id_D> (Equation 22)

主体Dによるジャムの生産は、主体D内の取引として次のような取引記述となる。
x4 = 2^<Apple, Kg, apple_243, id_D> + 600^<Sugar, g, sugar_111, id_D> + 10^<Jar,個, jar_222, id_D> + 10<Jam,個, jam_333, id_D> ・・(式23)
式23の取引記述を含む取引データコンテナの財IDには、合成前の財IDである「apple_243」「sugar_111」「jar_222」と、合成後の財IDである「jam_333」の両方が設定される。また、当該取引データコンテナには、財の合成(言い換えれば新たな財の生産)を示す取引データを含むことを示すフラグ(以下「合成定義フラグ」とも呼ぶ。生産定義フラグとも言える。)が付加される。
The production of jam by subject D is described as the following transaction description as a transaction within subject D.
x4 = 2 ^ <Apple, Kg, apple_243, id_D> + 600 ^ <Sugar, g, sugar_111, id_D> + 10 ^ <Jar, piece, jar_222, id_D> + 10 <Jam, piece, jam_333, id_D> (Equation 23)
In the goods ID of the transaction data container including the transaction description of Expression 23, both “apple_243”, “sugar_111”, and “jar_222”, which are goods IDs before combining, and “jam_333”, which is goods IDs after combining, are set. . Also, a flag indicating that the transaction data container includes transaction data indicating composition of goods (in other words, production of a new good) (hereinafter also referred to as "composition definition flag", can also be referred to as production definition flag) is added. Be done.

主体Dから主体Eへの(瓶入りの)ジャム10個の販売は次のような取引記述となる。
x1 = 10^<Jam,個, jam_333, id_D> + 2000<Cash, Yen, *, id_D> ・・(式24)
y1 = 10<Jam,個, jam_333, id_E> + 2000^<Cash, Yen, *, id_E> ・・(式25)
The sale of ten (bottled) jams from subject D to subject E results in the following transaction description:
x1 = 10 ^ <Jam, pieces, jam_333, id_D> + 2000 <Cash, Yen, *, id_D>
y1 = 10 <Jam, piece, jam_333, id_E> + 2000 ^ <Cash, Yen, *, id_E> (Equation 25)

このように、財の流通過程で流通経路の合成が生じる場合、言い換えれば、財の流通過程で新たな財が生産される場合であっても、式23に示す合成定義により、ID「apple_243」「 sugar_111」「jar_222」の財が、ID「jam_333」の財に合成されたことを検出可能になる。これにより、監査要求で「apple_243」「 sugar_111」「jar_222」「jam_333」のいずれが指定された場合でも、式17〜式25を合成した取引連鎖データ(さらに財取引連鎖データ)を生成可能になり、原料も含めたジャムの取引に関する各種監査情報を提供できる。例えば、ジャムの購入者(主体E)による、(1)原料も含めた取引の唯一性、(2)原料の生産者、(3)原料も含めた取引経路、の認証および監査を支援することができる。   As described above, when composition of distribution channels occurs in the distribution process of goods, in other words, even when a new good is produced in the distribution process of goods, the ID “apple — 243” It becomes possible to detect that the goods of "sugar_111" and "jar_222" are combined with the goods of ID "jam_333". As a result, it is possible to generate transaction chain data (in addition, goods transaction chain data) combining Eqs. 17 to 25 regardless of which of "apple_243", "sugar_111", "jar_222" and "jam_333" is specified in the audit request. Can provide various audit information on jam transactions including raw materials. For example, support for the certification and audit of (1) uniqueness of transactions including raw materials, (2) producers of raw materials, and (3) trade routes including raw materials by the buyer (entrant E) of jam. Can.

以上、本発明を第1実施例、第2実施例をもとに説明した。これらの実施例は例示であり、各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。   The present invention has been described above based on the first embodiment and the second embodiment. It is understood by those skilled in the art that these embodiments are exemplifications, and that various modifications can be made to the combination of each component and each processing process, and such modifications are also within the scope of the present invention.

第1変形例を説明する。第1実施例および第2実施例において、2主体間での取引が連鎖していき商品が流通する場合、取引データコンテナと取引ハッシュコンテナの登録時、および、監査支援データの生成時に、2主体間での取引情報が当事者以外の第三者へ漏洩せず、認証または監査に関連する情報だけが抽出される一種の「秘密保持計算」が行われる必要がある。   A first modification will be described. In the first embodiment and the second embodiment, when transactions between two entities are chained and goods are distributed, two entities are registered at the time of registration of the transaction data container and the transaction hash container, and at the time of generation of the audit support data. There is a need for a kind of “confidence calculation” in which transaction information between the parties does not leak to a third party other than the party and only information related to authentication or audit is extracted.

一般的に、秘密計算(Secure Computation)と呼ばれる計算は、データを暗号化した状態のまま、暗号化された対象に対して加減乗除等の計算処理を直接行う。しかし、秘密計算は、しばしば多くの計算量を必要とし、大がかりな処理となる一方で、可能な計算は限られている。そのため、秘密計算は、取引チェイン全体に亘る多くの取引データを対象とした認証および監査に向いているとは言えない。   Generally, in a calculation called secure calculation, calculation processing such as addition / subtraction is directly performed on an encrypted object while data is encrypted. However, secret computation often requires a large amount of computation, and while it is a large-scale process, possible computations are limited. As such, secret calculations are not well-suited to authentication and audits of many transaction data across the entire trading chain.

本変形例では、「非開示計算」(Non-Disclosure Computation)の仕組みを導入する。非開示計算では、計算対象のデータを外部に漏らすことがないアルゴリズムが実装されていることが事前に認証(確認)された計算モジュールについて、その計算モジュールが改ざんされていないことを計算実行の都度検証する。   In this modification, a mechanism of “non-disclosure computation” is introduced. In non-disclosure calculation, each time a calculation is performed that a calculation module has not been tampered with for a calculation module that has been certified (confirmed) in advance that an algorithm that does not leak calculation target data is implemented is implemented (confirmed) Verify.

具体的には、交換代数の計算を行うことができる関数計算型の言語で定義された関数(言い換えればフィルタ)に対して、その定義上の安全性をまず検証する。関数計算型の言語で実装された関数であれば、例えばそのソースコードを確認することにより、定義上の安全性を検証すること、具体的には、目的の計算以外の、情報流出に関する処理が関数の定義に含まれていないかを検証することは容易である。   Specifically, for a function (in other words, a filter) defined in a function calculation type language capable of calculating exchange algebra, the security on the definition is first verified. If it is a function implemented in a functional computing language, for example, verifying its definitional security by checking its source code, specifically, processing concerning information leakage other than the target calculation is It is easy to verify if it is not included in the function definition.

こうして検証された関数(ソースコード)をコンパイルしたオブジェクトコード(または実行形式)のハッシュ値をリストに登録する。このリストをホワイトリストと呼び、安全であることが検証された関数をホワイトな関数と呼ぶ。ホワイトな関数を連結してできる合成関数もホワイトな関数となる。ホワイトリストには、関数(機能ブロック)の識別名称と、正当なハッシュ値との組み合わせが複数記録されてもよい。   The hash value of the object code (or execution form) in which the function (source code) thus verified is compiled is registered in the list. This list is called a white list, and the functions verified to be safe are called white functions. A composite function formed by linking white functions is also a white function. A plurality of combinations of identification names of functions (functional blocks) and valid hash values may be recorded in the white list.

関数の実行に際して、実行対象の関数のオブジェクトコード(または実行形式)のハッシュ値を動的に取得し、そのハッシュ値を予め記憶されたホワイトリストにおけるハッシュ値と比較する。そして、両者のハッシュ値が一致した場合にのみ、実行対象の関数を実行する。一方、両者のハッシュ値が不一致の場合、実行対象の関数の実行を抑制する。これにより、交換代数に関する計算処理において外部へ情報が漏洩することを抑制できる。   At the time of execution of the function, the hash value of the object code (or execution form) of the function to be executed is dynamically acquired, and the hash value is compared with the hash value in the white list stored in advance. Then, the function to be executed is executed only when the two hash values match. On the other hand, when the two hash values do not match, the execution of the function to be executed is suppressed. Thereby, it is possible to suppress the leakage of information to the outside in the calculation process regarding the exchange algebra.

この非開示計算の仕組みは、交換代数の計算を行う情報処理装置である取引者装置102および取引管理装置108に導入してもよい。具体的には、取引者装置102の取引データコンテナ生成部122、取引ハッシュコンテナ生成部126、取引管理装置108の監査部140に適用してもよく、これらの機能ブロックの実行開始時に、当該機能ブロックの機能を発揮する計算モジュール(オブジェクトコード)のハッシュ値を取得し、ホワイトリストのハッシュ値と比較してもよい。また、非開示計算の仕組みは、秘密情報を処理する種々の情報処理装置に有用であり、例えば、医療情報を取り扱う情報処理装置に有用である。   This non-disclosure calculation scheme may be introduced to the trader device 102 and the transaction management device 108, which are information processing devices that perform exchange algebra calculations. Specifically, the present invention may be applied to the transaction data container generation unit 122, the transaction hash container generation unit 126, and the audit unit 140 of the transaction management device 108 of the trader device 102, and when the execution of these functional blocks starts The hash value of the calculation module (object code) that exerts the function of the block may be obtained and compared with the hash value of the white list. In addition, the non-disclosure calculation scheme is useful for various information processing apparatuses that process secret information, and is useful, for example, for an information processing apparatus that handles medical information.

なお、ホワイトリストは、取引者装置102と取引管理装置108のそれぞれに記憶されてもよい。また、ホワイトリストは、取引管理装置108(すなわち認証局の装置)に記憶され、取引者装置102は、ホワイトリストのデータを取引管理装置108に問い合わせてもよい。また、ホワイトリストは、図10に不図示の装置に記憶され、取引者装置102および取引管理装置108は、ホワイトリストのデータを上記不図示の装置に問い合わせてもよい。なお、実行環境の同一を担保するためには、コンテナ型仮想化(Docker等)による仮想サーバ(言い換えればコンテナ)上で、関数が実行されることが望ましい。   The whitelist may be stored in each of the trader device 102 and the transaction management device 108. Also, the whitelist may be stored in the transaction manager 108 (ie, the certificate authority's device), and the trader device 102 may query the transaction manager 108 for whitelist data. Further, the whitelist may be stored in a device not shown in FIG. 10, and the trader device 102 and the transaction management device 108 may inquire data of the whitelist from the device not shown. In order to secure the same execution environment, it is desirable that the function is executed on a virtual server (in other words, a container) by container type virtualization (Docker or the like).

第1変形例の構成例を説明する。ここでは非開示計算の仕組みを取引管理装置108に導入する例を示す。取引管理装置108の監査部140の機能は、当該機能が実装されたコンピュータプログラム(ここでは「監査部命令セット」とも呼ぶ。)を取引管理装置108のCPUが実行することにより発揮されてもよい。取引管理装置108は、正規の監査部命令セットのハッシュ値である第1ハッシュ値を記憶する記憶部にアクセス可能である。例えば、第1ハッシュ値を記憶する記憶部は、取引管理装置108に設けられてもよく、通信網を介して取引管理装置108に接続された他装置に設けられてもよい。   A configuration example of the first modification will be described. Here, an example of introducing a non-disclosure calculation mechanism into the transaction management device 108 is shown. The function of the audit unit 140 of the transaction management apparatus 108 may be exhibited by the CPU of the transaction management apparatus 108 executing a computer program (also referred to herein as an “audit unit instruction set”) in which the function is implemented. . The transaction management device 108 can access a storage unit that stores a first hash value that is a hash value of a regular audit unit instruction set. For example, the storage unit that stores the first hash value may be provided in the transaction management device 108, or may be provided in another device connected to the transaction management device 108 via a communication network.

取引管理装置108は照合部をさらに備えてもよい。照合部は、取引管理装置108のCPUが監査部命令セットを実行する際(言い換えれば、監査部命令セットの実行開始時であり、すなわち監査部140の機能を発揮すべき際)に、実行対象となる監査部命令セットのハッシュ値である第2ハッシュ値を動的に取得する。照合部は、上記の記憶部から第1ハッシュ値を取得し、第1ハッシュ値と第2ハッシュ値とを照合する。取引管理装置108のCPUは、照合部により第1ハッシュ値と第2ハッシュ値とが一致すると判定された場合に監査部命令セットを実行し、第1ハッシュ値と第2ハッシュ値とが不一致と判定された場合、監査部命令セットの実行を抑制する(中止する)。   The transaction management device 108 may further include a collation unit. The collation unit is an execution target when the CPU of the transaction management device 108 executes the audit unit instruction set (in other words, when execution of the audit unit instruction set starts, that is, when the function of the audit unit 140 is to be exhibited). Dynamically obtain a second hash value which is a hash value of the instruction set of The collation unit acquires the first hash value from the storage unit and collates the first hash value with the second hash value. The CPU of the transaction management device 108 executes an audit unit instruction set when the collation unit determines that the first hash value and the second hash value match, and the first hash value and the second hash value do not match. If it is determined, the execution of the audit unit instruction set is suppressed (canceled).

第2変形例を説明する。上記実施例では、取引管理装置108は、監査要求を受け付けたことを契機として、その監査要求で指定された財IDに対応する複数の取引データを合算した取引連鎖データ(例えば「ExalgeChain[apple_243]」)を生成した。変形例として、取引管理装置108は、取引データ保管装置106に取引データコンテナが登録された財IDのそれぞれについて、取引データコンテナが登録される都度、取引連鎖データを更新してもよい。取引管理装置108は、監査要求を受け付けるか否かに関わらず、複数の財IDに対応する複数の取引連鎖データを更新し、最新の複数の取引連鎖データを暗号化して所定の記憶部に記憶してもよい。この態様によると、監査要求受付時における取引データの取得処理と、取引連鎖データの生成処理をスキップでき、認証または監査のための計算を効率化することができる。   A second modification will be described. In the above embodiment, when the transaction management device 108 receives an audit request, transaction chain data (for example, “ExalgeChain [apple_243]) obtained by adding together a plurality of transaction data corresponding to the item ID specified in the audit request. ") Was generated. As a modification, the transaction management device 108 may update the transaction chain data each time the transaction data container is registered for each item ID for which the transaction data container is registered in the transaction data storage device 106. The transaction management device 108 updates the plurality of transaction chain data corresponding to the plurality of goods IDs regardless of whether or not the audit request is received, encrypts the latest plurality of transaction chain data, and stores it in a predetermined storage unit. You may According to this aspect, it is possible to skip acquisition processing of transaction data at the time of receiving an audit request and generation processing of transaction chain data, and it is possible to streamline calculation for authentication or audit.

第3変形例を説明する。取引データコンテナは、財の生産、販売、環境負荷、生産者、取引者に関する追加情報または補完情報を含んでもよい。また、これらの追加情報を取得可能なリソース位置(URL)を含んでもよい。取引ハッシュコンテナも同様である。   A third modification will be described. The transaction data container may contain additional or supplementary information about the production, sale, environmental impact, producers, traders of the good. It may also include a resource location (URL) from which these additional information can be obtained. The same applies to the transaction hash container.

第4変形例を説明する。取引管理システム100は、複数の認証局を備えてもよく、それら複数の認証局の装置として、複数の取引データ保管装置106および複数の取引管理装置108を備えてもよい。この場合、複数の取引データ保管装置106および複数の取引管理装置108は、それぞれが保持するデータ(取引データコンテナ等)、および、それぞれによる計算結果(財取引連鎖データの相殺結果等)を互いに参照可能なように構成される。また、認証または監査のための計算処理を互いに委託可能に構成される。これにより、取引者がどの認証局を利用しても問題が生じず、認証局間の競争を促すことができる。   A fourth modification will be described. The transaction management system 100 may include a plurality of certificate authorities, and may include a plurality of transaction data storage devices 106 and a plurality of transaction management devices 108 as devices of the plurality of certificate authorities. In this case, the plurality of transaction data storage devices 106 and the plurality of transaction management devices 108 mutually refer to each other (data of transaction data container etc.) and calculation results (such as offset result of goods transaction chain data) of each other. Configured as possible. Also, calculation processing for authentication or audit can be delegated to each other. As a result, no problem occurs even if the trader uses any certificate authority, and competition between certificate authorities can be promoted.

上述した実施の形態、変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態、変形例それぞれの効果をあわせもつ。請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。   Any combination of the above-described embodiment and modification is also useful as an embodiment of the present invention. The new embodiments resulting from the combination combine the effects of the combined embodiment and the variations. It is also understood by those skilled in the art that the functions to be performed by the respective constituent features described in the claims are realized by a single member of each constituent shown in the embodiment and the modification or a combination thereof.

100 取引管理システム、 106 取引データ保管装置、 108 取引管理装置、 134 監査要求受付部、 140 監査部、 142 監査データ送信部、 144 唯一性監査部、 146 生産者監査部、 148 取引経路監査部。   100 transaction management system, 106 transaction data storage device, 108 transaction management device, 134 audit request reception unit, 140 audit unit, 142 audit data transmission unit, 144 uniqueness audit unit, 146 producer audit unit, 148 transaction path audit unit.

Claims (9)

第1主体から第2主体へ財が販売された場合に、前記第1主体側の取引記述としての、前記財の移転と対価の獲得を交換代数を用いて示す複式簿記データと、前記第2主体側の取引記述としての、前記財の獲得と対価の移転を交換代数を用いて示す複式簿記データとを含む取引データを、前記財のIDと対応づけて記憶する記憶部にアクセス可能であり、
或る財のIDを指定した監査要求を受け付ける監査要求受付部と、
前記監査要求で指定されたIDに対応付けられた複数の取引データの和から、財の取引に関する要素を射影したデータである財取引連鎖データを生成し、前記財取引連鎖データに基づいて、前記監査要求で指定されたIDで識別される財の取引に関する監査を支援するデータを生成する監査部と、
を備えることを特徴とする情報処理装置。
When the goods are sold from the first entity to the second entity, double-entry bookkeeping data representing the transfer of the goods and the acquisition of the consideration using the exchange algebra as the transaction description of the first entity side, and the second It is possible to access a storage unit that stores transaction data including double-entry bookkeeping data indicating acquisition of the goods and transfer of the consideration using exchange algebra as transaction descriptions on the subject side in association with the IDs of the goods. ,
An audit request reception unit that receives an audit request specifying an ID of a certain item;
Goods transaction chain data, which is data obtained by projecting an element related to goods transactions, is generated from the sum of a plurality of pieces of transaction data associated with the ID specified in the audit request, and based on the goods transaction chain data An audit department that generates data to support an audit on transactions of goods identified by the ID specified in the audit request;
An information processing apparatus comprising:
前記取引データは、前記財に固有の単位系を用いて前記財の移転を示すものである請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the transaction data indicates transfer of the good using a unit system unique to the good. 前記監査部は、前記財取引連鎖データを相殺することにより、前記監査を支援するデータとして、前記監査要求で指定されたIDで識別される財の取引の唯一性に関するデータを生成することを特徴とする請求項1または2に記載の情報処理装置。   The audit department generates data on uniqueness of transactions of goods identified by the ID specified in the audit request as data supporting the audit by offsetting the goods transaction chain data. The information processing apparatus according to claim 1 or 2, wherein 前記取引データは、取引の主体を示すデータを含み、
前記監査部は、前記財取引連鎖データを相殺することにより、前記監査を支援するデータとして、前記監査要求で指定されたIDで識別される財を生産した主体、または、当該財の一連の取引を開始した主体に関するデータを生成することを特徴とする請求項1から3のいずれかに記載の情報処理装置。
The transaction data includes data indicating an entity of the transaction,
The audit department offsets the goods transaction chain data to generate an asset identified by the ID specified in the audit request as data for supporting the audit, or a series of transactions of the asset The information processing apparatus according to any one of claims 1 to 3, wherein data relating to a subject who has started is generated.
前記取引データは、取引の主体を示すデータを含み、
前記監査部は、前記財取引連鎖データを相殺することにより、前記監査要求で指定されたIDで識別される財の一連の取引を開始した主体、または、一連の取引の終端の主体を識別し、前記開始した主体または前記終端の主体を含む取引データを起点として当該財の取引を示す他の取引データを辿ることにより、当該財の取引経路に関するデータを前記監査を支援するデータとして生成することを特徴とする請求項1から4のいずれかに記載の情報処理装置。
The transaction data includes data indicating an entity of the transaction,
The audit department offsets the goods transaction chain data to identify an entity that has initiated a series of transactions of the article identified by the ID specified in the audit request, or an entity at the end of the series of transactions. Generating data on a trade path of the good as data supporting the audit by tracing the other trade data indicating the trade of the good starting from the trade data including the started entity or the termination end entity. The information processing apparatus according to any one of claims 1 to 4, characterized by
財の流通過程において当該財の流通経路が複数に分割された場合、前記記憶部は、流通経路分割前の前記財のIDである分割前IDと、分割後の各々の流通経路における前記財のIDである複数の分割後IDとの対応関係を示す取引データを記憶し、
前記監査部は、前記監査要求で前記分割前IDまたは前記分割後IDが指定された場合、前記分割前IDに対応付けられた取引データと、前記分割後IDに対応づけられた取引データの両方に基づいて前記財取引連鎖データを生成することを特徴とする請求項1から5のいずれかに記載の情報処理装置。
When the distribution channel of the goods is divided into a plurality of parts in the distribution process of the goods, the storage unit stores the pre-division ID which is the ID of the goods before the division of the distribution channels and the goods in the respective distribution channels after division. Store transaction data indicating correspondence with multiple post-division IDs that are IDs,
When the pre-division ID or the post-division ID is specified in the audit request, the audit unit is capable of both transaction data associated with the pre-division ID and transaction data associated with the post-division ID. The information processing apparatus according to any one of claims 1 to 5, wherein the goods transaction chain data is generated based on.
前記監査部の機能は、当該機能が実装されたコンピュータプログラムを前記情報処理装置のCPUが実行することにより発揮され、
前記情報処理装置は、正規の前記コンピュータプログラムのハッシュ値である第1ハッシュ値を記憶する記憶部にアクセス可能であり、
前記CPUが前記コンピュータプログラムを実行する際に、実行対象となるコンピュータプログラムのハッシュ値である第2ハッシュ値を取得し、前記第1ハッシュ値と前記第2ハッシュ値とを照合する照合部をさらに備えることを特徴とする請求項1から6のいずれかに記載の情報処理装置。
The function of the audit unit is exhibited by the CPU of the information processing apparatus executing a computer program in which the function is implemented.
The information processing apparatus can access a storage unit that stores a first hash value, which is a hash value of the legitimate computer program,
When the CPU executes the computer program, a collating unit for acquiring a second hash value that is a hash value of the computer program to be executed and collating the first hash value with the second hash value is further provided. The information processing apparatus according to any one of claims 1 to 6, comprising:
第1主体から第2主体へ財が販売された場合に、前記第1主体側の取引記述としての、前記財の移転と対価の獲得を交換代数を用いて示す複式簿記データと、前記第2主体側の取引記述としての、前記財の獲得と対価の移転を交換代数を用いて示す複式簿記データとを含む取引データを、前記財のIDと対応づけて記憶する記憶装置にアクセス可能なコンピュータが、
或る財のIDを指定した監査要求を受け付けるステップと、
前記監査要求で指定されたIDに対応付けられた複数の取引データの和から、財の取引に関する要素を射影したデータである財取引連鎖データを生成し、前記財取引連鎖データに基づいて、前記監査要求で指定されたIDで識別される財の取引に関する監査を支援するデータを生成するステップと、
を実行することを特徴とする監査支援方法。
When the goods are sold from the first entity to the second entity, double-entry bookkeeping data representing the transfer of the goods and the acquisition of the consideration using the exchange algebra as the transaction description of the first entity side, and the second A computer capable of accessing a storage device which stores transaction data including double-entry bookkeeping data indicating acquisition of the goods and transfer of compensation using an exchange algebra as transaction descriptions on the subject side in association with IDs of the goods But,
Accepting an audit request specifying an ID of a good;
Goods transaction chain data, which is data obtained by projecting an element related to goods transactions, is generated from the sum of a plurality of pieces of transaction data associated with the ID specified in the audit request, and based on the goods transaction chain data Generating data to support an audit on trades of goods identified by the ID specified in the audit request;
An audit support method characterized by performing.
第1主体から第2主体へ財が販売された場合に、前記第1主体側の取引記述としての、前記財の移転と対価の獲得を交換代数を用いて示す複式簿記データと、前記第2主体側の取引記述としての、前記財の獲得と対価の移転を交換代数を用いて示す複式簿記データとを含む取引データを、前記財のIDと対応づけて記憶する記憶装置にアクセス可能なコンピュータに、
或る財のIDを指定した監査要求を受け付ける機能と、
前記監査要求で指定されたIDに対応付けられた複数の取引データの和から、財の取引に関する要素を射影したデータである財取引連鎖データを生成し、前記財取引連鎖データに基づいて、前記監査要求で指定されたIDで識別される財の取引に関する監査を支援するデータを生成する機能と、
を実現させるためのコンピュータプログラム。
When the goods are sold from the first entity to the second entity, double-entry bookkeeping data representing the transfer of the goods and the acquisition of the consideration using the exchange algebra as the transaction description of the first entity side, and the second A computer capable of accessing a storage device which stores transaction data including double-entry bookkeeping data indicating acquisition of the goods and transfer of compensation using an exchange algebra as transaction descriptions on the subject side in association with IDs of the goods To
A function for receiving an audit request specifying a certain goods ID;
Goods transaction chain data, which is data obtained by projecting an element related to goods transactions, is generated from the sum of a plurality of pieces of transaction data associated with the ID specified in the audit request, and based on the goods transaction chain data A function of generating data to support an audit on transactions of goods identified by an ID specified in the audit request;
Computer program to make it happen.
JP2018001214A 2018-01-09 2018-01-09 Information processing device, audit support method, and computer program Active JP7165386B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018001214A JP7165386B2 (en) 2018-01-09 2018-01-09 Information processing device, audit support method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018001214A JP7165386B2 (en) 2018-01-09 2018-01-09 Information processing device, audit support method, and computer program

Publications (2)

Publication Number Publication Date
JP2019121220A true JP2019121220A (en) 2019-07-22
JP7165386B2 JP7165386B2 (en) 2022-11-04

Family

ID=67306399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018001214A Active JP7165386B2 (en) 2018-01-09 2018-01-09 Information processing device, audit support method, and computer program

Country Status (1)

Country Link
JP (1) JP7165386B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022236267A1 (en) * 2021-05-03 2022-11-10 Modulus Global, Inc. Digital exchange audting system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013054433A (en) * 2011-09-01 2013-03-21 Tokyo Institute Of Technology Data editing device and data editing method
WO2017030086A1 (en) * 2015-08-19 2017-02-23 国立研究開発法人科学技術振興機構 Exchange management system, exchange management device, environmental burden material transfer management device, information terminal, exchange management method, and computer program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013054433A (en) * 2011-09-01 2013-03-21 Tokyo Institute Of Technology Data editing device and data editing method
WO2017030086A1 (en) * 2015-08-19 2017-02-23 国立研究開発法人科学技術振興機構 Exchange management system, exchange management device, environmental burden material transfer management device, information terminal, exchange management method, and computer program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
在間 敬子, NPO法人日本シミュレーション&ゲーミング学会 全国大会論文報告集 2015年秋号, JPN6022000300, 5 December 2015 (2015-12-05), JP, pages 50 - 55, ISSN: 0004678913 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022236267A1 (en) * 2021-05-03 2022-11-10 Modulus Global, Inc. Digital exchange audting system

Also Published As

Publication number Publication date
JP7165386B2 (en) 2022-11-04

Similar Documents

Publication Publication Date Title
Tönnissen et al. Analysing the impact of blockchain-technology for operations and supply chain management: An explanatory model drawn from multiple case studies
Baralla et al. Ensuring transparency and traceability of food local products: A blockchain application to a Smart Tourism Region
Helo et al. Blockchains in operations and supply chains: A model and reference implementation
Baralla et al. A blockchain based system to ensure transparency and reliability in food supply chain
CN109165966B (en) E-commerce platform evaluation management system based on block chain
US20230059806A1 (en) Apparatus and Methods for Producing Data Structures Having Internal Self-References Suitable for Immutably Representing and Verifying Data
KR20180115778A (en) Integrated block chain-based data transfer control method and system
Le et al. Introducing multi shippers mechanism for decentralized cash on delivery system
Keogh et al. Blockchain and GS1 standards in the food chain: A review of the possibilities and challenges
US9122733B2 (en) Generation of electronic pedigree
Dursun et al. Blockchain technology for supply chain management
Imeri et al. Blockchain technology for the improvement of SCM and logistics services: A survey
Azevedo et al. Supply chain traceability using blockchain
US20210272113A1 (en) Transaction audit system
Bager et al. Event-based supply chain network modeling: Blockchain for good coffee
JP7165386B2 (en) Information processing device, audit support method, and computer program
Liotine et al. The supply blockchain: integrating blockchain technology within supply chain operations
Ritchi et al. Permissioned blockchain for business process visibility: A case of expenditure cycle
US20240160771A1 (en) Hardware-accelerated homomorphic encryption in marketplace platforms
Fernandez Blockchain Technology in Supply Chain Management
Sudeep et al. Blockchain: A New Era of Technology
JP2019506684A (en) System and method for resolving conflicts in order management of data products
Chichoni et al. The digital global supply chain: the growing case for blockchain technology expansion within global supply chain
Blake-Rath et al. Addressing Sustainability Challenges of the South African Wine Industry Through Blockchain-Related Traceability
TW202032474A (en) System, computer program product, computer readable recording medium and method for providing supply chain financial services by employing blockchain and big data technologies

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20201211

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220512

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: 20220906

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221017

R150 Certificate of patent or registration of utility model

Ref document number: 7165386

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150