WO2024089775A1 - Data management device and data management method - Google Patents

Data management device and data management method Download PDF

Info

Publication number
WO2024089775A1
WO2024089775A1 PCT/JP2022/039771 JP2022039771W WO2024089775A1 WO 2024089775 A1 WO2024089775 A1 WO 2024089775A1 JP 2022039771 W JP2022039771 W JP 2022039771W WO 2024089775 A1 WO2024089775 A1 WO 2024089775A1
Authority
WO
WIPO (PCT)
Prior art keywords
record
data
distributed ledger
control device
information
Prior art date
Application number
PCT/JP2022/039771
Other languages
French (fr)
Japanese (ja)
Inventor
直樹 山室
航 深津
Original Assignee
トヨタ自動車株式会社
株式会社Scalar
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 トヨタ自動車株式会社, 株式会社Scalar filed Critical トヨタ自動車株式会社
Priority to PCT/JP2022/039771 priority Critical patent/WO2024089775A1/en
Publication of WO2024089775A1 publication Critical patent/WO2024089775A1/en

Links

Images

Abstract

When a second operation is performed to update component data (D12) to component data (D13) and update component data (D21) to component data (D22) at the same time, then a control device (21) of a client server (2) creates a record (RA3) including a hash value of the component data (D13) in a first evidence chain (distributed ledger 51), and creates a record (RB2) including a hash value of the component data (D22) in a second evidence chain (distributed ledger 52). The control device (21) generates a terminal hash value that includes a record hash value of the record (RA3) and a record hash value of the record (RB2), and obtains a timestamp token for the terminal hash value.

Description

データ管理装置およびデータ管理方法Data management device and data management method
 本開示は、分散型台帳技術を用いてデータを管理するデータ管理装置およびデータ管理方法に関する。 This disclosure relates to a data management device and a data management method that manage data using distributed ledger technology.
 特許第6694204号公報(特許文献1)には、管理対象を識別するためのKey(ID)毎に、DAG(Directed Acyclic Graph)構造を有する分散型台帳(アセット)を構成し、ID毎に情報を管理するデータ管理システムが開示されている。 Patent Publication No. 6694204 (Patent Document 1) discloses a data management system that configures a distributed ledger (asset) with a Directed Acyclic Graph (DAG) structure for each key (ID) used to identify managed objects, and manages information for each ID.
特許第6694204号公報Patent No. 6694204
 特許文献1に開示されたデータ管理システムでは、たとえば、あるIDで管理される対象のデータが更新されると、当該あるIDに対して用意されたアセットにデータが追加されていく。また、他のIDで管理される対象についても、他のIDで管理される対象のデータが更新されると、当該他のIDに対して用意されたアセットにデータが追加されていく。 In the data management system disclosed in Patent Document 1, for example, when data of an object managed with a certain ID is updated, the data is added to the assets prepared for that certain ID. Also, when data of an object managed with another ID is updated, data is added to the assets prepared for that other ID.
 ここで、各アセットに追加されるデータの存在時刻を証明するために、それぞれのアセットが更新される毎に、最新のアセットレコードに対してタイムスタンプトークンを取得することが考えられる。しかしながら、アセット毎にタイムスタンプトークンを取得する構成であると、タイムスタンプトークンの取得費用が嵩んだり、システム負荷が増加したりする可能性がある。 Here, in order to prove the existence time of the data added to each asset, it is conceivable to obtain a timestamp token for the latest asset record each time each asset is updated. However, if a timestamp token is obtained for each asset, the cost of obtaining the timestamp token may increase, and the system load may also increase.
 本開示は、上記課題を解決するためになされたものであり、本開示の目的は、複数の分散型台帳を有するシステムにおいて、複数の分散型台帳に格納されるデータの存在時刻の証明を容易に行なうことができるようにすることである。 The present disclosure has been made to solve the above problems, and the purpose of the present disclosure is to make it possible to easily prove the time of existence of data stored in multiple distributed ledgers in a system that has multiple distributed ledgers.
 (1)本開示のある局面に係るデータ管理装置は、分散型台帳技術を用いてデータを管理するデータ管理装置である。このデータ管理装置は、データに関する情報を含むレコードを時系列に格納する分散型台帳を記憶する記憶装置と、分散型台帳にレコードを追加する制御装置と、時刻認証局と通信可能に構成された通信装置とを備える。データは、第1データおよび第2データを含む。分散型台帳は、第1データに関する第1情報を含むレコードを時系列に格納する第1分散型台帳と、第2データに関する第2情報を含むレコードを時系列に格納する第2分散型台帳とを含む。制御装置は、第1分散型台帳の終端のレコードの情報と、第2分散型台帳の終端のレコードの情報とを含む終端値を生成し、通信装置を介して、時刻認証局から終端値に対するタイムスタンプトークンを取得する。 (1) A data management device according to an aspect of the present disclosure is a data management device that manages data using distributed ledger technology. The data management device includes a storage device that stores a distributed ledger that chronologically stores records including information about the data, a control device that adds records to the distributed ledger, and a communication device configured to be able to communicate with a time stamp authority. The data includes first data and second data. The distributed ledger includes a first distributed ledger that chronologically stores records including first information about the first data, and a second distributed ledger that chronologically stores records including second information about the second data. The control device generates a terminal value that includes information about the end record of the first distributed ledger and information about the end record of the second distributed ledger, and obtains a time stamp token for the terminal value from the time stamp authority via the communication device.
 上記構成によれば、第1分散型台帳の終端のレコードの情報と第2分散型台帳の終端のレコードの情報とを含む終端値に対するタイムスタンプトークンが取得される。終端値に対してタイムスタンプトークンを取得することで、タイムスタンプトークンが示す時刻における、第1分散型台帳に格納されている第1情報および第2分散型台帳に格納されている第2情報の存在証明を纏めて取得することができる。 According to the above configuration, a timestamp token is obtained for an end value that includes information on the end record of the first distributed ledger and information on the end record of the second distributed ledger. By obtaining a timestamp token for the end value, it is possible to obtain a proof of existence of the first information stored in the first distributed ledger and the second information stored in the second distributed ledger together at the time indicated by the timestamp token.
 (2)ある実施の形態においては、制御装置は、タイムスタンプトークンを含むレコードを、第1分散型台帳および第2分散型台帳のうちの少なくとも一方に格納する。 (2) In one embodiment, the control device stores a record including the timestamp token in at least one of the first distributed ledger and the second distributed ledger.
 上記構成によれば、タイムスタンプトークンが第1分散型台帳および第2分散型台帳のうちの少なくとも一方に格納されるので、タイムスタンプトークンの耐改ざん性を高めることができる。 With the above configuration, the timestamp token is stored in at least one of the first distributed ledger and the second distributed ledger, thereby improving the tamper resistance of the timestamp token.
 (3)ある実施の形態においては、通信装置は、さらに、データ管理装置とは異なる外部サーバと通信可能に構成される。制御装置は、タイムスタンプトークンを記憶装置に記憶させるとともに、通信装置を介して、タイムスタンプトークンを外部サーバに送信する。 (3) In one embodiment, the communication device is further configured to be able to communicate with an external server different from the data management device. The control device stores the timestamp token in the storage device and transmits the timestamp token to the external server via the communication device.
 上記構成によれば、タイムスタンプトークンは、データ管理装置で管理されるとともに、外部サーバでも管理される。タイムスタンプトークンを改ざんするためには、データ管理装置で管理されているタイムスタンプトークン、および、外部サーバで管理されているタイムスタンプトークンの両方を改ざんしなければならない。タイムスタンプトークンを外部サーバでも管理することによって、タイムスタンプトークンをデータ管理装置のみで管理する場合に比べ、タイムスタンプトークンの耐改ざん性を高めることができる。 With the above configuration, the timestamp token is managed by the data management device and also by the external server. In order to tamper with the timestamp token, both the timestamp token managed by the data management device and the timestamp token managed by the external server must be tampered with. By managing the timestamp token by the external server as well, the tamper-resistance of the timestamp token can be improved compared to when the timestamp token is managed only by the data management device.
 (4)ある実施の形態においては、制御装置は、第1データおよび第2データの更新に応答して、第1情報を含むレコードを第1分散型台帳に格納し、かつ、第2情報を含むレコードを第2分散型台帳に格納すると、終端値を生成する。 (4) In one embodiment, the control device generates a terminal value when it stores a record including the first information in the first distributed ledger and stores a record including the second information in the second distributed ledger in response to updates to the first data and the second data.
 上記構成によれば、データ管理装置のユーザは、第1データおよび第2データを更新するというユーザ操作によって、終端値に対するタイムスタンプトークンを取得することができる。 According to the above configuration, a user of the data management device can obtain a timestamp token for the terminal value by performing a user operation to update the first data and the second data.
 (5)ある実施の形態においては、制御装置は、前回のタイムスタンプトークンの取得時点から所定時間が経過すると、終端値を生成する。 (5) In one embodiment, the control device generates a terminal value when a predetermined time has elapsed since the last timestamp token was obtained.
 上記構成によれば、所定時間が経過する毎に、自動的に終端値に対するタイムスタンプトークンを取得することができる。 With the above configuration, a timestamp token for the terminal value can be automatically obtained every time a specified time has elapsed.
 (6)ある実施の形態においては、第1分散型台帳の終端のレコードの情報は、第1分散型台帳の終端のレコードのハッシュ値であり、第2分散型台帳の終端のレコードの情報は、第2分散型台帳の終端のレコードのハッシュ値である。 (6) In one embodiment, the information of the end record of the first distributed ledger is a hash value of the end record of the first distributed ledger, and the information of the end record of the second distributed ledger is a hash value of the end record of the second distributed ledger.
 上記構成によれば、終端値に含まれるレコードの情報は、レコードのハッシュ値であるので、時刻認証局にはレコード自体は送られない。したがって、タイムスタンプトークンを取得するにあたり、レコード自体を秘匿しておくことができる。 With the above configuration, the record information contained in the terminal value is the hash value of the record, so the record itself is not sent to the time stamp authority. Therefore, the record itself can be kept secret when obtaining the time stamp token.
 (7)ある実施の形態においては、第1情報は、第1データのハッシュ値であり、第2情報は、第2データのハッシュ値である。 (7) In one embodiment, the first information is a hash value of the first data, and the second information is a hash value of the second data.
 上記構成によれば、第1分散型台帳および第2分散型台帳に格納されるレコードには、それぞれ、第1データのハッシュ値および第2データのハッシュ値が含まれる。第1分散型台帳および第2分散型台帳には、第1データおよび第2データは格納されないので、分散型台帳ネットワークを形成する他のデータ管理装置に対して、第1データおよび第2データ自体を秘匿しておくことができる。 According to the above configuration, the records stored in the first distributed ledger and the second distributed ledger each include a hash value of the first data and a hash value of the second data. Since the first data and the second data are not stored in the first distributed ledger and the second distributed ledger, the first data and the second data themselves can be kept secret from other data management devices that form the distributed ledger network.
 (8)本開示の他の局面に係るデータ管理方法は、分散型台帳技術を用いてデータを管理するデータ管理装置のデータ管理方法である。データ管理装置は、データに関する情報を含むレコードを時系列に格納する分散型台帳を記憶する記憶装置と、分散型台帳にレコードを追加する制御装置と、時刻認証局と通信可能に構成された通信装置とを備える。データは、第1データおよび第2データを含む。分散型台帳は、第1データに関する第1情報を含むレコードを時系列に格納する第1分散型台帳と、第2データに関する第2情報を含むレコードを時系列に格納する第2分散型台帳とを含む。データ管理方法は、第1分散型台帳の終端のレコードの情報と、第2分散型台帳の終端のレコードの情報とを含む終端値を生成するステップと、通信装置を介して、時刻認証局から終端値に対するタイムスタンプトークンを取得するステップとを含む。 (8) A data management method according to another aspect of the present disclosure is a data management method of a data management device that manages data using distributed ledger technology. The data management device includes a storage device that stores a distributed ledger that chronologically stores records including information about the data, a control device that adds records to the distributed ledger, and a communication device configured to be able to communicate with a time stamp authority. The data includes first data and second data. The distributed ledger includes a first distributed ledger that chronologically stores records including first information about the first data, and a second distributed ledger that chronologically stores records including second information about the second data. The data management method includes the steps of generating a terminal value that includes information about a record at the end of the first distributed ledger and information about a record at the end of the second distributed ledger, and obtaining a time stamp token for the terminal value from the time stamp authority via the communication device.
 本開示によれば、複数の分散型台帳を有するシステムにおいて、複数の分散型台帳に格納されるデータの存在時刻の証明を容易に行なうことができる。 According to the present disclosure, in a system having multiple distributed ledgers, it is possible to easily prove the time of existence of data stored in multiple distributed ledgers.
実施の形態1に係るデータ管理システムの概略的な構成を示す図である。1 is a diagram showing a schematic configuration of a data management system according to a first embodiment; 分散型台帳セットの構成の一例を示す図(その1)である。FIG. 1 is a diagram showing an example of the configuration of a distributed ledger set (part 1). 存在証明処理を説明するための図である。FIG. 13 is a diagram for explaining the existence proof process. 分散型台帳セットの構成の一例を示す図(その2)である。FIG. 2 is a diagram showing an example of the configuration of a distributed ledger set (part 2). 第1操作に応答する処理を実行するための制御装置の機能ブロック図である。FIG. 4 is a functional block diagram of a control device for executing a process in response to a first operation. 第2操作に応答する処理を実行するための制御装置の機能ブロック図である。FIG. 11 is a functional block diagram of a control device for executing a process in response to a second operation. 受信したトランザクションデータを実行するための制御装置の機能ブロック図である。FIG. 4 is a functional block diagram of a control device for executing received transaction data. 第1要求を受けた場合のトランザクションデータを生成する処理の手順を示すフローチャートである。13 is a flowchart showing a procedure for generating transaction data when a first request is received. 第2要求を受けた場合のトランザクションデータを生成する処理の手順を示すフローチャートである。13 is a flowchart showing a procedure for generating transaction data when a second request is received. トランザクションデータを受信した場合に実行される処理の手順を示すフローチャートである。11 is a flowchart showing a procedure of a process executed when transaction data is received. 実施の形態2に係るデータ管理システムの概略的な構成を示す図である。FIG. 11 is a diagram showing a schematic configuration of a data management system according to a second embodiment. 実施の形態2に係る分散型台帳セットの構成の一例を示す図である。FIG. 13 is a diagram showing an example of the configuration of a distributed ledger set relating to embodiment 2. 実施の形態2における存在証明処理を説明するための図である。FIG. 11 is a diagram for explaining the existence proof processing in the second embodiment. 実施の形態2における存在証明処理を実行するための制御装置の機能ブロック図である。FIG. 11 is a functional block diagram of a control device for executing the existence proof process in embodiment 2. タイムスタンプトークンを取得する処理の手順を示すフローチャートである。13 is a flowchart showing a procedure for a process of acquiring a time stamp token. 実施の形態3に係るデータ管理システムの概略的な構成を示す図である。FIG. 11 is a diagram showing a schematic configuration of a data management system according to a third embodiment. 台帳セットの構成の一例を示す図である。A diagram showing an example of the configuration of a ledger set. サスペンションテーブルの構成の一例を説明するための図である。4A and 4B are diagrams illustrating an example of a configuration of a suspension table. コミットテーブルの構成の一例を説明するための図である。FIG. 13 is a diagram illustrating an example of the configuration of a commit table. 更新要求(第1要求,第2要求)を受けた場合にデータ管理システムで実行される処理の手順を示すフローチャートである。13 is a flowchart showing a procedure of a process executed in the data management system when an update request (first request, second request) is received.
 以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付して、その説明は繰り返さない。 Below, the embodiments of the present disclosure will be described in detail with reference to the drawings. Note that the same or corresponding parts in the drawings will be given the same reference numerals and their description will not be repeated.
 [実施の形態1]
 <データ管理システムの全体構成>
 図1は、実施の形態1に係るデータ管理システム1の概略的な構成を示す図である。実施の形態1に係るデータ管理システム1は、複数の企業間でコンソーシアムネットワーク(以下、単に「ネットワーク」とも称する)NWを形成し、分散型台帳技術を用いてデータを管理するためのシステムである。実施の形態1に係るデータ管理システム1は、車両を構成する部品のデータ(以下、単に「部品データ」とも称する)を管理する。部品データは、たとえば、部品の仕様書であってもよい。なお、データ管理システム1が管理するデータは、車両を構成する部品のデータに限られるものではなく、種々のデータであってよい。
