WO2019038839A1 - ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム - Google Patents
ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム Download PDFInfo
- Publication number
- WO2019038839A1 WO2019038839A1 PCT/JP2017/029998 JP2017029998W WO2019038839A1 WO 2019038839 A1 WO2019038839 A1 WO 2019038839A1 JP 2017029998 W JP2017029998 W JP 2017029998W WO 2019038839 A1 WO2019038839 A1 WO 2019038839A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- ledger
- reference information
- chain management
- block chain
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Definitions
- the present invention relates to a block chain management device, a block chain management method, and a program, and relates to a block chain management device, a block chain management method, and a program for managing a common ledger among a plurality of nodes participating in a network.
- Non-Patent Document 1 a peer-to-peer (P2P) network in which anyone can participate without requiring a central management server is common among all nodes participating in the network.
- P2P peer-to-peer
- a block chain represented by Bitcoin is a system in which a plurality of block chain management nodes (block chain management devices) are interconnected.
- the block chain management node comprises ledger storage means, transaction verification means and agreement forming means.
- the ledger storage means stores a transaction issued from a transaction issuer who issues history information (hereinafter referred to as "transaction") stored on the block chain.
- the transaction verification means verifies the transaction.
- the agreement forming unit performs processing (referred to as “consensus formation”, also referred to as “mining”) to make the contents of transactions accumulated between block chain management nodes identical.
- the transaction stored in the ledger storage means has a feature that a unit of aggregating one or more transactions as a data structure is a block, and a block header including at least a hash value of a previous block is included in the block.
- a set of blocks accumulated in this manner is called a ledger.
- each block chain management node receives one or more transaction information issued by one or more transaction issuers.
- the transaction verification means verifies the received one or more pieces of transaction information, and aggregates at least one or more transactions passed the verification to create a block.
- the contents of blocks may be different in each block chain management node. For this reason, the agreement formation means makes the content of the block to accumulate
- the agreement forming means stores the same block in each block chain management node in the ledger storage means.
- blockchain management nodes are designed to have an incentive to receive transactions and correctly generate and accumulate blocks. For example, in bitcoin, a block chain management node can obtain a virtual currency by generating a block. Because of this, many blockchain management nodes behave as if they perform block verification / generation correctly.
- Patent Document 1 discloses a virtual currency management program and a virtual currency management method that can reduce the processing capacity and storage capacity of a terminal necessary for the described agreement formation (mining).
- the existing block chain technology represented by Bitcoin does not take a hash value for the whole block, but takes the hash value only for the block header and includes it in the next block.
- the block header mainly includes a hash value of the immediately preceding block, a hash value generated based on all transactions included in the block, and the like. In this case, verification of the hash value of the block header does not require detailed information on each transaction.
- stale transactions do not need to be kept if they are not needed when validating new blocks and transactions.
- a transaction includes input information specifying a plurality of coins to be used and output information representing a plurality of new coins generated by the transaction, and a transaction necessary for verifying a new transaction is This is only a transaction in which unused coins remain in the coins included in the output information, and when all coins included in the transaction are used, they are never referred to at the verification time.
- paragraph 0005 of Patent Document 1 states that "the terminal used for mining needs to store all the transaction history in its own terminal", which is represented by the above bitcoin Such need is eliminated with blockchain technology.
- An object of the present invention is to provide a block chain management device, a block chain management method, and a program capable of reducing the possibility of losing important data included in a ledger in the form of transactions in a block chain management node.
- a block including a block header including at least one summary value of reference information selected from a predetermined range of a ledger based on a predetermined rule negotiated between block chain management devices is received.
- a block chain management device is provided that comprises a block receiver. The block chain management device further selects reference information from a predetermined range of the ledger based on the predetermined rule, and a summary value of reference information included in the block is generated based on the reference information. And a block verification unit that verifies that the block has been correctly generated.
- the block chain management device further includes an agreement forming unit for forming an agreement with the other block chain management device for writing the block when the block verification unit verifies that the block is correctly generated.
- the block chain management apparatus comprises: a ledger storage unit for storing the agreed block.
- receiving a block including a block header including at least one summary value of reference information selected based on a predetermined rule from a predetermined range of the ledger; Select reference information from a range based on a predetermined rule, and verify that the block is correctly generated depending on whether the abstract value of the reference information included in the block is generated based on the reference information The steps of: (d) performing the agreement for writing the block with another block chain management device when the block verifies that the block is correctly generated by the verification; And providing a block chain management method.
- the method is linked to a specific machine, a block chain management device that manages a common ledger in coordination with other block chain management devices.
- a computer program for realizing the functions of the block chain management device described above can be recorded on a computer readable (non-transient) storage medium. That is, the present invention can also be embodied as a computer program product.
- connection lines between blocks such as drawings referred to in the following description include both bidirectional and unidirectional directions.
- the unidirectional arrows schematically indicate the flow of main signals (data), and do not exclude bidirectionality.
- a block chain management apparatus 100A including a block reception unit 101, a block verification unit 102, an agreement formation unit 103, and a ledger storage unit 104. It can be realized by a configuration in which block chain management apparatuses 100B having equivalent functions are connected in a peer-to-peer manner.
- the block reception unit 101 uses the other block chain management devices to extract the summary value of the reference information selected from the predetermined range of the ledger based on the predetermined rules negotiated between the block chain management devices.
- the block verification unit 102 selects reference information from a predetermined range of the ledger based on the predetermined rule, and a summary value of the reference information included in the block is generated based on the reference information. To verify that the received block was correctly generated.
- the agreement formation unit 103 performs agreement formation with the other block chain management apparatus for writing the block.
- the ledger storage unit 104 stores the agreed block.
- an incentive for holding transactions in the block chain management node is provided, and as many transactions as possible can be held by the block chain management node.
- the block verification unit 102 of the block chain management apparatus (for example, the block chain management apparatus 100A) described above includes a summary value of reference information that can not be generated without knowing the reference information that is partial information of the ledger, Judge that the block is correct. For this reason, a certain block chain management device 100B needs to access arbitrary partial information in the ledger in order to generate a block. On the other hand, it is better to have fewer nodes that can generate blocks in order to maximize block creation incentives. From these things, it is difficult for a block chain management device that does not have sufficient ledger information to generate blocks to acquire reference information from other block chain management devices, and each block chain management device is Will keep as much information as possible. As a result, more transactions are kept.
- FIG. 2 is a diagram showing the configuration of the first embodiment of the present invention.
- a configuration in which four block chain management devices (block chain management nodes) 100 are connected to one another is shown. These block chain management devices 100 verify the transaction received from the transaction issuer. Then, the transactions that passed the verification are aggregated to create a block. The block chain management device 100 that has created the blocks distributes the created blocks to other block chain management devices 100. Each block chain management device 100 verifies the legitimacy and adds the contents of the block to the ledger. In the above process, since the block chain management apparatus 100 can be a block creation subject, blocks having different contents may be created.
- FIG. 3 is a functional block diagram showing the configuration of the block chain management device of the first embodiment of the present invention.
- a block chain management apparatus 100 including a block reception unit 110, a block verification unit 120, an agreement formation unit 130, and a ledger storage unit 140 is shown.
- the block reception unit 110 receives the block B transmitted to the block chain network.
- This block B is configured by adding a block header BH to one or more transactions, as shown in FIG.
- this block header BH is based on a block header summary value (Hash in FIG. 4) summarizing the block header included in the immediately preceding block and reference information which is partial information of a ledger specified by a specific rule.
- the generated summary value of at least one reference information (hereinafter “reference information summary value”) is included.
- the reference information is also included in the case of multiple parts of the ledger. In this case, a plurality of reference information is provided, and one or more reference information summary values are generated from the plurality of reference information.
- the block verification unit 120 includes a reference information verification unit 121 and a reference information determination unit 122, and verifies that the received block is correctly generated.
- the reference information determination unit 122 determines reference information which is partial information of a ledger based on a part or all of the information of the ledger, using a definitive rule (predetermined rule).
- the reference information verification unit 121 verifies that the reference information summary value is generated based on the reference information.
- the definitive rule means a rule that allows all block chain management devices 100 to specify the same reference information which is the same partial information from the information in the ledger.
- the agreement forming unit 130 carries out an agreement forming procedure with the other block chain management apparatus to agree whether or not to store the received block if it is determined that the block verification unit 120 has correctly generated the block. Do.
- the ledger storage unit 140 stores a part or all of a ledger which is a set of all blocks agreed upon by the consensus forming unit 130.
- the block reception unit 110 receives a block from another block chain management apparatus 100 or the like (step A1).
- this block B is a block header summary value (Hash) obtained by summarizing the block header of the immediately preceding block in a body which is a set of transactions, and a value called Nonce used by the consensus forming unit 130.
- a block header including a reference information summary value is a block header summary value (Hash) obtained by summarizing the block header of the immediately preceding block in a body which is a set of transactions.
- Nonce used by the consensus forming unit 130.
- a block header including a reference information summary value a reference information summary value.
- the block verification unit 120 verifies the received block B (step A2).
- the contents of the verification here will be described later using the flowchart of FIG.
- the block chain management device 100 discards the block (step A4).
- step A3 when it is determined that the block is correctly generated (Yes in step A3), the agreement formation unit 130 forms an agreement with the other block chain management apparatus 100 (step A5).
- step A5 The method of forming this agreement will be described later using the flowchart of FIG.
- FIG. 6 is a view showing an example of the ledger data held in the ledger storage unit 140. As shown in FIG. The example of FIG. 6 shows a state in which blocks of block height 501 are added as a result of consensus building.
- the storage mode of the ledger in the ledger storage unit 140 is not limited to the example shown in FIG. 6, and various changes can be made. For example, in the example of FIG. 6, the height of the block and the block body are associated with each other, but the present invention is not limited to this form.
- block verification processing by the block verification unit 120 in step A2 of FIG. 5 will be described in detail using the flowchart of FIG.
- the block chain management apparatus 100 will be described as having received the block shown in FIG.
- the reference information determination unit 122 of the block verification unit 120 When a block to be verified is input, first, the reference information determination unit 122 of the block verification unit 120 generates at least one identifier capable of identifying partial information in the ledger according to a definitive rule. , Designated as reference information (step B1).
- the height of a block can be used as the identifier of the reference information.
- the following can be used as a rule (deterministic rule) for specifying reference information. Create a hexadecimal number using a hash function such as SHA-256 for part of the immediately preceding block (such as the value of Nonce and the hash value of the immediately preceding block). • Add 1 to the value obtained by performing the remainder operation with the latest block height for a part of this number (such as the lower few digits). By using such a rule, it is possible to determine which block of height is to be designated as reference information between 1 and the current block height.
- the hash value of the block immediately before that included in the block of 500 that is the block immediately before in the ledger shown in FIG. 6 (that is, the hash value of the block header of 499 height). Take a hash value.
- a value of ‘9a796cbfa5cc884d7f3e7ddf6c743dfeb9a78e876766d3243e893e4ded4e638d ' is obtained as the hash value.
- the identifier of reference information and the determination method are not this limitation.
- the identifier of the reference information may be composed of a plurality of pieces of information such as the height of the block and the number identifying the transaction in the block.
- an identifier composed of the plurality of pieces of information may be acquired from a plurality of partial information of the immediately preceding block, or may be respectively generated from a plurality of closest blocks or the like.
- a plurality of identifiers of reference information may exist, and a plurality of reference information may be designated.
- the identifier for selecting the reference information may be any identifier as long as an incentive works to hold the data of the ledger more in a longer period, and the form thereof as long as the information can identify the reference information from the ledger. It does not matter. Further, the identifier of the reference information is a decisive rule, and as long as the partial information of the ledger is selected uniformly to a certain extent, the determination method does not matter.
- the reference information verification unit 121 acquires one or more pieces of reference information from the ledger based on the identifiers of the one or more pieces of reference information determined by the reference information determination unit 122 (step B2).
- a block having a height of 294 is acquired as reference information from the ledger shown in FIG.
- the reference information verification unit 121 verifies that at least one reference information summary value included in the received block is generated based on the reference information, and returns the result of the verification as positive or negative (Ste B3).
- the hash value calculated by the hash function such as SHA-256 for the reference information which is the block of height 294 shown in FIG. 6 in step B2 matches the reference information summary value included in the block of FIG. 4 Perform verification with.
- the hash value of the block of height 294 which is the reference information is ‘678e82 d 907 d 3 e 6 f 71 D 3 cf 3 ddacc 3 671 618 c 38 1 b 7 9 9 93 a 83 d 0 25 b 296 ′
- the method of verification is not limited to the above method, as long as it can be verified that the reference information summary value is generated from the reference information.
- agreement formation processing by the agreement formation unit 130 in step A5 of FIG. 5 will be described in detail using the flowchart of FIG.
- agreement formation by a mechanism called Proof of Work adopted in Bitcoin will be described, but any other agreement formation method may be used, and there is no limitation on the method of agreement formation.
- the agreement formation unit 130 acquires a hash value of the block (step C1).
- the hash value may be taken for the whole block, or may be taken for the value which summarized the feature of the block.
- the value “0000000000000000000000000000000000000000bcad85e7b40d3a4” is obtained in hexadecimal as the hash value of the block shown in FIG. 4.
- the agreement formation unit 130 determines whether the hash value of the block is smaller than the target value, and determines that agreement formation is possible when the hash value of the block is small (step C2).
- the target value may be a value specific to the system in advance, or may be calculated and generated with reference to the previous block.
- the target value for the block shown in FIG. 4 is “000000000000000000000000000000000000000000000000000”, it is determined that agreement formation has been achieved because the hash value of the block in FIG. 4 described above ⁇ the target value.
- Such a method of consensus building is called Proof of Work, and when generating a block, the value called Nonce is changed as shown in the block of FIG. 4 so that the hash value of the block becomes smaller than the target value.
- the block chain management device 100 needs to try Nonce in a round-robin manner. For this reason, block generation requires a certain amount of calculation cost and time.
- the time taken to generate a block can be controlled by a target value, for example, in the case of bitcoins, it is adjusted so that the time taken to generate a block will be about 10 minutes from the generation interval of the latest several blocks.
- the consensus forming unit 130 using the proof of work can verify whether the block is generated by multiplying the calculation cost by the hash value of the block.
- Most of the block chain management devices 100 participating in the block chain network verify the hash value of the block according to the same rule, and the block storing only the blocks that have passed the verification in the ledger storage unit 140 makes the network Overall, we can form an agreement.
- an incentive for holding transactions can be made to work, and more transactions are held in the block chain management apparatus 100. become.
- the reference information verification unit 121 of the block verification unit 120 is generated from reference information which is partial information of a ledger determined by a definitive rule, and the abstract value of the reference information included in the block. Only if it is verified that there is a block is determined to be correct. Then, the agreement forming unit 130 forms an agreement with the other block chain management apparatus 100, and the agreed-formed block is stored in the ledger storage unit 140. For this reason, in order for the block chain management device 100 to generate a block to be registered in the ledger, it is necessary to access arbitrary partial information in the ledger.
- the block chain management apparatus 100 receives the transaction from the transaction issuer and generates a block in the above embodiment, the block chain management apparatus 100 may have these functions.
- the block chain management device 100C may include the transaction reception unit 150 and the block generation unit 160 (second embodiment).
- the transaction receiving unit 150 receives a transaction from a transaction issuer or another block chain management device 100 (see (1) in FIG. 10). Then, the block generation unit 160 combines the hash value of the immediately preceding block stored in the ledger storage unit 140 and the reference information summary value summarizing the reference information determined by the reference information determination unit 122 with one or more received transactions. Block is generated and distributed to another block chain management apparatus 100 ((2) in FIG. 10). Then, the block generated by the block generation unit 160 is a block that satisfies a certain condition (that is, a summary value of reference information selected using a definitive rule) in order to form a consensus in the above-described Proof of Work. It is desirable that it is a block).
- a certain condition that is, a summary value of reference information selected using a definitive rule
- the present invention is also applicable to the block chain management apparatus 100 having the function of receiving transactions and generating blocks.
- the present invention is not limited to the above-mentioned embodiment, and further modification, substitution, adjustment in the range which does not deviate from the basic technical idea of the present invention Can be added.
- the network configuration shown in each drawing, the configuration of each element, the representation form of a ledger, a block and the like are an example for assisting the understanding of the present invention, and are not limited to the configuration shown in these drawings. .
- each unit (processing means) of the block chain management apparatus shown in FIGS. 1, 3 and 9 is a computer program that causes a processor mounted on the block chain management apparatus to execute the above-described processing using its hardware. It can also be realized by
- the above-mentioned predetermined rule can be used that use all or part of the information of one or more recent blocks to determine reference information.
- the above-mentioned predetermined rule is One or more identifiers for identifying partial information of the ledger are calculated using the partial or all information of the ledger as input, and one or more reference information is calculated from the ledger based on the one or more identifiers. It may be a rule to extract [Fourth embodiment] The height of one or more blocks can be used as an identifier for identifying partial information of the ledger described above.
- identifier for identifying partial information of the ledger described above information for identifying the height of one or more blocks and a transaction can be used.
- the identifier is preferably determined in the range of 0 to the height of the latest block stored in the ledger.
- the block chain management device mentioned above further, A transaction receiver that receives transactions from other devices; A hash value calculated from the latest block stored in the ledger storage unit, and a block generation unit that collectively generates one or more transactions received by the transaction reception unit may be provided.
- the block generation unit of the block chain management device described above The block may be generated such that a hash value calculated from the block according to a predetermined rule is compared with a predetermined target value to satisfy a predetermined condition.
- a hash value calculated from the block according to a predetermined rule is compared with a predetermined target value to satisfy a predetermined condition.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本発明は、ブロックチェーン管理ノードにおいてトランザクションの形で台帳に含まれる重要なデータの消失可能性を低減させる。ブロックチェーン管理装置は、ブロックチェーン管理装置間で取り決めた所定のルールに基づいて台帳の所定の範囲の中から選択した参照情報の要約値を含むブロックヘッダを含むブロックを受信するブロック受信部と、前記所定のルールに基づいて前記台帳の所定の範囲の中から参照情報を選択し、前記ブロックに含まれる参照情報の要約値が前記参照情報に基づいて生成されているか否かにより、ブロックが正しく生成されたことを検証するブロック検証部と、前記ブロック検証部により前記ブロックが正しく生成されたと検証された場合に、他のブロックチェーン管理装置と当該ブロックを書き込むことに対して合意形成を行う合意形成部と、前記合意形成された前記ブロックを格納する台帳格納部と、を備える。
Description
本発明は、ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラムに関し、ネットワークに参加する複数のノード間で共通の台帳を管理するブロックチェーン管理装置、ブロックチェーン管理方法及びプログラムに関する。
近年、ビットコイン(非特許文献1を参照)を代表として、中央管理サーバーを必要とせず誰もが参加可能なピアツーピア(Peer to Peer:P2P)ネットワークで、ネットワークに参加するすべてのノード間で共通の台帳を管理することが可能なブロックチェーンの普及が拡大している。
ビットコインに代表されるブロックチェーンは、複数のブロックチェーン管理ノード(ブロックチェーン管理装置)が相互接続されたシステムである。ブロックチェーン管理ノードは、台帳格納手段と、トランザクション検証手段と合意形成手段とを備える。台帳格納手段は、ブロックチェーン上に蓄積する履歴情報(以下、「トランザクション」と呼ぶ)を発行するトランザクション発行者から発行されたトランザクションを蓄積する。トランザクション検証手段は、トランザクションを検証する。合意形成手段は、ブロックチェーン管理ノード間で蓄積するトランザクションの内容を同一にする処理(「合意形成」という。「マイニング」とも呼ばれる。)を行う。台帳格納手段に蓄積されるトランザクションはデータ構造として一つまたは複数のトランザクションを集約した単位をブロックとし、当該ブロックの中に少なくとも前のブロックのハッシュ値を含むブロックヘッダを含むという特徴を持つ。このように蓄積されたブロックの集合を台帳と呼ぶ。
そして、ブロックチェーンは概略以下のように動作する。各ブロックチェーン管理ノードは一人または複数のトランザクション発行者から発行された一つまたは複数のトランザクション情報を受信する。トランザクション検証手段は、受信した一つまたは複数のトランザクション情報の検証を行い、検証を通過した少なくとも一つ以上のトランザクションを集約してブロックを作成する。各ブロックチェーン管理ノードでブロックの内容は異なりうる。このため、合意形成手段が、ブロックチェーン管理ノード間で蓄積するブロックの内容を同一にする。合意形成手段により各ブロックチェーン管理ノードで同一となったブロックが台帳格納手段に格納される。
また、ブロックチェーン管理ノードにはトランザクションを受け取り、ブロックを正しく生成・蓄積していくことにインセンティブがあるように設計される。例えば、ビットコインでは、ブロックを生成することで、ブロックチェーン管理ノードが仮想通貨を得ることができる。このため、多くのブロックチェーン管理ノードは正しくブロックの検証・生成を行うようにふるまう。
このような構成及び動作により、ブロックチェーン管理ノードとして悪意のあるノードが参加した場合でも改ざんが困難かつ、各ブロックチェーン管理ノードで台帳の内容が同一となり、トランザクションが同一の順序で蓄積されていく。
また、ブロックチェーンは上述した構成及び動作をするブロックチェーン管理ノードが複数存在し、すべてのデータを複製して管理することから、データが改ざんされないことに加えて、データの消失が起こらないことも期待されている。このようなブロックチェーンの性質を利用して、トランザクションの形でデータを登録してブロックチェーンをデータベースシステムとして利用するようなサービスが出現している。
特許文献1には、記した合意形成(マイニング)に必要な端末の処理能力及び記憶容量を低減することができるという仮想通貨管理プログラム及び仮想通貨管理方法が開示されている。
Satoshi Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System",2008
以下の分析は、本発明によって与えられたものである。上記した典型的なブロックチェーンの枠組みにおいて、ブロックチェーン管理ノードが個々のトランザクションを保持するモチベーションは、インセンティブを得るために、新たなブロックを生成したりトランザクションやブロックを検証するためにあり、そのような処理に必要の無い余分なデータを保持するモチベーションは低くなる傾向にある。以下、この点について検討する。
ビットコインに代表される既存のブロックチェーン技術は、ブロック全体に対するハッシュ値を取るのではなく、ブロックヘッダに対してのみハッシュ値を取り次のブロックへ含める。ブロックヘッダには主に直前のブロックのハッシュ値、ブロックに含められたすべてのトランザクションを基に生成されたハッシュ値などが含まれる。この場合、ブロックヘッダのハッシュ値の検証には個々のトランザクションの詳細な情報は必要ない。
また、古くなったトランザクションは、新しいブロック及びトランザクションを検証する際に必要ないのであれば保持する必要はない。たとえば、ビットコインではトランザクションは、複数の使用するコインを指定するインプット情報とトランザクションによって生成される複数の新しいコインを表すアウトプット情報を含んでおり、新しいトランザクションを検証する際に必要なトランザクションは、アウトプット情報に含まれるコインに未使用なものが残っているトランザクションのみであり、トランザクションに含まれるすべてのコインが使用済みである場合には二度と検証時に参照されない。この点、特許文献1の段落0005には、「マイニングに用いる端末には、取引の履歴すべてを自端末に保存しておく必要がある」との記載があるが、上記ビットコインに代表されるブロックチェーン技術ではそのような必要は無くなっている。
つまり、既存のブロックチェーンではブロックヘッダのハッシュの検証及び新しいブロックの検証に必要の無いトランザクションが存在するにも拘わらず、それらのトランザクションを保持し続けるモチベーションがブロックチェーン管理ノードにないため、一部のトランザクションが失われる可能性がある。ビットコインでは実際に不必要なトランザクションを捨てて台帳の容量を削減できるモードが実装されている。
このため、ブロックチェーン上にトランザクションの形でデータを登録してデータベースシステムとして利用するサービスは、データが消失してサービスの提供が困難になる可能性がある。
このように、背景技術に記載したブロックチェーンでは、ブロックチェーン管理ノードが台帳に含まれるトランザクションを永続的に保持するモチベーションが低いため、トランザクションの形で台帳に含まれる重要なデータが消失する可能性があるという問題点がある。これは、ブロックチェーンをデータベースシステムとして利用するサービスにとって特に問題となりうる。
本発明は、ブロックチェーン管理ノードにおいてトランザクションの形で台帳に含まれる重要なデータの消失可能性を低減させることのできるブロックチェーン管理装置、ブロックチェーン管理方法及びプログラムを提供することを目的とする。
第1の視点によれば、ブロックチェーン管理装置間で取り決めた所定のルールに基づいて台帳の所定の範囲の中から選択した参照情報の要約値を少なくとも一つ含むブロックヘッダを含むブロックを受信するブロック受信部を備えるブロックチェーン管理装置が提供される。このブロックチェーン管理装置は、さらに、前記所定のルールに基づいて前記台帳の所定の範囲の中から参照情報を選択し、前記ブロックに含まれる参照情報の要約値が前記参照情報に基づいて生成されているか否かにより、ブロックが正しく生成されたことを検証するブロック検証部を備える。このブロックチェーン管理装置は、さらに、前記ブロック検証部により前記ブロックが正しく生成されたと検証された場合に、他のブロックチェーン管理装置と当該ブロックを書き込むことに対して合意形成を行う合意形成部を備える。このブロックチェーン管理装置は、前記合意形成された前記ブロックを格納する台帳格納部と、を備える。
第2の視点によれば、台帳の所定の範囲の中から所定のルールに基づいて選択した参照情報の要約値を少なくとも一つ含むブロックヘッダを含むブロックを受信するステップと、前記台帳の所定の範囲の中から所定のルールに基づいて参照情報を選択し、前記ブロックに含まれる参照情報の要約値が前記参照情報に基づいて生成されているか否かにより、ブロックが正しく生成されたことを検証するステップと、前記検証により前記ブロックが正しく生成されたと検証された場合に、他のブロックチェーン管理装置と当該ブロックを書き込むことに対して合意形成を行うステップと、前記合意形成された前記ブロックを格納するステップと、を含むブロックチェーン管理方法が提供される。本方法は、他のブロックチェーン管理装置と連携して共通の台帳を管理するブロックチェーン管理装置という、特定の機械に結びつけられている。
第3の視点によれば、上記したブロックチェーン管理装置の機能を実現するためのコンピュータプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
本発明によれば、ブロックチェーン管理ノードにおいてトランザクションの形で台帳に含まれる重要なデータの消失可能性を低減させることが可能となる。
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、以降の説明で参照する図面等のブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。
本発明は、その一実施形態において、図1に示すように、ブロック受信部101と、ブロック検証部102と、合意形成部103と、台帳格納部104と、を備えるブロックチェーン管理装置100Aと、同等の機能を持つブロックチェーン管理装置100Bをピアツーピア接続した構成にて実現できる。
より具体的には、ブロック受信部101は、他のブロックチェーン管理装置から、ブロックチェーン管理装置間で取り決めた所定のルールに基づいて台帳の所定の範囲の中から選択した参照情報の要約値を少なくとも一つ含むブロックヘッダを含むブロックを受信する。ブロック検証部102は、前記所定のルールに基づいて前記台帳の所定の範囲の中から参照情報を選択し、前記ブロックに含まれる参照情報の要約値が前記参照情報に基づいて生成されているか否かにより、受信したブロックが正しく生成されたことを検証する。合意形成部103は、前記ブロック検証部102により前記ブロックが正しく生成されたと検証された場合に、他のブロックチェーン管理装置と当該ブロックを書き込むことに対して合意形成を行う。台帳格納部104は、前記合意形成された前記ブロックを格納する。
上記した構成によれば、ブロックチェーン管理ノードにおけるトランザクションを保持することに対するインセンティブが付与され、なるべく多くのトランザクションがブロックチェーン管理ノードによって保持されるようになる。
その理由は以下のように分析できる。上記したブロックチェーン管理装置(例えば、ブロックチェーン管理装置100A)のブロック検証部102は、台帳の部分的情報である参照情報を知らなければ生成できない参照情報の要約値がブロックに含まれる場合に、ブロックが正しいと判断する。このため、あるブロックチェーン管理装置100Bが、ブロックを生成するためには台帳の任意の部分的情報にアクセスする必要がある。一方で、ブロック生成によるインセンティブを最大化するためにはブロックを生成できるノードが少ない方が良い。これらのことから、ブロックを生成するに足りる台帳情報を持たないブロックチェーン管理装置が、他のブロックチェーン管理装置から参照情報を取得することは困難であり、それぞれのブロックチェーン管理装置は、台帳上のなるべく多くの情報を保持するようになる。結果として、より多くのトランザクションが保持されるようになる。
[第1の実施形態]
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図2は、本発明の第1の実施形態の構成を示す図である。図2を参照すると、4台のブロックチェーン管理装置(ブロックチェーン管理ノード)100が相互に接続された構成が示されている。これらのブロックチェーン管理装置100がトランザクション発行者から受け取ったトランザクションを検証する。そして、検証を通過したトランザクションを集約してブロックを作成する。ブロックを作成したブロックチェーン管理装置100は、他のブロックチェーン管理装置100に作成したブロックを配布する。それぞれのブロックチェーン管理装置100がその正当性を検証した上で台帳にブロックの内容を追加する。なお、上記の過程で、ブロックチェーン管理装置100がブロックの作成主体となりうるため、内容の異なるブロックが作成されることがある。また、悪意を持ったブロックチェーン管理装置100が存在する場合、不正なブロックが生成、配布される可能性もある。その場合、合意形成という手続を行って、ブロックチェーン管理ノード100間で蓄積するブロックの内容を同一にする。これにより、台帳の一貫性が保たれる。なお、図2の例では、4台のブロックチェーン管理装置を示しているが、ブロックチェーン管理装置の数は複数あればよく、図2の構成に限られない。
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図2は、本発明の第1の実施形態の構成を示す図である。図2を参照すると、4台のブロックチェーン管理装置(ブロックチェーン管理ノード)100が相互に接続された構成が示されている。これらのブロックチェーン管理装置100がトランザクション発行者から受け取ったトランザクションを検証する。そして、検証を通過したトランザクションを集約してブロックを作成する。ブロックを作成したブロックチェーン管理装置100は、他のブロックチェーン管理装置100に作成したブロックを配布する。それぞれのブロックチェーン管理装置100がその正当性を検証した上で台帳にブロックの内容を追加する。なお、上記の過程で、ブロックチェーン管理装置100がブロックの作成主体となりうるため、内容の異なるブロックが作成されることがある。また、悪意を持ったブロックチェーン管理装置100が存在する場合、不正なブロックが生成、配布される可能性もある。その場合、合意形成という手続を行って、ブロックチェーン管理ノード100間で蓄積するブロックの内容を同一にする。これにより、台帳の一貫性が保たれる。なお、図2の例では、4台のブロックチェーン管理装置を示しているが、ブロックチェーン管理装置の数は複数あればよく、図2の構成に限られない。
続いて、ブロックチェーン管理装置100の構成について図面を参照して詳細に説明する。図3は、本発明の第1の実施形態のブロックチェーン管理装置の構成を示す機能ブロック図である。図3を参照すると、ブロック受信部110と、ブロック検証部120と、合意形成部130と、台帳格納部140と、を含むブロックチェーン管理装置100が示されている。
ブロック受信部110は、ブロックチェーンのネットワークに送信されたブロックBを受信する。このブロックBは、図4に示すように、一つまたは複数のトランザクションに、ブロックヘッダBHを付加して構成される。さらに、このブロックヘッダBHは、直前のブロックに含まれるブロックヘッダを要約したブロックヘッダ要約値(図4のHash)と、特定のルールによって指定された台帳の部分的情報である参照情報に基づいて生成された少なくとも一つの参照情報の要約値(以下「参照情報要約値」)を含む。なお、参照情報は、台帳の複数の部分である場合も含まれる。この場合、参照情報は複数となり、参照情報要約値は、これら複数の参照情報から1つ、又は、複数生成される。
ブロック検証部120は、参照情報検証部121と、参照情報決定部122とを備え、受信したブロックが正しく生成されていることを検証する。具体的には、参照情報決定部122は、決定的なルール(所定のルール)を用いて、台帳の一部またはすべての情報に基づいた台帳の部分的情報である参照情報を決定する。参照情報検証部121は、参照情報要約値が前記参照情報に基づいて生成されていることを検証する。ここで、決定的なルールとは、すべてのブロックチェーン管理装置100が、台帳の情報から、同一の部分的情報である参照情報を特定できるようなルールを意味する。
合意形成部130は、他のブロックチェーン管理装置との間で、前記受信したブロックが前記ブロック検証部120で正しく生成されたと判断された場合に、蓄積するかどうかについて合意する合意形成手順を実施する。
台帳格納部140は、前記合意形成部130によって合意されたすべてのブロックの集合である台帳の一部またはすべてを格納する。
次に、ブロックチェーン管理装置100の動作について図面を参照して詳細に説明する。はじめに、図5を参照してブロックチェーン管理装置100が受信したブロックを検証し、台帳格納部140に格納するまでの一連の動作について説明する。
ブロック受信部110が、他のブロックチェーン管理装置100等からブロックを受信する(ステップA1)。ここでは、図4に示すブロックBを受信したとする。図4に示したとおり、このブロックBは、トランザクションの集合であるボディに、直前のブロックのブロックヘッダを要約したブロックヘッダ要約値(Hash)と、合意形成部130で使用されるNonceと呼ばれる値と、参照情報要約値を含んだブロックヘッダを付加した構成となっている。
次に、ブロック検証部120が前記受信したブロックBに対して検証を行う(ステップA2)。ここでの検証の内容については、後に、図7のフローチャートを用いて説明する。
前記検証の結果、前記ブロックが正しく生成されていないと判定された場合(ステップA3のNo)、ブロックチェーン管理装置100はブロックを廃棄する(ステップA4)。
一方、ブロックが正しく生成されたと判定した場合(ステップA3のYes)、合意形成部130が、他のブロックチェーン管理装置100と合意形成を行う(ステップA5)。この合意形成の仕方については、後に、図8のフローチャートを用いて説明する。
最後に、ブロックチェーン管理装置100は、他のブロックチェーン管理装置100と合意形成できたブロックを台帳格納部140に格納する。図6は、台帳格納部140に保持される台帳データの一例を示す図である。図6の例では、合意形成の結果、ブロックの高さ501のブロックが追加された状態を示している。なお、台帳格納部140における台帳の格納態様は、図6に示した例に限られず、種々の変更を加えることが可能である。例えば、図6の例では、ブロックの高さとブロック本体とを対応付けた構成としているが、この形態に限られるものではない。
続いて、図7のフローチャートを用いて、上記図5のステップA2におけるブロック検証部120によるブロックの検証処理について詳細に説明する。以下では、ブロックチェーン管理装置100が、図4に示すブロックを受信したものとして説明する。
検証対象となるブロックが入力されると、まず、ブロック検証部120の参照情報決定部122が、決定的なルールに従い、台帳の中の部分的な情報を識別できる識別子を少なくとも一つ生成して、参照情報として指定する(ステップB1)。
前記参照情報の識別子には、例えば、ブロックの高さなどを用いることができる。参照情報を指定するルール(決定的なルール)は、たとえば、次のものを用いることができる。
・直前のブロックの一部(Nonceの値や直前のブロックのハッシュ値など)に対してSHA-256等のハッシュ関数を用いて16進数の数値を作成する。
・この数値の一部分(下数桁など)に対して、最新のブロックの高さで剰余演算して得られた値に1を加える。
以上のようなルールを用いることで、どの高さのブロックを参照情報として指定するかを1~現在のブロック高さの間で決定することができる。
・直前のブロックの一部(Nonceの値や直前のブロックのハッシュ値など)に対してSHA-256等のハッシュ関数を用いて16進数の数値を作成する。
・この数値の一部分(下数桁など)に対して、最新のブロックの高さで剰余演算して得られた値に1を加える。
以上のようなルールを用いることで、どの高さのブロックを参照情報として指定するかを1~現在のブロック高さの間で決定することができる。
例えば、図6に示した台帳の中で直前のブロックである高さが500のブロックに含まれる直前のブロックのハッシュ値(つまり高さ499のブロックヘッダのハッシュ値)についてSHA-256ハッシュ関数でハッシュ値を取る。ここで、ハッシュ値として‘9a796cbfa5cc884d7f3e7ddf6c743dfeb9a78e876766d3243e893e4ded4e638d’という値が得られたものとする。その下16ケタの16進数‘3e893e4ded4e638d’に対して現在のブロック高さである500で剰余を取って+1することで参照するブロックは‘294’となる。
なお、参照情報の識別子及びその決定方法はこの限りではない。例えば、たとえば参照情報の識別子は、ブロックの高さと、ブロック内のトランザクションを識別する番号といった複数の情報で構成されてもよい。また、これらの複数の情報で構成される識別子を直前のブロックの複数の部分的情報から取得してもよいし、直近の複数のブロックなどからそれぞれ生成することでもよい。また、参照情報の識別子が複数存在し、複数の参照情報を指定してもよい。
このように参照情報を選択するための識別子は、台帳のデータをより多くより長期に保持することにインセンティブが働くものであればよく、台帳の中から参照情報を識別できる情報でよければその形態を問わない。また、参照情報の識別子は決定的なルールであり、ある程度一様に台帳の部分的情報が選択されるのであれば、その決定方法は問わない。
次に、参照情報検証部121は、台帳から前記参照情報決定部122により決定された一つまたは複数の参照情報の識別子に基づいて、一つまたは複数の参照情報を取得する(ステップB2)。ここでは、図6に示す台帳からブロックの高さ294のブロックが参照情報として取得されたものとする。
次に、参照情報検証部121は、前記受信したブロックに含まれる少なくとも一つの参照情報要約値が、前記参照情報に基づいて生成されたものであることを検証し、検証結果の正否を返す(ステップB3)。ここでは、ステップB2で図6に示す高さ294のブロックである参照情報に対するSHA-256などのハッシュ関数で計算されるハッシュ値が図4のブロックに含まれる参照情報要約値と一致するかどうかで検証を行う。参照情報である高さ294のブロックのハッシュ値が‘678e82d907d3e6e71f81D5cf3ddacc3671dc618c38a1b7a9f9393a83d025b296’であった場合、図4のブロックに含まれる参照情報要約値 ‘678e82d907d3e6e71f81D5cf3ddacc3671dc618c38a1b7a9f9393a83d025b296’と一致したと判定される。
なお、複数の参照情報があった場合に、それを連結して一つの参照情報要約値を検証してもよいし、複数の参照情報要約値をそれぞれ対応する参照情報で検証してもよい。また検証の方法は上記の方法に限定せず、参照情報要約値が参照情報から生成されたものであると検証できればよい。
続いて、図8のフローチャートを用いて、上記図5のステップA5における合意形成部130による合意形成処理について詳細に説明する。なお、以下の説明では、一例としてビットコインで採用されているProof of Workと呼ばれる仕組みによる合意形成について説明するが、他の合意形成方法でもよく、合意形成の方法については問わない。
図8を参照すると、まず、合意形成部130は、ブロックのハッシュ値を取得する(ステップC1)。ハッシュ値はブロック全体に対して取るのでもよいし、ブロックの特徴を要約した値について取るのでもよい。ここでは、図4に示すブロックのハッシュ値として、16進数で “0000000000000000000000000000000000000000000000002bcad85e7b40d3a4”という値が得られたものとして説明する。
最後に、合意形成部130は、ブロックのハッシュ値が目標値より小さいかどうかを判定し、ブロックのハッシュ値が小さい場合に合意形成ができたと判定とする(ステップC2)。ここで、目標値は事前にシステムに固有の値が決定されているのでもよいし、以前のブロックを参照して計算して生成されるのでもよい。ここで、図4に示されたブロックに対する目標値が、“0000000000000000000000000000000000000000000000010000000000000000”であった場合、前述した図4のブロックのハッシュ値<当該目標値となるため、合意形成ができたと判定される。
このような合意形成の方法はProof of Workと呼ばれ、ブロックを生成する際に、図4のブロックに示すようなNonceと呼ばれる値を変化させ、ブロックのハッシュ値が目標値より小さくなるようにブロックを生成する。ハッシュ値からNonceを逆算することはできないことから、ブロックチェーン管理装置100は、総当たりでNonceを試す必要がある。このため、ブロックの生成には、ある程度の計算コストと時間を所要する。ブロックの生成にかかる時間は目標値によってコントロールでき、たとえばビットコインでは直近のいくつかのブロックの生成間隔から、今後もブロックの生成にかかる時間が10分程度になるように調整される。Proof of Workを用いる合意形成手段130は、計算コストを掛けて生成されたブロックかどうかを、ブロックのハッシュ値によって検証できる。ブロックチェーンのネットワークに参加している大部分のブロックチェーン管理装置100が同じルールに従ってブロックのハッシュ値を検証し、検証を通過したブロックのみを台帳格納手段140に格納するブロックとすることで、ネットワーク全体では合意を形成することができる。
以上説明したように、本実施形態のブロックチェーン管理装置100によれば、トランザクションを保持することに対するインセンティブが働くようにすることができ、より多くのトランザクションがブロックチェーン管理装置100に保持されるようになる。
その理由は、ブロック検証部120におけるブロック検証の際に、より多くのトランザクションを保持しているノードがインセンティブを得られるように構成したことにある。具体的には、ブロック検証部120の参照情報検証部121はブロックに含まれる参照情報の要約値が、決定的なルールで決定される台帳の部分的情報である参照情報から生成されたものであると検証された場合にのみブロックが正しいと判断する。そして、合意形成部130は、他のブロックチェーン管理装置100と合意形成を行い、合意形成されたブロックが台帳格納部140に格納されることになる。このため、ブロックチェーン管理装置100が台帳に登録されるブロックを生成するためには台帳の任意の部分的情報にアクセスする必要がある。ブロック生成によるインセンティブを最大化するためにはブロックを生成できるノードが少ない方が良いことから、他のノードから参照情報を取得することは困難であり、それぞれのブロックチェーン管理装置100が台帳上のより多くの望ましくは全部の情報を保持する必要がある。このため、すべてのトランザクションがより多く、より長期に保持されることになる。
[第2の実施形態]
上記した実施形態では、ブロックチェーン管理装置100がトランザクション発行者からトランザクションを受け取ってブロックを生成する仕組みについては省略したが、ブロックチェーン管理装置100がこれらの機能を備えていてもよい。例えば、図9のように、ブロックチェーン管理装置100Cが、トランザクション受信部150と、ブロック生成部160と備えていてもよい(第2の実施形態)。
上記した実施形態では、ブロックチェーン管理装置100がトランザクション発行者からトランザクションを受け取ってブロックを生成する仕組みについては省略したが、ブロックチェーン管理装置100がこれらの機能を備えていてもよい。例えば、図9のように、ブロックチェーン管理装置100Cが、トランザクション受信部150と、ブロック生成部160と備えていてもよい(第2の実施形態)。
トランザクション受信部150は、トランザクション発行者または他のブロックチェーン管理装置100からトランザクションを受信する(図10の(1)参照)。そして、ブロック生成部160は、台帳格納部140に格納された直前のブロックのハッシュ値と参照情報決定部122によって決定された参照情報を要約した参照情報要約値と受信したトランザクションを一つ以上まとめてブロックを生成し、他のブロックチェーン管理装置100に配布する(図10の(2))。そして、このブロック生成部160が生成するブロックは、前述したProof of Workで合意形成をするために、一定の条件を満たすブロック(即ち、決定的ルールを用いて選択された参照情報の要約値を含むブロック)であることが望ましい。
以上のように、本発明は、トランザクションを受け取ってブロックを生成する機能を備えているブロックチェーン管理装置100にも適用可能である。
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成、台帳、ブロック等の表現形態は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
例えば、図1、3、9に示したブロックチェーン管理装置の各部(処理手段)は、ブロックチェーン管理装置に搭載されたプロセッサに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点によるブロックチェーン管理装置参照)
[第2の形態]
上記した所定のルールとして、
一つまたは複数の直近のブロックのすべてまたは一部の情報を用いて参照情報を決定するルールを用いることができる。
[第3の形態]
上記した所定のルールは、
前記台帳の一部またはすべての情報を入力として前記台帳の部分的情報を識別する識別子を一つまたは複数計算し、前記台帳から当該一つまたは複数の識別子に基づいて一つまたは複数の参照情報を抽出するルールであってもよい。
[第4の形態]
上記した台帳の部分的情報を識別する識別子として、一つまたは複数のブロックの高さを用いることができる。
[第5の形態]
上記した台帳の部分的情報を識別する識別子として、一つまたは複数のブロックの高さとトランザクションを識別する情報を用いることができる。
[第6の形態]
前記識別子は、0から前記台帳に格納された最新のブロックの高さの範囲で決定することが好ましい。
[第7の形態]
上記したブロックチェーン管理装置は、
さらに、
他の装置からトランザクションを受信するトランザクション受信部と、
前記台帳格納部に格納された最新のブロックから算出されるハッシュ値と、前記トランザクション受信部が受信したトランザクションを一つ以上まとめてブロックを生成するブロック生成部と
を備えていてもよい。
[第8の形態]
上記したブロックチェーン管理装置の前記ブロック生成部は、
前記ブロックから所定のルールで算出されるハッシュ値が所定の目標値と比較して事前に定められた条件を満たすようにブロックを生成するように構成することもできる。
[第9の形態]
(上記第2の視点によるブロックチェーン管理方法参照)
[第10の形態]
(上記第3の視点によるコンピュータプログラム参照)
なお、上記第8~第9の形態は、第1の形態と同様に、第2~第7の形態に展開することが可能である。
[第1の形態]
(上記第1の視点によるブロックチェーン管理装置参照)
[第2の形態]
上記した所定のルールとして、
一つまたは複数の直近のブロックのすべてまたは一部の情報を用いて参照情報を決定するルールを用いることができる。
[第3の形態]
上記した所定のルールは、
前記台帳の一部またはすべての情報を入力として前記台帳の部分的情報を識別する識別子を一つまたは複数計算し、前記台帳から当該一つまたは複数の識別子に基づいて一つまたは複数の参照情報を抽出するルールであってもよい。
[第4の形態]
上記した台帳の部分的情報を識別する識別子として、一つまたは複数のブロックの高さを用いることができる。
[第5の形態]
上記した台帳の部分的情報を識別する識別子として、一つまたは複数のブロックの高さとトランザクションを識別する情報を用いることができる。
[第6の形態]
前記識別子は、0から前記台帳に格納された最新のブロックの高さの範囲で決定することが好ましい。
[第7の形態]
上記したブロックチェーン管理装置は、
さらに、
他の装置からトランザクションを受信するトランザクション受信部と、
前記台帳格納部に格納された最新のブロックから算出されるハッシュ値と、前記トランザクション受信部が受信したトランザクションを一つ以上まとめてブロックを生成するブロック生成部と
を備えていてもよい。
[第8の形態]
上記したブロックチェーン管理装置の前記ブロック生成部は、
前記ブロックから所定のルールで算出されるハッシュ値が所定の目標値と比較して事前に定められた条件を満たすようにブロックを生成するように構成することもできる。
[第9の形態]
(上記第2の視点によるブロックチェーン管理方法参照)
[第10の形態]
(上記第3の視点によるコンピュータプログラム参照)
なお、上記第8~第9の形態は、第1の形態と同様に、第2~第7の形態に展開することが可能である。
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
100、100A~100C ブロックチェーン管理装置
101、110 ブロック受信部
102、120 ブロック検証部
103、130 合意形成部
104、140 台帳格納部
121 参照情報検証部
122 参照情報決定部
150 トランザクション受信部
160 ブロック生成部
B ブロック
BH ブロックヘッダ
101、110 ブロック受信部
102、120 ブロック検証部
103、130 合意形成部
104、140 台帳格納部
121 参照情報検証部
122 参照情報決定部
150 トランザクション受信部
160 ブロック生成部
B ブロック
BH ブロックヘッダ
Claims (10)
- ブロックチェーン管理装置間で取り決めた所定のルールに基づいて台帳の所定の範囲の中から選択した参照情報の要約値を少なくとも一つ含むブロックヘッダを含むブロックを受信するブロック受信部と、
前記所定のルールに基づいて前記台帳の所定の範囲の中から参照情報を選択し、前記ブロックに含まれる参照情報の要約値が前記参照情報に基づいて生成されているか否かにより、ブロックが正しく生成されたことを検証するブロック検証部と、
前記ブロック検証部により前記ブロックが正しく生成されたと検証された場合に、他のブロックチェーン管理装置と当該ブロックを書き込むことに対して合意形成を行う合意形成部と、
前記合意形成された前記ブロックを格納する台帳格納部と、
を備えることを特徴とするブロックチェーン管理装置。 - 前記所定のルールとして、
一つまたは複数の直近のブロックのすべてまたは一部の情報を用いて参照情報を決定するルールを用いる
請求項1に記載のブロックチェーン管理装置。 - 前記所定のルールは、
前記台帳の一部またはすべての情報を入力として前記台帳の部分的情報を識別する識別子を一つまたは複数計算し、前記台帳から当該一つまたは複数の識別子に基づいて一つまたは複数の参照情報を抽出するルールである
請求項1または2に記載のブロックチェーン管理装置。 - 前記台帳の部分的情報を識別する識別子として、一つまたは複数のブロックの高さを用いる
請求項3に記載のブロックチェーン管理装置。 - 前記台帳の部分的情報を識別する識別子として、一つまたは複数のブロックの高さとトランザクションを識別する情報を用いる
請求項3に記載のブロックチェーン管理装置。 - 前記識別子は、0から前記台帳に格納された最新のブロックの高さの範囲で決定される
請求項4又は5に記載のブロックチェーン管理装置。 - さらに、
他の装置からトランザクションを受信するトランザクション受信部と、
前記台帳格納部に格納された最新のブロックから算出されるハッシュ値と、前記トランザクション受信部が受信したトランザクションを一つ以上まとめてブロックを生成するブロック生成部と
を備える請求項1から6いずれか一に記載のブロックチェーン管理装置。 - 前記ブロック生成部は、
前記ブロックから所定のルールで算出されるハッシュ値が所定の目標値と比較して事前に定められた条件を満たすようにブロックを生成することを特徴とする、
請求項7に記載のブロックチェーン管理装置。 - 台帳の所定の範囲の中から所定のルールに基づいて選択した参照情報の要約値を少なくとも一つ含むブロックヘッダを含むブロックを受信するステップと、
前記台帳の所定の範囲の中から所定のルールに基づいて参照情報を選択し、前記ブロックに含まれる参照情報の要約値が前記参照情報に基づいて生成されているか否かにより、ブロックが正しく生成されたことを検証するステップと、
前記検証により前記ブロックが正しく生成されたと検証された場合に、他のブロックチェーン管理装置と当該ブロックを書き込むことに対して合意形成を行うステップと、
前記合意形成された前記ブロックを格納するステップと、
を含むブロックチェーン管理方法。 - ブロックチェーン管理装置を構成するコンピュータに、
台帳の所定の範囲の中から所定のルールに基づいて選択した参照情報の要約値を少なくとも一つ含むブロックヘッダを含むブロックを受信する処理と、
前記台帳の所定の範囲の中から所定のルールに基づいて参照情報を選択し、前記ブロックに含まれる参照情報の要約値が前記参照情報に基づいて生成されているか否かにより、ブロックが正しく生成されたことを検証する処理と、
前記検証により前記ブロックが正しく生成されたと検証された場合に、他のブロックチェーン管理装置と当該ブロックを書き込むことに対して合意形成を行う処理と、
前記合意形成された前記ブロックを格納する処理と、
を実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/029998 WO2019038839A1 (ja) | 2017-08-22 | 2017-08-22 | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム |
JP2019537467A JP7003995B2 (ja) | 2017-08-22 | 2017-08-22 | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム |
US16/640,874 US11314727B2 (en) | 2017-08-22 | 2017-08-22 | Blockchain management apparatus, blockchain management method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/029998 WO2019038839A1 (ja) | 2017-08-22 | 2017-08-22 | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019038839A1 true WO2019038839A1 (ja) | 2019-02-28 |
Family
ID=65439996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/029998 WO2019038839A1 (ja) | 2017-08-22 | 2017-08-22 | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11314727B2 (ja) |
JP (1) | JP7003995B2 (ja) |
WO (1) | WO2019038839A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981405A (zh) * | 2019-03-20 | 2019-07-05 | 上海和数软件有限公司 | 节点管理方法、装置及计算机可读存储介质 |
CN110825755A (zh) * | 2019-10-30 | 2020-02-21 | 北京海益同展信息科技有限公司 | 区块链的共识方法、共识节点、电子设备、存储介质 |
JP2021136005A (ja) * | 2020-02-21 | 2021-09-13 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | ブロックチェーンのリソース処理方法、装置、デバイスおよび媒体 |
EP4383174A1 (en) | 2022-12-05 | 2024-06-12 | Fujitsu Limited | Blockchain management program, blockchain management device, and blockchain management method |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11646879B2 (en) * | 2018-06-12 | 2023-05-09 | Electronics And Telecommunications Research Institute | Method and apparatus for selecting distributed consensus node based on proof of nonce |
GB201811263D0 (en) * | 2018-07-10 | 2018-08-29 | Netmaster Solutions Ltd | A method and system for managing digital using a blockchain |
US11502847B2 (en) * | 2018-07-13 | 2022-11-15 | Waters Technologies Ireland Limited | Techniques for managing analytical information using distributed ledger technology |
US11010394B2 (en) * | 2019-02-15 | 2021-05-18 | Drfirst.Com, Inc. | Efficient access of chainable records |
JP7327100B2 (ja) * | 2019-11-15 | 2023-08-16 | 富士フイルムビジネスイノベーション株式会社 | データ管理システム、データ管理装置及びデータ管理プログラム |
US20230125542A1 (en) * | 2021-10-22 | 2023-04-27 | Mastercard International Incorporated | Method and system of initiating simultaneous start of block formation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017091149A (ja) * | 2015-11-09 | 2017-05-25 | 日本電信電話株式会社 | ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム |
JP2017091148A (ja) * | 2015-11-09 | 2017-05-25 | 日本電信電話株式会社 | ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9436923B1 (en) * | 2015-02-26 | 2016-09-06 | Skuchain, Inc. | Tracking unitization occurring in a supply chain |
JP5858507B1 (ja) | 2015-05-18 | 2016-02-10 | 株式会社Orb | 仮想通貨管理プログラム、及び仮想通貨管理方法 |
US10848315B2 (en) | 2015-07-13 | 2020-11-24 | Nippon Telegraph And Telephone Corporation | Contract agreement method, agreement verification method, contract agreement system, agreement verification device, contract agreement device, contract agreement program and agreement verification program |
US10366204B2 (en) * | 2015-08-03 | 2019-07-30 | Change Healthcare Holdings, Llc | System and method for decentralized autonomous healthcare economy platform |
US10402792B2 (en) * | 2015-08-13 | 2019-09-03 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
JP6452156B2 (ja) | 2015-09-03 | 2019-01-16 | 日本電信電話株式会社 | 許諾情報管理システム、利用者端末、権利者端末、許諾情報管理方法、および、許諾情報管理プログラム |
JP2017049967A (ja) | 2015-09-06 | 2017-03-09 | プリモ株式会社 | 情報処理装置及びプログラム |
US11074663B2 (en) * | 2015-12-31 | 2021-07-27 | Camelot Uk Bidco Limited | System and method of facilitating intellectual property transactions |
US10862959B2 (en) * | 2016-11-28 | 2020-12-08 | Keir Finlow-Bates | Consensus system and method for adding data to a blockchain |
-
2017
- 2017-08-22 US US16/640,874 patent/US11314727B2/en active Active
- 2017-08-22 JP JP2019537467A patent/JP7003995B2/ja active Active
- 2017-08-22 WO PCT/JP2017/029998 patent/WO2019038839A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017091149A (ja) * | 2015-11-09 | 2017-05-25 | 日本電信電話株式会社 | ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム |
JP2017091148A (ja) * | 2015-11-09 | 2017-05-25 | 日本電信電話株式会社 | ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム |
Non-Patent Citations (2)
Title |
---|
TSCHORSCH, F. ET AL.: "Bitcoin and Beyond: A Technical Survey on Decentralized Digital Currencies", IEEE COMMUNICAITONS SURVEYS & TUTORIALS, vol. 18, no. 3, 2016, pages 2084 - 2123, XP011620868, DOI: doi:10.1109/COMST.2016.2535718 * |
YASUYUKI FUCHITA: "Inovation to Kin'yu", NOMURA CAPITAL MARKETS QUARTERLY- AUTOMN 2015, vol. 19, no. 2, 1 November 2015 (2015-11-01), pages 11 - 35, XP009507516, ISSN: 2185-4629 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981405A (zh) * | 2019-03-20 | 2019-07-05 | 上海和数软件有限公司 | 节点管理方法、装置及计算机可读存储介质 |
CN110825755A (zh) * | 2019-10-30 | 2020-02-21 | 北京海益同展信息科技有限公司 | 区块链的共识方法、共识节点、电子设备、存储介质 |
CN110825755B (zh) * | 2019-10-30 | 2021-05-04 | 北京海益同展信息科技有限公司 | 区块链的共识方法、共识节点、电子设备、存储介质 |
JP2021136005A (ja) * | 2020-02-21 | 2021-09-13 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | ブロックチェーンのリソース処理方法、装置、デバイスおよび媒体 |
JP7232800B2 (ja) | 2020-02-21 | 2023-03-03 | バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド | ブロックチェーンのリソース処理方法、装置、デバイスおよび媒体 |
US11770264B2 (en) | 2020-02-21 | 2023-09-26 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method and apparatus for processing resource of block chain, device and medium |
EP4383174A1 (en) | 2022-12-05 | 2024-06-12 | Fujitsu Limited | Blockchain management program, blockchain management device, and blockchain management method |
Also Published As
Publication number | Publication date |
---|---|
JP7003995B2 (ja) | 2022-01-21 |
US20200356547A1 (en) | 2020-11-12 |
JPWO2019038839A1 (ja) | 2020-10-15 |
US11314727B2 (en) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019038839A1 (ja) | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム | |
JP6969664B2 (ja) | ブロックチェーン管理システム、ブロックチェーン管理装置、情報提供装置及びブロックチェーン管理方法 | |
US11461310B2 (en) | Distributed ledger technology | |
US11481375B2 (en) | Point-to-point distributed decentralized system | |
US20190334726A1 (en) | Blockchain-based method and system for immutable resource allocation in a cloud computing environment | |
US20190386834A1 (en) | Blockchain management apparatus, blockchain management method, and program | |
CN110730963B (zh) | 用于信息保护的系统和方法 | |
WO2020087042A1 (en) | Blockchain consensus systems and methods involving a time parameter | |
US20200334677A1 (en) | Transparent blockchain sidechains to support blockchain processing heterogeneity | |
US20200394162A1 (en) | Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system | |
JP7543313B2 (ja) | 複数インプットトランザクション | |
JP2023515368A (ja) | ブロックチェーンネットワークと共に使用される証明サービス | |
CN116508291A (zh) | 默克尔证明实体 | |
US20240333790A1 (en) | Adapting connections of a layered network | |
CN116547945A (zh) | 默克尔证明实体 | |
KR20240093548A (ko) | 분산된 블록체인 기능들을 위한 방법들 및 시스템들 | |
JP7073240B2 (ja) | ブロックチェーン管理システム、ブロックチェーン管理方法及びブロックチェーン管理プログラム | |
KR20240100377A (ko) | 분산된 블록체인 기능들을 위한 방법들 및 시스템들 | |
KR20240100373A (ko) | 분산된 블록체인 기능들을 위한 방법들 및 시스템들 | |
CN110489460B (zh) | 一种快速统计的优化方法及系统 | |
JP6971127B2 (ja) | 端末およびブロックチェーンシステム | |
Posdorfer et al. | Check for updates Contesting the Truth Intentional Forking in BFT-POS Blockchains | |
WO2024156510A1 (en) | Proof and verification of data storage | |
KR20240096560A (ko) | 분산된 블록체인 기능들을 위한 방법들 및 시스템들 | |
WO2023283360A2 (en) | Scalable frameworks for deployment of decentralized transactions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17922744 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019537467 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17922744 Country of ref document: EP Kind code of ref document: A1 |