Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6859293B2 - Data management system, data management method and data management program - Google Patents
[go: Go Back, main page]

JP6859293B2 - Data management system, data management method and data management program - Google Patents

Data management system, data management method and data management program Download PDF

Info

Publication number
JP6859293B2
JP6859293B2 JP2018133453A JP2018133453A JP6859293B2 JP 6859293 B2 JP6859293 B2 JP 6859293B2 JP 2018133453 A JP2018133453 A JP 2018133453A JP 2018133453 A JP2018133453 A JP 2018133453A JP 6859293 B2 JP6859293 B2 JP 6859293B2
Authority
JP
Japan
Prior art keywords
block
node
blockchain
data management
hash value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018133453A
Other languages
Japanese (ja)
Other versions
JP2020014056A (en
Inventor
バス オニバン
バス オニバン
有登 仲野
有登 仲野
清本 晋作
晋作 清本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2018133453A priority Critical patent/JP6859293B2/en
Publication of JP2020014056A publication Critical patent/JP2020014056A/en
Application granted granted Critical
Publication of JP6859293B2 publication Critical patent/JP6859293B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ブロックチェーンを利用したデータ管理システム、データ管理方法及びデータ管理プログラムに関する。 The present invention relates to a data management system using a blockchain, a data management method, and a data management program.

従来、分散環境において、データの正当性を確認しつつ、順序付けて管理する仕組みとして、ブロックチェーンが利用されている(例えば、特許文献1参照)。
ブロックチェーンでは、参加者によるコンセンサスアルゴリズムにより、合意形成されたブロックが順次生成される。生成されたブロックは、一列に繋がり、一時的に分岐が発生したとしても、コンセンサスによりいずれか一つに収束する。これらのブロックは改ざんが困難であり、一列に繋がったブロックの順序及びブロック内のデータの順序が保証される。
Conventionally, in a distributed environment, a blockchain has been used as a mechanism for ordering and managing data while confirming the validity (see, for example, Patent Document 1).
In the blockchain, consensus-building blocks are sequentially generated by a consensus algorithm by participants. The generated blocks are connected in a row, and even if a branch occurs temporarily, it converges to one of them by consensus. These blocks are difficult to tamper with, and the order of the blocks in a row and the order of the data within the blocks is guaranteed.

Nakamoto, S.: Bitcoin: A peer−to−peer electronic cash system (2008)Nakamoto, S.A. : Bitcoin: A peer-to-peer electronic cash system (2008)

しかしながら、従来のプルーフ・オブ・ワーク等のコンセンサスアルゴリズムは、報酬に関係する計算量の重さがネックとなり、最新のブロックが確定されるまで、すなわちデータの順序付けが確定するまでに長時間を要していた。 However, in conventional consensus algorithms such as proof of work, the weight of the amount of calculation related to reward becomes a bottleneck, and it takes a long time until the latest block is confirmed, that is, it takes a long time to determine the ordering of data. Was.

本発明は、ブロックチェーンに格納されるデータの順序付けを、高速に確定できるデータ管理システム、データ管理方法及びデータ管理プログラムを提供することを目的とする。 An object of the present invention is to provide a data management system, a data management method, and a data management program that can determine the ordering of data stored in a blockchain at high speed.

本発明に係るデータ管理システムは、分散ハッシュテーブルにより定義されたハッシュ関数の値域に対応付けられた複数のノードを備え、前記ノードは、1又は複数の順序付きデータを格納したブロックを生成するブロック生成部と、前記ブロックをブロックチェーンに登録するブロック登録部と、を備え、前記ブロック生成部は、前記ハッシュ関数を用いて前記順序付きデータに基づく第1のハッシュ値を算出し、前記ブロックチェーンにより順序付けられる次のブロックを生成するリーダノードを指定するIDとして、前記第1のハッシュ値を前記ブロックに格納し、前記複数のノードのうち、指定された前記リーダノードのみが前記次のブロックを生成する。 The data management system according to the present invention includes a plurality of nodes associated with the value range of the hash function defined by the distributed hash table, and the nodes generate a block storing one or a plurality of ordered data. A generation unit and a block registration unit that registers the block in the blockchain are provided, and the block generation unit calculates a first hash value based on the ordered data using the hash function, and the blockchain. The first hash value is stored in the block as an ID for designating a leader node that generates the next block ordered by, and among the plurality of nodes, only the designated leader node sets the next block. Generate.

前記ブロック生成部は、前記順序付きデータに対する自ノードによる署名に基づいて、前記第1のハッシュ値を算出してもよい。 The block generation unit may calculate the first hash value based on the signature of the own node for the ordered data.

前記ブロックチェーンにおける最初のブロックを生成する前記リーダノードは、所定の定数に基づく前記第1のハッシュ値により指定されてもよい。 The leader node that generates the first block in the blockchain may be designated by the first hash value based on a predetermined constant.

前記ノードは、前記リーダノードにより生成された前記ブロックを承認するブロック承認部を備え、前記ブロック生成部は、前記ブロックを生成する際に、前記ハッシュ関数を用いて前記順序付きデータに基づく第2のハッシュ値を算出し、前記次のブロックを承認する検証ノードを指定するIDとして、当該第2のハッシュ値を前記ブロックに格納し、前記ブロック登録部は、前記ブロックチェーンにより順序付けられた前のブロックにより指定された検証ノードにより承認されたことを条件に、当該検証ノードの署名を付加した前記ブロックを前記ブロックチェーンに登録してもよい。 The node includes a block approval unit that approves the block generated by the leader node, and the block generation unit uses the hash function to generate a second block based on the ordered data. The second hash value is stored in the block as an ID for designating the verification node that approves the next block, and the block registration unit is before being ordered by the blockchain. The block with the signature of the verification node may be registered in the blockchain, provided that it is approved by the verification node specified by the block.

前記ブロック生成部は、前記順序付きデータに対する前記検証ノードによる署名に基づいて、前記第1のハッシュ値及び前記第2のハッシュ値を算出してもよい。 The block generation unit may calculate the first hash value and the second hash value based on the signature of the ordered data by the verification node.

前記ブロックチェーンにおける最初のブロックを承認する前記検証ノードは、所定の定数に基づく前記第2のハッシュ値により指定されてもよい。 The verification node that approves the first block in the blockchain may be specified by the second hash value based on a predetermined constant.

前記検証ノードは、複数の前記第2のハッシュ値により複数指定され、前記ブロック登録部は、所定数以上の前記検証ノードにより承認されたことを条件に、当該所定数以上の前記検証ノードのグループ署名を付加した前記ブロックを前記ブロックチェーンに登録してもよい。 A plurality of the verification nodes are designated by the plurality of the second hash values, and the block registration unit is a group of the predetermined number or more of the verification nodes on condition that the verification nodes are approved by the predetermined number or more. The signed block may be registered in the blockchain.

前記ブロック生成部は、前記検証ノードによる承認が前記所定数に満たない場合、前記順序付きデータを含まないブロックを生成してもよい。 The block generation unit may generate a block that does not include the ordered data when the approval by the verification node is less than the predetermined number.

本発明に係るデータ管理方法は、分散ハッシュテーブルにより定義されたハッシュ関数の値域に対応付けられた複数のノードが、1又は複数の順序付きデータを格納したブロックを生成するブロック生成ステップと、前記ブロックをブロックチェーンに登録するブロック登録ステップと、を実行し、前記ブロック生成ステップにおいて、前記ハッシュ関数を用いて前記順序付きデータに基づく第1のハッシュ値を算出し、前記ブロックチェーンにより順序付けられる次のブロックを生成するリーダノードを指定するIDとして、前記第1のハッシュ値を前記ブロックに格納し、前記複数のノードのうち、指定された前記リーダノードのみが前記次のブロックを生成する。 The data management method according to the present invention includes a block generation step in which a plurality of nodes associated with the value range of the hash function defined by the distributed hash table generate a block storing one or a plurality of ordered data, and the above-mentioned block generation step. The block registration step of registering the block in the blockchain and the block registration step are executed, and in the block generation step, the first hash value based on the ordered data is calculated by using the hash function, and the block is ordered by the blockchain. The first hash value is stored in the block as an ID for designating the leader node that generates the block, and of the plurality of nodes, only the designated leader node generates the next block.

本発明に係るデータ管理プログラムは、分散ハッシュテーブルにより定義されたハッシュ関数の値域に対応付けられた複数のノードに、1又は複数の順序付きデータを格納したブロックを生成するブロック生成ステップと、前記ブロックをブロックチェーンに登録するブロック登録ステップと、を実行させ、前記ブロック生成ステップにおいて、前記ハッシュ関数を用いて前記順序付きデータに基づく第1のハッシュ値を算出させ、前記ブロックチェーンにより順序付けられる次のブロックを生成するリーダノードを指定するIDとして、前記第1のハッシュ値を前記ブロックに格納させ、前記複数のノードのうち、指定された前記リーダノードのみに前記次のブロックを生成させるためのものである。 The data management program according to the present invention includes a block generation step of generating a block in which one or a plurality of ordered data is stored in a plurality of nodes associated with a value range of a hash function defined by a distributed hash table, and the above-mentioned. The block registration step of registering the block in the blockchain and the block registration step are executed, and in the block generation step, the first hash value based on the ordered data is calculated by using the hash function, and the block is ordered by the blockchain. The first hash value is stored in the block as an ID for designating the leader node that generates the block, and only the designated leader node among the plurality of nodes is used to generate the next block. It is a thing.

本発明によれば、ブロックチェーンに格納されるデータの順序付けを、高速に確定できる。 According to the present invention, the ordering of data stored in the blockchain can be determined at high speed.

実施形態に係るデータ管理システムの構成を示す概要図である。It is a schematic diagram which shows the structure of the data management system which concerns on embodiment. 実施形態に係るノードの機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the node which concerns on embodiment. 実施形態に係るブロックチェーンに登録されるブロックの構成を示す図である。It is a figure which shows the structure of the block registered in the blockchain which concerns on embodiment. 実施形態に係るデータ管理システムによるブロックの生成及び登録の処理を示すフローチャートである。It is a flowchart which shows the process of the block generation and registration by the data management system which concerns on embodiment.

以下、本発明の実施形態の一例について説明する。
図1は、本実施形態に係るデータ管理システム1の構成を示す概要図である。
データ管理システム1は、ピアツーピア(P2P)のネットワークにより構成された複数のノード10によりブロックチェーン20を分散管理する。
Hereinafter, an example of the embodiment of the present invention will be described.
FIG. 1 is a schematic diagram showing a configuration of a data management system 1 according to the present embodiment.
The data management system 1 manages the blockchain 20 in a distributed manner by a plurality of nodes 10 configured by a peer-to-peer (P2P) network.

n個のノード10は、分散ハッシュテーブル(DHT)により定義されたハッシュ関数の値域H、すなわちN個のキー(ハッシュ値)のいずれかに対応付けられる(N>>n)。
DHTには、例えば、Chordが用いられてよい。Chordでは、各ノード10が有するルーティングテーブルを用いて、通常、O(logN)の経路長で任意のノード10に到達する。
The n nodes 10 are associated with any of the range H of the hash function defined by the distributed hash table (DHT), that is, N keys (hash values) (N >> n).
For DHT, for example, Chord may be used. In Chord, the routing table of each node 10 is usually used to reach an arbitrary node 10 with an O (logN) route length.

なお、複数のノード10は、負荷分散のための仮想ノードであってよく、この場合、実ノード(端末)は、それぞれが複数の仮想ノードに割り当てられる。 The plurality of nodes 10 may be virtual nodes for load distribution, and in this case, each of the real nodes (terminals) is assigned to the plurality of virtual nodes.

ブロックチェーン20を構成する各ブロック21は、複数のノード10のうち指定された一つのリーダノードにより生成される。
このとき、各ブロック21には、次のブロック21の生成を担当するリーダノードのIDが格納される。このIDは、DHTのN個のキー(ハッシュ値)のいずれかであり、DHTにおいてこのキーを管理するノード10のみがリーダノードとして、次のブロック21を生成する。
Each block 21 constituting the blockchain 20 is generated by one designated leader node among the plurality of nodes 10.
At this time, the ID of the leader node in charge of generating the next block 21 is stored in each block 21. This ID is one of N keys (hash values) of the DHT, and only the node 10 that manages this key in the DHT is used as the leader node to generate the next block 21.

図1の例では、例えばノード10aがブロック21aを生成し、ブロック21aで指定されたノード10bがブロック21bを生成し、ブロック21bで指定されたノード10cがブロック21cを生成し、ブロック21cで指定されたノード10dがブロック21dを生成している。 In the example of FIG. 1, for example, the node 10a generates the block 21a, the node 10b specified by the block 21a generates the block 21b, the node 10c specified by the block 21b generates the block 21c, and the node 10c is specified by the block 21c. The generated node 10d is generating the block 21d.

また、最新のブロック21dは、検証ノードにより承認されることでブロックチェーン20に登録される構成であってもよい。この場合、検証ノードも複数のノード10から指定され、次のブロック21を承認する検証ノードのIDが複数、ブロック21に格納される。 Further, the latest block 21d may be configured to be registered in the blockchain 20 by being approved by the verification node. In this case, the verification node is also designated from the plurality of nodes 10, and a plurality of IDs of the verification node approving the next block 21 are stored in the block 21.

各ノード10は、DHTによるルーティングを用いることにより、効率的にリーダノード及び検証ノードと通信し、また、リーダノードから最新のブロックを他のノード10へ配信できる。
また、一時的なネットワーク遮断又は遅延等の問題により一部のノード10で最新のブロックチェーン20の同期が取れなかった場合、又は新たなノード10が参加した場合であっても、これらのノード10は、ルーティングテーブルに記述された他のノード、又は現在保持しているブロック21から特定されるリーダノードから、ブロックチェーン20のローカルコピーを取得できる。
Each node 10 can efficiently communicate with the leader node and the verification node by using the routing by DHT, and can deliver the latest block from the leader node to the other node 10.
In addition, even if the latest blockchain 20 cannot be synchronized with some nodes 10 due to problems such as temporary network interruption or delay, or even if a new node 10 joins, these nodes 10 Can obtain a local copy of the blockchain 20 from another node described in the routing table or a leader node identified from the currently held block 21.

なお、データ管理システム1を構成する全てのノード10がDHTに参加し、リーダノード又は検証ノードとして指定可能であってもよいが、これには限られない。例えば、一部のノード10にのみブロックの生成及び検証の権限が与えられ、他のノード10は、DHTにアクセスしてブロックチェーン20のローカルコピーを保持する構成であってもよい。
以下では、全てのノード10がDHTに参加しているものとして説明する。
All the nodes 10 constituting the data management system 1 may participate in the DHT and can be designated as a leader node or a verification node, but the present invention is not limited to this. For example, only some nodes 10 may be authorized to generate and verify blocks, and other nodes 10 may be configured to access the DHT and hold a local copy of the blockchain 20.
In the following, it is assumed that all the nodes 10 participate in the DHT.

図2は、本実施形態に係るノード10の機能構成を示すブロック図である。
ノード10は、制御部11と記憶部12とを備えた情報処理装置(コンピュータ)であり、制御部11は、記憶部12に格納されたソフトウェアを実行することにより、ブロック生成部111、ブロック登録部112、及びブロック承認部113として機能する。
FIG. 2 is a block diagram showing a functional configuration of the node 10 according to the present embodiment.
The node 10 is an information processing device (computer) including a control unit 11 and a storage unit 12, and the control unit 11 executes block generation unit 111 and block registration by executing software stored in the storage unit 12. It functions as a unit 112 and a block approval unit 113.

ブロック生成部111は、1又は複数の順序付きデータを格納したブロック21を生成する。
このとき、ブロック生成部111は、所定のハッシュ関数hを用いて順序付きデータに基づく第1のハッシュ値μを算出し、ブロックチェーン20により順序付けられる次のブロック21を生成するためのリーダノードを指定するIDとして、この第1のハッシュ値μをブロック21に格納する。
The block generation unit 111 generates a block 21 in which one or a plurality of ordered data are stored.
At this time, the block generator 111 calculates a first hash value μ based on ordered data using a predetermined hash function h d, leader node for generating a next block 21 to be ordered by the block chain 20 The first hash value μ is stored in the block 21 as an ID for designating.

具体的には、ブロック生成部111は、t番目のリーダノードを指定する第1のハッシュ値μを、例えば、
μ=h(sig(μt−1,Tt−1)‖id
と計算する。ハッシュ関数への引数は、さらに追加されてもよい。
ここで、t−1番目のブロック21には、複数(2λ個)のデータが、例えば、マークルツリーとして格納され、ルートハッシュTt−1に対して、μt−1で示されるt−1番目のリーダノードの署名が付与される。t番目のリーダノードを示す第1のハッシュ値μは、この署名sig(μt−1,Tt−1)とt番目のブロック21の識別子idとの連結に対するハッシュ演算により算出される。
Specifically, block generator 111, a first hash value mu t specifying the t th reader nodes, for example,
μ t = h d (sig ( μ t-1, T t-1) ‖id t)
To calculate. Additional arguments to the hash function may be added.
Here, in the t-1st block 21, a plurality of (2 λ ) data are stored, for example, as a Merkle tree, and the root hash T t-1 is represented by μ t-1. -The signature of the first leader node is given. The first hash value μ t indicating the t-th leader node is calculated by a hash operation for the concatenation of the signature sig (μ t-1 , T t-1 ) and the identifier id t of the t-th block 21. ..

また、ブロック生成部111は、ブロック21を生成する際に、ハッシュ関数を用いて順序付きデータに基づく第2のハッシュ値vを算出し、次のブロック21を承認するための検証ノードを指定するIDとして、この第2のハッシュ値vをブロックに格納してもよい。 Further, when the block 21 is generated, the block generation unit 111 calculates a second hash value v based on the ordered data using a hash function, and designates a verification node for approving the next block 21. This second hash value v may be stored in the block as the ID.

具体的には、ブロック生成部111は、t番目のブロック21を承認するための検証ノードのグループを指定する第2のハッシュ値v∈Vを、例えば、
=h(sig(Vt−1,Tt−1)‖id‖i)
と計算する。ハッシュ関数への引数は、さらに追加されてもよい。
ここで、iは、同一のブロック21を検証する検証ノードのグループ内における識別番号であり、これにより複数の第2のハッシュ値vが算出される。ブロック21に格納される複数のデータには、第2のハッシュ値vで示される検証ノードのグループVによりグループ署名が付与される。
Specifically, block generator 111, a second hash value v i ∈ V t to specify a group of validation node for approving t th block 21, for example,
v i = h d (sig ( V t-1, T t-1) ‖id t ‖i)
To calculate. Additional arguments to the hash function may be added.
Here, i is an identification number in a group of validation node to verify the same block 21, thereby the plurality of second hash value v i is calculated. A plurality of data stored in block 21, the group signature is given by the group V t verification node indicated by the second hash value v i.

また、検証ノードが設けられる場合、前述のリーダノードを示す第1のハッシュ値μは、
μ=h(sig(Vt−1,Tt−1)‖id
のように、検証ノードによるグループ署名に基づいて生成されてもよい。
Also, if the verification node is provided, the first hash value mu t indicating the leader node described above,
μ t = h d (sig ( V t-1, T t-1) ‖id t)
It may be generated based on the group signature by the verification node.

ここで、ブロックチェーン20に登録される最初のブロック21を担当するリーダノード及び検証ノードは、直前のブロック21が存在しないため、前述の式でIDを算出することはできない。
この場合、ブロック生成部111は、例えば、
μ=h(κ)
=h(κ‖i)
のように、所定の定数κに基づいて、第1のハッシュ値及び第2のハッシュ値を算出してよい。
Here, the leader node and the verification node in charge of the first block 21 registered in the blockchain 20 cannot calculate the ID by the above formula because the immediately preceding block 21 does not exist.
In this case, the block generation unit 111, for example,
μ 0 = hd (κ)
v i = h d (κ‖i)
As described above, the first hash value and the second hash value may be calculated based on the predetermined constant κ.

図3は、本実施形態に係るブロックチェーン20に登録されるブロック21の構成を示す図である。
ブロック21には、複数のデータ(イベント1〜m)がマークルツリーとして格納される。すなわち、リーダノードがm個のデータを受信するまで、次のブロック21を担当するリーダノード及び検証ノードは決定されない。
FIG. 3 is a diagram showing a configuration of a block 21 registered in the blockchain 20 according to the present embodiment.
A plurality of data (events 1 to m) are stored in the block 21 as a Merkle tree. That is, the leader node and the verification node in charge of the next block 21 are not determined until the leader node receives m pieces of data.

m個のデータによりマークルツリーが完成し、ルートハッシュに対して署名が付与されると、リーダノードは、DHTにより定義されたハッシュ関数hにより、次のブロック21のリーダノードのIDと検証ノードのIDとを算出し、ブロック21に格納する。
なお、データの数m=2λ、及びブロック21毎の検証ノードの数は、適宜、設計されてよい。
Merkle tree is completed by m data, the signature for the root hash is applied, the reader node, by definition hash function h d by DHT, the ID of the reader nodes of the next block 21 verifying The node ID is calculated and stored in the block 21.
The number of data m = 2 λ and the number of verification nodes for each block 21 may be appropriately designed.

なお、リーダノードは、m個のデータを記録すると、これを超えるデータの登録要求は受け付けない。この場合、受信したデータを新たに指定したリーダノードへ転送してもよいし、要求元へ差し戻してもよい。 When the reader node records m data, the reader node does not accept the registration request for more data. In this case, the received data may be transferred to the newly specified reader node or returned to the requesting source.

また、ブロック21は、直前のブロック21へのポインタを有している。これにより、一連のブロック21の順序が規定され、ブロックチェーン20の全体で、格納されたデータの順序が確定する。
さらに、ブロック21には、ブロック全体の正当性を保証し改ざんを防止するために、リーダノードの署名が付与される。
Further, the block 21 has a pointer to the immediately preceding block 21. As a result, the order of the series of blocks 21 is defined, and the order of the stored data is fixed in the entire blockchain 20.
Further, the block 21 is given a signature of a reader node in order to guarantee the validity of the entire block and prevent tampering.

ブロック登録部112は、ブロックチェーン20により順序付けられた前のブロック21により指定された検証ノードが承認したことを条件に、これらの検証ノードの署名を付加したブロック21をブロックチェーン20に登録する。 The block registration unit 112 registers the block 21 with the signatures of these verification nodes in the blockchain 20 on the condition that the verification nodes specified by the previous block 21 ordered by the blockchain 20 approve.

ここで、検証ノードは、複数の第2のハッシュ値により複数指定される。
したがって、ブロック登録部112は、所定数以上の検証ノードにより承認されたことを条件に、これら所定数以上の検証ノードのグループ署名を付加したブロック21をブロックチェーン20に登録する。なお、所定数は、固定値、又は検証ノードの数に応じた割合(例えば、半数)により適宜、設定されてよい。
Here, a plurality of verification nodes are designated by a plurality of second hash values.
Therefore, the block registration unit 112 registers the block 21 to which the group signatures of the predetermined number or more of the verification nodes are added in the blockchain 20 on the condition that the block 21 is approved by the predetermined number or more of the verification nodes. The predetermined number may be appropriately set by a fixed value or a ratio (for example, half) according to the number of verification nodes.

一方、検証ノードによる承認が所定数に満たない場合、ブロック登録部112は、生成されたブロック21を登録せず、順序付きデータ(イベント)を含まない空のブロック21をブロック生成部111に生成させる。
このとき、ブロック生成部111は、新たなリーダノード及び検証ノードを指定し、指定された新たなリーダノードが否認されたブロック21のデータを入れ替えて新たなブロック21を生成する。
On the other hand, when the approval by the verification node is less than the predetermined number, the block registration unit 112 does not register the generated block 21 and generates an empty block 21 containing no ordered data (event) in the block generation unit 111. Let me.
At this time, the block generation unit 111 designates a new leader node and a verification node, and the designated new leader node replaces the data of the rejected block 21 to generate a new block 21.

ブロック承認部113は、自ノードが検証ノードに指定された場合に、リーダノードにより生成されたブロック21を受け取り、署名を返信することで承認する。 When the own node is designated as the verification node, the block approval unit 113 receives the block 21 generated by the leader node and approves it by returning the signature.

図4は、本実施形態に係るデータ管理システム1によるブロックの生成及び登録の処理を示すフローチャートである。
ステップS1において、リーダノードは、ブロック生成部111によりデータをブロック21に記録する。
ステップS2において、リーダノードは、マークルツリーの大きさ(m個)までデータを記録したか否かを判定する。この判定がYESの場合、処理は、ステップS3に移り、判定がNOの場合、処理はステップS1に戻る。
FIG. 4 is a flowchart showing a block generation and registration process by the data management system 1 according to the present embodiment.
In step S1, the leader node records data in the block 21 by the block generation unit 111.
In step S2, the leader node determines whether or not data has been recorded up to the size of the Merkle tree (m pieces). If this determination is YES, the process proceeds to step S3, and if the determination is NO, the process returns to step S1.

ステップS3において、リーダノードは、生成したブロック21に対する検証ノードの署名を取得する。
ステップS4において、リーダノードは、所定数の署名が得られたか否かを判定する。この判定がYESの場合、処理はステップS7に移り、判定がNOの場合、処理はステップS5に移る。
In step S3, the leader node acquires the signature of the verification node for the generated block 21.
In step S4, the leader node determines whether or not a predetermined number of signatures have been obtained. If this determination is YES, the process proceeds to step S7, and if the determination is NO, the process proceeds to step S5.

ステップS5において、リーダノードは、生成済みのブロック21が否認されたので、ブロック生成部111により、データを含まない空のブロック21を生成する。
ステップS6において、リーダノードは、全ての検証ノードから空のブロック21に対する署名を取得する。
In step S5, since the generated block 21 is rejected, the leader node generates an empty block 21 containing no data by the block generation unit 111.
In step S6, the leader node obtains signatures for the empty block 21 from all verification nodes.

ステップS7において、リーダノードは、生成したブロック21を、ブロック登録部112によりブロックチェーン20に登録する。
ステップS8において、リーダノードは、最新のブロック21を他のノード10に対して配信しネットワーク内で同期させる。
In step S7, the leader node registers the generated block 21 in the blockchain 20 by the block registration unit 112.
In step S8, the leader node distributes the latest block 21 to the other nodes 10 and synchronizes them in the network.

本実施形態によれば、データ管理システム1は、DHTにより定義されたハッシュ関数の値域に対応付けられた複数のノード10によりブロックチェーン20を管理し、ブロックチェーン20に登録するブロック21を、それぞれ複数のノード10の中から指定した一つのリーダノードに生成させる。このとき、ブロック21に格納された順序付きデータに基づく第1のハッシュ値により次のリーダノードを指定する。 According to the present embodiment, the data management system 1 manages the blockchain 20 by a plurality of nodes 10 associated with the range of the hash function defined by the DHT, and blocks 21 to be registered in the blockchain 20, respectively. Generated by one designated leader node from a plurality of nodes 10. At this time, the next leader node is designated by the first hash value based on the ordered data stored in the block 21.

したがって、データ管理システム1は、ブロック21毎にDHTのハッシュ関数によりランダムに、かつ、一意に決定されるリーダノードに責任を負わせることで、ブロックチェーン20に格納されるデータの順序付けを、高速に確定できる。また、一つのリーダノードのみがブロック21を生成されることで、ブロックチェーン20の分岐が発生しないため、正当なブロック21が直ちに確定する。
この結果、データ管理システム1は、例えば、金融取引又はイベントログ等の即時性が要求される順序付きデータを遅滞なく確定させることができる。
Therefore, the data management system 1 blames the leader node, which is randomly and uniquely determined by the hash function of the DHT for each block 21, to speed up the ordering of the data stored in the blockchain 20. Can be confirmed. Further, since the block 21 is generated by only one leader node, the blockchain 20 does not branch, so that the legitimate block 21 is immediately determined.
As a result, the data management system 1 can determine ordered data that requires immediacy, such as financial transactions or event logs, without delay.

データ管理システム1は、ブロック21に格納された順序付きデータに基づく第2のハッシュ値により検証ノードを指定する。これにより、リーダノードとは異なる複数のノード10による承認を経てブロック21が登録されるため、順序付きデータの正当性がより確実に保証される。 The data management system 1 designates a verification node by a second hash value based on the ordered data stored in the block 21. As a result, the block 21 is registered after approval by a plurality of nodes 10 different from the leader node, so that the correctness of the ordered data is more reliably guaranteed.

データ管理システム1は、リーダノードにおいて、格納した順序付きデータに対する自ノードの署名又は検証ノードの署名に基づいて、次のリーダノード及び検証ノードのIDであるハッシュ値を算出する。
したがって、データ管理システム1は、データの正当性を保証する署名に基づいてハッシュ値を算出することで、正当なリーダノード及び検証ノードを一意に決定できる。
The data management system 1 calculates a hash value which is an ID of the next leader node and the verification node based on the signature of the own node or the signature of the verification node for the stored ordered data in the reader node.
Therefore, the data management system 1 can uniquely determine the legitimate leader node and the verification node by calculating the hash value based on the signature that guarantees the legitimacy of the data.

データ管理システム1は、ブロックチェーン20に登録する最初のブロック21について、リーダノード及び検証ノードを所定の定数に基づくハッシュ値により指定する。これにより、データ管理システム1は、ブロックチェーン20の運用開始時からDHTに基づくリーダノード及び検証ノードの指定が可能となる。 The data management system 1 designates a leader node and a verification node by hash values based on predetermined constants for the first block 21 to be registered in the blockchain 20. As a result, the data management system 1 can specify the leader node and the verification node based on the DHT from the start of the operation of the blockchain 20.

データ管理システム1は、所定数以上の検証ノードにより承認されたことを条件に、グループ署名を付加したブロック21を登録する。
したがって、データ管理システム1は、署名を返信しない一部の検証ノードによりブロック21が登録されない事態を抑制でき、利便性を向上できる。
また、データ管理システム1は、検証ノードによる承認が所定数に満たない場合には、順序付きデータを含まない空のブロック21を生成してブロックチェーン20に登録することで、否認の実績を記録しつつ、新たなブロック21により正当な順序付きデータを格納できる。
The data management system 1 registers the block 21 with the group signature on the condition that it is approved by a predetermined number or more of the verification nodes.
Therefore, the data management system 1 can suppress the situation where the block 21 is not registered by some verification nodes that do not return the signature, and can improve the convenience.
Further, when the approval by the verification node is less than the predetermined number, the data management system 1 generates an empty block 21 that does not include the ordered data and registers it in the blockchain 20 to record the result of the denial. While doing so, the new block 21 can store legitimate ordered data.

以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。 Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments. Moreover, the effects described in the above-described embodiments are merely a list of the most preferable effects arising from the present invention, and the effects according to the present invention are not limited to those described in the embodiments.

データ管理システム1によるデータ管理方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。 The data management method by the data management system 1 is realized by software. When realized by software, the programs that make up this software are installed in the information processing device (computer). Further, these programs may be recorded on a removable medium such as a CD-ROM and distributed to the user, or may be distributed by being downloaded to the user's computer via a network. Further, these programs may be provided to the user's computer as a Web service via a network without being downloaded.

1 データ管理システム
10 ノード
11 制御部
12 記憶部
20 ブロックチェーン
21 ブロック
111 ブロック生成部
112 ブロック登録部
113 ブロック承認部
1 Data management system 10 nodes 11 Control unit 12 Storage unit 20 Blockchain 21 Block 111 Block generation unit 112 Block registration unit 113 Block approval unit

Claims (10)

分散ハッシュテーブルにより定義されたハッシュ関数の値域に対応付けられた複数のノードを備え、
前記ノードは、
1又は複数の順序付きデータを格納したブロックを生成するブロック生成部と、
前記ブロックをブロックチェーンに登録するブロック登録部と、を備え、
前記ブロック生成部は、前記ハッシュ関数を用いて前記順序付きデータに基づく第1のハッシュ値を算出し、前記ブロックチェーンにより順序付けられる次のブロックを生成するリーダノードを指定するIDとして、前記第1のハッシュ値を前記ブロックに格納し、
前記複数のノードのうち、指定された前記リーダノードのみが前記次のブロックを生成するデータ管理システム。
It has multiple nodes associated with the range of the hash function defined by the distributed hash table.
The node
A block generator that generates a block that stores one or more ordered data,
A block registration unit for registering the block in the blockchain is provided.
The block generation unit calculates a first hash value based on the ordered data using the hash function, and uses the hash function as an ID for designating a leader node that generates the next block ordered by the blockchain. The hash value of is stored in the block,
A data management system in which only the designated leader node among the plurality of nodes generates the next block.
前記ブロック生成部は、前記順序付きデータに対する自ノードによる署名に基づいて、前記第1のハッシュ値を算出する請求項1に記載のデータ管理システム。 The data management system according to claim 1, wherein the block generation unit calculates the first hash value based on the signature of the ordered data by its own node. 前記ブロックチェーンにおける最初のブロックを生成する前記リーダノードは、所定の定数に基づく前記第1のハッシュ値により指定される請求項1又は請求項2に記載のデータ管理システム。 The data management system according to claim 1 or 2, wherein the leader node that generates the first block in the blockchain is designated by the first hash value based on a predetermined constant. 前記ノードは、前記リーダノードにより生成された前記ブロックを承認するブロック承認部を備え、
前記ブロック生成部は、前記ブロックを生成する際に、前記ハッシュ関数を用いて前記順序付きデータに基づく第2のハッシュ値を算出し、前記次のブロックを承認する検証ノードを指定するIDとして、当該第2のハッシュ値を前記ブロックに格納し、
前記ブロック登録部は、前記ブロックチェーンにより順序付けられた前のブロックにより指定された検証ノードにより承認されたことを条件に、当該検証ノードの署名を付加した前記ブロックを前記ブロックチェーンに登録する請求項1から請求項3のいずれかに記載のデータ管理システム。
The node includes a block approval unit that approves the block generated by the leader node.
When generating the block, the block generation unit calculates a second hash value based on the ordered data using the hash function, and uses the hash function as an ID for designating a verification node that approves the next block. The second hash value is stored in the block,
A claim that the block registration unit registers the block with the signature of the verification node in the blockchain, provided that it is approved by the verification node specified by the previous block ordered by the blockchain. The data management system according to any one of 1 to 3.
前記ブロック生成部は、前記順序付きデータに対する前記検証ノードによる署名に基づいて、前記第1のハッシュ値及び前記第2のハッシュ値を算出する請求項4に記載のデータ管理システム。 The data management system according to claim 4, wherein the block generation unit calculates the first hash value and the second hash value based on the signature of the ordered data by the verification node. 前記ブロックチェーンにおける最初のブロックを承認する前記検証ノードは、所定の定数に基づく前記第2のハッシュ値により指定される請求項4又は請求項5に記載のデータ管理システム。 The data management system according to claim 4 or 5, wherein the verification node that approves the first block in the blockchain is designated by the second hash value based on a predetermined constant. 前記検証ノードは、複数の前記第2のハッシュ値により複数指定され、
前記ブロック登録部は、所定数以上の前記検証ノードにより承認されたことを条件に、当該所定数以上の前記検証ノードのグループ署名を付加した前記ブロックを前記ブロックチェーンに登録する請求項4から請求項6のいずれかに記載のデータ管理システム。
The verification node is designated by a plurality of the second hash values, and is designated by a plurality of the verification nodes.
The block registration unit claims from claim 4 to register the block to which the group signature of the predetermined number or more of the verification nodes is added in the blockchain, provided that the block is approved by the predetermined number or more of the verification nodes. The data management system according to any one of item 6.
前記ブロック生成部は、前記検証ノードによる承認が前記所定数に満たない場合、前記順序付きデータを含まないブロックを生成する請求項7に記載のデータ管理システム。 The data management system according to claim 7, wherein the block generation unit generates a block that does not include the ordered data when the approval by the verification node is less than the predetermined number. 分散ハッシュテーブルにより定義されたハッシュ関数の値域に対応付けられた複数のノードが、
1又は複数の順序付きデータを格納したブロックを生成するブロック生成ステップと、
前記ブロックをブロックチェーンに登録するブロック登録ステップと、を実行し、
前記ブロック生成ステップにおいて、前記ハッシュ関数を用いて前記順序付きデータに基づく第1のハッシュ値を算出し、前記ブロックチェーンにより順序付けられる次のブロックを生成するリーダノードを指定するIDとして、前記第1のハッシュ値を前記ブロックに格納し、
前記複数のノードのうち、指定された前記リーダノードのみが前記次のブロックを生成するデータ管理方法。
Multiple nodes associated with the range of the hash function defined by the distributed hash table
A block generation step that generates a block that stores one or more ordered data, and
The block registration step of registering the block in the blockchain and the block registration step are executed.
In the block generation step, the first hash value is calculated based on the ordered data using the hash function, and the first ID is used as an ID for designating a leader node that generates the next block ordered by the blockchain. The hash value of is stored in the block,
A data management method in which only the designated leader node among the plurality of nodes generates the next block.
分散ハッシュテーブルにより定義されたハッシュ関数の値域に対応付けられた複数のノードに、
1又は複数の順序付きデータを格納したブロックを生成するブロック生成ステップと、
前記ブロックをブロックチェーンに登録するブロック登録ステップと、を実行させ、
前記ブロック生成ステップにおいて、前記ハッシュ関数を用いて前記順序付きデータに基づく第1のハッシュ値を算出させ、前記ブロックチェーンにより順序付けられる次のブロックを生成するリーダノードを指定するIDとして、前記第1のハッシュ値を前記ブロックに格納させ、
前記複数のノードのうち、指定された前記リーダノードのみに前記次のブロックを生成させるためのデータ管理プログラム。
To multiple nodes associated with the range of the hash function defined by the distributed hash table,
A block generation step that generates a block that stores one or more ordered data, and
The block registration step of registering the block in the blockchain and the block registration step are executed.
In the block generation step, the first hash value is calculated based on the ordered data using the hash function, and the first ID is used as an ID for designating a leader node that generates the next block ordered by the blockchain. The hash value of is stored in the block,
A data management program for causing only the designated leader node among the plurality of nodes to generate the next block.
JP2018133453A 2018-07-13 2018-07-13 Data management system, data management method and data management program Active JP6859293B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018133453A JP6859293B2 (en) 2018-07-13 2018-07-13 Data management system, data management method and data management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018133453A JP6859293B2 (en) 2018-07-13 2018-07-13 Data management system, data management method and data management program

Publications (2)

Publication Number Publication Date
JP2020014056A JP2020014056A (en) 2020-01-23
JP6859293B2 true JP6859293B2 (en) 2021-04-14

Family

ID=69169785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018133453A Active JP6859293B2 (en) 2018-07-13 2018-07-13 Data management system, data management method and data management program

Country Status (1)

Country Link
JP (1) JP6859293B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527912B (en) * 2021-02-07 2021-06-01 腾讯科技(深圳)有限公司 Data processing method, device and computer equipment based on blockchain network
CN115033644B (en) * 2022-06-24 2025-07-04 北京航天奥祥通风科技股份有限公司 Genesis block generation method and device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5141494B2 (en) * 2008-10-27 2013-02-13 ブラザー工業株式会社 Content distributed storage system, special content acquisition method, node device, and node processing program
JP5477325B2 (en) * 2011-04-05 2014-04-23 ブラザー工業株式会社 Information processing apparatus, program, distribution system, and information providing method
JP6056453B2 (en) * 2012-12-20 2017-01-11 富士通株式会社 Program, data management method, and information processing apparatus
JP5758449B2 (en) * 2013-07-16 2015-08-05 日本電信電話株式会社 Data rearrangement apparatus, method and program
WO2017170912A1 (en) * 2016-03-31 2017-10-05 株式会社bitFlyer Transaction processing device, transaction processing method, and program for same
US10554746B2 (en) * 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration

Also Published As

Publication number Publication date
JP2020014056A (en) 2020-01-23

Similar Documents

Publication Publication Date Title
JP7732052B2 (en) Computer-implemented method and system for validating tokens for blockchain-based cryptocurrencies
EP3613189B1 (en) Secure blockchain-based consensus
JP6877448B2 (en) Methods and systems for guaranteeing computer software using distributed hash tables and blockchain
CN113486089B (en) Methods and apparatus for distributed databases within a network
CN112544053B (en) Methods, systems, computer program products, and computer readable media for determining data blocks and for providing time stamped transactions
CN110009349B (en) Method and device for generating and verifying linkable ring signature in blockchain
JP2023106055A (en) Evidence management method, evidence management system and node
CN113989047A (en) Asset publishing method and device based on block chain and electronic equipment
JP2023076628A (en) Computer-implemented systems and methods related to binary blockchains forming a pair of coupled blockchains
TW201732706A (en) Blockchain implementation of intelligent contract registration and automated management methods
US11151122B2 (en) Distributed ledger data linkage management
WO2020182430A1 (en) Methods of electing leader nodes in a blockchain network using a role-based consensus protocol
JP2024029184A (en) Computer-implemented system and method for an accumulator-based protocol for distribution of tasks between computer networks
CN110048851B (en) Method and device for generating and verifying multi-layer linkable ring signatures in blockchain
WO2022217807A1 (en) Blockchain consensus node selection method and apparatus, and computer device and storage medium
CN110910110B (en) A data processing method, device and computer storage medium
US20240340183A1 (en) Method for securing private structured databases within a public blockchain
CN109981586B (en) A node marking method and device
JP6859293B2 (en) Data management system, data management method and data management program
EP4325767A1 (en) Generation of a non-fungible token
JP7798875B2 (en) Secure multi-distributed ledger system
JP7073240B2 (en) Blockchain management system, blockchain management method and blockchain management program
CN117473557B (en) Trusted setting method and device
Sigwart et al. Towards cross-blockchain transaction verifications
Maaliw III et al. Artificial intelligence and blockchain-based optimized and fair payment scheme over cloud computing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200601

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210325

R150 Certificate of patent or registration of utility model

Ref document number: 6859293

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150