[First embodiment]
<Overall configuration of the data management system>
FIG. 1 is a diagram showing a schematic configuration of a data management system 1 according to the first embodiment. The data management system 1 according to the first embodiment is a system for forming a consortium network (hereinafter also simply referred to as a "network") NW among a plurality of companies and managing data using a distributed ledger technology. The data management system 1 according to the first embodiment manages data of parts constituting a vehicle (hereinafter also simply referred to as "parts data"). The parts data may be, for example, a specification of the parts. Note that the data managed by the data management system 1 is not limited to data of parts constituting a vehicle, and may be various types of data.
 図1を参照して、データ管理システム1は、4台のクライアントサーバ2と、プラットフォームサーバ5と、時刻認証局(TSA:Time Stamp Authority)8とを備える。4台のクライアントサーバ2の各々は、異なる企業(たとえば、A企業、B企業、C企業およびD企業)に帰属するサーバである。 Referring to FIG. 1, the data management system 1 includes four client servers 2, a platform server 5, and a Time Stamp Authority (TSA) 8. Each of the four client servers 2 belongs to a different company (e.g., company A, company B, company C, and company D).
 プラットフォームサーバ5は、ネットワークNWを管理する。プラットフォームサーバ5は、各クライアントサーバ2からのネットワークNWへの参加申請を受け付ける。プラットフォームサーバ5は、プラットフォームサーバ5の管理者による参加を許可する操作に基づき、または、所定の条件の判定結果に基づき、クライアントサーバ2のネットワークNWへの参加を許可する。実施の形態1では、A企業、B企業、C企業およびD企業のそれぞれに帰属する4台のクライアントサーバ2に対して、ネットワークNWへの参加が許可されている。 The platform server 5 manages the network NW. The platform server 5 accepts applications from each client server 2 to join the network NW. The platform server 5 permits the client server 2 to join the network NW based on an operation by the platform server 5 administrator to permit participation, or based on the results of judging predetermined conditions. In the first embodiment, four client servers 2 belonging to each of companies A, B, C, and D are permitted to join the network NW.
 4台のクライアントサーバ2は、ネットワークNWを形成し、部品データのハッシュ値を各々の分散型台帳に記憶している。クライアントサーバ2の各々には、分散型台帳基盤のソフトウェアが導入されており、導入された分散型台帳基盤のソフトウェアが機能することにより、クライアントサーバ2の各々がノードとして機能する。以下においては、A企業のクライアントサーバ2について代表的に説明するが、B企業、C企業およびD企業のクライアントサーバも同様の構成および機能を有する。なお、クライアントサーバ2は、本開示に係る「データ管理装置」の一例に相当する。 The four client servers 2 form a network NW, and store hash values of part data in their respective distributed ledgers. Distributed ledger platform software is installed in each of the client servers 2, and each client server 2 functions as a node as a result of the installed distributed ledger platform software functioning. In the following, the client server 2 of Company A will be described as a representative example, but the client servers of Company B, Company C, and Company D also have the same configuration and function. The client server 2 corresponds to an example of a "data management device" according to the present disclosure.
 クライアントサーバ2は、ユーザ端末装置7と通信可能に構成されている。ユーザ端末装置7は、たとえば、A企業の従業員に貸与された、デスクトップ型のPC(Personal Computer)、ノート型のPC、タブレット端末、スマートフォン、または、通信機能を有するその他の情報処理端末である。 The client server 2 is configured to be able to communicate with a user terminal device 7. The user terminal device 7 is, for example, a desktop PC (Personal Computer), a notebook PC, a tablet terminal, a smartphone, or any other information processing terminal with communication capabilities, loaned to an employee of Company A.
 また、クライアントサーバ2には、データベース4が接続されている。データベース4は、部品データを記憶している。データベース4は、クライアントサーバ2からの制御信号に従って、部品データを記憶したり、更新したりする。たとえば、クライアントサーバ2のユーザ(たとえば、A企業の従業員等)は、クライアントサーバ2の入力装置25(後述)への操作により部品データの更新を要求したり、ユーザ端末装置7への操作により部品データの更新を要求したりすることができる。クライアントサーバ2(制御装置21)は、入力装置25への入力、あるいは、ユーザ端末装置7からの要求に応じて、部品データを記憶/更新するための制御信号を生成し、データベース4に出力する。 Also, a database 4 is connected to the client server 2. The database 4 stores part data. The database 4 stores and updates the part data in accordance with control signals from the client server 2. For example, a user of the client server 2 (e.g., an employee of Company A) can request an update of the part data by operating an input device 25 (described later) of the client server 2, or by operating a user terminal device 7. The client server 2 (control device 21) generates a control signal for storing/updating the part data in response to an input to the input device 25 or a request from the user terminal device 7, and outputs the control signal to the database 4.
 クライアントサーバ2は、データベース4に部品データを記憶/更新すると、当該部品データのハッシュ値を生成し、当該ハッシュ値を分散型台帳に格納するためのトランザクションデータを生成する。そして、クライアントサーバ2は、生成されたトランザクションデータを、ネットワークNWを形成する他のクライアントサーバ2、すなわち、B企業,C企業,D企業のクライアントサーバ2に送信する。分散型台帳は、部品データのハッシュ値を時系列に格納し、部品データの存在を証明するための証拠チェーンを形成する。なお、実施の形態1に係るデータ管理システム1においては、ネットワークNWに4台のクライアントサーバが含まれる例について説明するが、ネットワークNWに含まれるクライアントサーバ2の台数は任意であり、たとえば、4台未満であってもよいし、5台以上であってもよい。 When the client server 2 stores/updates part data in the database 4, it generates a hash value of the part data and generates transaction data for storing the hash value in the distributed ledger. The client server 2 then transmits the generated transaction data to the other client servers 2 that form the network NW, i.e., the client servers 2 of companies B, C, and D. The distributed ledger stores the hash values of the part data in chronological order, forming an evidence chain for proving the existence of the part data. Note that, in the data management system 1 according to the first embodiment, an example in which the network NW includes four client servers will be described, but the number of client servers 2 included in the network NW is arbitrary and may be, for example, less than four or five or more.
 時刻認証局8は、タイムスタンプトークンを発行する認証機関に帰属するサーバを含む。時刻認証局は、申請者(実施の形態1においては、クライアントサーバ2)からのタイムスタンプ発行要求に応じて、タイムスタンプトークンを発行する。より具体的には、時刻認証局は、申請者から受信したデータ(実施の形態1においては、後述の終端ハッシュ値)に、国際標準時に追跡性がある時刻源に基づく時刻情報を結合させたタイムスタンプトークンを、申請者に送信する。 The time-stamp authority 8 includes a server belonging to a certification authority that issues time-stamp tokens. The time-stamp authority issues a time-stamp token in response to a time-stamp issuance request from an applicant (in the first embodiment, the client server 2). More specifically, the time-stamp authority transmits to the applicant a time-stamp token that combines data received from the applicant (in the first embodiment, a terminal hash value, described below) with time information based on a time source that is traceable to international standard time.
 クライアントサーバ2は、制御装置21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、通信装置24と、入力装置25と、表示装置26と、記憶装置27とを備える。制御装置21、ROM22、RAM23、通信装置24、入力装置25、表示装置26、および、記憶装置27は、バス29に接続されている。 The client server 2 includes a control device 21, a ROM (Read Only Memory) 22, a RAM (Random Access Memory) 23, a communication device 24, an input device 25, a display device 26, and a storage device 27. The control device 21, the ROM 22, the RAM 23, the communication device 24, the input device 25, the display device 26, and the storage device 27 are connected to a bus 29.
 制御装置21は、たとえば、CPU(Central Processing Unit)を含む集積回路によって構成される。制御装置21は、ROM22に格納されている各種プログラムをRAM23に展開して実行する。各種プログラムには、オペレーティングシステム等が含まれる。RAM23は、ワーキングメモリとして機能し、各種プログラムの実行に必要な各種データを一時的に格納する。制御装置21は、後に詳しく説明するが、データベース4に記録されている部品データを更新したり、分散型台帳を更新するためのトランザクションデータを生成したり、タイムスタンプトークンを取得したりする機能を有する。 The control device 21 is formed, for example, by an integrated circuit including a CPU (Central Processing Unit). The control device 21 deploys various programs stored in the ROM 22 into the RAM 23 and executes them. The various programs include an operating system, etc. The RAM 23 functions as a working memory and temporarily stores various data required for the execution of the various programs. As will be explained in detail later, the control device 21 has the function of updating part data recorded in the database 4, generating transaction data for updating the distributed ledger, and acquiring timestamp tokens.
 通信装置24は、外部の機器との通信が可能に構成される。外部の機器は、たとえば、他のクライアントサーバ2、ユーザ端末装置7、および時刻認証局8等を含む。通信装置24と外部の機器との通信は、インターネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)ネットワーク、パブリックネットワーク、プライベートネットワーク、有線ネットワークまたは無線ネットワーク等、あるいは、これらの組み合わせを用いて行なわれる。 The communication device 24 is configured to be capable of communicating with external devices. External devices include, for example, other client servers 2, user terminal devices 7, and time certification authorities 8. Communication between the communication device 24 and external devices is performed using the Internet, a wide area network (WAN), a local area network (LAN), an Ethernet (registered trademark) network, a public network, a private network, a wired network, a wireless network, or the like, or a combination of these.
 入力装置25は、入力デバイスを含む。入力デバイスは、たとえば、マウス、キーボード、タッチパネル、および/または、ユーザの操作を受け付けることが可能なその他の装置である。 The input device 25 includes an input device. The input device is, for example, a mouse, a keyboard, a touch panel, and/or other device capable of receiving user operations.
 表示装置26は、ディスプレイを含む。表示装置26は、制御装置21からの制御信号に従って、ディスプレイに各種の画像を表示させる。ディスプレイは、たとえば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、または、その他の表示機器である。 The display device 26 includes a display. The display device 26 displays various images on the display in accordance with control signals from the control device 21. The display is, for example, a liquid crystal display, an organic EL (Electro Luminescence) display, or other display device.
 記憶装置27は、たとえば、ハードディスクまたはフラッシュメモリ等の記憶媒体を含んで構成される。記憶装置27は、秘密鍵271、複数の公開鍵272および分散型台帳セット50を記憶している。 The storage device 27 includes a storage medium such as a hard disk or a flash memory. The storage device 27 stores a private key 271, a plurality of public keys 272, and a distributed ledger set 50.
 秘密鍵271は、A企業の秘密鍵である。たとえば、クライアントサーバ2がネットワークNWに最初に参加するにあたり、制御装置21は、秘密鍵および公開鍵を生成する。そして、制御装置21は、生成された公開鍵を認証局(図示せず)に送信して、認証を受ける。認証局は、電子証明書を発行する認証機関である。認証局は、公開鍵の情報を含めた電子証明書を発行する。制御装置21は、認証を受けた公開鍵に対応する秘密鍵271を記憶装置27に記憶させる。また、制御装置21は、認証を受けた公開鍵(電子証明書)272を、B企業、C企業およびD企業のクライアントサーバ2に送信する。 The private key 271 is the private key of Company A. For example, when client server 2 first joins network NW, control device 21 generates a private key and a public key. Then, control device 21 sends the generated public key to a certification authority (not shown) for authentication. A certification authority is a certification body that issues electronic certificates. The certification authority issues an electronic certificate that includes information about the public key. Control device 21 stores private key 271 corresponding to the authenticated public key in storage device 27. Control device 21 also sends authenticated public keys (electronic certificates) 272 to client servers 2 of companies B, C, and D.
 複数の公開鍵272は、B企業の公開鍵、C企業の公開鍵およびD企業の公開鍵を含む。制御装置21は、他のクライアントサーバ2から受信した公開鍵を記憶装置27に記憶させる。また、記憶装置27は、自身(A企業)の公開鍵を記憶していてもよい。 The multiple public keys 272 include the public key of Company B, the public key of Company C, and the public key of Company D. The control device 21 stores the public keys received from the other client servers 2 in the storage device 27. The storage device 27 may also store its own (Company A's) public key.
 分散型台帳セット50は、複数の分散型台帳を含む。分散型台帳は、車両を構成する部品毎に用意されている。図2は、分散型台帳セット50の構成の一例を示す図である。実施の形態1では、車両を構成する2個の部品(第1部品,第2部品)がデータ管理システム1で管理される例を説明する。すなわち、分散型台帳セット50は、第1部品の部品データの更新状態を時系列に記憶し、第1部品の部品データの証拠チェーンとなる分散型台帳51と、第2部品の部品データの更新状態を時系列に記憶し、第2部品の部品データの証拠チェーンとなる分散型台帳52とを含む。なお、データ管理システム1で管理される、車両を構成する部品がN(2以上の自然数)個であれば、分散型台帳セット50は、N個の分散型台帳を含む。以下では、分散型台帳でデータが管理される部品を「対象部品」とも称する。すなわち、実施の形態1における対象部品は、第1部品および第2部品である。 The distributed ledger set 50 includes multiple distributed ledgers. A distributed ledger is prepared for each part that constitutes a vehicle. FIG. 2 is a diagram showing an example of the configuration of the distributed ledger set 50. In the first embodiment, an example will be described in which two parts (first part, second part) that constitute a vehicle are managed by the data management system 1. That is, the distributed ledger set 50 includes a distributed ledger 51 that stores the update state of the part data of the first part in chronological order and serves as an evidence chain for the part data of the first part, and a distributed ledger 52 that stores the update state of the part data of the second part in chronological order and serves as an evidence chain for the part data of the second part. If the number of parts that constitute a vehicle that are managed by the data management system 1 is N (a natural number equal to or greater than 2), the distributed ledger set 50 includes N distributed ledgers. Hereinafter, the parts whose data are managed in the distributed ledger are also referred to as "target parts". That is, the target parts in the first embodiment are the first part and the second part.
 分散型台帳51は、第1部品の部品データのハッシュ値を含むレコードを時系列に記憶している。レコードは、「Key」、「Age」、「Obj-HV」、「Nonce」、「Sig」、「Prev-HV」、および、「HV」の情報を含む。 The distributed ledger 51 stores records in chronological order, each record including a hash value of the part data of the first part. The records include the following information: "Key", "Age", "Obj-HV", "Nonce", "Sig", "Prev-HV", and "HV".
 Keyは、対象部品(第1部品)のIDを示す情報である。第1部品には、k1のIDが割り当てられている。 Key is information that indicates the ID of the target part (first part). The first part is assigned an ID of k1.
 Ageは、レコードの世代を示す情報である。分散型台帳51に格納された、第1部品の最初のレコードでは、Ageは0である。第1部品の更新が行なわれ、レコードが追加されると、Ageはインクリメントされる。 Age is information that indicates the generation of a record. In the first record of the first part stored in the distributed ledger 51, Age is 0. When the first part is updated and a record is added, Age is incremented.
 Obj-HVは、第1部品の部品データのハッシュ値である。たとえば、データベース4に登録された第1部品の部品データが更新されると、更新された部品データのハッシュ値(たとえば、図2の「OH2」)が生成され、Obj-HVとされる。ハッシュ値は、ハッシュ関数を用いて部品データをハッシュ化した結果として得られる数値である。詳細は後述するが、Obj-HVには、タイムスタンプトークン(たとえば、後述の図4の「TM」)も格納され得る。 Obj-HV is a hash value of the part data of the first part. For example, when the part data of the first part registered in the database 4 is updated, a hash value of the updated part data (e.g., "OH2" in FIG. 2) is generated and used as Obj-HV. A hash value is a numerical value obtained as a result of hashing part data using a hash function. Details will be described later, but Obj-HV may also store a timestamp token (e.g., "TM" in FIG. 4 described below).
 Nonceは、トランザクションデータの番号を示すナンス値である。つまり、ナンス値は、たとえば、データベース4に記憶された第1部品の部品データが更新された場合に、当該更新された部品データのハッシュ値を分散型台帳51に格納する処理の番号として、クライアントサーバ2(制御装置21)により生成される。ナンス値は、暗号学的に衝突が困難なハッシュ値である。 Nonce is a nonce value that indicates the number of transaction data. In other words, when part data of a first part stored in the database 4 is updated, for example, the nonce value is generated by the client server 2 (control device 21) as a processing number for storing the hash value of the updated part data in the distributed ledger 51. The nonce value is a hash value that is cryptographically difficult to collide with.
 Sigは、トランザクションデータを発行したクライアントサーバ2の秘密鍵271を用いて作成された電子署名である。電子署名は、たとえば、Obj-HV(すなわち、第1部品の部品データのハッシュ値)を秘密鍵271により暗号化することにより作成される。あるいは、電子署名は、たとえば、Nonce(ナンス値)を秘密鍵271により暗号化することにより作成されてもよい。さらに、電子署名は、たとえば、Obj-HVおよびNonceを秘密鍵271により暗号化することにより作成されてもよい。 Sig is an electronic signature created using the private key 271 of the client server 2 that issued the transaction data. The electronic signature is created, for example, by encrypting Obj-HV (i.e., the hash value of the part data of the first part) with the private key 271. Alternatively, the electronic signature may be created, for example, by encrypting Nonce (nonce value) with the private key 271. Furthermore, the electronic signature may be created, for example, by encrypting Obj-HV and Nonce with the private key 271.
 Prev-HVは、最新(終端)レコードの1つ前の世代のレコード(親レコード)のハッシュ値である。すなわち、Prev-HVは、親レコードのHVである。 Prev-HV is the hash value of the record (parent record) of the generation before the latest (end) record. In other words, Prev-HV is the HV of the parent record.
 HVは、最新(終端)レコードのハッシュ値である。具体的には、HVは、HVを除くレコードの情報(Key、Age、Obj-HV、Nonce、SigおよびPrev-HV)のハッシュ値(以下「レコードハッシュ値」とも称する)である。 HV is the hash value of the latest (end) record. Specifically, HV is the hash value (hereinafter also referred to as the "record hash value") of the record information excluding HV (Key, Age, Obj-HV, Nonce, Sig, and Prev-HV).
 たとえば、図2に示されるように、分散型台帳51の最新(終端)レコード(Age「2」のレコード)に着目すると、終端レコードのPrev-HVは、親レコード(Age「1」)のHVである「H2」である。次に第1部品の部品データが更新されて、Age「3」のレコードが追加される場合には、Age「3」のレコードのPrev-HVは、Age「2」のレコードのHVである「H3」となる。このように、終端レコードは、親レコードのレコードハッシュ値を含む構造となっている。換言すると、終端レコードのPrev-HVと、親レコードのHVとの間でレコードの連鎖が実現されている。このようにして、分散型台帳51は、DAG構造を成している。 For example, as shown in FIG. 2, looking at the latest (terminal) record (record with Age "2") in the distributed ledger 51, the Prev-HV of the terminal record is "H2", which is the HV of the parent record (Age "1"). If the part data for the first part is then updated and a record with Age "3" is added, the Prev-HV of the record with Age "3" becomes "H3", which is the HV of the record with Age "2". In this way, the terminal record has a structure that includes the record hash value of the parent record. In other words, a chain of records is realized between the Prev-HV of the terminal record and the HV of the parent record. In this way, the distributed ledger 51 has a DAG structure.
 分散型台帳52は、第2部品の部品データのハッシュ値を含むレコードを時系列に記憶している。レコードは、「Key」、「Age」、「Obj-HV」、「Nonce」、「Sig」、「Prev-HV」、および、「HV」の情報を含む。これらの詳細は、分散型台帳51のレコードと同様であるため、繰り返し説明しない。 Distributed ledger 52 stores records in chronological order, each of which includes a hash value of part data for the second part. The records include the following information: "Key", "Age", "Obj-HV", "Nonce", "Sig", "Prev-HV", and "HV". Details of these are similar to those of the records in distributed ledger 51, and will not be described again.
 クライアントサーバ2(制御装置21)は、たとえば、入力装置25を介して、あるいは、ユーザ端末装置7を介して部品データの更新操作を受けると、データベース4に記憶された部品データを更新する。そして、クライアントサーバ2(制御装置21)は、更新された部品データのハッシュ値を含むレコードを分散型台帳セット50(分散型台帳51または分散型台帳52)に追加するためのトランザクションデータを生成する。このトランザクションデータには、「Key」、「Age」、「Obj-HV」、「Nonce」、「Sig」、「Prev-HV」、および、「HV」の情報が含まれる。 When the client server 2 (control device 21) receives an update operation for part data via, for example, the input device 25 or the user terminal device 7, it updates the part data stored in the database 4. The client server 2 (control device 21) then generates transaction data for adding a record including the hash value of the updated part data to the distributed ledger set 50 (distributed ledger 51 or distributed ledger 52). This transaction data includes the information "Key", "Age", "Obj-HV", "Nonce", "Sig", "Prev-HV", and "HV".
 トランザクションデータには、さらに、当該トランザクションデータをネットワークNWへ向けてブロードキャストする(ネットワークNWへ送信する)時刻情報、および、当該トランザクションデータの送信者情報が含まれてもよい。時刻情報は、たとえば、対象部品の部品データがデータベース4に記録された時刻を示す情報であってもよい。送信者情報は、たとえば、A企業を示す情報である。なお、トランザクションデータの送信者情報は、さらに詳細に、ネットワークNWへトランザクションデータを送信する操作を実行した部署(A企業の一部門)を示す情報であってもよいし、ネットワークNWへトランザクションデータを送信する操作を実行した個人(A企業の従業員)を示す情報であってもよい。 The transaction data may further include time information when the transaction data is broadcast to the network NW (sent to the network NW), and sender information of the transaction data. The time information may be, for example, information indicating the time when the part data of the target part was recorded in database 4. The sender information is, for example, information indicating Company A. In addition, in more detail, the sender information of the transaction data may be information indicating the department (a division of Company A) that performed the operation to send the transaction data to the network NW, or information indicating an individual (an employee of Company A) that performed the operation to send the transaction data to the network NW.
 <時刻性の証明>
 ここで、第1部品の部品データと、第2部品の部品データとの間で、いずれのデータが先に存在したのかを示す順序性、および、これらのデータの存在時刻を示す時刻性を証明したい場合がある。順序性および時刻性を証明する手法として、たとえば、分散型台帳51,52の各々にレコードが追加される毎に、追加されたレコード(終端レコード)のレコードハッシュ値に対してタイムスタンプトークンを取得することで、レコードが追加された時刻を証明し、2つのデータの順序性および時刻性を証明することが考えられる。しかしながら、当該手法では、分散型台帳51,52にレコードが追加される毎にタイムスタンプトークンを取得しなければならず、工数およびコストが増大してしまう。また、データ管理システム1にかかる処理負荷も増大してしまう。
<Proof of time stamp>
Here, there are cases where it is desired to prove the order indicating which data existed first between the part data of the first part and the part data of the second part, and the time indicating the time of existence of these data. As a method for proving the order and time, for example, each time a record is added to each of the distributed ledgers 51 and 52, a time stamp token is obtained for the record hash value of the added record (terminal record), thereby proving the time when the record was added, and proving the order and time of the two data. However, in this method, a time stamp token must be obtained each time a record is added to the distributed ledgers 51 and 52, which increases the labor and cost. In addition, the processing load on the data management system 1 also increases.
 そこで、実施の形態1に係るデータ管理システム1では、分散型台帳51のレコードハッシュ値と、分散型台帳52のレコードハッシュ値とを含む終端ハッシュ値を生成し、当該終端ハッシュ値に対するタイムスタンプトークンを取得することを可能とする。終端ハッシュ値に対してタイムスタンプトークンを取得することで、タイムスタンプトークンを取得した時点における、第1部品の部品データおよび第2部品の部品データの時刻性を同時に証明することができる。さらに、実施の形態1に係るデータ管理システム1では、上記のタイムスタンプトークンを、分散型台帳51,52のうちの少なくとも一方のレコードに組み込むことを可能とする。終端ハッシュ値に対して取得されたタイムスタンプトークンが分散型台帳51,52のうちの少なくとも一方のレコードに組み込まれることにより、タイムスタンプトークンの耐改ざん性を高めることができる。以下に、図3を用いて、具体的に説明する。なお、以下では、終端ハッシュ値を生成して、当該終端ハッシュ値に対するタイムスタンプトークンを取得する処理を「存在証明処理」とも称する。 Therefore, in the data management system 1 according to the first embodiment, a terminal hash value including a record hash value of the distributed ledger 51 and a record hash value of the distributed ledger 52 is generated, and a time stamp token for the terminal hash value can be obtained. By obtaining a time stamp token for the terminal hash value, the time of the part data of the first part and the part data of the second part at the time when the time stamp token was obtained can be simultaneously proven. Furthermore, in the data management system 1 according to the first embodiment, the above time stamp token can be incorporated into at least one record of the distributed ledgers 51 and 52. By incorporating the time stamp token obtained for the terminal hash value into at least one record of the distributed ledgers 51 and 52, the tamper resistance of the time stamp token can be improved. A specific description will be given below with reference to FIG. 3. In the following, the process of generating a terminal hash value and obtaining a time stamp token for the terminal hash value is also referred to as "existence proof process".
 図3は、存在証明処理を説明するための図である。図3の上段には、第1部品の証拠チェーンである分散型台帳51が模式的に示されており、図3の下段には、第2部品の証拠チェーンである分散型台帳52が模式的に示されている。以下では、第1部品の証拠チェーンを「第1証拠チェーン」とも称し、第2部品の証拠チェーンを「第2証拠チェーン」とも称する。 FIG. 3 is a diagram for explaining the existence proof process. The upper part of FIG. 3 shows a schematic representation of distributed ledger 51, which is the evidence chain for the first part, and the lower part of FIG. 3 shows a schematic representation of distributed ledger 52, which is the evidence chain for the second part. Hereinafter, the evidence chain for the first part will also be referred to as the "first evidence chain," and the evidence chain for the second part will also be referred to as the "second evidence chain."
 以下の説明においては、第1部品の部品データおよび第2部品の部品データのうちの一方のみを更新する操作を「第1操作」とも称する。第1部品の部品データおよび第2部品の部品データを同時に更新する操作を「第2操作」とも称する。 In the following description, an operation for updating only one of the part data of the first part and the part data of the second part is also referred to as a "first operation." An operation for simultaneously updating the part data of the first part and the part data of the second part is also referred to as a "second operation."
 第1証拠チェーン(分散型台帳51)には、第1部品の部品データのハッシュ値を含むレコードが時系列に記憶されている。第1操作が行なわれ、第1部品の部品データD10が最初にデータベース4に登録されると、その部品データD10のハッシュ値が含まれるAge「0」のレコードRA0が分散型台帳51に格納される。次に、第1操作が行なわれ、第1部品の部品データが更新されて、更新された部品データD11がデータベース4に登録されると、更新された部品データD11のハッシュ値と、Age「0」である親レコードRA0のレコードハッシュ値とを含むAge「1」のレコードRA1が分散型台帳51に格納される。さらに、第1操作が行なわれ、第1部品の部品データが更新されて、更新された部品データD12がデータベース4に登録されると、更新された部品データD12のハッシュ値と、Age「1」である親レコードRA1のレコードハッシュ値とを含むAge「2」のレコードRA2が分散型台帳51に格納される。 In the first evidence chain (distributed ledger 51), records including hash values of the part data of the first part are stored in chronological order. When the first operation is performed and the part data D10 of the first part is initially registered in the database 4, a record RA0 with Age "0" including the hash value of the part data D10 is stored in the distributed ledger 51. Next, when the first operation is performed and the part data of the first part is updated and the updated part data D11 is registered in the database 4, a record RA1 with Age "1" including the hash value of the updated part data D11 and the record hash value of the parent record RA0 with Age "0" is stored in the distributed ledger 51. Furthermore, when the first operation is performed and the part data of the first part is updated and the updated part data D12 is registered in the database 4, a record RA2 with Age "2" including the hash value of the updated part data D12 and the record hash value of the parent record RA1 with Age "1" is stored in the distributed ledger 51.
 第2証拠チェーン(分散型台帳52)には、第2部品の部品データのハッシュ値を含むレコードが時系列に記憶されている。第1操作が行なわれ、第2部品の部品データD20が最初にデータベース4に登録されると、その部品データD20のハッシュ値が含まれるAge「0」のレコードRB0が分散型台帳52に格納される。次に、第1操作が行なわれ、第2部品の部品データが更新されて、更新された部品データD21がデータベース4に登録されると、更新された部品データD21のハッシュ値と、Age「0」である親レコードRB0のレコードハッシュ値とを含むAge「1」のレコードRB1が分散型台帳52に格納される。 The second evidence chain (distributed ledger 52) stores records in chronological order, including hash values of the part data of the second part. When the first operation is performed and part data D20 of the second part is initially registered in database 4, record RB0 with Age "0" including the hash value of the part data D20 is stored in distributed ledger 52. Next, when the first operation is performed and the part data of the second part is updated and the updated part data D21 is registered in database 4, record RB1 with Age "1" including the hash value of the updated part data D21 and the record hash value of parent record RB0 with Age "0" is stored in distributed ledger 52.
 ここで、上記のように、分散型台帳51においては、Age「2」のレコードRA2が最新(終端)レコードであり、分散型台帳52においては、Age「1」のレコードRB1が最新(終端)レコードであることを想定する。そして、この状態において、入力装置25またはユーザ端末装置7に対して、第1部品の部品データおよび第2部品の部品データを同時に更新する第2操作が行なわれたことを想定する。実施の形態1では、第2操作が行なわれた場合に、存在証明処理が実行される。換言すると、第2操作が存在証明処理の実行条件となっている。 As described above, it is assumed that in distributed ledger 51, record RA2 with Age "2" is the latest (end) record, and in distributed ledger 52, record RB1 with Age "1" is the latest (end) record. In this state, it is assumed that a second operation has been performed on input device 25 or user terminal device 7 to simultaneously update the part data of the first part and the part data of the second part. In embodiment 1, when the second operation has been performed, the existence proof process is executed. In other words, the second operation is a condition for executing the existence proof process.
 第2操作は、たとえば、表示装置26またはユーザ端末装置7の表示画面において、2つの対象部品のID(Key)を入力し、表示されている更新ボタンを選択する操作であってもよい。さらに、第2操作を行なうための表示画面には、たとえば、取得されたタイムスタンプトークンの組み込み先となる対象部品のID(Key)を入力する「対象入力欄」が設けられる。たとえば、対象入力欄にk1が入力されれば、存在証明処理により取得されたタイムスタンプトークンが、第1証拠チェーン(分散型台帳51)のレコードに組み込まれる。たとえば、対象入力欄にk2が入力されれば、存在証明処理により取得されたタイムスタンプトークンが、第2証拠チェーン(分散型台帳52)のレコードに組み込まれる。たとえば、対象入力欄にk1およびk2が入力されれば、存在証明処理により取得されたタイムスタンプトークンが、第1証拠チェーン(分散型台帳51)のレコードおよび第2証拠チェーン(分散型台帳52)のレコードに組み込まれる。図3に示す例においては、対象入力欄にk2が入力されたことを想定している。 The second operation may be, for example, an operation of inputting the IDs (keys) of two target parts on the display screen of the display device 26 or the user terminal device 7 and selecting the displayed update button. Furthermore, the display screen for performing the second operation may be provided with, for example, a "target input field" for inputting the ID (key) of the target part into which the acquired time stamp token is to be incorporated. For example, if k1 is input into the target input field, the time stamp token acquired by the existence proof process is incorporated into the record of the first evidence chain (distributed ledger 51). For example, if k2 is input into the target input field, the time stamp token acquired by the existence proof process is incorporated into the record of the second evidence chain (distributed ledger 52). For example, if k1 and k2 are input into the target input field, the time stamp token acquired by the existence proof process is incorporated into the record of the first evidence chain (distributed ledger 51) and the record of the second evidence chain (distributed ledger 52). In the example shown in FIG. 3, it is assumed that k2 is input into the target input field.
 図2および図3を参照して、第1部品の部品データおよび第2部品の部品データを同時に更新する第2操作が行なわれると、制御装置21は、まず、データベース4に記憶されている第1部品の部品データD12を部品データD13に更新するとともに、第2部品の部品データD21を部品データD22に更新する。なお、第1部品の部品データD10が最初にデータベース4に記憶される場合には、制御装置21は、データベース4に第1部品の部品データを新たに記憶させればよい。同様に、第2部品の部品データD20が最初にデータベース4に記憶される場合には、制御装置21は、データベース4に第2部品の部品データを新たに記憶させればよい。 Referring to Figures 2 and 3, when a second operation is performed to simultaneously update the part data of the first part and the part data of the second part, the control device 21 first updates the part data D12 of the first part stored in the database 4 to part data D13, and updates the part data D21 of the second part to part data D22. Note that when the part data D10 of the first part is stored in the database 4 first, the control device 21 only needs to newly store the part data of the first part in the database 4. Similarly, when the part data D20 of the second part is stored in the database 4 first, the control device 21 only needs to newly store the part data of the second part in the database 4.
 次いで、制御装置21は、部品データD13のハッシュ値と、親レコードRA2のレコードハッシュ値とを含むAge「3」のレコードRA3を作成して、分散型台帳51に格納する。また、制御装置21は、レコードRA3を分散型台帳51に追加するためのトランザクションデータ(以下「トランザクションデータA」とも称する)を生成する。また、制御装置21は、部品データD22のハッシュ値と、親レコードRB1のレコードハッシュ値とを含むAge「2」のレコードRB2を作成して、分散型台帳52に格納する。また、制御装置21は、レコードRB2を分散型台帳52に追加するためのトランザクションデータ(以下「トランザクションデータB」とも称する)を生成する。制御装置21は、通信装置24を介して、生成されたトランザクションデータA,Bを、B企業、C企業およびD企業のクライアントサーバ2に送信する。トランザクションデータAを実行するトランザクション処理がB企業、C企業およびD企業の各クライアントサーバ2で行なわれることにより、各クライアントサーバ2の分散型台帳51にレコードRA3が格納される。トランザクションデータBを実行するトランザクション処理がB企業、C企業およびD企業の各クライアントサーバ2で行なわれることにより、各クライアントサーバ2の分散型台帳52にレコードRB2が格納される。なお、トランザクションデータA,Bは、1つのトランザクションデータとして生成されてもよい。 Next, the control device 21 creates a record RA3 of Age "3" including the hash value of the part data D13 and the record hash value of the parent record RA2, and stores it in the distributed ledger 51. The control device 21 also generates transaction data (hereinafter also referred to as "transaction data A") for adding the record RA3 to the distributed ledger 51. The control device 21 also creates a record RB2 of Age "2" including the hash value of the part data D22 and the record hash value of the parent record RB1, and stores it in the distributed ledger 52. The control device 21 also generates transaction data (hereinafter also referred to as "transaction data B") for adding the record RB2 to the distributed ledger 52. The control device 21 transmits the generated transaction data A and B to the client servers 2 of Company B, Company C, and Company D via the communication device 24. The transaction process for executing the transaction data A is performed in each of the client servers 2 of Company B, Company C, and Company D, and thereby the record RA3 is stored in the distributed ledger 51 of each client server 2. When transaction processing for executing transaction data B is performed at each of the client servers 2 of company B, company C, and company D, record RB2 is stored in the distributed ledger 52 of each of the client servers 2. Note that transaction data A and B may be generated as a single transaction data.
 制御装置21は、分散型台帳51,52にレコードRA3,RB2をそれぞれ格納すると、レコードRA3のレコードハッシュ値、および、レコードRB2のレコードハッシュ値をそれぞれ生成する。そして、制御装置21は、レコードRA3のレコードハッシュ値、および、レコードRB2のレコードハッシュ値を含めた終端ハッシュ値を生成する。制御装置21は、通信装置24を介して、終端ハッシュ値を時刻認証局8に送信し、時刻認証局8から終端ハッシュ値に対するタイムスタンプトークンを取得する。 When the control device 21 stores records RA3 and RB2 in the distributed ledgers 51 and 52, respectively, it generates a record hash value for record RA3 and a record hash value for record RB2. The control device 21 then generates a terminal hash value that includes the record hash value for record RA3 and the record hash value for record RB2. The control device 21 transmits the terminal hash value to the time stamp authority 8 via the communication device 24, and obtains a time stamp token for the terminal hash value from the time stamp authority 8.
 そして、制御装置21は、タイムスタンプトークンと、分散型台帳52のレコードRB2(親レコード)のレコードハッシュ値とを含むレコードRB3を作成して、分散型台帳52に格納する。また、制御装置21は、レコードRB3を分散型台帳52に追加するためのトランザクションデータを生成する。制御装置21は、通信装置24を介して、生成されたトランザクションデータを、B企業、C企業およびD企業のクライアントサーバ2に送信する。このトランザクションデータを実行するトランザクション処理がB企業、C企業およびD企業の各クライアントサーバ2で行なわれることにより、各クライアントサーバ2の分散型台帳52にレコードRB3が格納される。 Then, the control device 21 creates record RB3 including the timestamp token and the record hash value of record RB2 (parent record) in the distributed ledger 52, and stores it in the distributed ledger 52. The control device 21 also generates transaction data for adding record RB3 to the distributed ledger 52. The control device 21 transmits the generated transaction data to the client servers 2 of Company B, Company C, and Company D via the communication device 24. Transaction processing for executing this transaction data is performed in each of the client servers 2 of Company B, Company C, and Company D, and record RB3 is stored in the distributed ledger 52 of each client server 2.
 図3に対応する具体的な分散型台帳52の構造の一例を示すと、図4のようになる。図4は、分散型台帳セット50の構成の一例を示す図である。部品データD12の部品データD13への更新、および、部品データD21の部品データD22への更新を同時に行なう第2操作によって、分散型台帳51にAge「3」のレコードRA3が追加され、かつ、分散型台帳52にAge「2」のレコードRB2が追加されている。そして、終端ハッシュ値に対して取得されたタイムスタンプトークンが格納されたAge「3」のレコードRB3が分散型台帳52に追加されている。分散型台帳52のAge「3」のレコードRB3には、タイムスタンプトークンTMがObj-HVとして含まれている。 FIG. 4 shows an example of a specific structure of the distributed ledger 52 corresponding to FIG. 3. FIG. 4 shows an example of the configuration of the distributed ledger set 50. By the second operation of simultaneously updating part data D12 to part data D13 and updating part data D21 to part data D22, a record RA3 with Age "3" is added to the distributed ledger 51, and a record RB2 with Age "2" is added to the distributed ledger 52. Then, a record RB3 with Age "3" in which a timestamp token obtained for the terminal hash value is stored is added to the distributed ledger 52. The record RB3 with Age "3" in the distributed ledger 52 includes the timestamp token TM as Obj-HV.
 上記のように、第1部品の部品データおよび第2部品の部品データを同時に更新する操作(第2操作)、具体的には、部品データD12の部品データD13への更新、および、部品データD21の部品データD22への更新を同時に行なう操作がされると、制御装置21は、部品データD13のハッシュ値を含むレコードRA3を分散型台帳51に追加し、かつ、部品データD22のハッシュ値を含むレコードRB2を分散型台帳52に追加する。そして、制御装置21は、レコードRA3のレコードハッシュ値と、レコードRB2のレコードハッシュ値とを含む終端ハッシュ値を生成する。制御装置21は、終端ハッシュ値を時刻認証局8に送信して、終端ハッシュ値に対するタイムスタンプトークンを取得する。レコードRA3のレコードハッシュ値およびレコードRB2のレコードハッシュ値を含む終端ハッシュ値に対してタイムスタンプトークンを取得することで、タイムスタンプトークンにより証明される時刻に第1部品の部品データD10~D13が存在したこと、および、第2部品の部品データD20~D22が存在したことを証明することができる。また、図3に示されているように、タイムスタンプトークンを取得した時点以降に部品データD13が部品データD14に、部品データD22が部品データD23にそれぞれ更新されている。上記のように、終端ハッシュ値に対してタイムスタンプトークンを取得することで、部品データD14および部品データD23は、タイムスタンプトークンを取得した時点以降に登録されたことを証明することができる。分散型台帳51,52の各々のレコードRA3,RB2に対してタイムスタンプトークンを取得する場合に比べて、工数、費用およびシステム負荷等を低減させることができる。 As described above, when an operation (second operation) for simultaneously updating the part data of the first part and the part data of the second part is performed, specifically, an operation for simultaneously updating part data D12 to part data D13 and updating part data D21 to part data D22, the control device 21 adds record RA3 including the hash value of part data D13 to the distributed ledger 51, and adds record RB2 including the hash value of part data D22 to the distributed ledger 52. The control device 21 then generates a terminal hash value including the record hash value of record RA3 and the record hash value of record RB2. The control device 21 transmits the terminal hash value to the time stamp authority 8 and obtains a time stamp token for the terminal hash value. By obtaining a time stamp token for the terminal hash value including the record hash value of record RA3 and the record hash value of record RB2, it can be proved that the part data D10 to D13 of the first part existed and the part data D20 to D22 of the second part existed at the time proven by the time stamp token. Also, as shown in FIG. 3, part data D13 has been updated to part data D14, and part data D22 has been updated to part data D23 after the time stamp token was acquired. As described above, by acquiring a time stamp token for the terminal hash value, it is possible to prove that part data D14 and part data D23 were registered after the time stamp token was acquired. Compared to acquiring a time stamp token for each record RA3 and RB2 in distributed ledgers 51 and 52, the labor hours, costs, system load, and the like can be reduced.
 また、タイムスタンプトークンを分散型台帳52のレコードに組み込むことによって、タイムスタンプトークンの耐改ざん性を高めることができる。なお、タイムスタンプトークンは、分散型台帳51のレコードに組み込んでもよいし、分散型台帳51のレコードおよび分散型台帳52のレコードに組み込んでもよい。 Furthermore, by incorporating the timestamp token into the record of distributed ledger 52, the tamper resistance of the timestamp token can be improved. Note that the timestamp token may be incorporated into the record of distributed ledger 51, or into the record of distributed ledger 51 and the record of distributed ledger 52.
 なお、第1部品の部品データがD13からD14にさらに更新された場合には、部品データD14のハッシュ値と、レコードRA3のレコードハッシュ値とを含むAge「4」のレコードRA4が分散型台帳51に追加される。同様に、第2部品の部品データがD22からD23にさらに更新された場合には、部品データD23のハッシュ値と、レコードRB3のレコードハッシュ値とを含むAge「4」のレコードRB4が分散型台帳52に追加される。 If the part data of the first part is further updated from D13 to D14, then a record RA4 with Age "4" containing the hash value of part data D14 and the record hash value of record RA3 is added to the distributed ledger 51. Similarly, if the part data of the second part is further updated from D22 to D23, then a record RB4 with Age "4" containing the hash value of part data D23 and the record hash value of record RB3 is added to the distributed ledger 52.
 <機能ブロック>
 図5は、第1操作に応答する処理を実行するための制御装置21の機能ブロック図である。図5を参照して、制御装置21は、情報取得部2101と、ハッシュ生成部2102と、ナンス生成部2103と、電子署名部2104と、トランザクションデータ生成部2105と、トランザクションデータ送信部2106とを含む。制御装置21は、たとえば、ROM22に記憶されたプログラムを実行することにより、情報取得部2101、ハッシュ生成部2102、ナンス生成部2103、電子署名部2104、トランザクションデータ生成部2105、および、トランザクションデータ送信部2106として機能する。なお、情報取得部2101、ハッシュ生成部2102、ナンス生成部2103、電子署名部2104、トランザクションデータ生成部2105、および、トランザクションデータ送信部2106は、たとえば、専用のハードウェア(電子回路)により実現されてもよい。
<Function block>
Fig. 5 is a functional block diagram of control device 21 for executing a process in response to a first operation. Referring to Fig. 5, control device 21 includes information acquisition unit 2101, hash generation unit 2102, nonce generation unit 2103, digital signature unit 2104, transaction data generation unit 2105, and transaction data transmission unit 2106. Control device 21 functions as information acquisition unit 2101, hash generation unit 2102, nonce generation unit 2103, digital signature unit 2104, transaction data generation unit 2105, and transaction data transmission unit 2106, for example, by executing a program stored in ROM 22. Note that information acquisition unit 2101, hash generation unit 2102, nonce generation unit 2103, digital signature unit 2104, transaction data generation unit 2105, and transaction data transmission unit 2106 may be realized by, for example, dedicated hardware (electronic circuit).
 入力装置25あるいはユーザ端末装置7に対して、対象部品(第1部品または第2部品)の部品データを更新する第1操作が行なわれると、入力装置25あるいはユーザ端末装置7は、第1操作が行なわれたことを示す第1要求を出力する。 When a first operation for updating part data of a target part (first part or second part) is performed on the input device 25 or the user terminal device 7, the input device 25 or the user terminal device 7 outputs a first request indicating that the first operation has been performed.
 情報取得部2101は、入力装置25あるいはユーザ端末装置7から、第1要求を取得する。たとえば、クライアントサーバ2のユーザが、入力装置25を操作して、対象部品の部品データをデータベース4に保存(登録/更新)すると、第1要求が情報取得部2101に入力される。第1要求には、対象部品を特定するためのID(Key)が含まれている。情報取得部2101は、第1要求を取得すると、第1要求をハッシュ生成部2102およびナンス生成部2103に出力する。 The information acquisition unit 2101 acquires a first request from the input device 25 or the user terminal device 7. For example, when a user of the client server 2 operates the input device 25 to save (register/update) part data of a target part in the database 4, the first request is input to the information acquisition unit 2101. The first request includes an ID (Key) for identifying the target part. When the information acquisition unit 2101 acquires the first request, it outputs the first request to the hash generation unit 2102 and the nonce generation unit 2103.
 ハッシュ生成部2102は、第1要求を受けると、たとえばデータベース4から対象部品の部品データを読み出して、読み出された部品データのハッシュ値を生成する。ハッシュ生成部2102は、生成されたハッシュ値および対象部品のIDを、電子署名部2104およびトランザクションデータ生成部2105に出力する。 When the hash generation unit 2102 receives the first request, it reads out part data of the target part from the database 4, for example, and generates a hash value of the read out part data. The hash generation unit 2102 outputs the generated hash value and the ID of the target part to the digital signature unit 2104 and the transaction data generation unit 2105.
 ナンス生成部2103は、第1要求を受けると、ナンス値を生成する。ナンス値は、暗号学的に衝突が困難なハッシュ値である。ナンス生成部2103は、生成されたナンス値および対象部品のIDを、トランザクションデータ生成部2105に出力する。なお、電子署名の作成にナンス値が用いられる場合には、ナンス生成部2103は、ナンス値および対象部品のIDを電子署名部2104に出力してもよい。 When the nonce generation unit 2103 receives the first request, it generates a nonce value. The nonce value is a hash value that is cryptographically unlikely to collide. The nonce generation unit 2103 outputs the generated nonce value and the ID of the target part to the transaction data generation unit 2105. Note that when a nonce value is used to create a digital signature, the nonce generation unit 2103 may output the nonce value and the ID of the target part to the digital signature unit 2104.
 電子署名部2104は、記憶装置27から秘密鍵271を読み出す。電子署名部2104は、ハッシュ生成部2102から受けたハッシュ値を秘密鍵271により暗号化することで電子署名を作成する。電子署名部2104は、作成された電子署名および対象部品のIDをトランザクションデータ生成部2105に出力する。また、電子署名部2104は、ナンス生成部2103から受けたナンス値を秘密鍵271により暗号化することで電子署名を作成してもよい。また、電子署名部2104は、ハッシュ値およびナンス値を秘密鍵271により暗号化することで電子署名を作成してもよい。 The electronic signature unit 2104 reads the private key 271 from the storage device 27. The electronic signature unit 2104 creates an electronic signature by encrypting the hash value received from the hash generation unit 2102 with the private key 271. The electronic signature unit 2104 outputs the created electronic signature and the ID of the target part to the transaction data generation unit 2105. The electronic signature unit 2104 may also create an electronic signature by encrypting the nonce value received from the nonce generation unit 2103 with the private key 271. The electronic signature unit 2104 may also create an electronic signature by encrypting the hash value and the nonce value with the private key 271.
 トランザクションデータ生成部2105は、ネットワークNWへ送信するためのトランザクションデータを生成する。たとえば、トランザクションデータ生成部2105は、Key、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報を含めたトランザクションデータを生成する。トランザクションデータ生成部2105は、たとえば、分散型台帳セット50にKeyを照会させることで親レコードのAgeを認識し、親レコードのAgeをインクリメントして、追加するレコードのAgeとする。トランザクションデータ生成部2105は、ハッシュ生成部2102により生成されたハッシュ値をObj-HVとし、ナンス生成部2103により生成されたナンス値をNonceとし、電子署名部2104により作成された電子署名をSigとする。また、トランザクションデータ生成部2105は、親レコードのレコードハッシュ値をPrev-HVとする。トランザクションデータ生成部2105は、Key、Age、Obj-HV、Nonce、Sig、および、Prev-HVの情報をハッシュ化して、HVとする。トランザクションデータには、さらに、当該トランザクションデータをネットワークNWへ向けてブロードキャストする(ネットワークNWへ送信する)時刻情報、および、当該トランザクションデータの送信者情報が含まれてもよい。トランザクションデータ生成部2105は、生成されたトランザクションデータをトランザクションデータ送信部2106に出力する。 The transaction data generation unit 2105 generates transaction data to be sent to the network NW. For example, the transaction data generation unit 2105 generates transaction data including information on Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV. For example, the transaction data generation unit 2105 recognizes the Age of the parent record by querying the distributed ledger set 50 for the Key, and increments the Age of the parent record to set it as the Age of the record to be added. The transaction data generation unit 2105 sets the hash value generated by the hash generation unit 2102 as Obj-HV, the nonce value generated by the nonce generation unit 2103 as Nonce, and the electronic signature created by the electronic signature unit 2104 as Sig. The transaction data generation unit 2105 also sets the record hash value of the parent record as Prev-HV. The transaction data generation unit 2105 hashes the information of Key, Age, Obj-HV, Nonce, Sig, and Prev-HV to generate HV. The transaction data may further include time information when the transaction data is broadcast (sent to the network NW) to the network NW, and sender information of the transaction data. The transaction data generation unit 2105 outputs the generated transaction data to the transaction data transmission unit 2106.
 トランザクションデータ送信部2106は、トランザクションデータをネットワークNWへ送信するための制御信号を通信装置24に出力する。これにより、通信装置24を介して、トランザクションデータがネットワークNWに送信される。 The transaction data transmission unit 2106 outputs a control signal to the communication device 24 to transmit the transaction data to the network NW. As a result, the transaction data is transmitted to the network NW via the communication device 24.
 図6は、第2操作に応答する処理を実行するための制御装置21の機能ブロック図である。図6を参照して、制御装置21は、情報取得部2111と、レコード追加部2112と、終端ハッシュ生成部2113と、ナンス生成部2114と、タイムスタンプトークン取得部2115と、電子署名部2116と、トランザクションデータ生成部2117と、トランザクションデータ送信部2118とを含む。制御装置21は、たとえば、ROM22に記憶されたプログラムを実行することにより、情報取得部2111、レコード追加部2112、終端ハッシュ生成部2113、ナンス生成部2114、タイムスタンプトークン取得部2115、電子署名部2116、トランザクションデータ生成部2117、および、トランザクションデータ送信部2118として機能する。なお、情報取得部2111、レコード追加部2112、終端ハッシュ生成部2113、ナンス生成部2114、タイムスタンプトークン取得部2115、電子署名部2116、トランザクションデータ生成部2117、および、トランザクションデータ送信部2118は、たとえば、専用のハードウェア(電子回路)により実現されてもよい。 6 is a functional block diagram of the control device 21 for executing a process responsive to the second operation. Referring to FIG. 6, the control device 21 includes an information acquisition unit 2111, a record addition unit 2112, a terminal hash generation unit 2113, a nonce generation unit 2114, a timestamp token acquisition unit 2115, a digital signature unit 2116, a transaction data generation unit 2117, and a transaction data transmission unit 2118. The control device 21 functions as the information acquisition unit 2111, the record addition unit 2112, the terminal hash generation unit 2113, the nonce generation unit 2114, the timestamp token acquisition unit 2115, the digital signature unit 2116, the transaction data generation unit 2117, and the transaction data transmission unit 2118, for example, by executing a program stored in ROM 22. The information acquisition unit 2111, the record addition unit 2112, the termination hash generation unit 2113, the nonce generation unit 2114, the timestamp token acquisition unit 2115, the digital signature unit 2116, the transaction data generation unit 2117, and the transaction data transmission unit 2118 may be realized, for example, by dedicated hardware (electronic circuitry).
 入力装置25あるいはユーザ端末装置7に対して、第1部品の部品データおよび第2部品の部品データを同時に更新する第2操作が行なわれると、入力装置25あるいはユーザ端末装置7は、第2操作が行なわれたことを示す第2要求を出力する。 When a second operation for simultaneously updating the part data of the first part and the part data of the second part is performed on the input device 25 or the user terminal device 7, the input device 25 or the user terminal device 7 outputs a second request indicating that the second operation has been performed.
 情報取得部2111は、入力装置25あるいはユーザ端末装置7から、第2要求を取得する。たとえば、クライアントサーバ2のユーザが、入力装置25を操作して、第1部品および第2部品の部品データをデータベース4に保存(登録/更新)すると、第2要求が情報取得部2111に入力される。第2要求には、対象部品を特定するためのID(k1およびk2)、および、対象入力欄に入力された、タイムスタンプトークンの組み込み先となる対象部品のID(たとえば、k2)が含まれている。情報取得部2111は、第2要求を取得すると、第2要求をレコード追加部2112に出力する。 The information acquisition unit 2111 acquires the second request from the input device 25 or the user terminal device 7. For example, when a user of the client server 2 operates the input device 25 to save (register/update) the part data of the first part and the second part in the database 4, the second request is input to the information acquisition unit 2111. The second request includes an ID (k1 and k2) for identifying the target part, and an ID (for example, k2) of the target part into which the timestamp token is to be incorporated, which is entered in the target input field. When the information acquisition unit 2111 acquires the second request, it outputs the second request to the record addition unit 2112.
 レコード追加部2112は、図5で説明した機能と同様の機能を有する。具体的には、レコード追加部2112は、IDにより特定される対象部品に対して図5に示した処理と同様の処理を実行し、第1部品の部品データのハッシュ値を含むレコード(たとえば図3のレコードRA3)を分散型台帳51に追加するためのトランザクションデータA、および、第2部品の部品データのハッシュ値を含むレコード(たとえば図3のレコードRB2)を分散型台帳52に追加するためのトランザクションデータBをそれぞれ生成し、これらをネットワークNWに送信する。レコード追加部2112は、トランザクションデータA,BのネットワークNWへの送信を完了すると、第2要求を終端ハッシュ生成部2113およびナンス生成部2114に出力する。 The record adding unit 2112 has the same function as that described in FIG. 5. Specifically, the record adding unit 2112 executes the same process as that shown in FIG. 5 for the target part identified by the ID, generates transaction data A for adding a record including a hash value of the part data of the first part (e.g., record RA3 in FIG. 3) to the distributed ledger 51, and transaction data B for adding a record including a hash value of the part data of the second part (e.g., record RB2 in FIG. 3) to the distributed ledger 52, and transmits these to the network NW. When the record adding unit 2112 completes transmission of the transaction data A and B to the network NW, it outputs a second request to the termination hash generation unit 2113 and the nonce generation unit 2114.
 終端ハッシュ生成部2113は、分散型台帳51の最新(終端)レコード(たとえば図3のレコードRA3)のレコードハッシュ値、および、分散型台帳52の最新(終端)レコード(たとえば図3のレコードRB2)のレコードハッシュ値を含む終端ハッシュ値を生成する。終端ハッシュ生成部2113は、生成された終端ハッシュ値、および、タイムスタンプトークンの組み込み先となる対象部品のID(たとえばk2)を、タイムスタンプトークン取得部2115に出力する。 The terminal hash generation unit 2113 generates a terminal hash value that includes the record hash value of the latest (terminal) record in the distributed ledger 51 (e.g., record RA3 in FIG. 3) and the record hash value of the latest (terminal) record in the distributed ledger 52 (e.g., record RB2 in FIG. 3). The terminal hash generation unit 2113 outputs the generated terminal hash value and the ID of the target component into which the timestamp token is to be embedded (e.g., k2) to the timestamp token acquisition unit 2115.
 ナンス生成部2114は、第2要求を受けると、ナンス値を生成する。ナンス生成部2114は、生成されたナンス値、および、タイムスタンプトークンの組み込み先となる対象部品のID(たとえばk2)を、トランザクションデータ生成部2117に出力する。なお、電子署名の作成にナンス値が用いられる場合には、ナンス生成部2114は、ナンス値、および、タイムスタンプトークンの組み込み先となる対象部品のID(たとえばk2)を電子署名部2116に出力してもよい。 When the nonce generation unit 2114 receives the second request, it generates a nonce value. The nonce generation unit 2114 outputs the generated nonce value and the ID (e.g., k2) of the target component into which the timestamp token is to be embedded to the transaction data generation unit 2117. Note that when a nonce value is used to create an electronic signature, the nonce generation unit 2114 may output the nonce value and the ID (e.g., k2) of the target component into which the timestamp token is to be embedded to the electronic signature unit 2116.
 タイムスタンプトークン取得部2115は、終端ハッシュ生成部2113から受けた終端ハッシュ値に対するタイムスタンプトークンを取得する。具体的には、タイムスタンプトークン取得部2115は、終端ハッシュ値を時刻認証局8に送信するための制御信号を、通信装置24に出力する。これにより、通信装置24を介して、時刻認証局8に終端ハッシュ値が送信される。終端ハッシュ値を受信した時刻認証局8は、終端ハッシュ値の送信元のクライアントサーバ2へタイムスタンプトークンを返信する。タイムスタンプトークン取得部2115は、通信装置24を介して、時刻認証局8からタイムスタンプトークンを取得する。タイムスタンプトークン取得部2115は、タイムスタンプトークン、および、タイムスタンプトークンの組み込み先となる対象部品のID(たとえばk2)を、電子署名部2116およびトランザクションデータ生成部2117に出力する。 The timestamp token acquisition unit 2115 acquires a timestamp token for the termination hash value received from the termination hash generation unit 2113. Specifically, the timestamp token acquisition unit 2115 outputs a control signal to the communication device 24 to transmit the termination hash value to the time-stamp authority 8. As a result, the termination hash value is transmitted to the time-stamp authority 8 via the communication device 24. The time-stamp authority 8 that has received the termination hash value returns a timestamp token to the client server 2 that transmitted the termination hash value. The timestamp token acquisition unit 2115 acquires a timestamp token from the time-stamp authority 8 via the communication device 24. The timestamp token acquisition unit 2115 outputs the timestamp token and the ID (e.g. k2) of the target component into which the timestamp token is to be embedded to the electronic signature unit 2116 and the transaction data generation unit 2117.
 電子署名部2116は、記憶装置27から秘密鍵271を読み出す。電子署名部2116は、タイムスタンプトークン取得部2115から受けたタイムスタンプトークンを秘密鍵271により暗号化することで電子署名を作成する。電子署名部2116は、作成された電子署名、および、タイムスタンプトークンの組み込み先となる対象部品のID(たとえばk2)をトランザクションデータ生成部2117に出力する。また、電子署名部2116は、ナンス生成部2114から受けたナンス値を秘密鍵271により暗号化することで電子署名を作成してもよい。また、電子署名部2116は、タイムスタンプトークンおよびナンス値を秘密鍵271により暗号化することで電子署名を作成してもよい。 The electronic signature unit 2116 reads out the private key 271 from the storage device 27. The electronic signature unit 2116 creates an electronic signature by encrypting the timestamp token received from the timestamp token acquisition unit 2115 with the private key 271. The electronic signature unit 2116 outputs the created electronic signature and the ID (e.g. k2) of the target component into which the timestamp token is to be embedded to the transaction data generation unit 2117. The electronic signature unit 2116 may also create an electronic signature by encrypting the nonce value received from the nonce generation unit 2114 with the private key 271. The electronic signature unit 2116 may also create an electronic signature by encrypting the timestamp token and the nonce value with the private key 271.
 トランザクションデータ生成部2117は、ネットワークNWへ送信するためのトランザクションデータ(以下「トランザクションデータC」とも称する)を生成する。たとえば、トランザクションデータ生成部2117は、Key、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報を含めたトランザクションデータを生成する。トランザクションデータ生成部2117は、タイムスタンプトークンの組み込み先となる対象部品のID(たとえばk2)をKeyとする。また、トランザクションデータ生成部2117は、タイムスタンプトークンをObj-HVとする。トランザクションデータ生成部2117のその他の機能は、図5で説明したトランザクションデータ生成部2105と基本的に同様である。 The transaction data generation unit 2117 generates transaction data (hereinafter also referred to as "transaction data C") to be sent to the network NW. For example, the transaction data generation unit 2117 generates transaction data including information on Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV. The transaction data generation unit 2117 sets the ID (for example, k2) of the target component into which the timestamp token is to be embedded as the Key. The transaction data generation unit 2117 also sets the timestamp token as Obj-HV. Other functions of the transaction data generation unit 2117 are basically the same as those of the transaction data generation unit 2105 described in FIG. 5.
 トランザクションデータ送信部2118は、トランザクションデータCをネットワークNWへ送信するための制御信号を通信装置24に出力する。これにより、通信装置24を介して、トランザクションデータCがネットワークNWに送信される。 The transaction data transmission unit 2118 outputs a control signal to the communication device 24 to transmit the transaction data C to the network NW. As a result, the transaction data C is transmitted to the network NW via the communication device 24.
 図7は、受信したトランザクションデータを実行するための制御装置21の機能ブロック図である。図7を参照して、制御装置21は、トランザクションデータ取得部2121と、署名検証部2122と、レコード作成部2123と、台帳更新部2124と、出力部2125とを含む。制御装置21は、たとえば、ROM22に記憶されたプログラムを実行することにより、トランザクションデータ取得部2121、署名検証部2122、レコード作成部2123、台帳更新部2124、および、出力部2125として機能する。なお、トランザクションデータ取得部2121、署名検証部2122、レコード作成部2123、台帳更新部2124、および、出力部2125は、たとえば、専用のハードウェア(電子回路)により実現されてもよい。 FIG. 7 is a functional block diagram of the control device 21 for executing received transaction data. Referring to FIG. 7, the control device 21 includes a transaction data acquisition unit 2121, a signature verification unit 2122, a record creation unit 2123, a ledger update unit 2124, and an output unit 2125. The control device 21 functions as the transaction data acquisition unit 2121, the signature verification unit 2122, the record creation unit 2123, the ledger update unit 2124, and the output unit 2125, for example, by executing a program stored in the ROM 22. Note that the transaction data acquisition unit 2121, the signature verification unit 2122, the record creation unit 2123, the ledger update unit 2124, and the output unit 2125 may be realized, for example, by dedicated hardware (electronic circuitry).
 トランザクションデータ取得部2121は、他のクライアントサーバ2から送信されたトランザクションデータを取得する。トランザクションデータ取得部2121は、取得されたトランザクションデータを署名検証部2122に出力する。 The transaction data acquisition unit 2121 acquires transaction data sent from other client servers 2. The transaction data acquisition unit 2121 outputs the acquired transaction data to the signature verification unit 2122.
 署名検証部2122は、トランザクションデータに含まれる電子署名(Sig)の有効性を検証する。まず、署名検証部2122は、トランザクションデータに含まれる送信者情報に基づいて、当該トランザクションデータの送信元のクライアントサーバ2を特定する。そして、署名検証部2122は、特定されたクライアントサーバ2の公開鍵(複数の公開鍵272のうちの1つ)を記憶装置27から読み出す。署名検証部2122は、読み出された公開鍵を用いて、トランザクションデータに含まれる電子署名を復号する。上述のとおり、電子署名は、部品データのハッシュ値またはタイムスタンプトークンが、送信元のクライアントサーバ2の秘密鍵を用いて暗号化されたものである。署名検証部2122は、復号した値と、トランザクションデータに含まれているObj-HV(ハッシュ値またはタイムスタンプトークン)とを比較する。両者が一致することを確認することにより、署名検証部2122は、電子署名の有効性を認める。 The signature verification unit 2122 verifies the validity of the electronic signature (Sig) included in the transaction data. First, the signature verification unit 2122 identifies the client server 2 that sent the transaction data based on the sender information included in the transaction data. Then, the signature verification unit 2122 reads the public key (one of the multiple public keys 272) of the identified client server 2 from the storage device 27. The signature verification unit 2122 uses the read public key to decrypt the electronic signature included in the transaction data. As described above, the electronic signature is a hash value or timestamp token of the part data encrypted using the private key of the sending client server 2. The signature verification unit 2122 compares the decrypted value with the Obj-HV (hash value or timestamp token) included in the transaction data. By confirming that the two match, the signature verification unit 2122 recognizes the validity of the electronic signature.
 レコード作成部2123は、電子署名の有効性が認められた場合に、トランザクションデータに基づいて、分散型台帳セット50に追加するレコードを作成する。レコード作成部2123は、トランザクションデータから、Key、Age、Obj-HV、Nonce、Sig、および、Prev-HV、および、HVの情報を読み出して、これらの情報を含むレコードを作成する。 If the validity of the electronic signature is confirmed, the record creation unit 2123 creates a record to be added to the distributed ledger set 50 based on the transaction data. The record creation unit 2123 reads the information of Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV from the transaction data, and creates a record including this information.
 台帳更新部2124は、レコード作成部2123により作成されたレコードを分散型台帳セット50に追加し、分散型台帳セット50を更新する。具体的には、台帳更新部2124は、作成されたレコードのKeyを参照し、当該レコードを追加する分散型台帳を特定する。たとえば、第1部品の部品データを更新する第1操作に応じて生成されたトランザクションデータは、第1部品のIDを示す「k1」をKeyとして有している。このトランザクションデータに基づいて作成されたレコードも、「k1」をKeyとして有する。よって、台帳更新部2124は、当該レコードを、第1部品の部品データの証拠チェーンである分散型台帳51に追加する。 The ledger update unit 2124 adds the record created by the record creation unit 2123 to the distributed ledger set 50, and updates the distributed ledger set 50. Specifically, the ledger update unit 2124 references the key of the created record and identifies the distributed ledger to which the record is to be added. For example, the transaction data generated in response to the first operation that updates the part data of the first part has "k1" indicating the ID of the first part as the key. The record created based on this transaction data also has "k1" as the key. Therefore, the ledger update unit 2124 adds the record to the distributed ledger 51, which is the evidence chain for the part data of the first part.
 また、第2操作に応じて生成された上述のトランザクションデータAは、第1部品のIDを示す「k1」をKeyとして有している。トランザクションデータAに基づいて作成されたレコードも、「k1」をKeyとして有する。よって、台帳更新部2124は、当該レコードを、第1部品の部品データの証拠チェーンである分散型台帳51に追加する。また、第2操作に応じて生成された上述のトランザクションデータBは、第2部品のIDを示す「k2」をKeyとして有している。トランザクションデータBに基づいて作成されたレコードも、「k2」をKeyとして有する。よって、台帳更新部2124は、当該レコードを、第2部品の部品データの証拠チェーンである分散型台帳52に追加する。また、第2操作に応じて生成された上述のトランザクションデータCは、上述の例では第2部品のIDを示す「k2」をKeyとして有している。トランザクションデータCに基づいて作成されたレコードも、「k2」をKeyとして有する。よって、台帳更新部2124は、当該レコードを、第2部品の部品データの証拠チェーンである分散型台帳52に追加する。これによって、タイムスタンプトークンを含むレコードが分散型台帳52に格納される。 Furthermore, the above-mentioned transaction data A generated in response to the second operation has "k1" indicating the ID of the first part as a key. The record created based on the transaction data A also has "k1" as a key. Therefore, the ledger update unit 2124 adds the record to the distributed ledger 51, which is the evidence chain of the part data of the first part. Furthermore, the above-mentioned transaction data B generated in response to the second operation has "k2" indicating the ID of the second part as a key. The record created based on the transaction data B also has "k2" as a key. Therefore, the ledger update unit 2124 adds the record to the distributed ledger 52, which is the evidence chain of the part data of the second part. Furthermore, the above-mentioned transaction data C generated in response to the second operation has "k2" indicating the ID of the second part as a key in the above example. The record created based on the transaction data C also has "k2" as a key. Therefore, the ledger update unit 2124 adds the record to the distributed ledger 52, which is the evidence chain for the part data of the second part. As a result, a record including the timestamp token is stored in the distributed ledger 52.
 台帳更新部2124は、分散型台帳セット50の更新が完了すると、その旨を出力部2125に出力する。 When the update of the distributed ledger set 50 is completed, the ledger update unit 2124 outputs a message to that effect to the output unit 2125.
 出力部2125は、トランザクションデータを実行する処理(トランザクション処理)が完了したことを、トランザクションデータの送信元のクライアントサーバ2に送信するための制御信号を通信装置24に出力する。これにより、通信装置24を介して、トランザクション処理の完了の報告が、トランザクションデータの送信元のクライアントサーバ2に送信される。 The output unit 2125 outputs a control signal to the communication device 24 to notify the client server 2 that transmitted the transaction data that the process of executing the transaction data (transaction processing) has been completed. As a result, a report of the completion of the transaction processing is transmitted via the communication device 24 to the client server 2 that transmitted the transaction data.
 <フローチャート>
 図8は、第1要求を受けた場合のトランザクションデータを生成する処理の手順を示すフローチャートである。図8に示すフローチャートの処理は、入力装置25あるいはユーザ端末装置7から第1要求を受けた際に、制御装置21によって実行される。なお、図8および後述する図9,10に示すフローチャートの各ステップ(以下ステップを「S」と略す)は、制御装置21によるソフトウェア処理によって実現される場合について説明するが、その一部あるいは全部が制御装置21内に作製されたハードウェア(電子回路)によって実現されてもよい。
<Flowchart>
Fig. 8 is a flowchart showing the procedure of a process for generating transaction data when a first request is received. The process of the flowchart shown in Fig. 8 is executed by the control device 21 when a first request is received from the input device 25 or the user terminal device 7. Note that each step (hereinafter, steps are abbreviated as "S") of the flowcharts shown in Fig. 8 and Figs. 9 and 10 described below will be described as being realized by software processing by the control device 21, but a part or all of the steps may be realized by hardware (electronic circuits) created within the control device 21.
 S1において、制御装置21は、ナンス値を生成する。このナンス値は、トランザクションデータの番号として用いられる。 In S1, the control device 21 generates a nonce value. This nonce value is used as a number for the transaction data.
 S2において、制御装置21は、第1要求に含まれる対象部品を特定するためのIDに基づいて、データベース4から対象部品の部品データを読み出して部品データのハッシュ値を生成する。 In S2, the control device 21 reads the part data of the target part from the database 4 based on the ID for identifying the target part included in the first request, and generates a hash value of the part data.
 S3において、制御装置21は、記憶装置27から秘密鍵271を読み出し、秘密鍵271を用いて、S2で生成されたハッシュ値を暗号化して電子署名を作成する。なお、制御装置21は、秘密鍵271を用いて、S1で生成されたナンス値を暗号化して電子署名を作成してもよい。また、制御装置21は、秘密鍵271を用いて、S2で生成されたハッシュ値およびS1で生成されたナンス値を暗号化して電子署名を作成してもよい。 In S3, the control device 21 reads the private key 271 from the storage device 27, and uses the private key 271 to encrypt the hash value generated in S2 to create an electronic signature. The control device 21 may also use the private key 271 to encrypt the nonce value generated in S1 to create an electronic signature. The control device 21 may also use the private key 271 to encrypt the hash value generated in S2 and the nonce value generated in S1 to create an electronic signature.
 S4において、制御装置21は、Key、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報を含めたトランザクションデータを生成する。具体的には、制御装置21は、第1要求に含まれる対象部品のIDをKeyとする。また、制御装置21は、S1で生成されたナンス値をNonceとし、S2で生成されたハッシュ値をObj-HVとし、S3で作成された電子署名をSigとする。また、制御装置21は、分散型台帳セット50にKeyを照会させて親レコードのAgeを認識し、親レコードのAgeをインクリメントしたものをAgeとする。また、制御装置21は、親レコードのレコードハッシュ(HV)をPrev-HVとする。また、制御装置21は、HVの情報を除く、Key、Age、Obj-HV、Nonce、Sig、および、Prev-HVの情報をハッシュ化して、HVとする。また、制御装置21は、トランザクションデータに、当該トランザクションデータをネットワークNWへ向けてブロードキャストする時刻情報、および、当該トランザクションデータの送信者情報を含めてもよい。 In S4, the control device 21 generates transaction data including information on Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV. Specifically, the control device 21 sets the ID of the target part included in the first request as Key. The control device 21 also sets the nonce value generated in S1 as Nonce, the hash value generated in S2 as Obj-HV, and the electronic signature created in S3 as Sig. The control device 21 also queries the distributed ledger set 50 for the Key to recognize the Age of the parent record, and sets the Age to the incremented Age of the parent record. The control device 21 also sets the record hash (HV) of the parent record as Prev-HV. The control device 21 also hashes the information on Key, Age, Obj-HV, Nonce, Sig, and Prev-HV, excluding the HV information, to HV. The control device 21 may also include in the transaction data time information for broadcasting the transaction data to the network NW and sender information of the transaction data.
 S5において、制御装置21は、S4で生成されたトランザクションデータをネットワークNWへ送信するための制御信号を通信装置24に出力する。これにより、通信装置24を介して、トランザクションデータがネットワークNWに送信される。 In S5, the control device 21 outputs a control signal to the communication device 24 to transmit the transaction data generated in S4 to the network NW. As a result, the transaction data is transmitted to the network NW via the communication device 24.
 図9は、第2要求を受けた場合のトランザクションデータを生成する処理の手順を示すフローチャートである。図9に示すフローチャートの処理は、入力装置25あるいはユーザ端末装置7から第2要求を受けた際に、制御装置21によって実行される。 FIG. 9 is a flowchart showing the procedure for processing to generate transaction data when a second request is received. The processing of the flowchart shown in FIG. 9 is executed by the control device 21 when a second request is received from the input device 25 or the user terminal device 7.
 S11において、制御装置21は、第1部品の部品データおよび第2部品の部品データの更新に応答するレコードを分散型台帳51,52にそれぞれ追加するトランザクションデータを送信する処理を実行する。具体的には、制御装置21は、図8で説明した処理と同様の処理を実行して、第1部品の部品データの更新に応答するレコードを分散型台帳51に追加するトランザクションデータAを生成し、トランザクションデータAをネットワークNWへ送信するための制御信号を通信装置24に出力する。また、制御装置21は、図8で説明した処理と同様の処理を実行して、第2部品の部品データの更新に応答するレコードを分散型台帳52に追加するトランザクションデータBを生成し、トランザクションデータBをネットワークNWへ送信するための制御信号を通信装置24に出力する。 In S11, the control device 21 executes a process of transmitting transaction data for adding records in response to the updates to the part data of the first part and the part data of the second part to the distributed ledgers 51 and 52, respectively. Specifically, the control device 21 executes a process similar to that described in FIG. 8 to generate transaction data A for adding a record in response to the updates to the part data of the first part to the distributed ledger 51, and outputs a control signal to the communication device 24 for transmitting the transaction data A to the network NW. The control device 21 also executes a process similar to that described in FIG. 8 to generate transaction data B for adding a record in response to the updates to the part data of the second part to the distributed ledger 52, and outputs a control signal to the communication device 24 for transmitting the transaction data B to the network NW.
 S12において、制御装置21は、ナンス値を生成する。このナンス値は、後述のS16で生成されるトランザクションデータの番号として用いられる。 In S12, the control device 21 generates a nonce value. This nonce value is used as the number of the transaction data generated in S16, which will be described later.
 S13において、制御装置21は、分散型台帳51の終端レコード(すなわち、S11で送信されたトランザクションデータAの実行により分散型台帳51に追加されるレコード)のレコードハッシュ値と、分散型台帳52の終端レコード(すなわち、S11で送信されたトランザクションデータBの実行により分散型台帳52に追加されるレコード)のレコードハッシュ値とを含む終端ハッシュ値を作成する。 In S13, the control device 21 creates a terminal hash value that includes the record hash value of the terminal record of the distributed ledger 51 (i.e., the record that is added to the distributed ledger 51 by executing the transaction data A sent in S11) and the record hash value of the terminal record of the distributed ledger 52 (i.e., the record that is added to the distributed ledger 52 by executing the transaction data B sent in S11).
 S14において、制御装置21は、S13で生成された終端ハッシュ値を時刻認証局8に送信するための制御信号を、通信装置24に出力する。これにより、通信装置24を介して、時刻認証局8に終端ハッシュ値が送信される。終端ハッシュ値を受信した時刻認証局8は、終端ハッシュ値の送信元のクライアントサーバ2へタイムスタンプトークンを返信する。制御装置21は、通信装置24を介して、時刻認証局8からタイムスタンプトークンを取得する。 In S14, the control device 21 outputs a control signal to the communication device 24 to transmit the termination hash value generated in S13 to the time-stamp authority 8. As a result, the termination hash value is transmitted to the time-stamp authority 8 via the communication device 24. The time-stamp authority 8 that has received the termination hash value returns a timestamp token to the client server 2 that transmitted the termination hash value. The control device 21 obtains the timestamp token from the time-stamp authority 8 via the communication device 24.
 S15において、制御装置21は、記憶装置27から秘密鍵271を読み出し、秘密鍵271を用いて、S14で取得されたタイムスタンプトークンを暗号化して電子署名を作成する。なお、制御装置21は、秘密鍵271を用いて、S12で生成されたナンス値を暗号化して電子署名を作成してもよい。また、制御装置21は、秘密鍵271を用いて、S14で取得されたタイムスタンプトークンおよびS12で生成されたナンス値を暗号化して電子署名を作成してもよい。 In S15, the control device 21 reads the private key 271 from the storage device 27, and uses the private key 271 to encrypt the timestamp token acquired in S14 to create an electronic signature. The control device 21 may also use the private key 271 to encrypt the nonce value generated in S12 to create an electronic signature. The control device 21 may also use the private key 271 to encrypt the timestamp token acquired in S14 and the nonce value generated in S12 to create an electronic signature.
 S16において、制御装置21は、Key、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報を含めたトランザクションデータを生成する。制御装置21は、「対象入力欄」に入力されたID(上述の例ではk2)をKeyとする。また、制御装置21は、S14で取得されたタイムスタンプトークンをObj-HVとする。S16における、その他の処理は、図8のS4の処理と基本的に同様であるため、繰り返し説明しない。 In S16, the control device 21 generates transaction data including information on Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV. The control device 21 sets the ID entered in the "target input field" (k2 in the above example) as the Key. The control device 21 also sets the timestamp token acquired in S14 as Obj-HV. The other processes in S16 are basically the same as those in S4 of FIG. 8, so they will not be described again.
 S17において、制御装置21は、S16で生成されたトランザクションデータをネットワークNWへ送信するための制御信号を通信装置24に出力する。これにより、通信装置24を介して、トランザクションデータがネットワークNWに送信される。 In S17, the control device 21 outputs a control signal to the communication device 24 to transmit the transaction data generated in S16 to the network NW. As a result, the transaction data is transmitted to the network NW via the communication device 24.
 図10は、トランザクションデータを受信した場合に実行される処理の手順を示すフローチャートである。図10に示すフローチャートの処理は、トランザクションデータを受信した際に、制御装置21によって実行される。 FIG. 10 is a flowchart showing the procedure of the process executed when transaction data is received. The process of the flowchart shown in FIG. 10 is executed by the control device 21 when transaction data is received.
 S21において、制御装置21は、受信したトランザクションデータに含まれる送信者情報に基づいて、当該トランザクションデータの送信元のクライアントサーバ2を特定する。 In S21, the control device 21 identifies the client server 2 that sent the transaction data based on the sender information included in the received transaction data.
 S22において、制御装置21は、S21で特定されたクライアントサーバ2の公開鍵を記憶装置27から読み出す。 In S22, the control device 21 reads the public key of the client server 2 identified in S21 from the storage device 27.
 S23において、制御装置21は、S22で読み出された公開鍵を用いて、トランザクションデータに含まれる電子署名を復号する。 In S23, the control device 21 uses the public key read in S22 to decrypt the electronic signature included in the transaction data.
 S24において、制御装置21は、S23で復号した電子署名の有効性を検証する。具体的には、制御装置21は、電子署名を復号した値と、トランザクションデータに含まれているObj-HV(ハッシュ値またはタイムスタンプトークン)とを比較する。両者が一致しなかった場合には、制御装置21は、電子署名の有効性を認めず(S24においてNO)、処理をS25に進める。両者が一致した場合には、制御装置21は、電子署名の有効性を認め(S24においてYES)、処理をS26に進める。 In S24, the control device 21 verifies the validity of the electronic signature decrypted in S23. Specifically, the control device 21 compares the decrypted value of the electronic signature with Obj-HV (hash value or timestamp token) included in the transaction data. If the two do not match, the control device 21 does not recognize the validity of the electronic signature (NO in S24) and proceeds to S25. If the two match, the control device 21 recognizes the validity of the electronic signature (YES in S24) and proceeds to S26.
 S25において、制御装置21は、電子署名が有効なものでないため、今回受信したトランザクションデータを破棄し、処理を終了する。なお、制御装置21は、トランザクションデータが改ざんされた可能性がある旨を表示装置26に表示させてもよい。また、制御装置21は、トランザクションデータが改ざんされた可能性がある旨を、トランザクションデータの送信元のクライアントサーバ2に送信してもよい。 In S25, the control device 21 discards the currently received transaction data because the electronic signature is not valid, and ends the process. The control device 21 may cause the display device 26 to display a message indicating that the transaction data may have been tampered with. The control device 21 may also transmit a message indicating that the transaction data may have been tampered with to the client server 2 that sent the transaction data.
 S26において、制御装置21は、受信したトランザクションデータからKey、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報を読み出して、これらの情報を含むレコードを作成する。 In S26, the control device 21 reads the Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV information from the received transaction data, and creates a record containing this information.
 S27において、制御装置21は、S26で作成されたレコードのKeyに基づいて、当該レコードを追加する分散型台帳を特定する。そして、制御装置21は、特定された分散型台帳にレコードを追加する。これにより、分散型台帳セット50が更新される。 In S27, the control device 21 identifies the distributed ledger to which the record will be added based on the key of the record created in S26. The control device 21 then adds the record to the identified distributed ledger. This updates the distributed ledger set 50.
 S28において、制御装置21は、トランザクション処理が完了したことを示す通知(完了報告)を、トランザクションデータの送信元のクライアントサーバ2に送信する。 In S28, the control device 21 sends a notification (completion report) indicating that the transaction processing has been completed to the client server 2 that sent the transaction data.
 以上のように、実施の形態1に係るデータ管理システム1において、クライアントサーバ2は、2つの分散型台帳51,52を含む分散型台帳セット50を保持する。分散型台帳51は、第1部品の部品データの存在を証明するための証拠チェーンであり、分散型台帳52は、第2部品の部品データの存在を証明するための証拠チェーンである。第1部品の部品データおよび第2部品の部品データを同時に更新する第2操作が行なわれると、クライアントサーバ2は、更新された第1部品の部品データのハッシュ値を含むレコードを分散型台帳51に追加し、かつ、更新された第2部品の部品データのハッシュ値を含むレコードを分散型台帳52に追加する。そして、クライアントサーバ2は、分散型台帳51に追加したレコードのレコードハッシュ値と、分散型台帳52に追加したレコードのレコードハッシュ値とを含む終端ハッシュ値を生成する。そして、クライアントサーバ2は、終端ハッシュ値に対するタイムスタンプトークンを取得する。終端ハッシュ値に対してタイムスタンプトークンを取得することで、たとえば、図3の例のように、タイムスタンプトークンにより証明される時刻に第1部品の部品データD10~D13が存在したこと、および、第2部品の部品データD20~D22が存在したことを証明することができる。また、部品データD14および部品データD23は、タイムスタンプトークンを取得した時点以降に登録されたことを証明することができる。すなわち、部品データD10~D13および部品データD20~D22が保存された以降に、部品データD14および部品データD23が存在することを証明することができる。実施の形態1に係るデータ管理システム1によれば、分散型台帳51,52の各々にレコードを追加する毎に、当該レコードのレコードハッシュ値に対してタイムスタンプトークンを取得する場合に比べて、工数、費用およびシステム負荷等を低減させることができる。 As described above, in the data management system 1 according to the first embodiment, the client server 2 holds a distributed ledger set 50 including two distributed ledgers 51 and 52. The distributed ledger 51 is an evidence chain for proving the existence of the part data of the first part, and the distributed ledger 52 is an evidence chain for proving the existence of the part data of the second part. When a second operation is performed to simultaneously update the part data of the first part and the part data of the second part, the client server 2 adds a record including a hash value of the updated part data of the first part to the distributed ledger 51, and adds a record including a hash value of the updated part data of the second part to the distributed ledger 52. The client server 2 then generates a terminal hash value including the record hash value of the record added to the distributed ledger 51 and the record hash value of the record added to the distributed ledger 52. The client server 2 then obtains a timestamp token for the terminal hash value. By acquiring a time stamp token for the terminal hash value, for example, as in the example of FIG. 3, it is possible to prove that the part data D10 to D13 of the first part existed and that the part data D20 to D22 of the second part existed at the time proven by the time stamp token. It is also possible to prove that the part data D14 and the part data D23 were registered after the time stamp token was acquired. In other words, it is possible to prove that the part data D14 and the part data D23 existed after the part data D10 to D13 and the part data D20 to D22 were saved. According to the data management system 1 of the first embodiment, it is possible to reduce the labor, costs, system load, and the like, compared to the case where a time stamp token is acquired for the record hash value of each record added to each of the distributed ledgers 51 and 52.
 また、タイムスタンプトークンを分散型台帳セット50に含まれる少なくとも1つの分散型台帳のレコードに組み込むことによって、タイムスタンプトークンの耐改ざん性を高めることができる。 In addition, by incorporating the timestamp token into at least one distributed ledger record included in the distributed ledger set 50, the tamper-resistance of the timestamp token can be improved.
 [変形例1]
 実施の形態1では、存在証明処理、すなわち、終端ハッシュ値の生成およびタイムスタンプトークンの取得の処理は、第1部品の部品データおよび第2部品の部品データを同時に更新する第2操作が行なわれた場合に実行された。すなわち、実施の形態1では、存在証明処理は、ユーザ操作に起因して実行された。しかしながら、存在証明処理は、自動で行なわれてもよい。たとえば、前回のタイムスタンプトークンの取得から所定時間が経過した場合に、存在証明処理が実行されてもよい。つまり、所定時間毎に存在証明処理が実行されてもよい。そして、取得されたタイムスタンプトークンを、分散型台帳セット50の少なくともいずれかの分散型台帳のレコードに格納してもよい。変形例1の構成であっても、実施の形態1と同様の効果を奏することができる。
[Modification 1]
In the first embodiment, the existence proof process, i.e., the process of generating a termination hash value and acquiring a time stamp token, is executed when a second operation is performed to simultaneously update the part data of the first part and the part data of the second part. That is, in the first embodiment, the existence proof process is executed due to a user operation. However, the existence proof process may be executed automatically. For example, the existence proof process may be executed when a predetermined time has elapsed since the previous time stamp token was acquired. That is, the existence proof process may be executed every predetermined time. Then, the acquired time stamp token may be stored in at least one of the distributed ledger records of the distributed ledger set 50. Even with the configuration of the first modification, the same effect as that of the first embodiment can be achieved.
 [実施の形態2]
 実施の形態1に係るデータ管理システム1では、終端ハッシュ値に対して取得したタイムスタンプトークンを、分散型台帳セット50(分散型台帳51,52の少なくともいずれか)に格納する例について説明した。これによって、タイムスタンプトークンの耐改ざん性を高めた。実施の形態2では、他の方法によりタイムスタンプトークンの耐改ざん性を高める例について説明する。
[Embodiment 2]
In the data management system 1 according to the first embodiment, an example has been described in which a time stamp token obtained for a termination hash value is stored in the distributed ledger set 50 (at least one of the distributed ledgers 51 and 52). This improves the tamper resistance of the time stamp token. In the second embodiment, an example will be described in which the tamper resistance of the time stamp token is improved by another method.
 図11は、実施の形態2に係るデータ管理システム1Aの概略的な構成を示す図である。データ管理システム1Aは、実施の形態1に係るデータ管理システム1に対して、クライアントサーバ2をクライアントサーバ2Aに変更し、外部サーバ9をさらに備えたものである。データ管理システム1Aのその他の構成は、実施の形態1に係るデータ管理システム1と同様であるため、その説明は繰り返さない。 FIG. 11 is a diagram showing a schematic configuration of a data management system 1A according to embodiment 2. In comparison with the data management system 1 according to embodiment 1, data management system 1A changes the client server 2 to a client server 2A and further includes an external server 9. The rest of the configuration of data management system 1A is similar to that of data management system 1 according to embodiment 1, and therefore the description thereof will not be repeated.
 クライアントサーバ2Aは、実施の形態1に係るクライアントサーバ2に対して、制御装置21を制御装置21Aに変更し、通信装置24を通信装置24Aに変更し、記憶装置27に含まれる分散型台帳セット50を分散型台帳セット55に変更したものである。クライアントサーバ2Aのその他の構成は、実施の形態1に係るクライアントサーバ2と同様であるため、その説明は繰り返さない。 Compared to the client server 2 according to the first embodiment, client server 2A has changed control device 21 to control device 21A, communication device 24 to communication device 24A, and distributed ledger set 50 included in memory device 27 to distributed ledger set 55. The rest of the configuration of client server 2A is the same as that of client server 2 according to the first embodiment, and therefore the description thereof will not be repeated.
 図12は、実施の形態2に係る分散型台帳セット55の構成の一例を示す図である。図12を参照して、分散型台帳セット55は、第1部品の部品データの更新状態を時系列に記憶し、第1部品の部品データの証拠チェーンとなる分散型台帳56と、第2部品の部品データの更新状態を時系列に記憶し、第2部品の部品データの証拠チェーンとなる分散型台帳57とを含む。分散型台帳56,57は、実施の形態1に係る分散型台帳51、52と同様に、「Key」、「Age」、「Obj-HV」、「Nonce」、「Sig」、「Prev-HV」、および、「HV」の情報を含むレコードを時系列に記憶している。 FIG. 12 is a diagram showing an example of the configuration of distributed ledger set 55 according to the second embodiment. Referring to FIG. 12, distributed ledger set 55 includes distributed ledger 56 that stores the update state of part data of a first part in chronological order and serves as an evidence chain for the part data of the first part, and distributed ledger 57 that stores the update state of part data of a second part in chronological order and serves as an evidence chain for the part data of the second part. Like distributed ledgers 51 and 52 according to the first embodiment, distributed ledgers 56 and 57 store records in chronological order that include information on "Key", "Age", "Obj-HV", "Nonce", "Sig", "Prev-HV", and "HV".
 図11および図12を参照して、クライアントサーバ2Aとクライアントサーバ2とは、存在証明処理(終端ハッシュ値の生成およびタイムスタンプトークンの取得の処理)を実行するタイミングが異なる。実施の形態1に係るクライアントサーバ2は、第1部品の部品データおよび第2部品の部品データを同時に更新する第2操作が行なわれたことを示す第2要求に応答して、存在証明処理が実行された。実施の形態2に係るクライアントサーバ2Aは、タイムスタンプトークンの取得を要求する第3操作が行なわれたことを示す第3要求に応答して、存在証明処理が実行される。 Referring to Figures 11 and 12, client server 2A and client server 2 have different timings for executing the existence proof process (the process of generating a termination hash value and obtaining a timestamp token). Client server 2 according to embodiment 1 executes the existence proof process in response to a second request indicating that a second operation has been performed to simultaneously update the part data of the first part and the part data of the second part. Client server 2A according to embodiment 2 executes the existence proof process in response to a third request indicating that a third operation has been performed to request obtaining a timestamp token.
 クライアントサーバ2A(制御装置21A)は、第1要求および第2要求に対しては、実施の形態1で説明した図8の処理を実行し、分散型台帳56または/および分散型台帳57にレコードを追加する。より具体的には、制御装置21Aは、たとえば、第1部品の部品データを更新する第1操作に応答してデータベース4を更新すると、更新された第1部品の部品データのハッシュ値を含むレコードを分散型台帳56に追加する。また、制御装置21Aは、たとえば、第2部品の部品データを更新する第1操作に応答してデータベース4を更新すると、更新された第2部品の部品データのハッシュ値を含むレコードを分散型台帳57に追加する。さらに、制御装置21Aは、たとえば、第1部品および第2部品の部品データを同時に更新する第2操作に応答してデータベース4を更新すると、更新された第1部品の部品データのハッシュ値を含むレコードを分散型台帳56に追加するとともに、更新された第2部品の部品データのハッシュ値を含むレコードを分散型台帳57に追加する。実施の形態2に係るクライアントサーバ2Aは、第2要求に応答して、終端ハッシュ値の生成およびタイムスタンプトークンの取得を行なわない。実施の形態2における第1要求および第2要求に対する処理については、実施の形態1の図5,8で説明したとおりであるため、その詳細は繰り返し説明しない。また、実施の形態2における他のクライアントサーバ2Aからトランザクションデータを受けたときの処理についても、実施の形態1の図7,10で説明したとおりであるため、その詳細は繰り返し説明しない。 In response to the first and second requests, the client server 2A (control device 21A) executes the process of FIG. 8 described in the first embodiment, and adds records to the distributed ledger 56 and/or the distributed ledger 57. More specifically, when the control device 21A updates the database 4 in response to the first operation that updates the part data of the first part, for example, the control device 21A adds a record including a hash value of the updated part data of the first part to the distributed ledger 56. Also, when the control device 21A updates the database 4 in response to the first operation that updates the part data of the second part, for example, the control device 21A adds a record including a hash value of the updated part data of the second part to the distributed ledger 57. Furthermore, when the control device 21A updates the database 4 in response to the second operation that simultaneously updates the part data of the first and second parts, for example, the control device 21A adds a record including a hash value of the updated part data of the first part to the distributed ledger 56, and adds a record including a hash value of the updated part data of the second part to the distributed ledger 57. In response to the second request, the client server 2A according to the second embodiment does not generate a termination hash value or obtain a timestamp token. The processing for the first and second requests in the second embodiment is as described in FIGS. 5 and 8 in the first embodiment, and therefore the details will not be repeated. In addition, the processing when transaction data is received from another client server 2A in the second embodiment is as described in FIGS. 7 and 10 in the first embodiment, and therefore the details will not be repeated.
 図13は、実施の形態2における存在証明処理を説明するための図である。図13の上段には、第1部品の証拠チェーンである分散型台帳56が模式的に示されており、図3の下段には、第2部品の証拠チェーンである分散型台帳57が模式的に示されている。 FIG. 13 is a diagram for explaining the proof of existence process in embodiment 2. The upper part of FIG. 13 shows a schematic representation of distributed ledger 56, which is the evidence chain of the first part, and the lower part of FIG. 3 shows a schematic representation of distributed ledger 57, which is the evidence chain of the second part.
 第1証拠チェーン(分散型台帳56)には、第1部品の部品データのハッシュ値を含むレコードが時系列に記憶されている。第2証拠チェーン(分散型台帳57)には、第2部品の部品データのハッシュ値を含むレコードが時系列に記憶されている。ここでは、図13に示されるように、分散型台帳56においては、Age「3」のレコードRA3が最新(終端)レコードであり、分散型台帳52においては、Age「2」のレコードRB2が最新(終端)レコードであることを想定する。そして、この状態において、入力装置25またはユーザ端末装置7に対して、タイムスタンプトークンの取得を要求する第3操作が行なわれたことを想定する。 The first evidence chain (distributed ledger 56) stores records in chronological order including hash values of the part data of the first part. The second evidence chain (distributed ledger 57) stores records in chronological order including hash values of the part data of the second part. Here, as shown in FIG. 13, it is assumed that in the distributed ledger 56, record RA3 with Age "3" is the newest (end) record, and in the distributed ledger 52, record RB2 with Age "2" is the newest (end) record. In this state, it is assumed that a third operation has been performed on the input device 25 or the user terminal device 7 to request the acquisition of a timestamp token.
 第3操作を受け付けると、入力装置25あるいはユーザ端末装置7は、第3操作が行なわれたことを示す第3要求を出力する。第3操作は、たとえば、表示装置26またはユーザ端末装置7の表示画面において、表示されているタイムスタンプトークンの取得を要求するボタンを選択する操作であってもよい。制御装置21Aは、第3要求を受けると、分散型台帳56の終端のレコードRA3のレコードハッシュ値と、分散型台帳57の終端のレコードRB2のレコードハッシュ値とを含む終端ハッシュ値を生成する。そして、制御装置21Aは、通信装置24Aを介して、終端ハッシュ値を時刻認証局8に送信する。時刻認証局8は、終端ハッシュ値に国際標準時に追跡性がある時刻源に基づく時刻情報を結合させたタイムスタンプトークンを、クライアントサーバ2Aに送信する。制御装置21Aは、タイムスタンプトークンを時刻証明書として記憶装置27に記憶させる。実施の形態2においても、分散型台帳56の終端のレコードRA3のレコードハッシュ値と、分散型台帳57の終端のレコードRB2のレコードハッシュ値とを含む終端ハッシュ値に対してタイムスタンプトークンを取得することにより、タイムスタンプトークンにより証明される時刻に第1部品の部品データD10~D13が存在したこと、および、第2部品の部品データD20~D22が存在したことを証明することができる。また、タイムスタンプトークンを取得した後に分散型台帳56,57にレコードが追加された場合には、当該レコードに対応する部品データが、上記のタイムスタンプトークンにより証明される時刻以降に登録されていることを証明することができる。分散型台帳56,57の各々にレコードを追加する毎に、当該レコードのレコードハッシュ値に対してタイムスタンプトークンを取得する場合に比べて、工数、費用およびシステム負荷等を低減させることができる。 Upon receiving the third operation, the input device 25 or the user terminal device 7 outputs a third request indicating that the third operation has been performed. The third operation may be, for example, an operation of selecting a button requesting acquisition of a timestamp token displayed on the display device 26 or the display screen of the user terminal device 7. Upon receiving the third request, the control device 21A generates a terminal hash value including the record hash value of the terminal record RA3 of the distributed ledger 56 and the record hash value of the terminal record RB2 of the distributed ledger 57. The control device 21A then transmits the terminal hash value to the time stamp authority 8 via the communication device 24A. The time stamp authority 8 transmits to the client server 2A a time stamp token in which the terminal hash value is combined with time information based on a time source that is traceable to international standard time. The control device 21A stores the time stamp token as a time certificate in the storage device 27. In the second embodiment, by acquiring a time stamp token for the end hash value including the record hash value of the end record RA3 of the distributed ledger 56 and the record hash value of the end record RB2 of the distributed ledger 57, it is possible to prove that the part data D10-D13 of the first part existed and the part data D20-D22 of the second part existed at the time proven by the time stamp token. In addition, if a record is added to the distributed ledgers 56 and 57 after acquiring the time stamp token, it is possible to prove that the part data corresponding to the record was registered after the time proven by the time stamp token. Compared to the case where a time stamp token is acquired for the record hash value of the record each time a record is added to each of the distributed ledgers 56 and 57, the labor hours, costs, system load, etc. can be reduced.
 さらに、通信装置24Aは、外部サーバ9と通信が可能に構成される。制御装置21Aは、通信装置24Aを介して、時刻証明書を外部サーバ9に送信する。 Furthermore, the communication device 24A is configured to be able to communicate with the external server 9. The control device 21A transmits the time certificate to the external server 9 via the communication device 24A.
 外部サーバ9は、ネットワークNWから切り離されたサーバ(すなわち、ネットワークNWには参加していないサーバ)であり、A企業、B企業、C企業およびD企業のいずれでもない管理主体によって管理されている。時刻証明書を記憶装置27に記憶させて管理するとともに、時刻証明書を外部サーバ9でも管理することによって、時刻証明書(すなわちタイムスタンプトークン)の耐改ざん性を高めることができる。 External server 9 is a server that is separated from network NW (i.e., a server that does not participate in network NW) and is managed by a management entity that is not Company A, Company B, Company C, or Company D. By storing and managing the time certificate in storage device 27 and also managing the time certificate in external server 9, it is possible to increase the resistance to tampering of the time certificate (i.e., time stamp token).
 図14は、実施の形態2における存在証明処理を実行するための制御装置21Aの機能ブロック図である。図14を参照して、制御装置21Aは、情報取得部2131と、終端ハッシュ生成部2132と、タイムスタンプトークン取得部2133と、出力部2134とを含む。制御装置21Aは、たとえば、ROM22に記憶されたプログラムを実行することにより、情報取得部2131、終端ハッシュ生成部2132、タイムスタンプトークン取得部2133、および、出力部2134として機能する。なお、情報取得部2131、終端ハッシュ生成部2132、タイムスタンプトークン取得部2133、および、出力部2134は、たとえば、専用のハードウェア(電子回路)により実現されてもよい。 FIG. 14 is a functional block diagram of control device 21A for executing the existence proof process in embodiment 2. Referring to FIG. 14, control device 21A includes an information acquisition unit 2131, a terminal hash generation unit 2132, a timestamp token acquisition unit 2133, and an output unit 2134. Control device 21A functions as information acquisition unit 2131, terminal hash generation unit 2132, timestamp token acquisition unit 2133, and output unit 2134, for example, by executing a program stored in ROM 22. Note that information acquisition unit 2131, terminal hash generation unit 2132, timestamp token acquisition unit 2133, and output unit 2134 may be realized, for example, by dedicated hardware (electronic circuitry).
 入力装置25あるいはユーザ端末装置7に対して、第3操作が行なわれると、入力装置25あるいはユーザ端末装置7は、第3操作が行なわれたことを示す第3要求を出力する。 When a third operation is performed on the input device 25 or the user terminal device 7, the input device 25 or the user terminal device 7 outputs a third request indicating that the third operation has been performed.
 情報取得部2131は、入力装置25あるいはユーザ端末装置7から、第3要求を取得する。たとえば、クライアントサーバ2Aのユーザが、入力装置25を操作して、表示装置26の表示画面上で、タイムスタンプトークンの取得を要求するボタンを選択すると(第3操作をすると)、第3要求が情報取得部2131に入力される。情報取得部2131は、第3要求を取得すると、第3要求を終端ハッシュ生成部2132に出力する。 The information acquisition unit 2131 acquires the third request from the input device 25 or the user terminal device 7. For example, when a user of the client server 2A operates the input device 25 to select a button requesting acquisition of a timestamp token on the display screen of the display device 26 (performs the third operation), the third request is input to the information acquisition unit 2131. Upon acquiring the third request, the information acquisition unit 2131 outputs the third request to the termination hash generation unit 2132.
 終端ハッシュ生成部2132は、第3要求を受けると、分散型台帳56に格納された最新(終端)レコードのレコードハッシュ値、および、分散型台帳57に格納された最新(終端)レコードのレコードハッシュ値をそれぞれ生成し、これらを含む終端ハッシュ値を生成する。終端ハッシュ生成部2132は、生成された終端ハッシュ値をタイムスタンプトークン取得部2133に出力する。 When the terminal hash generation unit 2132 receives the third request, it generates a record hash value of the latest (terminal) record stored in the distributed ledger 56 and a record hash value of the latest (terminal) record stored in the distributed ledger 57, and generates a terminal hash value that includes these. The terminal hash generation unit 2132 outputs the generated terminal hash value to the timestamp token acquisition unit 2133.
 タイムスタンプトークン取得部2133は、終端ハッシュ生成部2132から受けた終端ハッシュ値を時刻認証局8に送信するための制御信号を、通信装置24Aに出力する。これにより、通信装置24Aを介して、時刻認証局8に終端ハッシュ値が送信される。 The time stamp token acquisition unit 2133 outputs a control signal to the communication device 24A to transmit the termination hash value received from the termination hash generation unit 2132 to the time stamp authority 8. As a result, the termination hash value is transmitted to the time stamp authority 8 via the communication device 24A.
 終端ハッシュ値を受信した時刻認証局8は、クライアントサーバ2にタイムスタンプトークンを返信する。 The time stamp authority 8 that receives the termination hash value returns a time stamp token to the client server 2.
 タイムスタンプトークン取得部2133は、通信装置24Aを介して、時刻認証局8からタイムスタンプトークンを受信する。タイムスタンプトークン取得部2133は、取得されたタイムスタンプトークンを出力部2134に出力する。 The timestamp token acquisition unit 2133 receives a timestamp token from the time-stamp authority 8 via the communication device 24A. The timestamp token acquisition unit 2133 outputs the acquired timestamp token to the output unit 2134.
 出力部2134は、タイムスタンプトークン取得部2133から受けたタイムスタンプトークンを記憶装置27に記憶させる。あるいは、出力部2134は、タイムスタンプトークン取得部2133から受けたタイムスタンプトークンをデータベース4に記憶させてもよい。これにより、第1部品の部品データおよび第2部品の部品データの存在時刻の証明を取得することができる。 The output unit 2134 stores the timestamp token received from the timestamp token acquisition unit 2133 in the storage device 27. Alternatively, the output unit 2134 may store the timestamp token received from the timestamp token acquisition unit 2133 in the database 4. This makes it possible to obtain proof of the existence time of the part data of the first part and the part data of the second part.
 さらに、出力部2134は、タイムスタンプトークン取得部2133から受けたタイムスタンプトークンを時刻証明書として外部サーバ9に送信する。具体的には、出力部2134は、時刻証明書を外部サーバ9に送信するための制御信号を、通信装置24Aに出力する。これにより、通信装置24Aを介して、時刻証明書が外部サーバ9に送信され、時刻証明書が外部サーバ9で管理される。たとえば、タイムスタンプトークンを改ざんするためには、クライアントサーバ2Aで管理されているタイムスタンプトークンに加えて、外部サーバ9で管理されている時刻証明書(タイムスタンプトークン)も改ざんしなければならない。時刻証明書を外部サーバ9でも管理することによって、タイムスタンプトークンの耐改ざん性を高めることができる。 Furthermore, the output unit 2134 transmits the time stamp token received from the time stamp token acquisition unit 2133 to the external server 9 as a time certificate. Specifically, the output unit 2134 outputs a control signal to the communication device 24A for transmitting the time certificate to the external server 9. As a result, the time certificate is transmitted to the external server 9 via the communication device 24A, and the time certificate is managed by the external server 9. For example, in order to tamper with the time stamp token, in addition to the time stamp token managed by the client server 2A, the time certificate (time stamp token) managed by the external server 9 must also be tampered with. By managing the time certificate in the external server 9 as well, the tamper-resistance of the time stamp token can be improved.
 図15は、タイムスタンプトークンを取得する処理の手順を示すフローチャートである。図15に示すフローチャートの処理は、入力装置25あるいはユーザ端末装置7から第3要求を受けた際に、制御装置21Aによって実行される。 FIG. 15 is a flowchart showing the steps of the process for acquiring a timestamp token. The process of the flowchart shown in FIG. 15 is executed by the control device 21A when a third request is received from the input device 25 or the user terminal device 7.
 S31において、制御装置21Aは、分散型台帳56に格納された最新(終端)レコードのレコードハッシュ値を生成する。 In S31, the control device 21A generates a record hash value of the latest (terminal) record stored in the distributed ledger 56.
 S32において、制御装置21Aは、分散型台帳57に格納された最新(終端)レコードのレコードハッシュ値を生成する。 In S32, the control device 21A generates a record hash value of the latest (terminal) record stored in the distributed ledger 57.
 S33において、制御装置21Aは、S31およびS32で生成されたレコードハッシュ値を含めた終端ハッシュ値を生成する。 In S33, the control device 21A generates a termination hash value that includes the record hash values generated in S31 and S32.
 S34において、制御装置21Aは、S33で生成された終端ハッシュ値に対するタイムスタンプトークンを取得する。具体的には、制御装置21Aは、終端ハッシュ値を時刻認証局8に送信するための制御信号を、通信装置24Aに出力する。これにより、通信装置24Aを介して、時刻認証局8にレコードハッシュ値が送信される。そして、制御装置21Aは、通信装置24Aを介して、時刻認証局8から終端ハッシュ値に対するタイムスタンプトークンを取得する。 In S34, the control device 21A obtains a timestamp token for the termination hash value generated in S33. Specifically, the control device 21A outputs a control signal to the communication device 24A to transmit the termination hash value to the time-stamp authority 8. As a result, the record hash value is transmitted to the time-stamp authority 8 via the communication device 24A. The control device 21A then obtains a timestamp token for the termination hash value from the time-stamp authority 8 via the communication device 24A.
 S35において、制御装置21Aは、S34で取得されたタイムスタンプトークンを記憶装置27に記憶させる。なお、制御装置21Aは、タイムスタンプトークンをデータベース4に記憶させてもよい。 In S35, the control device 21A stores the timestamp token acquired in S34 in the storage device 27. The control device 21A may also store the timestamp token in the database 4.
 S36において、制御装置21Aは、S34で取得されたタイムスタンプトークンを時刻証明書として、外部サーバ9に送信する。具体的には、制御装置21Aは、時刻証明書を外部サーバ9に送信するための制御信号を、通信装置24Aに出力する。これにより、通信装置24Aを介して、外部サーバ9に時刻証明書が送信される。 In S36, the control device 21A transmits the time stamp token acquired in S34 to the external server 9 as a time certificate. Specifically, the control device 21A outputs a control signal to the communication device 24A to transmit the time certificate to the external server 9. As a result, the time certificate is transmitted to the external server 9 via the communication device 24A.
 以上のように、実施の形態2に係るデータ管理システム1Aでは、クライアントサーバ2Aは、第3操作に応答して、2つの分散型台帳56,57の最新(終端)レコードのレコードハッシュ値を含む終端ハッシュ値に対してタイムスタンプトークンを取得する。そして、クライアントサーバ2Aは、タイムスタンプトークンを記憶装置27に記憶させるとともに、タイムスタンプトークン(時刻証明書)を外部サーバ9に送信する。タイムスタンプトークンを外部サーバ9でも管理することにより、タイムスタンプトークンの耐改ざん性を高めることができる。 As described above, in the data management system 1A according to the second embodiment, the client server 2A, in response to the third operation, obtains a timestamp token for a terminal hash value including the record hash values of the latest (terminal) records of the two distributed ledgers 56, 57. The client server 2A then stores the timestamp token in the storage device 27 and transmits the timestamp token (time certificate) to the external server 9. By also managing the timestamp token on the external server 9, it is possible to increase the tamper-resistance of the timestamp token.
 [実施の形態3]
 実施の形態1では、プラットフォームサーバ5が、ネットワークNWへの参加を許可する機能を有する例について説明した。そして、トランザクションデータのファイナリティは、ネットワークNWへの参加が許可されたクライアントサーバ2間で電子署名の有効性の確認することにより与えられた。実施の形態3では、プラットフォームサーバ6が、ネットワークNWへの参加を許可する機能に加えて、トランザクションデータにファイナリティを与える機能を有する例について説明する。
[Embodiment 3]
In the first embodiment, an example has been described in which the platform server 5 has a function of permitting participation in the network NW. The finality of the transaction data is provided by confirming the validity of an electronic signature between the client servers 2 permitted to participate in the network NW. In the third embodiment, an example will be described in which the platform server 6 has a function of granting finality to the transaction data in addition to the function of permitting participation in the network NW.
 図16は、実施の形態3に係るデータ管理システム1Bの概略的な構成を示す図である。データ管理システム1Bは、実施の形態1に係るデータ管理システム1と同等の機能を有する。データ管理システム1Bは、4台のクライアントサーバ3と、プラットフォームサーバ6と、時刻認証局8とを備える。実施の形態1と同様に、4台のクライアントサーバ3の各々は、異なる企業(たとえば、A企業、B企業、C企業およびD企業)に帰属するサーバである。以下においては、A企業のクライアントサーバ3について代表的に説明するが、B企業、C企業およびD企業のクライアントサーバ3も同様の機能を有する。 FIG. 16 is a diagram showing a schematic configuration of a data management system 1B according to the third embodiment. The data management system 1B has the same functions as the data management system 1 according to the first embodiment. The data management system 1B includes four client servers 3, a platform server 6, and a time authentication authority 8. As in the first embodiment, each of the four client servers 3 is a server belonging to a different company (for example, company A, company B, company C, and company D). In the following, the client server 3 of company A will be described as a representative example, but the client servers 3 of companies B, C, and D also have the same functions.
 プラットフォームサーバ6は、実施の形態1,2に係るプラットフォームサーバ5と同様に、ネットワークNWを管理し、各クライアントサーバ3からのネットワークNWへの参加申請を受け付ける。プラットフォームサーバ6は、プラットフォームサーバ6の管理者による参加を許可する操作に基づき、または、所定の条件の判定結果に基づき、クライアントサーバ3のネットワークNWへの参加を許可する。実施の形態3においても、A企業、B企業、C企業およびD企業のそれぞれに帰属する4台のクライアントサーバ3に対して、ネットワークNWへの参加が許可されている。 Similar to the platform server 5 according to the first and second embodiments, the platform server 6 manages the network NW and accepts applications from each client server 3 to participate in the network NW. The platform server 6 permits the client server 3 to participate in the network NW based on an operation by the platform server 6 administrator to permit participation, or based on the result of judging a predetermined condition. In the third embodiment as well, four client servers 3 belonging to each of companies A, B, C, and D are permitted to participate in the network NW.
 4台のクライアントサーバ3およびプラットフォームサーバ6は、ネットワークNWを形成している。クライアントサーバ3の各々には、分散型台帳基盤のソフトウェアが導入されており、導入された分散型台帳基盤のソフトウェアが機能することにより、クライアントサーバ3の各々がノードとして機能する。クライアントサーバ3は、実施の形態1に係るクライアントサーバ2と同様に、ユーザ端末装置7と通信可能に構成されている。 The four client servers 3 and the platform server 6 form a network NW. Distributed ledger infrastructure software is installed in each of the client servers 3, and each of the client servers 3 functions as a node as a result of the installed distributed ledger infrastructure software functioning. The client servers 3 are configured to be able to communicate with a user terminal device 7, similar to the client server 2 in embodiment 1.
 また、クライアントサーバ3には、実施の形態1に係るクライアントサーバ2と同様に、データベース4が接続されている。クライアントサーバ3(制御装置31)は、入力装置35への入力、あるいは、ユーザ端末装置7からの要求に応じて、部品データを記憶/更新するための制御信号を生成し、データベース4に出力する。 Furthermore, like the client server 2 in the first embodiment, the client server 3 is connected to a database 4. The client server 3 (control device 31) generates a control signal for storing/updating part data in response to an input to the input device 35 or a request from the user terminal device 7, and outputs the control signal to the database 4.
 クライアントサーバ3は、データベース4に部品データを記憶/更新すると、当該部品データのハッシュ値を作成し、当該ハッシュ値を、プラットフォームサーバ6に保有される台帳、および、各クライアントサーバ3に保有される分散型台帳に格納するためのトランザクションデータを生成する。そして、クライアントサーバ3は、生成されたトランザクションデータをプラットフォームサーバ6に送信する。 When the client server 3 stores/updates part data in the database 4, it creates a hash value for the part data and generates transaction data for storing the hash value in the ledger held by the platform server 6 and in the distributed ledger held by each client server 3. The client server 3 then transmits the generated transaction data to the platform server 6.
 プラットフォームサーバ6は、トランザクションデータにファイナリティを与える機能を有する。プラットフォームサーバ6は、台帳セット60を保有し、クライアントサーバ3から受けるトランザクションデータを処理して、台帳セット60を更新する。プラットフォームサーバ6は、台帳セット60を更新すると、更新により台帳に追加されたレコード(後述のプルーフレコード)を、ネットワークNWに参加する全てのクライアントサーバ3に送信する。クライアントサーバ3は、コミットレコードを格納するコミットテーブル374を記憶しており、プラットフォームサーバ6から受けるプルーフレコードを、コミットレコードとしてコミットテーブル374に格納する。コミットテーブル374は、本開示に係る「分散型台帳」の一例に相当する。 The platform server 6 has the function of providing finality to transaction data. The platform server 6 holds a ledger set 60, processes transaction data received from the client server 3, and updates the ledger set 60. When the platform server 6 updates the ledger set 60, it transmits records (proof records described below) that have been added to the ledger by the update to all client servers 3 participating in the network NW. The client server 3 stores a commit table 374 that stores commit records, and stores the proof records received from the platform server 6 in the commit table 374 as commit records. The commit table 374 corresponds to an example of a "distributed ledger" according to the present disclosure.
 図17は、台帳セット60の構成の一例を示す図である。台帳セット60は、台帳67と、台帳68とを含む。台帳67は、実施の形態1に係る分散型台帳51と同様に、第1部品の部品データの更新状態を時系列に記憶し、第1部品の部品データの証拠チェーンを形成する。台帳68は、実施の形態1に係る分散型台帳52と同様に、第2部品の部品データの更新状態を時系列に記憶し、第2部品の部品データの証拠チェーンを形成する。台帳セット60、台帳67および台帳68は、実施の形態1に係る分散型台帳セット50、分散型台帳51および分散型台帳52とそれぞれ同様の構成を有する。そのため、これらの詳細な説明は繰り返さない。なお、図17では、図3に示した例に対応する台帳67,68のデータ構造が示されている。すなわち、台帳67,68には、それぞれ、Age「3」のレコードが最新(終端)レコードとして格納されている。 17 is a diagram showing an example of the configuration of ledger set 60. Ledger set 60 includes ledger 67 and ledger 68. Ledger 67, like distributed ledger 51 according to embodiment 1, stores the update state of the part data of the first part in chronological order, forming an evidence chain for the part data of the first part. Ledger 68, like distributed ledger 52 according to embodiment 1, stores the update state of the part data of the second part in chronological order, forming an evidence chain for the part data of the second part. Ledger set 60, ledger 67, and ledger 68 have the same configuration as distributed ledger set 50, distributed ledger 51, and distributed ledger 52 according to embodiment 1, respectively. Therefore, detailed description of these will not be repeated. Note that FIG. 17 shows the data structures of ledgers 67 and 68 corresponding to the example shown in FIG. 3. That is, in ledgers 67 and 68, a record of Age "3" is stored as the latest (terminal) record.
 再び図16を参照し、クライアントサーバ3は、制御装置31と、ROM32と、RAM33と、通信装置34と、入力装置35と、表示装置36と、記憶装置37とを備える。制御装置31、ROM32、RAM33、通信装置34、入力装置35、表示装置36、および、記憶装置37は、バス39に接続されている。ROM32、RAM33、通信装置34、入力装置35、および、表示装置36は、基本的に、実施の形態1に係るクライアントサーバ2のROM22、RAM23、通信装置24、入力装置25、および、表示装置26とそれぞれ同様の構成であるため、その説明は繰り返さない。 Referring again to FIG. 16, the client server 3 includes a control device 31, a ROM 32, a RAM 33, a communication device 34, an input device 35, a display device 36, and a storage device 37. The control device 31, the ROM 32, the RAM 33, the communication device 34, the input device 35, the display device 36, and the storage device 37 are connected to a bus 39. The ROM 32, the RAM 33, the communication device 34, the input device 35, and the display device 36 are basically configured in the same manner as the ROM 22, the RAM 23, the communication device 24, the input device 25, and the display device 26 of the client server 2 according to the first embodiment, respectively, and therefore the description thereof will not be repeated.
 記憶装置37は、秘密鍵371およびプルーフデータ372を記憶している。秘密鍵371は、A企業の秘密鍵である。たとえば、クライアントサーバ3がネットワークNWに最初に参加するにあたり、制御装置31は、秘密鍵および公開鍵を生成する。そして、制御装置31は、生成された公開鍵を認証局(図示せず)に送信して、認証を受ける。認証局は、公開鍵の情報を含めた電子証明書を発行する。制御装置31は、認証を受けた公開鍵に対応する秘密鍵371を記憶装置37に記憶させる。また、制御装置31は、認証を受けた公開鍵(電子証明書)651を、プラットフォームサーバ6に送信する。 The storage device 37 stores a private key 371 and proof data 372. The private key 371 is the private key of company A. For example, when the client server 3 first joins the network NW, the control device 31 generates a private key and a public key. The control device 31 then sends the generated public key to a certification authority (not shown) for authentication. The certification authority issues an electronic certificate including information about the public key. The control device 31 stores the private key 371 corresponding to the authenticated public key in the storage device 37. The control device 31 also sends the authenticated public key (electronic certificate) 651 to the platform server 6.
 プルーフデータ372は、サスペンションテーブル373と、コミットテーブル374とを含む。図18は、サスペンションテーブル373の構成の一例を説明するための図である。図19は、コミットテーブル374の構成の一例を説明するための図である。サスペンションテーブル373およびコミットテーブル374は、対象部品毎にレコードを有する。 The proof data 372 includes a suspension table 373 and a commit table 374. FIG. 18 is a diagram for explaining an example of the configuration of the suspension table 373. FIG. 19 is a diagram for explaining an example of the configuration of the commit table 374. The suspension table 373 and the commit table 374 have a record for each target part.
 図18を参照し、サスペンションテーブル373は、未使用のトランザクションデータに含まれる所定種類の情報を含む。具体的には、サスペンションテーブル373は、たとえば、KeyおよびNonceの情報を含んだサスペンションレコードを記憶する。制御装置31は、第1要求または第2要求に応答して生成されるトランザクションデータに含まれる情報のうちの、KeyおよびNonceの情報をサスペンションレコードとして、サスペンションテーブル373に格納する。入力装置35あるいはユーザ端末装置7からクライアントサーバ3が受ける第1要求および第2要求には、対象部品のIDが含まれている。たとえば、第1要求の対象が第1部品であれば「k1」を示すIDが、第1要求の対象が第2部品であれば「k2」を示すIDが、第1要求に含まれている。第2要求には、「k1」を示すIDおよび「k2」を示すIDが含まれている。すなわち、第1要求または第2要求に含まれている対象部品のIDがKeyとなる。また、第1要求または第2要求を受けると制御装置31は、ナンス値を生成する。当該ナンス値は、第1要求または第2要求の処理の番号(すなわち、トランザクションデータの番号)を表わす。制御装置31は、KeyおよびNonceの情報を含むサスペンションレコードを作成し、当該サスペンションレコードをサスペンションテーブル373に登録する。図18には、サスペンションテーブル373に、k1のKeyを含むサスペンションレコードが登録されている例が示されている。なお、以下では、第1要求と第2要求とを特に区別しない場合には、両者を総称して「更新要求」とも称する。 18, the suspension table 373 includes a predetermined type of information included in unused transaction data. Specifically, the suspension table 373 stores suspension records including, for example, key and nonce information. The control device 31 stores the key and nonce information included in the transaction data generated in response to the first or second request as a suspension record in the suspension table 373. The first and second requests received by the client server 3 from the input device 35 or the user terminal device 7 include the ID of the target part. For example, if the target of the first request is the first part, the first request includes an ID indicating "k1", and if the target of the first request is the second part, the first request includes an ID indicating "k2". The second request includes an ID indicating "k1" and an ID indicating "k2". In other words, the ID of the target part included in the first or second request becomes the key. In addition, when the first or second request is received, the control device 31 generates a nonce value. The nonce value represents the processing number of the first or second request (i.e., the transaction data number). The control device 31 creates a suspension record including the key and nonce information, and registers the suspension record in the suspension table 373. FIG. 18 shows an example in which a suspension record including the key k1 is registered in the suspension table 373. In the following, when there is no particular distinction between the first request and the second request, both are collectively referred to as "update request."
 更新要求に応答する処理が実行されると(すなわち、トランザクションデータが使用されると)、制御装置31は、トランザクション処理の実行に使用されたトランザクションデータに含まれるKeyと同様のKeyの情報を含むサスペンションレコードを、サスペンションテーブル373から削除する。 When processing responding to the update request is executed (i.e., when the transaction data is used), the control device 31 deletes from the suspension table 373 the suspension record that contains information about a key that is the same as the key contained in the transaction data used to execute the transaction processing.
 サスペンションテーブル373には、同じKeyの情報を含むサスペンションレコードが重複して登録されない。サスペンションレコードをサスペンションテーブル373に登録するにあたり、制御装置31は、登録対象のサスペンションレコードに含まれるKeyと一致するKeyを含んだサスペンションレコードが既にサスペンションテーブル373に登録されているか否かを判断する。制御装置31は、登録対象のサスペンションレコードが含むKeyと一致するKeyを含んだサスペンションレコードがサスペンションテーブル373に登録されていなければ、サスペンションレコードをサスペンションテーブル373に登録する。制御装置31は、登録対象のサスペンションレコードが含むKeyと一致するKeyを含んだサスペンションレコードがサスペンションテーブル373に登録されていれば、一致するKeyを含んだサスペンションレコードがサスペンションテーブル373から削除されるのを待つ。つまり、図18に示す例においては、サスペンションテーブル373に、k2のKeyを含むサスペンションレコードは登録できるが、k1のKeyを含むサスペンションレコードは登録できない。 Duplicate suspension records containing the same key information are not registered in the suspension table 373. When registering a suspension record in the suspension table 373, the control device 31 judges whether a suspension record containing a key matching the key contained in the suspension record to be registered has already been registered in the suspension table 373. If a suspension record containing a key matching the key contained in the suspension record to be registered has not been registered in the suspension table 373, the control device 31 registers the suspension record in the suspension table 373. If a suspension record containing a key matching the key contained in the suspension record to be registered has been registered in the suspension table 373, the control device 31 waits for the suspension record containing the matching key to be deleted from the suspension table 373. In other words, in the example shown in FIG. 18, a suspension record containing a key k2 can be registered in the suspension table 373, but a suspension record containing a key k1 cannot be registered.
 コミットテーブル374は、使用済みのトランザクションデータに含まれる所定種類の情報を含む。具体的には、コミットテーブル374は、Key、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報を含むコミットレコードを記憶する。実施の形態3では、コミットレコードは、台帳セット60のレコードと同様の情報を有する。コミットテーブル374は、k1のKeyを有するコミットレコードを格納するコミットデータ375と、k2のKeyを有するコミットレコードを格納するコミットデータ376とを含む。 The commit table 374 contains a predetermined type of information contained in used transaction data. Specifically, the commit table 374 stores a commit record containing information on Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV. In the third embodiment, the commit record contains the same information as the records in the ledger set 60. The commit table 374 contains commit data 375 that stores a commit record having a key of k1, and commit data 376 that stores a commit record having a key of k2.
 プラットフォームサーバ6は、トランザクション処理を実行して、台帳セット60の台帳を更新すると、プルーフレコードを作成し、当該プルーフレコードをネットワークNWに参加する全てのクライアントサーバ3に送信する。プルーフレコードは、たとえば、トランザクションデータを使用して実行されたトランザクション処理により台帳に追加されたレコードが有するKey、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報を含んで構成されたレコードである。 When the platform server 6 executes transaction processing and updates the ledgers in the ledger set 60, it creates a proof record and transmits the proof record to all client servers 3 participating in the network NW. The proof record is a record that includes, for example, the Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV information of a record that was added to the ledger by a transaction processing executed using the transaction data.
 プルーフレコードを受けると、制御装置31は、当該プルーフレコードをコミットレコードとして、コミットテーブル374(コミットデータ375またはコミットデータ376)に追加する。そして、制御装置31は、追加したコミットレコードに含まれるKeyと同様のKeyを含むサスペンションレコードを、サスペンションテーブル373から削除する。 When the control device 31 receives the proof record, it adds the proof record to the commit table 374 (commit data 375 or commit data 376) as a commit record. The control device 31 then deletes from the suspension table 373 any suspension records that contain the same key as the key contained in the added commit record.
 再び図16を参照して、プラットフォームサーバ6は、制御装置61と、ROM62と、RAM63と、通信装置64と、記憶装置65とを備える。制御装置61、ROM62、RAM63、通信装置64、および、記憶装置65は、バス69に接続されている。 Referring again to FIG. 16, the platform server 6 includes a control device 61, a ROM 62, a RAM 63, a communication device 64, and a storage device 65. The control device 61, the ROM 62, the RAM 63, the communication device 64, and the storage device 65 are connected to a bus 69.
 制御装置61は、CPUを含む集積回路によって構成される。制御装置61は、ROM62に格納されている各種プログラムをRAM63に展開して実行する。各種プログラムには、オペレーティングシステム等が含まれる。RAM63は、ワーキングメモリとして機能し、各種プログラムの実行に必要な各種データを一時的に格納する。制御装置61は、クライアントサーバ3からトランザクションデータを受信し、トランザクション処理を実行する。 The control device 61 is composed of an integrated circuit including a CPU. The control device 61 loads various programs stored in the ROM 62 into the RAM 63 and executes them. The various programs include an operating system, etc. The RAM 63 functions as a working memory, and temporarily stores various data required for the execution of the various programs. The control device 61 receives transaction data from the client server 3 and executes transaction processing.
 通信装置64は、ネットワークNWに参加しているクライアントサーバ3との通信が可能に構成される。 The communication device 64 is configured to be able to communicate with the client server 3 participating in the network NW.
 記憶装置65は、複数の公開鍵651および台帳セット60を記憶している。複数の公開鍵651は、ネットワークNWに参加しているクライアントサーバ3を管理する企業の公開鍵を含む。具体的には、複数の公開鍵651は、A企業の公開鍵、B企業の公開鍵、C企業の公開鍵およびD企業の公開鍵を含む。 The storage device 65 stores multiple public keys 651 and ledger set 60. The multiple public keys 651 include the public keys of companies that manage client servers 3 participating in the network NW. Specifically, the multiple public keys 651 include the public key of company A, the public key of company B, the public key of company C, and the public key of company D.
 台帳セット60は、上述のとおり、実施の形態1に係る分散型台帳セット50と同様の構成を有する。 As described above, ledger set 60 has the same configuration as distributed ledger set 50 according to embodiment 1.
 以下、フローチャートを示しながら、実施の形態3における更新要求(第1要求,第2要求)への応答の処理について順に説明する。 Below, we will explain the process of responding to update requests (first request, second request) in embodiment 3, using a flowchart.
 図20は、更新要求(第1要求,第2要求)を受けた場合にデータ管理システム1Bで実行される処理の手順を示すフローチャートである。図20に示すフローチャートの処理は、入力装置25あるいはユーザ端末装置7から更新要求(第1要求,第2要求)を受けた際に、クライアントサーバ3の制御装置31によって開始される。 FIG. 20 is a flowchart showing the procedure of processing executed by the data management system 1B when an update request (first request, second request) is received. The processing of the flowchart shown in FIG. 20 is started by the control device 31 of the client server 3 when an update request (first request, second request) is received from the input device 25 or the user terminal device 7.
 S40において、クライアントサーバ3の制御装置31は、ナンス値を生成する。このナンス値は、更新要求に応じて生成されるトランザクションデータの番号として用いられる。 In S40, the control device 31 of the client server 3 generates a nonce value. This nonce value is used as the number of the transaction data that is generated in response to the update request.
 S41において、クライアントサーバ3の制御装置31は、サスペンションレコードを生成する。具体的には、クライアントサーバ3の制御装置31は、更新要求に含まれている対象部品のIDを読み出してKeyの情報とし、S40で生成されたナンス値をNonceの情報として、サスペンションレコードを生成する。なお、更新要求が第2要求である場合には、制御装置31は、第1部品のID(k1)をKeyの情報とするサスペンションレコードと、第2部品のID(k2)をKeyの情報とするサスペンションレコードとを生成する。 In S41, the control device 31 of the client server 3 generates a suspension record. Specifically, the control device 31 of the client server 3 reads the ID of the target part included in the update request and sets it as the Key information, and generates a suspension record using the nonce value generated in S40 as the Nonce information. Note that if the update request is a second request, the control device 31 generates a suspension record with the ID (k1) of the first part as the Key information and a suspension record with the ID (k2) of the second part as the Key information.
 S42において、クライアントサーバ3の制御装置31は、S41で生成されたサスペンションレコードをサスペンションテーブル373に登録できるか否かを判断する。S41で生成されたサスペンションレコードと同様のKeyの情報を有するサスペンションレコードがサスペンションテーブル373に登録されている場合、クライアントサーバ3の制御装置31は、否定判断をして(S42においてNO)、サスペンションテーブル373から同様のKeyの情報を有するサスペンションレコードが削除されるのを待つ。一方、S41で生成されたサスペンションレコードと同様のKeyの情報を有するサスペンションレコードがサスペンションテーブル373に登録されていない場合、クライアントサーバ3の制御装置31は、肯定判断をして(S42においてYES)、処理をS43に進める。 In S42, the control device 31 of the client server 3 judges whether the suspension record generated in S41 can be registered in the suspension table 373. If a suspension record having the same key information as the suspension record generated in S41 is registered in the suspension table 373, the control device 31 of the client server 3 makes a negative judgment (NO in S42) and waits for the suspension record having the same key information to be deleted from the suspension table 373. On the other hand, if a suspension record having the same key information as the suspension record generated in S41 is not registered in the suspension table 373, the control device 31 of the client server 3 makes an affirmative judgment (YES in S42) and proceeds to S43.
 S43において、クライアントサーバ3の制御装置31は、サスペンションテーブル373にサスペンションレコードを登録する。 In S43, the control device 31 of the client server 3 registers the suspension record in the suspension table 373.
 S44において、クライアントサーバ3の制御装置31は、更新要求に応じるためのトランザクションデータを生成する。具体的には、クライアントサーバ3の制御装置31は、更新要求が第1要求である場合には、図8において説明したS2~S4の処理と同様の処理を実行してトランザクションデータを生成する。クライアントサーバ3の制御装置31は、更新要求が第2要求である場合には、図9において説明したS11の処理と同様の処理を実行して、第1部品および第2部品の更新に対応するそれぞれのトランザクションデータを生成する。さらに、更新要求が第2要求である場合には、クライアントサーバ3の制御装置31は、図9において説明したS13~S16の処理と同様の処理を実行してトランザクションデータを生成する。各処理の詳細については、図8および図9において説明したとおりであるので、繰り返し説明しない。 In S44, the control device 31 of the client server 3 generates transaction data to respond to the update request. Specifically, if the update request is a first request, the control device 31 of the client server 3 executes processes similar to the processes of S2 to S4 described in FIG. 8 to generate transaction data. If the update request is a second request, the control device 31 of the client server 3 executes processes similar to the process of S11 described in FIG. 9 to generate transaction data corresponding to the updates of the first part and the second part. Furthermore, if the update request is a second request, the control device 31 of the client server 3 executes processes similar to the processes of S13 to S16 described in FIG. 9 to generate transaction data. Details of each process are as described in FIG. 8 and FIG. 9, so they will not be described repeatedly.
 S45において、クライアントサーバ3の制御装置31は、S44で生成したトランザクションデータをプラットフォームサーバ6に送信するための制御信号を通信装置34に出力する。これにより、通信装置34を介して、トランザクションデータがプラットフォームサーバ6に送信される。 In S45, the control device 31 of the client server 3 outputs a control signal to the communication device 34 to transmit the transaction data generated in S44 to the platform server 6. As a result, the transaction data is transmitted to the platform server 6 via the communication device 34.
 S50において、プラットフォームサーバ6の制御装置61は、受信したトランザクションデータに含まれる電子署名の有効性を検証するために、電子署名を復号する。具体的には、プラットフォームサーバ6の制御装置61は、図10において説明したS21~S23の処理と同様の処理を実行して、電子署名を復号する。各処理の詳細については、図10において説明したとおりであるので、繰り返し説明しない。 In S50, the control device 61 of the platform server 6 decrypts the electronic signature included in the received transaction data to verify its validity. Specifically, the control device 61 of the platform server 6 executes the same processes as those of S21 to S23 described in FIG. 10 to decrypt the electronic signature. Details of each process are as described in FIG. 10, so they will not be described again.
 S51において、プラットフォームサーバ6の制御装置61は、S50で復号した電子署名の有効性を検証する。具体的には、プラットフォームサーバ6の制御装置61は、電子署名を復号した値と、トランザクションデータに含まれているハッシュ値(第1要求に応じて生成されたトランザクションデータにおいては、対象部品の部品データのハッシュ値であり、第2要求に応じて生成されたトランザクションデータにおいては、タイムスタンプトークンである)とを比較する。両者が一致しなかった場合には、プラットフォームサーバ6の制御装置61は、電子署名の有効性を認めず(S51においてNO)、処理をS52に進める。両者が一致した場合には、プラットフォームサーバ6の制御装置61は、電子署名の有効性を認め(S51においてYES)、処理をS53に進める。 In S51, the control device 61 of the platform server 6 verifies the validity of the electronic signature decrypted in S50. Specifically, the control device 61 of the platform server 6 compares the decrypted value of the electronic signature with a hash value included in the transaction data (in transaction data generated in response to a first request, this is the hash value of the part data of the target part, and in transaction data generated in response to a second request, this is the timestamp token). If the two do not match, the control device 61 of the platform server 6 does not recognize the validity of the electronic signature (NO in S51) and proceeds to S52. If the two match, the control device 61 of the platform server 6 recognizes the validity of the electronic signature (YES in S51) and proceeds to S53.
 S52において、プラットフォームサーバ6の制御装置61は、クライアントサーバ3から受けたトランザクションデータに改ざんの可能性があると判断して、トランザクションデータを破棄し、改ざんの可能性があることを示す異常報告を作成する。そして、プラットフォームサーバ6の制御装置61は、処理をS56に進める。 In S52, the control device 61 of the platform server 6 determines that the transaction data received from the client server 3 may have been tampered with, discards the transaction data, and creates an abnormality report indicating the possibility of tampering. The control device 61 of the platform server 6 then advances the process to S56.
 S53において、プラットフォームサーバ6の制御装置61は、トランザクション処理を実行する。具体的には、プラットフォームサーバ6の制御装置61は、図10において説明したS26,S27の処理と同様の処理を実行し、トランザクションデータに含まれるKeyの情報により特定される台帳のレコードを生成して、当該台帳に生成されたレコードを追加し、台帳セット60を更新する。 In S53, the control device 61 of the platform server 6 executes transaction processing. Specifically, the control device 61 of the platform server 6 executes processing similar to the processing of S26 and S27 described in FIG. 10, generates a ledger record identified by the key information included in the transaction data, adds the generated record to the ledger, and updates the ledger set 60.
 S54において、プラットフォームサーバ6の制御装置61は、プルーフレコードを生成する。プルーフレコードは、台帳に追加されたレコードに含まれるKey、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報を含む。 In S54, the control device 61 of the platform server 6 generates a proof record. The proof record includes the Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV information contained in the record added to the ledger.
 S55において、プラットフォームサーバ6の制御装置61は、台帳セット60の更新が完了したこと(すなわち、トランザクションデータを処理したこと)を示す正常報告を作成する。プラットフォームサーバ6の制御装置61は、正常報告にプルーフレコードを含める。 In S55, the control device 61 of the platform server 6 creates a success report indicating that the update of the ledger set 60 has been completed (i.e., the transaction data has been processed). The control device 61 of the platform server 6 includes a proof record in the success report.
 S56において、プラットフォームサーバ6の制御装置61は、S52において作成された異常報告、または、S55において作成された正常報告を、トランザクションデータの送信元のクライアントサーバ3に送信するための制御信号を通信装置64に出力する。これにより、通信装置64を介して、異常報告または正常報告がクライアントサーバ3に送信される。 In S56, the control device 61 of the platform server 6 outputs a control signal to the communication device 64 to transmit the abnormality report created in S52 or the normality report created in S55 to the client server 3 that is the sender of the transaction data. As a result, the abnormality report or normality report is transmitted to the client server 3 via the communication device 64.
 また、S56において、プラットフォームサーバ6の制御装置61は、プルーフレコードを、トランザクションデータの送信元以外の他のクライアントサーバ3(たとえば、B企業,C企業、D企業のクライアントサーバ3)に送信するための制御信号を通信装置64に出力する。これにより、通信装置64を介して、プルーフレコードが他のクライアントサーバ3に送信される。 In addition, in S56, the control device 61 of the platform server 6 outputs a control signal to the communication device 64 to transmit the proof record to other client servers 3 other than the sender of the transaction data (for example, the client servers 3 of companies B, C, and D). As a result, the proof record is transmitted to the other client servers 3 via the communication device 64.
 S46において、クライアントサーバ3の制御装置31は、プラットフォームサーバ6から正常報告を受信したか否かを判断する。正常報告を受信したと判断すると(S46においてYES)、クライアントサーバ3の制御装置31は、処理をS47に進める。一方、正常報告を受信していない、すなわち異常報告を受信したと判断すると(S46においてNO)、クライアントサーバ3の制御装置31は、処理をS49に進める。 In S46, the control device 31 of the client server 3 determines whether or not a normal report has been received from the platform server 6. If it determines that a normal report has been received (YES in S46), the control device 31 of the client server 3 advances the process to S47. On the other hand, if it determines that a normal report has not been received, i.e., that an abnormality report has been received (NO in S46), the control device 31 of the client server 3 advances the process to S49.
 S47において、クライアントサーバ3の制御装置31は、正常報告に含まれるプルーフレコードをコミットレコードとしてコミットテーブル374に追加する。具体的には、クライアントサーバ3の制御装置31は、プルーフレコードのKeyの情報に基づいて、コミットレコードを追加する対象がコミットデータ375であるかコミットデータ376であるかを判断する。そして、クライアントサーバ3の制御装置31は、対象のコミットデータにコミットレコードを追加する。 In S47, the control device 31 of the client server 3 adds the proof record included in the normal report as a commit record to the commit table 374. Specifically, the control device 31 of the client server 3 determines whether the target to which the commit record is to be added is commit data 375 or commit data 376, based on the key information of the proof record. Then, the control device 31 of the client server 3 adds the commit record to the target commit data.
 S48において、クライアントサーバ3の制御装置31は、追加したコミットレコードと同じKeyの情報を有するサスペンションレコードを、サスペンションテーブル373から削除する。 In S48, the control device 31 of the client server 3 deletes the suspension record that has the same key information as the added commit record from the suspension table 373.
 S49において、クライアントサーバ3の制御装置31は、更新要求に対する処理の結果を、たとえば、表示装置36に表示させたり、ユーザ端末装置7に送信したりする。 In S49, the control device 31 of the client server 3 displays the results of the processing for the update request on the display device 36 or transmits them to the user terminal device 7, for example.
 なお、S56において送信されたプルーフレコードを受信した他のクライアントサーバ3(B企業,C企業、D企業のクライアントサーバ3)も、同様にプルーフレコードをコミットテーブル374に追加することで、コミットテーブル374が更新される。 In addition, the other client servers 3 (client servers 3 of companies B, C, and D) that received the proof record sent in S56 also add the proof record to their commit tables 374 in a similar manner, thereby updating the commit tables 374.
 以上のように、実施の形態3に係るデータ管理システム1Bにおいては、プラットフォームサーバ6がトランザクションデータにファイナリティを与える。プラットフォームサーバ6は、2つの台帳67,68を含む台帳セット60を保持する。台帳67には、第1部品の部品データの更新状態が時系列に記憶され、台帳68には、第2部品の部品データの更新状態が時系列に記憶される。そして、台帳セット60が更新されると、台帳セット60に追加されたレコードの情報を有するプルーフレコードがプラットフォームサーバ6から各クライアントサーバ3に送られる。クライアントサーバ3の各々は、プルーフレコードをコミットレコードとして、コミットテーブル374に追加する。コミットテーブル374が実施の形態1に係る分散型台帳セット50に相当する。実施の形態3に係るデータ管理システム1Bの構成においても、第2要求に応答して、2つのコミットデータ375,376の最新(終端)レコードのレコードハッシュ値をそれぞれ生成し、これらを含む終端ハッシュ値を生成する。そして、終端ハッシュ値に対してタイムスタンプトークンを取得する。終端ハッシュ値に対してタイムスタンプトークンを取得することで、たとえば、実施の形態1の図3の例のように、タイムスタンプトークンにより証明される時刻に第1部品の部品データ(たとえば、図3の例ではD10~D13)が存在したこと、および、第2部品の部品データ(たとえば、図3の例ではD20~D22)が存在したことを証明することができる。 As described above, in the data management system 1B according to the third embodiment, the platform server 6 provides finality to transaction data. The platform server 6 holds a ledger set 60 including two ledgers 67 and 68. The ledger 67 stores the update state of the part data of the first part in chronological order, and the ledger 68 stores the update state of the part data of the second part in chronological order. When the ledger set 60 is updated, a proof record having information of the record added to the ledger set 60 is sent from the platform server 6 to each client server 3. Each client server 3 adds the proof record to the commit table 374 as a commit record. The commit table 374 corresponds to the distributed ledger set 50 according to the first embodiment. In the configuration of the data management system 1B according to the third embodiment, in response to the second request, record hash values of the latest (terminal) records of the two commit data 375 and 376 are generated, and a terminal hash value including these is generated. Then, a timestamp token is obtained for the terminal hash value. By obtaining a timestamp token for the terminal hash value, it is possible to prove, for example, as in the example of FIG. 3 in embodiment 1, that component data for the first component (e.g., D10 to D13 in the example of FIG. 3) existed at the time proven by the timestamp token, and that component data for the second component (e.g., D20 to D22 in the example of FIG. 3) existed.
 また、タイムスタンプトークンを台帳セット60に含まれる少なくとも1つの台帳のレコードに組み込むことによって、コミットテーブル374に含まれる少なくとも1つのコミットデータに組み込む。これにより、タイムスタンプトークンの耐改ざん性を高めることができる。 In addition, by incorporating the timestamp token into the record of at least one ledger included in the ledger set 60, the timestamp token is incorporated into at least one commit data included in the commit table 374. This makes it possible to increase the tamper-resistance of the timestamp token.
 [変形例2]
 実施の形態3では、コミットテーブル374は、台帳セット60に含まれる情報と同様の情報を有する例について説明した。具体的には、コミットテーブル374のコミットデータ375,376の各々は、Key、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報を有した。コミットテーブル374は、台帳セット60に含まれる情報のうちの一部を有してもよい。たとえば、コミットテーブル374のコミットデータ375,376の各々は、台帳セット60の台帳67,68の各々が有する、Key、Age、Obj-HV、Nonce、Sig、Prev-HV、および、HVの情報のうちの、Key、Age、Obj-HV、HV、および、Nonceの情報を含んで構成されてもよい。この場合には、プルーフレコードも、Key、Age、Obj-HV、HV、および、Nonceの情報を含むように生成される。すなわち、コミットデータ375,376は、台帳67,68のサマリとなる。コミットデータ375,376を台帳67,68のサマリとすることによって、コミットデータ375,376と台帳67,68とが同様の情報を有する場合に比べ、クライアントサーバ3の記憶装置37に記憶されるデータ容量を抑制することができる。
[Modification 2]
In the third embodiment, an example has been described in which the commit table 374 has information similar to that contained in the ledger set 60. Specifically, each of the commit data 375, 376 in the commit table 374 has information on Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV. The commit table 374 may have a part of the information contained in the ledger set 60. For example, each of the commit data 375, 376 in the commit table 374 may be configured to include information on Key, Age, Obj-HV, HV, and Nonce from the information on Key, Age, Obj-HV, Nonce, Sig, Prev-HV, and HV contained in each of the ledgers 67, 68 in the ledger set 60. In this case, the proof record is also generated to include information on Key, Age, Obj-HV, HV, and Nonce. That is, the commit data 375, 376 are summaries of the ledgers 67, 68. By making the commit data 375, 376 a summary of the ledgers 67, 68, the amount of data stored in the storage device 37 of the client server 3 can be reduced compared to a case in which the commit data 375, 376 and the ledgers 67, 68 have similar information.
 [変形例3]
 実施の形態3には、実施の形態2の構成を組み合わせることも可能である。すなわち、実施の形態3において、第3要求に応答して、存在証明処理が実行されてもよい。このような構成においても、実施の形態2と同様の効果を奏することができる。
[Modification 3]
It is also possible to combine the configuration of the second embodiment with the third embodiment. That is, in the third embodiment, the existence proof process may be executed in response to the third request. Even in such a configuration, it is possible to achieve the same effect as the second embodiment.
 今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示により示される技術的範囲は、上記した実施の形態の説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed herein should be considered in all respects as illustrative and not restrictive. The technical scope of the present disclosure is indicated by the claims, not by the description of the embodiments above, and is intended to include all modifications within the meaning and scope of the claims.
 1,1A,1B データ管理システム、2,2A,3 クライアントサーバ、4 データベース、5,6 プラットフォームサーバ、7 ユーザ端末装置、8 時刻認証局、9 外部サーバ、21,21A 制御装置、22 ROM、23 RAM、24,24A 通信装置、25 入力装置、26 表示装置、27 記憶装置、29 バス、31 制御装置、32 ROM、33 RAM、34 通信装置、35 入力装置、36 表示装置、37 記憶装置、39 バス、50 分散型台帳セット、51,52 分散型台帳、55 分散型台帳セット、56,57 分散型台帳、60 台帳セット、61 制御装置、62 ROM、63 RAM、64 通信装置、65 記憶装置、67,68 台帳、69 バス、271 秘密鍵、272 複数の公開鍵、371 秘密鍵、372 プルーフデータ、373 サスペンションテーブル、374 コミットテーブル、375,376 コミットデータ、651 複数の公開鍵、2101 情報取得部、2102 ハッシュ生成部、2103 ナンス生成部、2104 電子署名部、2105 トランザクションデータ生成部、2106 トランザクションデータ送信部、2111 情報取得部、2112 レコード追加部、2113 終端ハッシュ生成部、2114 ナンス生成部、2115 タイムスタンプトークン取得部、2116 電子署名部、2117 トランザクションデータ生成部、2118 トランザクションデータ送信部、2121 トランザクションデータ取得部、2122 署名検証部、2123 レコード作成部、2124 台帳更新部、2125 出力部、2131 情報取得部、2132 終端ハッシュ生成部、2133 タイムスタンプトークン取得部、2134 出力部、NW ネットワーク。 1, 1A, 1B Data management system, 2, 2A, 3 Client server, 4 Database, 5, 6 Platform server, 7 User terminal device, 8 Time authentication authority, 9 External server, 21, 21A Control device, 22 ROM, 23 RAM, 24, 24A Communication device, 25 Input device, 26 Display device, 27 Storage device, 29 Bus, 31 Control device, 32 ROM, 33 RAM, 34 Communication device, 35 Input power device, 36 display device, 37 storage device, 39 bus, 50 distributed ledger set, 51, 52 distributed ledger, 55 distributed ledger set, 56, 57 distributed ledger, 60 ledger set, 61 control device, 62 ROM, 63 RAM, 64 communication device, 65 storage device, 67, 68 ledger, 69 bus, 271 private key, 272 multiple public keys, 371 private key, 372 proof data, 373 suspension table , 374 commit table, 375, 376 commit data, 651 multiple public keys, 2101 information acquisition unit, 2102 hash generation unit, 2103 nonce generation unit, 2104 digital signature unit, 2105 transaction data generation unit, 2106 transaction data transmission unit, 2111 information acquisition unit, 2112 record addition unit, 2113 termination hash generation unit, 2114 nonce generation unit, 2115 time stamp token acquisition unit, 2116 electronic signature unit, 2117 transaction data generation unit, 2118 transaction data transmission unit, 2121 transaction data acquisition unit, 2122 signature verification unit, 2123 record creation unit, 2124 ledger update unit, 2125 output unit, 2131 information acquisition unit, 2132 termination hash generation unit, 2133 timestamp token acquisition unit, 2134 output unit, NW network.

Claims (8)

  1.  分散型台帳技術を用いてデータを管理するデータ管理装置であって、
     前記データに関する情報を含むレコードを時系列に格納する分散型台帳を記憶する記憶装置と、
     前記分散型台帳に前記レコードを追加する制御装置と、
     時刻認証局と通信可能に構成された通信装置とを備え、
     前記データは、第1データおよび第2データを含み、
     前記分散型台帳は、前記第1データに関する第1情報を含むレコードを時系列に格納する第1分散型台帳と、前記第2データに関する第2情報を含むレコードを時系列に格納する第2分散型台帳とを含み、
     前記制御装置は、
      前記第1分散型台帳の終端のレコードの情報と、前記第2分散型台帳の終端のレコードの情報とを含む終端値を生成し、
      前記通信装置を介して、前記時刻認証局から前記終端値に対するタイムスタンプトークンを取得する、データ管理装置。
    A data management device that manages data using distributed ledger technology,
    A storage device that stores a distributed ledger that chronologically stores records including information about the data;
    a control device for adding the record to the distributed ledger;
    A communication device configured to be able to communicate with a time stamp authority,
    the data includes first data and second data;
    The distributed ledger includes a first distributed ledger that chronologically stores records including first information about the first data, and a second distributed ledger that chronologically stores records including second information about the second data,
    The control device includes:
    Generate an end value that includes information of an end record of the first distributed ledger and information of an end record of the second distributed ledger;
    A data management device that obtains a time stamp token for the terminal value from the time stamp authority via the communication device.
  2.  前記制御装置は、前記タイムスタンプトークンを含むレコードを、前記第1分散型台帳および前記第2分散型台帳のうちの少なくとも一方に格納する、請求項1に記載のデータ管理装置。 The data management device of claim 1, wherein the control device stores a record including the timestamp token in at least one of the first distributed ledger and the second distributed ledger.
  3.  前記通信装置は、さらに、前記データ管理装置とは異なる外部サーバと通信可能に構成され、
     前記制御装置は、前記タイムスタンプトークンを前記記憶装置に記憶させるとともに、前記通信装置を介して、前記タイムスタンプトークンを前記外部サーバに送信する、請求項1に記載のデータ管理装置。
    The communication device is further configured to be able to communicate with an external server different from the data management device,
    The data management device according to claim 1 , wherein the control device stores the time stamp token in the storage device and transmits the time stamp token to the external server via the communication device.
  4.  前記制御装置は、前記第1データおよび前記第2データの更新に応答して、前記第1情報を含むレコードを前記第1分散型台帳に格納し、かつ、前記第2情報を含むレコードを前記第2分散型台帳に格納すると、前記終端値を生成する、請求項1から請求項3のいずれか1項に記載のデータ管理装置。 The data management device according to any one of claims 1 to 3, wherein the control device stores a record including the first information in the first distributed ledger in response to updates to the first data and the second data, and generates the terminal value when it stores a record including the second information in the second distributed ledger.
  5.  前記制御装置は、前回のタイムスタンプトークンの取得時点から所定時間が経過すると、前記終端値を生成する、請求項1から請求項3のいずれか1項に記載のデータ管理装置。 The data management device according to any one of claims 1 to 3, wherein the control device generates the terminal value when a predetermined time has elapsed since the previous timestamp token was acquired.
  6.  前記第1分散型台帳の終端のレコードの情報は、前記第1分散型台帳の終端のレコードのハッシュ値であり、
     前記第2分散型台帳の終端のレコードの情報は、前記第2分散型台帳の終端のレコードのハッシュ値である、請求項1から請求項5のいずれか1項に記載のデータ管理装置。
    The information of the end record of the first distributed ledger is a hash value of the end record of the first distributed ledger,
    The data management device according to claim 1 , wherein the information of the record at the end of the second distributed ledger is a hash value of the record at the end of the second distributed ledger.
  7.  前記第1情報は、前記第1データのハッシュ値であり、
     前記第2情報は、前記第2データのハッシュ値である、請求項1から請求項6のいずれか1項に記載のデータ管理装置。
    the first information is a hash value of the first data,
    The data management device according to claim 1 , wherein the second information is a hash value of the second data.
  8.  分散型台帳技術を用いてデータを管理するデータ管理装置のデータ管理方法であって、
     前記データ管理装置は、
     前記データに関する情報を含むレコードを時系列に格納する分散型台帳を記憶する記憶装置と、
     前記分散型台帳に前記レコードを追加する制御装置と、
     時刻認証局と通信可能に構成された通信装置とを備え、
     前記データは、第1データおよび第2データを含み、
     前記分散型台帳は、前記第1データに関する第1情報を含むレコードを時系列に格納する第1分散型台帳と、前記第2データに関する第2情報を含むレコードを時系列に格納する第2分散型台帳とを含み、
     前記データ管理方法は、
      前記第1分散型台帳の終端のレコードの情報と、前記第2分散型台帳の終端のレコードの情報とを含む終端値を生成するステップと、
      前記通信装置を介して、前記時刻認証局から前記終端値に対するタイムスタンプトークンを取得するステップとを含む、データ管理方法。
    A data management method for a data management device that manages data using distributed ledger technology, comprising:
    The data management device includes:
    A storage device that stores a distributed ledger that chronologically stores records including information about the data;
    a control device for adding the record to the distributed ledger;
    A communication device configured to be able to communicate with a time stamp authority,
    the data includes first data and second data;
    The distributed ledger includes a first distributed ledger that chronologically stores records including first information about the first data, and a second distributed ledger that chronologically stores records including second information about the second data,
    The data management method includes:
    generating an end value including information of an end record of the first distributed ledger and information of an end record of the second distributed ledger;
    and obtaining a time stamp token for the terminal value from the time stamp authority via the communication device.
PCT/JP2022/039771 2022-10-25 2022-10-25 Data management device and data management method WO2024089775A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/039771 WO2024089775A1 (en) 2022-10-25 2022-10-25 Data management device and data management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/039771 WO2024089775A1 (en) 2022-10-25 2022-10-25 Data management device and data management method

Publications (1)

Publication Number Publication Date
WO2024089775A1 true WO2024089775A1 (en) 2024-05-02

Family

ID=90830309

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/039771 WO2024089775A1 (en) 2022-10-25 2022-10-25 Data management device and data management method

Country Status (1)

Country Link
WO (1) WO2024089775A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017157926A (en) * 2016-02-29 2017-09-07 富士ゼロックス株式会社 Information processing unit and program
WO2019228560A2 (en) * 2019-09-02 2019-12-05 Alibaba Group Holding Limited Managing blockchain-based centralized ledger systems
US20200076572A1 (en) * 2018-08-30 2020-03-05 International Business Machines Corporation Guarantee of ledger immutability

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017157926A (en) * 2016-02-29 2017-09-07 富士ゼロックス株式会社 Information processing unit and program
US20200076572A1 (en) * 2018-08-30 2020-03-05 International Business Machines Corporation Guarantee of ledger immutability
WO2019228560A2 (en) * 2019-09-02 2019-12-05 Alibaba Group Holding Limited Managing blockchain-based centralized ledger systems

Similar Documents

Publication Publication Date Title
US11232478B2 (en) Methods and system for collecting statistics against distributed private data
Huang et al. Towards secure industrial IoT: Blockchain system with credit-based consensus mechanism
CN111434085B (en) Domain name management scheme for cross-chain interaction in blockchain systems
AU2021206913B2 (en) Systems and methods for distributed data sharing with asynchronous third-party attestation
US20230070963A1 (en) Blockchain-implemented method for control and distribution of digital content
CN109189962B (en) License service implementation system based on block chain
WO2022042301A1 (en) Data processing method and apparatus, smart device and storage medium
CN110268677B (en) Cross-chain interaction using domain name scheme in blockchain system
CN109766673A (en) A kind of alliance&#39;s formula audio-video copyright block catenary system and audio-video copyright cochain method
CN112311772B (en) Hyperridge-based cross-domain certificate management system and method
CN110489946B (en) Copyright authentication method, device, equipment and storage medium based on block chain
WO2011058785A1 (en) Server for long-term signature, terminal for long-term signature, terminal program for long-term signature, and server for long-term signature verification
Yao et al. PBCert: Privacy-preserving blockchain-based certificate status validation toward mass storage management
CN111327426B (en) Data sharing method and related device, equipment and system
WO2022179502A1 (en) Blockchain network identity management using ssi
CN110855445A (en) Block chain-based certificate management method and device and storage equipment
WO2020126235A1 (en) Method for generating stateful hash based signatures of messages to be signed
US11044104B2 (en) Data certification as a service powered by permissioned blockchain network
WO2024089775A1 (en) Data management device and data management method
WO2024089773A1 (en) Data management device and data management method
Medury et al. Scraaps: X. 509 certificate revocation using the blockchain-based scrybe secure provenance system
KR20220064766A (en) Anonymous Attribute Proof System and Method with Efficient Key Revocation
WO2024089774A1 (en) Data management device and data management method
JP2023045608A (en) Data management device and data management method
EP4362384A1 (en) Data management apparatus and data management method