WO2021125109A1 - 制御方法、装置、及び、プログラム - Google Patents

制御方法、装置、及び、プログラム Download PDF

Info

Publication number
WO2021125109A1
WO2021125109A1 PCT/JP2020/046402 JP2020046402W WO2021125109A1 WO 2021125109 A1 WO2021125109 A1 WO 2021125109A1 JP 2020046402 W JP2020046402 W JP 2020046402W WO 2021125109 A1 WO2021125109 A1 WO 2021125109A1
Authority
WO
WIPO (PCT)
Prior art keywords
smart contract
transaction data
child
distributed ledger
parent
Prior art date
Application number
PCT/JP2020/046402
Other languages
English (en)
French (fr)
Inventor
勇二 海上
淳児 道山
添田 純一郎
大森 基司
哲司 渕上
雄揮 廣瀬
直央 西田
雅裕 田口
Original Assignee
パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to JP2021565562A priority Critical patent/JPWO2021125109A1/ja
Priority to CN202080082894.7A priority patent/CN114746886A/zh
Publication of WO2021125109A1 publication Critical patent/WO2021125109A1/ja
Priority to US17/836,349 priority patent/US20220300958A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions

Definitions

  • This disclosure relates to control methods, devices, and programs.
  • Patent Document 1 discloses a method of automatically executing a trade transaction procedure using a smart contract technology.
  • Patent Document 1 may cause inconsistency in the operation of the management system that manages the distributed ledger, and this management system may not operate correctly.
  • the present disclosure has been made in view of the above circumstances, and an object of the present disclosure is to provide a control method, a device, and a program capable of correctly operating a management system that manages a distributed ledger.
  • the control method is a control method executed by one of the plurality of devices in a management system including a plurality of devices having a distributed ledger, and the distributed ledger is , Select one of a parent smart contract that includes an auto-generation function that automatically generates a new smart contract, and a plurality of child smart contracts that are generated by executing the auto-generation function on the plurality of devices.
  • the management function to be managed is stored, the first child smart contract is generated by executing the automatic generation function, and the first transaction data including the generated first child smart contract is transmitted to the plurality of devices.
  • the second child smart generated by transmitting to the other device, storing the first transaction data in the distributed ledger of the one device, and executing the automatic generation function in the other device.
  • the first Of the child smart contract and the second child smart contract By receiving the second transaction data including the contract, storing the second transaction data in the distributed ledger of the one device, and executing the management function stored in the distributed ledger, the first Of the child smart contract and the second child smart contract, one child smart contract is managed in association with the parent smart contract.
  • the management system that manages the distributed ledger can be operated correctly.
  • FIG. 1 is a diagram showing an example of a configuration of a management system according to an embodiment.
  • FIG. 2 is a diagram showing an example of a server configuration according to the embodiment.
  • FIG. 3 is an explanatory diagram schematically showing the first transaction data according to the embodiment.
  • FIG. 4 is a sequence diagram showing an example of the management process of the management system according to the embodiment.
  • FIG. 5 is a sequence diagram showing an example of management processing of the management system according to the embodiment.
  • FIG. 6 is a diagram showing a first example of the setting process executed by the management function according to the embodiment.
  • FIG. 7 is a diagram showing a first example of the management function according to the embodiment.
  • FIG. 8 is a diagram showing a second example of the setting process executed by the management function according to the embodiment.
  • FIG. 9 is a diagram showing a second example of the management function according to the embodiment.
  • FIG. 10 is a diagram showing a third example of the setting process executed by the management function according to the embodiment.
  • FIG. 11 is a diagram showing a third example of the management function according to the embodiment.
  • FIG. 12 is a diagram showing a fourth example of the setting process executed by the management function according to the embodiment.
  • FIG. 13 is a diagram showing a fourth example of the management function according to the embodiment.
  • FIG. 14 is a diagram showing a fifth example of the setting process executed by the management function according to the embodiment.
  • FIG. 15 is a diagram showing a fifth example of the management function according to the embodiment.
  • FIG. 16 is a diagram showing a sixth example of the setting process executed by the management function according to the embodiment.
  • FIG. 17 is a diagram showing a sixth example of the management function according to the embodiment.
  • the smart contract (program) is stored in the distributed ledger owned by each of the multiple devices that make up the management system.
  • the management system automatically generates a new smart contract using the smart contract stored in the distributed ledger of each of the plurality of devices, the new smart contract is automatically generated in each of the plurality of devices. Therefore, smart contracts with the same contents are automatically generated for the number of devices constituting the management system. Furthermore, if all automatically generated smart contracts are shared by the distributed ledger owned by each of the multiple devices, each device will eventually hold duplicate valid smart contracts with the same content. .. Therefore, in each device, a plurality of smart contracts having the same contents can be executed at the same time, which may cause inconsistency in the operation of the management system and the management system may not operate correctly.
  • the present inventors have found the following control methods, devices, and programs in order to solve the above problems.
  • the control method is a control method executed by one of the plurality of devices in a management system including a plurality of devices having a distributed ledger, and the distributed ledger is , Select one of a parent smart contract that includes an auto-generation function that automatically generates a new smart contract, and a plurality of child smart contracts that are generated by executing the auto-generation function on the plurality of devices.
  • the management function to be managed is stored, the first child smart contract is generated by executing the automatic generation function, and the first transaction data including the generated first child smart contract is transmitted to the plurality of devices.
  • the second child smart generated by transmitting to the other device, storing the first transaction data in the distributed ledger of the one device, and executing the automatic generation function in the other device.
  • the first Of the child smart contract and the second child smart contract By receiving the second transaction data including the contract, storing the second transaction data in the distributed ledger of the one device, and executing the management function stored in the distributed ledger, the first Of the child smart contract and the second child smart contract, one child smart contract is managed in association with the parent smart contract.
  • the child smart contract of one of the plurality of child smart contracts generated by executing the automatic generation function included in the parent smart contract on each of the plurality of devices is selected and selected.
  • the management function is included in the parent smart contract or a management smart contract different from the parent smart contract, the management smart contract is stored in the distributed ledger, and the first transaction data is stored in the distributed ledger.
  • the second transaction data includes execution information for executing the management function for the first child smart contract, and the second transaction data includes execution information for executing the management function for the second child smart contract. It may be.
  • the parent smart contract or the management smart contract can be executed.
  • the management function can be automatically executed each time the first transaction data and the second transaction data are stored in the distributed ledger.
  • n is included in the nth transaction data stored in the distributed ledger of the one device (n is a natural number).
  • the third child smart contract may be managed as the one child smart contract in association with the parent smart contract.
  • the nth child smart contract included in the nth transaction data can be managed as one child smart contract in association with the parent smart contract.
  • n 1
  • the first child smart contract included in the transaction data first stored in the distributed ledger can be managed as one child smart contract in association with the parent smart contract.
  • n may be a randomly determined value.
  • the child smart contracts included in the transaction data stored in the distributed ledger in a randomly determined order can be managed as one child smart contract in association with the parent smart contract. In this way, since the order of the selected child smart contracts is random and can be changed, it is possible to prevent the child smart contract associated with the parent smart contract from being replaced with the modified child smart contract.
  • the identifier that identifies the nth child smart contract is managed as the identifier of the one child smart contract, so that the nth child smart contract is used as the one smart contract and the parent smart. It may be managed in association with the contract.
  • the parent smart contract and the one child smart contract can be easily associated with each other.
  • the child smart contract included in the transaction data stored in the distributed ledger of the one device may be invalidated in an order other than the nth order.
  • nth child smart contract can be associated with the parent smart contract.
  • a discard function for discarding the smart contract may be executed for the child smart contract included in the transaction data stored in the distributed ledger of the one device in an order other than the nth order. ..
  • nth child smart contract can be associated with the parent smart contract.
  • the device is one of the plurality of devices in a management system including a plurality of devices having a distributed ledger, and includes a processor and a memory.
  • the distributed ledger includes a parent smart contract including an automatic generation function for automatically generating a new smart contract, and a plurality of child smart contracts generated by executing the automatic generation function in the plurality of devices.
  • the management function that selects and manages one is stored, and the processor uses the memory to execute the automatic generation function to generate the first child smart contract, and the generated first child smart contract is generated.
  • the first transaction data including the child smart contract is transmitted to another device among the plurality of devices, the first transaction data is stored in the distributed ledger of the one device, and the automatic operation is performed in the other device.
  • the second transaction data including the second child smart contract generated by executing the generation function is received, and the second transaction data is stored in the distributed ledger of the one device and stored in the distributed ledger.
  • the management function By executing the management function, one child smart contract among the first child smart contract and the second child smart contract is managed in association with the parent smart contract.
  • the child smart contract of one of the plurality of child smart contracts generated by executing the automatic generation function included in the parent smart contract on each of the plurality of devices is selected and selected.
  • the program according to one aspect of the present disclosure is for causing a computer to execute a control method executed by one of the plurality of devices in a management system including a plurality of devices having a distributed ledger.
  • the distributed ledger is a program, and the distributed ledger includes a parent smart contract including an automatic generation function for automatically generating a new smart contract, and a plurality of child smarts generated by executing the automatic generation function on the plurality of devices. It stores a management function that selects and manages one of the contracts, generates the first child smart contract by executing the automatic generation function, and includes the generated first child smart contract.
  • One transaction data is transmitted to another device among the plurality of devices, the first transaction data is stored in the distributed ledger of the one device, and the automatic generation function is executed in the other device.
  • the management function that receives the second transaction data including the second child smart contract generated by the above, stores the second transaction data in the distributed ledger of the one device, and is stored in the distributed ledger. Is a program for causing a computer to manage one child smart contract among the first child smart contract and the second child smart contract in association with the parent smart contract.
  • the child smart contract of one of the plurality of child smart contracts generated by executing the automatic generation function included in the parent smart contract on each of the plurality of devices is selected and selected.
  • the management system includes a plurality of servers, stores a plurality of child smart contracts automatically generated by executing a parent smart contract on each server in a distributed ledger, and manages the plurality of child smart contracts. ..
  • the configuration of the management system and the like according to the present embodiment will be described with reference to the drawings.
  • FIG. 1 is a diagram showing an example of a configuration of a management system according to an embodiment.
  • the management system includes, for example, servers 10a to 10c.
  • the servers 10a to 10c may be all connected to each other via a network, all may be directly connected to each other via a network, some may be connected to each other via a network, and some may be able to communicate with each other. It may be directly connected to.
  • the network is, for example, the Internet, a carrier network of a mobile phone, or the like, but may be composed of any communication line or network.
  • the servers 10a to 10c are examples of a plurality of devices constituting the management system.
  • the plurality of devices constituting the management system are not limited to the servers 10a to 10c, and may include one or more terminals, or may include only a plurality of terminals.
  • the management system that manages the distributed ledger that stores the blockchain may be in any form of public type, private type, and consortium type.
  • each of the servers 10a to 10c is also referred to as a server 10, but the servers 10a to 10c may be referred to as a server A to a server C.
  • the server 10 will be described below.
  • the server 10 is an example of one of a plurality of devices having a distributed ledger.
  • the server 10 is a server managed by a business operator.
  • the business operator may be, for example, a business operator who concludes a contract with a user.
  • the contract may be a contract relating to a business that provides goods or services to a user in exchange for a predetermined consideration, or pays the user a predetermined consideration in exchange for labor by the user.
  • the contract may be a contract specified by gift, sale, exchange, loan for consumption, loan for use, lease, employment, contract, deposit, union, annuity, settlement, or the like.
  • the server 10 described here is one of the servers 10a to 10c. Of the servers 10a to 10c, servers other than this one server 10 are referred to as other servers 10.
  • the other servers 10 will be described as being plural in the present embodiment. Therefore, in the following, when simply referred to as another server 10, it is shown that the other server 10 is a plurality of other servers 10.
  • the number of other servers 10 is not limited to this, and may be one.
  • FIG. 2 is a diagram showing an example of the configuration of the server according to the embodiment.
  • the server 10 includes a communication unit 101, a transaction data generation unit 102, a transaction data verification unit 103, a state storage unit 104, a smart contract execution unit 105, a recording unit 106, and a distributed ledger. It is equipped with 107.
  • the server 10 can be realized by the processor executing a predetermined program using the memory.
  • each component will be described.
  • the communication unit 101 transmits execution transaction data to another server 10.
  • the execution transaction data is stored in the distributed ledger by the consensus algorithm of the servers 10a to 10c, so that each server 10a to 10c executes the parent smart contract stored in the distributed ledger of each server 10a to 10c. It is data.
  • a child smart contract is generated as a new smart contract.
  • the parent smart contract is a smart contract that generates a new smart contract when it is executed.
  • a child smart contract is a new smart contract created by executing a parent smart contract.
  • the communication unit 101 transmits the first transaction data to the other server 10.
  • the first transaction data includes the first child smart contract.
  • the first child smart contract is generated by executing the automatic generation function on the server 10.
  • the communication unit 101 receives the second transaction data from the other server 10.
  • the second transaction data includes a second child smart contract.
  • the second child smart contract is generated by executing the automatic generation function on the other server 10.
  • the communication unit 101 may exchange data with another server 10 other than the above transactions. Further, the communication unit 101 may exchange data with a device (terminal) other than the other server 10.
  • the communication unit 101 communicates with the other server 10.
  • This communication may be performed by TLS (Transport Layer Security), and the encryption key for TLS communication may be held by the communication unit 101.
  • TLS Transport Layer Security
  • the transaction data generation unit 102 generates execution transaction data.
  • the execution transaction data includes execution information for causing the smart contract execution unit 105 to execute the parent smart contract stored in the distributed ledger 107.
  • This execution information includes an identifier that identifies the parent smart contract and a value (argument) to be input to the parent smart contract.
  • the identifier that identifies the parent smart contract may be a storage location (address) in the distributed ledger 107 in which the parent smart contract is stored, an identification number, or the name of the parent smart contract. There may be.
  • the transaction data generation unit 102 may temporarily store the generated execution transaction data in the state storage unit 104.
  • the transaction data generation unit 102 may be provided only by one of the servers 10a to 10c.
  • the transaction data generation unit 102 transmits the generated execution transaction data to another server 10 via the communication unit 101.
  • the transaction data generation unit 102 may generate the first transaction data including the child smart contract generated by the smart contract execution unit 105, which will be described later.
  • the transaction data generation unit 102 may temporarily store the generated first transaction data in the state storage unit 104.
  • the transaction data generation unit 102 transmits the generated first transaction data to another server 10 via the communication unit 101.
  • FIG. 3 is an explanatory diagram schematically showing the first transaction data.
  • the first transaction data includes the first child smart contract, the identifier of the parent smart contract as an argument, the signature of the server 10 that generated the first transaction data, and the transmission date and time of the first transaction data.
  • the first transaction data generated by the server A is illustrated, and the “initialization function” indicates the function to be executed first when the smart contract A is executed.
  • the initialization function includes a function to call and execute the management function included in the management smart contract.
  • the initialization function includes the identifier of the management smart contract.
  • the identifier of the management smart contract may be a storage location (address) in the distributed ledger 107 of the management smart contract, an identification number, or the name of the management smart contract.
  • the "parent ID” indicates an identifier of the parent smart contract.
  • Smart contract A indicates a child smart contract generated by the server A executing the parent smart contract.
  • the "own identifier” indicates the identifier of the child smart contract generated by the server A executing the parent smart contract, and specifically, the storage location (address) in the distributed ledger 107 in which the child smart contract is stored. It may be an identification number, or it may be the name of a child smart contract.
  • the first transaction data includes execution information for causing the smart contract execution unit 105 to execute the management smart contract.
  • This execution information includes an identifier that identifies the management smart contract and a value (argument) to be input to the management smart contract.
  • the identifier that identifies the management smart contract may be a storage location (address) in the distributed ledger 107 in which the management smart contract is stored, an identification number, or the name of the management smart contract. There may be.
  • Transaction data verification unit 103 When the communication unit 101 receives the transaction data, the transaction data verification unit 103 verifies the validity of the transaction data. For example, the transaction data verification unit 103 verifies whether the transaction data received by the communication unit 101 is given an electronic signature generated by a correct method. Note that this verification may be skipped.
  • the transaction data received by the communication unit 101 is the second transaction data.
  • the transaction data verification unit 103 verifies the validity of the transaction data when the transaction data generation unit 102 generates the transaction data. For example, the transaction data verification unit 103 verifies whether the transaction data generated by the transaction data generation unit 102 is given an electronic signature generated by a correct method. Note that this verification may be skipped.
  • the transaction data generated by the transaction data generation unit 102 is the execution transaction data or the first transaction data.
  • transaction data verification unit 103 executes a consensus algorithm for agreeing on the validity of the transaction data together with the other server 10.
  • PBFT Practice Byzantine Fault Tolerance
  • Known consensus algorithms include, for example, PoW (Proof of Work) or PoS (Proof of Stake).
  • PoW Proof of Work
  • PoS Proof of Stake
  • the transaction data verification unit 103 receives reports from each of the other servers 10 indicating whether or not the transaction data verification is successful, and whether the number of such reports exceeds a predetermined number. Judge whether or not. Then, when the number of the reports exceeds a predetermined number, the transaction data verification unit 103 may determine that the validity of the transaction data has been verified by the consensus algorithm.
  • the transaction data verification unit 103 When the transaction data verification unit 103 confirms the validity of the transaction data, the transaction data verification unit 103 causes the recording unit 106 to record the transaction data.
  • the transaction data verification unit 103 verifies the validity of the execution transaction data, the first transaction data, and the second transaction data.
  • the state storage unit 104 is a storage unit that stores the latest version of the data of the distributed ledger 107.
  • the data stored in the state storage unit 104 is data that can be changed or deleted by a computer.
  • the state storage unit 104 may store transaction data before it is stored in the distributed ledger 107.
  • the state storage unit 104 may store the smart contract called by the execution transaction data. Further, the state storage unit 104 may store the variables of the smart contract stored in the distributed ledger 107.
  • the state storage unit 104 may store the transaction data generated by the transaction data generation unit 102. That is, the state storage unit 104 may store the execution transaction data and the first transaction data.
  • the state storage unit 104 may store the transaction data received by the communication unit 101. That is, the state storage unit 104 may store the second transaction data.
  • the state storage unit 104 may temporarily store each of the above-mentioned data.
  • the smart contract execution unit 105 executes the parent smart contract stored in the distributed ledger 107 based on the first execution information included in the execution transaction data.
  • the smart contract execution unit 105 calls the parent smart contract stored in the distributed ledger 107 based on the identifier of the parent smart contract included in the first execution information, and stores the called parent smart contract in the state storage unit 104.
  • the parent smart contract stored in the distributed ledger 107 includes an automatic generation function for automatically generating a new smart contract (child smart contract).
  • the smart contract execution unit 105 executes the automatic generation function by executing the parent smart contract stored in the state storage unit 104. As a result, the smart contract execution unit 105 newly generates a child smart contract.
  • the smart contract execution unit 105 may temporarily store the generated child smart contract in the state storage unit 104.
  • the smart contract execution unit 105 executes the management smart contract stored in the distributed ledger 107 based on the first transaction data or the second execution information included in the second transaction data.
  • the smart contract execution unit 105 calls the management smart contract stored in the distributed ledger 107 based on the identifier of the management smart contract included in the second execution information, and stores the called management smart contract in the state storage unit 104.
  • the management smart contract stored in the distributed ledger 107 manages one of a plurality of child smart contracts generated by executing the automatic generation function on the plurality of servers 10 as a valid child smart contract. Includes management functions for
  • the smart contract execution unit 105 executes the management function by executing the management smart contract stored in the state storage unit 104.
  • the smart contract execution unit 105 selects one of the plurality of child smart contracts and manages the selected child smart contract in association with the parent smart contract. Specifically, the smart contract execution unit 105 stores the identifier of the parent smart contract and the identifier of one selected child smart contract in association with each other in the state storage unit 104.
  • the plurality of child smart contracts include a first child smart contract automatically generated on the server 10 based on the parent smart contract and a second child smart contract automatically generated on the other server 10 based on the parent smart contract. including.
  • the second child smart contract is included in the second transaction data received by the communication unit 101 from the other server 10.
  • the recording unit 106 records transaction data by including the transaction data whose validation has been verified by the transaction data verification unit 103 in a block and storing the transaction data in the distributed ledger 107.
  • the recording unit 106 may have a distributed ledger 107 internally.
  • the distributed ledger 107 stores transaction data including the parent smart contract.
  • the distributed ledger 107 stores transaction data including a management smart contract including a management function.
  • a managed smart contract is a smart contract that is different from the parent smart contract.
  • the parent smart contract may include a management function in addition to the automatic generation function.
  • the distributed ledger 107 does not have to store the transaction data including the management smart contract separately from the parent smart contract.
  • FIG. 4 and 5 are sequence diagrams showing an example of management processing of the management system according to the embodiment.
  • FIG. 5 shows a continuation of the process of FIG.
  • the server A generates the execution transaction data, and transmits the generated execution transaction data to the server B and the server C (S101).
  • the server A, the server B, and the server C execute the consensus algorithm, generate a block containing the execution transaction data, and store it in the respective distributed ledger 107 (S102).
  • the server A, the server B, and the server C each execute the automatic generation function by the parent smart contract (S103 to S105).
  • server A, server B, and server C generate a new smart contract.
  • the server A generates a new smart contract A as a child smart contract by the automatic generation function (S106).
  • the server B generates a new smart contract B as a child smart contract by the automatic generation function (S107).
  • the server C generates a new smart contract C as a child smart contract by the automatic generation function (S108).
  • the new smart contract A is described as the new SC_A
  • the new smart contract B is described as the new SC_B
  • the new smart contract C is described as the new SC_C.
  • server A, server B, and server C each generate transaction data including the generated new smart contract.
  • the server A generates transaction data A including the new smart contract A (S109).
  • the server B generates transaction data B including the new smart contract B (S110).
  • the server C generates transaction data C including the new smart contract C (S111).
  • the transaction data A is expressed as Tx_A
  • the transaction data B is expressed as Tx_B
  • the transaction data C is expressed as Tx_C.
  • the server A transmits the generated transaction data A to the server B and the server C (S112). Further, the server B transmits the generated transaction data B to the server A and the server C (S113). Further, the server C transmits the generated transaction data C to the server A and the server B (S114).
  • the server A, the server B, and the server C execute the consensus algorithm, generate a block including the transaction data A, the transaction data B, and the transaction data C, and store the blocks in their respective distributed ledgers 107 (S115).
  • the server A, the server B, and the server C may execute a consensus algorithm for each transaction, generate a block containing each transaction data, and store the block in each distributed ledger 107.
  • the server A, the server B, and the server C execute the initialization function by the management smart contract in each of them (S116 to S118). Specifically, each of the server A, the server B, and the server C executes the management smart contract identified by the identifier included in the second execution information included in the transaction data A in the execution of the initialization function. As a result, the server A, the server B, and the server C execute the management function for the new smart contract A included in the transaction data A.
  • each of server A, server B, and server C sets a child smart contract associated with the parent smart contract by the management function (S119 to S121). Details of this setting will be described later.
  • the server A, the server B, and the server C execute the initialization function by the management smart contract (S122 to S124). Specifically, each of the server A, the server B, and the server C executes the management smart contract identified by the identifier included in the second execution information included in the transaction data B in the execution of the initialization function. As a result, the server A, the server B, and the server C execute the management function for the new smart contract A included in the transaction data A.
  • each of server A, server B, and server C sets a child smart contract associated with the parent smart contract by the management function (S125 to S127). Details of this setting will be described later.
  • the server A, the server B, and the server C execute the initialization function by the management smart contract (S128 to S130). Specifically, each of the server A, the server B, and the server C executes the management smart contract identified by the identifier included in the second execution information included in the transaction data C in the execution of the initialization function. As a result, the server A, the server B, and the server C execute the management function for the new smart contract A included in the transaction data A.
  • each of server A, server B, and server C sets a child smart contract associated with the parent smart contract by the management function (S131 to S133). Details of this setting will be described later.
  • FIG. 6 is a diagram showing a first example of the setting process executed by the management function according to the embodiment.
  • FIG. 7 is a diagram showing a first example of the management function according to the embodiment.
  • the processing of the server A will be described, but the same processing is also performed on the server B and the server C.
  • the setting process executed by the management function may also be referred to as a management process.
  • the smart contract included in the transaction data first stored in the distributed ledger 107 is the transaction data to be processed. It is determined whether or not it is a new smart contract included in (S141). Specifically, the server A calls the management function stored in the distributed ledger 107 based on the second execution information included in the transaction data to be processed, and uses the called management function as the transaction data to be processed. The parent ID included in is executed as an argument. Then, as shown in FIG. 7, the server A determines whether or not the child ID associated with the parent ID (indicated as “child ID [parent ID]” in FIG. 7) is an indefinite value. ..
  • Information indicating the correspondence between the parent ID and the child ID is stored in the state storage unit 104.
  • the information indicating this correspondence is associated with an indefinite value with respect to the parent ID.
  • the indefinite value may be 0, null, or a predetermined fixed value.
  • the indefinite value may be information indicating that the child ID is not associated with the parent ID.
  • the smart contract first included in the transaction data stored in the distributed ledger 107 is a new smart contract included in the transaction data to be processed. Is determined to be.
  • the smart contract included in the transaction data first stored in the distributed ledger 107 among the plurality of child smart contracts generated from the same parent smart contract is included in the transaction data to be processed.
  • the identifier of the new smart contract is associated with the identifier of the parent smart contract and stored (S142).
  • the server A manages the new smart contract in association with the parent smart contract. For example, the server A updates (replaces) the indefinite value associated with the parent ID with the identifier of the new smart contract in the information indicating the correspondence stored in the state storage unit 104.
  • the smart contract included in the transaction data first stored in the distributed ledger 107 among the plurality of child smart contracts generated from the same parent smart contract is included in the transaction data to be processed.
  • the setting process ends. That is, the server A ends the setting process without updating the information indicating the correspondence stored in the state storage unit 104. Therefore, the server A does not manage the smart contract included in the transaction data stored in the distributed ledger 107 from the second time onward in association with the parent smart contract.
  • the server A first executes the initialization function for the new smart contract A among the new smart contract A, the new smart contract B, and the new smart contract C, so that step S119 In the setting process of, the new smart contract A is associated with the parent smart contract. Then, the server A has the information indicating the correspondence relationship with the new smart contract B and the new smart contract C because the parent smart contract is already associated with the new smart contract A in the information indicating the correspondence relationship. Be maintained.
  • the first child smart contract included in the first transaction data first stored in the distributed ledger 107 of the server A is one child. Manage as a smart contract in association with the parent smart contract. Therefore, the first child smart contract included in the first transaction data can be managed as one child smart contract in association with the parent smart contract.
  • FIG. 8 is a diagram showing a second example of the setting process executed by the management function according to the embodiment.
  • FIG. 9 is a diagram showing a second example of the management function according to the embodiment.
  • the processing of the server A will be described, but the same processing is also performed on the server B and the server C.
  • the smart contract included in the transaction data stored in the distributed ledger 107 at the nth position among the plurality of child smart contracts generated from the same parent smart contract is the transaction to be processed. It is determined whether or not it is a new smart contract included in the data (S151). n is a natural number and may be a predetermined fixed value. Specifically, the server A calls the management function stored in the distributed ledger 107 based on the second execution information included in the transaction data to be processed, and uses the called management function as the transaction data to be processed. The parent ID included in is executed as an argument.
  • n may be set to a different value if the parent ID is different. n may be a value randomly determined for each parent ID. Therefore, the child smart contracts included in the transaction data stored in the distributed ledger in a randomly determined order can be managed as one child smart contract in association with the parent smart contract. In this way, since the order of the selected child smart contracts is random and can be changed, it is possible to prevent the child smart contract associated with the parent smart contract from being replaced with the modified child smart contract.
  • the server A determines whether or not the value obtained by adding 1 to the counter associated with the parent ID (indicated as “counter [parent ID]” in FIG. 9) is n. To judge.
  • the counter associated with the parent ID is stored in the state storage unit 104. The value of this counter is set to 0 in the initial state.
  • the server A updates the value indicated by the counter to the value indicated by the counter associated with the parent ID plus one.
  • the server A includes the smart contract included in the transaction data stored in the distributed ledger 107 at the nth position among the plurality of child smart contracts generated from the same parent smart contract in the transaction data to be processed.
  • the identifier of the new smart contract is associated with the identifier of the parent smart contract and stored (S152).
  • the server A manages the new smart contract in association with the parent smart contract.
  • the server A stores, for example, the parent ID and the identifier of the new smart contract in association with each other.
  • the smart contract included in the transaction data stored in the distributed ledger 107 at the nth position among the plurality of child smart contracts generated from the same parent smart contract is included in the transaction data to be processed. If it is determined that it is not a new smart contract (No in S151), the setting process ends. That is, the server A ends the setting process without updating the information indicating the correspondence stored in the state storage unit 104. Therefore, the server A does not manage the smart contracts included in the transaction data stored in the distributed ledger 107 in the order other than the nth order in association with the parent smart contract.
  • the server A is stored in the distributed ledger 107 second among the new smart contract A, the new smart contract B, and the new smart contract C, as shown in FIG.
  • the second initialization function is executed for the new smart contract B.
  • the new smart contract A and the parent smart contract are not associated with each other.
  • the new smart contract B and the parent smart contract are associated with each other.
  • the new smart contract C and the parent smart contract are not associated with each other.
  • the nth transaction data included in the nth transaction data (n is a natural number) stored in the distributed ledger 107 of the server A.
  • the child smart contract of is managed as a child smart contract in association with the parent smart contract. Therefore, the nth child smart contract included in the nth transaction data can be managed as one child smart contract in association with the parent smart contract.
  • the child smart contracts included in the transaction data stored in the distributed ledger of the server A in the second and subsequent orders are not managed as one child smart contract. Therefore, only the nth child smart contract can be associated with the parent smart contract.
  • FIG. 10 is a diagram showing a third example of the setting process executed by the management function.
  • FIG. 11 is a diagram showing a third example of the management function.
  • the processing of the server A will be described, but the same processing is also performed on the server B and the server C.
  • the smart contract included in the transaction data first stored in the distributed ledger 107 is the transaction data to be processed. It is determined whether or not it is a new smart contract included in (S161). Since step S161 is the same as step S141, detailed description thereof will be omitted.
  • the smart contract included in the transaction data first stored in the distributed ledger 107 among the plurality of child smart contracts generated from the same parent smart contract is included in the transaction data to be processed.
  • the identifier of the new smart contract is stored in association with the identifier of the parent smart contract (S162). Since step S162 is the same as step S142, detailed description thereof will be omitted.
  • server A among a plurality of child smart contracts generated from the same parent smart contract, the smart contract included in the transaction data first stored in the distributed ledger 107 is included in the transaction data to be processed.
  • the smart contract included in the transaction data stored in the distributed ledger 107 after the second is invalidated (S163).
  • the server A invalidates the smart contract by giving invalid information indicating that the smart contract is invalid to the smart contract included in the transaction data stored in the distributed ledger 107 from the second time onward. May be good.
  • Invalid information may be indicated, for example, by a flag indicating whether it is valid or invalid. That is, the invalid information may be a flag set to a value indicating invalidity.
  • the server A enables the smart contract by first giving valid information indicating that the smart contract is valid to the smart contract included in the transaction data stored in the distributed ledger 107. You may. Valid information may be indicated, for example, by a flag indicating whether it is valid or invalid. That is, the valid information may be a flag set to a value indicating that it is valid.
  • the server A first executes the initialization function for the new smart contract A among the new smart contract A, the new smart contract B, and the new smart contract C, so that step S119 In the setting process of, the new smart contract A is associated with the parent smart contract. Then, the server A invalidates the new smart contract B and the new smart contract C.
  • the first child smart contract included in the first transaction data first stored in the distributed ledger 107 of the server A is one child. Manage as a smart contract in association with the parent smart contract. Therefore, the first child smart contract included in the first transaction data can be managed as one child smart contract in association with the parent smart contract.
  • the child smart contract included in the transaction data stored in the distributed ledger 107 of the server A is invalidated in the second and subsequent orders. Therefore, only the first child smart contract can be associated with the parent smart contract. In addition, it is possible to suppress the occurrence of a process that attempts to execute an invalid child smart contract, and it is possible to reduce the processing load.
  • FIG. 12 is a diagram showing a fourth example of the setting process executed by the management function.
  • FIG. 13 is a diagram showing a fourth example of the management function.
  • the processing of the server A will be described, but the same processing is also performed on the server B and the server C.
  • the smart contract included in the transaction data stored in the distributed ledger 107 at the nth position among the plurality of child smart contracts generated from the same parent smart contract is the transaction to be processed. It is determined whether or not it is a new smart contract included in the data (S171). Since step S171 is the same as step S151, detailed description thereof will be omitted.
  • the server A includes the smart contract included in the transaction data stored in the distributed ledger 107 at the nth position among the plurality of child smart contracts generated from the same parent smart contract in the transaction data to be processed.
  • the identifier of the new smart contract is associated with the identifier of the parent smart contract and stored (S172). Since step S172 is the same as step S152, detailed description thereof will be omitted.
  • the smart contract included in the transaction data stored in the distributed ledger 107 at the nth position among the plurality of child smart contracts generated from the same parent smart contract is included in the transaction data to be processed.
  • the smart contract included in the transaction data stored in the distributed ledger 107 in an order other than the nth is invalidated (S173). Since step S173 is the same as step S163, detailed description thereof will be omitted.
  • the server A is stored in the distributed ledger 107 second among the new smart contract A, the new smart contract B, and the new smart contract C, as shown in FIG.
  • the second initialization function is executed for the new smart contract B.
  • the new smart contract A is invalidated.
  • the new smart contract B and the parent smart contract are associated with each other.
  • the new smart contract C is invalidated.
  • the nth transaction data included in the nth transaction data (n is a natural number) stored in the distributed ledger 107 of the server A.
  • the child smart contract of is managed as a child smart contract in association with the parent smart contract. Therefore, the nth child smart contract included in the nth transaction data can be managed as one child smart contract in association with the parent smart contract.
  • the child smart contract included in the transaction data stored in the distributed ledger 107 of the server A is invalidated in the order other than the nth. Therefore, only the nth child smart contract can be associated with the parent smart contract. In addition, it is possible to suppress the occurrence of a process that attempts to execute an invalid child smart contract, and it is possible to reduce the processing load.
  • FIG. 14 is a diagram showing a fifth example of the setting process executed by the management function.
  • FIG. 15 is a diagram showing a fifth example of the management function.
  • the processing of the server A will be described, but the same processing is also performed on the server B and the server C.
  • the smart contract included in the transaction data first stored in the distributed ledger 107 is the transaction data to be processed. It is determined whether or not it is a new smart contract included in (S181). Since step S181 is the same as step S141, detailed description thereof will be omitted.
  • the smart contract included in the transaction data first stored in the distributed ledger 107 among the plurality of child smart contracts generated from the same parent smart contract is included in the transaction data to be processed.
  • the identifier of the new smart contract is associated with the identifier of the parent smart contract and stored (S182). Since step S182 is the same as step S142, detailed description thereof will be omitted.
  • server A among a plurality of child smart contracts generated from the same parent smart contract, the smart contract included in the transaction data first stored in the distributed ledger 107 is included in the transaction data to be processed.
  • the discard function is executed for the smart contract included in the transaction data stored in the distributed ledger 107 after the second (S183).
  • the discard function is, for example, a self-destruct indicating a smart contract discard function in Ethereum, and is a function of setting a smart contract to be processed by this function to an invalid state on the distributed ledger 107.
  • the server A can invalidate the block of the block chain in which the smart contract is stored by executing the discard function for the smart contract.
  • the server A first executes the initialization function for the new smart contract A among the new smart contract A, the new smart contract B, and the new smart contract C, so that step S119 In the setting process of, the new smart contract A is associated with the parent smart contract. Then, the server A executes the discard function for the new smart contract B and the new smart contract C.
  • the first child smart contract included in the first transaction data first stored in the distributed ledger 107 of the server A is one child. Manage as a smart contract in association with the parent smart contract. Therefore, the first child smart contract included in the first transaction data can be managed as one child smart contract in association with the parent smart contract.
  • the discard function of discarding the smart contract is executed for the child smart contract included in the transaction data stored in the distributed ledger 107 of the server A in the second and subsequent orders. Therefore, only the second and subsequent child smart contracts can be associated with the parent smart contract. In addition, it is possible to suppress the occurrence of a process for executing the discarded child smart contract, and it is possible to reduce the processing load.
  • FIG. 16 is a diagram showing a sixth example of the setting process executed by the management function.
  • FIG. 17 is a diagram showing a sixth example of the management function.
  • the processing of the server A will be described, but the same processing is also performed on the server B and the server C.
  • the smart contract included in the transaction data stored in the distributed ledger 107 at the nth position among the plurality of child smart contracts generated from the same parent smart contract is the transaction to be processed. It is determined whether or not it is a new smart contract included in the data (S191). Since step S191 is the same as step S151, detailed description thereof will be omitted.
  • the server A includes the smart contract included in the transaction data stored in the distributed ledger 107 at the nth position among the plurality of child smart contracts generated from the same parent smart contract in the transaction data to be processed.
  • the identifier of the new smart contract is associated with the identifier of the parent smart contract and stored (S192). Since step S192 is the same as step S152, detailed description thereof will be omitted.
  • the smart contract included in the transaction data stored in the distributed ledger 107 at the nth position among the plurality of child smart contracts generated from the same parent smart contract is included in the transaction data to be processed.
  • the discard function is executed for the smart contract included in the transaction data stored in the distributed ledger 107 in an order other than the nth (S193). Since step S193 is the same as step S183, detailed description thereof will be omitted.
  • the server A is stored in the distributed ledger 107 second among the new smart contract A, the new smart contract B, and the new smart contract C, as shown in FIG.
  • the second initialization function is executed for the new smart contract B.
  • the discard function is executed for the new smart contract A.
  • the new smart contract B and the parent smart contract are associated with each other.
  • the discard function is executed for the new smart contract C.
  • the nth transaction data included in the nth transaction data (n is a natural number) stored in the distributed ledger 107 of the server A.
  • the child smart contract of is managed as a child smart contract in association with the parent smart contract. Therefore, the nth child smart contract included in the nth transaction data can be managed as one child smart contract in association with the parent smart contract.
  • the discard function of discarding the smart contract is executed for the child smart contract included in the transaction data stored in the distributed ledger 107 of the server A in the order other than the nth. Therefore, only the nth child smart contract can be associated with the parent smart contract. In addition, it is possible to suppress the occurrence of a process for executing the discarded child smart contract, and it is possible to reduce the processing load.
  • the server A includes the smart contract whose management function is executed first among the plurality of child smart contracts generated from the same parent smart contract in the transaction data to be processed. It may be determined whether or not it is a new smart contract. That is, the server A may manage the smart contract for which the management function is first executed among the plurality of child smart contracts generated from the same parent smart contract in association with the parent smart contract.
  • the server A includes the smart contract whose management function is executed nth among the plurality of child smart contracts generated from the same parent smart contract in the transaction data to be processed. It may be determined whether or not it is a new smart contract. That is, the server A may manage the smart contract in which the management function is executed nth among the plurality of child smart contracts generated from the same parent smart contract in association with the parent smart contract.
  • transaction data A is an example of first transaction data
  • transaction data B and transaction data C are examples of second transaction data.
  • the management function is included in the parent smart contract or a management smart contract different from the parent smart contract.
  • the management smart contract is stored in the distributed ledger 107.
  • the first transaction data includes execution information for executing the management function for the first child smart contract.
  • the second transaction data includes execution information for executing the management function for the second child smart contract. Therefore, each time the first transaction data and the second transaction data are stored in the distributed ledger 107, the parent smart contract or the management smart contract can be executed. As a result, the management function can be automatically executed each time the first transaction data and the second transaction data are stored in the distributed ledger 107.
  • the nth (n is a natural number) stored in the distributed ledger 107 of the server A.
  • the nth child smart contract included in the transaction data of is managed as a child smart contract in association with the parent smart contract. Therefore, the nth child smart contract included in the nth transaction data can be managed as one child smart contract in association with the parent smart contract.
  • Each device in the above embodiment is specifically a computer system composed of a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is recorded in the RAM or the hard disk unit.
  • the microprocessor operates according to the computer program, each device achieves its function.
  • a computer program is configured by combining a plurality of instruction codes indicating instructions to a computer in order to achieve a predetermined function.
  • Each device in the above embodiment may be composed of a part or all of the constituent elements of one system LSI (Large Scale Integration).
  • a system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, is a computer system including a microprocessor, a ROM, a RAM, and the like. ..
  • a computer program is recorded in the RAM. When the microprocessor operates according to the computer program, the system LSI achieves its function.
  • each part of the constituent elements constituting each of the above devices may be individually integrated into one chip, or may be integrated into one chip so as to include a part or all of them.
  • system LSI Although it is referred to as a system LSI here, it may be referred to as an IC, an LSI, a super LSI, or an ultra LSI due to the difference in the degree of integration. Further, the method of making an integrated circuit is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. An FPGA (Field Programmable Gate Array) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure the connection and settings of the circuit cells inside the LSI may be used.
  • FPGA Field Programmable Gate Array
  • each of the above devices may be composed of an IC card or a single module that can be attached to and detached from each device.
  • the IC card or the module is a computer system composed of a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the above-mentioned super multifunctional LSI.
  • the microprocessor operates according to a computer program, the IC card or the module achieves its function. This IC card or this module may have tamper resistance.
  • the present disclosure may be the method shown above. Further, it may be a computer program that realizes these methods by a computer, or it may be a digital signal composed of the computer program.
  • the present disclosure discloses a recording medium in which the computer program or the digital signal can be read by a computer, for example, a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, or a BD (Blue-ray). (Registered trademark) Disc), may be recorded in a semiconductor memory or the like. Further, it may be the digital signal recorded on these recording media.
  • a computer for example, a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, or a BD (Blue-ray). (Registered trademark) Disc), may be recorded in a semiconductor memory or the like. Further, it may be the digital signal recorded on these recording media.
  • the computer program or the digital signal may be transmitted via a telecommunication line, a wireless or wired communication line, a network typified by the Internet, data broadcasting, or the like.
  • the present disclosure is a computer system including a microprocessor and a memory, in which the memory records the computer program, and the microprocessor may operate according to the computer program.
  • This disclosure can be used for control methods, servers, and programs, for example, control methods, servers, and programs that can appropriately detect fraudulent transactions in transactions.

