WO2023119398A1 - Blockchain system, blockchain system update method, and program - Google Patents
Blockchain system, blockchain system update method, and program Download PDFInfo
- Publication number
- WO2023119398A1 WO2023119398A1 PCT/JP2021/047207 JP2021047207W WO2023119398A1 WO 2023119398 A1 WO2023119398 A1 WO 2023119398A1 JP 2021047207 W JP2021047207 W JP 2021047207W WO 2023119398 A1 WO2023119398 A1 WO 2023119398A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- smart contract
- version
- blockchain
- execution software
- effective version
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 37
- 238000012545 processing Methods 0.000 claims abstract description 52
- 230000008569 process Effects 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 23
- 238000009434 installation Methods 0.000 claims description 22
- 230000003213 activating effect Effects 0.000 claims 1
- 238000004148 unit process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000012905 input function Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- 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
Definitions
- FIG. 3 is a diagram for explaining an example of the smart contract multiple execution method of the first embodiment.
- TX requests A and B represent two different transaction requests.
- the contents of the blockchain are the same for all peers 20 .
- Blockchain consistency is maintained by consensus algorithms. Any consensus algorithm may be used.
- a consensus algorithm ensures the order of processing of transaction requests (TX request A ⁇ TX request B in the example of FIG. 3) and maintains blockchain consistency.
- FIG. 4 is a diagram showing an example of the device configuration of the blockchain system 100 of the first embodiment.
- a blockchain system 100 of the first embodiment includes client devices 10-1 to 10-2, peers 20-1 to 20-3, and a control device 30.
- FIG. 10-1 to 10-2 includes client devices 10-1 to 10-2, peers 20-1 to 20-3, and a control device 30.
- the execution unit 23 records the transaction record in the blockchain by executing the smart contract execution software in response to the transaction request.
- step S12, No If there is no smart contract execution software corresponding to V (step S12, No), the control unit 22 stops the operation of the peer 20.
- the control unit 22 reads the effective version from the recording unit 21 and activates the smart contract execution software of the effective version.
- the execution unit 23 receives the first transaction request including smart contract processing target data, it processes the smart contract processing target data by executing the effective version of the smart contract execution software. Then, the execution unit 23 records the first transaction record including the processing result of the smart contract processing target data in the blockchain.
- the recording unit 21 further records not only the current effective version, but also the next effective version and the starting block number N.
- the starting block number N indicates the block number of the block to start processing in the next effective version.
- the program of the peer 20 may be configured to be pre-installed in a ROM or the like and provided.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A blockchain system according to an embodiment comprises a plurality of peers. Each peer is provided with a control unit and an execution unit. The control unit reads an effective version from a recording unit, and launches the smart contract execution software for the effective version. Upon receiving a first transaction request including data to be subjected to smart contract processing, the execution unit processes the data to be subjected to smart contract processing by executing the smart contract execution software for the effective version, and records, in the blockchain, a first transaction record including the result of processing the data to be subjected to smart contract processing.
Description
本発明の実施形態はブロックチェーンシステム、ブロックチェーンシステム更新方法及びプログラムに関する。
Embodiments of the present invention relate to a blockchain system, a blockchain system update method, and a program.
ブロックチェーンでは、直前のブロックのハッシュ値を取り込んでブロックハッシュが生成される。これにより、ハッシュの計算が鎖状につながるデータ構造を有するので、チェーン全体として改ざん耐性が得られるようになっている。また、複数のピア上に同一内容のブロックチェーンを記録することで、改ざん耐性をより高め、同時に可用性も高めている。トランザクション要求に応答して自動的にスマートコントラクトがピアで実行され、その実行結果もブロックチェーンに記録される。
In a blockchain, a block hash is generated by taking the hash value of the previous block. As a result, since hash calculations have a data structure that connects in a chain, the chain as a whole is tamper-resistant. In addition, by recording the same blockchain on multiple peers, it is more resistant to tampering and at the same time increases availability. Smart contracts are automatically executed by peers in response to transaction requests, and their execution results are also recorded on the blockchain.
しかしながら、従来の技術では、スマートコントラクトを実行するソフトウェアのバージョンが異なる状態になり、ピア間でブロックチェーンの不整合が生じる恐れがあった。
However, with conventional technology, the version of the software that executes the smart contract would be in a different state, causing blockchain inconsistency between peers.
実施形態のブロックチェーンシステムは、複数のピアで構成されるブロックチェーンシステムである。前記ピアは、制御部と実行部とを備える。制御部は、記録部から発効バージョンを読み出し、前記発効バージョンのスマートコントラクト実行ソフトウェアを起動する。実行部は、スマートコントラクト処理対象データを含む第1のトランザクション要求を受け付けると、前記発効バージョンのスマートコントラクト実行ソフトウェアを実行することによって、前記スマートコントラクト処理対象データを処理し、前記スマートコントラクト処理対象データの処理結果を含む第1のトランザクション記録をブロックチェーンに記録する。
The blockchain system of the embodiment is a blockchain system composed of multiple peers. The peer comprises a control part and an execution part. The control unit reads the effective version from the recording unit and activates the smart contract execution software of the effective version. When receiving a first transaction request including smart contract processing target data, the execution unit processes the smart contract processing target data by executing the effective version of the smart contract execution software, and extracts the smart contract processing target data. record in the blockchain a first transaction record containing the result of the processing of .
以下に添付図面を参照して、ブロックチェーンシステム、ブロックチェーンシステム更新方法及びプログラムの実施形態を詳細に説明する。
Embodiments of the blockchain system, the method for updating the blockchain system, and the program will be described in detail below with reference to the accompanying drawings.
(第1実施形態)
はじめに、実施形態のスマートコントラクトについて説明する。 (First embodiment)
First, the smart contract of the embodiment will be described.
はじめに、実施形態のスマートコントラクトについて説明する。 (First embodiment)
First, the smart contract of the embodiment will be described.
図1は、実施形態のスマートコントラクトの例を説明するための図である。スマートコントラクトは、クライアント装置10から送信されたトランザクション要求に応答して複数のピア20(図1の例では、ピア20-1~20-3)上で実行されるプログラムである。
FIG. 1 is a diagram for explaining an example of the smart contract of the embodiment. A smart contract is a program executed on a plurality of peers 20 (peers 20-1 to 20-3 in the example of FIG. 1) in response to transaction requests sent from the client device 10. FIG.
ピア20は、ブロックチェーンを保管しているサーバ装置である。すべてのピア20で同一内容のブロックチェーンが記録される。ブロックチェーンは、トランザクション記録を含む台帳である。
A peer 20 is a server device that stores a blockchain. All peers 20 record the same block chain. A blockchain is a ledger that contains transaction records.
図1の例では、トランザクション要求は、コントラクトID、引数及び署名を含むパケットである。コントラクトIDは、呼び出されるスマートコントラクトを識別する識別情報である。引数は、スマートコントラクトに渡されるパラメータである。パラメータには、例えばスマートコントラクト処理対象データが含まれる。署名は、クライアント装置10の秘密鍵(ウォレット)、コントラクトID及び引数から生成された電子署名である。
In the example of Figure 1, the transaction request is a packet containing the contract ID, arguments and signature. The contract ID is identification information that identifies the called smart contract. Arguments are the parameters passed to the smart contract. The parameters include smart contract processing target data, for example. The signature is an electronic signature generated from the private key (wallet) of the client device 10, contract ID, and arguments.
スマートコントラクトは、トランザクション要求に応答したすべてのピア20で多重実行される。すなわち、同じ計算がすべてのピア20で行われ、計算結果も同一となる。
The smart contract is multiplexed by all peers 20 that have responded to the transaction request. That is, the same calculation is performed by all peers 20 and the calculation result is also the same.
ブロックチェーンは、直前のブロックのハッシュ値が取り込まれたブロックハッシュが生成されることにより、ハッシュの計算が鎖状につながるデータ構造を有する。これにより、チェーン全体として改ざん耐性が得られ、正当なトランザクション記録を後に書き換えることを防ぐことができる。
A blockchain has a data structure in which hash calculations are linked in a chain by generating a block hash that incorporates the hash value of the previous block. This makes the chain as a whole tamper-resistant and prevents later rewriting of valid transaction records.
図2は、第1実施形態のブロックチェーンのデータ構造の例を説明するための図である。ブロックチェーンは、少なくとも1つのトランザクション記録53を含んだブロックをつなげた構造をもつ。図2の例では、n-1番目(nは2以上の整数)のブロックn―1、n番目のブロックn及びn+1番目のブロックn+1をつなげた構造の例を示す。
FIG. 2 is a diagram for explaining an example of the data structure of the blockchain of the first embodiment. A blockchain has a structure in which blocks containing at least one transaction record 53 are connected. The example of FIG. 2 shows an example of a structure in which the (n-1)-th (n is an integer equal to or greater than 2) block n-1, the n-th block n, and the (n+1)-th block n+1 are connected.
ブロックnは、ブロックハッシュ51n-1、ブロック番号52及びトランザクション記録53を少なくとも含むデータと、当該データから生成されたブロックハッシュ51nとを含む。ブロックハッシュ51n-1は、ブロックnの直前のブロックn-1のブロックハッシュである。ブロック番号52は、ブロックnを識別する番号である。
Block n includes data including at least block hash 51n-1, block number 52, and transaction record 53, and block hash 51n generated from the data. Block hash 51n-1 is the block hash of block n-1 immediately before block n. A block number 52 is a number that identifies block n.
トランザクション記録53は、トランザクション要求54、及び、トランザクション要求に応答して実行されたスマートコントラクトの実行結果55を含む記録データである。
A transaction record 53 is record data that includes a transaction request 54 and a smart contract execution result 55 executed in response to the transaction request.
なお、各ブロックには、任意のデータが更に含まれていてもよい。例えば、トランザクション記録53に、トランザクションの処理が実行された時刻情報、及び、トランザクションの処理にかかった時間情報等が更に含まれていてもよい。
It should be noted that each block may further include arbitrary data. For example, the transaction record 53 may further include information on the time the transaction was processed, information on the time taken to process the transaction, and the like.
図3は、第1実施形態のスマートコントラクトの多重実行方法の例を説明するための図である。図3の例では、TX要求A及びBは、異なる2つのトランザクション要求を示す。ブロックチェーンの内容は、すべてのピア20で同じである。ブロックチェーンの一貫性の維持は、コンセンサスアルゴリズムによる。コンセンサスアルゴリズムは任意でよい。コンセンサスアルゴリズムによって、トランザクション要求の処理の順番が保証され(図3の例では、TX要求A→TX要求B)、ブロックチェーンの一貫性が維持される。
FIG. 3 is a diagram for explaining an example of the smart contract multiple execution method of the first embodiment. In the example of FIG. 3, TX requests A and B represent two different transaction requests. The contents of the blockchain are the same for all peers 20 . Blockchain consistency is maintained by consensus algorithms. Any consensus algorithm may be used. A consensus algorithm ensures the order of processing of transaction requests (TX request A→TX request B in the example of FIG. 3) and maintains blockchain consistency.
[装置構成の例]
図4は、第1実施形態のブロックチェーンシステム100の装置構成の例を示す図である。第1実施形態のブロックチェーンシステム100は、クライアント装置10-1~10-2、ピア20-1~20-3、及び、制御装置30を備える。 [Device configuration example]
FIG. 4 is a diagram showing an example of the device configuration of theblockchain system 100 of the first embodiment. A blockchain system 100 of the first embodiment includes client devices 10-1 to 10-2, peers 20-1 to 20-3, and a control device 30. FIG.
図4は、第1実施形態のブロックチェーンシステム100の装置構成の例を示す図である。第1実施形態のブロックチェーンシステム100は、クライアント装置10-1~10-2、ピア20-1~20-3、及び、制御装置30を備える。 [Device configuration example]
FIG. 4 is a diagram showing an example of the device configuration of the
クライアント装置10-1~10-2、ピア20-1~20-3、及び、制御装置30は、ネットワーク200を介して接続されている。ネットワーク200の通信方式は、有線方式でもよいし、無線方式でもよい。また、ネットワーク200は、有線方式と無線方式とを組み合わせて構成されていてもよい。
The client devices 10-1 to 10-2, peers 20-1 to 20-3, and control device 30 are connected via a network 200. A communication method of the network 200 may be a wired method or a wireless method. Also, the network 200 may be configured by combining a wired system and a wireless system.
クライアント装置10-1~10-2、及び、ピア20-1~20-3の台数は任意でよい。以下、クライアント装置10-1~10-2を区別しない場合は、単にクライアント装置10という。同様に、ピア20-1~20-3を区別しない場合は、単にピア20という。
The number of client devices 10-1 to 10-2 and peers 20-1 to 20-3 may be arbitrary. Hereinafter, the client devices 10-1 and 10-2 are simply referred to as the client device 10 when not distinguished. Similarly, peers 20-1 to 20-3 are simply referred to as peers 20 when they are not distinguished.
クライアント装置10は、スマートコントラクト処理対象データを含むトランザクション要求(第1のトランザクション要求)をピア20に送信する。
The client device 10 transmits to the peer 20 a transaction request (first transaction request) including data subject to smart contract processing.
ピア20は、トランザクション要求に応じて、処理を実行する情報処理装置である。例えば、ピア20は、クライアント装置10からのトランザクション要求に応じて、スマートコントラクト実行ソフトウェアを実行する。スマートコントラクト実行ソフトウェアは、スマートコントラクトを実行するためのプログラムである。
The peer 20 is an information processing device that executes processing in response to transaction requests. For example, peer 20 executes smart contract execution software in response to a transaction request from client device 10 . Smart contract execution software is a program for executing smart contracts.
制御装置30は、ブロックチェーンシステム100を制御する装置である。例えば、制御装置30は、ブロックチェーンシステム100の管理者の操作に応じて、スマートコントラクト実行ソフトウェアの発効バージョンの変更指示を含むトランザクション要求(第2のトランザクション要求)をピア20に送信する。発効バージョンの変更指示は、例えば、スマートコントラクト実行ソフトウェアのバージョンアップ又はバージョンダウンの指示を含む。
The control device 30 is a device that controls the blockchain system 100. For example, the control device 30 transmits to the peer 20 a transaction request (second transaction request) including an instruction to change the valid version of the smart contract execution software according to the operation of the administrator of the blockchain system 100 . The effective version change instruction includes, for example, an instruction to upgrade or downgrade smart contract execution software.
ブロックチェーンシステム100では、すべてのピア20は、同じトランザクション要求を処理し、同じブロックを生成していく。ピア20で動作するスマートコントラクト実行ソフトウェアのバージョンが異なると、ピア20間でブロックチェーンの不整合が生じる恐れがある。
In the blockchain system 100, all peers 20 process the same transaction requests and generate the same blocks. Different versions of smart contract execution software running on peers 20 can lead to blockchain inconsistencies between peers 20 .
図5は、ピア20間でブロックチェーンの不整合が生じる場合の例を説明するための図である。図5の例では、txA~Cは、スマートコントラクト処理対象データを含むトランザクション要求を示す。図5の例は、txBを処理する前に、ピア20-1の一台だけ先にスマートコントラクト実行ソフトウェアのバージョンアップが行われる場合を示す。この場合、ピア20-1により生成されたブロックn+2と、ピア20-2及び20-3により生成されたブロックn+2と、が一致せず、ピア20間で不整合が生じる。
FIG. 5 is a diagram for explaining an example in which blockchain inconsistencies occur between peers 20. FIG. In the example of FIG. 5, txA-C indicate transaction requests containing data to be processed by the smart contract. The example of FIG. 5 shows a case where smart contract execution software is upgraded one peer 20-1 first before processing txB. In this case, the block n+2 generated by the peer 20-1 does not match the block n+2 generated by the peers 20-2 and 20-3, causing a mismatch between the peers 20. FIG.
ブロックn+2が一致しなくなれば、ブロックn+3以降も一致しないことになる。なぜなら、各ブロックnは一つ前のブロックn-1のブロックハッシュ51n-1を含んでいるからである(図2参照)。
If block n+2 does not match, block n+3 and subsequent blocks also do not match. This is because each block n contains the block hash 51n-1 of the previous block n-1 (see FIG. 2).
スマートコントラクト実行ソフトウェアをバージョンアップする際に、例えば1台のピア20だけバージョンアップを行ったとすると、そのピア20が改ざんされた場合と区別がつかないという問題があった。また、逆に、1台のピア20だけバージョンアップを行わない、という場合でも同様に、そのピア20が改ざんされた場合と区別がつかないという問題があった。
When upgrading the smart contract execution software, for example, if only one peer 20 was upgraded, there was a problem that it could not be distinguished from the case where the peer 20 was tampered with. Conversely, even if only one peer 20 is not upgraded, there is a problem that it cannot be distinguished from the case where the peer 20 has been tampered with.
また、すべてのピア20で、時間的に同時にバージョンアップを行うとしても、その時点で各ピア20が同じブロックを処理しているとは限らないため、やはりピア20間で不整合が生じる恐れがあった。
In addition, even if all peers 20 perform version upgrade at the same time, it is not always the case that each peer 20 is processing the same block at that time. there were.
そこで、第1実施形態のブロックチェーンシステム100では、バージョンアップを発効させる場合、制御装置30が、バージョンの発効を表す特別なトランザクション要求を発行する。そして、ピア20が、当該トランザクション要求に応じて、バージョンの発効をブロックチェーンに記録し、記録された次のブロックから、変更されたバージョンでの動作を行う。
Therefore, in the blockchain system 100 of the first embodiment, the control device 30 issues a special transaction request indicating that the version is to be validated when the version upgrade is to be validated. Then, the peer 20 records the validity of the version in the blockchain in response to the transaction request, and operates with the changed version from the next recorded block.
バージョンの発効をブロックに記録する記録方法には、通常のトランザクション要求の処理と同じ仕組みが用いられる。これにより、ピア20間でのトランザクションの順序の一貫性が維持されるため、バージョンの発効の記録は、すべてのピア20で同じブロックに記録される。したがって、次のブロックからバージョンの発効が開始されるとすれば、バージョンの整合性が維持できる。
The recording method for recording the version effectivity in blocks uses the same mechanism as for normal transaction request processing. This maintains transaction order consistency among peers 20, so that all peers 20 record version effectivity records in the same block. Therefore, if version validity starts from the next block, version consistency can be maintained.
2以上の複数のトランザクション要求が同一のブロックに含まれる場合でも、トランザクション要求の実行順序は、上述のコンセンサスアルゴリズムによってピア20間で変わらない。そこで、バージョン発効を示す情報を含むトランザクション要求が同じブロックに複数、含まれた場合には、例えば最後に処理されたトランザクション要求の発効バージョンを有効にすればよい。
Even if two or more transaction requests are included in the same block, the execution order of the transaction requests remains unchanged among the peers 20 according to the consensus algorithm described above. Therefore, when a plurality of transaction requests including information indicating version validity is included in the same block, for example, the valid version of the last processed transaction request may be validated.
なお、同じ時刻において、ピア20ごとに処理しているブロックは大きく異なるかもしれないが(例えば、1台のピア20だけ処理が大きく遅延しているなど)、第1実施形態のブロックチェーンシステム100はこの場合でも問題ない。
Note that, at the same time, the blocks being processed by each peer 20 may differ greatly (for example, only one peer 20 is significantly delayed in processing), but the blockchain system 100 of the first embodiment is no problem in this case.
例えば、1台のピア20を後から追加する場合、そのピア20は初期ブロックから順にトランザクション要求の処理を実行していく。このピア20による処理の実行は、バージョン発効を示す情報を含むトランザクション要求にあわせてスマートコントラクト実行ソフトウェアのバージョンが変更されるので、他のピア20と整合性を持つ。
For example, if one peer 20 is added later, that peer 20 will process transaction requests in order from the initial block. Execution of processing by this peer 20 is consistent with other peers 20 because the version of the smart contract execution software is changed in accordance with the transaction request including information indicating version validity.
図6は、第1実施形態のブロックチェーンシステム更新方法の概要を説明するための図である。図6の例では、txA~Cは、スマートコントラクト処理対象データを含むトランザクション要求を示す。バージョンアップTXは、バージョンの発効を表す特別なトランザクション要求を示す。
FIG. 6 is a diagram for explaining an overview of the blockchain system update method of the first embodiment. In the example of FIG. 6, txA to C indicate transaction requests containing data to be processed by the smart contract. Version-Up TX indicates a special transaction request that indicates the version going into effect.
図6の例では、各ピア20が、バージョンアップTXを受信する前に、バージョンアップされたスマートコントラクト実行ソフトウェアが、任意のタイミングで各ピア20にインストールされる。第1実施形態のブロックチェーンシステム100では、スマートコントラクト実行ソフトウェアのインストールと、バージョンの発効とは別々に管理される。すなわち、バージョンアップされたスマートコントラクト実行ソフトウェアは、各ピア20にインストールされた時点では有効にされない。
In the example of FIG. 6, the upgraded smart contract execution software is installed in each peer 20 at an arbitrary timing before each peer 20 receives the upgrade TX. In the blockchain system 100 of the first embodiment, the installation of smart contract execution software and the effectuation of the version are managed separately. That is, the upgraded smart contract execution software is not activated when it is installed on each peer 20 .
図6の例では、各ピア20は、バージョンアップTXを受信すると、バージョンの発効をブロックn+2に記録する。そして、各ピア20は、ブロックn+3以降のトランザクション要求の処理を、バージョンアップされたスマートコントラクト実行ソフトウェアで実行する。これにより、ブロックチェーンの仕組みを利用して、スマートコントラクト実行ソフトウェアのバージョンも管理することができるので、上述の図5に示すような問題を解決することができる。
In the example of FIG. 6, when each peer 20 receives the version upgrade TX, it records the version effectuation in block n+2. Then, each peer 20 processes the transaction requests from block n+3 onward using the upgraded smart contract execution software. As a result, the version of the smart contract execution software can also be managed using the blockchain mechanism, so the problem shown in FIG. 5 above can be solved.
[機能構成の例]
図7は、第1実施形態のピア20の機能構成の例を示す図である。第1実施形態のピア20は、記録部21、制御部22及び実行部23を備える。 [Example of functional configuration]
FIG. 7 is a diagram showing an example of the functional configuration of the peer 20 of the first embodiment. A peer 20 according to the first embodiment includes arecording unit 21 , a control unit 22 and an execution unit 23 .
図7は、第1実施形態のピア20の機能構成の例を示す図である。第1実施形態のピア20は、記録部21、制御部22及び実行部23を備える。 [Example of functional configuration]
FIG. 7 is a diagram showing an example of the functional configuration of the peer 20 of the first embodiment. A peer 20 according to the first embodiment includes a
はじめに、各機能ブロックの概要について説明する。
First, an overview of each functional block will be explained.
記録部21は、発効バージョン及びブロックチェーンを記憶する。発効バージョンは、現在有効にされ、実行部23で実行されているスマートコントラクト実行ソフトウェアのバージョンを示す。ブロックチェーンは、トランザクション要求に応じて実行部23により記録されたトランザクション記録の台帳である。
The recording unit 21 stores the effective version and blockchain. The valid version indicates the version of the smart contract execution software that is currently valid and being executed by the execution unit 23 . A blockchain is a ledger of transaction records recorded by the execution unit 23 in response to transaction requests.
制御部22は、実行部23を制御する。制御部22は、例えば実行部23で実行されるスマートコントラクト実行ソフトウェアを起動する。
The control unit 22 controls the execution unit 23. The control unit 22 activates smart contract execution software executed by the execution unit 23, for example.
実行部23は、トランザクション要求に応じてスマートコントラクト実行ソフトウェアを実行することによって、トランザクション記録をブロックチェーンに記録する。
The execution unit 23 records the transaction record in the blockchain by executing the smart contract execution software in response to the transaction request.
次に、各機能ブロックの処理の流れについて説明する。
Next, the processing flow of each functional block will be explained.
はじめに、制御部22が、記録部21の発効バージョンを読み出す(ステップS1)。図7の例では、ステップS1の処理によって読み出された発効バージョンが2であるとする。
First, the control unit 22 reads the effective version of the recording unit 21 (step S1). In the example of FIG. 7, it is assumed that the effective version read out by the process of step S1 is 2.
次に、制御部22が、ステップS1の処理によって読み出された発効バージョンのスマートコントラクト実行ソフトウェアを起動する(ステップS2)。
Next, the control unit 22 activates the activated version of the smart contract execution software read by the process of step S1 (step S2).
次に、実行部23が、トランザクション要求の入力に応じて、発効バージョンのスマートコントラクト実行ソフトウェアを実行する(ステップS3)。
Next, the execution unit 23 executes the activated version of the smart contract execution software in response to the input of the transaction request (step S3).
ステップS3で入力されたトランザクション要求が、スマートコントラクト処理対象データを含むトランザクション要求(第1のトランザクション記録)である場合、実行部23は、スマートコントラクト処理対象データの処理結果を含むトランザクション記録(第1のトランザクション記録)をブロックチェーンに記録する(ステップS4)。
If the transaction request input in step S3 is a transaction request (first transaction record) that includes smart contract processing target data, the execution unit 23 generates a transaction record (first transaction record) that includes the smart contract processing target data processing result (first transaction record) is recorded in the blockchain (step S4).
ステップS3で入力されたトランザクション要求が、バージョンの発効を示す情報(発効バージョンの変更指示)を含むトランザクション要求(第2のトランザクション記録)である場合、実行部23は、バージョンの発効を示す情報を含むトランザクション記録(第2のトランザクション記録)をブロックチェーンに記録し(ステップS4)、記録部21の発効バージョンを変更指示に基づき記録(更新)する(ステップS5)。
If the transaction request input in step S3 is a transaction request (second transaction record) containing information indicating version validity (effective version change instruction), the execution unit 23 outputs information indicating version validity. The containing transaction record (second transaction record) is recorded in the block chain (step S4), and the effective version of the recording unit 21 is recorded (updated) based on the change instruction (step S5).
なお、図7に示すように、実行部23には、スマートコントラクト実行ソフトウェアの最新のバージョン(図7の例では、バージョン3)の他に、それ以前のバージョン(図7の例では、バージョン1及び2)がインストールされている。
As shown in FIG. 7, the execution unit 23 includes the latest version of the smart contract execution software (version 3 in the example of FIG. 7) and an earlier version (version 1 in the example of FIG. 7). and 2) are installed.
図7の例では、最新のバージョンのスマートコントラクト実行ソフトウェアが既にインストールされているが、最新のバージョンへのバージョンアップは発効されていない。また、バージョン1のスマートコントラクト実行ソフトウェアもインストールされている。これにより、発効バージョンのバージョンダウンの変更指示を含むトランザクション要求を受け付けることによって、バージョン1のスマートコントラクト実行ソフトウェアを実行部23で動作させることもできる。
In the example of Figure 7, the latest version of the smart contract execution software has already been installed, but an upgrade to the latest version has not yet taken effect. It also has version 1 of the smart contract execution software installed. As a result, by accepting a transaction request including a change instruction to downgrade the effective version, version 1 of the smart contract execution software can also be operated by the execution unit 23 .
なお、スマートコントラクト実行ソフトウェアは、ピア20に内蔵されたファームウェアであってもよい。
Note that the smart contract execution software may be firmware built into the peer 20.
図8は、第1実施形態のピア20の動作例を示すフローチャートである。はじめに、制御部22が、記録部21から発効バージョンを読み出し、Vに格納する(ステップS11)。ここで、Vは、発効バージョンを記憶する変数であり、制御部22による制御に用いられる。
FIG. 8 is a flow chart showing an operation example of the peer 20 of the first embodiment. First, the control unit 22 reads the effective version from the recording unit 21 and stores it in V (step S11). Here, V is a variable that stores an effective version and is used for control by the control unit 22 .
次に、制御部22は、Vに対応するスマートコントラクト実行ソフトウェアがあるか否かを判定する(ステップS12)。すなわち、制御部22は、Vが示すバージョンのスマートコントラクト実行ソフトウェアがピア20に既にインストール済みであるか否かを判定する。
Next, the control unit 22 determines whether there is smart contract execution software corresponding to V (step S12). That is, the control unit 22 determines whether or not the version of the smart contract execution software indicated by V has already been installed on the peer 20 .
Vに対応するスマートコントラクト実行ソフトウェアがある場合(ステップS12,Yes)、制御部22は、Vに対応するスマートコントラクト実行ソフトウェアを起動する(ステップS13)。
If there is smart contract execution software corresponding to V (step S12, Yes), the control unit 22 activates smart contract execution software corresponding to V (step S13).
Vに対応するスマートコントラクト実行ソフトウェアがない場合(ステップS12,No)、制御部22は、ピア20の動作を停止させる。
If there is no smart contract execution software corresponding to V (step S12, No), the control unit 22 stops the operation of the peer 20.
図9は、第1実施形態の実行部23の動作例を示すフローチャートである。図8のステップS13の処理によって、実行部23でスマートコントラクト実行ソフトウェアの動作が開始し、図9に示すフローチャートの処理が開始される。
FIG. 9 is a flowchart showing an operation example of the execution unit 23 of the first embodiment. By the processing of step S13 in FIG. 8, the execution unit 23 starts the operation of the smart contract execution software, and the processing of the flowchart shown in FIG. 9 is started.
はじめに、実行部23が、トランザクション要求の入力を受け付ける(ステップS21)。次に、実行部23は、ステップS21により受け付けられたトランザクション要求を参照し、発効バージョンの変更が要求されたか否かを判定する(ステップS22)。
First, the execution unit 23 receives input of a transaction request (step S21). Next, the execution unit 23 refers to the transaction request accepted in step S21 and determines whether or not a change in the valid version is requested (step S22).
発効バージョンの変更が要求されていない場合(ステップS22,No)、実行部23は、トランザクション要求に含まれるコントラクトIDに対応するスマートコントラクトを実行し、結果をブロックチェーンに記憶する(ステップS23)。ステップS23では、トランザクション要求に含まれるコントラクトIDに対応するスマートコントラクトは、スマートコントラクト処理対象データを処理するスマートコントラクトである。
If no change in the effective version is requested (step S22, No), the execution unit 23 executes the smart contract corresponding to the contract ID included in the transaction request and stores the result in the blockchain (step S23). In step S23, the smart contract corresponding to the contract ID included in the transaction request is the smart contract that processes the smart contract processing target data.
発効バージョンの変更が要求された場合(ステップS22,Yes)、実行部23は、トランザクション要求に含まれるコントラクトIDに対応するスマートコントラクトを実行し、結果をブロックチェーンに記憶し、同時に、要求された発効バージョンを記録部21に記憶(更新)する(ステップS24)。ステップS24では、トランザクション要求に含まれるコントラクトIDに対応するスマートコントラクトは、スマートコントラクト実行ソフトウェアのバージョンの変更指示を処理するスマートコントラクトである。
If a change in the effective version is requested (step S22, Yes), the execution unit 23 executes the smart contract corresponding to the contract ID included in the transaction request, stores the result in the blockchain, and at the same time The valid version is stored (updated) in the recording unit 21 (step S24). In step S24, the smart contract corresponding to the contract ID included in the transaction request is the smart contract that processes the instruction to change the version of the smart contract execution software.
なお、ステップS24において、記録部21の発効バージョンの記憶(更新)処理と、バージョンの変更指示を含むトランザクション記録のブロックチェーンへの記録処理と、はアトミックに実行される。すなわち、実行部23は、何らかの理由でいずれか一方の処理がエラーになった場合は、両方の処理をエラーにする。
Note that in step S24, the processing of storing (updating) the effective version in the recording unit 21 and the processing of recording the transaction record including the version change instruction to the blockchain are atomically executed. That is, if one of the processes results in an error for some reason, the execution unit 23 makes both processes an error.
ステップS24の処理の後、実行部23は、スマートコントラクト実行ソフトウェアを停止し、処理は図8のステップS11に進む(スマートコントラクト実行ソフトウェアの再起動)。
After the process of step S24, the execution unit 23 stops the smart contract execution software, and the process proceeds to step S11 in FIG. 8 (restarting the smart contract execution software).
なお、例えば、パーミッション型ブロックチェーンを構成するピア20は、所定の台数(例えば51%以上)が動作していれば、全体として処理を継続できる。したがって、バージョンアップ(またはバージョンダウン)されたスマートコントラクト実行ソフトウェアが、すべてのピア20にインストールされる前に、バージョン発効が行われてもよい。
It should be noted that, for example, if a predetermined number (for example, 51% or more) of the peers 20 that make up the permission-based blockchain are operating, processing can be continued as a whole. Therefore, version activation may occur before the upgraded (or downgraded) smart contract execution software is installed on all peers 20 .
具体的には、制御装置30は、例えば、変更指示で指定されるバージョンのスマートコントラクト実行ソフトウェアのインストールの完了通知をピア20から受信する。そして、制御装置30は、インストールが完了したピア20の数が閾値(第1の閾値)以上の場合、当該バージョンの変更指示を含むトランザクション要求を複数のピア20に送信する。
Specifically, for example, the control device 30 receives from the peer 20 a completion notification of the installation of the version of the smart contract execution software specified in the change instruction. Then, when the number of peers 20 for which installation has been completed is equal to or greater than a threshold (first threshold), the control device 30 transmits a transaction request including a version change instruction to a plurality of peers 20 .
この場合、バージョンアップされたスマートコントラクト実行ソフトウェアをインストールしていないピア20では、バージョン発効の次のブロックを処理できずにスマートコントラクト実行ソフトウェアが停止する。しかしながら、後に当該ピア20に当該スマートコントラクト実行ソフトウェアがインストールされれば、処理を再開することができる。
In this case, peers 20 that do not have the upgraded smart contract execution software installed cannot process the next block after the version becomes effective, and the smart contract execution software stops. However, if the smart contract execution software is later installed on the peer 20, processing can be resumed.
以上、説明したように、第1実施形態のブロックチェーンシステム100では、制御部22が、記録部21から発効バージョンを読み出し、当該発効バージョンのスマートコントラクト実行ソフトウェアを起動する。実行部23が、スマートコントラクト処理対象データを含む第1のトランザクション要求を受け付けると、発効バージョンのスマートコントラクト実行ソフトウェアを実行することによって、スマートコントラクト処理対象データを処理する。そして、実行部23が、スマートコントラクト処理対象データの処理結果を含む第1のトランザクション記録をブロックチェーンに記録する。
As described above, in the blockchain system 100 of the first embodiment, the control unit 22 reads the effective version from the recording unit 21 and activates the smart contract execution software of the effective version. When the execution unit 23 receives the first transaction request including smart contract processing target data, it processes the smart contract processing target data by executing the effective version of the smart contract execution software. Then, the execution unit 23 records the first transaction record including the processing result of the smart contract processing target data in the blockchain.
第1実施形態のブロックチェーンシステム100によれば、スマートコントラクト実行ソフトウェアのバージョンが異なる状態になることを防ぐことができる。これにより、ピア20間でブロックチェーンの不整合が生じることを防ぐことができる。
According to the blockchain system 100 of the first embodiment, it is possible to prevent the versions of the smart contract execution software from becoming different. This can prevent blockchain inconsistency between peers 20 .
例えば、上述の図6に示すように、各ピア20のスマートコントラクト実行ソフトウェアのバージョンが更新されることによって、例えば、スマートコントラクト実行ソフトウェアのバージョンアップを改ざんと区別して行うことができる。
For example, as shown in FIG. 6 above, by updating the version of the smart contract execution software of each peer 20, for example, smart contract execution software can be upgraded separately from tampering.
また例えば、スマートコントラクト実行ソフトウェアのインストール自体は別々に行うことができる。具体的には、ブロックチェーンシステム100に含まれる複数のピア20のスマートコントラクト実行ソフトウェアのバージョンをローリングアップデートにより更新することが可能になる。これにより、例えばブロックチェーンシステム100全体を停止させることなく、スマートコントラクト実行ソフトウェアのバージョンを更新することができる。
Also, for example, the smart contract execution software itself can be installed separately. Specifically, it becomes possible to update the version of the smart contract execution software of multiple peers 20 included in the blockchain system 100 by rolling update. Thereby, for example, the version of smart contract execution software can be updated without stopping the entire blockchain system 100 .
また例えば、バージョンアップ又はバージョンダウンの発効時点を、ブロックチェーンシステム100の管理者が柔軟に決定することができる。
Also, for example, the administrator of the blockchain system 100 can flexibly determine the effective point of version upgrade or version down.
(第1実施形態の変形例)
次に第1実施形態の変形例について説明する。変形例の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第1実施形態では、例えば、存在しないバージョン番号を間違って指定して発効した場合などでは、すべてのピア20でスマートコントラクト実行ソフトウェアが停止してしまう。 (Modified example of the first embodiment)
Next, a modified example of the first embodiment will be described. In the explanation of the modified example, explanations similar to those of the first embodiment will be omitted, and differences from the first embodiment will be explained. In the first embodiment, for example, if a non-existent version number is specified by mistake and the contract goes into effect, the smart contract execution software stops at all peers 20 .
次に第1実施形態の変形例について説明する。変形例の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第1実施形態では、例えば、存在しないバージョン番号を間違って指定して発効した場合などでは、すべてのピア20でスマートコントラクト実行ソフトウェアが停止してしまう。 (Modified example of the first embodiment)
Next, a modified example of the first embodiment will be described. In the explanation of the modified example, explanations similar to those of the first embodiment will be omitted, and differences from the first embodiment will be explained. In the first embodiment, for example, if a non-existent version number is specified by mistake and the contract goes into effect, the smart contract execution software stops at all peers 20 .
そこで、変形例では、制御部22が、各ピア20にスマートコントラクト実行ソフトウェアのインストールを完了したタイミングで、インストールの完了をブロックチェーンに記録する。実行部23は、バージョン発効のトランザクション要求を処理する際に、スマートコントラクトの処理でその記録を参照し、すべての(または、一部の十分な数の)ピア20のソフトウェアのインストールが完了していることを確認する。
Therefore, in the modified example, the control unit 22 records the completion of the installation in the blockchain at the timing when the installation of the smart contract execution software on each peer 20 is completed. The execution unit 23 refers to the record in the processing of the smart contract when processing the version-issued transaction request, and confirms that all (or a sufficient number of) peers 20 have completed installation of the software. make sure there is
インストールが完了していることが確認できない場合には、実行部23は、バージョン発効のトランザクション要求をエラーとして処理して、当該トランザクション要求で指定されたバージョンの発効を行わない。
If it cannot be confirmed that the installation has been completed, the execution unit 23 treats the version activation transaction request as an error and does not activate the version specified in the transaction request.
具体的には、変形例では、制御部22は、例えば、スマートコントラクト実行ソフトウェアのインストールが完了した後に、当該スマートコントラクト実行ソフトウェアがインストールされたピア20を識別する識別情報と、インストールされたスマートコントラクト実行ソフトウェアのバージョンと、を含むインストール状態情報を引数とするトランザクション要求を送信する。その結果、インストール状態情報がブロックチェーンに記録される。実行部23は、発効バージョンの変更指示を含むトランザクション要求(第2のトランザクション要求)を受け付けると、ブロックチェーンに記録されたインストール状態情報から、インストールが完了したピア20の数を特定する。そして、実行部23は、インストールが完了したピア20の数が閾値(第2の閾値)以上の場合、当該第2のトランザクション要求を処理し、インストールが完了したピア20の数が第2の閾値未満の場合、当該第2のトランザクション要求を処理しない。
Specifically, in the modified example, for example, after the installation of the smart contract execution software is completed, the control unit 22 includes identification information for identifying the peer 20 on which the smart contract execution software is installed, and the installed smart contract. Send a transaction request with arguments of installation state information including the version of the running software and As a result, installation state information is recorded on the blockchain. When the execution unit 23 receives a transaction request (second transaction request) including an effective version change instruction, the execution unit 23 identifies the number of peers 20 for which installation has been completed from the installation state information recorded in the blockchain. Then, when the number of peers 20 whose installation has been completed is equal to or greater than the threshold (second threshold), the execution unit 23 processes the second transaction request, and the number of peers 20 whose installation has been completed exceeds the second threshold. If less, do not process the second transaction request.
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第2実施形態では、バージョンの発効を、ブロック番号がN(Nは、1以上の任意の整数)のブロックから発効可能にする実施形態について説明する。 (Second embodiment)
Next, a second embodiment will be described. In the description of the second embodiment, descriptions similar to those of the first embodiment will be omitted, and differences from the first embodiment will be described. In the second embodiment, an embodiment will be described in which a version can be validated from a block with a block number of N (N is an arbitrary integer equal to or greater than 1).
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第2実施形態では、バージョンの発効を、ブロック番号がN(Nは、1以上の任意の整数)のブロックから発効可能にする実施形態について説明する。 (Second embodiment)
Next, a second embodiment will be described. In the description of the second embodiment, descriptions similar to those of the first embodiment will be omitted, and differences from the first embodiment will be described. In the second embodiment, an embodiment will be described in which a version can be validated from a block with a block number of N (N is an arbitrary integer equal to or greater than 1).
第2実施形態では、バージョン発効のトランザクション要求に含まれる引数は、バージョン発効の開始ブロック番号Nを更に含む。
In the second embodiment, the argument included in the version issuance transaction request further includes the version issuance start block number N.
また、記録部21は、現在の発効バージョンだけでなく、次の発効バージョンと、開始ブロック番号Nとを更に記録する。開始ブロック番号Nは、次の発効バージョンで処理を開始するブロックのブロック番号を示す。
In addition, the recording unit 21 further records not only the current effective version, but also the next effective version and the starting block number N. The starting block number N indicates the block number of the block to start processing in the next effective version.
第2実施形態のピア20の動作例を示すフローチャートは、第1実施形態と同様(図8参照)なので説明を省略する。
A flowchart showing an operation example of the peer 20 of the second embodiment is the same as that of the first embodiment (see FIG. 8), so description thereof will be omitted.
図10は、第2実施形態の実行部23の動作例を示すフローチャートである。図8のステップS13の処理によって、実行部23でスマートコントラクト実行ソフトウェアの動作が開始し、図10に示すフローチャートの処理が開始される。
FIG. 10 is a flowchart showing an operation example of the execution unit 23 of the second embodiment. By the processing of step S13 in FIG. 8, the execution unit 23 starts the operation of the smart contract execution software, and the processing of the flowchart shown in FIG. 10 is started.
はじめに、実行部23が、記録部21から、開始ブロック番号を読み出し、処理中のブロック番号が開始ブロック番号以上であるか否かを判定する(ステップS31)。
First, the execution unit 23 reads the starting block number from the recording unit 21 and determines whether or not the block number being processed is greater than or equal to the starting block number (step S31).
処理中のブロック番号が開始ブロック番号以上である場合(ステップS31,Yes)、実行部23は、スマートコントラクト実行ソフトウェアを停止し(ステップS37)、処理は図8のステップS11に進む(スマートコントラクト実行ソフトウェアの再起動)。ただし、第2実施形態のステップS11では、変数Vには、開始ブロック番号から有効にされる次の発効バージョンが格納される点が、第1実施形態とは異なる。
If the block number being processed is greater than or equal to the start block number (step S31, Yes), the execution unit 23 stops the smart contract execution software (step S37), and the process proceeds to step S11 in FIG. software restart). However, in step S11 of the second embodiment, variable V stores the next validated version from the starting block number, which is different from the first embodiment.
次に、実行部23が、トランザクション要求の入力を受け付ける(ステップS32)。次に、実行部23は、ステップS32により受け付けられたトランザクション要求を参照し、発効バージョンの変更が要求されたか否かを判定する(ステップS33)。
Next, the execution unit 23 accepts the input of the transaction request (step S32). Next, the execution unit 23 refers to the transaction request accepted in step S32, and determines whether or not a change in the valid version is requested (step S33).
発効バージョンの変更が要求されていない場合(ステップS33,No)、実行部23は、トランザクション要求に含まれるコントラクトIDに対応するスマートコントラクトを実行し、結果をブロックチェーンに記憶する(ステップS34)。ステップS33では、トランザクション要求に含まれるコントラクトIDに対応するスマートコントラクトは、通常のスマートコントラクト処理対象データを処理するスマートコントラクトである。次に、実行部23は、処理中のブロック番号に1を加算し(ステップS35)、処理はステップS31に戻る。
If no change in the effective version is requested (step S33, No), the execution unit 23 executes the smart contract corresponding to the contract ID included in the transaction request and stores the result in the blockchain (step S34). In step S33, the smart contract corresponding to the contract ID included in the transaction request is a smart contract that processes normal smart contract processing target data. Next, the execution unit 23 adds 1 to the block number being processed (step S35), and the process returns to step S31.
発効バージョンの変更が要求された場合(ステップS33,Yes)、実行部23は、トランザクション要求に含まれるコントラクトIDに対応するスマートコントラクトを実行し、結果をブロックチェーンに記憶し、同時に、要求された発効バージョンと開始ブロック番号とを記録部21に記憶する(ステップS36)。ステップS36では、トランザクション要求に含まれるコントラクトIDに対応するスマートコントラクトは、スマートコントラクト実行ソフトウェアのバージョンの変更指示を処理するスマートコントラクトである。開始ブロック番号は、現在、処理中のブロック番号+Nである。次に、実行部23は、処理中のブロック番号に1を加算し(ステップS35)、処理はステップS31に戻る。
If a change in the effective version is requested (step S33, Yes), the execution unit 23 executes the smart contract corresponding to the contract ID included in the transaction request, stores the result in the blockchain, and at the same time The effective version and the starting block number are stored in the recording unit 21 (step S36). In step S36, the smart contract corresponding to the contract ID included in the transaction request is the smart contract that processes the instruction to change the version of the smart contract execution software. The starting block number is the number of the block currently being processed +N. Next, the execution unit 23 adds 1 to the block number being processed (step S35), and the process returns to step S31.
以上、説明したように、第2実施形態では、実行部23が、次の発効バージョンと、次の発効バージョンで処理を開始するブロックのブロック番号を示す開始ブロック番号と、を含む第2のトランザクション要求を受け付けると、次の発効バージョンを記録部21に記憶する。同時に、実行部23は、次の発効バージョンと、開始ブロック番号とを含む第2のトランザクション記録をブロックチェーンに記録する。実行部23は、第1のトランザクション要求を受け付けると、当該第1のトランザクション記録が記録されるブロックのブロック番号が開始ブロック番号以上である場合、スマートコントラクト実行ソフトウェアを停止する。そして、制御部22は、スマートコントラクト実行ソフトウェアが停止すると、次の発効バージョンを記録部21から読み出し、次の発効バージョンのスマートコントラクト実行ソフトウェアを起動する。
As described above, in the second embodiment, the execution unit 23 executes the second transaction including the next valid version and the start block number indicating the block number of the block whose processing is to be started in the next valid version. When the request is accepted, the next valid version is stored in the recording unit 21 . At the same time, the execution unit 23 records a second transaction record on the blockchain, including the next effective version and the starting block number. When receiving the first transaction request, the execution unit 23 stops the smart contract execution software if the block number of the block in which the first transaction record is recorded is greater than or equal to the start block number. Then, when the smart contract execution software stops, the control unit 22 reads the next effective version from the recording unit 21 and starts the smart contract execution software of the next effective version.
最後に、第1及び第2実施形態のピア20のハードウェア構成の例について説明する。
Finally, an example hardware configuration of the peer 20 of the first and second embodiments will be described.
[ハードウェア構成の例]
図11は、第1及び第2実施形態のピア20のハードウェア構成の例を示す図である。第1及び第2実施形態のピア20は、プロセッサ201、主記憶装置202、補助記憶装置203、表示装置204、入力装置205及び通信装置206を備える。プロセッサ201、主記憶装置202、補助記憶装置203、表示装置204、入力装置205及び通信装置206は、バス210を介して接続されている。 [Example of hardware configuration]
FIG. 11 is a diagram showing an example hardware configuration of the peer 20 according to the first and second embodiments. The peer 20 of the first and second embodiments comprises aprocessor 201 , main storage device 202 , auxiliary storage device 203 , display device 204 , input device 205 and communication device 206 . Processor 201 , main storage device 202 , auxiliary storage device 203 , display device 204 , input device 205 and communication device 206 are connected via bus 210 .
図11は、第1及び第2実施形態のピア20のハードウェア構成の例を示す図である。第1及び第2実施形態のピア20は、プロセッサ201、主記憶装置202、補助記憶装置203、表示装置204、入力装置205及び通信装置206を備える。プロセッサ201、主記憶装置202、補助記憶装置203、表示装置204、入力装置205及び通信装置206は、バス210を介して接続されている。 [Example of hardware configuration]
FIG. 11 is a diagram showing an example hardware configuration of the peer 20 according to the first and second embodiments. The peer 20 of the first and second embodiments comprises a
なお、第1及び第2実施形態のピア20は、上記構成の一部が備えられていなくてもよい。例えば、ピア20が、外部の装置の入力機能及び表示機能を利用可能な場合、ピア20に表示装置204及び入力装置205が備えられていなくてもよい。
It should be noted that the peers 20 of the first and second embodiments do not have to include part of the above configuration. For example, if the peer 20 can use the input function and display function of an external device, the peer 20 may not be provided with the display device 204 and the input device 205 .
プロセッサ201は、補助記憶装置203から主記憶装置202に読み出されたプログラムを実行する。主記憶装置202は、ROM及びRAM等のメモリである。補助記憶装置203は、HDD(Hard Disk Drive)及びメモリカード等である。
The processor 201 executes programs read from the auxiliary storage device 203 to the main storage device 202 . The main storage device 202 is memory such as ROM and RAM. The auxiliary storage device 203 is an HDD (Hard Disk Drive), a memory card, or the like.
表示装置204は、例えば液晶ディスプレイ等である。入力装置205は、ピア20を操作するためのインターフェースである。なお、表示装置204及び入力装置205は、表示機能と入力機能とを有するタッチパネル等により実現されていてもよい。通信装置206は、他の装置と通信するためのインターフェースである。
The display device 204 is, for example, a liquid crystal display. Input device 205 is an interface for operating peer 20 . Note that the display device 204 and the input device 205 may be realized by a touch panel or the like having a display function and an input function. Communication device 206 is an interface for communicating with other devices.
ピア20で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R及びDVD等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
The program executed by the peer 20 is recorded in a computer-readable storage medium such as a CD-ROM, a memory card, a CD-R and a DVD as a file in an installable format or an executable format. Provided as a product.
またピア20で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またピア20で実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
Alternatively, the program executed by the peer 20 may be stored on a computer connected to a network such as the Internet, and provided by being downloaded via the network. Alternatively, the program to be executed by the peer 20 may be provided via a network such as the Internet without being downloaded.
またピア20のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
Also, the program of the peer 20 may be configured to be pre-installed in a ROM or the like and provided.
ピア20で実行されるプログラムは、上述の図7の機能構成のうち、プログラムによっても実現可能な機能を含むモジュール構成となっている。当該各機能は、実際のハードウェアとしては、プロセッサ201が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置202上にロードされる。すなわち上記各機能ブロックは主記憶装置202上に生成される。
The program executed by the peer 20 has a module configuration that includes functions that can also be realized by the program, out of the functional configuration in FIG. 7 described above. As actual hardware, each function block is loaded onto the main storage device 202 by the processor 201 reading out a program from a storage medium and executing the program. That is, each functional block described above is generated on the main memory device 202 .
なお上述した図7の各機能の一部又は全部をソフトウェアにより実現せずに、IC等のハードウェアにより実現してもよい。
Some or all of the functions in FIG. 7 described above may be implemented by hardware such as an IC instead of by software.
また複数のプロセッサ201を用いて各機能を実現してもよく、その場合、各プロセッサ201は、各機能のうち1つを実現してもよいし、各機能のうち2以上を実現してもよい。
Further, each function may be implemented using a plurality of processors 201, in which case each processor 201 may implement one of each function, or may implement two or more of each function. good.
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
Although several embodiments of the invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and modifications can be made without departing from the scope of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are included in the scope of the invention described in the claims and equivalents thereof.
Claims (11)
- 複数のピアで構成されるブロックチェーンシステムであって、
前記ピアは、
記録部から発効バージョンを読み出し、前記発効バージョンのスマートコントラクト実行ソフトウェアを起動する制御部と、
スマートコントラクト処理対象データを含む第1のトランザクション要求を受け付けると、前記発効バージョンのスマートコントラクト実行ソフトウェアを実行することによって、前記スマートコントラクト処理対象データを処理し、前記スマートコントラクト処理対象データの処理結果を含む第1のトランザクション記録をブロックチェーンに記録する実行部と、
を備えるブロックチェーンシステム。 A blockchain system consisting of multiple peers,
The peer is
a control unit that reads an effective version from a recording unit and activates smart contract execution software of the effective version;
When a first transaction request including smart contract processing target data is received, the smart contract processing target data is processed by executing the effective version of the smart contract execution software, and a processing result of the smart contract processing target data is obtained. an execution unit that records on the blockchain a first transaction record that includes;
Blockchain system with - 前記実行部は、前記発効バージョンの変更指示を含む第2のトランザクション要求を受け付けると、前記変更指示に基づき前記記録部の発効バージョンを更新し、前記発効バージョンの変更指示を含む第2のトランザクション記録を前記ブロックチェーンに記録し、前記スマートコントラクト実行ソフトウェアを停止し、
前記制御部は、前記スマートコントラクト実行ソフトウェアが停止すると、更新された前記発効バージョンを前記記録部から読み出し、前記更新された発効バージョンのスマートコントラクト実行ソフトウェアを起動する、
請求項1に記載のブロックチェーンシステム。 When receiving a second transaction request including the effective version change instruction, the execution unit updates the effective version of the recording unit based on the change instruction, and creates a second transaction record including the effective version change instruction. to the blockchain, stop the smart contract execution software,
When the smart contract execution software stops, the control unit reads the updated effective version from the recording unit and starts the updated effective version of the smart contract execution software.
The blockchain system according to claim 1. - 前記実行部は、前記記録部の発効バージョンの更新と、前記第2のトランザクション記録の前記ブロックチェーンへの記録と、を同時に実行する、
請求項2に記載のブロックチェーンシステム。 The execution unit concurrently updates the effective version of the recording unit and records the second transaction record on the blockchain.
The blockchain system according to claim 2. - 前記変更指示で指定されるバージョンの前記スマートコントラクト実行ソフトウェアのインストールの完了通知を前記ピアから受信し、インストールが完了した前記ピアの数が第1の閾値以上の場合、前記第2のトランザクション要求を前記複数のピアに送信する制御装置を更に備える、
請求項2又は3に記載のブロックチェーンシステム。 receiving from the peers an installation completion notification of the smart contract execution software of the version specified by the change instruction, and issuing the second transaction request when the number of the peers for which installation has been completed is equal to or greater than a first threshold; further comprising a controller that transmits to the plurality of peers;
The blockchain system according to claim 2 or 3. - 前記発効バージョンの変更指示は、前記スマートコントラクト実行ソフトウェアのバージョンアップの指示を含む、
請求項2乃至4のいずれか1項に記載のブロックチェーンシステム。 The effective version change instruction includes an instruction to upgrade the smart contract execution software,
The blockchain system according to any one of claims 2 to 4. - 前記発効バージョンの変更指示は、前記スマートコントラクト実行ソフトウェアのバージョンダウンの指示を含む、
請求項2乃至4のいずれか1項に記載のブロックチェーンシステム。 The effective version change instruction includes an instruction to downgrade the smart contract execution software,
The blockchain system according to any one of claims 2 to 4. - 前記制御部は、前記スマートコントラクト実行ソフトウェアのインストールが完了した後に、前記スマートコントラクト実行ソフトウェアがインストールされたピアを識別する識別情報と、インストールされた前記スマートコントラクト実行ソフトウェアのバージョンと、を含むインストール状態情報を前記ブロックチェーンに記録し、
前記実行部は、前記第2のトランザクション要求を受け付けると、前記ブロックチェーンに記録された前記インストール状態情報から、インストールが完了した前記ピアの数を特定し、インストールが完了した前記ピアの数が第2の閾値以上の場合、前記第2のトランザクション要求を処理し、インストールが完了した前記ピアの数が前記第2の閾値未満の場合、前記第2のトランザクション要求を処理しない、
請求項2乃至6のいずれか1項に記載のブロックチェーンシステム。 After installation of the smart contract execution software is completed, the control unit determines an installation state including identification information for identifying a peer on which the smart contract execution software is installed and a version of the installed smart contract execution software. record information on the blockchain;
When receiving the second transaction request, the execution unit identifies the number of the peers whose installation has been completed from the installation state information recorded in the blockchain, and determines the number of the peers whose installation has been completed. if greater than or equal to a threshold of two, process the second transaction request, and if the number of peers with completed installation is less than the second threshold, do not process the second transaction request;
The blockchain system according to any one of claims 2 to 6. - 前記実行部は、次の発効バージョンと、前記次の発効バージョンで処理を開始するブロックのブロック番号を示す開始ブロック番号と、を含む第2のトランザクション要求を受け付けると、前記次の発効バージョンを前記記録部に記憶し、前記次の発効バージョンと、前記開始ブロック番号とを含む第2のトランザクション記録を前記ブロックチェーンに記録し、
前記実行部は、前記第1のトランザクション要求を受け付けると、前記第1のトランザクション記録が記録されるブロックのブロック番号が開始ブロック番号以上である場合、前記スマートコントラクト実行ソフトウェアを停止し、
前記制御部は、前記スマートコントラクト実行ソフトウェアが停止すると、前記次の発効バージョンを前記記録部から読み出し、前記次の発効バージョンのスマートコントラクト実行ソフトウェアを起動する、
請求項1に記載のブロックチェーンシステム。 When receiving a second transaction request including a next effective version and a start block number indicating a block number of a block whose processing is to be started with the next effective version, the execution unit transfers the next effective version to the record a second transaction record on the blockchain, stored in a record unit, the second transaction record including the next effective version and the starting block number;
the execution unit, upon receiving the first transaction request, if a block number of a block in which the first transaction record is recorded is greater than or equal to a start block number, suspends the smart contract execution software;
When the smart contract execution software stops, the control unit reads the next effective version from the recording unit and activates the smart contract execution software of the next effective version.
The blockchain system according to claim 1. - 前記スマートコントラクト実行ソフトウェアは、前記ピアに内蔵されたファームウェアである、
請求項1乃至8のいずれか1項に記載のブロックチェーンシステム。 the smart contract execution software is firmware embedded in the peer;
The blockchain system according to any one of claims 1 to 8. - 複数のピアで構成されるブロックチェーンシステムのブロックチェーンシステム更新方法であって、
前記ピアが、記録部から発効バージョンを読み出し、前記発効バージョンのスマートコントラクト実行ソフトウェアを起動するステップと、
前記ピアが、スマートコントラクト処理対象データを含む第1のトランザクション要求を受け付けると、前記発効バージョンのスマートコントラクト実行ソフトウェアを実行することによって、前記スマートコントラクト処理対象データを処理し、前記スマートコントラクト処理対象データの処理結果を含む第1のトランザクション記録をブロックチェーンに記録するステップと、
を含むブロックチェーンシステム更新方法。 A blockchain system update method for a blockchain system composed of a plurality of peers, comprising:
said peer reading an active version from a record and activating said active version of smart contract execution software;
When the peer receives a first transaction request including smart contract processing target data, the peer executes the effective version of the smart contract execution software to process the smart contract processing target data, and obtains the smart contract processing target data. recording on the blockchain a first transaction record containing the result of processing of
Blockchain system update method, including; - ブロックチェーンシステムを構成する複数のピアを、
記録部から発効バージョンを読み出し、前記発効バージョンのスマートコントラクト実行ソフトウェアを起動する制御部と、
スマートコントラクト処理対象データを含む第1のトランザクション要求を受け付けると、前記発効バージョンのスマートコントラクト実行ソフトウェアを実行することによって、前記スマートコントラクト処理対象データを処理し、前記スマートコントラクト処理対象データの処理結果を含む第1のトランザクション記録をブロックチェーンに記録する実行部、
として機能させるためのプログラム。 Multiple peers that make up the blockchain system,
a control unit that reads an effective version from a recording unit and activates smart contract execution software of the effective version;
When a first transaction request including smart contract processing target data is received, the smart contract processing target data is processed by executing the effective version of the smart contract execution software, and a processing result of the smart contract processing target data is obtained. an execution unit that records on the blockchain a first transaction record that includes;
A program to function as
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/047207 WO2023119398A1 (en) | 2021-12-21 | 2021-12-21 | Blockchain system, blockchain system update method, and program |
JP2023568802A JPWO2023119398A1 (en) | 2021-12-21 | 2021-12-21 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/047207 WO2023119398A1 (en) | 2021-12-21 | 2021-12-21 | Blockchain system, blockchain system update method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023119398A1 true WO2023119398A1 (en) | 2023-06-29 |
Family
ID=86901554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/047207 WO2023119398A1 (en) | 2021-12-21 | 2021-12-21 | Blockchain system, blockchain system update method, and program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2023119398A1 (en) |
WO (1) | WO2023119398A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019207804A1 (en) * | 2018-04-27 | 2019-10-31 | 株式会社東芝 | Tampering detection system and tampering detection method |
WO2021036545A1 (en) * | 2019-08-29 | 2021-03-04 | 腾讯科技(深圳)有限公司 | Smart contract-based data processing method, and device and storage medium |
JP2021106323A (en) * | 2019-12-26 | 2021-07-26 | 富士電機株式会社 | Anomaly detection system and anomaly detection method |
WO2021156909A1 (en) * | 2020-02-03 | 2021-08-12 | 株式会社日立製作所 | Method for executing smart contract, system for executing smart contract, and node |
-
2021
- 2021-12-21 JP JP2023568802A patent/JPWO2023119398A1/ja active Pending
- 2021-12-21 WO PCT/JP2021/047207 patent/WO2023119398A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019207804A1 (en) * | 2018-04-27 | 2019-10-31 | 株式会社東芝 | Tampering detection system and tampering detection method |
WO2021036545A1 (en) * | 2019-08-29 | 2021-03-04 | 腾讯科技(深圳)有限公司 | Smart contract-based data processing method, and device and storage medium |
JP2021106323A (en) * | 2019-12-26 | 2021-07-26 | 富士電機株式会社 | Anomaly detection system and anomaly detection method |
WO2021156909A1 (en) * | 2020-02-03 | 2021-08-12 | 株式会社日立製作所 | Method for executing smart contract, system for executing smart contract, and node |
Non-Patent Citations (1)
Title |
---|
KANEKO, YUSUKE ET AL.: "Utilization, Implementation, and Issues Regarding Trade Business Block Chain", DIGITAL PRACTICES, INFORMATION PROCESSING SOCIETY OF JAPAN, JP, vol. 10, no. 3, 15 July 2019 (2019-07-15), JP , pages 492 - 505, XP009547269, ISSN: 2188-4390 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2023119398A1 (en) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210211435A1 (en) | Secure, non-disruptive firmware updating | |
US8316224B2 (en) | Systems and methods for tracking a history of changes associated with software packages and configuration management in a computing system | |
KR101150041B1 (en) | System and method for updating files utilizing delta compression patching | |
RU2357279C2 (en) | System and control method and transmission of software updates | |
AU2004279162B2 (en) | System and method for a software distribution service | |
AU2011329096B2 (en) | Networked recovery system | |
US8443361B2 (en) | Systems and methods for tracking a history of changes associated with software packages in a computing system | |
US9959125B2 (en) | Field update of boot loader using regular device firmware update procedure | |
US6202207B1 (en) | Method and a mechanism for synchronized updating of interoperating software | |
US20110173599A1 (en) | Home network system, gateway device, and firmware update method | |
EP3766203B1 (en) | Autonomous secrets renewal and distribution | |
KR20060114619A (en) | System and method for updating installation components in a networked environment | |
US20090100420A1 (en) | Automatic Acquisition and Installation of Software Upgrades for Collections of Virtual Machines | |
US20110131564A1 (en) | Systems and methods for generating a version identifier for a computing system based on software packages installed on the computing system | |
US20080222043A1 (en) | System and method for trans-vendor license registration and recovery | |
CN114035830A (en) | Software upgrading method and device and electronic equipment | |
WO2023119398A1 (en) | Blockchain system, blockchain system update method, and program | |
JP7363853B2 (en) | OTA master, center, system, update method, update program, and vehicle | |
JP7380468B2 (en) | Software update device, update control method, update control program, server, OTA master and center | |
JP2009217395A (en) | Virtual server software update system, virtual server software update method, server and program for server | |
CN115309457A (en) | Application instance restarting method and device, electronic equipment and readable storage medium | |
JP2003202990A (en) | System and method for managing and starting program, program and recording medium | |
KR101437687B1 (en) | Financial terminal, method for business synchronizing thereof, and financial system | |
JP7341376B2 (en) | Information processing device, information processing method, and information processing program | |
US11947951B2 (en) | Center, distribution control method, and non-transitory storage medium |
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: 21968835 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023568802 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |