WO2021125108A1 - 制御方法、装置、および、プログラム - Google Patents
制御方法、装置、および、プログラム Download PDFInfo
- Publication number
- WO2021125108A1 WO2021125108A1 PCT/JP2020/046399 JP2020046399W WO2021125108A1 WO 2021125108 A1 WO2021125108 A1 WO 2021125108A1 JP 2020046399 W JP2020046399 W JP 2020046399W WO 2021125108 A1 WO2021125108 A1 WO 2021125108A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transaction data
- contract
- user
- distributed ledger
- information
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 65
- 239000000463 material Substances 0.000 claims description 129
- 238000012545 processing Methods 0.000 claims description 83
- 238000007726 management method Methods 0.000 claims description 49
- 238000012795 verification Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 50
- 238000004519 manufacturing process Methods 0.000 description 34
- 239000000047 product Substances 0.000 description 34
- 238000010586 diagram Methods 0.000 description 32
- 238000012986 modification Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/18—Legal services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
Definitions
- the present invention relates to control methods, devices, and programs.
- the technology for aligning the operation policy or operation timing is disclosed even in the situation where there are multiple administrators in the system using the distributed ledger.
- the present invention provides a control method for suppressing an increase in power consumption of a computer system that manages contracts.
- the control method is a control method executed by one of the plurality of devices in a contract management system including a plurality of devices having a distributed ledger, and is a first user.
- the first transaction data including the first information regarding the first contract with the second user is acquired, the acquired first transaction data is stored in the distributed ledger, and the second of the first user and the third user.
- the second transaction data including the second information about the contract is acquired, the acquired second transaction data is stored in the distributed ledger, and one of the first transaction data and the second transaction data is associated with the other.
- the third transaction data including the third information regarding the third contract between the second user and the third user is acquired, and the acquired third transaction data is acquired.
- This is a control method for storing the third transaction data in the distributed ledger.
- a recording medium such as a system, an apparatus, an integrated circuit, a computer program or a computer-readable CD-ROM, and the system, the apparatus, the integrated circuit, the computer program. And may be realized by any combination of recording media.
- the control method of the present invention can suppress an increase in power consumption of a computer system that manages contracts.
- FIG. 1 is an explanatory diagram schematically showing an example of a contract flow according to the first embodiment.
- FIG. 2 is a block diagram schematically showing the configuration of the contract management system according to the first embodiment.
- FIG. 3 is a block diagram showing a functional configuration of the ledger server according to the first embodiment.
- FIG. 4 is an explanatory diagram showing a first example of transaction data according to the first embodiment.
- FIG. 5 is an explanatory diagram showing a second example of transaction data according to the first embodiment.
- FIG. 6 is an explanatory diagram showing a third example of transaction data according to the first embodiment.
- FIG. 7 is a flow chart showing the processing of the transaction server according to the first embodiment.
- FIG. 8 is a first sequence diagram showing the processing of the contract management system according to the first embodiment.
- FIG. 9 is a first sequence diagram showing the processing of the contract management system according to the first embodiment.
- FIG. 10 is a block diagram schematically showing the configuration of the contract management system according to the second embodiment.
- FIG. 11 is an explanatory diagram showing a first example of transaction data according to the second embodiment.
- FIG. 12 is an explanatory diagram showing a second example of transaction data according to the second embodiment.
- FIG. 13 is a sequence diagram showing the processing of the contract management system according to the second embodiment.
- FIG. 14 is a block diagram schematically showing the configuration of the contract management system in the first modification.
- FIG. 15 is a block diagram schematically showing the configuration of the contract management system in the second modification.
- FIG. 16 is an explanatory diagram showing a data structure of the blockchain.
- FIG. 17 is an explanatory diagram showing a data structure of transaction data.
- the content of the third contract may be determined by using the contents of the two finalized contracts.
- the contents of the first two contracts are stored in the distributed ledger first, and then the contents of the third new contract are determined and the distributed ledger. It is expected to be stored in.
- the present invention provides a control method for suppressing an increase in power consumption of a computer system that manages contracts.
- the control method is a control method executed by one of the plurality of devices in a contract management system including a plurality of devices having a distributed ledger, and is a first user.
- the first transaction data including the first information regarding the first contract with the second user is acquired, the acquired first transaction data is stored in the distributed ledger, and the second of the first user and the third user.
- the second transaction data including the second information about the contract is acquired, the acquired second transaction data is stored in the distributed ledger, and one of the first transaction data and the second transaction data is associated with the other.
- the third transaction data including the third information regarding the third contract between the second user and the third user is acquired, and the acquired third transaction data is acquired.
- This is a control method for storing the third transaction data in the distributed ledger.
- the transaction data that is, the first transaction data and the second transaction data
- the contents of the above two contracts are added.
- Transaction data that is, third transaction data
- the process of generating transaction data corresponding to a new contract and storing it in the distributed ledger is performed by computer processing of the device, in other words, it is executed without human intervention. Therefore, it is possible to suppress an increase in computer power consumption or a required amount of computer resources. In addition, it is possible to reduce the time and effort required for human processing.
- the control method can suppress an increase in power consumption of the computer system that manages the contract.
- the third transaction data it is determined whether or not the condition indicating that one of the first transaction data and the second transaction data is associated with the other is satisfied, and the condition is determined. When it is determined that the above-mentioned third transaction data is satisfied, it may be acquired by generating the third transaction data.
- the above control method can suppress an increase in power consumption of the computer system that manages the contract.
- the second transaction data includes linking information indicating that the second transaction data is linked to the first transaction data, and when determining whether or not the condition is satisfied, the second transaction data is linked to the first transaction data. It may be determined that the attached information is included as the above condition.
- one of the transaction data corresponding to the two contracts is linked to the other by using the linking information indicating that the second transaction data is linked to the first transaction data. Judge that. Therefore, it is easier to determine that one of the transaction data is associated with the other, and transaction data corresponding to the new contract is generated and stored in the distributed ledger. Therefore, the above control method can suppress an increase in power consumption of the computer system that manages the contract.
- the third transaction is based on the information specified by the first user who is the contractor of the first contract and the contractor of the second contract. Data may be acquired.
- transaction data corresponding to the new contract is generated based on the information specified by the contractors of both the first contract and the second contract. Therefore, transaction data corresponding to a new contract can be generated more easily.
- the first transaction data may include a first contract code including the first information.
- the first contract is managed by the smart contract, in other words, it is managed without human intervention. Therefore, the increase in computer power consumption can be further suppressed, or the required amount of computer resources can be further suppressed. In addition, it is possible to further reduce the time and effort required for human processing. As described above, the control method can further suppress an increase in power consumption of the computer system that manages the contract.
- the second transaction data may include a second contract code including the second information.
- the second contract is managed by the smart contract, in other words, it is managed without human intervention. Therefore, the increase in computer power consumption can be further suppressed, or the required amount of computer resources can be further suppressed. In addition, it is possible to further reduce the time and effort required for human processing. As described above, the control method can further suppress an increase in power consumption of the computer system that manages the contract.
- the third transaction data may include a third contract code including the third information.
- the third contract is managed by the smart contract, in other words, it is managed without human intervention. Therefore, the increase in computer power consumption can be further suppressed, or the required amount of computer resources can be further suppressed. In addition, it is possible to further reduce the time and effort required for human processing. As described above, the control method can further suppress an increase in power consumption of the computer system that manages the contract.
- the first transaction data includes the electronic signature of the first user and the electronic signature of the second user, and when the first transaction data is stored in the distributed ledger, the first transaction data is described. When both the electronic signature of the first user and the electronic signature of the second user included in the transaction data are successfully verified, the first transaction data may be stored in the distributed ledger.
- the first transaction data corresponding to the first contract includes the electronic signatures of the first user and the second user who have concluded the first contract. Therefore, by verifying each electronic signature, it can be proved that the first user and the second user have certainly concluded the first contract. Therefore, the above control method can manage the contract more appropriately.
- the second transaction data includes the electronic signature of the first user and the electronic signature of the third user, and when the second transaction data is stored in the distributed ledger, the second transaction data is described. When both the electronic signature of the first user and the electronic signature of the third user included in the transaction data are successfully verified, the second transaction data may be stored in the distributed ledger.
- the second transaction data corresponding to the second contract includes the electronic signatures of the first user and the third user who have concluded the second contract. Therefore, by verifying each electronic signature, it can be proved that the first user and the third user have certainly concluded the second contract. Therefore, the above control method can manage the contract more appropriately.
- the third transaction data includes the electronic signature of the generation user who generated the third transaction data, the electronic signature of the second user, and the electronic signature of the third user, and the third transaction.
- the data is stored in the distributed ledger, all of the electronic signature of the generation user, the electronic signature of the second user, and the electronic signature of the third user included in the third transaction data. If the verification is successful, the third transaction data may be stored in the distributed ledger.
- the generation user who generated the transaction data related to the third contract and the second user and the third user who have concluded the third contract are electronically respectively. Includes signature. Therefore, by verifying each digital signature, it is proved that the generating user surely generated the transaction data corresponding to the third contract and that the second user and the third user surely concluded the third contract. can do. Therefore, the above control method can manage the contract more appropriately.
- the first contract includes a contract in which the first user stipulates that the material is purchased from the second user, the first information includes the purchase price of the material, and the second contract includes the purchase price of the material.
- the third user includes a contract stipulating that the third user manufactures a product from the material delivered from the second user and delivers it to the first user, and the second information includes the purchase price of the product and the purchase price of the product.
- the third contract includes a deadline for delivering the product and a delivery destination of the product, and the third contract includes a contract stipulating that the second user delivers the material to the third user, and the third information. May include a deadline for delivery of the material and a delivery destination for the material.
- the material delivery contract regarding the material delivery concluded between the material delivery source and the material delivery destination is appropriately managed based on the material contract and the manufacturing consignment contract. That is, the above control method makes a material delivery contract between the second user and the third user based on the material contract between the first user and the second user and the manufacturing consignment contract between the first user and the third user. Can be managed appropriately.
- the device is one of the plurality of devices in a contract management system including a plurality of devices having a distributed ledger, and is a device of a processing unit and the distributed ledger.
- the ledger storage unit and the execution unit are provided, and the processing unit acquires the first transaction data including the first information regarding the first contract between the first user and the second user, and the acquired first transaction data is obtained.
- (1) Transaction data is stored in the distributed ledger
- second transaction data including second information regarding a second contract between the first user and the third user is acquired
- the acquired second transaction data is stored in the distributed ledger.
- the storage and execution unit uses the first information and the second information to use the second user.
- the third transaction data including the third information regarding the third contract with the third user is generated, and the processing unit is a device that further stores the generated third transaction data in the distributed ledger.
- the program according to one aspect of the present invention is a program for causing a computer to execute the above control method.
- a recording medium such as a system, an apparatus, an integrated circuit, a computer program or a computer-readable CD-ROM, and the system, the apparatus, the integrated circuit, the computer program.
- a recording medium such as a system, an apparatus, an integrated circuit, a computer program or a computer-readable CD-ROM, and the system, the apparatus, the integrated circuit, the computer program.
- it may be realized by any combination of recording media.
- FIG. 1 is an explanatory diagram schematically showing an example of the contract flow in the present embodiment.
- FIG. 1 schematically shows a contract involving three parties, Company A, Company B, and Company C, which constitute the supply chain, and the delivery of goods made by the contract.
- Company A is also referred to as a first user
- Company B is also referred to as a second user
- Company C is also referred to as a third user.
- a material contract (corresponding to the first contract) is concluded between company A and company B.
- the material contract is a contract that stipulates that company A purchases materials from company B.
- the material contract includes the purchase price of the material.
- a manufacturing consignment contract (corresponding to the second contract) is concluded between company A and company C.
- the manufacturing consignment contract is a contract that stipulates that Company C manufactures a product from a material and delivers the manufactured product to Company A.
- the manufacturing consignment contract includes the delivery date of the product, the purchase price of the product, and the delivery destination of the product (also referred to as the delivery destination of the product).
- a material delivery contract (corresponding to the third contract) is concluded between company B and company C.
- the material delivery contract is a contract in which Company B delivers materials to Company C.
- the material delivery contract includes the delivery date of the material and the delivery destination of the material (also referred to as the delivery destination of the material).
- Company B fulfills the material delivery contract by delivering the manufactured material to Company C ((4) in Fig. 1).
- Company C fulfills the manufacturing consignment contract by manufacturing a product from the material delivered from Company B and delivering the manufactured product to Company A ((5) in FIG. 1).
- one smart contract CA that defines the contents of the material contract and one smart that defines the contents of the manufacturing consignment contract It is assumed that a contract CB and one smart contract CC that defines the contents of the material delivery contract will be used.
- the contents of the smart contract CC can be generated automatically by using the contents of the smart contracts CA and CB, that is, without human intervention.
- the smart contracts CA, CB, and CC have at least a function of managing the contents of the material contract, the manufacturing consignment contract, and the material delivery contract, respectively, but also fulfill the contract (for example, manufacture and manufacture the material or product). It may have a function of processing materials or products (delivery, payment, etc.).
- FIG. 2 is a block diagram schematically showing the configuration of the contract management system 1 according to the present embodiment.
- the contract management system 1 includes ledger servers 10A, 10B and 10C, a transaction server 10T, and terminals 20A, 20B and 20C.
- ledger servers 10A, 10B and 10C are also referred to as “ledger server 10A and the like", and the terminals 20A, 20B and 20C are also referred to as “terminal 20A and the like”.
- the ledger server 10A and the terminal 20A belong to the company A
- the ledger server 10B and the terminal 20B belong to the company B
- the ledger server 10C and the terminal 20C belong to the company C.
- the contract management system 1 shows an example of managing a contract in which three parties are involved, but the number of persons involved in the contract may be four or more.
- Each device included in the contract management system 1 is directly or indirectly connected to the network N and can communicate with each other via the network N.
- the network N may be composed of any communication line or network, and may include, for example, the Internet, a carrier network of a mobile phone, an access network of an Internet provider, a public access network, and the like.
- the ledger server 10A is one of a plurality of ledger servers 10A and the like that manage contracts using a distributed ledger in the contract management system 1.
- the ledger server 10A is also referred to as a device.
- the ledger server 10A has a distributed ledger. Transaction data is stored in the distributed ledger held by the ledger server 10A.
- the transaction data stored in the distributed ledger includes transaction data including a contract code (also simply referred to as a code) related to a smart contract related to a contract.
- the ledger server 10A has a rewritable storage area in addition to the storage area in which the distributed ledger is stored, and stores variables related to the contract in the rewritable storage area.
- the ledger servers 10B and 10C are devices having the same functions as the ledger server 10A, respectively, and operate independently of the ledger server 10A.
- the transaction server 10T is a device that holds a distributed ledger, like a plurality of ledger servers 10A and the like.
- the transaction server 10T stores transaction data in the distributed ledger, similarly to the ledger server 10A and the like.
- the transaction server 10T has a rewritable storage area in addition to the storage area in which the distributed ledger is stored, and stores variables related to the contract in the rewritable storage area. Further, the transaction server 10T generates a new smart contract based on the transaction data stored in the distributed ledger and stores it in the distributed ledger.
- the transaction server 10T is directly or indirectly connected to the network N and can communicate with the ledger server 10A and the like via the network N.
- Terminal 20A is an information terminal used by a user belonging to company A.
- the terminal 20A is operated by the user and is used, for example, to generate a smart contract code or to arrange the smart contract code on the ledger server 10A or the like.
- the terminal 20A is, for example, a personal computer, a smartphone, a tablet, or the like.
- the terminals 20B and 20C have the same functions as the terminal 20A, respectively, and are information terminals used by users belonging to the companies B and C, and operate independently of the terminal 20A.
- one or more terminals may belong to each of company A, company B, and company C.
- the terminal 20A may further have the function of the ledger server 10A. In that case, the terminal 20A corresponds to a device that manages contracts using a distributed ledger.
- the terminal 20B may further include the function of the ledger server 10B. In that case, the terminal 20B corresponds to a device that manages contracts using a distributed ledger.
- the terminal 20C may further include the function of the ledger server 10C. In that case, the terminal 20C corresponds to a device that manages contracts using a distributed ledger.
- FIG. 3 is a block diagram showing a functional configuration of the ledger server 10A according to the present embodiment.
- the ledger server 10A includes a processing unit 11, a ledger storage unit 12, an execution unit 13, and a storage unit 14.
- the ledger servers 10B and 10C and the transaction server 10T also have the same functional units as the ledger server 10A.
- the processing unit 11 is a functional unit that executes processing related to transaction data.
- the processing unit 11 can be realized by executing a program by a processor (for example, a CPU (Central Processing Unit)) included in the ledger server 10A using a memory.
- a processor for example, a CPU (Central Processing Unit) included in the ledger server 10A using a memory.
- the processing unit 11 acquires transaction data and executes a process of storing the acquired transaction data in the distributed ledger. Further, the processing unit 11 generates transaction data, generates an electronic signature (also simply referred to as a signature) for the generated transaction data, and executes a process of assigning the generated signature to the transaction data.
- an electronic signature also simply referred to as a signature
- the processing unit 11 stores the new transaction data in the distributed ledger
- the processing unit 11 stores the new transaction data in the ledger storage unit 12 by a method according to the type of the distributed ledger. Further, the processing unit 11 transmits and receives communication data to and from the ledger storage unit 12 provided in another ledger server such as the ledger server 10A, and stores the transaction data in the ledger storage unit 12 provided in the other ledger server.
- the distributed ledger is a blockchain
- the processing unit 11 generates a block containing new transaction data, and after forming a consensus algorithm between the ledger server 10A and the like for the generated block, the above-mentioned The block is stored in the ledger storage unit 12.
- the processing unit 11 acquires the first transaction data and stores the acquired first transaction data in the distributed ledger.
- the first transaction data includes information (also referred to as first information) regarding the material contract (that is, the first contract) between the company A and the company B.
- the processing unit 11 acquires the second transaction data and stores the acquired second transaction data in the distributed ledger.
- the second transaction data includes information (also referred to as second information) regarding the manufacturing consignment contract (that is, the second contract) between the company A and the company C.
- the processing unit 11 acquires the third transaction data and stores the acquired third transaction data in the distributed ledger.
- the third transaction data includes information (also referred to as third information) regarding the material delivery contract (that is, the third contract) between the company B and the company C.
- the third transaction data is generated by, for example, the processing unit 11 of the transaction server 10T and transmitted to the ledger server 10A or the like.
- the processing unit 11 of the transaction server 10T acquires the third transaction data by generating it as described above.
- the processing unit 11 of the ledger server 10A or the like may acquire the third transaction data generated and transmitted by the transaction server 10T by receiving the third transaction data.
- the processing unit 11 of the transaction server 10T uses the first information and the second information to and the second user. Generate third transaction data including third information about the third contract with the third user.
- the processing unit 11 of the transaction server 10T acquires the third transaction data, whether or not the condition indicating that one of the first transaction data and the second transaction data is associated with the other is satisfied. If it is determined that the condition is satisfied, the third transaction data may be generated to acquire the data.
- the second transaction data may include association information indicating that the second transaction data is associated with the first transaction data. Then, when the processing unit 11 determines whether or not the above conditions are satisfied, the determination may be made on the condition that the second transaction data includes the association information.
- the ledger storage unit 12 is a storage unit that stores the distributed ledger.
- the distributed ledger stored in the ledger storage unit 12 stores one or more transaction data, and is managed so as to be difficult to falsify by using characteristics such as a hash value (described later).
- the ledger storage unit 12 stores the transaction data provided by the processing unit 11 in the distributed ledger. Transaction data from the past to the present is stored in the distributed ledger. Based on the characteristic that it is difficult to falsify the information recorded in the distributed ledger, the transaction data is managed so as not to be falsified.
- the distributed ledger is, for example, a blockchain, and this case will be described as an example, but it is also possible to adopt another type of distributed ledger (for example, IOTA or hash graph).
- the distributed ledger may execute a consensus algorithm (for example, PBFT (Practical Byzantine Facility Resource), PoW (Proof of Work) or PoS (Proof of Stake)) when storing new data. , It may not be executed.
- PBFT Practice Byzantine Facility Resource
- PoW Proof of Work
- PoS Proof of Stake
- Hyperledger fabric is an example of a distributed ledger technology that does not execute a consensus algorithm.
- the execution unit 13 is a functional unit that executes processing by referring to the transaction data stored in the distributed ledger stored in the ledger storage unit 12.
- the execution unit 13 can be realized by executing a program by a processor (for example, a CPU) included in the ledger server 10A using a memory.
- a processor for example, a CPU
- the execution unit 13 is a contract execution unit that executes processing according to the code of the smart contract included in the transaction data stored in the distributed ledger will be described as an example.
- the execution unit 13 reads out the first information contained in the first transaction data stored in the distributed ledger and stores it in the storage unit 14. Execute the storage process. The storage process is performed, for example, by the execution unit 13 executing the first contract code included in the first transaction data based on the fact that the first transaction data is stored in the distributed ledger.
- the execution unit 13 reads the second information included in the second transaction data stored in the distributed ledger and stores it in the storage unit 14. To execute.
- the storage process is performed, for example, by the execution unit 13 executing the second contract code included in the second transaction data based on the fact that the second transaction data is stored in the distributed ledger.
- the execution unit 13 reads the third information included in the third transaction data stored in the distributed ledger and stores it in the storage unit 14. To execute.
- the storage process is performed, for example, by the execution unit 13 executing the third contract code included in the third transaction data based on the fact that the third transaction data is stored in the distributed ledger.
- the storage unit 14 is a storage device having a storage area for storing information related to the contract. Specifically, the information stored in the storage unit 14 includes the first information, the second information, and the third information. The information stored in the storage unit 14 is set and read by the execution unit 13.
- the storage unit 14 is realized by a rewritable storage device, for example, a memory such as a RAM (Random Access Memory) or a storage such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
- a multisig technique in which a plurality of signatures are given may be applied to the first transaction data, the second transaction data, or the third transaction data.
- the first transaction data and the third transaction data will be described as an example.
- the transaction data or the third transaction data may only be given a single digital signature.
- the first transaction data may include the electronic signatures of the companies A and B, which are the contractors of the material contract.
- the processing unit 11 stores the first transaction data in the distributed ledger, if the verification of the electronic signatures of each of the companies A and B included in the first transaction data is successful, the first transaction Store the data in the distributed ledger.
- the second transaction data may include the electronic signatures of the companies A and C, which are the contractors of the manufacturing consignment contract.
- the processing unit 11 stores the second transaction data in the distributed ledger, if the verification of the electronic signatures of the companies A and C included in the second transaction data is successful, the second transaction Store the data in the distributed ledger.
- the third transaction data may include the transaction server 10T, which is the user who generated the material delivery contract, and the electronic signatures of the companies B and C, which are the contractors of the material delivery contract.
- the processing unit 11 stores the third transaction data in the distributed ledger, if the transaction server 10T included in the third transaction data and the electronic signatures of the companies B and C are successfully verified. , Store the third transaction data in the distributed ledger.
- the first contract, the second contract, and the third contract can also be expressed as follows. That is, the first contract includes a contract that stipulates that the first user purchases materials from the second user.
- the first information includes the purchase price of the material.
- the second contract includes a contract in which the third user manufactures a product from the material delivered by the second user and delivers it to the first user.
- the second information includes the purchase price of the product, the deadline for delivering the product, and the delivery destination of the product.
- the third contract includes a contract that provides for the second user to deliver the material to the third user.
- the third information includes the deadline for delivering the material and the delivery destination of the material.
- FIG. 4 is an explanatory diagram showing transaction data TA, which is a first example of transaction data in the present embodiment.
- the transaction data TA corresponds to the first transaction data.
- the transaction data TA is generated by, for example, the ledger server 10A.
- the transaction data TA includes a "smart contract CA code", an "argument to be passed to the initialization function", a "signature 1", a “signature 2”, and a "transmission date and time”. Including.
- the "smart contract CA code" is a variable used by the smart contract CA, and includes a variable unit indicating a variable stored in the storage unit 14. The variable part is shown by a broken line frame in FIG. The same expression will be used hereafter.
- Variables used by smart contract CAs include amounts, delivery dates and contractors. The amount indicates the amount paid by Company A in the material contract. The delivery date indicates the date when Company B delivers the material to the material delivery destination. The contractor indicates the contractor of the material contract, and here, in particular, the person who is different from the company A of the two parties who have concluded the material contract.
- the "smart contract CA code” includes an initialization function.
- the initialization function is a special function executed by the execution unit 13 when the transaction data is stored in the distributed ledger. The same applies thereafter.
- the initialization function accepts the amount and delivery date as arguments. Further, when the initialization function is executed, the value is set in the variable indicating the amount of money, the variable indicating the delivery date, and the variable indicating the contractor stored in the storage unit 14. Specifically, when the initialization function is executed, the amount accepted as an argument is set in the variable indicating the amount, the delivery date accepted as an argument is set in the variable indicating the delivery date, and B is set in the variable indicating the conclude. Set the company identification information. The identification information of company B may be simply described as company B. The same applies to companies A and C. The same applies thereafter.
- the "argument to be passed to the initialization function" is an argument to be passed to the initialization function of the smart contract CA, and includes the delivery date (January 1, 2019) and the amount (5 million yen). The information shown as this argument is passed to the initialization function.
- Signature 1 is the first of the two electronic signatures given to the transaction data TA.
- Signature 1 includes the signature SA of Company A.
- Signature 2 is the second of the two electronic signatures given to the transaction data TA.
- Signature 2 includes the signature SB of Company B.
- Send date and time indicates the date and time when the transaction data TA was transmitted. "October 01, 2018 12:00:00" is stored in the transmission date and time.
- the initialization function is executed, and the amount and delivery date passed to the initialization function as arguments are the amount and delivery date of the storage unit 14, respectively.
- the identification information of company B is set in the variable indicating the contractor of the material contract of the storage unit 14.
- FIG. 5 is an explanatory diagram showing transaction data TB, which is a second example of transaction data in the present embodiment.
- the transaction data TB corresponds to the second transaction data.
- the transaction data TB is generated by, for example, the ledger server 10A.
- the transaction data TB includes "smart contract CB code”, "argument to be passed to the initialization function”, “association information”, “signature 1", and “signature 2". , "Sending date and time” and included.
- Smart contract CB code includes a variable part and an initialization function.
- the variables used by the smart contract CB include the amount, product delivery destination, delivery date and contractor.
- the amount indicates the amount paid by Company A in the manufacturing consignment contract.
- the product delivery destination indicates the delivery destination of the product manufactured by Company C under the manufacturing consignment contract.
- the delivery date indicates the date when Company C delivers the product to the product delivery destination.
- the contractor indicates the contractor of the manufacturing consignment contract, and here, in particular, the person who is different from the company A of the two parties who have concluded the manufacturing consignment contract.
- the initialization function accepts the amount, delivery date, and product delivery destination as arguments. Further, when the initialization function is executed, the value is set in the variable indicating the amount of money, the variable indicating the delivery destination of the product, the delivery date, and the variable indicating the contractor stored in the storage unit 14. Specifically, when the initialization function is executed, the amount received as an argument is set in the variable indicating the amount, the delivery date accepted as an argument is set in the variable indicating the delivery date, and the variable indicating the product delivery destination is set. Set the product delivery destination accepted as an argument, and set the identification information of company C in the variable indicating the contractor.
- the "argument to be passed to the initialization function" is an argument to be passed to the initialization function of the smart contract CB, and the delivery date (February 1, 2019), the amount (5 million yen), and the product delivery destination (identification of company A). Information) and.
- the information shown as this argument is passed to the initialization function.
- Linked information indicates a smart contract corresponding to a material contract linked to a smart contract CB (or transaction data TB).
- the association information includes information indicating the smart contract CA.
- Signature 1 is the first of the two electronic signatures given to the transaction data TB.
- Signature 1 includes the signature SA of Company A.
- Signature 2 is the second of the two electronic signatures given to the transaction data TB.
- Signature 2 includes the signature SC of Company C.
- Send date and time indicates the date and time when the transaction data TB was transmitted. "November 01, 2018 12:00:00" is stored in the transmission date and time.
- the initialization function is executed, and the delivery date, amount, and product delivery destination passed to the initialization function as arguments are stored in the storage unit, respectively.
- the identification information of company C is set in the variables indicating the delivery date, the amount of money, and the delivery destination of the product of 14, and the variables indicating the contractor of the manufacturing consignment contract of the storage unit 14.
- FIG. 6 is an explanatory diagram showing transaction data TC, which is a third example of transaction data in the present embodiment.
- the transaction data TC corresponds to the third transaction data.
- the transaction data TC is generated by the transaction server 10T.
- the transaction data TC includes a "smart contract CC code", an "argument to be passed to the initialization function", a "signature 1", a “signature 2", and a "signature 3". Includes "sending date and time”.
- Smart contract CC code includes a variable part and an initialization function.
- the variables used by the smart contract CC include the material delivery source, the material delivery destination, and the delivery date.
- the material delivery source indicates the delivery source of the material manufactured by Company B in the material delivery contract.
- the material delivery destination indicates the delivery destination of the material manufactured by Company B in the material delivery contract.
- the delivery date indicates the date when Company B delivers the material to the material delivery destination.
- the initialization function accepts the material delivery source, the material delivery destination, and the delivery date as arguments.
- values are set in the variable indicating the material delivery source, the variable indicating the material delivery destination, and the variable indicating the delivery date, which are stored in the storage unit 14.
- the material delivery source received as an argument is set in the variable indicating the material delivery source, and the material delivery destination received as an argument is set in the variable indicating the material delivery destination.
- the "argument to be passed to the initialization function" is an argument to be passed to the initialization function of the smart contract CC, and is the delivery date (January 1, 2019), the material delivery source (identification information of company B), and the material delivery destination (identification information of company B). (Identification information of company C) is included.
- the information shown as this argument is passed to the initialization function.
- Signature 1 is the first of the three electronic signatures given to the transaction data TC.
- the signature 1 includes the signature ST of the transaction server 10T.
- Signature 2 is the second of the three electronic signatures given to the transaction data TC.
- Signature 2 includes the signature SC of Company C.
- Signature 3 is the third of the three electronic signatures given to the transaction data TC. Signature 3 includes the signature SB of Company B.
- Send date and time indicates the date and time when the transaction data TC was transmitted. "November 02, 2018, 12:00:00" is stored in the transmission date and time.
- the initialization function is executed, and the material delivery source, material delivery destination, and delivery date passed to the initialization function as arguments are set, respectively. It is set in variables indicating the material delivery source, the material delivery destination, and the delivery date of the storage unit 14.
- FIG. 7 is a flow chart showing the processing of the transaction server 10T in the present embodiment.
- the flow chart shown in FIG. 7 shows a process in which the transaction server 10T generates transaction data TC and stores it in the distributed ledger.
- step S101 the processing unit 11 of the transaction server 10T determines whether or not the transaction data is newly stored in the distributed ledger of the ledger storage unit 12. If it is determined that the transaction data is newly stored (Yes in step S101), the process proceeds to step S102, and if not (No in step S101), step S101 is executed again. That is, the processing unit 11 waits in step S101 until the transaction data is newly stored.
- step S102 the processing unit 11 of the transaction server 10T determines whether or not the transaction data newly stored in the distributed ledger includes the association information.
- the transaction data newly stored in the distributed ledger is the transaction data including the smart contract corresponding to the manufacturing consignment contract
- the transaction data includes the association information. If it is determined that the association information is included (Yes in step S102), the process proceeds to step S103, and if not (No in step S102), the series of processes shown in FIG. 7 is terminated. ..
- step S103 the processing unit 11 of the transaction server 10T refers to the association information included in the transaction data newly stored in the distributed ledger, and refers to the association destination smart contract (also referred to as the association smart contract). ) Is specified. For example, when the transaction data TB shown in FIG. 5 is newly stored in the distributed ledger, the processing unit 11 specifies the smart contract CA corresponding to the material contract as the linked smart contract.
- step S104 the processing unit 11 of the transaction server 10T identifies the contractor of the material contract and the manufacturing consignment contract.
- the material contract is a material contract corresponding to the smart contract specified in step S103.
- the manufacturing consignment contract is a manufacturing consignment contract corresponding to the smart contract included in the transaction data newly determined to be stored in the distributed ledger in step S101.
- the transaction data corresponding to the material contract is the transaction data TA (see FIG. 4) and the transaction data corresponding to the manufacturing consignment contract is the transaction data TB (see FIG. 5)
- the material contract and the manufacturing consignment contract Company B and Company C are identified as the concluding party.
- the material manufactured by company B is delivered to company C, that is, the material delivery source is company B and the material delivery destination is company C for the material manufactured by company B.
- step S105 the processing unit 11 of the transaction server 10T determines whether or not the material delivery contract has already been concluded between the contractors B and C specified in step S104. More specifically, the processing unit 11 determines whether or not a material delivery contract that stipulates that the material is delivered from the company B to the company C has already been concluded. If it is determined that the material delivery contract has already been concluded (Yes in step S105), the series of processes shown in FIG. 7 is completed, and if not (No in step S105), step S106 is performed. move on.
- step S106 the processing unit 11 of the transaction server 10T specifies the contractor of the material delivery contract to be concluded and the delivery date.
- the concluding party is specified as company B and company C, and more specifically, the material delivery source is company B and the material delivery destination is company C.
- the delivery date is specified as a date that goes back by a predetermined period from the delivery date of the product in the manufacturing consignment contract. For example, from February 1, 2019, which is the delivery date of the product, January 1, 2019, which goes back one month as a predetermined period. Identified as a day.
- the predetermined period is determined based on, for example, the period required for producing the material to be produced.
- step S107 the processing unit 11 of the transaction server 10T generates a code of a smart contract CC corresponding to a material delivery contract to be concluded between the contractors specified in step S108.
- step S108 the processing unit 11 of the transaction server 10T generates transaction data TC including the code of the smart contract CC generated in step S107.
- Company B which is the material delivery source
- company C which is the material delivery destination, specified in step S106, are set in the material delivery source and the material delivery destination of the "argument to be passed to the initialization function" of the transaction data TC, respectively. ..
- step S109 the processing unit 11 of the transaction server 10T assigns a signature to the transaction data TC generated in step S108.
- the transaction data TC signed by the transaction server 10T is transmitted to the ledger server 10C and is given the signature of the ledger server 10C.
- the transaction data TC is transmitted to the ledger server 10B, signed by the ledger server 10B, and then transmitted to the ledger servers 10A and 10C and the transaction server 10T.
- step S110 the processing unit 11 of the transaction server 10T stores the transaction data TC signed in step S109 in the distributed ledger.
- the ledger server 10A and the like also store the transaction data TC in the distributed ledger.
- the transaction data TC is stored in all the distributed ledgers of the ledger server 10A and the like and the transaction server 10T.
- FIG. 8 is a first sequence diagram showing the processing of the contract management system 1 in the present embodiment.
- FIG. 8 shows a series of processes related to the conclusion of a material contract, the conclusion of a manufacturing consignment contract, and the conclusion of a material delivery contract.
- the same processing as that shown in FIG. 7 is designated by the same reference numerals and detailed description thereof will be omitted.
- step S201 the processing unit 11 of the ledger server 10A acquires the code of the smart contract CA corresponding to the material contract.
- the code of the smart contract CA may be acquired by the ledger server 10A generating the code, or by receiving the code transmitted from the terminal 20A based on the operation by the person in charge of the company A. May be good.
- step S202 the processing unit 11 of the ledger server 10A generates transaction data TA.
- the generated transaction data TA includes the code of the smart contract CA acquired in step S201 (see FIG. 4).
- step S203 the processing unit 11 of the ledger server 10A generates a signature for the transaction data TA generated in step S202, assigns it to the transaction data TA, and transmits the signed transaction data TA to the ledger server 10B.
- step S204 the processing unit 11 of the ledger server 10B receives the transaction data TA transmitted in step S203, generates a signature for the received transaction data TA, assigns it to the transaction data TA, and assigns the signature to the transaction.
- Data TA is transmitted to the ledger servers 10A and 10C and the transaction server 10T, respectively.
- all the ledger servers 10A and the like and the transaction server 10T have transaction data TAs signed by the ledger servers 10A and 10B, respectively.
- each of the ledger server 10A and the transaction server 10T stores the transaction data TA signed or transmitted in step S204 in the distributed ledger.
- the transaction data TA may be stored in the distributed ledger on condition that consensus building is made based on the consensus algorithm.
- step S206 the processing unit 11 of the ledger server 10A acquires the code of the smart contract CB corresponding to the manufacturing consignment contract.
- the code of the smart contract CB may be acquired by the ledger server 10A generating the code, or by receiving the code transmitted from the terminal 20A based on the operation by the person in charge of the company A. May be good.
- step S207 the processing unit 11 of the ledger server 10A generates transaction data TB.
- the generated transaction data TB includes the code of the smart contract CB acquired in step S206 (see FIG. 5).
- step S208 the processing unit 11 of the ledger server 10A generates a signature for the transaction data TB generated in step S207, assigns it to the transaction data TB, and transmits the signed transaction data TB to the ledger server 10C.
- step S209 the processing unit 11 of the ledger server 10C receives the transaction data TB transmitted in step S208, generates a signature for the received transaction data TB, assigns it to the transaction data TB, and assigns the signature to the transaction.
- Data TB is transmitted to the ledger servers 10A and 10B and the transaction server 10T, respectively.
- all the ledger servers 10A and the like and the transaction server 10T have transaction data TBs signed by the ledger servers 10A and 10C, respectively.
- each of the ledger server 10A and the transaction server 10T stores the transaction data TB signed or transmitted in step S209 in the distributed ledger.
- the transaction data TB may be stored in the distributed ledger on condition that consensus building is made based on the consensus algorithm.
- the processing unit 11 of the transaction server 10T determines that new transaction data has been stored based on the transaction data TB stored in the distributed ledger in step S210 (Yes in step S101), and corresponds to the material delivery contract.
- the smart contract CC is acquired, the transaction data TC is generated, and the transaction data TC is transmitted to the ledger server 10C (steps S102 to S109).
- step S221 the processing unit 11 of the ledger server 10C receives the transaction data TC transmitted in step S109, generates a signature for the received transaction data TC, assigns it to the transaction data TC, and assigns the signature to the transaction.
- the data TC is transmitted to the ledger server 10B.
- step S222 the processing unit 11 of the ledger server 10B receives the transaction data TC transmitted in step S221, generates a signature for the received transaction data TC, assigns it to the transaction data TC, and assigns the signature to the transaction.
- the data TC is transmitted to the ledger servers 10A and 10C and the transaction server 10T.
- all the ledger servers 10A and the like and the transaction server 10T have the transaction server 10T and the transaction data TCs signed by the ledger servers 10A and 10C, respectively.
- each of the ledger server 10A and the transaction server 10T stores the transaction data TC signed or transmitted in step S222 in the distributed ledger.
- the transaction data TC may be stored in the distributed ledger on condition that consensus building is made based on the consensus algorithm.
- the signature given to the transaction data TC may at least include the signature by the transaction server 10T. In that case, at least one of the ledger servers 10B and 10C does not need to add a signature to the received transaction data TC.
- FIG. 9 shows an example of a sequence diagram when both the ledger servers 10B and 10C do not give a signature.
- FIG. 9 shows the processes after step S101 in FIG.
- the processing unit 11 of the transaction server 10T transmits the signed transaction data TC to the ledger servers 10A, 10B, and 10C.
- each of the ledger server 10A and the like and the transaction server 10T stores the transaction data TC in the distributed ledger.
- the contract management system 1 has the contents of the material contract concluded between the company A and the company B and the contents of the manufacturing consignment contract concluded between the company A and the company C. Based on the above, a new material delivery contract can be concluded between Company B and Company C without human intervention. In this way, the contract management system 1 can suppress an increase in power consumption of the computer system that manages the contract while appropriately managing the contract related to the company A, the company B, and the company C.
- association information is included in the transaction data TB
- the association information may be included in the transaction data TA.
- the linked smart contract is specified after the transaction data TB is stored in the distributed ledger.
- the contract management system 2 of the present embodiment contributes to the contractor who has concluded both of the above two contracts to generate a new contract.
- the transaction server 10T is not used for contract management.
- FIG. 10 is a block diagram schematically showing the configuration of the contract management system 2 according to the present embodiment.
- the contract management system 2 does not include the transaction server 10T included in the contract management system 1 in the first embodiment.
- Other configurations are the same as those of the contract management system 1.
- the process of acquiring the third transaction data is specified by a user (corresponding to the first user, that is, company A) who is the contractor of the first contract and the contractor of the second contract. Describe the technology to be executed based on information.
- FIG. 11 is an explanatory diagram showing transaction data TB1 which is a first example of transaction data in the present embodiment.
- the transaction data TB1 is similar to the transaction data TB (see FIG. 5) in the first embodiment, but differs in that it does not include the association information. In other respects, it is the same as transaction data TB.
- the transaction data TB1 corresponds to the second transaction data.
- the smart contract code included in the transaction data TB1 is called the smart contract CB1 code.
- FIG. 12 is an explanatory diagram showing transaction data TC1, which is a second example of transaction data in the present embodiment.
- the transaction data TC1 is similar to the transaction data TC (see FIG. 6) in the first embodiment, but differs in that the "signature 1" includes the signature of company A. In other respects, it is the same as the transaction data TC.
- the transaction data TC1 corresponds to the third transaction data.
- the smart contract code included in the transaction data TC1 is called the smart contract CC1 code.
- FIG. 13 is a sequence diagram showing the processing of the contract management system 2 in the present embodiment.
- FIG. 13 shows a series of processes related to the conclusion of the material contract, the conclusion of the manufacturing consignment contract, and the conclusion of the material delivery contract, as in FIG. 8 of the first embodiment.
- the same processing as that shown in FIG. 8 is designated by the same reference numerals and detailed description thereof will be omitted.
- Steps S201 to S210 shown in FIG. 13 are the same as the processes in the first embodiment.
- the transaction data TA including the smart contract CA corresponding to the material contract concluded between the company A and the company B is stored in the distributed ledger, and the manufacturing consignment concluded between the company B and the company C.
- the transaction data TB including the smart contract CB corresponding to the contract is stored in the distributed ledger.
- step S107B the processing unit 11 of the ledger server 10A generates the code of the smart contract CC1 corresponding to the material delivery contract.
- step S108B the processing unit 11 of the ledger server 10A generates transaction data TC1 including the code of the smart contract CC1 generated in step S107B.
- the material delivery source and material delivery destination of the "argument to be passed to the initialization function" of the transaction data TC1 are based on the information specified by the company A, which is the contractor of the material contract and the contractor of the manufacturing consignment contract. It is decided. For example, in the material contract, company B, which manufactures and delivers the material, is specified as the material delivery source, and in the manufacturing consignment contract, company C, which manufactures the product from the material, is specified as the material delivery destination.
- step S109B the processing unit 11 of the transaction server 10T gives a signature to the transaction data TC1 generated in step S108B, and transmits the signed transaction data TC1 to the ledger server 10B in the same manner as in step S109.
- step S221B the processing unit 11 of the ledger server 10B receives the transaction data TC1 transmitted in step S109B, generates a signature for the received transaction data TC1, assigns it to the transaction data TC1, and assigns the signature to the transaction.
- Data TC1 is transmitted to the ledger server 10C.
- step S222B the processing unit 11 of the ledger server 10C receives the transaction data TC1 transmitted in step S221B, generates a signature for the received transaction data TC1, assigns it to the transaction data TC1, and assigns the signature to the transaction.
- the data TC1 is transmitted to the ledger servers 10A and 10B.
- all the ledger servers 10A and the like have the transaction data TC1 to which the respective signatures of the ledger server 10A and the like are given.
- each of the ledger servers 10A and the like stores the transaction data TC1 signed or transmitted in step S222B in the distributed ledger.
- the transaction data TC1 may be stored in the distributed ledger on condition that consensus building is made based on the consensus algorithm.
- the contract management system 2 is based on the contents of the material contract concluded between the company A and the company B and the contents of the manufacturing consignment contract concluded between the company A and the company C. It is possible to conclude a new material delivery contract between Company B and Company C without human intervention and without using a trading server. In this way, the contract management system 1 can suppress an increase in power consumption of the computer system that manages the contract while appropriately managing the contract related to the company A, the company B, and the company C.
- FIG. 14 is a block diagram schematically showing the configuration of the contract management system 3 in this modified example.
- the contract management system 3 in this modification is a modification of the contract management system 1 of the first embodiment.
- the contract management system 3 shown in FIG. 14 includes ledger servers 10A, 10B and 10C, terminals 20A, 20B and 20C, and a transaction server 10T.
- the ledger servers 10A, 10B and 10C are collectively arranged in one place. More generally, the ledger servers 10A, 10B and 10C do not necessarily have to be located at companies A, B and C, respectively, and may be directly or indirectly connected to network N. It may be located in a place.
- the ledger server 10A Even with such an arrangement of the ledger server 10A or the like, it has the same function as the contract management system 1 of the first embodiment and exhibits the same effect.
- FIG. 15 is a block diagram schematically showing the configuration of the contract management system 4 in this modified example.
- the contract management system 4 in this modification is a modification of the contract management system 1 of the first embodiment.
- the contract management system 4 shown in FIG. 15 includes transaction servers 10T, 10U and 10V, and terminals 20A, 20B and 20C.
- the transaction servers 10T, 10U, and 10V also have the functions of the ledger servers 10A, 10B, and 10C, respectively.
- the transaction servers 10T, 10U, and 10V are collectively arranged in one place like the ledger server 10A of the modified example 1, but the companies A, B, and C as in the first embodiment. It may be arranged in.
- the transaction server 10T Even with such an arrangement of the transaction server 10T or the like, it has the same function as the contract management system 1 of the first embodiment and exhibits the same effect.
- FIG. 16 is an explanatory diagram showing the data structure of the blockchain.
- a blockchain is a chain of blocks, which is the recording unit.
- Each block has a plurality of transaction data and a hash value of the immediately preceding block.
- the block B2 contains the hash value of the previous block B1.
- the hash value calculated from the plurality of transaction data included in the block B2 and the hash value of the block B1 is included in the block B3 as the hash value of the block B2.
- FIG. 17 is an explanatory diagram showing a data structure of transaction data.
- the transaction data shown in FIG. 17 includes a transaction body P1 and a digital signature P2.
- the transaction body P1 is a data body included in the transaction data.
- the electronic signature P2 is generated by signing the hash value of the transaction body P1 with the signature key of the creator of the transaction data, and more specifically, encrypting it with the private key of the creator. is there.
- each component may be configured by dedicated hardware or may be realized by executing a software program suitable for each component.
- Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
- the software that realizes the content management system of the above embodiment is the following program.
- this program is a control method executed by one of the plurality of devices in a contract management system including a plurality of devices having a distributed ledger in the computer, and is a control method executed by the first user and the first user.
- (Ii) Acquire the first transaction data including the first information regarding the first contract with the user, store the acquired first transaction data in the distributed ledger, and relate to the second contract between the first user and the third user.
- the second transaction data including the second information is acquired, the acquired second transaction data is stored in the distributed ledger, and one of the first transaction data and the second transaction data is associated with the other.
- the third transaction data including the third information regarding the third contract between the second user and the third user is acquired, and the acquired third transaction data is acquired. It is a program that executes a control method for storing transaction data in the distributed ledger.
- the present invention can be used in a contract management system that manages contracts.
Landscapes
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Engineering & Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- General Health & Medical Sciences (AREA)
- Technology Law (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
第一ユーザと第二ユーザとの第一契約に関する第一情報を含む第一トランザクションデータを取得し、取得した第一トランザクションデータを分散台帳に格納し(S205)、第一ユーザと第三ユーザとの第二契約に関する第二情報を含む第二トランザクションデータを取得し、取得した第二トランザクションデータを分散台帳に格納し(S206)、第一トランザクションデータと第二トランザクションデータとの一方が他方に紐付けられている場合に、第一情報と第二情報とを用いて、第二ユーザと第三ユーザとの第三契約に関する第三情報を含む第三トランザクションデータを取得し、取得した第三トランザクションデータを分散台帳に格納する(S223)。
Description
本発明は、制御方法、装置、および、プログラムに関する。
分散台帳を用いて契約に係る情報を管理する技術がある。分散台帳に格納された情報は、書き換えが実質的に不可能であるように管理される。
分散台帳を用いたシステムにおいて複数の管理者が存在する状況下でも、運用ポリシーまたは運用のタイミングを揃える技術が開示されている。
本発明は、契約を管理するコンピュータシステムの消費電力の増大を抑制する制御方法などを提供する。
本発明の一態様に係る制御方法は、分散台帳を保有している複数の装置を備える契約管理システムにおいて、当該複数の装置のうちの一の装置が実行する制御方法であって、第一ユーザと第二ユーザとの第一契約に関する第一情報を含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、前記第一ユーザと第三ユーザとの第二契約に関する第二情報を含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、前記第一トランザクションデータと前記第二トランザクションデータとの一方が他方に紐付けられている場合に、前記第一情報と前記第二情報とを用いて、前記第二ユーザと前記第三ユーザとの第三契約に関する第三情報を含む第三トランザクションデータを取得し、取得した前記第三トランザクションデータを前記分散台帳に格納する制御方法である。
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
本発明の制御方法は、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、契約に関する技術に関し、以下の問題が生じることを見出した。
本発明者は、「背景技術」の欄において記載した、契約に関する技術に関し、以下の問題が生じることを見出した。
分散台帳を用いて契約に係る情報を管理する技術がある。分散台帳に格納された情報は、書き換えが実質的に不可能であるように管理される。また、分散台帳を用いて契約に係る処理を実行し、契約を管理する技術がある。このような技術は、例えばスマートコントラクトによって実現され得る。
ところで、相互に内容が関係する複数の契約が順次に締結される場合がある。例えば、2つの契約の内容が確定した後に、確定した2つの契約の内容を利用して3つ目の契約の内容が決定可能である場合がある。
このように締結される契約を分散台帳を用いて管理する場合、先の2つの契約の内容が先に分散台帳に格納され、その後、3つ目の新たな契約の内容が決定されて分散台帳に格納されることが想定される。
仮に、新たな契約の内容を、人手により決定して分散台帳で管理するとすれば、人に情報を提示したり人から情報の入力を受けたりする処理が必要となり、上記処理に用いられるコンピュータの消費電力が増大するという問題がある。また、上記処理に必要なコンピュータリソース、例えば、情報を提示するための出力デバイス(表示装置またはスピーカなど)、または、情報の入力を受けるためのデバイス(タッチパネル、キーボード、マウスなど)を多く必要とするという問題もある。
さらに、人が介在することになるので、人の手間がかかるという問題がある。また、人が、正しくない契約内容を生成して分散台帳に格納してしまうという問題も発生しうる。
本発明は、契約を管理するコンピュータシステムの消費電力の増大を抑制する制御方法などを提供する。
本発明の一態様に係る制御方法は、分散台帳を保有している複数の装置を備える契約管理システムにおいて、当該複数の装置のうちの一の装置が実行する制御方法であって、第一ユーザと第二ユーザとの第一契約に関する第一情報を含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、前記第一ユーザと第三ユーザとの第二契約に関する第二情報を含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、前記第一トランザクションデータと前記第二トランザクションデータとの一方が他方に紐付けられている場合に、前記第一情報と前記第二情報とを用いて、前記第二ユーザと前記第三ユーザとの第三契約に関する第三情報を含む第三トランザクションデータを取得し、取得した前記第三トランザクションデータを前記分散台帳に格納する制御方法である。
上記態様によれば、第一契約および第二契約の2つの契約に相当するトランザクションデータ(つまり第一トランザクションデータおよび第二トランザクションデータ)が分散台帳に格納された後に、上記2つの契約の内容に基づく内容を有する新たな契約に相当するトランザクションデータ(つまり第三トランザクションデータ)を生成して分散台帳に格納する。ここで、新たな契約に相当するトランザクションデータを生成して分散台帳に格納する処理は、装置のコンピュータ処理によってなされ、言い換えれば、人が介在することなく実行される。そのため、コンピュータの消費電力の増大を抑制し、または、コンピュータリソースの必要量を抑制できる。また、人が処理をする手間を低減することができる。このように、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
また、前記第三トランザクションデータを取得するときには、前記第一トランザクションデータと前記第二トランザクションデータとの一方が他方に紐付けられていることを示す条件が満たされるか否かを判定し、前記条件が満たされると判定した場合に、前記第三トランザクションデータを生成することによって取得してもよい。
上記態様によれば、第一契約および第二契約の2つの契約に相当するトランザクションデータの一方が他方に紐づけられていることを、条件を用いて判定する。そのため、上記トランザクションデータの一方が他方に紐づけられていることを、より容易に判定し、新たな契約に相当するトランザクションデータを生成して分散台帳に格納する。よって、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
また、前記第二トランザクションデータは、前記第一トランザクションデータに紐づけられていることを示す紐付け情報を含み、前記条件が満たされるか否かを判定するときには、前記第二トランザクションデータが前記紐付け情報を含むことを、前記条件として、判定してもよい。
上記態様によれば、第二トランザクションデータが、第一トランザクションデータに紐づけられていることを示す紐づけ情報を用いて、2つの契約に相当するトランザクションデータの一方が他方に紐づけられていることを判定する。そのため、上記トランザクションデータの一方が他方に紐づけられていることを、より容易に判定し、新たな契約に相当するトランザクションデータを生成して分散台帳に格納する。よって、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
また、前記第三トランザクションデータを取得するときには、前記第一契約の締結者であり、かつ、前記第二契約の締結者である前記第一ユーザによって指定される情報に基づいて、前記第三トランザクションデータを取得してもよい。
上記態様によれば、第一契約および第二契約の両方の契約の締結者によって指定される情報に基づいて、新たな契約に相当するトランザクションデータを生成する。よって、新たな契約に相当するトランザクションデータをより容易に生成することができる。
また、前記第一トランザクションデータは、前記第一情報を含む第一コントラクトコードを含んでもよい。
上記態様によれば、第一契約がスマートコントラクトによって管理され、言い換えれば、人が介在することなく管理される。そのため、コンピュータの消費電力の増大をより一層抑制し、または、コンピュータリソースの必要量をより一層抑制できる。また、人が処理をする手間をより一層低減することができる。このように、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大をより一層抑制することができる。
また、前記第二トランザクションデータは、前記第二情報を含む第二コントラクトコードを含んでもよい。
上記態様によれば、第二契約がスマートコントラクトによって管理され、言い換えれば、人が介在することなく管理される。そのため、コンピュータの消費電力の増大をより一層抑制し、または、コンピュータリソースの必要量をより一層抑制できる。また、人が処理をする手間をより一層低減することができる。このように、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大をより一層抑制することができる。
また、前記第三トランザクションデータは、前記第三情報を含む第三コントラクトコードを含んでもよい。
上記態様によれば、第三契約がスマートコントラクトによって管理され、言い換えれば、人が介在することなく管理される。そのため、コンピュータの消費電力の増大をより一層抑制し、または、コンピュータリソースの必要量をより一層抑制できる。また、人が処理をする手間をより一層低減することができる。このように、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大をより一層抑制することができる。
また、前記第一トランザクションデータは、前記第一ユーザの電子署名と、前記第二ユーザの電子署名とを含んでいて、前記第一トランザクションデータを前記分散台帳に格納する際には、前記第一トランザクションデータに含まれている前記第一ユーザの電子署名と、前記第二ユーザの電子署名との両方の検証が成功した場合に、前記第一トランザクションデータを前記分散台帳に格納してもよい。
上記態様によれば、第一契約に相当する第一トランザクションデータに、第一契約を締結した第一ユーザおよび第二ユーザそれぞれの電子署名が含まれる。そのため、各電子署名を検証することで、第一ユーザおよび第二ユーザが第一契約を確かに締結したことを証明することができる。よって、上記制御方法は、契約をより一層適切に管理することができる。
また、前記第二トランザクションデータは、前記第一ユーザの電子署名と、前記第三ユーザの電子署名とを含んでいて、前記第二トランザクションデータを前記分散台帳に格納する際には、前記第二トランザクションデータに含まれている前記第一ユーザの電子署名と、前記第三ユーザの電子署名との両方の検証が成功した場合に、前記第二トランザクションデータを前記分散台帳に格納してもよい。
上記態様によれば、第二契約に相当する第二トランザクションデータに、第二契約を締結した第一ユーザおよび第三ユーザそれぞれの電子署名が含まれる。そのため、各電子署名を検証することで、第一ユーザおよび第三ユーザが第二契約を確かに締結したことを証明することができる。よって、上記制御方法は、契約をより一層適切に管理することができる。
また、前記第三トランザクションデータは、前記第三トランザクションデータを生成した生成ユーザの電子署名と、前記第二ユーザの電子署名と、前記第三ユーザの電子署名とを含んでいて、前記第三トランザクションデータを前記分散台帳に格納する際には、前記第三トランザクションデータに含まれている前記生成ユーザの電子署名と、前記第二ユーザの電子署名と、前記第三ユーザの電子署名との全部の検証が成功した場合に、前記第三トランザクションデータを前記分散台帳に格納してもよい。
上記態様によれば、第三契約に相当する第三トランザクションデータに、第三契約に係るトランザクションデータを生成した生成ユーザと、第三契約を締結した第二ユーザおよび第三ユーザとのそれぞれの電子署名が含まれる。そのため、各電子署名を検証することで、生成ユーザが第三契約に相当するトランザクションデータを確かに生成したことと、第二ユーザおよび第三ユーザが第三契約を確かに締結したこととを証明することができる。よって、上記制御方法は、契約をより一層適切に管理することができる。
また、前記第一契約は、前記第一ユーザが前記第二ユーザから材料を購入することを定めた契約を含み、前記第一情報は、前記材料の購入金額を含み、前記第二契約は、前記第三ユーザが、前記第二ユーザから納入された前記材料から製品を製造して前記第一ユーザに納品することを定めた契約を含み、前記第二情報は、前記製品の購入金額と、前記製品を納品する期限と、前記製品の納品先とを含み、前記第三契約は、前記第二ユーザが前記第三ユーザに前記材料を納品することを定めた契約を含み、前記第三情報は、前記材料を納品する期限と、前記材料の納品先とを含んでもよい。
上記態様によれば、材料契約と製造委託契約とに基づいて、材料納品元と材料納品先とで締結される材料の納品に関する材料納品契約が適切に管理される。すなわち、上記制御方法は、第一ユーザと第二ユーザとの材料契約、および、第一ユーザと第三ユーザとの製造委託契約に基づいて、第二ユーザと第三ユーザとの材料納品契約を適切に管理することができる。
また、本発明の一態様に係る装置は、分散台帳を保有している複数の装置を備える契約管理システムにおける、当該複数の装置のうちの一の装置であって、処理部と、前記分散台帳を記憶している台帳記憶部と、実行部を備え、前記処理部は、第一ユーザと第二ユーザとの第一契約に関する第一情報を含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、前記第一ユーザと第三ユーザとの第二契約に関する第二情報を含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、実行部は、前記第一トランザクションデータと前記第二トランザクションデータとの一方が他方に紐付けられている場合に、前記第一情報と前記第二情報とを用いて、前記第二ユーザと前記第三ユーザとの第三契約に関する第三情報を含む第三トランザクションデータを生成し、前記処理部は、さらに、生成した前記第三トランザクションデータを前記分散台帳に格納する装置である。
上記態様により、上記制御方法と同様の効果を奏する。
また、本発明の一態様に係るプログラムは、上記の制御方法をコンピュータに実行させるためのプログラムである。
上記態様により、上記制御方法と同様の効果を奏する。
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
本実施の形態において、契約を管理するコンピュータシステムの消費電力の増大を抑制する契約管理システムおよびその制御方法などについて説明する。
本実施の形態において、契約を管理するコンピュータシステムの消費電力の増大を抑制する契約管理システムおよびその制御方法などについて説明する。
図1は、本実施の形態における契約の流れの一例を模式的に示す説明図である。
具体的には、図1は、サプライチェーンを構成するA社、B社およびC社の三者が関係する契約と、その契約によってなされる物の納品とを模式的に示している。A社を第一ユーザともいい、B社を第二ユーザともいい、C社を第三ユーザともいう。
まず、図1の(1)に示されるように、A社とB社との間で材料契約(第一契約に相当)が締結される。材料契約は、A社がB社から材料を購入することを定めた契約である。材料契約には、材料の購入の金額が含まれる。
材料契約の締結後に、図1の(2)に示されるように、A社とC社との間で製造委託契約(第二契約に相当)が締結される。製造委託契約は、C社が材料から製品を製造して、製造された製品をA社に納品することを定めた契約である。製造委託契約には、製品の納期、製品の購入の金額、および、製品の納品先(製品納品先ともいう)が含まれる。
製造委託契約の締結後に、図1の(3)に示されるように、B社とC社との間で材料納品契約(第三契約に相当)が締結される。材料納品契約は、B社がC社に材料を納品することを定めた契約である。材料納品契約には、材料の納期、および、材料の納品先(材料納品先ともいう)が含まれる。
その後、B社は、製造した材料をC社に納品することで、材料納品契約を履行する(図1の(4))。また、C社は、B社から納品された材料から製品を製造し、製造した製品をA社に納品することで、製造委託契約を履行する(図1の(5))。
このような、契約と契約の履行とに係る処理を、分散台帳を用いて実行するには、材料契約の内容を定めた1つのスマートコントラクトCAと、製造委託契約の内容を定めた1つのスマートコントラクトCBと、材料納品契約の内容を定めた1つのスマートコントラクトCCとが用いられることが想定される。
この場合、スマートコントラクトCCの内容は、スマートコントラクトCAおよびCBの内容を利用して自動的に、つまり、人手を介さずに生成可能である。
このようにすることで、上記のコンピュータの消費電力の増大、または、デバイスを多く必要とするという問題を回避でき、また人が介在することに起因する問題を回避することができる。
なお、スマートコントラクトCA、CBおよびCCは、それぞれ材料契約、製造委託契約、および材料納品契約の内容を管理する機能を少なくとも有するが、さらに、契約の履行(例えば、材料または製品の製造、製造した材料または製品の納品、代金の支払など)に関する処理をする機能を有してもよい。
このような契約の形態を適切に管理する技術について以下で詳細に説明する。
図2は、本実施の形態における契約管理システム1の構成を模式的に示すブロック図である。
図2に示されるように、契約管理システム1は、台帳サーバ10A、10Bおよび10Cと、取引サーバ10Tと、端末20A、20Bおよび20Cとを備える。
台帳サーバ10A、10Bおよび10Cを「台帳サーバ10A等」ともいい、端末20A、20Bおよび20Cを「端末20A等」ともいう。
台帳サーバ10Aと端末20AとはA社に属していて、台帳サーバ10Bと端末20BとはB社に属していて、台帳サーバ10Cと端末20CとはC社に属している。ここでは、契約管理システム1は、三者が関係する契約を管理する例を示すが、契約に関係する者の数は4以上であってもよい。
契約管理システム1が備える各装置は、ネットワークNに直接的に又は間接的に接続されていて、ネットワークNを介して互いに通信可能である。
ネットワークNは、どのような通信回線またはネットワークから構成されてもよく、例えば、インターネット、携帯電話のキャリアネットワーク、インターネットプロバイダのアクセスネットワーク、または公衆アクセスネットワークなどを含み得る。
台帳サーバ10Aは、契約管理システム1において分散台帳を用いて契約を管理する複数の台帳サーバ10A等のうちの1つである。台帳サーバ10Aを装置ともいう。
台帳サーバ10Aは、分散台帳を保有している。台帳サーバ10Aが保有している分散台帳には、トランザクションデータが格納される。分散台帳に格納されるトランザクションデータには、契約に関するスマートコントラクトに係るコントラクトコード(単にコードともいう)を含むトランザクションデータが含まれる。また、台帳サーバ10Aは、分散台帳が格納されている記憶領域とは別に、書き換え可能な記憶領域を有し、契約に関する変数を書き換え可能な記憶領域に格納している。
台帳サーバ10Bおよび10Cは、それぞれ、台帳サーバ10Aと同じ機能を有する装置であり、台帳サーバ10Aとは独立に動作する。
取引サーバ10Tは、複数の台帳サーバ10A等と同様に、分散台帳を保有している装置である。取引サーバ10Tは、台帳サーバ10A等と同様に、分散台帳にトランザクションデータを格納する。取引サーバ10Tは、分散台帳が格納されている記憶領域とは別に、書き換え可能な記憶領域を有し、契約に関する変数を書き換え可能な記憶領域に格納している。また、取引サーバ10Tは、分散台帳に格納されたトランザクションデータに基づいて、新たなスマートコントラクトを生成して分散台帳に格納する。取引サーバ10Tは、ネットワークNに直接的に又は間接的に接続されていて、ネットワークNを介して、台帳サーバ10A等と互いに通信可能である。
端末20Aは、A社に所属するユーザが使用する情報端末である。端末20Aは、ユーザによって操作され、例えば、スマートコントラクトのコードを生成したり、スマートコントラクトのコードを台帳サーバ10A等に配置したりするために用いられる。端末20Aは、例えばパーソナルコンピュータ、スマートフォンまたはタブレットなどである。
端末20Bおよび20Cは、それぞれ、端末20Aと同じ機能を有し、B社およびC社に所属するユーザが使用する情報端末であり、端末20Aとは独立に動作する。
なお、A社、B社およびC社には、それぞれ、1以上の端末が属していてもよい。
なお、端末20Aが、台帳サーバ10Aの機能をさらに備えてもよい。その場合、端末20Aは、分散台帳を用いて契約を管理する装置に相当する。同様に、端末20Bが、台帳サーバ10Bの機能をさらに備えてもよい。その場合、端末20Bは、分散台帳を用いて契約を管理する装置に相当する。さらに、端末20Cが、台帳サーバ10Cの機能をさらに備えてもよい。その場合、端末20Cは、分散台帳を用いて契約を管理する装置に相当する。
図3は、本実施の形態における台帳サーバ10Aの機能構成を示すブロック図である。
図3に示されるように、台帳サーバ10Aは、処理部11と、台帳記憶部12と、実行部13と、記憶部14とを備える。なお、台帳サーバ10Bおよび10C、ならびに、取引サーバ10Tも、台帳サーバ10Aと同様の機能部を備える。
処理部11は、トランザクションデータに関する処理を実行する機能部である。処理部11は、台帳サーバ10Aが備えるプロセッサ(例えばCPU(Central Processing Unit))がメモリを用いてプログラムを実行することで実現され得る。
処理部11は、トランザクションデータを取得し、取得したトランザクションデータを分散台帳に格納する処理を実行する。また、処理部11は、トランザクションデータを生成し、生成したトランザクションデータについての電子署名(単に署名ともいう)を生成し、生成した署名を上記トランザクションデータに付与する処理を実行する。
処理部11は、新しいトランザクションデータを分散台帳に格納するときには、分散台帳の種別に応じた方式で新しいトランザクションデータを台帳記憶部12に格納する。また、処理部11は、台帳サーバ10A等のうちの他の台帳サーバが備える台帳記憶部12と通信データを送受信し、他の台帳サーバが備える台帳記憶部12にも上記トランザクションデータを格納させる。例えば、処理部11は、分散台帳がブロックチェーンである場合には、新しいトランザクションデータを含むブロックを生成し、生成したブロックについて台帳サーバ10A等の間でコンセンサスアルゴリズムにより合意形成をしたうえで、上記ブロックを台帳記憶部12に格納する。
具体的には、処理部11は、第一トランザクションデータを取得し、取得した第一トランザクションデータを分散台帳に格納する。第一トランザクションデータは、A社とB社との材料契約(つまり第一契約)に関する情報(第一情報ともいう)を含んでいる。
また、処理部11は、第二トランザクションデータを取得し、取得した第二トランザクションデータを分散台帳に格納する。第二トランザクションデータは、A社とC社との製造委託契約(つまり第二契約)に関する情報(第二情報ともいう)を含んでいる。
また、処理部11は、第三トランザクションデータを取得し、取得した第三トランザクションデータを分散台帳に格納する。第三トランザクションデータは、B社とC社との材料納品契約(つまり第三契約)に関する情報(第三情報ともいう)を含んでいる。
第三トランザクションデータは、例えば、取引サーバ10Tの処理部11によって生成され、台帳サーバ10A等に送信される。この場合、取引サーバ10Tの処理部11は、第三トランザクションデータを上記のように生成することで取得する。また、台帳サーバ10A等の処理部11は、取引サーバ10Tが生成して送信した第三トランザクションデータを受信することで取得してもよい。
すなわち、取引サーバ10Tの処理部11は、第一トランザクションデータと第二トランザクションデータとの一方が他方に紐付けられている場合に、第一情報と第二情報とを用いて、第二ユーザと第三ユーザとの第三契約に関する第三情報を含む第三トランザクションデータを生成する。
ここで、取引サーバ10Tの処理部11は、第三トランザクションデータを取得するときには、第一トランザクションデータと第二トランザクションデータとの一方が他方に紐付けられていることを示す条件が満たされるか否かを判定し、その条件が満たされると判定した場合に、第三トランザクションデータを生成することによって取得してもよい。
より具体的には、第二トランザクションデータが、第一トランザクションデータに紐づけられていることを示す紐付け情報を含んでいてもよい。そして、処理部11が、上記条件が満たされるか否かを判定するときには、第二トランザクションデータが紐付け情報を含むことを条件として、判定してもよい。
台帳記憶部12は、分散台帳を記憶している記憶部である。台帳記憶部12に格納されている分散台帳は、1以上のトランザクションデータを記憶しており、ハッシュ値などの特性を用いて改ざんが困難であるように管理されている(後述)。台帳記憶部12は、処理部11から提供されたトランザクションデータを分散台帳に格納する。分散台帳には、過去から現在までのトランザクションデータが格納されている。分散台帳に記録された情報の改ざんが困難であるという特性に基づいて、上記トランザクションデータが改ざんされないように管理されている。
なお、分散台帳は、例えばブロックチェーンであり、この場合を例として説明するが、他の方式の分散台帳(例えば、IOTAまたはハッシュグラフ等)を採用することも可能である。なお、分散台帳は、新しいデータの格納の際にコンセンサスアルゴリズム(例えば、PBFT(Practical Byzantine Fault Tolerance)、PoW(Proof of Work)またはPoS(Proof of Stake))を実行するものであってもよいし、実行しないものであってもよい。コンセンサスアルゴリズムを実行しない分散台帳技術の一例としてHyperledger fabricがある。
実行部13は、台帳記憶部12が記憶している分散台帳に格納されているトランザクションデータを参照して、処理を実行する機能部である。実行部13は、台帳サーバ10Aが備えるプロセッサ(例えばCPU)がメモリを用いてプログラムを実行することで実現され得る。ここでは、実行部13は、分散台帳に格納されているトランザクションデータに含まれているスマートコントラクトのコードに従って処理を実行するコントラクト実行部である場合を例として説明する。
具体的には、実行部13は、第一トランザクションデータが分散台帳に格納された後に、分散台帳に格納されている第一トランザクションデータに含まれている第一情報を読み出して記憶部14に格納する格納処理を実行する。格納処理は、例えば、第一トランザクションデータが分散台帳に格納されたことに基づいて、第一トランザクションデータに含まれている第一コントラクトコードを実行部13が実行したことによって行われる。
また、実行部13は、第二トランザクションデータが分散台帳に格納された後に、分散台帳に格納されている第二トランザクションデータに含まれている第二情報を読み出して記憶部14に格納する格納処理を実行する。格納処理は、例えば、第二トランザクションデータが分散台帳に格納されたことに基づいて、第二トランザクションデータに含まれている第二コントラクトコードを実行部13が実行したことによって行われる。
また、実行部13は、第三トランザクションデータが分散台帳に格納された後に、分散台帳に格納されている第三トランザクションデータに含まれている第三情報を読み出して記憶部14に格納する格納処理を実行する。格納処理は、例えば、第三トランザクションデータが分散台帳に格納されたことに基づいて、第三トランザクションデータに含まれている第三コントラクトコードを実行部13が実行したことによって行われる。
記憶部14は、契約に関する情報を格納している記憶領域を有する記憶装置である。記憶部14に格納されている情報は、具体的には、第一情報、第二情報および第三情報を含む。記憶部14に格納されている情報は、実行部13により設定され、また、読み出される。記憶部14は、書き換え可能な記憶装置、例えば、RAM(Random Access Memory)などのメモリ、または、HDD(Hard Disk Drive)もしくはSSD(Solid State Drive)などのストレージにより実現される。
なお、第一トランザクションデータ、第二トランザクションデータまたは第三トランザクションデータには、複数の署名が付与されるマルチシグ技術が適用されてもよく、この場合を例として説明するが、第一トランザクションデータ、第二トランザクションデータまたは第三トランザクションデータに単一の電子署名が付与されるだけでもよい。
具体的には、第一トランザクションデータは、材料契約の締結者であるA社およびB社それぞれの電子署名を含んでいてもよい。その場合、処理部11が第一トランザクションデータを分散台帳に格納する際には、第一トランザクションデータに含まれているA社およびB社それぞれの電子署名の検証が成功した場合に、第一トランザクションデータを分散台帳に格納する。
同様に、第二トランザクションデータは、製造委託契約の締結者であるA社およびC社それぞれの電子署名を含んでいてもよい。その場合、処理部11が第二トランザクションデータを分散台帳に格納する際には、第二トランザクションデータに含まれているA社およびC社それぞれの電子署名の検証が成功した場合に、第二トランザクションデータを分散台帳に格納する。
同様に、第三トランザクションデータは、材料納品契約を生成したユーザである取引サーバ10T、ならびに、材料納品契約の締結者であるB社およびC社それぞれの電子署名を含んでいてもよい。その場合、処理部11が第三トランザクションデータを分散台帳に格納する際には、第三トランザクションデータに含まれている取引サーバ10TならびにB社およびC社それぞれの電子署名の検証が成功した場合に、第三トランザクションデータを分散台帳に格納する。
なお、第一契約、第二契約および第三契約は、以下のようにも表現され得る。すなわち、第一契約は、第一ユーザが第二ユーザから材料を購入することを定めた契約を含む。第一情報は、前記材料の購入金額を含む。第二契約は、第三ユーザが、第二ユーザから納入された材料から製品を製造して第一ユーザに納品することを定めた契約を含む。第二情報は、製品の購入金額と、製品を納品する期限と、製品の納品先とを含む。第三契約は、第二ユーザが第三ユーザに材料を納品することを定めた契約を含む。第三情報は、材料を納品する期限と、材料の納品先とを含む。
以降において、トランザクションデータ、および、スマートコントラクトのコードについて説明する。
図4は、本実施の形態におけるトランザクションデータの第一例であるトランザクションデータTAを示す説明図である。トランザクションデータTAは、第一トランザクションデータに相当する。トランザクションデータTAは、例えば、台帳サーバ10Aにより生成される。
図4に示されるように、トランザクションデータTAは、「スマートコントラクトCAのコード」と、「初期化関数に渡す引数」と、「署名1」と、「署名2」と、「送信日時」とを含む。
「スマートコントラクトCAのコード」は、スマートコントラクトCAが用いる変数であって、記憶部14に格納されている変数を示す変数部を含む。変数部は、図4において破線枠で示されている。以降でも同様の表現を用いる。スマートコントラクトCAが用いる変数は、金額、納期および締結者を含む。金額は、材料契約においてA社が支払う金額を示す。納期は、B社が材料を材料納品先に納品する期日を示す。締結者は、材料契約の締結者を示し、ここでは特に、材料契約を締結した2者のうちのA社と異なる者を示す。
また、「スマートコントラクトCAのコード」は、初期化関数を含む。初期化関数は、当該トランザクションデータが分散台帳に格納されたときに実行部13によって実行される特別な関数である。以降でも同様である。
初期化関数は、引数として金額と納期とを受け付ける。また、初期化関数は、実行されると、記憶部14に格納されている、金額を示す変数、納期を示す変数、および締結者を示す変数に値を設定する。具体的には、初期化関数は、実行されると、金額を示す変数に引数として受け付けた金額を設定し、納期を示す変数に引数として受け付けた納期を設定し、締結者を示す変数にB社の識別情報を設定する。なお、B社の識別情報を、単にB社と記載することもある。A社およびC社についても同様である。以降でも同様である。
なお、図4に初期化関数として示した関数を、一般の関数(つまり、初期化関数でない関数)とし、当該トランザクションデータTAによってその関数を実行させるようにしても同様の効果を奏する。他のスマートコントラクトのコードに含まれる初期化関数についても同様である。
「初期化関数に渡す引数」は、スマートコントラクトCAの初期化関数に渡す引数であり、納期(2019年1月1日)と金額(500万円)とを含む。この引数として示されている情報が、初期化関数に渡される。
「署名1」は、トランザクションデータTAに付与されている2つの電子署名のうちの1つ目である。署名1には、A社の署名SAが含まれている。
「署名2」は、トランザクションデータTAに付与されている2つの電子署名のうちの2つ目である。署名2には、B社の署名SBが含まれている。
「送信日時」は、トランザクションデータTAが送信された日時を示す。送信日時には、「2018年10月01日 12時00分00秒」が格納されている。
図4に示されるトランザクションデータTAが分散台帳に格納されると、初期化関数が実行されることで、引数として初期化関数に渡された金額および納期が、それぞれ記憶部14の金額および納期を示す変数に設定され、また、記憶部14の材料契約の締結者を示す変数にB社の識別情報が設定される。
図5は、本実施の形態におけるトランザクションデータの第二例であるトランザクションデータTBを示す説明図である。トランザクションデータTBは、第二トランザクションデータに相当する。トランザクションデータTBは、例えば、台帳サーバ10Aにより生成される。
図5に示されるように、トランザクションデータTBは、「スマートコントラクトCBのコード」と、「初期化関数に渡す引数」と、「紐付け情報」と、「署名1」と、「署名2」と、「送信日時」とを含む。
「スマートコントラクトCBのコード」は、変数部と初期化関数とを含む。スマートコントラクトCBが用いる変数は、金額、製品納品先、納期および締結者を含む。金額は、製造委託契約においてA社が支払う金額を示す。製品納品先は、製造委託契約によりC社が製造した製品の納品先を示す。納期は、C社が製品を製品納品先に納品する期日を示す。締結者は、製造委託契約の締結者を示し、ここでは特に、製造委託契約を締結した2者のうちのA社と異なる者を示す。
初期化関数は、引数として、金額と、納期と、製品納品先とを受け付ける。また、初期化関数は、実行されると、記憶部14に格納されている、金額を示す変数、製品納品先を示す変数、納期、および締結者を示す変数に値を設定する。具体的には、初期化関数は、実行されると、金額を示す変数に引数として受け付けた金額を設定し、納期を示す変数に引数として受け付けた納期を設定し、製品納品先を示す変数に引数として受け付けた製品納品先を設定し、締結者を示す変数にC社の識別情報を設定する。
「初期化関数に渡す引数」は、スマートコントラクトCBの初期化関数に渡す引数であり、納期(2019年2月1日)と、金額(500万円)と、製品納品先(A社の識別情報)とを含む。この引数として示されている情報が、初期化関数に渡される。
「紐付け情報」は、スマートコントラクトCB(またはトランザクションデータTB)に紐づけられている、材料契約に相当するスマートコントラクトを示す。紐づけ情報には、スマートコントラクトCAを示す情報が含まれている。
「署名1」は、トランザクションデータTBに付与されている2つの電子署名のうちの1つ目である。署名1には、A社の署名SAが含まれている。
「署名2」は、トランザクションデータTBに付与されている2つの電子署名のうちの2つ目である。署名2には、C社の署名SCが含まれている。
「送信日時」は、トランザクションデータTBが送信された日時を示す。送信日時には、「2018年11月01日 12時00分00秒」が格納されている。
図5に示されるトランザクションデータTBが分散台帳に格納されると、初期化関数が実行されることで、引数として初期化関数に渡された納期、金額、および製品納品先が、それぞれ、記憶部14の納期、金額、および製品納品先を示す変数に設定され、また、記憶部14の製造委託契約の締結者を示す変数にC社の識別情報が設定される。
図6は、本実施の形態におけるトランザクションデータの第三例であるトランザクションデータTCを示す説明図である。トランザクションデータTCは、第三トランザクションデータに相当する。トランザクションデータTCは、取引サーバ10Tにより生成される。
図6に示されるように、トランザクションデータTCは、「スマートコントラクトCCのコード」と、「初期化関数に渡す引数」と、「署名1」と、「署名2」と、「署名3」と、「送信日時」とを含む。
「スマートコントラクトCCのコード」は、変数部と初期化関数とを含む。スマートコントラクトCCが用いる変数は、材料納品元、材料納品先、および納期を含む。材料納品元は、材料納品契約において、B社が製造した材料の納品元を示す。材料納品先は、材料納品契約において、B社が製造した材料の納品先を示す。納期は、B社が材料を材料納品先に納品する期日を示す。
初期化関数は、引数として、材料納品元と、材料納品先と、納期とを受け付ける。また、初期化関数は、実行されると、記憶部14に格納されている、材料納品元を示す変数と、材料納品先を示す変数と、納期を示す変数とに値を設定する。具体的には、初期化関数は、実行されると、材料納品元を示す変数に引数として受け付けた材料納品元を設定し、材料納品先を示す変数に引数として受け付けた材料納品先を設定し、納期を示す変数に引数として受け付けた納期を設定する。
「初期化関数に渡す引数」は、スマートコントラクトCCの初期化関数に渡す引数であり、納期(2019年1月1日)と、材料納品元(B社の識別情報)と、材料納品先(C社の識別情報)とを含む。この引数として示されている情報が、初期化関数に渡される。
「署名1」は、トランザクションデータTCに付与されている3つの電子署名のうちの1つ目である。署名1には、取引サーバ10Tの署名STが含まれている。
「署名2」は、トランザクションデータTCに付与されている3つの電子署名のうちの2つ目である。署名2には、C社の署名SCが含まれている。
「署名3」は、トランザクションデータTCに付与されている3つの電子署名のうちの3つ目である。署名3には、B社の署名SBが含まれている。
「送信日時」は、トランザクションデータTCが送信された日時を示す。送信日時には、「2018年11月02日 12時00分00秒」が格納されている。
図6に示されるトランザクションデータTCが分散台帳に格納されると、初期化関数が実行されることで、引数として初期化関数に渡された材料納品元、材料納品先、および納期が、それぞれ、記憶部14の材料納品元、材料納品先、および納期を示す変数に設定される。
図7は、本実施の形態における取引サーバ10Tの処理を示すフロー図である。図7に示されるフロー図は、取引サーバ10TがトランザクションデータTCを生成して分散台帳に格納する処理を示している。
ステップS101において、取引サーバ10Tの処理部11は、台帳記憶部12が有する分散台帳にトランザクションデータが新たに格納されたか否かを判定する。トランザクションデータが新たに格納されたと判定した場合(ステップS101でYes)にはステップS102に進み、そうでない場合(ステップS101でNo)には、ステップS101を再び実行する。つまり、処理部11は、トランザクションデータが新たに格納されるまで、ステップS101で待機する。
ステップS102において、取引サーバ10Tの処理部11は、新たに分散台帳に格納されたトランザクションデータに紐付け情報が含まれているか否かを判定する。ここで、新たに分散台帳に格納されたトランザクションデータが製造委託契約に相当するスマートコントラクトを含むトランザクションデータである場合に、当該トランザクションデータが紐付け情報を含んでいる。紐付け情報が含まれていると判定した場合(ステップS102でYes)にはステップS103に進み、そうでない場合(ステップS102でNo)には、図7に示されている一連の処理を終了する。
ステップS103において、取引サーバ10Tの処理部11は、新たに分散台帳に格納されたトランザクションデータに含まれている紐付け情報を参照して、紐付け先であるスマートコントラクト(紐付けスマートコントラクトともいう)を特定する。例えば、図5に示されるトランザクションデータTBが新たに分散台帳に格納されたときには、処理部11は、紐付けスマートコントラクトとして、材料契約に相当するスマートコントラクトCAを特定する。
ステップS104において、取引サーバ10Tの処理部11は、材料契約と製造委託契約との締結者を特定する。材料契約は、ステップS103で特定されたスマートコントラクトに相当する材料契約である。製造委託契約は、ステップS101で新たに分散台帳に格納されたと判定されたトランザクションデータに含まれるスマートコントラクトに相当する製造委託契約である。例えば、材料契約に相当するトランザクションデータがトランザクションデータTA(図4参照)であり、製造委託契約に相当するトランザクションデータがトランザクションデータTB(図5参照)である場合、材料契約と製造委託契約との締結者としてB社とC社とが特定される。また、B社が製造する材料をC社に納品すること、すなわち、B社が製造する材料について、材料納品元をB社とし、材料納品先をC社とすることが特定される。
ステップS105において、取引サーバ10Tの処理部11は、ステップS104で特定された締結者であるB社とC社との間で材料納品契約が既に締結されているか否かを判定する。より詳細には、処理部11は、B社からC社に材料を納品することを定めた材料納品契約が既に締結されているか否かを判定する。材料納品契約が既に締結されていると判定した場合(ステップS105でYes)には、図7に示されている一連の処理を終了し、そうでない場合(ステップS105でNo)は、ステップS106に進む。
ステップS106において、取引サーバ10Tの処理部11は、締結すべき材料納品契約の締結者と納期とを特定する。上記のステップS104の例の場合では、締結者はB社およびC社と特定され、より詳細には、材料納品元がB社であり材料納品先がC社であることが特定される。また、納期は、製造委託契約における製品の納期から所定期間だけさかのぼった期日と特定され、例えば、製品の納期である2019年2月1日から、所定期間として1カ月さかのぼった2019年1月1日と特定される。所定期間は、例えば、製造すべき材料の製造に要する期間に基づいて定められる。
ステップS107において、取引サーバ10Tの処理部11は、ステップS108で特定した締結者の間で締結すべき材料納品契約に相当するスマートコントラクトCCのコードを生成する。
ステップS108において、取引サーバ10Tの処理部11は、ステップS107で生成したスマートコントラクトCCのコードを含めたトランザクションデータTCを生成する。トランザクションデータTCの「初期化関数に渡す引数」の材料納品元および材料納品先に、それぞれ、ステップS106で特定された、材料納品元であるB社および材料納品先であるC社が設定される。
ステップS109において、取引サーバ10Tの処理部11は、ステップS108で生成したトランザクションデータTCに署名を付与する。取引サーバ10Tが署名を付与したトランザクションデータTCは、台帳サーバ10Cに送信され、台帳サーバ10Cの署名を付与される。その後、トランザクションデータTCは、台帳サーバ10Bに送信され、台帳サーバ10Bの署名を付与され、その後、台帳サーバ10Aおよび10Cならびに取引サーバ10Tに送信される。
ステップS110において、取引サーバ10Tの処理部11は、ステップS109で署名が付与されたトランザクションデータTCを分散台帳に格納する。このとき、台帳サーバ10A等もトランザクションデータTCを分散台帳に格納する。これにより、台帳サーバ10A等および取引サーバ10Tの全ての分散台帳にトランザクションデータTCが格納された状態になる。
図8は、本実施の形態における契約管理システム1の処理を示す第一のシーケンス図である。図8には、材料契約の締結、製造委託契約の締結、および、材料納品契約の締結に係る一連の処理が示されている。図8において、図7に示される処理と同じ処理には、同一の符号を付し詳細な説明を省略する。
ステップS201において、台帳サーバ10Aの処理部11は、材料契約に相当するスマートコントラクトCAのコードを取得する。スマートコントラクトCAのコードの取得は、台帳サーバ10Aが当該コードを生成することによってなされてもよいし、A社の担当者による操作に基づいて端末20Aから送信されたコードを受信することによってなされてもよい。
ステップS202において、台帳サーバ10Aの処理部11は、トランザクションデータTAを生成する。生成されるトランザクションデータTAには、ステップS201で取得したスマートコントラクトCAのコードが含まれている(図4参照)。
ステップS203において、台帳サーバ10Aの処理部11は、ステップS202で生成したトランザクションデータTAについての署名を生成してトランザクションデータTAに付与し、署名を付与したトランザクションデータTAを台帳サーバ10Bに送信する。
ステップS204において、台帳サーバ10Bの処理部11は、ステップS203で送信されたトランザクションデータTAを受信し、受信したトランザクションデータTAについての署名を生成してトランザクションデータTAに付与し、署名を付与したトランザクションデータTAを台帳サーバ10Aおよび10C、ならびに、取引サーバ10Tそれぞれに送信する。これにより、すべての台帳サーバ10A等および取引サーバ10Tが、台帳サーバ10Aおよび10Bそれぞれの署名を付与されたトランザクションデータTAを有する状態になる。
ステップS205において、台帳サーバ10A等および取引サーバ10Tのそれぞれは、ステップS204で署名が付与され、または、送信されたトランザクションデータTAを分散台帳に格納する。トランザクションデータTAを分散台帳へ格納する際には、コンセンサスアルゴリズムに基づいて合意形成がなされたことを条件として、トランザクションデータTAを分散台帳へ格納するようにしてもよい。
ステップS206において、台帳サーバ10Aの処理部11は、製造委託契約に相当するスマートコントラクトCBのコードを取得する。スマートコントラクトCBのコードの取得は、台帳サーバ10Aが当該コードを生成することによってなされてもよいし、A社の担当者による操作に基づいて端末20Aから送信されたコードを受信することによってなされてもよい。
ステップS207において、台帳サーバ10Aの処理部11は、トランザクションデータTBを生成する。生成されるトランザクションデータTBには、ステップS206で取得したスマートコントラクトCBのコードが含まれている(図5参照)。
ステップS208において、台帳サーバ10Aの処理部11は、ステップS207で生成したトランザクションデータTBについての署名を生成してトランザクションデータTBに付与し、署名を付与したトランザクションデータTBを台帳サーバ10Cに送信する。
ステップS209において、台帳サーバ10Cの処理部11は、ステップS208で送信されたトランザクションデータTBを受信し、受信したトランザクションデータTBについての署名を生成してトランザクションデータTBに付与し、署名を付与したトランザクションデータTBを台帳サーバ10Aおよび10B、ならびに取引サーバ10Tそれぞれに送信する。これにより、すべての台帳サーバ10A等および取引サーバ10Tが、台帳サーバ10Aおよび10Cそれぞれの署名を付与されたトランザクションデータTBを有する状態になる。
ステップS210において、台帳サーバ10A等および取引サーバ10Tのそれぞれは、ステップS209で署名が付与され、または、送信されたトランザクションデータTBを分散台帳に格納する。トランザクションデータTBを分散台帳へ格納する際には、コンセンサスアルゴリズムに基づいて合意形成がなされたことを条件として、トランザクションデータTBを分散台帳へ格納するようにしてもよい。
取引サーバ10Tの処理部11は、ステップS210でトランザクションデータTBが分散台帳に格納されたことに基づいて、新たなトランザクションデータが格納されたと判定し(ステップS101でYes)、材料納品契約に対応するスマートコントラクトCCを取得し、トランザクションデータTCを生成し台帳サーバ10Cに送信する(ステップS102~S109)。
ステップS221において、台帳サーバ10Cの処理部11は、ステップS109で送信されたトランザクションデータTCを受信し、受信したトランザクションデータTCについての署名を生成してトランザクションデータTCに付与し、署名を付与したトランザクションデータTCを台帳サーバ10Bに送信する。
ステップS222において、台帳サーバ10Bの処理部11は、ステップS221で送信されたトランザクションデータTCを受信し、受信したトランザクションデータTCについての署名を生成してトランザクションデータTCに付与し、署名を付与したトランザクションデータTCを、台帳サーバ10Aおよび10C、ならびに、取引サーバ10Tに送信する。これにより、すべての台帳サーバ10A等および取引サーバ10Tが、取引サーバ10T、ならびに、台帳サーバ10Aおよび10Cそれぞれの署名を付与されたトランザクションデータTCを有する状態になる。
ステップS223において、台帳サーバ10A等および取引サーバ10Tのそれぞれは、ステップS222で署名が付与され、または、送信されたトランザクションデータTCを分散台帳に格納する。トランザクションデータTCを分散台帳へ格納する際には、コンセンサスアルゴリズムに基づいて合意形成がなされたことを条件として、トランザクションデータTCを分散台帳へ格納するようにしてもよい。
なお、トランザクションデータTCに付与される署名は、少なくとも、取引サーバ10Tによる署名が含まれていればよい。その場合、台帳サーバ10Bおよび10Cの少なくとも一方は、受信したトランザクションデータTCに署名を付与することを要しない。
例えば、図9には、台帳サーバ10Bおよび10Cの両方が署名を付与しない場合のシーケンス図の例が示されている。図9には、図8におけるステップS101以降の処理が示されている。図9のステップS109Aにおいて、取引サーバ10Tの処理部11は、署名を付与したトランザクションデータTCを台帳サーバ10A、10Bおよび10Cに送信する。この後、ステップS223において、台帳サーバ10A等および取引サーバ10Tのそれぞれは、トランザクションデータTCを分散台帳に格納する。
図8および図9に示される一連の処理により、契約管理システム1は、A社とB社とで締結された材料契約の内容と、A社とC社とで締結された製造委託契約の内容に基づいて、人手を介さずに、B社とC社との間で新たな材料納品契約を締結させることができる。このように、契約管理システム1は、A社、B社およびC社が関係する契約を適切に管理しながら、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
なお、上記の説明では、紐づけ情報がトランザクションデータTBに含まれている構成を例として説明したが、紐づけ情報はトランザクションデータTAに含まれていてもよい。この場合、トランザクションデータTBが分散台帳に格納された後で、紐付けスマートコントラクトが特定される。
(実施の形態2)
本実施の形態において、契約を管理するコンピュータシステムの消費電力の増大を抑制する契約管理システムおよびその制御方法などについて、実施の形態1とは異なる形態を説明する。
本実施の形態において、契約を管理するコンピュータシステムの消費電力の増大を抑制する契約管理システムおよびその制御方法などについて、実施の形態1とは異なる形態を説明する。
本実施の形態の契約管理システム2は、先の2つの契約の両方を締結した締結者が、新たな契約を生成することに寄与する。なお、本実施の形態では、契約の管理に取引サーバ10Tは用いられない。
図10は、本実施の形態における契約管理システム2の構成を模式的に示すブロック図である。
図10に示されるように、契約管理システム2は、実施の形態1における契約管理システム1が備える取引サーバ10Tを備えない。その他の構成は、契約管理システム1と同様である。
契約管理システム2では、第三トランザクションデータを取得する処理を、第一契約の締結者であり、かつ、第二契約の締結者であるユーザ(第一ユーザつまりA社に相当)から指定される情報に基づいて実行する技術を説明する。
図11は、本実施の形態におけるトランザクションデータの第一例であるトランザクションデータTB1を示す説明図である。
トランザクションデータTB1は、実施の形態1におけるトランザクションデータTB(図5参照)と類似しているが、紐付け情報を含まない点で異なる。その他の点では、トランザクションデータTBと同じである。トランザクションデータTB1は、第二トランザクションデータに相当する。
なお、トランザクションデータTB1に含まれているスマートコントラクトのコードを、スマートコントラクトCB1のコードとよぶ。
図12は、本実施の形態におけるトランザクションデータの第二例であるトランザクションデータTC1を示す説明図である。
トランザクションデータTC1は、実施の形態1におけるトランザクションデータTC(図6参照)と類似しているが、「署名1」にA社の署名が含まれている点で異なる。その他の点では、トランザクションデータTCと同じである。トランザクションデータTC1は、第三トランザクションデータに相当する。
なお、トランザクションデータTC1に含まれているスマートコントラクトのコードを、スマートコントラクトCC1のコードとよぶ。
図13は、本実施の形態における契約管理システム2の処理を示すシーケンス図である。図13には、実施の形態1の図8と同様に、材料契約の締結、製造委託契約の締結、および、材料納品契約の締結に係る一連の処理が示されている。図13において、図8に示される処理と同じ処理には、同一の符号を付し詳細な説明を省略する。
図13に示されるステップS201~S210は、実施の形態1における処理と同じである。ステップS201~S210において、A社とB社とで締結された材料契約に相当するスマートコントラクトCAを含むトランザクションデータTAが分散台帳に格納され、また、B社とC社とで締結された製造委託契約に相当するスマートコントラクトCBを含むトランザクションデータTBが分散台帳に格納される。
ステップS107Bにおいて、台帳サーバ10Aの処理部11は、材料納品契約に相当するスマートコントラクトCC1のコードを生成する。
ステップS108Bにおいて、台帳サーバ10Aの処理部11は、ステップS107Bで生成したスマートコントラクトCC1のコードを含めたトランザクションデータTC1を生成する。トランザクションデータTC1の「初期化関数に渡す引数」の材料納品元および材料納品先は、材料契約の締結者であり、かつ、製造委託契約の締結者であるA社によって特定される情報に基づいて定められる。例えば、材料契約において材料を製造して納品する者であるB社が材料納品元として特定され、製造委託契約において材料から製品を製造する者であるC社が材料納品先として特定される。
ステップS109Bにおいて、取引サーバ10Tの処理部11は、ステップS109と同様に、ステップS108Bで生成したトランザクションデータTC1に署名を付与し、署名を付与したトランザクションデータTC1を台帳サーバ10Bに送信する。
ステップS221Bにおいて、台帳サーバ10Bの処理部11は、ステップS109Bで送信されたトランザクションデータTC1を受信し、受信したトランザクションデータTC1についての署名を生成してトランザクションデータTC1に付与し、署名を付与したトランザクションデータTC1を台帳サーバ10Cに送信する。
ステップS222Bにおいて、台帳サーバ10Cの処理部11は、ステップS221Bで送信されたトランザクションデータTC1を受信し、受信したトランザクションデータTC1についての署名を生成してトランザクションデータTC1に付与し、署名を付与したトランザクションデータTC1を、台帳サーバ10Aおよび10Bに送信する。これにより、すべての台帳サーバ10A等が、台帳サーバ10A等それぞれの署名を付与されたトランザクションデータTC1を有する状態になる。
ステップS223において、台帳サーバ10A等のそれぞれは、ステップS222Bで署名が付与され、または、送信されたトランザクションデータTC1を分散台帳に格納する。トランザクションデータTC1を分散台帳へ格納する際には、コンセンサスアルゴリズムに基づいて合意形成がなされたことを条件として、トランザクションデータTC1を分散台帳へ格納するようにしてもよい。
図13に示される一連の処理により、契約管理システム2は、A社とB社とで締結された材料契約の内容と、A社とC社とで締結された製造委託契約の内容に基づいて、人手を介さずに、かつ、取引サーバを用いずに、B社とC社との間で新たな材料納品契約を締結させることができる。このように、契約管理システム1は、A社、B社およびC社が関係する契約を適切に管理しながら、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
(変形例1)
図14は、本変形例における契約管理システム3の構成を模式的に示すブロック図である。本変形例における契約管理システム3は、実施の形態1の契約管理システム1の変形例である。
図14は、本変形例における契約管理システム3の構成を模式的に示すブロック図である。本変形例における契約管理システム3は、実施の形態1の契約管理システム1の変形例である。
図14に示される契約管理システム3は、台帳サーバ10A、10Bおよび10Cと、端末20A、20Bおよび20Cと、取引サーバ10Tとを備える。
契約管理システム3では、台帳サーバ10A、10Bおよび10Cは、一か所にまとめて配置されている。より一般的には、台帳サーバ10A、10Bおよび10Cは、それぞれ、必ずしもA社、B社およびC社に配置されている必要はなく、ネットワークNに直接的にまたは間接的に接続され得る任意の場所に配置されていてよい。
このような台帳サーバ10A等の配置によっても、実施の形態1の契約管理システム1と同様の機能を有し、同様の効果を発揮する。
(変形例2)
図15は、本変形例における契約管理システム4の構成を模式的に示すブロック図である。本変形例における契約管理システム4は、実施の形態1の契約管理システム1の変形例である。
図15は、本変形例における契約管理システム4の構成を模式的に示すブロック図である。本変形例における契約管理システム4は、実施の形態1の契約管理システム1の変形例である。
図15に示される契約管理システム4は、取引サーバ10T、10Uおよび10Vと、端末20A、20Bおよび20Cとを備える。
契約管理システム4では、取引サーバ10T、10Uおよび10V(取引サーバ10T等ともいう)が、それぞれ、台帳サーバ10A、10Bおよび10Cの機能を兼ねている。なお、取引サーバ10T、10Uおよび10Vは、変形例1の台帳サーバ10A等と同じように一か所にまとめて配置されているが、実施の形態1のようにA社、B社およびC社に配置されていてもよい。
このような取引サーバ10T等の配置によっても、実施の形態1の契約管理システム1と同様の機能を有し、同様の効果を発揮する。
(補足)
上記各実施の形態、又は、変形例におけるブロックチェーンについて補足的に説明する。
上記各実施の形態、又は、変形例におけるブロックチェーンについて補足的に説明する。
図16は、ブロックチェーンのデータ構造を示す説明図である。
ブロックチェーンは、その記録単位であるブロックがチェーン(鎖)状に接続されたものである。それぞれのブロックは、複数のトランザクションデータと、直前のブロックのハッシュ値とを有している。具体的には、ブロックB2には、その前のブロックB1のハッシュ値が含まれている。そして、ブロックB2に含まれる複数のトランザクションデータと、ブロックB1のハッシュ値とから演算されたハッシュ値が、ブロックB2のハッシュ値として、ブロックB3に含められる。このように、前のブロックの内容をハッシュ値として含めながら、ブロックをチェーン状に接続することで、記録されたトランザクションデータの改ざんを有効に防止する。
仮に過去のトランザクションデータが変更されると、ブロックのハッシュ値が変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降のブロックすべてを作り直さなければならず、この作業は現実的には非常に困難である。この性質を使用して、ブロックチェーンに改ざん困難性が担保されている。
図17は、トランザクションデータのデータ構造を示す説明図である。
図17に示されるトランザクションデータは、トランザクション本体P1と、電子署名P2とを含む。トランザクション本体P1は、当該トランザクションデータに含まれるデータ本体である。電子署名P2は、トランザクション本体P1のハッシュ値に対して、当該トランザクションデータの作成者の署名鍵で署名する、より具体的には、作成者の秘密鍵で暗号化することで生成されたものである。
トランザクションデータは、電子署名P2を有するので、改ざんが実質的に不可能である。これにより、トランザクション本体の改ざんが防止される。
なお、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態のコンテンツ管理システムなどを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、分散台帳を保有している複数の装置を備える契約管理システムにおいて、当該複数の装置のうちの一の装置が実行する制御方法であって、第一ユーザと第二ユーザとの第一契約に関する第一情報を含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、前記第一ユーザと第三ユーザとの第二契約に関する第二情報を含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、前記第一トランザクションデータと前記第二トランザクションデータとの一方が他方に紐付けられている場合に、前記第一情報と前記第二情報とを用いて、前記第二ユーザと前記第三ユーザとの第三契約に関する第三情報を含む第三トランザクションデータを取得し、取得した前記第三トランザクションデータを前記分散台帳に格納する制御方法を実行させるプログラムである。
以上、一つまたは複数の態様に係る契約管理システムなどについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
本発明は、契約を管理する契約管理システムに利用可能である。
1、2、3、4 契約管理システム
10A、10B、10C 台帳サーバ
10T、10U、10V 取引サーバ
11 処理部
12 台帳記憶部
13 実行部
14 記憶部
20A、20B、20C 端末
B1、B2、B3 ブロック
CA、CB、CB1、CC、CC1 スマートコントラクト
N ネットワーク
P1 トランザクション本体
P2 電子署名
TA、TB、TB1、TC、TC1 トランザクションデータ
10A、10B、10C 台帳サーバ
10T、10U、10V 取引サーバ
11 処理部
12 台帳記憶部
13 実行部
14 記憶部
20A、20B、20C 端末
B1、B2、B3 ブロック
CA、CB、CB1、CC、CC1 スマートコントラクト
N ネットワーク
P1 トランザクション本体
P2 電子署名
TA、TB、TB1、TC、TC1 トランザクションデータ
Claims (13)
- 分散台帳を保有している複数の装置を備える契約管理システムにおいて、当該複数の装置のうちの一の装置が実行する制御方法であって、
第一ユーザと第二ユーザとの第一契約に関する第一情報を含む第一トランザクションデータを取得し、
取得した前記第一トランザクションデータを前記分散台帳に格納し、
前記第一ユーザと第三ユーザとの第二契約に関する第二情報を含む第二トランザクションデータを取得し、
取得した前記第二トランザクションデータを前記分散台帳に格納し、
前記第一トランザクションデータと前記第二トランザクションデータとの一方が他方に紐付けられている場合に、前記第一情報と前記第二情報とを用いて、前記第二ユーザと前記第三ユーザとの第三契約に関する第三情報を含む第三トランザクションデータを取得し、
取得した前記第三トランザクションデータを前記分散台帳に格納する
制御方法。 - 前記第三トランザクションデータを取得するときには、
前記第一トランザクションデータと前記第二トランザクションデータとの一方が他方に紐付けられていることを示す条件が満たされるか否かを判定し、
前記条件が満たされると判定した場合に、前記第三トランザクションデータを生成することによって取得する
請求項1に記載の制御方法。 - 前記第二トランザクションデータは、前記第一トランザクションデータに紐づけられていることを示す紐付け情報を含み、
前記条件が満たされるか否かを判定するときには、
前記第二トランザクションデータが前記紐付け情報を含むことを、前記条件として、判定する
請求項2に記載の制御方法。 - 前記第三トランザクションデータを取得するときには、
前記第一契約の締結者であり、かつ、前記第二契約の締結者である前記第一ユーザによって指定される情報に基づいて、前記第三トランザクションデータを取得する
請求項1に記載の制御方法。 - 前記第一トランザクションデータは、前記第一情報を含む第一コントラクトコードを含む
請求項1~4のいずれか1項に記載の制御方法。 - 前記第二トランザクションデータは、前記第二情報を含む第二コントラクトコードを含む
請求項1~5のいずれか1項に記載の制御方法。 - 前記第三トランザクションデータは、前記第三情報を含む第三コントラクトコードを含む
請求項1~6のいずれか1項に記載の制御方法。 - 前記第一トランザクションデータは、前記第一ユーザの電子署名と、前記第二ユーザの電子署名とを含んでいて、
前記第一トランザクションデータを前記分散台帳に格納する際には、
前記第一トランザクションデータに含まれている前記第一ユーザの電子署名と、前記第二ユーザの電子署名との両方の検証が成功した場合に、前記第一トランザクションデータを前記分散台帳に格納する
請求項1~7のいずれか1項に記載の制御方法。 - 前記第二トランザクションデータは、前記第一ユーザの電子署名と、前記第三ユーザの電子署名とを含んでいて、
前記第二トランザクションデータを前記分散台帳に格納する際には、
前記第二トランザクションデータに含まれている前記第一ユーザの電子署名と、前記第三ユーザの電子署名との両方の検証が成功した場合に、前記第二トランザクションデータを前記分散台帳に格納する
請求項1~8のいずれか1項に記載の制御方法。 - 前記第三トランザクションデータは、前記第三トランザクションデータを生成した生成ユーザの電子署名と、前記第二ユーザの電子署名と、前記第三ユーザの電子署名とを含んでいて、
前記第三トランザクションデータを前記分散台帳に格納する際には、
前記第三トランザクションデータに含まれている前記生成ユーザの電子署名と、前記第二ユーザの電子署名と、前記第三ユーザの電子署名との全部の検証が成功した場合に、前記第三トランザクションデータを前記分散台帳に格納する
請求項1~9のいずれか1項に記載の制御方法。 - 前記第一契約は、前記第一ユーザが前記第二ユーザから材料を購入することを定めた契約を含み、
前記第一情報は、前記材料の購入金額を含み、
前記第二契約は、前記第三ユーザが、前記第二ユーザから納入された前記材料から製品を製造して前記第一ユーザに納品することを定めた契約を含み、
前記第二情報は、前記製品の購入金額と、前記製品を納品する期限と、前記製品の納品先とを含み、
前記第三契約は、前記第二ユーザが前記第三ユーザに前記材料を納品することを定めた契約を含み、
前記第三情報は、前記材料を納品する期限と、前記材料の納品先とを含む
請求項1~10のいずれか1項に記載の制御方法。 - 分散台帳を保有している複数の装置を備える契約管理システムにおける、当該複数の装置のうちの一の装置であって、
処理部と、
前記分散台帳を記憶している台帳記憶部と、
実行部を備え、
前記処理部は、第一ユーザと第二ユーザとの第一契約に関する第一情報を含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、
前記第一ユーザと第三ユーザとの第二契約に関する第二情報を含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、
実行部は、
前記第一トランザクションデータと前記第二トランザクションデータとの一方が他方に紐付けられている場合に、前記第一情報と前記第二情報とを用いて、前記第二ユーザと前記第三ユーザとの第三契約に関する第三情報を含む第三トランザクションデータを生成し、
前記処理部は、さらに、
生成した前記第三トランザクションデータを前記分散台帳に格納する
装置。 - 請求項1~11のいずれか1項に記載の制御方法をコンピュータに実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202080086745.8A CN114830160A (zh) | 2019-12-19 | 2020-12-11 | 控制方法、装置以及程序 |
JP2021565561A JPWO2021125108A1 (ja) | 2019-12-19 | 2020-12-11 | |
US17/835,197 US20220301086A1 (en) | 2019-12-19 | 2022-06-08 | Control method, device, and recording medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962950545P | 2019-12-19 | 2019-12-19 | |
US62/950,545 | 2019-12-19 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/835,197 Continuation US20220301086A1 (en) | 2019-12-19 | 2022-06-08 | Control method, device, and recording medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021125108A1 true WO2021125108A1 (ja) | 2021-06-24 |
Family
ID=76477502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/046399 WO2021125108A1 (ja) | 2019-12-19 | 2020-12-11 | 制御方法、装置、および、プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220301086A1 (ja) |
JP (1) | JPWO2021125108A1 (ja) |
CN (1) | CN114830160A (ja) |
WO (1) | WO2021125108A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017010455A1 (ja) * | 2015-07-13 | 2017-01-19 | 日本電信電話株式会社 | 契約合意方法、合意検証方法、契約合意システム、合意検証装置、契約合意装置、契約合意プログラム及び合意検証プログラム |
US20180183600A1 (en) * | 2016-12-28 | 2018-06-28 | Mastercard International Incorporated | Method and system for providing validated, auditable, and immutable inputs to a smart contract |
US20180285979A1 (en) * | 2017-04-04 | 2018-10-04 | International Business Machines Corporation | Creating service agreements via blockchain smart contracts |
US20190243912A1 (en) * | 2018-02-05 | 2019-08-08 | Accenture Global Solutions Limited | Rapid design, development, and reuse of blockchain environment and smart contracts |
WO2019217712A1 (en) * | 2018-05-10 | 2019-11-14 | Alibaba Group Holding Limited | Blockchain data processing methods, apparatuses, processing devices, and systems |
-
2020
- 2020-12-11 WO PCT/JP2020/046399 patent/WO2021125108A1/ja active Application Filing
- 2020-12-11 CN CN202080086745.8A patent/CN114830160A/zh active Pending
- 2020-12-11 JP JP2021565561A patent/JPWO2021125108A1/ja active Pending
-
2022
- 2022-06-08 US US17/835,197 patent/US20220301086A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017010455A1 (ja) * | 2015-07-13 | 2017-01-19 | 日本電信電話株式会社 | 契約合意方法、合意検証方法、契約合意システム、合意検証装置、契約合意装置、契約合意プログラム及び合意検証プログラム |
US20180183600A1 (en) * | 2016-12-28 | 2018-06-28 | Mastercard International Incorporated | Method and system for providing validated, auditable, and immutable inputs to a smart contract |
US20180285979A1 (en) * | 2017-04-04 | 2018-10-04 | International Business Machines Corporation | Creating service agreements via blockchain smart contracts |
US20190243912A1 (en) * | 2018-02-05 | 2019-08-08 | Accenture Global Solutions Limited | Rapid design, development, and reuse of blockchain environment and smart contracts |
WO2019217712A1 (en) * | 2018-05-10 | 2019-11-14 | Alibaba Group Holding Limited | Blockchain data processing methods, apparatuses, processing devices, and systems |
Also Published As
Publication number | Publication date |
---|---|
JPWO2021125108A1 (ja) | 2021-06-24 |
US20220301086A1 (en) | 2022-09-22 |
CN114830160A (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109064334B (zh) | 一种智能合约记账方法、计算机装置及可读存储介质 | |
Hilley | Cloud computing: A taxonomy of platform and infrastructure-level offerings | |
US12034855B2 (en) | Systems and methods for tying token validity to a task executed in a computing system | |
US11522859B2 (en) | Systems and methods for facilitating authentication of emails sent by 3rd parties | |
US12073399B2 (en) | Systems and methods for blockchain network congestion-adaptive digital asset event handling | |
US11201738B2 (en) | Systems and methods for associating a user with a task executed in a computing system | |
JP6859503B2 (ja) | 公開情報の処理方法及びデバイス並びに情報公開システム | |
CN112883109A (zh) | 基于区块链的数字商品交易方法和装置 | |
US20230043223A1 (en) | Methods for Securely Adding Data to a Blockchain Using Dynamic Time Quanta and Version Authentication | |
JP2023536163A (ja) | ブロックチェーントークン | |
TWI707287B (zh) | 簽約風險量化方法、代扣風險量化方法、裝置及設備 | |
CN112529647B (zh) | 基于区块链的商品交易方法、装置、计算机设备 | |
JP7410890B2 (ja) | 制御方法、サーバおよびプログラム | |
WO2021125107A1 (ja) | 制御方法、装置、および、プログラム | |
WO2021125108A1 (ja) | 制御方法、装置、および、プログラム | |
WO2021125106A1 (ja) | 制御方法、装置、および、プログラム | |
US20210326942A1 (en) | Method of Securing Online Merchant Reviews Using Block Chains | |
US20210092123A1 (en) | Systems and methods for a trusted entity to facilitate authentication of emails sent by 3rd parties | |
Teles | Data protection with Ethereum blockchain | |
WO2020145964A1 (en) | Secure transactions | |
CN113240426B (zh) | 基于智能合约实现区块链用户身份认证的交易方法及系统 | |
US20230224166A1 (en) | Systems and Methods for Associating Digital Media Files with External Commodities | |
WO2024116484A1 (ja) | トークン処理サーバ、トークン処理方法、及びプログラム | |
CN117649233A (zh) | 基于区块链的交易处理方法、装置、介质及电子设备 | |
CN111754365A (zh) | 一种侵权公告信息展示方法、装置及系统 |
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: 20903227 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021565561 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20903227 Country of ref document: EP Kind code of ref document: A1 |