Abstract

分散台帳を保有している複数の装置を備える管理システムにおいて、複数の装置のうちの一の装置が実行する制御方法であって、分散台帳は、新たなスマートコントラクトを自動生成する自動生成機能を含む親スマートコントラクトと、複数の装置において生成された複数の子スマートコントラクトのうちの一つを選択して管理する管理機能とを格納しており、第1子スマートコントラクトを生成し(S106)、生成した第1子スマートコントラクトを含む第1トランザクションデータを他の装置に送信し(S112)、かつ、一の装置の分散台帳に格納し(S115)、他の装置において生成された第2子スマートコントラクトを含む第2トランザクションデータを受信し(S113、S114)、かつ、一の装置の分散台帳に格納し(S115)、管理機能を実行することで一の子スマートコントラクトを親スマートコントラクトと対応付けて管理する。

Description

制御方法、装置、及び、プログラム
 本開示は、制御方法、装置、及び、プログラムに関する。
 従来、契約の条件確認から履行までをブロックチェーン上で自動的に実行するスマートコントラクト技術が存在する。例えば、特許文献1には、スマートコントラクト技術を用いて自動的に貿易取引の手続きを実行させる方法が開示されている。
国際公開第2019/003414号
 しかしながら、特許文献1に開示されている方法では、分散台帳を管理している管理システムの動作に不整合が生じ、この管理システムが正しく動作しないおそれがある。
 本開示は、上述の事情を鑑みてなされたもので、分散台帳を管理している管理システムを正しく動作させることができる制御方法、装置、及び、プログラムを提供することを目的とする。
 本開示の一態様に係る制御方法は、分散台帳を保有している複数の装置を備える管理システムにおいて、前記複数の装置のうちの一の装置が実行する制御方法であって、前記分散台帳は、新たなスマートコントラクトを自動生成する自動生成機能を含む親スマートコントラクトと、前記複数の装置において前記自動生成機能が実行されることによって生成された複数の子スマートコントラクトのうちの一つを選択して管理する管理機能とを格納しており、前記自動生成機能を実行することで第1子スマートコントラクトを生成し、生成した前記第1子スマートコントラクトを含む第1トランザクションデータを前記複数の装置のうちの他の装置に送信し、かつ、前記第1トランザクションデータを前記一の装置の分散台帳に格納し、前記他の装置において前記自動生成機能が実行されることで生成された第2子スマートコントラクトを含む第2トランザクションデータを受信し、かつ、前記第2トランザクションデータを前記一の装置の分散台帳に格納し、前記分散台帳に格納されている前記管理機能を実行することで、前記第1子スマートコントラクト及び前記第2子スマートコントラクトのうち、一の子スマートコントラクトを前記親スマートコントラクトと対応付けて管理する。
 なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 本開示に係る制御方法などによれば、分散台帳を管理している管理システムを正しく動作させることができる。
図1は、実施の形態に係る管理システムの構成の一例を示す図である。 図2は、実施の形態に係るサーバの構成の一例を示す図である。 図3は、実施の形態に係る第1トランザクションデータを模式的に示す説明図である。 図4は、実施の形態に係る管理システムの管理処理の一例を示すシーケンス図である。 図5は、実施の形態に係る管理システムの管理処理の一例を示すシーケンス図である。 図6は、実施の形態に係る管理機能により実行される設定処理の第1の例を示す図である。 図7は、実施の形態に係る管理機能の第1の例を示す図である。 図8は、実施の形態に係る管理機能により実行される設定処理の第2の例を示す図である。 図9は、実施の形態に係る管理機能の第2の例を示す図である。 図10は、実施の形態に係る管理機能により実行される設定処理の第3の例を示す図である。 図11は、実施の形態に係る管理機能の第3の例を示す図である。 図12は、実施の形態に係る管理機能により実行される設定処理の第4の例を示す図である。 図13は、実施の形態に係る管理機能の第4の例を示す図である。 図14は、実施の形態に係る管理機能により実行される設定処理の第5の例を示す図である。 図15は、実施の形態に係る管理機能の第5の例を示す図である。 図16は、実施の形態に係る管理機能により実行される設定処理の第6の例を示す図である。 図17は、実施の形態に係る管理機能の第6の例を示す図である。
 (本開示の基礎となった知見)
 特許文献1に開示されているスマートコントラクト技術を用いて、例えば、ある取引の契約を実行するスマートコントラクトにおいて、その取引に関連する新たな契約を実行するスマートコントラクトを自動生成するという要望が考えられる。
 しかし、従来技術においてスマートコントラクトにて新たなスマートコントラクトを自動生成する場合、以下の課題が想定される。
 スマートコントラクト(プログラム)は、管理システムを構成する複数の装置のそれぞれが保有する分散台帳に格納されている。管理システムが複数の装置のそれぞれの分散台帳格納されているスマートコントラクトを用いて、新たなスマートコントラクトを自動生成する場合、複数の装置のそれぞれにおいて新たなスマートコントラクトを自動生成する。このため、同じ内容のスマートコントラクトが、管理システムを構成する複数の装置の数だけ自動生成されることになる。さらに、自動生成された全てのスマートコントラクトは、複数の装置のそれぞれが保有する分散台帳で共有されると、結果的に各装置が同じ内容の有効なスマートコントラクトを重複して保持することになる。このため、各装置では、同じ内容の複数のスマートコントラクトが同時に実行されうることになり、管理システムの動作に不整合が生じ、管理システムが正しく動作しないおそれがある。
 本発明者らは、上記の課題を解決するために、以下の制御方法、装置、及び、プログラムを見出した。
 本開示の一態様に係る制御方法は、分散台帳を保有している複数の装置を備える管理システムにおいて、前記複数の装置のうちの一の装置が実行する制御方法であって、前記分散台帳は、新たなスマートコントラクトを自動生成する自動生成機能を含む親スマートコントラクトと、前記複数の装置において前記自動生成機能が実行されることによって生成された複数の子スマートコントラクトのうちの一つを選択して管理する管理機能とを格納しており、前記自動生成機能を実行することで第1子スマートコントラクトを生成し、生成した前記第1子スマートコントラクトを含む第1トランザクションデータを前記複数の装置のうちの他の装置に送信し、かつ、前記第1トランザクションデータを前記一の装置の分散台帳に格納し、前記他の装置において前記自動生成機能が実行されることで生成された第2子スマートコントラクトを含む第2トランザクションデータを受信し、かつ、前記第2トランザクションデータを前記一の装置の分散台帳に格納し、前記分散台帳に格納されている前記管理機能を実行することで、前記第1子スマートコントラクト及び前記第2子スマートコントラクトのうち、一の子スマートコントラクトを前記親スマートコントラクトと対応付けて管理する。
 これによれば、親スマートコントラクトが含む自動生成機能が複数の装置のそれぞれにおいて実行されることによって生成された複数の子スマートコントラクトのうちの一の子スマートコントラクトを選択して、選択した一の子スマートコントラクトを親スマートコントラクトと対応付けて管理する。このため、同一の親スマートコントラクトから自動生成された互いに同じ複数の子スマートコントラクトを重複して保持することを抑制することができる。これにより、各装置で同じ内容の複数の子スマートコントラクトが実行されることを抑制でき、管理システムの動作に不整合が生じることを抑制することができる。よって、分散台帳を管理している管理システムを正しく動作させることができる。
 また、前記管理機能は、前記親スマートコントラクト、又は、前記親スマートコントラクトとは異なる管理スマートコントラクトに含まれ、前記管理スマートコントラクトは、前記分散台帳に格納されており、前記第1トランザクションデータは、前記第1子スマートコントラクトに対して前記管理機能を実行するための実行情報を含み、前記第2トランザクションデータは、前記第2子スマートコントラクトに対して前記管理機能を実行するための実行情報を含んでもよい。
 このため、第1トランザクションデータ及び第2トランザクションデータがそれぞれ分散台帳に格納される度に、親スマートコントラクト又は管理スマートコントラクトを実行することができる。これにより、第1トランザクションデータ及び第2トランザクションデータがそれぞれ分散台帳に格納される度に、自動的に管理機能を実行することができる。
 また、前記管理では、前記第1トランザクションデータ及び前記第2トランザクションデータのうちで、前記一の装置の前記分散台帳にn番目(nは自然数)に格納されたn番目のトランザクションデータに含まれるn番目の子スマートコントラクトを前記一の子スマートコントラクトとして前記親スマートコントラクトと対応付けて管理してもよい。
 このため、n番目のトランザクションデータに含まれるn番目の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。
 また、前記nは、1であってもよい。
 このため、最初に分散台帳に格納されたトランザクションデータに含まれる最初の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。
 また、前記nは、ランダムに定められた値であってもよい。
 このため、ランダムに定められた順番に分散台帳に格納されたトランザクションデータに含まれる子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。このように、選択される子スマートコントラクトの順番がランダムであり変更されうるため、親スマートコントラクトに対応付ける子スマートコントラクトが改変された子スマートコントラクトに差し替えられることを抑制することができる。
 また、前記管理では、前記n番目の子スマートコントラクトを識別する識別子を、前記一の子スマートコントラクトの識別子として管理することで、前記n番目の子スマートコントラクトを前記一のスマートコントラクトとして前記親スマートコントラクトと対応付けて管理してもよい。
 このため、親スマートコントラクトと一の子スマートコントラクトとを容易に対応付けることができる。
 また、前記管理では、前記n番目以外の順番で前記一の装置の前記分散台帳に格納されたトランザクションデータに含まれる子スマートコントラクトを、前記一の子スマートコントラクトとして管理しなくてもよい。
 このため、n番目の子スマートコントラクトのみを親スマートコントラクトに対応付けることができる。
 また、前記管理では、前記n番目以外の順番で前記一の装置の前記分散台帳に格納されたトランザクションデータに含まれる子スマートコントラクトを無効にしてもよい。
 このため、n番目の子スマートコントラクトのみを親スマートコントラクトに対応付けることができる。また、無効な子スマートコントラクトを実行しようとする処理が発生することを抑制することができ、処理負荷を低減することができる。
 また、前記管理では、前記n番目以外の順番で前記一の装置の前記分散台帳に格納されたトランザクションデータに含まれる子スマートコントラクトに対して、スマートコントラクトを破棄する破棄機能を実行してもよい。
 このため、n番目の子スマートコントラクトのみを親スマートコントラクトに対応付けることができる。また、破棄された子スマートコントラクトを実行しようとする処理が発生することを抑制することができ、処理負荷を低減することができる。
 また、本開示の一態様に係る装置は、分散台帳を保有している複数の装置を備える管理システムにおいて、前記複数の装置のうちの一の装置であって、プロセッサと、メモリと、を備え、前記分散台帳は、新たなスマートコントラクトを自動生成する自動生成機能を含む親スマートコントラクトと、前記複数の装置において前記自動生成機能が実行されることによって生成された複数の子スマートコントラクトのうちの一つを選択して管理する管理機能とを格納しており、前記プロセッサは、前記メモリを用いて、前記自動生成機能を実行することで第1子スマートコントラクトを生成し、生成した前記第1子スマートコントラクトを含む第1トランザクションデータを前記複数の装置のうちの他の装置に送信し、かつ、前記第1トランザクションデータを前記一の装置の分散台帳に格納し、前記他の装置において前記自動生成機能が実行されることで生成された第2子スマートコントラクトを含む第2トランザクションデータを受信し、かつ、前記第2トランザクションデータを前記一の装置の分散台帳に格納し、前記分散台帳に格納されている前記管理機能を実行することで、前記第1子スマートコントラクト及び前記第2子スマートコントラクトのうち、一の子スマートコントラクトを前記親スマートコントラクトと対応付けて管理する。
 これによれば、親スマートコントラクトが含む自動生成機能が複数の装置のそれぞれにおいて実行されることによって生成された複数の子スマートコントラクトのうちの一の子スマートコントラクトを選択して、選択した一の子スマートコントラクトを親スマートコントラクトと対応付けて管理する。このため、同一の親スマートコントラクトから自動生成された互いに同じ複数の子スマートコントラクトを重複して保持することを抑制することができる。これにより、各装置で同じ内容の複数の子スマートコントラクトが実行されることを抑制でき、管理システムの動作に不整合が生じることを抑制することができる。よって、分散台帳を管理している管理システムを正しく動作させることができる。
 また、本開示の一態様に係るプログラムは、分散台帳を保有している複数の装置を備える管理システムにおいて、前記複数の装置のうちの一の装置が実行する制御方法をコンピュータに実行させるためのプログラムであって、前記分散台帳は、新たなスマートコントラクトを自動生成する自動生成機能を含む親スマートコントラクトと、前記複数の装置において前記自動生成機能が実行されることによって生成された複数の子スマートコントラクトのうちの一つを選択して管理する管理機能とを格納しており、前記自動生成機能を実行することで第1子スマートコントラクトを生成し、生成した前記第1子スマートコントラクトを含む第1トランザクションデータを前記複数の装置のうちの他の装置に送信し、かつ、前記第1トランザクションデータを前記一の装置の分散台帳に格納し、前記他の装置において前記自動生成機能が実行されることで生成された第2子スマートコントラクトを含む第2トランザクションデータを受信し、かつ、前記第2トランザクションデータを前記一の装置の分散台帳に格納し、前記分散台帳に格納されている前記管理機能を実行することで、前記第1子スマートコントラクト及び前記第2子スマートコントラクトのうち、一の子スマートコントラクトを前記親スマートコントラクトと対応付けて管理することをコンピュータに実行させるためのプログラムである。
 これによれば、親スマートコントラクトが含む自動生成機能が複数の装置のそれぞれにおいて実行されることによって生成された複数の子スマートコントラクトのうちの一の子スマートコントラクトを選択して、選択した一の子スマートコントラクトを親スマートコントラクトと対応付けて管理する。このため、同一の親スマートコントラクトから自動生成された互いに同じ複数の子スマートコントラクトを重複して保持することを抑制することができる。これにより、各装置で同じ内容の複数の子スマートコントラクトが実行されることを抑制でき、管理システムの動作に不整合が生じることを抑制することができる。よって、分散台帳を管理している管理システムを正しく動作させることができる。
 以下、図面を参照しながら、実施の形態について説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。つまり、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素は、本開示の課題を達成するために必ずしも必要ではないが、より好ましい形態を構成する構成要素として説明される。
 (実施の形態)
 まず、本開示に係るシステム構成について説明する。
 本開示に係る管理システムは、複数のサーバを備え、各サーバにおいて親スマートコントラクトが実行されることにより自動生成された複数の子スマートコントラクトを分散台帳に格納し、複数の子スマートコントラクトを管理する。以下では、図面を参照しながら、本実施の形態に係る管理システムの構成等の説明を行う。
 [管理システム]
 図1は、実施の形態に係る管理システムの構成の一例を示す図である。
 本実施の形態に係る管理システムは、図1に示すように、例えば、サーバ10a~10cを備える。サーバ10a~10cは、全部がネットワークで互いに接続されていてもよいし、全部が通信可能に直接接続されていてもよいし、一部がネットワークで接続されており、他の一部が通信可能に直接接続されていてもよい。ネットワークは、例えば、インターネット、携帯電話のキャリアネットワークなどであるが、どのような通信回線またはネットワークから構成されてもよい。サーバ10a~10cは、管理システムを構成する複数の装置の一例である。なお、管理システムを構成する複数の装置は、サーバ10a~10cのみに限らずに、1以上の端末を含んでいてもよいし、複数の端末のみを含んでいてもよい。ブロックチェーンを格納する分散台帳を管理する管理システムは、パブリック型、プライベート型及びコンソーシアム型のいずれの形態であってもよい。
 なお、以下では、サーバ10a~サーバ10cのそれぞれをサーバ10とも称するが、サーバ10a~サーバ10cをサーバA~サーバCと称する場合もある。
 以下、サーバ10について説明する。
 [サーバ10]
 サーバ10は、分散台帳を保有する複数の装置のうちの一の装置の一例である。サーバ10は、事業者により管理されるサーバである。事業者は、例えば、ユーザとの間で契約を締結する事業者であってもよい。契約は、ユーザに対して、所定の対価と引き替えに物品又はサービスを提供する事業に関する契約であってもよいし、ユーザによる労働と引き替えに、当該ユーザに所定の対価を支払う。また、契約は、贈与、売買、交換、消費貸借、使用貸借、賃貸借、雇用、請負、寄託、組合、終身定期金、及び、和解などで規定される契約であってもよい。
 ここで説明するサーバ10は、サーバ10a~10cのうちの一つのサーバ10である。サーバ10a~10cのうち、この一つのサーバ10以外のサーバを他のサーバ10と称する。他のサーバ10は、本実施の形態では、複数であるものとして説明する。このため、以下では、単に他のサーバ10と称している場合には、他のサーバ10は、複数の他のサーバ10であることを示す。なお、他のサーバ10は、これに限らずに、1つであってもよい。
 図2は、実施の形態に係るサーバの構成の一例を示す図である。
 サーバ10は、図2に示すように、通信部101と、トランザクションデータ生成部102と、トランザクションデータ検証部103と、状態記憶部104と、スマートコントラクト実行部105と、記録部106と、分散台帳107とを備える。サーバ10は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。以下、各構成要素について説明する。
 <通信部101>
 通信部101は、他のサーバ10に、実行トランザクションデータを送信する。実行トランザクションデータは、サーバ10a~10cによるコンセンサスアルゴリズムにより分散台帳に格納されることで、各サーバ10a~10cの分散台帳に格納されている親スマートコントラクトを各サーバ10a~10cに実行させるためのトランザクションデータである。各サーバ10a~10cでは、親スマートコントラクトが実行されることで、新たなスマートコントラクトとして、子スマートコントラクトが生成される。なお、親スマートコントラクトとは、実行されることで新たなスマートコントラクトを生成するスマートコントラクトである。子スマートコントラクトとは、親スマートコントラクトが実行されることで生成された新たなスマートコントラクトである。
 通信部101は、他のサーバ10に、第1トランザクションデータを送信する。第1トランザクションデータは、第1子スマートコントラクトを含む。第1子スマートコントラクトは、サーバ10において自動生成機能が実行されることで生成される。また、通信部101は、他のサーバ10から第2トランザクションデータを受信する。第2トランザクションデータは、第2子スマートコントラクトを含む。第2子スマートコントラクトは、他のサーバ10において自動生成機能が実行されることで生成される。
 なお、通信部101は、他のサーバ10との間で、上記のトランザクション以外のデータのやり取りを行ってもよい。また、通信部101は、他のサーバ10以外の装置(端末)との間で、データのやり取りを行ってもよい。
 このように、通信部101は、他のサーバ10との間で通信を行う。なお、この通信は、TLS(Transport Layer Security)によりなされてもよく、TLS通信用の暗号鍵は通信部101で保持してもよい。
 <トランザクションデータ生成部102>
 トランザクションデータ生成部102は、実行トランザクションデータを生成する。本実施の形態では、実行トランザクションデータは、分散台帳107に格納されている親スマートコントラクトをスマートコントラクト実行部105に実行させるための実行情報を含む。この実行情報は、親スマートコントラクトを識別する識別子と、親スマートコントラクトに入力する値(引数)とを含む。なお、親スマートコントラクトを識別する識別子は、親スマートコントラクトが格納されている分散台帳107における格納場所(アドレス)であってもよいし、識別番号であってもよいし、親スマートコントラクトの名称であってもよい。
 トランザクションデータ生成部102は、生成した実行トランザクションデータを状態記憶部104に一時的に格納してもよい。トランザクションデータ生成部102は、サーバ10a~10cのうちの1つのサーバ10のみが備えていてもよい。トランザクションデータ生成部102は、通信部101を介して、生成した実行トランザクションデータを他のサーバ10に送信する。
 また、トランザクションデータ生成部102は、後述するスマートコントラクト実行部105により生成された子スマートコントラクトを含む第1トランザクションデータを生成してもよい。トランザクションデータ生成部102は、生成した第1トランザクションデータを状態記憶部104に一時的に格納してもよい。トランザクションデータ生成部102は、通信部101を介して、生成した第1トランザクションデータを他のサーバ10に送信する。
 ここで、第1トランザクションデータについて説明する。
 図3は、第1トランザクションデータを模式的に示す説明図である。第1トランザクションデータは、第1子スマートコントラクトと、引数としての親スマートコントラクトの識別子と、第1トランザクションデータを生成したサーバ10の署名と、第1トランザクションデータの送信日時とを含む。図3では、サーバAにより生成された第1トランザクションデータが例示されており、「初期化機能」は、スマートコントラクトAが実行されたときに最初に実行される機能を示す。初期化機能は、管理スマートコントラクトに含まれる管理機能を呼び出して実行する機能を含む。初期化機能は、管理スマートコントラクトの識別子を含む。管理スマートコントラクトの識別子は、管理スマートコントラクトの分散台帳107における格納場所(アドレス)であってもよいし、識別番号であってもよいし、管理スマートコントラクトの名称であってもよい。「親ID」は、親スマートコントラクトの識別子を示す。「スマートコントラクトA」は、サーバAが親スマートコントラクトを実行することで生成した子スマートコントラクトを示す。「自分の識別子」は、サーバAが親スマートコントラクトを実行することで生成した子スマートコントラクトの識別子を示し、具体的には、子スマートコントラクトが格納されている分散台帳107における格納場所(アドレス)であってもよいし、識別番号であってもよいし、子スマートコントラクトの名称であってもよい。
 第1トランザクションデータは、管理スマートコントラクトをスマートコントラクト実行部105に実行させるための実行情報を含む。この実行情報は、管理スマートコントラクトを識別する識別子と、管理スマートコントラクトに入力する値(引数)とを含む。なお、管理スマートコントラクトを識別する識別子は、管理スマートコントラクトが格納されている分散台帳107における格納場所(アドレス)であってもよいし、識別番号であってもよいし、管理スマートコントラクトの名称であってもよい。
 なお、他のサーバ10により生成される第2トランザクションデータも第1トランザクションデータと同様であるため、説明を省略する。
 <トランザクションデータ検証部103>
 トランザクションデータ検証部103は、通信部101がトランザクションデータを受信したとき、そのトランザクションデータの正当性を検証する。例えば、トランザクションデータ検証部103は、通信部101が受信したトランザクションデータに、正しい方法で生成された電子署名が付与されているかなどを検証する。なお、この検証はスキップされてもよい。ここで、通信部101が受信するトランザクションデータは、第2トランザクションデータである。
 また、トランザクションデータ検証部103は、トランザクションデータ生成部102がトランザクションデータを生成したとき、そのトランザクションデータの正当性を検証する。例えば、トランザクションデータ検証部103は、トランザクションデータ生成部102が生成したトランザクションデータに、正しい方法で生成された電子署名が付与されているかなどを検証する。なお、この検証はスキップされてもよい。ここで、トランザクションデータ生成部102が生成したトランザクションデータは、実行トランザクションデータ又は第1トランザクションデータである。
 また、トランザクションデータ検証部103は、他のサーバ10とともに、トランザクションデータの正当性について合意するためのコンセンサスアルゴリズムを実行する。
 ここで、コンセンサスアルゴリズムには、PBFT(Practical Byzantine Fault Tolerance)が用いられてもよいし、その他の公知のコンセンサスアルゴリズムが用いられてもよい。公知のコンセンサスアルゴリズムとしては、例えばPoW(Proof of Work)またはPoS(Proof of Stake)などがある。コンセンサスアルゴリズムにPBFTが用いられる場合、トランザクションデータ検証部103は、他のサーバ10のそれぞれからトランザクションデータの検証が成功したか否かを示す報告を受け取り、当該報告の数が所定の数を超えたか否かを判定する。そして、トランザクションデータ検証部103は、当該報告の数が所定の数を超えたとき、コンセンサスアルゴリズムによってトランザクションデータの正当性が検証されたと判定すればよい。
 トランザクションデータ検証部103は、トランザクションデータの正当性を確認した場合、記録部106にそのトランザクションデータを記録させる。
 本実施の形態では、トランザクションデータ検証部103は、実行トランザクションデータ、第1トランザクションデータ及び第2トランザクションデータの正当性を検証する。
 <状態記憶部104>
 状態記憶部104は、分散台帳107の最新版のデータを記憶している記憶部である。状態記憶部104に記憶されているデータは、コンピュータにより変更されたり、削除されたりすることが可能なデータである。状態記憶部104は、分散台帳107に記憶される前のトランザクションデータを記憶してもよい。状態記憶部104は、実行トランザクションデータにより呼び出されたスマートコントラクトを記憶してもよい。また、状態記憶部104は、分散台帳107に格納されているスマートコントラクトの変数を記憶していてもよい。状態記憶部104は、トランザクションデータ生成部102により生成されたトランザクションデータを記憶してもよい。つまり、状態記憶部104は、実行トランザクションデータ及び第1トランザクションデータを記憶してもよい。状態記憶部104は、通信部101により受信されたトランザクションデータを記憶してもよい。つまり、状態記憶部104は、第2トランザクションデータを記憶してもよい。
 状態記憶部104は、上述した各データを一時的に記憶してもよい。
 <スマートコントラクト実行部105>
 スマートコントラクト実行部105は、実行トランザクションデータに含まれる第1実行情報に基づいて、分散台帳107に格納されている親スマートコントラクトを実行する。スマートコントラクト実行部105は、第1実行情報に含まれる親スマートコントラクトの識別子に基づいて、分散台帳107に格納されている親スマートコントラクトを呼び出して、呼び出した親スマートコントラクトを状態記憶部104に格納する。分散台帳107に格納されている親スマートコントラクトは、新たなスマートコントラクト(子スマートコントラクト)を自動生成する自動生成機能を含む。スマートコントラクト実行部105は、状態記憶部104に格納した親スマートコントラクトを実行することで、自動生成機能を実行する。これにより、スマートコントラクト実行部105は、新たに子スマートコントラクトを生成する。スマートコントラクト実行部105は、生成した子スマートコントラクトを状態記憶部104に一時的に格納してもよい。
 また、スマートコントラクト実行部105は、第1トランザクションデータまたは第2トランザクションデータに含まれる第2実行情報に基づいて、分散台帳107に格納されている管理スマートコントラクトを実行する。スマートコントラクト実行部105は、第2実行情報に含まれる管理スマートコントラクトの識別子に基づいて、分散台帳107に格納されている管理スマートコントラクトを呼び出して、呼び出した管理スマートコントラクトを状態記憶部104に格納する。なお、分散台帳107に格納されている管理スマートコントラクトは、複数のサーバ10において自動生成機能が実行されることによって生成された複数の子スマートコントラクトのうちの一つを有効な子スマートコントラクトとして管理するための管理機能を含む。スマートコントラクト実行部105は、状態記憶部104に格納した管理スマートコントラクトを実行することで、管理機能を実行する。これにより、スマートコントラクト実行部105は、複数の子スマートコントラクトのうちの一つを選択し、選択した一つの子スマートコントラクトを親スマートコントラクトと対応付けて管理する。具体的には、スマートコントラクト実行部105は、親スマートコントラクトの識別子と、選択した一つの子スマートコントラクトの識別子とを対応付けて状態記憶部104に記憶する。
 なお、複数の子スマートコントラクトは、サーバ10で親スマートコントラクトに基づいて自動生成された第1子スマートコントラクトと、他のサーバ10で親スマートコントラクトに基づいて自動生成された第2子スマートコントラクトとを含む。上述したように、第2子スマートコントラクトは、通信部101が他のサーバ10から受信した第2トランザクションデータに含まれる。
 <記録部106>
 記録部106は、トランザクションデータ検証部103により正当性の検証がなされたトランザクションデータをブロックに含めて分散台帳107に格納することで、トランザクションデータを記録する。
 なお、記録部106は、分散台帳107が内部に構成されていてもよい。
 <分散台帳107>
 分散台帳107は、親スマートコントラクトを含むトランザクションデータを格納している。分散台帳107は、管理機能を含む管理スマートコントラクトを含むトランザクションデータを格納している。管理スマートコントラクトは、親スマートコントラクトとは異なるスマートコントラクトである。
 なお、親スマートコントラクトは、自動生成機能の他に、管理機能を含んでいてもよい。この場合、分散台帳107は、管理スマートコントラクトを含むトランザクションデータを親スマートコントラクトとは別に格納していなくてもよい。
 [管理システムの動作等]
 次に、以上のように構成された管理システムの動作について説明する。
 図4及び図5は、実施の形態に係る管理システムの管理処理の一例を示すシーケンス図である。図5は、図4の続きの処理を示す。
 まず、サーバAは、実行トランザクションデータを生成し、生成した実行トランザクションデータをサーバB及びサーバCへ送信する(S101)。
 次に、サーバA、サーバB及びサーバCは、コンセンサスアルゴリズムを実行し、実行トランザクションデータを含むブロックを生成して、それぞれの分散台帳107に格納する(S102)。
 サーバA、サーバB及びサーバCは、実行トランザクションデータについてコンセンサスアルゴリズムが実行されると、それぞれにおいて、親スマートコントラクトによって自動生成機能を実行する(S103~S105)。
 次に、サーバA、サーバB及びサーバCは、新スマートコントラクトを生成する。具体的には、サーバAは、自動生成機能により、子スマートコントラクトとしての新スマートコントラクトAを生成する(S106)。サーバBは、自動生成機能により、子スマートコントラクトとしての新スマートコントラクトBを生成する(S107)。サーバCは、自動生成機能により、子スマートコントラクトとしての新スマートコントラクトCを生成する(S108)。なお、図4では、新スマートコントラクトAは新SC_Aと表記され、新スマートコントラクトBは新SC_Bと表記され、新スマートコントラクトCは、新SC_Cと表記される。
 次に、サーバA、サーバB及びサーバCは、それぞれにおいて、生成した新スマートコントラクトを含むトランザクションデータを生成する。具体的には、サーバAは、新スマートコントラクトAを含むトランザクションデータAを生成する(S109)。サーバBは、新スマートコントラクトBを含むトランザクションデータBを生成する(S110)。サーバCは、新スマートコントラクトCを含むトランザクションデータCを生成する(S111)。なお、図4では、トランザクションデータAはTx_Aと表記され、トランザクションデータBはTx_Bと表記され、トランザクションデータCはTx_Cと表記される。
 次に、サーバAは、生成したトランザクションデータAをサーバB及びサーバCへ送信する(S112)。また、サーバBは、生成したトランザクションデータBをサーバA及びサーバCへ送信する(S113)。また、サーバCは、生成したトランザクションデータCをサーバA及びサーバBへ送信する(S114)。
 次に、サーバA、サーバB及びサーバCは、コンセンサスアルゴリズムを実行し、トランザクションデータA、トランザクションデータB及びトランザクションデータCを含むブロックを生成して、それぞれの分散台帳107に格納する(S115)。なお、サーバA、サーバB及びサーバCは、トランザクション毎にコンセンサスアルゴリズムを実行し、各トランザクションデータを含むブロックを生成して、それぞれの分散台帳107に格納してもよい。
 サーバA、サーバB及びサーバCは、トランザクションデータAについてコンセンサスアルゴリズムが実行されると、それぞれにおいて、管理スマートコントラクトによって初期化機能を実行する(S116~S118)。具体的には、サーバA、サーバB及びサーバCのそれぞれは、初期化機能の実行において、トランザクションデータAに含まれる第2実行情報に含まれる識別子により識別される管理スマートコントラクトを実行する。これにより、サーバA、サーバB及びサーバCは、トランザクションデータAに含まれる新スマートコントラクトAに対して管理機能を実行する。
 次に、サーバA、サーバB及びサーバCのそれぞれは、管理機能により、親スマートコントラクトに対応付ける子スマートコントラクトを設定する(S119~S121)。この設定の詳細は、後述する。
 同様に、サーバA、サーバB及びサーバCは、トランザクションデータBについてコンセンサスアルゴリズムが実行されると、それぞれにおいて、管理スマートコントラクトによって初期化機能を実行する(S122~S124)。具体的には、サーバA、サーバB及びサーバCのそれぞれは、初期化機能の実行において、トランザクションデータBに含まれる第2実行情報に含まれる識別子により識別される管理スマートコントラクトを実行する。これにより、サーバA、サーバB及びサーバCは、トランザクションデータAに含まれる新スマートコントラクトAに対して管理機能を実行する。
 次に、サーバA、サーバB及びサーバCのそれぞれは、管理機能により、親スマートコントラクトに対応付ける子スマートコントラクトを設定する(S125~S127)。この設定の詳細は、後述する。
 同様に、サーバA、サーバB及びサーバCは、トランザクションデータCについてコンセンサスアルゴリズムが実行されると、それぞれにおいて、管理スマートコントラクトによって初期化機能を実行する(S128~S130)。具体的には、サーバA、サーバB及びサーバCのそれぞれは、初期化機能の実行において、トランザクションデータCに含まれる第2実行情報に含まれる識別子により識別される管理スマートコントラクトを実行する。これにより、サーバA、サーバB及びサーバCは、トランザクションデータAに含まれる新スマートコントラクトAに対して管理機能を実行する。
 次に、サーバA、サーバB及びサーバCのそれぞれは、管理機能により、親スマートコントラクトに対応付ける子スマートコントラクトを設定する(S131~S133)。この設定の詳細は、後述する。
 次に、ステップS119~S121、S125~S127及びS131~S133のそれぞれにおける設定の詳細について説明する。
 まず、設定処理の第1の例について説明する。
 図6は、実施の形態に係る管理機能により実行される設定処理の第1の例を示す図である。図7は、実施の形態に係る管理機能の第1の例を示す図である。ここでは、サーバAの処理として説明するが、サーバB及びサーバCにおいても同様の処理が行われる。なお、管理機能により実行される設定処理を管理処理とも称する場合がある。
 図6に示すように、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであるか否かを判定する(S141)。具体的には、サーバAは、処理対象のトランザクションデータに含まれる第2実行情報に基づいて、分散台帳107に格納されている管理機能を呼び出して、呼び出した管理機能を、処理対象のトランザクションデータに含まれる親IDを引数として実行する。そして、サーバAは、図7に示すように、親IDに対応付けられている子ID(図7では、「子ID[親ID]」と表記)が不定値であるか否かを判定する。なお、親IDと子IDとの対応関係を示す情報は、状態記憶部104に記憶されている。この対応関係を示す情報は、初期状態では、親IDに対して不定値が対応付けられている。不定値は、0であってもよいし、nullであってもよいし、予め定められた固定値であってもよい。不定値は、親IDに対して子IDが対応付けられていないことを示す情報であればよい。サーバAは、親IDに対応付けられている子IDが不定値である場合、最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであると判定する。
 次に、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであると判定した場合(S141でYes)、この新スマートコントラクトの識別子を親スマートコントラクトの識別子に対応付けて記憶する(S142)。これにより、サーバAは、この新スマートコントラクトを親スマートコントラクトと対応付けて管理する。サーバAは、例えば、状態記憶部104に記憶されている対応関係を示す情報において、親IDに対応付けられている不定値を、新スマートコントラクトの識別子に更新する(置き換える)。
 一方で、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトでないと判定した場合(S141でNo)、設定処理を終了する。つまり、サーバAは、状態記憶部104に記憶されている対応関係を示す情報を更新せずに、設定処理を終了する。よって、サーバAは、2番目以降に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトを、親スマートコントラクトと対応付けて管理しない。
 例えば、サーバAは、図5に示すように、新スマートコントラクトA、新スマートコントラクトB及び新スマートコントラクトCのうちで、新スマートコントラクトAに対して最初に初期化機能を実行するため、ステップS119の設定処理では、新スマートコントラクトAを親スマートコントラクトと対応付ける。そして、サーバAは、新スマートコントラクトB及び新スマートコントラクトCに対しては、対応関係を示す情報では、親スマートコントラクトが既に新スマートコントラクトAと対応付けられているため、対応関係を示す情報が維持される。
 第1の例における設定処理において、第1トランザクションデータ及び第2トランザクションデータのうちで、サーバAの分散台帳107に最初に格納された最初のトランザクションデータに含まれる最初の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理する。このため、最初のトランザクションデータに含まれる最初の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。
 次に、設定処理の第2の例について説明する。
 図8は、実施の形態に係る管理機能により実行される設定処理の第2の例を示す図である。図9は、実施の形態に係る管理機能の第2の例を示す図である。ここでは、サーバAの処理として説明するが、サーバB及びサーバCにおいても同様の処理が行われる。
 図8に示すように、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであるか否かを判定する(S151)。nは、自然数であり、予め定められた固定値であってもよい。具体的には、サーバAは、処理対象のトランザクションデータに含まれる第2実行情報に基づいて、分散台帳107に格納されている管理機能を呼び出して、呼び出した管理機能を、処理対象のトランザクションデータに含まれる親IDを引数として実行する。
 なお、nは、親IDが異なれば、異なる値に設定されてもよい。nは、親ID毎にランダムに定められた値であってもよい。このため、ランダムに定められた順番に分散台帳に格納されたトランザクションデータに含まれる子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。このように、選択される子スマートコントラクトの順番がランダムであり変更されうるため、親スマートコントラクトに対応付ける子スマートコントラクトが改変された子スマートコントラクトに差し替えられることを抑制することができる。
 そして、サーバAは、図9に示すように、親IDに対応付けられているカウンタ(図9では、「カウンタ[親ID]」と表記)に1を加えた値がnであるか否かを判定する。なお、親IDに対応付けられているカウンタは、状態記憶部104に記憶されている。このカウンタは、初期状態では、その値が0に設定されている。サーバAは、ステップS151を実行する度に、親IDに対応付けられているカウンタが示す値に1を加算した値に、当該カウンタが示す値を更新する。
 次に、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであると判定した場合(S151でYes)、この新スマートコントラクトの識別子を親スマートコントラクトの識別子に対応付けて記憶する(S152)。これにより、サーバAは、この新スマートコントラクトを親スマートコントラクトと対応付けて管理する。サーバAは、例えば、親IDと、この新スマートコントラクトの識別子とを対応付けて記憶する。
 一方で、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトでないと判定した場合(S151でNo)、設定処理を終了する。つまり、サーバAは、状態記憶部104に記憶されている対応関係を示す情報を更新せずに、設定処理を終了する。よって、サーバAは、n番目以外の順番で分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトを、親スマートコントラクトと対応付けて管理しない。
 例えば、サーバAは、nが2に設定されている場合、図5に示すように、新スマートコントラクトA、新スマートコントラクトB及び新スマートコントラクトCのうちで、2番目に分散台帳107に格納される新スマートコントラクトBに対して、2番目に初期化機能を実行する。ステップS119の設定処理では、新スマートコントラクトAと親スマートコントラクトとの対応付けをしない。ステップS125の設定処理では、新スマートコントラクトBと親スマートコントラクトとの対応付けをする。そして、ステップS131の設定処理では、新スマートコントラクトCと親スマートコントラクトとの対応付けをしない。
 第2の例における設定処理において、第1トランザクションデータ及び第2トランザクションデータのうちで、サーバAの分散台帳107にn番目(nは自然数)に格納されたn番目のトランザクションデータに含まれるn番目の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理する。このため、n番目のトランザクションデータに含まれるn番目の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。
 また、第1の例及び第2の例における設定処理において、2番目以降の順番でサーバAの分散台帳に格納されたトランザクションデータに含まれる子スマートコントラクトを、一の子スマートコントラクトとして管理しない。このため、n番目の子スマートコントラクトのみを親スマートコントラクトに対応付けることができる。
 次に、設定処理の第3の例について説明する。
 図10は、管理機能により実行される設定処理の第3の例を示す図である。図11は、管理機能の第3の例を示す図である。ここでは、サーバAの処理として説明するが、サーバB及びサーバCにおいても同様の処理が行われる。
 図10に示すように、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであるか否かを判定する(S161)。ステップS161は、ステップS141と同様であるため、詳細な説明を省略する。
 次に、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであると判定した場合(S161でYes)、この新スマートコントラクトの識別子を親スマートコントラクトの識別子に対応付けて記憶する(S162)。ステップS162は、ステップS142と同様であるため、詳細な説明を省略する。
 一方で、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトでないと判定した場合(S161でNo)、2番目以降に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトを無効にする(S163)。サーバAは、例えば、2番目以降に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトに当該スマートコントラクトが無効であることを示す無効情報を付与することで、当該スマートコントラクトを無効にしてもよい。無効情報は、例えば、有効であるか無効であるかを示すフラグにより示されてもよい。つまり、無効情報は、無効であることを示す値に設定されたフラグであってもよい。
 なお、サーバAは、最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトに対して、当該スマートコントラクトが有効であることを示す有効情報を付与することで、当該スマートコントラクトを有効にしてもよい。有効情報は、例えば、有効であるか無効であるかを示すフラグにより示されてもよい。つまり、有効情報は、有効であることを示す値に設定されたフラグであってもよい。
 例えば、サーバAは、図5に示すように、新スマートコントラクトA、新スマートコントラクトB及び新スマートコントラクトCのうちで、新スマートコントラクトAに対して最初に初期化機能を実行するため、ステップS119の設定処理では、新スマートコントラクトAを親スマートコントラクトと対応付ける。そして、サーバAは、新スマートコントラクトB及び新スマートコントラクトCを無効にする。
 第3の例における設定処理において、第1トランザクションデータ及び第2トランザクションデータのうちで、サーバAの分散台帳107に最初に格納された最初のトランザクションデータに含まれる最初の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理する。このため、最初のトランザクションデータに含まれる最初の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。
 また、第3の例における設定処理において、2番目以降の順番でサーバAの分散台帳107に格納されたトランザクションデータに含まれる子スマートコントラクトを無効にする。このため、最初の子スマートコントラクトのみを親スマートコントラクトに対応付けることができる。また、無効な子スマートコントラクトを実行しようとする処理が発生することを抑制することができ、処理負荷を低減することができる。
 次に、設定処理の第4の例について説明する。
 図12は、管理機能により実行される設定処理の第4の例を示す図である。図13は、管理機能の第4の例を示す図である。ここでは、サーバAの処理として説明するが、サーバB及びサーバCにおいても同様の処理が行われる。
 図12に示すように、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであるか否かを判定する(S171)。ステップS171は、ステップS151と同様であるため、詳細な説明を省略する。
 次に、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであると判定した場合(S171でYes)、この新スマートコントラクトの識別子を親スマートコントラクトの識別子に対応付けて記憶する(S172)。ステップS172は、ステップS152と同様であるため、詳細な説明を省略する。
 一方で、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトでないと判定した場合(S171でNo)、n番目以外の順番で分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトを無効にする(S173)。ステップS173は、ステップS163と同様であるため、詳細な説明を省略する。
 例えば、サーバAは、nが2に設定されている場合、図5に示すように、新スマートコントラクトA、新スマートコントラクトB及び新スマートコントラクトCのうちで、2番目に分散台帳107に格納される新スマートコントラクトBに対して、2番目に初期化機能を実行する。ステップS119の設定処理では、新スマートコントラクトAを無効にする。ステップS125の設定処理では、新スマートコントラクトBと親スマートコントラクトとの対応付けをする。そして、ステップS131の設定処理では、新スマートコントラクトCを無効にする。
 第4の例における設定処理において、第1トランザクションデータ及び第2トランザクションデータのうちで、サーバAの分散台帳107にn番目(nは自然数)に格納されたn番目のトランザクションデータに含まれるn番目の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理する。このため、n番目のトランザクションデータに含まれるn番目の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。
 また、第4の例における設定処理において、n番目以外の順番でサーバAの分散台帳107に格納されたトランザクションデータに含まれる子スマートコントラクトを無効にする。このため、n番目の子スマートコントラクトのみを親スマートコントラクトに対応付けることができる。また、無効な子スマートコントラクトを実行しようとする処理が発生することを抑制することができ、処理負荷を低減することができる。
 次に、設定処理の第5の例について説明する。
 図14は、管理機能により実行される設定処理の第5の例を示す図である。図15は、管理機能の第5の例を示す図である。ここでは、サーバAの処理として説明するが、サーバB及びサーバCにおいても同様の処理が行われる。
 図14に示すように、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであるか否かを判定する(S181)。ステップS181は、ステップS141と同様であるため、詳細な説明を省略する。
 次に、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであると判定した場合(S181でYes)、この新スマートコントラクトの識別子を親スマートコントラクトの識別子に対応付けて記憶する(S182)。ステップS182は、ステップS142と同様であるため、詳細な説明を省略する。
 一方で、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトでないと判定した場合(S181でNo)、2番目以降に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトに対して破棄機能を実行する(S183)。破棄機能は、例えば、Ethereumにおいてスマートコントラクトの破棄機能を示すselfdestructであり、この機能の処理対象となるスマートコントラクトを分散台帳107上で無効な状態に設定する機能である。例えば、サーバAは、スマートコントラクトに対して破棄機能を実行することで当該スマートコントラクトが格納されているブロックチェーンのブロックを無効化することができる。
 例えば、サーバAは、図5に示すように、新スマートコントラクトA、新スマートコントラクトB及び新スマートコントラクトCのうちで、新スマートコントラクトAに対して最初に初期化機能を実行するため、ステップS119の設定処理では、新スマートコントラクトAを親スマートコントラクトと対応付ける。そして、サーバAは、新スマートコントラクトB及び新スマートコントラクトCに対して破棄機能を実行する。
 第5の例における設定処理において、第1トランザクションデータ及び第2トランザクションデータのうちで、サーバAの分散台帳107に最初に格納された最初のトランザクションデータに含まれる最初の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理する。このため、最初のトランザクションデータに含まれる最初の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。
 また、第5の例における設定処理において、2番目以降の順番でサーバAの分散台帳107に格納されたトランザクションデータに含まれる子スマートコントラクトに対して、スマートコントラクトを破棄する破棄機能を実行する。このため、2番目以降の子スマートコントラクトのみを親スマートコントラクトに対応付けることができる。また、破棄された子スマートコントラクトを実行しようとする処理が発生することを抑制することができ、処理負荷を低減することができる。
 次に、設定処理の第6の例について説明する。
 図16は、管理機能により実行される設定処理の第6の例を示す図である。図17は、管理機能の第6の例を示す図である。ここでは、サーバAの処理として説明するが、サーバB及びサーバCにおいても同様の処理が行われる。
 図16に示すように、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであるか否かを判定する(S191)。ステップS191は、ステップS151と同様であるため、詳細な説明を省略する。
 次に、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであると判定した場合(S191でYes)、この新スマートコントラクトの識別子を親スマートコントラクトの識別子に対応付けて記憶する(S192)。ステップS192は、ステップS152と同様であるため、詳細な説明を省略する。
 一方で、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトでないと判定した場合(S191でNo)、n番目以外の順番で分散台帳107に格納されたトランザクションデータに含まれるスマートコントラクトに対して破棄機能を実行する(S193)。ステップS193は、ステップS183と同様であるため、詳細な説明を省略する。
 例えば、サーバAは、nが2に設定されている場合、図5に示すように、新スマートコントラクトA、新スマートコントラクトB及び新スマートコントラクトCのうちで、2番目に分散台帳107に格納される新スマートコントラクトBに対して、2番目に初期化機能を実行する。ステップS119の設定処理では、新スマートコントラクトAに対して破棄機能を実行する。ステップS125の設定処理では、新スマートコントラクトBと親スマートコントラクトとの対応付けをする。そして、ステップS131の設定処理では、新スマートコントラクトCに対して破棄機能を実行する。
 第6の例における設定処理において、第1トランザクションデータ及び第2トランザクションデータのうちで、サーバAの分散台帳107にn番目(nは自然数)に格納されたn番目のトランザクションデータに含まれるn番目の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理する。このため、n番目のトランザクションデータに含まれるn番目の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。
 また、第6の例における設定処理において、n番目以外の順番でサーバAの分散台帳107に格納されたトランザクションデータに含まれる子スマートコントラクトに対して、スマートコントラクトを破棄する破棄機能を実行する。このため、n番目の子スマートコントラクトのみを親スマートコントラクトに対応付けることができる。また、破棄された子スマートコントラクトを実行しようとする処理が発生することを抑制することができ、処理負荷を低減することができる。
 なお、サーバAは、ステップS141、S161又はS181において、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に管理機能が実行されたスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであるか否かを判定してもよい。つまり、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちで最初に管理機能が実行されたスマートコントラクトを、親スマートコントラクトと対応付けて管理してもよい。
 なお、サーバAは、ステップS151、S171又はS191において、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に管理機能が実行されたスマートコントラクトが、処理対象のトランザクションデータに含まれる新スマートコントラクトであるか否かを判定してもよい。つまり、サーバAは、同じ親スマートコントラクトから生成された複数の子スマートコントラクトのうちでn番目に管理機能が実行されたスマートコントラクトを、親スマートコントラクトと対応付けて管理してもよい。
 なお、サーバAにおいては、トランザクションデータAは第1トランザクションデータの一例であり、トランザクションデータB及びトランザクションデータCは第2トランザクションデータの一例である。
 [効果等]
 以上のように、実施の形態に係る管理システム等によれば、親スマートコントラクトが含む自動生成機能が複数のサーバ10のそれぞれにおいて実行されることによって生成された複数の子スマートコントラクトのうちの一の子スマートコントラクトを選択して、選択した一の子スマートコントラクトを親スマートコントラクトと対応付けて管理する。このため、同一の親スマートコントラクトから自動生成された互いに同じ複数の子スマートコントラクトを重複して保持することを抑制することができる。これにより、各装置で同じ内容の複数の子スマートコントラクトが実行されることを抑制でき、管理システムの動作に不整合が生じることを抑制することができる。よって、分散台帳107を管理している管理システムを正しく動作させることができる。
 また、実施の形態に係る管理システム等によれば、管理機能は、親スマートコントラクト、又は、親スマートコントラクトとは異なる管理スマートコントラクトに含まれる。管理スマートコントラクトは、分散台帳107に格納されている。第1トランザクションデータは、第1子スマートコントラクトに対して管理機能を実行するための実行情報を含む。第2トランザクションデータは、第2子スマートコントラクトに対して管理機能を実行するための実行情報を含む。このため、第1トランザクションデータ及び第2トランザクションデータがそれぞれ分散台帳107に格納される度に、親スマートコントラクト又は管理スマートコントラクトを実行することができる。これにより、第1トランザクションデータ及び第2トランザクションデータがそれぞれ分散台帳107に格納される度に、自動的に管理機能を実行することができる。
 また、実施の形態に係る管理システム等によれば、管理では、第1トランザクションデータ及び第2トランザクションデータのうちで、サーバAの分散台帳107にn番目(nは自然数)に格納されたn番目のトランザクションデータに含まれるn番目の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理する。このため、n番目のトランザクションデータに含まれるn番目の子スマートコントラクトを一の子スマートコントラクトとして親スマートコントラクトと対応付けて管理することができる。
 [その他の実施の形態等]
 以上のように、本開示について上記の実施の形態に基づいて説明してきたが、本開示は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
 (1)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 (2)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部またはすべてを含むように1チップ化されてもよい。
 また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 (3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
 (4)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本開示は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
 また、本開示は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
 また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 (5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
 本開示は、制御方法、サーバ、及び、プログラムに利用でき、例えば取引において不正取引を適切に検知することができる制御方法、サーバ、及び、プログラムなどに利用可能である。
 10、10a~10c  サーバ
101  通信部
102  トランザクションデータ生成部
103  トランザクションデータ検証部
104  状態記憶部
105  スマートコントラクト実行部
106  記録部
107  分散台帳

Claims (11)

  1.  分散台帳を保有している複数の装置を備える管理システムにおいて、前記複数の装置のうちの一の装置が実行する制御方法であって、
     前記分散台帳は、新たなスマートコントラクトを自動生成する自動生成機能を含む親スマートコントラクトと、前記複数の装置において前記自動生成機能が実行されることによって生成された複数の子スマートコントラクトのうちの一つを選択して管理する管理機能とを格納しており、
     前記自動生成機能を実行することで第1子スマートコントラクトを生成し、
     生成した前記第1子スマートコントラクトを含む第1トランザクションデータを前記複数の装置のうちの他の装置に送信し、かつ、前記第1トランザクションデータを前記一の装置の分散台帳に格納し、
     前記他の装置において前記自動生成機能が実行されることで生成された第2子スマートコントラクトを含む第2トランザクションデータを受信し、かつ、前記第2トランザクションデータを前記一の装置の分散台帳に格納し、
     前記分散台帳に格納されている前記管理機能を実行することで、前記第1子スマートコントラクト及び前記第2子スマートコントラクトのうち、一の子スマートコントラクトを前記親スマートコントラクトと対応付けて管理する
     制御方法。
  2.  前記管理機能は、前記親スマートコントラクト、又は、前記親スマートコントラクトとは異なる管理スマートコントラクトに含まれ、
     前記管理スマートコントラクトは、前記分散台帳に格納されており、
     前記第1トランザクションデータは、前記第1子スマートコントラクトに対して前記管理機能を実行するための実行情報を含み、
     前記第2トランザクションデータは、前記第2子スマートコントラクトに対して前記管理機能を実行するための実行情報を含む
     請求項1に記載の制御方法。
  3.  前記管理では、前記第1トランザクションデータ及び前記第2トランザクションデータのうちで、前記一の装置の前記分散台帳にn番目(nは自然数)に格納されたn番目のトランザクションデータに含まれるn番目の子スマートコントラクトを前記一の子スマートコントラクトとして前記親スマートコントラクトと対応付けて管理する
     請求項1又は2に記載の制御方法。
  4.  前記nは、1である
     請求項3に記載の制御方法。
  5.  前記nは、ランダムに定められた値である
     請求項3に記載の制御方法。
  6.  前記管理では、前記n番目の子スマートコントラクトを識別する識別子を、前記一の子スマートコントラクトの識別子として管理することで、前記n番目の子スマートコントラクトを前記一のスマートコントラクトとして前記親スマートコントラクトと対応付けて管理する
     請求項3から5のいずれか1項に記載の制御方法。
  7.  前記管理では、前記n番目以外の順番で前記一の装置の前記分散台帳に格納されたトランザクションデータに含まれる子スマートコントラクトを、前記一の子スマートコントラクトとして管理しない
     請求項3から6のいずれか1項に記載の制御方法。
  8.  前記管理では、前記n番目以外の順番で前記一の装置の前記分散台帳に格納されたトランザクションデータに含まれる子スマートコントラクトを無効にする
     請求項3から6のいずれか1項に記載の制御方法。
  9.  前記管理では、前記n番目以外の順番で前記一の装置の前記分散台帳に格納されたトランザクションデータに含まれる子スマートコントラクトに対して、スマートコントラクトを破棄する破棄機能を実行する
     請求項3から6のいずれか1項に記載の制御方法。
  10.  分散台帳を保有している複数の装置を備える管理システムにおいて、前記複数の装置のうちの一の装置であって、
     プロセッサと、
     メモリと、を備え、
     前記分散台帳は、新たなスマートコントラクトを自動生成する自動生成機能を含む親スマートコントラクトと、前記複数の装置において前記自動生成機能が実行されることによって生成された複数の子スマートコントラクトのうちの一つを選択して管理する管理機能とを格納しており、
     前記プロセッサは、前記メモリを用いて、
     前記自動生成機能を実行することで第1子スマートコントラクトを生成し、
     生成した前記第1子スマートコントラクトを含む第1トランザクションデータを前記複数の装置のうちの他の装置に送信し、かつ、前記第1トランザクションデータを前記一の装置の分散台帳に格納し、
     前記他の装置において前記自動生成機能が実行されることで生成された第2子スマートコントラクトを含む第2トランザクションデータを受信し、かつ、前記第2トランザクションデータを前記一の装置の分散台帳に格納し、
     前記分散台帳に格納されている前記管理機能を実行することで、前記第1子スマートコントラクト及び前記第2子スマートコントラクトのうち、一の子スマートコントラクトを前記親スマートコントラクトと対応付けて管理する
     装置。
  11.  分散台帳を保有している複数の装置を備える管理システムにおいて、前記複数の装置のうちの一の装置が実行する制御方法をコンピュータに実行させるためのプログラムであって、
     前記分散台帳は、新たなスマートコントラクトを自動生成する自動生成機能を含む親スマートコントラクトと、前記複数の装置において前記自動生成機能が実行されることによって生成された複数の子スマートコントラクトのうちの一つを選択して管理する管理機能とを格納しており、
     前記自動生成機能を実行することで第1子スマートコントラクトを生成し、
     生成した前記第1子スマートコントラクトを含む第1トランザクションデータを前記複数の装置のうちの他の装置に送信し、かつ、前記第1トランザクションデータを前記一の装置の分散台帳に格納し、
     前記他の装置において前記自動生成機能が実行されることで生成された第2子スマートコントラクトを含む第2トランザクションデータを受信し、かつ、前記第2トランザクションデータを前記一の装置の分散台帳に格納し、
     前記分散台帳に格納されている前記管理機能を実行することで、前記第1子スマートコントラクト及び前記第2子スマートコントラクトのうち、一の子スマートコントラクトを前記親スマートコントラクトと対応付けて管理することを
     コンピュータに実行させるためのプログラム。
PCT/JP2020/046402 2019-12-19 2020-12-11 制御方法、装置、及び、プログラム WO2021125109A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021565562A JPWO2021125109A1 (ja) 2019-12-19 2020-12-11
CN202080082894.7A CN114746886A (zh) 2019-12-19 2020-12-11 控制方法、装置、以及程序
US17/836,349 US20220300958A1 (en) 2019-12-19 2022-06-09 Control method, device, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962950522P 2019-12-19 2019-12-19
US62/950,522 2019-12-19

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/836,349 Continuation US20220300958A1 (en) 2019-12-19 2022-06-09 Control method, device, and recording medium

Publications (1)

Publication Number Publication Date
WO2021125109A1 true WO2021125109A1 (ja) 2021-06-24

Family

ID=76476602

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/046402 WO2021125109A1 (ja) 2019-12-19 2020-12-11 制御方法、装置、及び、プログラム

Country Status (4)

Country Link
US (1) US20220300958A1 (ja)
JP (1) JPWO2021125109A1 (ja)
CN (1) CN114746886A (ja)
WO (1) WO2021125109A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210374731A1 (en) * 2020-05-26 2021-12-02 Coinbase, Inc. Systems and methods for consensus-based access control for smart contract functions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018142948A1 (ja) * 2017-02-06 2018-08-09 株式会社日立製作所 信用度管理システムおよび信用度管理方法
US20190278767A1 (en) * 2017-08-23 2019-09-12 Zhongan Information Technology Service Co., Ltd. Smart contract upgrade method and system based on alliance chain

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018163044A1 (en) * 2017-03-05 2018-09-13 Tatchell Shona System and method for provision of supply chain financing of ethically verified product where there has been verification of production processes and products inspection using blockchain smart contracts
US11429960B2 (en) * 2017-05-24 2022-08-30 Nxm Labs, Inc. Network configuration management for networked client devices using a distributed ledger service
JP7014393B2 (ja) * 2017-06-15 2022-02-01 公立大学法人会津大学 データ処理装置、及びこれにおけるデータ処理方法
US10476847B1 (en) * 2017-12-08 2019-11-12 Symbiont.Io, Inc. Systems, methods, and devices for implementing a smart contract on a distributed ledger technology platform
WO2019186282A1 (en) * 2018-03-29 2019-10-03 Dlt Labs, Inc. Updateable smart contracts
JP6684850B2 (ja) * 2018-05-16 2020-04-22 株式会社日立製作所 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード
US20200042971A1 (en) * 2018-07-31 2020-02-06 American Express Travel Related Services Co., Inc. System and method for transaction account based micro-payments
US10855475B1 (en) * 2018-09-06 2020-12-01 Facebook, Inc. Systems and methods for securing data to an immutable distributed ledger
US11341451B2 (en) * 2018-10-10 2022-05-24 Questaweb Holdings Inc. Hierarchical blockchain architecture for global trade management
US11195180B2 (en) * 2019-01-25 2021-12-07 International Business Machines Corporation Virtual blockchain
US11249985B2 (en) * 2019-06-15 2022-02-15 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US20210004794A1 (en) * 2019-07-02 2021-01-07 Wipro Limited Method and system for automatically generating personalized smart contracts

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018142948A1 (ja) * 2017-02-06 2018-08-09 株式会社日立製作所 信用度管理システムおよび信用度管理方法
US20190278767A1 (en) * 2017-08-23 2019-09-12 Zhongan Information Technology Service Co., Ltd. Smart contract upgrade method and system based on alliance chain

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHINEN, YUICHIRO ET AL: "RA: Symbolic Execution Tool Toward Security Analysis of Smart Contracts", COMPUTER SECURITY SYMPOSIUM 2019, 4 October 2019 (2019-10-04), pages 569 - 576 *
NAKAMURA, SEIGO ET AL: "Blockchain system design", 1st ed.", 2 August 2018, RIC TELECOM KK, ISBN: 978-4-86594-115-9, pages: 178 - 186 *

Also Published As

Publication number Publication date
CN114746886A (zh) 2022-07-12
US20220300958A1 (en) 2022-09-22
JPWO2021125109A1 (ja) 2021-06-24

Similar Documents

Publication Publication Date Title
EP3499789B1 (en) Primary and secondary blockchain device
US11444768B2 (en) Systems and methods for managing networked commitments of secure entities
US20190392536A1 (en) Method and System for Creating and Managing a Smart Contract on a Distributed Ledger
US20190392438A1 (en) Method and System for Modifying a Smart Contract on a Distributed Ledger
JP6987594B2 (ja) アクセス権管理方法、アクセス権管理システム、および、アクセス権管理装置
KR20210050526A (ko) 업그레이드 가능한 증권형 토큰
US20190392178A1 (en) Method and System for Monitoring a Smart Contract on a Distributed Ledger
WO2019191688A1 (en) Digital asset exchange
KR20180115727A (ko) 보안 투표 및 분배에서 사용을 위한 블록체인 구현 카운팅 시스템 및 방법
US11455643B2 (en) Blockchain with transaction cancellation
JP2020531975A (ja) ブロックチェーンのリンクの暗号保護され且つフィルタリングされ且つソートされたトランザクションデータセットの集合を提供する装置
EP4141772A1 (en) Supplemental digital content access control using nonfungible tokens (nfts)
WO2021125109A1 (ja) 制御方法、装置、及び、プログラム
CN117716379A (zh) 用于高效区块链交易的软件架构
CN117616410A (zh) 计算机分片环境中的多方计算
US11237823B2 (en) Management method, management apparatus, and program
US11908273B2 (en) Playing card with electronic authenticator
KR20220133221A (ko) 분산 원장 네트워크에서 콘텐츠의 안전한 피어 투 피어 전송을 위한 시스템 및 방법
US11704726B1 (en) Systems and methods for bartering services and goods using distributed ledger techniques
CN115913734A (zh) 应用于联盟链的用户权限管理方法、装置及设备
US20240144253A1 (en) Control method, server, and recording medium
CN114846497A (zh) 控制方法、装置以及程序
WO2022224907A1 (ja) 制御方法、端末、及び、プログラム
US11544045B2 (en) Automatic smart contract analysis
Knecht Securing Goods Distribution with Smart Contracts and Sensors

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021565562

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 05/10/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20904032

Country of ref document: EP

Kind code of ref document: A1