WO2022249439A1 - Information processing system, information processing device, information processing program, and information processing method - Google Patents

Information processing system, information processing device, information processing program, and information processing method Download PDF

Info

Publication number
WO2022249439A1
WO2022249439A1 PCT/JP2021/020363 JP2021020363W WO2022249439A1 WO 2022249439 A1 WO2022249439 A1 WO 2022249439A1 JP 2021020363 W JP2021020363 W JP 2021020363W WO 2022249439 A1 WO2022249439 A1 WO 2022249439A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
sum
signature
program
information
Prior art date
Application number
PCT/JP2021/020363
Other languages
French (fr)
Japanese (ja)
Inventor
文彦 小櫻
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2021/020363 priority Critical patent/WO2022249439A1/en
Priority to JP2023523899A priority patent/JPWO2022249439A1/ja
Publication of WO2022249439A1 publication Critical patent/WO2022249439A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Definitions

  • the present invention relates to an information processing system and the like.
  • Blockchain-based ledger management has been proposed, which enables non-centralized ledger management without a trusted third party.
  • Blockchain is one of the distributed ledger technologies in which multiple nodes that make up the network maintain the same database.
  • a group of transactions on the network are collectively processed as blocks, and each block is linked by a hash function.
  • Block data recorded in a blockchain cannot be retroactively changed without changing all subsequent blocks, and blockchain-based ledger management platforms are highly secure against alteration.
  • Blockchain is used in various fields because its transaction history is open and it is difficult to tamper with it.
  • an electricity trading system has been proposed that promotes the introduction and spread of renewable energy by encouraging the consumption of environmentally friendly electricity in a manner that contributes to the environment (patent Reference 1).
  • the present invention aims to reduce the amount of data handled by the blockchain.
  • the information processing system verifies a signature attached to each of the plurality of transaction data, and obtains a verification result that satisfies a criterion among the plurality of transaction data.
  • a first generation unit for generating transaction volume sum data corresponding to the transaction data and signature information of the sum data by a first program; the sum data generated by the first generation unit and the proof information of zero-knowledge proof for proving, based on the signature information, that the signature information corresponds to the signature of the sum data without showing a plurality of transaction data indicating the details of the sum data; has a second generation unit that is generated by a different second program, and a storage unit that stores the sum data and the proof information in a block chain in which the transaction history of the transaction data is stored.
  • the amount of data handled by the blockchain can be reduced.
  • FIG. 1 is a diagram showing a reference example of a data storage method.
  • FIG. 2 is a diagram showing another reference example of the data storage method.
  • FIG. 3 is a diagram illustrating an example of a data storage method according to the embodiment;
  • FIG. 4 is a diagram for explaining four types of schemes for reducing the risk of private key leakage.
  • FIG. 5 is a diagram illustrating an example of a configuration of a data storage system according to an embodiment;
  • FIG. 6 is a block diagram showing an example of functions of each device.
  • FIG. 7 is a diagram showing an example of token management information.
  • FIG. 8 is a diagram showing an example of public key information.
  • FIG. 9 is a diagram illustrating an example of aggregate result information.
  • FIG. 10 is a diagram illustrating an example of the sequence of data storage processing according to the embodiment.
  • FIG. 11 is a diagram of an example of a computer that executes a data storage program.
  • FIG. 1 is a diagram showing a reference example of a data storage method.
  • the data storage system 9A has a block chain 500 and a certificate creation program 100.
  • FIG. The data storage system 9A aggregates input performance data using zero-knowledge proof, and stores the aggregated results in a blockchain. That is, the data storage system 9A uses zero-knowledge proof to assure that the process of calculating the sum aggregated from each performance data is correct, although the performance data to be input is not known.
  • the zero-knowledge proof for example, non-interactive zero-knowledge proof is used.
  • the certificate creation program 100 is installed on a node outside the blockchain 500.
  • the certificate creation program 100 inputs signed data as performance data.
  • the certificate creation program 100 confirms the signature of the input signed data and performs preprocessing for certificate creation.
  • Such preprocessing subdivides the signature verification logic in advance, verifies the signature, and generates information by extracting the elements necessary for creating the certificate.
  • the certificate creation program 100 executes a total data volume transaction including a total data volume commitment indicating the sum total of the data transacted and a zero-knowledge certificate certifying that the total data volume is correct. Generate a record.
  • the certificate generation program 100 then transmits the generated total data volume transaction record to the blockchain 500 .
  • Blockchain 500 has smart contracts and stored data. Upon receiving the total data amount transaction record, the smart contract verifies whether or not the preset transaction constraints are satisfied based on, for example, the transaction details indicated in the transaction record. Then, the smart contract performs a process of storing the total data amount transaction record in the stored data when the constraint conditions of the transaction are satisfied.
  • each performance data is not recorded in the blockchain 500, it is possible to prove that the total sum of the data obtained from the correct performance data is stored.
  • the size-reduced total data amount transaction record is stored in the block chain 500, and the zero-knowledge proof technology can prove the validity of the transaction while keeping the actual data confidential. .
  • FIG. 2 is a diagram showing another reference example of the data storage method.
  • the data storage system 9B has a block chain 500, an aggregate program 200, and a preprocessing 400.
  • Aggregate program 200 is a trusted third party program.
  • the preprocessing 400 generates a key pair by public key cryptography, stores the private key in the aggregate program 200 , and stores the public key in the block chain 500 .
  • the aggregate program 200 verifies the signature of the input signed data and aggregates (sums) the data whose signature has been verified. Then, the aggregate program 200 attaches a signature to the aggregate result with its own private key and transmits it to the blockchain 500 .
  • the blockchain 500 can verify the correctness of the aggregate result using the public key. This makes it possible to prove that the total sum of data obtained from correct performance data is stored, although each performance data is not recorded in the block chain 500 .
  • the data storage system 9B stores the size-reduced total data amount transaction record in the block chain 500, and uses public key encryption technology to lower the computer cost while keeping the performance data confidential and verifying the validity of the transaction. can be proved.
  • FIG. 3 is a diagram illustrating an example of a data storage method according to the embodiment.
  • the data storage system 9 has a block chain 500, an aggregate program 200, a certificate generation program 100A, and a consortium server 300.
  • Aggregate program 200 is a program issued by a trust point.
  • the trust point here refers to the consortium server 300 .
  • the certificate creation program 100 shown in FIG. 1 is divided into an aggregate program 200 issued by the trust point and a new certificate creation program 100A.
  • the aggregate program 200 issued by the trust point receives signed data as performance data. Then, the aggregate program 200 confirms the signature of the input signed data, and aggregates (sums) the signature-verified data. Then, the aggregate program 200 creates a signature of the aggregate result.
  • the certificate creation program 100A receives the aggregate result and its signature, and creates a certificate for the aggregate result. For example, the certificate creation program 100A checks the signature of the input signed aggregate result and performs preprocessing for certificate creation. Such preprocessing subdivides the signature verification logic in advance, verifies the signature, and generates information by extracting the elements necessary for creating the certificate. Then, using the generated information, the certificate generation program 100A generates a total data amount transaction record including a total data amount commitment indicating the aggregate result and a zero-knowledge certificate proving that the sum of the data is correct. do. Then, the certificate generation program 100A transmits the generated total data amount transaction record to the blockchain 500.
  • the blockchain 500 is the same as the blockchain 500 shown in FIG. That is, blockchain 500 has smart contracts and stored data. Upon receiving the total data amount transaction record, the smart contract verifies whether or not the preset transaction constraints are satisfied based on, for example, the transaction details indicated in the transaction record. Then, the smart contract performs a process of storing the total data amount transaction record in the stored data when the constraint conditions of the transaction are satisfied.
  • the data storage system 9 stores transaction records with a reduced total data amount in the block chain 500, making it possible to prove the legitimacy of the transaction while keeping the performance data secret by zero-knowledge proof technology. can be done.
  • the creation of the signature of the aggregate result in the aggregate program 200 and the verification of the signature of the aggregate result in the certificate creation program 100A use a key pair of public key cryptography.
  • a key pair is created by the consortium server 300 .
  • the aggregate program 200 attaches a signature to the aggregate result with a private key created by the consortium server 300, and sends it to the certificate creation program 100A.
  • the certificate creation program 100A confirms the correctness of the aggregate result using the public key created by the consortium server 300.
  • the user of the key pair is the electricity retailer who purchased the performance data, so there is little risk of leakage. This eliminates the need for complicated key management.
  • FIG. 4 is a diagram for explaining four types of schemes for reducing the risk of private key leakage.
  • Method a shown in FIG. 4 is a method of preparing an aggregate program 200 having a different secret key for each aggregate (sum).
  • the consortium server 300 generates a key pair for each aggregate (sum) and distributes the aggregate program 200 storing the private key (a1).
  • the aggregate program 200 verifies the signature of the input signed data and aggregates (sums) the data whose signature has been verified. Then, the aggregate program 200 uses the held private key to create the signature x of the aggregate result.
  • the aggregate program 200 then transmits the aggregate result h and its signature x to the certificate creation program 100A.
  • the certificate creation program 100A confirms the input signature x of the signed aggregate result using the public key (a2).
  • the certificate creation program 100A After confirming that the signature x of the aggregate result is correct, the certificate creation program 100A generates a zero-knowledge certificate proving that the sum of the data is correct, and combines the aggregate result h and the zero-knowledge certificate prf. Send to blockchain 500.
  • the consortium server 300 distributes the aggregate program 200 having a different private key for each aggregate, thereby reducing the risk of leakage due to the reuse of private keys. Also, if the consortium server 300 sets a short expiration date for the private key, it is possible to reduce the risk of being abused when the private key is leaked.
  • Method b shown in FIG. 4 is a method for reducing the burden of distributing the aggregate program 200 having a different secret key for each aggregate (total sum). Instead of distributing the aggregate program 200 for each aggregate, is a method to issue The consortium server 300 issues a token for each aggregate instead of fixing the private key for a certain period according to the expiration date (b1). Then, the aggregate program 200 obtains not only the signature x for the aggregate result h, but also obtains a hash value using the token as a key and adds it to the signature x (b2). h and the signature x to which the hash value is added are sent to the certificate generation program 100A. The certificate creation program 100A confirms the input signature x of the signed aggregate result using the public key.
  • the certificate creation program 100A confirms the hash value added to the signature x using the token (b3).
  • the certificate creation program 100A then creates a zero-knowledge certificate that proves that the sum of the data is correct.
  • the certificate generation program 100A then transmits the aggregation result h and the zero-knowledge certificate prf to the blockchain 500.
  • FIG. the consortium server 300 can reduce the risk of private key leakage at the same security level as distributing the aggregate program 200 having a different private key for each aggregate by issuing a token for each aggregate. .
  • Method c shown in FIG. 4 is a method for reducing the risk of allowing the aggregate program 200 issued by the trust point to hold the private key, and is a method in which the client confirms the aggregate result and signs it. be.
  • the aggregate program 200 verifies the signature of the input signed data and aggregates (sums) the data whose signature has been verified.
  • the client confirms the aggregate result and puts a signature on it to create a signature x of the aggregate result (c1).
  • the aggregate program 200 then transmits the aggregate result h and its signature x to the certificate creation program 100A.
  • the requester confirms the signature x of the entered signed aggregate result (c2).
  • the certificate creation program 100A After confirming that the signature x is correct, the certificate creation program 100A generates a zero-knowledge certificate that proves that the sum of the data is correct, and sends the aggregate result h and the zero-knowledge certificate prf to the blockchain 500. Send. As a result, the certificate creation program 100A can verify the client's signature on the aggregate result, and by verifying the client's signature, the risk of private key leakage in the aggregate program 200 can be reduced.
  • Method d shown in FIG. 4 is a method in which each aggregate program 200 issued by a plurality of trust points is executed, a signature is attached by each aggregate program 200, and a plurality of signatures are collected to validate the aggregate result.
  • a program that puts together a plurality of aggregate programs 200 confirms that the processing results of each aggregate program 200 are the same, and puts together a plurality of signatures (d1).
  • the certificate creation program 100A confirms whether the combined multiple signatures x are correct (d2). After confirming that the multiple signatures x are correct, the certificate creation program 100A generates a zero-knowledge certificate that proves that the sum of the data is correct.
  • the certificate generation program 100A then transmits the aggregation result h and the zero-knowledge certificate prf to the blockchain 500.
  • FIG. As a result, even if some of the aggregate programs 200 are malicious, the certificate creation program 100A can verify the signatures of a plurality of aggregate programs 200, thereby eliminating malicious intent and reducing risks. .
  • FIG. 5 is a diagram illustrating an example of a configuration of a data storage system according to an embodiment
  • the data storage system 9 has a node 10 of a retail electricity supplier 1 , an aggregate program service 2 , a consortium server 3 , a node 40 of a small power generator 4 and a blockchain system 5 .
  • a node 10 of a retail electricity supplier 1 , an aggregate program service 2 , a consortium server 3 , a node 40 of a small power generator 4 and a blockchain system 5 are connected to a network 7 .
  • All of the multiple nodes 50 that make up the blockchain of the blockchain system 5 are connected to the network 7 .
  • a plurality of nodes 50 are connected to each other for P2P communication.
  • a ledger of electricity transactions is distributed and managed by a blockchain.
  • the blockchain system 5 corresponds to the blockchain 500 shown in FIG.
  • Electricity trading is conducted, for example, between a retail electricity supplier 1 and a small-scale power generator 4. Strictly speaking, electric power trading is conducted not only between the retail electric power company 1 and the small power generator 4, but also between electric power consumers. shall be performed in
  • the small-scale power generator 4 is, for example, a general household power generator.
  • the node 40 of the micro-generator 4 reads the measured power generated by renewable energy.
  • Aggregate program service 2 is a service that executes aggregation using an aggregate program.
  • the aggregate program aggregates performance data of multiple amounts of electric power in response to a request from the electricity retailer 1 .
  • Aggregate programs produce signed aggregate results.
  • the signature uses public key cryptography. A private key used for signature is distributed by the consortium server 3, which will be described later. Note that the aggregate program corresponds to the aggregate program 200 shown in FIG.
  • the aggregate program service 2 here is, for example, a cloud service.
  • a cloud service By making the aggregate program service 2 a cloud service, it becomes difficult for the aggregate program executed by the aggregate program service 2 to be analyzed by reverse engineering or the like, and the secret key is not extracted, thereby reducing risks. can be done.
  • the aggregate program may be executed by the node 10 of the electricity retailer 1 instead of the aggregate program service 2 .
  • the electricity retailer 1 uses the node 10 to purchase, for example, power supply rights for electricity generated by renewable energy from the small-scale power generator 4 . If the amount of power generated under the small power generator 4 is dealt with individually, it becomes a large amount. Therefore, in the embodiment, the electricity retailer 1 uses the node 10 to calculate the amount of electricity generated in units of 30 minutes by the small-scale power generator 4 purchased by the virtual power plant. store the aggregate result aggregated in the block chain system 5. For example, electricity retailer 1 uses node 10 to verify the signed aggregate result with a public key. The electricity retailer 1 then uses the node 10 to generate a zero-knowledge certificate that proves that the aggregate result is correct. The electricity retailer 1 then uses the node 10 to store the zero-knowledge certificate and the aggregate result in the blockchain system 5 .
  • the processing at the node 10 of the electricity retailer 1 corresponds to the certificate creation program 100A shown in FIG.
  • the consortium server 3 is a server operated by the consortium as a reliable third party.
  • the consortium server 3 corresponds to the consortium server 300 shown in FIG. 3 and also to a trust point.
  • the consortium server 3 generates a key pair of public key cryptography in response to a request from the electricity retailer 1 .
  • the consortium server 3 then activates the aggregate program service 2 to operate the aggregate program holding the private key.
  • the consortium server 3 generates a token in response to a request from the aggregate program service 2 .
  • the aggregate program is executed by the node 10 of the electricity retailer 1 instead of the aggregate program service 2
  • the aggregate program holding the private key is distributed to the node 10 of the electricity retailer 1. do it.
  • FIG. 6 is a block diagram showing an example of functions of each device.
  • the consortium server 3 has a key generation unit 31 , a program activation unit 32 , a token generation unit 33 and token management information 34 . Note that the consortium server 3 is an example of a third party organization.
  • the key generation unit 31 generates a key pair of public key cryptography in response to an aggregate program service request from the electricity retailer 1 . A key pair is generated for each aggregate.
  • the key generator 31 distributes the public key to the electricity retailer 1 that is the source of the request. Additionally, the key generator 31 stores the public key in the blockchain system 5 .
  • the program activation unit 32 activates the aggregate program service 2.
  • the program activation unit 32 activates the aggregate program service 2 in order to operate the aggregate program holding the private key generated by the key generation unit 31 .
  • the token generation unit 33 generates a token in response to a request for a token from the aggregate program service 2.
  • the token generation unit 33 then issues the generated token to the aggregate program service 2 that is the source of the request.
  • the token generation unit 33 then stores the token in the token management information 34.
  • FIG. when the electricity retailer identifier and the request identifier corresponding to the token issued by itself are stored in the blockchain system 5 , the token generation unit 33 stores the token in the blockchain system 5 .
  • the token management information 34 manages tokens generated for each aggregate.
  • An example of the token management information 34 will now be described with reference to FIG. FIG. 7 is a diagram showing an example of token management information.
  • the token management information 34 is information in which retail electricity supplier identifiers, request identifiers, and tokens are associated with each other.
  • the retail electricity supplier identifier is an identifier that uniquely identifies the retail electricity supplier 1 .
  • a request identifier is an identifier that uniquely identifies a request for a token.
  • a token is a token generated by the token generator 33 .
  • the aggregate program service 2 has a data verification unit 21, a sum signature unit 22, and a sum signature issuing unit 23. Note that the aggregate program service 2 is an example of a first generator.
  • the data confirmation unit 21 confirms the performance data.
  • the data confirmation unit 21 inputs signed data as performance data in response to an aggregate request from the electricity retailer 1 .
  • the data confirmation unit 21 confirms the signature of the input signed data.
  • the sum signature unit 22 generates a signature of the sum of the actual data values. For example, the sum signature unit 22 aggregates (sums) the actual values of the data confirmed by the data confirmation unit 21 . The sum signature unit 22 signs the aggregate result using a private key held in the aggregate program. In addition, the sum signature unit 22 requests a token from the consortium server 3 for this signature, and calculates a hash value using the issued token as a key. Then, the sum signature unit 22 adds a hash value to the signature.
  • the sum signature issuing unit 23 issues a sum signature.
  • the sum signature issuing unit 23 issues an aggregate result to which the signature of the sum and the hash value are added to the electricity retailer 1 that made the aggregation request.
  • the node 10 of the electricity retailer 1 has an initial processing unit 11, a sum signature verification unit 12, a certificate generation unit 13, and a certificate transmission unit 14.
  • the certificate generation unit 13 is an example of a second generation unit.
  • Certificate transmission unit 14 is an example of a storage unit.
  • the initial processing unit 11 performs initial processing in data storage processing. For example, the initial processing unit 11 transmits an aggregate program service request including an electricity retailer identifier to the consortium server 3 . The initial processing unit 11 also transmits an aggregate request including the retail electricity event person identifier and the request identifier to the aggregate program service 2 .
  • the aggregation request may include, for example, performance data for a predetermined period to be aggregated.
  • the sum signature verification unit 12 verifies the signature of the sum. For example, the sum signature verification unit 12 receives the aggregate result issued by the aggregate program service 2 and verifies the signature of the sum added to the aggregate result using the public key.
  • the certificate generation unit 13 generates a certificate that proves that the sum signature is correct. For example, the certificate generation unit 13 uses zero-knowledge proof to generate a certificate that certifies that the signature of the aggregate result verified by the sum signature verification unit 12 is correct.
  • the certificate transmission unit 14 transmits the certificate. For example, the certificate transmission unit 14 generates a total data volume transaction record including the certificate generated by the certificate generation unit 13, the aggregate result, and the hash value attached to the aggregate result. The certificate transmission unit 14 then transmits the generated total data volume transaction record to the blockchain system 5 in association with the retail electricity supplier identifier and the request identifier.
  • a node 50 that configures the blockchain system 5 has a smart contract 51 and a blockchain platform 52 .
  • the smart contract 51 automatically executes transaction contracts using blockchain. For example, when the smart contract 51 receives a total data volume transaction record that associates the electricity retailer identifier and the request identifier, the smart contract 51 performs the following processing. The smart contract 51 acquires tokens corresponding to the electricity retailer identifier and the request identifier stored in the aggregate result information 522 . The smart contract 51 then calculates a keyed hash value of the signature of the aggregate result using the acquired token as a key. Smart contract 51 then compares the hash value attached to the aggregate result indicated in the transaction record with the calculated hash value. Then, the smart contract 51 stores the total data amount transaction record in the blockchain platform 52 if the result of the comparison is the same. That is, the smart contract 51 validates the aggregate result of the total data volume transaction record.
  • the blockchain platform 52 cooperates with other nodes 50 in the blockchain system 5 and uses the blockchain mechanism to manage the ledger of electricity transactions. For example, the blockchain platform 52 adds the block containing the total data volume transaction record received from the smart contract 51 as a new block of the blockchain. When a block is added to the block chain, the block chain platform 52 transmits the block chain to other nodes 50 constituting the block chain system 5 and manages the block chain in a distributed manner.
  • the blockchain storage unit 520 stores a blockchain indicating power transactions. Also, the blockchain storage unit 520 has public key information 521 and aggregate result information 522 .
  • the public key information 521 manages public keys generated by the consortium server 3.
  • the public key information 521 is information that associates an electricity retailer identifier, a public key, and a public key validity period.
  • the retail electricity supplier identifier is an identifier that uniquely identifies the retail electricity supplier 1 .
  • the public key is a public key of public key cryptography generated for each aggregate by the consortium server 3 .
  • the public key validity period is the validity period of the public key. If the consortium server 300 sets the validity period of the private key to be short, it is possible to reduce the risk of being abused when the private key, which is a pair of public keys, is leaked.
  • the aggregate result information 522 manages aggregate results.
  • An example of the aggregate result information 522 will now be described with reference to FIG. FIG. 9 is a diagram illustrating an example of aggregate result information.
  • the aggregate result information 522 is information in which retail electricity supplier identifiers, request identifiers, tokens, aggregate results, and valid identifiers are associated with each other.
  • the retail electricity supplier identifier is an identifier that uniquely identifies the retail electricity supplier 1 .
  • a request identifier is an identifier that uniquely identifies a request for a token.
  • a token is a token generated by the token generator 33 .
  • the aggregate result is the result of aggregating the sum of the data.
  • the aggregate result is a value indicating the total sum of actual values (power consumption) for a predetermined period.
  • a valid identifier is an identifier that identifies whether the aggregate result is valid. If it is valid, " ⁇ " is set as an example.
  • FIG. 10 is a diagram illustrating an example of the sequence of data storage processing according to the embodiment. It should be noted that FIG. 10 is described assuming that the predetermined period of performance data to be aggregated is 30 minutes. As shown in FIG. 10, the node 10 of the electricity retailer 1 requests the aggregate program service from the consortium server 3 (step S11).
  • the consortium server 3 Upon receiving the request from the node 10 of the electricity retailer 1, the consortium server 3 generates a key pair of public key cryptography (step S12). The consortium server 3 then distributes the generated public key to the node 10 of the electricity retailer 1 and stores it in the blockchain system 5 (BC) (step S13). Since there is no problem even if the public key is made public, the consortium server 3 also distributes the public key to the electricity retailer 1 that is the source of the request. The consortium server 3 then activates the aggregate program service 2 holding the private key (step S15).
  • BC blockchain system 5
  • the node 10 of the electricity retailer 1 acquires the actual value purchased from the small-scale power generator 4 (step S14). Then, when the aggregate program service 2 is activated, the node 10 generates performance data to be aggregated in units of 30 minutes (step S16). Then, the node 10 makes an aggregate request to use the aggregate program service 2 (steps S17 and S18). At the time of an aggregate request, the node 10 passes the retail electricity event person identifier and the request identifier to the aggregate program service 2 together with the performance value as the performance data.
  • the aggregate program service 2 requests a token from the consortium server 3 (step S19). At this time, the Aggregate Program Service 2 also passes the Retail Electricity Party Identifier and Order Identifier to the Consortium Server 3 .
  • the consortium server 3 that has received the token request generates a token that associates the retail electricity event person identifier and the request identifier (step S20).
  • the consortium server 3 manages the token associated with the retail electricity event person identifier and the request identifier in the token management information 34 .
  • the consortium server 3 then issues the generated token to the requesting aggregate program service 2 (step S21).
  • the aggregate program service 2 aggregates the performance values for a predetermined period and signs the aggregate result using the private key it possesses (step S22). In addition, the aggregate program service 2 calculates a hash value using the issued token as a key and adds the hash value to the signature. Then, the aggregate program service 2 issues the signed aggregate result to which the hash value is added to the node 10 of the electricity retailer 1 (step S23).
  • the node 10 of the electricity retailer 1 that has received the signed aggregate result verifies the signature of the aggregate result using the public key (step S24). Then, the node 10 generates a certificate proving that the signature of the verified aggregate result is correct using zero-knowledge signature proof (step S25). Then, the node 10 stores the certificate, the aggregate result, and the hash value associated with the aggregate result in the blockchain system 5 (step S26).
  • the blockchain system 5 verifies the aggregate result (step S27). Then, if the verification is valid, the blockchain system 5 validates the aggregate result (step S28). For example, the blockchain system 5 calculates a keyed hash value of the signature of the aggregate result using the token as a key. The blockchain system 5 compares the hash value attached to the aggregate result and the calculated hash value. Then, the smart contract 51 validates the aggregate result if the result of the comparison is the same.
  • the aggregate program service 2 when receiving a plurality of transaction data, verifies the signature attached to each of the plurality of transaction data, and if the verification result satisfying the criteria among the plurality of transaction data is An aggregation program generates sum data of transaction volumes corresponding to the obtained transaction data and signature information of the sum data.
  • the node 10 of the electricity retailer 1 certifies that the signature information corresponds to the signature of the total data based on the generated total data and signature information without showing multiple transaction data showing the breakdown of the total data. Proof information for zero-knowledge proof is generated by a certificate creation program different from the aggregate program. Then, the node 10 stores the total sum data and proof information in the blockchain system 5 in which the transaction history of the transaction data is stored. According to such a configuration, the data storage system 9 can reduce the calculation cost for generating the certificate of zero-knowledge proof by using the signature and the zero-knowledge proof.
  • the data storage system 9 has the consortium server 3 .
  • Aggregate program service 2 generates signature information for total data using an aggregate program distributed from consortium server 3 and containing a different secret key for each total data using a secret key.
  • the node 10 of the electricity retailer 1 verifies the validity of the signature information of the sum data using the public key, which is a pair of private keys, and proves that the signature information corresponds to the signature of the sum data.
  • the data storage system 9 can reduce the risk of leakage due to reuse of the secret key by means of the aggregate program holding a different secret key for each aggregate.
  • the aggregate program service 2 further generates the signature information of the sum data using the private key, and furthermore, the token distributed by the consortium server 3 is different for each sum data. is used as a key, and the hash value is added to the signature information of the total data.
  • the data storage system 9 can further reduce the risk of private key leakage by using a token for each aggregate.
  • the aggregate program service 2 further confirms the total data by the requester who executes the aggregate program, and adds signature information indicating confirmation to the signature information of the total data.
  • the node 10 of the electricity retailer 1 further confirms the signature information added by the client executing the certificate creation program.
  • the data storage system 9 can reduce the risk of leakage of the private key in the aggregate program by confirming the signature of the client.
  • the aggregate program service 2 generates signature information of total sum data by using a plurality of aggregate programs distributed from a plurality of consortium servers 3, respectively.
  • the node 10 of the electricity retailer 1 verifies the validity of the signature information of each total sum data, and generates proof information when all the verifications are valid.
  • the data storage system 9 can eliminate malicious intent even if part of the aggregate program is malicious by verifying the signatures of a plurality of aggregate programs, thereby reducing risks. .
  • the node 10 of the electricity retailer 1 includes the above-described initial processing unit 11, sum signature verification unit 12, certificate generation unit 13 and It can be realized by installing each function such as the certificate transmission unit 14 .
  • each component of the illustrated node 10 of the electricity retailer 1 does not necessarily need to be physically configured as illustrated.
  • the specific aspects of the distribution and integration of the nodes 10 are not limited to those illustrated, and all or part of them may be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
  • the initial processing unit 11 may be divided into a transmitting unit that transmits an aggregate program service request and a transmitting unit that transmits an aggregate request.
  • the certificate generation unit 13 and the certificate transmission unit 14 may be integrated as one unit.
  • FIG. 11 is a diagram of an example of a computer that executes a data storage program.
  • the node 10 of the electricity retailer 1 may include the aggregate program service 2 .
  • the data storage program includes the certificate creation program as well as the aggregate program.
  • the computer 700 has a CPU 703 that executes various arithmetic processes, an input device 715 that receives data input from the user, and a display device 709 .
  • the computer 700 also has a drive device 713 that reads programs and the like from a storage medium, and a communication I/F (Interface) 717 that exchanges data with other computers via a network.
  • the computer 700 also has a memory 701 that temporarily stores various information and a HDD (Hard Disk Drive) 705 .
  • the memory 701 , CPU 703 , HDD 705 , display device 709 , drive device 713 , input device 715 and communication I/F 717 are connected via a bus 719 .
  • the drive device 713 is a device for the removable disk 711, for example.
  • the HDD 705 stores a data storage program 705a and data storage related information 705b.
  • a communication I/F 717 serves as an interface between the network and the inside of the apparatus, and controls input/output of data from other computers.
  • a modem, a LAN adapter, or the like can be adopted for the communication I/F 717.
  • the display device 709 is a display device that displays data such as cursors, icons, tool boxes, documents, images, and functional information.
  • the display device 709 can employ, for example, a liquid crystal display or an organic EL (Electroluminescence) display.
  • the CPU 703 reads the data storage program 205a, develops it in the memory 701, and executes it as a process. Such a process corresponds to each functional part of node 10 .
  • the data storage related information 705b corresponds to information used for executing the data storage program 705a.
  • a removable disk 711 for example, stores information such as a data storage program 705a.
  • the data storage program 705a does not necessarily have to be stored in the HDD 705 from the beginning.
  • the program is stored in a “portable physical medium” such as a flexible disk (FD), CD-ROM, DVD disk, magneto-optical disk, IC card, etc. inserted into the computer 700 . Then, the computer 700 may read and execute the data storage program 705a from these.
  • a “portable physical medium” such as a flexible disk (FD), CD-ROM, DVD disk, magneto-optical disk, IC card, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

In a data storage system 9, when a plurality of sets of transaction data are received, an aggregate program service 2 verifies signatures respectively assigned to the plurality of sets of transaction data, and uses a first program to generate sum data for a transaction quantity corresponding to the transaction data, from among the plurality of sets of transaction data, that has yielded a verification result meeting a condition, as well as signature information for the sum data. A node 10 of an electricity retailer 1 uses a second program to generate proof information for a zero-knowledge proof, which proves that the signature information corresponds to a signature of the sum data, without indicating the plurality of sets of transaction data which indicate a breakdown of the sum data, on the basis of the generated sum data and signature information. The data storage system 9 stores the sum data and the proof information in a blockchain where a transaction history of transaction data is stored. This configuration reduces the data volume being handled on the blockchain.

Description

情報処理システム、情報処理装置、情報処理プログラムおよび情報処理方法Information processing system, information processing device, information processing program, and information processing method
 本発明は、情報処理システムなどに関する。 The present invention relates to an information processing system and the like.
 近年では、信頼できる第三者機関を置かずに、非中央集権的な台帳管理が可能なブロックチェーンによる台帳管理が提案されている。ブロックチェーンは、ネットワークを構成する複数のノードが同一のデータベースを保持する分散型台帳技術の1つである。ブロックチェーンでは、ネットワーク上のトランザクション群がブロックとしてまとめて処理され、ハッシュ関数によって各ブロックがリンクされている。ブロックチェーンにおいて記録されたブロックのデータは、後続のすべてのブロックを変更しない限り遡及的に変更することはできず、ブロックチェーンを用いた台帳管理のプラットフォームは改変に対する安全性が高い。 In recent years, blockchain-based ledger management has been proposed, which enables non-centralized ledger management without a trusted third party. Blockchain is one of the distributed ledger technologies in which multiple nodes that make up the network maintain the same database. In a blockchain, a group of transactions on the network are collectively processed as blocks, and each block is linked by a hash function. Block data recorded in a blockchain cannot be retroactively changed without changing all subsequent blocks, and blockchain-based ledger management platforms are highly secure against alteration.
 ブロックチェーンは、取引履歴がオープンであり、取引履歴の改ざんが困難なことから、様々な分野で利用されている。ブロックチェーンを利用した技術の一例として、環境に貢献する電力を、環境に貢献する方法で消費することを促し、再生可能エネルギーの導入・普及の促進を図る電力取引システムが提案されている(特許文献1参照)。 Blockchain is used in various fields because its transaction history is open and it is difficult to tamper with it. As an example of blockchain-based technology, an electricity trading system has been proposed that promotes the introduction and spread of renewable energy by encouraging the consumption of environmentally friendly electricity in a manner that contributes to the environment (patent Reference 1).
特開2020-107202号公報Japanese Patent Application Laid-Open No. 2020-107202
 ブロックチェーンでは、台帳を分散管理するため、サーバで一括して管理するデータベースと比較してストレージのコストが高くなる。この問題は、取り扱うデータ量が大きくなったときに顕著となる。例えば電力などの資源取引において、資源の生産実績や消費実績の実績データは逐次生成されるため、これらの実績データを含めてブロックチェーンで管理しようとするとブロックチェーンで管理するデータ量が肥大化し、ストレージのコストの増大を招く。 Because the blockchain manages the ledger in a distributed manner, storage costs are higher than databases that are centrally managed by a server. This problem becomes conspicuous when the amount of data to be handled increases. For example, in the transaction of resources such as electricity, the actual data of resource production and consumption are generated sequentially. Increase storage costs.
 1つの側面では、本発明は、ブロックチェーンで取り扱うデータ量を削減することを目的とする。 In one aspect, the present invention aims to reduce the amount of data handled by the blockchain.
 1つの態様では、情報処理システムは、複数の取引データを受け付けると、前記複数の取引データそれぞれに付与された署名を検証するとともに、前記複数の取引データのうち、基準を満たす検証結果が得られた取引データに対応する取引量の総和データと、前記総和データの署名情報とを第1のプログラムにより生成する第1の生成部と、前記第1の生成部によって生成された前記総和データおよび前記署名情報に基づき、前記署名情報が前記総和データの署名に対応することを、前記総和データの内訳を示す複数の取引データを示すことなく証明するゼロ知識証明の証明情報を前記第1のプログラムとは異なる第2のプログラムにより生成する第2の生成部と、前記取引データの取引履歴が格納されたブロックチェーンに、前記総和データおよび前記証明情報を格納する格納部と、を有する。 In one aspect, when receiving a plurality of transaction data, the information processing system verifies a signature attached to each of the plurality of transaction data, and obtains a verification result that satisfies a criterion among the plurality of transaction data. a first generation unit for generating transaction volume sum data corresponding to the transaction data and signature information of the sum data by a first program; the sum data generated by the first generation unit and the proof information of zero-knowledge proof for proving, based on the signature information, that the signature information corresponds to the signature of the sum data without showing a plurality of transaction data indicating the details of the sum data; has a second generation unit that is generated by a different second program, and a storage unit that stores the sum data and the proof information in a block chain in which the transaction history of the transaction data is stored.
 1実施態様によれば、ブロックチェーンで取り扱うデータ量を削減することができる。 According to one embodiment, the amount of data handled by the blockchain can be reduced.
図1は、データ格納方法の参考例を示す図である。FIG. 1 is a diagram showing a reference example of a data storage method. 図2は、データ格納方法の別の参考例を示す図である。FIG. 2 is a diagram showing another reference example of the data storage method. 図3は、実施例に係るデータ格納方法の一例を示す図である。FIG. 3 is a diagram illustrating an example of a data storage method according to the embodiment; 図4は、秘密鍵の漏洩リスクを軽減する4種類の方式を説明する図である。FIG. 4 is a diagram for explaining four types of schemes for reducing the risk of private key leakage. 図5は、実施例に係るデータ格納システムの構成の一例を示す図である。FIG. 5 is a diagram illustrating an example of a configuration of a data storage system according to an embodiment; 図6は、各装置の機能の一例を示すブロック図である。FIG. 6 is a block diagram showing an example of functions of each device. 図7は、トークン管理情報の一例を示す図である。FIG. 7 is a diagram showing an example of token management information. 図8は、公開鍵情報の一例を示す図である。FIG. 8 is a diagram showing an example of public key information. 図9は、アグリゲート結果情報の一例を示す図である。FIG. 9 is a diagram illustrating an example of aggregate result information. 図10は、実施例に係るデータ格納処理のシーケンスの一例を示す図である。FIG. 10 is a diagram illustrating an example of the sequence of data storage processing according to the embodiment. 図11は、データ格納プログラムを実行するコンピュータの一例を示す図である。FIG. 11 is a diagram of an example of a computer that executes a data storage program.
 以下に、本願の開示する情報処理システム、情報処理装置、情報処理プログラムおよび情報処理方法の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。 Hereinafter, embodiments of the information processing system, the information processing apparatus, the information processing program, and the information processing method disclosed in the present application will be described in detail based on the drawings. In addition, this invention is not limited by an Example.
 まず、ブロックチェーンで取り扱うデータ量を削減するために、ブロックチェーンにデータを格納する格納方法の参考例について説明する。なお、電力取引の台帳をブロックチェーンで管理する場合を説明する。 First, in order to reduce the amount of data handled by the blockchain, we will explain a reference example of how to store data in the blockchain. A case where the ledger of electricity transactions is managed by blockchain will be explained.
[データ格納方法の参考例]
 図1は、データ格納方法の参考例を示す図である。図1に示すように、データ格納システム9Aは、ブロックチェーン500と、証明書作成プログラム100とを有する。データ格納システム9Aは、入力される実績データを、ゼロ知識証明を用いてアグリゲート(集約)して、アグリゲートした結果をブロックチェーンに格納する。すなわち、データ格納システム9Aは、ゼロ知識証明を用いることで、入力される実績データはわからないが、各実績データからアグリゲートした総和の計算過程が正しいことを保証する。なお、ゼロ知識証明としては、例えば非対話ゼロ知識証明が用いられる。
[Reference example of data storage method]
FIG. 1 is a diagram showing a reference example of a data storage method. As shown in FIG. 1, the data storage system 9A has a block chain 500 and a certificate creation program 100. FIG. The data storage system 9A aggregates input performance data using zero-knowledge proof, and stores the aggregated results in a blockchain. That is, the data storage system 9A uses zero-knowledge proof to assure that the process of calculating the sum aggregated from each performance data is correct, although the performance data to be input is not known. As the zero-knowledge proof, for example, non-interactive zero-knowledge proof is used.
 証明書作成プログラム100は、ブロックチェーン500外のノードに搭載される。証明書作成プログラム100は、実績データとして署名付きのデータを入力する。証明書作成プログラム100は、入力した署名付きのデータの署名を確認するとともに、証明書作成の前処理を行う。かかる前処理は、予め署名確認のロジックを細分化したうえで、署名を確認するとともに、証明書作成に必要な要素を抽出した情報を生成する。そして、証明書作成プログラム100は、生成した情報を用いて、取引されたデータの総和を示す総データ量コミットメントと、データの総和が正しいことを証明するゼロ知識証明書とを含む総データ量トランザクションレコードを生成する。そして、証明書作成プログラム100は、生成した総データ量トランザクションレコードを、ブロックチェーン500に送信する。 The certificate creation program 100 is installed on a node outside the blockchain 500. The certificate creation program 100 inputs signed data as performance data. The certificate creation program 100 confirms the signature of the input signed data and performs preprocessing for certificate creation. Such preprocessing subdivides the signature verification logic in advance, verifies the signature, and generates information by extracting the elements necessary for creating the certificate. Then, using the generated information, the certificate creation program 100 executes a total data volume transaction including a total data volume commitment indicating the sum total of the data transacted and a zero-knowledge certificate certifying that the total data volume is correct. Generate a record. The certificate generation program 100 then transmits the generated total data volume transaction record to the blockchain 500 .
 ブロックチェーン500は、スマートコントラクトと格納データとを有する。スマートコントラクトは、総データ量トランザクションレコードを受信すると、例えばそのトランザクションレコードに示される取引内容に基づいて、予め設定されている取引の制約条件が満たされたか否かを検証する。そして、スマートコントラクトは、取引の制約条件が満たされた場合、総データ量トランザクションレコードの格納データへの格納処理を行う。 Blockchain 500 has smart contracts and stored data. Upon receiving the total data amount transaction record, the smart contract verifies whether or not the preset transaction constraints are satisfied based on, for example, the transaction details indicated in the transaction record. Then, the smart contract performs a process of storing the total data amount transaction record in the stored data when the constraint conditions of the transaction are satisfied.
 これにより、ブロックチェーン500には各実績データは記録されないが、正しい実績データから求めたデータの総和が格納されていることを証明することが可能になる。この結果、データ格納システム9Aでは、サイズダウンした総データ量トランザクションレコードがブロックチェーン500に格納され、ゼロ知識証明技術によって、実績データを秘匿したまま取引の正当性の証明を可能とすることができる。 As a result, although each performance data is not recorded in the blockchain 500, it is possible to prove that the total sum of the data obtained from the correct performance data is stored. As a result, in the data storage system 9A, the size-reduced total data amount transaction record is stored in the block chain 500, and the zero-knowledge proof technology can prove the validity of the transaction while keeping the actual data confidential. .
 ここで、データ格納システム9Aでは、データをゼロ知識証明を用いてアグリゲートする際、署名確認の数が多いと、証明書作成前処理に計算機コストがかかってしまう。このため、大量のデータをアグリゲートするのは難しいという問題がある。そこで、信頼性を保持しながら、計算機コストを下げる方式が必要になる。 Here, in the data storage system 9A, when aggregating data using zero-knowledge proof, if the number of signature verifications is large, the pre-processing for creating a certificate will cost a lot of computer cost. Therefore, there is a problem that it is difficult to aggregate a large amount of data. Therefore, there is a need for a method that reduces the computer cost while maintaining reliability.
[データ格納方法の別の例]
 図2は、データ格納方法の別の参考例を示す図である。図2に示すように、データ格納システム9Bは、ブロックチェーン500と、アグリゲートプログラム200と、前処理400とを有する。アグリゲートプログラム200は、信頼できる第三者のプログラムである。前処理400は、公開鍵暗号による鍵ペアを生成して、アグリゲートプログラム200に秘密鍵を格納し、ブロックチェーン500に公開鍵を格納する。アグリゲートプログラム200は、入力した署名付きのデータの署名を確認し、署名を確認したデータをアグリゲート(総和)する。そして、アグリゲートプログラム200は、アグリゲート結果に対して保有する秘密鍵で署名を付けて、ブロックチェーン500に送信する。
[Another example of data storage method]
FIG. 2 is a diagram showing another reference example of the data storage method. As shown in FIG. 2, the data storage system 9B has a block chain 500, an aggregate program 200, and a preprocessing 400. Aggregate program 200 is a trusted third party program. The preprocessing 400 generates a key pair by public key cryptography, stores the private key in the aggregate program 200 , and stores the public key in the block chain 500 . The aggregate program 200 verifies the signature of the input signed data and aggregates (sums) the data whose signature has been verified. Then, the aggregate program 200 attaches a signature to the aggregate result with its own private key and transmits it to the blockchain 500 .
 ブロックチェーン500は、アグリゲート結果の正しさを、公開鍵を用いて検証することができる。これにより、ブロックチェーン500には各実績データは記録されないが、正しい実績データから求めたデータの総和が格納されていることを証明することが可能になる。この結果、データ格納システム9Bは、サイズダウンした総データ量トランザクションレコードをブロックチェーン500に格納することとなり、公開鍵暗号化技術によって、計算機コストを下げつつ、実績データを秘匿したまま取引の正当性の証明を可能とすることができる。 The blockchain 500 can verify the correctness of the aggregate result using the public key. This makes it possible to prove that the total sum of data obtained from correct performance data is stored, although each performance data is not recorded in the block chain 500 . As a result, the data storage system 9B stores the size-reduced total data amount transaction record in the block chain 500, and uses public key encryption technology to lower the computer cost while keeping the performance data confidential and verifying the validity of the transaction. can be proved.
 ところが、秘密鍵が漏洩されると、公開鍵暗号による署名は偽造可能となり、ブロックチェーン500に格納されたデータの正しさを担保できない。このため、単純に公開鍵暗号を活用するのは困難である。秘密鍵の漏洩対策は複雑な鍵管理が必要であり、システムを複雑化させるという問題がある。そこで、複雑な鍵管理を不要にしながら、計算機コストを下げる方式が必要になる。 However, if the private key is leaked, the signature using public key cryptography can be forged, and the correctness of the data stored in the blockchain 500 cannot be guaranteed. Therefore, it is difficult to simply utilize public key cryptography. A countermeasure against leakage of a secret key requires complicated key management, and there is a problem of complicating the system. Therefore, there is a need for a method of reducing computer costs while eliminating the need for complicated key management.
[データ格納方法の一例]
 図3は、実施例に係るデータ格納方法の一例を示す図である。図3に示すように、データ格納システム9は、ブロックチェーン500と、アグリゲートプログラム200と、証明書作成プログラム100Aと、コンソーシアムサーバ300とを有する。アグリゲートプログラム200は、信頼点が発行するプログラムである。ここでいう信頼点は、コンソーシアムサーバ300のことをいう。
[Example of data storage method]
FIG. 3 is a diagram illustrating an example of a data storage method according to the embodiment; As shown in FIG. 3, the data storage system 9 has a block chain 500, an aggregate program 200, a certificate generation program 100A, and a consortium server 300. Aggregate program 200 is a program issued by a trust point. The trust point here refers to the consortium server 300 .
 データ格納システム9では、図1で示される証明書作成プログラム100が、信頼点が発行するアグリゲートプログラム200と新たな証明書作成プログラム100Aとに分割される。信頼点が発行するアグリゲートプログラム200は、実績データとして署名付きのデータを入力する。そして、アグリゲートプログラム200は、入力した署名付きのデータの署名を確認し、署名を確認したデータをアグリゲート(総和)する。そして、アグリゲートプログラム200は、アグリゲート結果の署名を作成する。 In the data storage system 9, the certificate creation program 100 shown in FIG. 1 is divided into an aggregate program 200 issued by the trust point and a new certificate creation program 100A. The aggregate program 200 issued by the trust point receives signed data as performance data. Then, the aggregate program 200 confirms the signature of the input signed data, and aggregates (sums) the signature-verified data. Then, the aggregate program 200 creates a signature of the aggregate result.
 証明書作成プログラム100Aは、アグリゲート結果とその署名を受け取り、アグリゲート結果に対して証明書作成を行う。例えば、証明書作成プログラム100Aは、入力した署名付きのアグリゲート結果の署名を確認するとともに、証明書作成の前処理を行う。かかる前処理は、予め署名確認のロジックを細分化したうえで、署名を確認するとともに、証明書作成に必要な要素を抽出した情報を生成する。そして、証明書作成プログラム100Aは、生成した情報を用いて、アグリゲート結果を示す総データ量コミットメントと、データの総和が正しいことを証明するゼロ知識証明書とを含む総データ量トランザクションレコードを生成する。そして、証明書作成プログラム100Aは、生成した総データ量トランザクションレコードを、ブロックチェーン500に送信する。 The certificate creation program 100A receives the aggregate result and its signature, and creates a certificate for the aggregate result. For example, the certificate creation program 100A checks the signature of the input signed aggregate result and performs preprocessing for certificate creation. Such preprocessing subdivides the signature verification logic in advance, verifies the signature, and generates information by extracting the elements necessary for creating the certificate. Then, using the generated information, the certificate generation program 100A generates a total data amount transaction record including a total data amount commitment indicating the aggregate result and a zero-knowledge certificate proving that the sum of the data is correct. do. Then, the certificate generation program 100A transmits the generated total data amount transaction record to the blockchain 500. FIG.
 ブロックチェーン500は、図1で示されるブロックチェーン500と同じである。すなわち、ブロックチェーン500は、スマートコントラクトと格納データとを有する。スマートコントラクトは、総データ量トランザクションレコードを受信すると、例えばそのトランザクションレコードに示される取引内容に基づいて、予め設定されている取引の制約条件が満たされたか否かを検証する。そして、スマートコントラクトは、取引の制約条件が満たされた場合、総データ量トランザクションレコードの格納データへの格納処理を行う。 The blockchain 500 is the same as the blockchain 500 shown in FIG. That is, blockchain 500 has smart contracts and stored data. Upon receiving the total data amount transaction record, the smart contract verifies whether or not the preset transaction constraints are satisfied based on, for example, the transaction details indicated in the transaction record. Then, the smart contract performs a process of storing the total data amount transaction record in the stored data when the constraint conditions of the transaction are satisfied.
 これにより、データ格納システム9では、証明書作成プログラムにおける署名確認回数を削減することができ、証明書作成のための前処理を削減することができる。また、ブロックチェーン500には各実績データは記録されないが、正しい実績データから求めたデータの総和が格納されていることを証明することが可能になる。この結果、データ格納システム9は、サイズダウンした総データ量トランザクションレコードをブロックチェーン500に格納することとなり、ゼロ知識証明技術によって、実績データを秘匿したまま取引の正当性の証明を可能とすることができる。 As a result, in the data storage system 9, the number of signature verifications in the certificate generation program can be reduced, and preprocessing for certificate generation can be reduced. Moreover, although each performance data is not recorded in the block chain 500, it becomes possible to prove that the total sum of the data obtained from the correct performance data is stored. As a result, the data storage system 9 stores transaction records with a reduced total data amount in the block chain 500, making it possible to prove the legitimacy of the transaction while keeping the performance data secret by zero-knowledge proof technology. can be done.
 ここで、鍵管理について説明する。アグリゲートプログラム200におけるアグリゲート結果の署名作成および証明書作成プログラム100Aにおけるアグリゲート結果の署名の確認は、公開鍵暗号の鍵ペアを使用する。鍵ペアは、コンソーシアムサーバ300によって作成される。例えば、アグリゲートプログラム200は、アグリゲート結果に対してコンソーシアムサーバ300によって作成された秘密鍵で署名を付けて、証明書作成プログラム100Aに送信する。証明書作成プログラム100Aは、アグリゲート結果の正しさを、コンソーシアムサーバ300によって作成された公開鍵を用いて確認する。仮にアグリゲートプログラム200で秘密鍵の漏洩が発生したとしても、格納データを担保するブロックチェーン500に直接的な影響は発生しない。また、鍵ペアの使用者は、実績データを購入した小売電気事業者であり、漏洩リスクは少ない。このため、複雑な鍵管理は不要にできる。 Here, we will explain key management. The creation of the signature of the aggregate result in the aggregate program 200 and the verification of the signature of the aggregate result in the certificate creation program 100A use a key pair of public key cryptography. A key pair is created by the consortium server 300 . For example, the aggregate program 200 attaches a signature to the aggregate result with a private key created by the consortium server 300, and sends it to the certificate creation program 100A. The certificate creation program 100A confirms the correctness of the aggregate result using the public key created by the consortium server 300. FIG. Even if the secret key is leaked in the aggregate program 200, the block chain 500 that secures the stored data will not be directly affected. Also, the user of the key pair is the electricity retailer who purchased the performance data, so there is little risk of leakage. This eliminates the need for complicated key management.
 しかしながら、秘密鍵の漏洩リスクは全くないわけではないため、実施例では、秘密鍵の漏洩リスクを軽減する4種類の方式について、図4を参照して説明する。図4は、秘密鍵の漏洩リスクを軽減する4種類の方式を説明する図である。 However, since the risk of leakage of the private key is not completely eliminated, four types of methods for reducing the risk of leakage of the private key will be described in the embodiment with reference to FIG. FIG. 4 is a diagram for explaining four types of schemes for reducing the risk of private key leakage.
 図4に示す方式aは、アグリゲート(総和)ごとに異なる秘密鍵を保有するアグリゲートプログラム200を用意する方式である。コンソーシアムサーバ300が、アグリゲート(総和)ごとに鍵ペアを生成して、秘密鍵を格納したアグリゲートプログラム200を配信する(a1)。アグリゲートプログラム200は、入力した署名付きのデータの署名を確認し、署名を確認したデータをアグリゲート(総和)する。そして、アグリゲートプログラム200は、保有された秘密鍵を用いて、アグリゲート結果の署名xを作成する。そして、アグリゲートプログラム200は、アグリゲート結果hとその署名xを証明書作成プログラム100Aに送信する。証明書作成プログラム100Aは、入力した署名付きのアグリゲート結果の署名xを、公開鍵を用いて確認する(a2)。そして、証明書作成プログラム100Aは、アグリゲート結果の署名xが正しいことを確認すると、データの総和が正しいことを証明するゼロ知識証明書を生成し、アグリゲート結果hとゼロ知識証明書prfをブロックチェーン500に送信する。これにより、コンソーシアムサーバ300は、アグリゲートごとに異なる秘密鍵を保有するアグリゲートプログラム200を配信することで、秘密鍵の使いまわしによる漏洩リスクを軽減できる。また、コンソーシアムサーバ300が、秘密鍵の有効期限を短く設定すれば、秘密鍵が漏洩した際に悪用されるリスクを低減できる。 Method a shown in FIG. 4 is a method of preparing an aggregate program 200 having a different secret key for each aggregate (sum). The consortium server 300 generates a key pair for each aggregate (sum) and distributes the aggregate program 200 storing the private key (a1). The aggregate program 200 verifies the signature of the input signed data and aggregates (sums) the data whose signature has been verified. Then, the aggregate program 200 uses the held private key to create the signature x of the aggregate result. The aggregate program 200 then transmits the aggregate result h and its signature x to the certificate creation program 100A. The certificate creation program 100A confirms the input signature x of the signed aggregate result using the public key (a2). After confirming that the signature x of the aggregate result is correct, the certificate creation program 100A generates a zero-knowledge certificate proving that the sum of the data is correct, and combines the aggregate result h and the zero-knowledge certificate prf. Send to blockchain 500. As a result, the consortium server 300 distributes the aggregate program 200 having a different private key for each aggregate, thereby reducing the risk of leakage due to the reuse of private keys. Also, if the consortium server 300 sets a short expiration date for the private key, it is possible to reduce the risk of being abused when the private key is leaked.
 図4に示す方式bは、アグリゲート(総和)ごとに異なる秘密鍵を保有するアグリゲートプログラム200を配信する負担を軽減する方式であり、アグリゲートごとのアグリゲートプログラム200の配信に代わり、トークンを発行する方式である。コンソーシアムサーバ300が、秘密鍵を有効期限に応じて一定期間固定とする代わりに、アグリゲートごとにトークンを発行する(b1)。そして、アグリゲートプログラム200は、アグリゲート結果hに対して署名xだけでなく、トークンをキーとしたハッシュ値を求めて署名xに追加する(b2)そして、アグリゲートプログラム200は、アグリゲート結果hとハッシュ値を追加した署名xとを証明書作成プログラム100Aに送信する。証明書作成プログラム100Aは、入力した署名付きのアグリゲート結果の署名xを、公開鍵を用いて確認する。加えて、証明書作成プログラム100Aは、署名xに追加されたハッシュ値を、トークンを用いて確認する(b3)。そして、証明書作成プログラム100Aは、データの総和が正しいことを証明するゼロ知識証明書を生成する。そして、証明書作成プログラム100Aは、アグリゲート結果hとゼロ知識証明書prfをブロックチェーン500に送信する。これにより、コンソーシアムサーバ300は、アグリゲートごとにトークンを発行することで、アグリゲートごとに異なる秘密鍵を保有するアグリゲートプログラム200を配信するのと同じセキュリティレベルで秘密鍵の漏洩リスクを軽減できる。 Method b shown in FIG. 4 is a method for reducing the burden of distributing the aggregate program 200 having a different secret key for each aggregate (total sum). Instead of distributing the aggregate program 200 for each aggregate, is a method to issue The consortium server 300 issues a token for each aggregate instead of fixing the private key for a certain period according to the expiration date (b1). Then, the aggregate program 200 obtains not only the signature x for the aggregate result h, but also obtains a hash value using the token as a key and adds it to the signature x (b2). h and the signature x to which the hash value is added are sent to the certificate generation program 100A. The certificate creation program 100A confirms the input signature x of the signed aggregate result using the public key. Additionally, the certificate creation program 100A confirms the hash value added to the signature x using the token (b3). The certificate creation program 100A then creates a zero-knowledge certificate that proves that the sum of the data is correct. The certificate generation program 100A then transmits the aggregation result h and the zero-knowledge certificate prf to the blockchain 500. FIG. As a result, the consortium server 300 can reduce the risk of private key leakage at the same security level as distributing the aggregate program 200 having a different private key for each aggregate by issuing a token for each aggregate. .
 図4に示す方式cは、秘密鍵を信頼点が発行するアグリゲートプログラム200に保有させることのリスクを低減するための方式であり、アグリゲート結果を依頼者が確認して署名を付ける方式である。アグリゲートプログラム200は、入力した署名付きのデータの署名を確認し、署名を確認したデータをアグリゲート(総和)する。依頼者が、アグリゲート結果を確認して署名を付けて、アグリゲート結果の署名xを作成する(c1)。そして、アグリゲートプログラム200は、アグリゲート結果hとその署名xを証明書作成プログラム100Aに送信する。証明書作成プログラム100Aでは、依頼者が、入力した署名付きのアグリゲート結果の署名xを確認する(c2)。そして、証明書作成プログラム100Aは、署名xが正しいことを確認すると、データの総和が正しいことを証明するゼロ知識証明書を生成し、アグリゲート結果hとゼロ知識証明書prfをブロックチェーン500に送信する。これにより、証明書作成プログラム100Aでは、アグリゲート結果に対して依頼者の署名確認が可能となり、依頼者の署名確認をすることで、アグリゲートプログラム200での秘密鍵の漏洩リスクを軽減できる。 Method c shown in FIG. 4 is a method for reducing the risk of allowing the aggregate program 200 issued by the trust point to hold the private key, and is a method in which the client confirms the aggregate result and signs it. be. The aggregate program 200 verifies the signature of the input signed data and aggregates (sums) the data whose signature has been verified. The client confirms the aggregate result and puts a signature on it to create a signature x of the aggregate result (c1). The aggregate program 200 then transmits the aggregate result h and its signature x to the certificate creation program 100A. In the certificate creation program 100A, the requester confirms the signature x of the entered signed aggregate result (c2). After confirming that the signature x is correct, the certificate creation program 100A generates a zero-knowledge certificate that proves that the sum of the data is correct, and sends the aggregate result h and the zero-knowledge certificate prf to the blockchain 500. Send. As a result, the certificate creation program 100A can verify the client's signature on the aggregate result, and by verifying the client's signature, the risk of private key leakage in the aggregate program 200 can be reduced.
 図4に示す方式dは、複数の信頼点が発行する各アグリゲートプログラム200を実行し、各アグリゲートプログラム200で署名を付け、複数の署名が集まってアグリゲート結果を有効にする方式である。例えば、複数のアグリゲートプログラム200を纏めるプログラムが、各アグリゲートプログラム200の処理結果が同一であることを確認し、複数の署名を纏める(d1)。証明書作成プログラム100Aは、纏められた複数の署名xが正しいかを確認する(d2)。そして、証明書作成プログラム100Aは、複数の署名xが正しいことを確認すると、データの総和が正しいことを証明するゼロ知識証明書を生成する。そして、証明書作成プログラム100Aは、アグリゲート結果hとゼロ知識証明書prfをブロックチェーン500に送信する。これにより、証明書作成プログラム100Aが、複数のアグリゲートプログラム200の署名確認をすることで、アグリゲートプログラム200の一部に悪意があっても悪意を排除することが可能となり、リスクを低減できる。 Method d shown in FIG. 4 is a method in which each aggregate program 200 issued by a plurality of trust points is executed, a signature is attached by each aggregate program 200, and a plurality of signatures are collected to validate the aggregate result. . For example, a program that puts together a plurality of aggregate programs 200 confirms that the processing results of each aggregate program 200 are the same, and puts together a plurality of signatures (d1). The certificate creation program 100A confirms whether the combined multiple signatures x are correct (d2). After confirming that the multiple signatures x are correct, the certificate creation program 100A generates a zero-knowledge certificate that proves that the sum of the data is correct. The certificate generation program 100A then transmits the aggregation result h and the zero-knowledge certificate prf to the blockchain 500. FIG. As a result, even if some of the aggregate programs 200 are malicious, the certificate creation program 100A can verify the signatures of a plurality of aggregate programs 200, thereby eliminating malicious intent and reducing risks. .
 なお、以降のデータ格納システム9では、秘密鍵の漏洩リスクを軽減するために、方式aおよび方式bを利用する場合を説明する。 In the following data storage system 9, a case will be described in which method a and method b are used in order to reduce the risk of private key leakage.
[データ格納システムの構成]
 図5は、実施例に係るデータ格納システムの構成の一例を示す図である。図5に示すように、データ格納システム9は、小売電気事業者1のノード10、アグリゲートプログラムサービス2、コンソーシアムサーバ3、小規模発電家4のノード40およびブロックチェーンシステム5を有する。小売電気事業者1のノード10、アグリゲートプログラムサービス2、コンソーシアムサーバ3、小規模発電家4のノード40およびブロックチェーンシステム5は、ネットワーク7に接続されている。
[Configuration of data storage system]
FIG. 5 is a diagram illustrating an example of a configuration of a data storage system according to an embodiment; As shown in FIG. 5 , the data storage system 9 has a node 10 of a retail electricity supplier 1 , an aggregate program service 2 , a consortium server 3 , a node 40 of a small power generator 4 and a blockchain system 5 . A node 10 of a retail electricity supplier 1 , an aggregate program service 2 , a consortium server 3 , a node 40 of a small power generator 4 and a blockchain system 5 are connected to a network 7 .
 ネットワーク7には、ブロックチェーンシステム5の、ブロックチェーンを構成する複数のノード50の全てが接続されている。複数のノード50は、互いにP2Pで通信接続されている。複数のノード50が連携して動作することで、電力取引の台帳がブロックチェーンにより分散管理される。なお、ブロックチェーンシステム5は、図3で示したブロックチェーン500に対応する。 All of the multiple nodes 50 that make up the blockchain of the blockchain system 5 are connected to the network 7 . A plurality of nodes 50 are connected to each other for P2P communication. By operating a plurality of nodes 50 in cooperation, a ledger of electricity transactions is distributed and managed by a blockchain. Note that the blockchain system 5 corresponds to the blockchain 500 shown in FIG.
 電力取引は、例えば、小売電気事業者1および小規模発電家4の間で行われる。なお、電力取引は、厳密には、小売電気事業者1および小規模発電家4の他、電力消費者の間で行われるが、ここでは、小売電気事業者1および小規模発電家4の間で行われる場合とする。  Electricity trading is conducted, for example, between a retail electricity supplier 1 and a small-scale power generator 4. Strictly speaking, electric power trading is conducted not only between the retail electric power company 1 and the small power generator 4, but also between electric power consumers. shall be performed in
 小規模発電家4は、例えば一般家庭の発電家である。小規模発電家4のノード40は、再生可能エネルギーによって発電した電力の計測値を読み出す。 The small-scale power generator 4 is, for example, a general household power generator. The node 40 of the micro-generator 4 reads the measured power generated by renewable energy.
 アグリゲートプログラムサービス2は、アグリゲートプログラムによりアグリゲートを実行するサービスである。アグリゲートプログラムは、小売電気事業者1の要求に応じて、複数の電力量の実績データをアグリゲートする。アグリゲートプログラムは、署名付きのアグリゲート結果を生成する。署名は、公開鍵暗号を用いる。署名で用いられる秘密鍵は、後述するコンソーシアムサーバ3によって配信される。なお、アグリゲートプログラムは、図3で示したアグリゲートプログラム200に対応する。 Aggregate program service 2 is a service that executes aggregation using an aggregate program. The aggregate program aggregates performance data of multiple amounts of electric power in response to a request from the electricity retailer 1 . Aggregate programs produce signed aggregate results. The signature uses public key cryptography. A private key used for signature is distributed by the consortium server 3, which will be described later. Note that the aggregate program corresponds to the aggregate program 200 shown in FIG.
 ここでいうアグリゲートプログラムサービス2は、例えば、クラウドサービスである。アグリゲートプログラムサービス2をクラウドサービスとすることで、アグリゲートプログラムサービス2で実行するアグリゲートプログラムは、リバースエンジニアリングなどで分析されることが難しくなり、秘密鍵が抽出されず、リスクを軽減することができる。なお、アグリゲートプログラムは、アグリゲートプログラムサービス2の代わりに小売電気事業者1のノード10により実行されても良い。 The aggregate program service 2 here is, for example, a cloud service. By making the aggregate program service 2 a cloud service, it becomes difficult for the aggregate program executed by the aggregate program service 2 to be analyzed by reverse engineering or the like, and the secret key is not extracted, thereby reducing risks. can be done. Note that the aggregate program may be executed by the node 10 of the electricity retailer 1 instead of the aggregate program service 2 .
 小売電気事業者1は、ノード10を用いて、例えば小規模発電家4から再生可能エネルギーによって発電した電力の電力供給権を購入する。小規模発電家4の下で発電された発電量を個別に扱うと、大量になる。そこで、実施例では、小売電気事業者1は、ノード10を用いて、購入した、小規模発電家4の下で発電された30分単位の発電量を仮想的な発電所が発電した電力量にアグリゲートしたアグリゲート結果をブロックチェーンシステム5に格納する。例えば、小売電気事業者1は、ノード10を用いて、署名付きのアグリゲート結果を公開鍵で確認する。そして、小売電気事業者1は、ノード10を用いて、アグリゲート結果が正しいことを証明するゼロ知識証明書を生成する。そして、小売電気事業者1は、ノード10を用いて、ゼロ知識証明書およびアグリゲート結果をブロックチェーンシステム5に格納する。なお、小売電気事業者1のノード10での処理は、図3で示した証明書作成プログラム100Aに対応する。 The electricity retailer 1 uses the node 10 to purchase, for example, power supply rights for electricity generated by renewable energy from the small-scale power generator 4 . If the amount of power generated under the small power generator 4 is dealt with individually, it becomes a large amount. Therefore, in the embodiment, the electricity retailer 1 uses the node 10 to calculate the amount of electricity generated in units of 30 minutes by the small-scale power generator 4 purchased by the virtual power plant. store the aggregate result aggregated in the block chain system 5. For example, electricity retailer 1 uses node 10 to verify the signed aggregate result with a public key. The electricity retailer 1 then uses the node 10 to generate a zero-knowledge certificate that proves that the aggregate result is correct. The electricity retailer 1 then uses the node 10 to store the zero-knowledge certificate and the aggregate result in the blockchain system 5 . The processing at the node 10 of the electricity retailer 1 corresponds to the certificate creation program 100A shown in FIG.
 コンソーシアムサーバ3は、信頼できる第三者としてコンソーシアムが運用するサーバである。なお、コンソーシアムサーバ3は、図3で示したコンソーシアムサーバ300に対応するとともに、信頼点に対応する。コンソーシアムサーバ3は、小売電気事業者1の要求に応じて、公開鍵暗号の鍵ペアを生成する。そして、コンソーシアムサーバ3は、秘密鍵を保有したアグリゲートプログラムを動作させるべく、アグリゲートプログラムサービス2を起動する。また、コンソーシアムサーバ3は、アグリゲートプログラムサービス2の要求に応じて、トークンを生成する。なお、アグリゲートプログラムが、アグリゲートプログラムサービス2の代わりに小売電気事業者1のノード10により実行される場合には、秘密鍵を保有したアグリゲートプログラムを小売電気事業者1のノード10に配信すれば良い。 The consortium server 3 is a server operated by the consortium as a reliable third party. The consortium server 3 corresponds to the consortium server 300 shown in FIG. 3 and also to a trust point. The consortium server 3 generates a key pair of public key cryptography in response to a request from the electricity retailer 1 . The consortium server 3 then activates the aggregate program service 2 to operate the aggregate program holding the private key. Also, the consortium server 3 generates a token in response to a request from the aggregate program service 2 . When the aggregate program is executed by the node 10 of the electricity retailer 1 instead of the aggregate program service 2, the aggregate program holding the private key is distributed to the node 10 of the electricity retailer 1. do it.
[各装置の機能]
 図6は、各装置の機能の一例を示すブロック図である。コンソーシアムサーバ3は、鍵生成部31と、プログラム起動部32と、トークン生成部33と、トークン管理情報34とを有する。なお、コンソーシアムサーバ3は、第三者機関の一例である。
[Functions of each device]
FIG. 6 is a block diagram showing an example of functions of each device. The consortium server 3 has a key generation unit 31 , a program activation unit 32 , a token generation unit 33 and token management information 34 . Note that the consortium server 3 is an example of a third party organization.
 鍵生成部31は、小売電気事業者1からアグリゲートプログラムサービス要求に応じて、公開鍵暗号の鍵ペアを生成する。鍵ペアは、アグリゲートごとに生成される。鍵生成部31は、公開鍵を要求元の小売電気事業者1に配布する。加えて、鍵生成部31は、公開鍵をブロックチェーンシステム5に格納する。 The key generation unit 31 generates a key pair of public key cryptography in response to an aggregate program service request from the electricity retailer 1 . A key pair is generated for each aggregate. The key generator 31 distributes the public key to the electricity retailer 1 that is the source of the request. Additionally, the key generator 31 stores the public key in the blockchain system 5 .
 プログラム起動部32は、アグリゲートプログラムサービス2を起動させる。例えば、プログラム起動部32は、鍵生成部31によって生成された秘密鍵を保有したアグリゲートプログラムを動作させるべく、アグリゲートプログラムサービス2を起動する。 The program activation unit 32 activates the aggregate program service 2. For example, the program activation unit 32 activates the aggregate program service 2 in order to operate the aggregate program holding the private key generated by the key generation unit 31 .
 トークン生成部33は、アグリゲートプログラムサービス2からのトークンの要求に応じて、トークンを生成する。そして、トークン生成部33は、生成したトークンを要求元のアグリゲートプログラムサービス2へ発行する。そして、トークン生成部33は、トークンをトークン管理情報34に格納する。そして、トークン生成部33は、自身が発行したトークンに対応する小売電気事業者識別子および依頼識別子がブロックチェーンシステム5に格納されると、当該トークンをブロックチェーンシステム5に格納する。 The token generation unit 33 generates a token in response to a request for a token from the aggregate program service 2. The token generation unit 33 then issues the generated token to the aggregate program service 2 that is the source of the request. The token generation unit 33 then stores the token in the token management information 34. FIG. Then, when the electricity retailer identifier and the request identifier corresponding to the token issued by itself are stored in the blockchain system 5 , the token generation unit 33 stores the token in the blockchain system 5 .
 トークン管理情報34は、アグリゲートごとに生成されるトークンを管理する。ここで、トークン管理情報34の一例を、図7を参照して説明する。図7は、トークン管理情報の一例を示す図である。図7に示すように、トークン管理情報34は、小売電気事業者識別子、依頼識別子およびトークンを対応付けた情報である。小売電気事業者識別子は、小売電気事業者1を一意に識別する識別子である。依頼識別子は、トークンの依頼を一意に識別する識別子である。トークンは、トークン生成部33によって生成されたトークンである。 The token management information 34 manages tokens generated for each aggregate. An example of the token management information 34 will now be described with reference to FIG. FIG. 7 is a diagram showing an example of token management information. As shown in FIG. 7, the token management information 34 is information in which retail electricity supplier identifiers, request identifiers, and tokens are associated with each other. The retail electricity supplier identifier is an identifier that uniquely identifies the retail electricity supplier 1 . A request identifier is an identifier that uniquely identifies a request for a token. A token is a token generated by the token generator 33 .
 図6に戻って、アグリゲートプログラムサービス2は、データ確認部21と、総和署名部22と、総和署名発行部23とを有する。なお、アグリゲートプログラムサービス2は、第1の生成部の一例である。 Returning to FIG. 6, the aggregate program service 2 has a data verification unit 21, a sum signature unit 22, and a sum signature issuing unit 23. Note that the aggregate program service 2 is an example of a first generator.
 データ確認部21は、実績データを確認する。例えば、データ確認部21は、小売電気事業者1からのアグリゲート依頼に応じて、実績データとして署名付きのデータを入力する。データ確認部21は、入力した署名付きのデータの署名を確認する。 The data confirmation unit 21 confirms the performance data. For example, the data confirmation unit 21 inputs signed data as performance data in response to an aggregate request from the electricity retailer 1 . The data confirmation unit 21 confirms the signature of the input signed data.
 総和署名部22は、データの実績値の総和の署名を生成する。例えば、総和署名部22は、データ確認部21によって確認できたデータの実績値をアグリゲート(総和)する。総和署名部22は、アグリゲート結果に対して、アグリゲートプログラムに保有する秘密鍵を用いて署名する。加えて、総和署名部22は、この署名に対してコンソーシアムサーバ3にトークンを要求し、発行されたトークンをキーとしたハッシュ値を計算する。そして、総和署名部22は、署名にハッシュ値を追加する。 The sum signature unit 22 generates a signature of the sum of the actual data values. For example, the sum signature unit 22 aggregates (sums) the actual values of the data confirmed by the data confirmation unit 21 . The sum signature unit 22 signs the aggregate result using a private key held in the aggregate program. In addition, the sum signature unit 22 requests a token from the consortium server 3 for this signature, and calculates a hash value using the issued token as a key. Then, the sum signature unit 22 adds a hash value to the signature.
 総和署名発行部23は、総和の署名を発行する。例えば、総和署名発行部23は、アグリゲート依頼をした小売電気事業者1に対して、総和の署名およびハッシュ値を追加したアグリゲート結果を発行する。 The sum signature issuing unit 23 issues a sum signature. For example, the sum signature issuing unit 23 issues an aggregate result to which the signature of the sum and the hash value are added to the electricity retailer 1 that made the aggregation request.
 小売電気事業者1のノード10は、初期処理部11と、総和署名確認部12と、証明書生成部13と、証明書送信部14とを有する。なお、証明書生成部13は、第2の生成部の一例である。証明書送信部14は、格納部の一例である。 The node 10 of the electricity retailer 1 has an initial processing unit 11, a sum signature verification unit 12, a certificate generation unit 13, and a certificate transmission unit 14. Note that the certificate generation unit 13 is an example of a second generation unit. Certificate transmission unit 14 is an example of a storage unit.
 初期処理部11は、データ格納処理における初期処理を行う。例えば、初期処理部11は、コンソーシアムサーバ3に対して、小売電気事業者識別子を含むアグリゲートプログラムサービス要求を送信する。また、初期処理部11は、アグリゲートプログラムサービス2に対して、小売電気事象者識別子と依頼識別子とを含むアグリゲート依頼を送信する。アグリゲート依頼には、例えば、アグリゲートする対象の所定期間の実績データが含まれても良い。 The initial processing unit 11 performs initial processing in data storage processing. For example, the initial processing unit 11 transmits an aggregate program service request including an electricity retailer identifier to the consortium server 3 . The initial processing unit 11 also transmits an aggregate request including the retail electricity event person identifier and the request identifier to the aggregate program service 2 . The aggregation request may include, for example, performance data for a predetermined period to be aggregated.
 総和署名確認部12は、総和の署名を確認する。例えば、総和署名確認部12は、アグリゲートプログラムサービス2から発行されたアグリゲート結果を受け取り、アグリゲート結果に追加された総和の署名を、公開鍵を用いて確認する。 The sum signature verification unit 12 verifies the signature of the sum. For example, the sum signature verification unit 12 receives the aggregate result issued by the aggregate program service 2 and verifies the signature of the sum added to the aggregate result using the public key.
 証明書生成部13は、総和の署名が正しいことを証明する証明書を生成する。例えば、証明書生成部13は、総和署名確認部12によって確認されたアグリゲート結果の署名が正しいことを証明する証明書を、ゼロ知識証明を用いて生成する。 The certificate generation unit 13 generates a certificate that proves that the sum signature is correct. For example, the certificate generation unit 13 uses zero-knowledge proof to generate a certificate that certifies that the signature of the aggregate result verified by the sum signature verification unit 12 is correct.
 証明書送信部14は、証明書を送信する。例えば、証明書送信部14は、証明書生成部13によって生成された証明書とアグリゲート結果とアグリゲート結果に付随させたハッシュ値とを含む総データ量トランザクションレコードを生成する。そして、証明書送信部14は、生成した総データ量トランザクションレコードを小売電気事業者識別子および依頼識別子を対応付けてブロックチェーンシステム5に送信する。 The certificate transmission unit 14 transmits the certificate. For example, the certificate transmission unit 14 generates a total data volume transaction record including the certificate generated by the certificate generation unit 13, the aggregate result, and the hash value attached to the aggregate result. The certificate transmission unit 14 then transmits the generated total data volume transaction record to the blockchain system 5 in association with the retail electricity supplier identifier and the request identifier.
 ブロックチェーンシステム5を構成するノード50は、スマートコントラクト51と、ブロックチェーンプラットフォーム52とを有する。 A node 50 that configures the blockchain system 5 has a smart contract 51 and a blockchain platform 52 .
 スマートコントラクト51は、ブロックチェーンを用いた取引契約を自動で実行する。例えば、スマートコントラクト51は、小売電気事業者識別子および依頼識別子を対応付けた総データ量トランザクションレコードを受信すると、以下の処理を行う。スマートコントラクト51は、アグリゲート結果情報522に記憶された小売電気事業者識別子および依頼識別子に対応するトークンを取得する。そして、スマートコントラクト51は、取得したトークンをキーとした、アグリゲート結果の署名のキー付きハッシュ値を計算する。そして、スマートコントラクト51は、トランザクションレコードに示されるアグリゲート結果に付随されたハッシュ値と、計算されたハッシュ値とを比較する。そして、スマートコントラクト51は、比較の結果、同一であれば、総データ量トランザクションレコードのブロックチェーンプラットフォーム52への格納処理を行う。すなわち、スマートコントラクト51は、総データ量トランザクションレコードのアグリゲート結果を有効にする。 The smart contract 51 automatically executes transaction contracts using blockchain. For example, when the smart contract 51 receives a total data volume transaction record that associates the electricity retailer identifier and the request identifier, the smart contract 51 performs the following processing. The smart contract 51 acquires tokens corresponding to the electricity retailer identifier and the request identifier stored in the aggregate result information 522 . The smart contract 51 then calculates a keyed hash value of the signature of the aggregate result using the acquired token as a key. Smart contract 51 then compares the hash value attached to the aggregate result indicated in the transaction record with the calculated hash value. Then, the smart contract 51 stores the total data amount transaction record in the blockchain platform 52 if the result of the comparison is the same. That is, the smart contract 51 validates the aggregate result of the total data volume transaction record.
 ブロックチェーンプラットフォーム52は、ブロックチェーンシステム5内の他のノード50と連携し、ブロックチェーンの仕組みを用いて電力取引の台帳を管理する。例えば、ブロックチェーンプラットフォーム52は、スマートコントラクト51から受信した総データ量トランザクションレコードを含むブロックを、ブロックチェーンの新たなブロックとして追加する。ブロックチェーンプラットフォーム52は、ブロックチェーンにブロックを追加した場合、ブロックチェーンシステム5を構成する他のノード50にブロックチェーンを送信し、ブロックチェーンを分散管理する。 The blockchain platform 52 cooperates with other nodes 50 in the blockchain system 5 and uses the blockchain mechanism to manage the ledger of electricity transactions. For example, the blockchain platform 52 adds the block containing the total data volume transaction record received from the smart contract 51 as a new block of the blockchain. When a block is added to the block chain, the block chain platform 52 transmits the block chain to other nodes 50 constituting the block chain system 5 and manages the block chain in a distributed manner.
 ブロックチェーン記憶部520は、電力取引を示すブロックチェーンを記憶する。また、ブロックチェーン記憶部520は、公開鍵情報521と、アグリゲート結果情報522とを有する。 The blockchain storage unit 520 stores a blockchain indicating power transactions. Also, the blockchain storage unit 520 has public key information 521 and aggregate result information 522 .
 公開鍵情報521は、コンソーシアムサーバ3によって生成された公開鍵を管理する。ここで、公開鍵情報521の一例を、図8を参照して説明する。図8は、公開鍵情報の一例を示す図である。図8に示すように、公開鍵情報521は、小売電気事業者識別子、公開鍵および公開鍵有効期間を対応付けた情報である。小売電気事業者識別子は、小売電気事業者1を一意に識別する識別子である。公開鍵は、コンソーシアムサーバ3によってアグリゲートごとに生成される公開鍵暗号の公開鍵である。公開鍵有効期間は、公開鍵の有効期間である。コンソーシアムサーバ300が、秘密鍵の有効期間を短く設定すれば、公開鍵のペアである秘密鍵が漏洩した際に悪用されるリスクを低減できる。 The public key information 521 manages public keys generated by the consortium server 3. Here, an example of public key information 521 will be described with reference to FIG. FIG. 8 is a diagram showing an example of public key information. As shown in FIG. 8, the public key information 521 is information that associates an electricity retailer identifier, a public key, and a public key validity period. The retail electricity supplier identifier is an identifier that uniquely identifies the retail electricity supplier 1 . The public key is a public key of public key cryptography generated for each aggregate by the consortium server 3 . The public key validity period is the validity period of the public key. If the consortium server 300 sets the validity period of the private key to be short, it is possible to reduce the risk of being abused when the private key, which is a pair of public keys, is leaked.
 図6に戻って、アグリゲート結果情報522は、アグリゲート結果を管理する。ここで、アグリゲート結果情報522の一例を、図9を参照して説明する。図9は、アグリゲート結果情報の一例を示す図である。図9に示すように、アグリゲート結果情報522は、小売電気事業者識別子、依頼識別子、トークン、アグリゲート結果および有効識別子を対応付けた情報である。小売電気事業者識別子は、小売電気事業者1を一意に識別する識別子である。依頼識別子は、トークンの依頼を一意に識別する識別子である。トークンは、トークン生成部33によって生成されたトークンである。アグリゲート結果は、データの総和をアグリゲートした結果である。アグリゲート結果は、所定期間の実績値(電力量)の総和を示した値である。有効識別子は、アグリゲート結果が有効であるか否かを識別する識別子である。有効である場合には、一例として「○」が設定される。 Returning to FIG. 6, the aggregate result information 522 manages aggregate results. An example of the aggregate result information 522 will now be described with reference to FIG. FIG. 9 is a diagram illustrating an example of aggregate result information. As shown in FIG. 9, the aggregate result information 522 is information in which retail electricity supplier identifiers, request identifiers, tokens, aggregate results, and valid identifiers are associated with each other. The retail electricity supplier identifier is an identifier that uniquely identifies the retail electricity supplier 1 . A request identifier is an identifier that uniquely identifies a request for a token. A token is a token generated by the token generator 33 . The aggregate result is the result of aggregating the sum of the data. The aggregate result is a value indicating the total sum of actual values (power consumption) for a predetermined period. A valid identifier is an identifier that identifies whether the aggregate result is valid. If it is valid, "○" is set as an example.
[データ格納処理のシーケンス]
 図10は、実施例に係るデータ格納処理のシーケンスの一例を示す図である。なお、図10では、アグリゲートする対象の実績データの所定期間は30分であるとして説明する。図10に示すように、小売電気事業者1のノード10は、コンソーシアムサーバ3に対して、アグリゲートプログラムサービスを要求する(ステップS11)。
[Sequence of data storage processing]
FIG. 10 is a diagram illustrating an example of the sequence of data storage processing according to the embodiment. It should be noted that FIG. 10 is described assuming that the predetermined period of performance data to be aggregated is 30 minutes. As shown in FIG. 10, the node 10 of the electricity retailer 1 requests the aggregate program service from the consortium server 3 (step S11).
 コンソーシアムサーバ3では、小売電気事業者1のノード10から要求を受け取ると、公開鍵暗号の鍵ペアを生成する(ステップS12)。そして、コンソーシアムサーバ3は、生成した公開鍵を小売電気事業者1のノード10に配布するとともに、ブロックチェーンシステム5(BC)に格納する(ステップS13)。コンソーシアムサーバ3は、公開鍵を公開しても問題がないため、ここでは、要求元の小売電気事業者1に対しても公開鍵を配布する。そして、コンソーシアムサーバ3は、秘密鍵を保有したアグリゲートプログラムサービス2を起動する(ステップS15)。 Upon receiving the request from the node 10 of the electricity retailer 1, the consortium server 3 generates a key pair of public key cryptography (step S12). The consortium server 3 then distributes the generated public key to the node 10 of the electricity retailer 1 and stores it in the blockchain system 5 (BC) (step S13). Since there is no problem even if the public key is made public, the consortium server 3 also distributes the public key to the electricity retailer 1 that is the source of the request. The consortium server 3 then activates the aggregate program service 2 holding the private key (step S15).
 小売電気事業者1のノード10では、小規模発電家4から購入した実績値を取得する(ステップS14)。そして、アグリゲートプログラムサービス2が起動すると、ノード10は、アグリゲートする対象の30分単位の実績データを生成する(ステップS16)。そして、ノード10は、アグリゲートプログラムサービス2を利用するために、アグリゲート依頼を行う(ステップS17、S18)。アグリゲート依頼時には、ノード10は、実績データとしての実績値と合わせて小売電気事象者識別子および依頼識別子をアグリゲートプログラムサービス2に渡す。 The node 10 of the electricity retailer 1 acquires the actual value purchased from the small-scale power generator 4 (step S14). Then, when the aggregate program service 2 is activated, the node 10 generates performance data to be aggregated in units of 30 minutes (step S16). Then, the node 10 makes an aggregate request to use the aggregate program service 2 (steps S17 and S18). At the time of an aggregate request, the node 10 passes the retail electricity event person identifier and the request identifier to the aggregate program service 2 together with the performance value as the performance data.
 アグリゲートプログラムサービス2は、コンソーシアムサーバ3に対して、トークンを要求する(ステップS19)。この時、アグリゲートプログラムサービス2は、小売電気事象者識別子および依頼識別子もコンソーシアムサーバ3に渡す。 The aggregate program service 2 requests a token from the consortium server 3 (step S19). At this time, the Aggregate Program Service 2 also passes the Retail Electricity Party Identifier and Order Identifier to the Consortium Server 3 .
 トークンを要求されたコンソーシアムサーバ3は、小売電気事象者識別子および依頼識別子を対応付けたトークンを生成する(ステップS20)。そして、コンソーシアムサーバ3は、小売電気事象者識別子および依頼識別子を対応付けたトークンをトークン管理情報34で管理する。そして、コンソーシアムサーバ3は、要求元のアグリゲートプログラムサービス2へ生成したトークンを発行する(ステップS21)。 The consortium server 3 that has received the token request generates a token that associates the retail electricity event person identifier and the request identifier (step S20). The consortium server 3 manages the token associated with the retail electricity event person identifier and the request identifier in the token management information 34 . The consortium server 3 then issues the generated token to the requesting aggregate program service 2 (step S21).
 アグリゲートプログラムサービス2は、所定期間の実績値をアグリゲートし、保有する秘密鍵を用いてアグリゲート結果を署名する(ステップS22)。加えて、アグリゲートプログラムサービス2は、発行されたトークンをキーとしたハッシュ値を計算し、ハッシュ値を署名に追加する。そして、アグリゲートプログラムサービス2は、ハッシュ値を追加した署名付きのアグリゲート結果を小売電気事業者1のノード10に対して発行する(ステップS23)。 The aggregate program service 2 aggregates the performance values for a predetermined period and signs the aggregate result using the private key it possesses (step S22). In addition, the aggregate program service 2 calculates a hash value using the issued token as a key and adds the hash value to the signature. Then, the aggregate program service 2 issues the signed aggregate result to which the hash value is added to the node 10 of the electricity retailer 1 (step S23).
 署名付きのアグリゲート結果を受け取った小売電気事業者1のノード10は、アグリゲート結果の署名を、公開鍵を用いて確認する(ステップS24)。そして、ノード10は、確認されたアグリゲート結果の署名が正しいことを証明する証明書を、ゼロ知識署証明を用いて生成する(ステップS25)。そして、ノード10は、証明書とアグリゲート結果とアグリゲート結果に付随させたハッシュ値とをブロックチェーンシステム5に格納する(ステップS26)。 The node 10 of the electricity retailer 1 that has received the signed aggregate result verifies the signature of the aggregate result using the public key (step S24). Then, the node 10 generates a certificate proving that the signature of the verified aggregate result is correct using zero-knowledge signature proof (step S25). Then, the node 10 stores the certificate, the aggregate result, and the hash value associated with the aggregate result in the blockchain system 5 (step S26).
 ブロックチェーンシステム5は、アグリゲート結果を検証する(ステップS27)。そして、ブロックチェーンシステム5は、検証が正当であれば、アグリゲート結果を有効にする(ステップS28)。例えば、ブロックチェーンシステム5は、トークンをキーとした、アグリゲート結果の署名のキー付きハッシュ値を計算する。ブロックチェーンシステム5は、アグリゲート結果に付随されたハッシュ値と、計算されたハッシュ値とを比較する。そして、スマートコントラクト51は、比較の結果、同一であれば、アグリゲート結果を有効にする。 The blockchain system 5 verifies the aggregate result (step S27). Then, if the verification is valid, the blockchain system 5 validates the aggregate result (step S28). For example, the blockchain system 5 calculates a keyed hash value of the signature of the aggregate result using the token as a key. The blockchain system 5 compares the hash value attached to the aggregate result and the calculated hash value. Then, the smart contract 51 validates the aggregate result if the result of the comparison is the same.
[実施例の効果]
 上記実施例によれば、アグリゲートプログラムサービス2は、複数の取引データを受け付けると、複数の取引データそれぞれに付与された署名を検証するとともに、複数の取引データのうち、基準を満たす検証結果が得られた取引データに対応する取引量の総和データと、総和データの署名情報とをアグリゲートプログラムにより生成する。小売電気事業者1のノード10は、生成された総和データおよび署名情報に基づき、署名情報が総和データの署名に対応することを、総和データの内訳を示す複数の取引データを示すことなく証明するゼロ知識証明の証明情報をアグリゲートプログラムとは異なる証明書作成プログラムにより生成する。そして、ノード10は、取引データの取引履歴が格納されたブロックチェーンシステム5に、総和データおよび証明情報を格納する。かかる構成によれば、データ格納システム9は、署名とゼロ知識証明とを用いることで、ゼロ知識証明の証明書生成のための計算コストを低減できる。
[Effect of Example]
According to the above-described embodiment, when receiving a plurality of transaction data, the aggregate program service 2 verifies the signature attached to each of the plurality of transaction data, and if the verification result satisfying the criteria among the plurality of transaction data is An aggregation program generates sum data of transaction volumes corresponding to the obtained transaction data and signature information of the sum data. The node 10 of the electricity retailer 1 certifies that the signature information corresponds to the signature of the total data based on the generated total data and signature information without showing multiple transaction data showing the breakdown of the total data. Proof information for zero-knowledge proof is generated by a certificate creation program different from the aggregate program. Then, the node 10 stores the total sum data and proof information in the blockchain system 5 in which the transaction history of the transaction data is stored. According to such a configuration, the data storage system 9 can reduce the calculation cost for generating the certificate of zero-knowledge proof by using the signature and the zero-knowledge proof.
 また、上記実施例によれば、データ格納システム9は、コンソーシアムサーバ3を有する。アグリゲートプログラムサービス2は、コンソーシアムサーバ3から配布される、総和データごとに異なる秘密鍵が含まれるアグリゲートプログラムにより、秘密鍵を用いて総和データの署名情報を生成する。小売電気事業者1のノード10は、秘密鍵のペアである公開鍵を用いて、総和データの署名情報の正当性を検証し、署名情報が総和データの署名に対応することを証明するゼロ知識証明の証明情報を証明書作成プログラムにより生成する。かかる構成によれば、データ格納システム9は、アグリゲートごとに異なる秘密鍵を保有するアグリゲートプログラムにより、秘密鍵の使いまわしによる漏洩リスクを軽減できる。 Also, according to the above embodiment, the data storage system 9 has the consortium server 3 . Aggregate program service 2 generates signature information for total data using an aggregate program distributed from consortium server 3 and containing a different secret key for each total data using a secret key. The node 10 of the electricity retailer 1 verifies the validity of the signature information of the sum data using the public key, which is a pair of private keys, and proves that the signature information corresponds to the signature of the sum data. Generating certificate credentials with a certificate creation program. According to such a configuration, the data storage system 9 can reduce the risk of leakage due to reuse of the secret key by means of the aggregate program holding a different secret key for each aggregate.
 また、上記実施例によれば、アグリゲートプログラムサービス2は、さらに、秘密鍵を用いて総和データの署名情報を生成することに加えて、コンソーシアムサーバ3から配布される、総和データごとに異なるトークンをキーとしたハッシュ値を生成し、総和データの署名情報にハッシュ値を追加する。かかる構成によれば、データ格納システム9は、アグリゲートごとにトークンを用いることで、さらに、秘密鍵の漏洩リスクを軽減できる。 Further, according to the above embodiment, the aggregate program service 2 further generates the signature information of the sum data using the private key, and furthermore, the token distributed by the consortium server 3 is different for each sum data. is used as a key, and the hash value is added to the signature information of the total data. According to such a configuration, the data storage system 9 can further reduce the risk of private key leakage by using a token for each aggregate.
 また、上記実施例によれば、アグリゲートプログラムサービス2は、さらに、アグリゲートプログラムを実行する依頼者が総和データを確認し、確認したことを示す署名情報を総和データの署名情報に追加する。小売電気事業者1のノード10は、さらに、証明書作成プログラムを実行する依頼者が追加した署名情報を確認する。かかる構成によれば、データ格納システム9は、依頼者の署名確認をすることで、アグリゲートプログラムでの秘密鍵の漏洩リスクを軽減できる。 Further, according to the above embodiment, the aggregate program service 2 further confirms the total data by the requester who executes the aggregate program, and adds signature information indicating confirmation to the signature information of the total data. The node 10 of the electricity retailer 1 further confirms the signature information added by the client executing the certificate creation program. According to such a configuration, the data storage system 9 can reduce the risk of leakage of the private key in the aggregate program by confirming the signature of the client.
 また、上記実施例によれば、アグリゲートプログラムサービス2は、複数のコンソーシアムサーバ3から配布された複数のアグリゲートプログラムにより、それぞれ総和データの署名情報を生成する。小売電気事業者1のノード10は、それぞれの総和データの署名情報の正当性を検証し、全ての検証が正当である場合に証明情報を生成する。かかる構成によれば、データ格納システム9は、複数のアグリゲートプログラムの署名確認をすることで、アグリゲートプログラムの一部に悪意があっても悪意を排除することが可能となり、リスクを低減できる。 In addition, according to the above embodiment, the aggregate program service 2 generates signature information of total sum data by using a plurality of aggregate programs distributed from a plurality of consortium servers 3, respectively. The node 10 of the electricity retailer 1 verifies the validity of the signature information of each total sum data, and generates proof information when all the verifications are valid. According to such a configuration, the data storage system 9 can eliminate malicious intent even if part of the aggregate program is malicious by verifying the signatures of a plurality of aggregate programs, thereby reducing risks. .
[その他]
 なお、上記実施例に係る小売電気事業者1のノード10は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した初期処理部11、総和署名確認部12、証明書生成部13および証明書送信部14などの各機能を搭載することによって実現することができる。
[others]
Note that the node 10 of the electricity retailer 1 according to the above-described embodiment includes the above-described initial processing unit 11, sum signature verification unit 12, certificate generation unit 13 and It can be realized by installing each function such as the certificate transmission unit 14 .
 また、上記実施例では、図示した小売電気事業者1のノード10の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ノード10の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、初期処理部11を、アグリゲートプログラムサービス要求を送信する送信部と、アグリゲート依頼を送信する送信部などに分散しても良い。また、証明書生成部13と証明書送信部14とを1つの部として統合しても良い。 Also, in the above embodiment, each component of the illustrated node 10 of the electricity retailer 1 does not necessarily need to be physically configured as illustrated. In other words, the specific aspects of the distribution and integration of the nodes 10 are not limited to those illustrated, and all or part of them may be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions. Can be integrated and configured. For example, the initial processing unit 11 may be divided into a transmitting unit that transmits an aggregate program service request and a transmitting unit that transmits an aggregate request. Also, the certificate generation unit 13 and the certificate transmission unit 14 may be integrated as one unit.
 また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図6に示した小売電気事業者1のノード10と同様の機能を実現するデータ格納プログラムを実行するコンピュータの一例を説明する。図11は、データ格納プログラムを実行するコンピュータの一例を示す図である。なお、小売電気事業者1のノード10は、アグリゲートプログラムサービス2を含む場合であっても良い。かかる場合には、データ格納プログラムには、証明書作成プログラムのほか、アグリゲートプログラムが含まれる。 Also, the various processes described in the above embodiments can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. Therefore, an example of a computer that executes a data storage program that implements the same functions as the node 10 of the electricity retailer 1 shown in FIG. 6 will be described below. FIG. 11 is a diagram of an example of a computer that executes a data storage program. Note that the node 10 of the electricity retailer 1 may include the aggregate program service 2 . In such a case, the data storage program includes the certificate creation program as well as the aggregate program.
 図11に示すように、コンピュータ700は、各種演算処理を実行するCPU703と、ユーザからのデータの入力を受け付ける入力装置715と、表示装置709とを有する。また、コンピュータ700は、記憶媒体からプログラムなどを読取るドライブ装置713と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信I/F(Interface)717とを有する。また、コンピュータ700は、各種情報を一時記憶するメモリ701と、HDD(Hard Disk Drive)705を有する。そして、メモリ701、CPU703、HDD705、表示装置709、ドライブ装置713、入力装置715、通信I/F717は、バス719で接続されている。 As shown in FIG. 11, the computer 700 has a CPU 703 that executes various arithmetic processes, an input device 715 that receives data input from the user, and a display device 709 . The computer 700 also has a drive device 713 that reads programs and the like from a storage medium, and a communication I/F (Interface) 717 that exchanges data with other computers via a network. The computer 700 also has a memory 701 that temporarily stores various information and a HDD (Hard Disk Drive) 705 . The memory 701 , CPU 703 , HDD 705 , display device 709 , drive device 713 , input device 715 and communication I/F 717 are connected via a bus 719 .
 ドライブ装置713は、例えばリムーバブルディスク711用の装置である。HDD705は、データ格納プログラム705aおよびデータ格納関連情報705bを記憶する。通信I/F717は、ネットワークと装置内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。通信I/F717には、例えば、モデムやLANアダプタなどを採用することができる。 The drive device 713 is a device for the removable disk 711, for example. The HDD 705 stores a data storage program 705a and data storage related information 705b. A communication I/F 717 serves as an interface between the network and the inside of the apparatus, and controls input/output of data from other computers. For the communication I/F 717, for example, a modem, a LAN adapter, or the like can be adopted.
 表示装置709は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。表示装置709は、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。 The display device 709 is a display device that displays data such as cursors, icons, tool boxes, documents, images, and functional information. The display device 709 can employ, for example, a liquid crystal display or an organic EL (Electroluminescence) display.
 CPU703は、データ格納プログラム205aを読み出して、メモリ701に展開し、プロセスとして実行する。かかるプロセスはノード10の各機能部に対応する。データ格納関連情報705bは、データ格納プログラム705aの実行に用いられる情報などに対応する。そして、例えばリムーバブルディスク711が、データ格納プログラム705aなどの各情報を記憶する。 The CPU 703 reads the data storage program 205a, develops it in the memory 701, and executes it as a process. Such a process corresponds to each functional part of node 10 . The data storage related information 705b corresponds to information used for executing the data storage program 705a. A removable disk 711, for example, stores information such as a data storage program 705a.
 なお、データ格納プログラム705aについては、必ずしも最初からHDD705に記憶させておかなくても良い。例えば、コンピュータ700に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ700がこれらからデータ格納プログラム705aを読み出して実行するようにしても良い。 Note that the data storage program 705a does not necessarily have to be stored in the HDD 705 from the beginning. For example, the program is stored in a “portable physical medium” such as a flexible disk (FD), CD-ROM, DVD disk, magneto-optical disk, IC card, etc. inserted into the computer 700 . Then, the computer 700 may read and execute the data storage program 705a from these.
 1 小売電気事業者
 2 アグリゲートプログラムサービス
 3 コンソーシアムサーバ
 4 小規模発電家
 5 ブロックチェーンシステム
 7 ネットワーク
 10、40、50 ノード
 11 初期処理部
 12 総和署名確認部
 13 証明書生成部
 14 証明書送信部
 21 データ確認部
 22 総和署名部
 23 総和署名発行部
 31 鍵生成部
 32 プログラム起動部
 33 トークン生成部
 34 トークン管理情報
 51 スマートコントラクト
 52 ブロックチェーンプラットフォーム
 520 ブロックチェーン記憶部
 521 公開鍵情報
 522 アグリゲート結果情報
 
1 Electric retailer 2 Aggregate program service 3 Consortium server 4 Small power generator 5 Block chain system 7 Network 10, 40, 50 Node 11 Initial processing unit 12 Sum signature verification unit 13 Certificate generation unit 14 Certificate transmission unit 21 Data verification unit 22 Sum signature unit 23 Sum signature issuing unit 31 Key generation unit 32 Program activation unit 33 Token generation unit 34 Token management information 51 Smart contract 52 Blockchain platform 520 Blockchain storage unit 521 Public key information 522 Aggregate result information

Claims (8)

  1.  複数の取引データを受け付けると、前記複数の取引データそれぞれに付与された署名を検証するとともに、前記複数の取引データのうち、基準を満たす検証結果が得られた取引データに対応する取引量の総和データと、前記総和データの署名情報とを第1のプログラムにより生成する第1の生成部と、
     前記第1の生成部によって生成された前記総和データおよび前記署名情報に基づき、前記署名情報が前記総和データの署名に対応することを、前記総和データの内訳を示す複数の取引データを示すことなく証明するゼロ知識証明の証明情報を前記第1のプログラムとは異なる第2のプログラムにより生成する第2の生成部と、
     前記取引データの取引履歴が格納されたブロックチェーンに、前記総和データおよび前記証明情報を格納する格納部と、
     を有することを特徴とする情報処理システム。
    When a plurality of transaction data are received, the signature attached to each of the plurality of transaction data is verified, and the total sum of the transaction volumes corresponding to the transaction data for which verification results satisfying the criteria are obtained among the plurality of transaction data. a first generation unit that generates data and signature information of the sum data using a first program;
    Based on the sum data and the signature information generated by the first generating unit, the signature information corresponds to the signature of the sum data without indicating a plurality of transaction data indicating the breakdown of the sum data. a second generation unit that generates proof information of a zero-knowledge proof to be proved by a second program different from the first program;
    a storage unit that stores the sum data and the proof information in a block chain that stores the transaction history of the transaction data;
    An information processing system comprising:
  2.  さらに、第三者機関を有し、
     前記第1の生成部は、前記第三者機関から配布される、前記総和データごとに異なる秘密鍵が含まれる前記第1のプログラムにより、前記秘密鍵を用いて前記総和データの署名情報を生成し、
     前記第2の生成部は、前記秘密鍵のペアである公開鍵を用いて、前記総和データの署名情報の正当性を検証し、前記署名情報が前記総和データの署名に対応することを証明するゼロ知識証明の証明情報を前記第2のプログラムにより生成する
     ことを特徴とする請求項1に記載の情報処理システム。
    In addition, we have a third party organization,
    The first generation unit generates signature information of the sum data using the secret key by the first program distributed from the third party and containing a secret key different for each sum data. death,
    The second generator verifies the validity of the signature information of the sum data using the public key that is the pair of the private keys, and proves that the signature information corresponds to the signature of the sum data. 2. The information processing system according to claim 1, wherein proof information for zero-knowledge proof is generated by said second program.
  3.  前記第1の生成部は、
     さらに、前記秘密鍵を用いて前記総和データの署名情報を生成することに加えて、前記第三者機関から配布される、前記総和データごとに異なるトークンをキーとしたハッシュ値を生成し、前記総和データの署名情報に前記ハッシュ値を追加する、
     ことを特徴とする請求項2に記載の情報処理システム。
    The first generator,
    Further, in addition to generating signature information of the sum data using the private key, generating a hash value using a different token for each sum data distributed from the third party as a key, adding the hash value to the signature information of the sum data;
    3. The information processing system according to claim 2, characterized by:
  4.  前記第1の生成部は、さらに、前記第1のプログラムを実行する依頼者が前記総和データを確認し、確認したことを示す署名情報を前記総和データの署名情報に追加し、
     前記第2の生成部は、さらに、前記第2のプログラムを実行する依頼者が追加した署名情報を確認する
     ことを特徴とする請求項2または請求項3に記載の情報処理システム。
    The first generating unit further confirms the sum data by a requester who executes the first program, and adds signature information indicating that the sum data has been confirmed to the signature information of the sum data,
    4. The information processing system according to claim 2, wherein said second generation unit further confirms signature information added by a client who executes said second program.
  5.  前記第1の生成部は、複数の第三者機関から配布された複数の前記第1のプログラムにより、それぞれ前記総和データの署名情報を生成し、
     前記第2の生成部は、それぞれの前記総和データの署名情報の正当性を検証し、全ての検証が正当である場合に前記証明情報を生成する
     ことを特徴とする請求項2に記載の情報処理システム。
    The first generation unit generates signature information of the sum data by a plurality of the first programs distributed by a plurality of third parties,
    3. The information according to claim 2, wherein the second generation unit verifies the validity of the signature information of each of the total sum data, and generates the proof information when all of the verifications are valid. processing system.
  6.  複数の取引データを受け付けると、前記複数の取引データそれぞれに付与された署名を検証するとともに、前記複数の取引データのうち、基準を満たす検証結果が得られた取引データに対応する取引量の総和データと、前記総和データの署名情報とを第1のプログラムにより生成する第1の生成部と、
     前記第1の生成部によって生成された前記総和データおよび前記署名情報に基づき、前記署名情報が前記総和データの署名に対応することを、前記総和データの内訳を示す複数の取引データを示すことなく証明するゼロ知識証明の証明情報を前記第1のプログラムとは異なる第2のプログラムにより生成する第2の生成部と、
     前記取引データの取引履歴が格納されたブロックチェーンに、前記総和データおよび前記証明情報を格納する格納部と、
     を有することを特徴とする情報処理装置。
    When a plurality of transaction data are received, the signature attached to each of the plurality of transaction data is verified, and the total sum of the transaction volumes corresponding to the transaction data for which verification results satisfying the criteria are obtained among the plurality of transaction data. a first generation unit that generates data and signature information of the sum data using a first program;
    Based on the sum data and the signature information generated by the first generating unit, the signature information corresponds to the signature of the sum data without indicating a plurality of transaction data indicating the breakdown of the sum data. a second generation unit that generates proof information of a zero-knowledge proof to be proved by a second program different from the first program;
    a storage unit that stores the sum data and the proof information in a block chain that stores the transaction history of the transaction data;
    An information processing device comprising:
  7.  複数の取引データを受け付けると、前記複数の取引データそれぞれに付与された署名を検証するとともに、前記複数の取引データのうち、基準を満たす検証結果が得られた取引データに対応する取引量の総和データと、前記総和データの署名情報とを第1のプログラムにより生成し、
     前記生成した前記総和データおよび前記署名情報に基づき、前記署名情報が前記総和データの署名に対応することを、前記総和データの内訳を示す複数の取引データを示すことなく証明するゼロ知識証明の証明情報を前記第1のプログラムとは異なる第2のプログラムにより生成する第2の生成部と、
     前記取引データの取引履歴が格納されたブロックチェーンに、前記総和データおよび前記証明情報を格納する
     処理をコンピュータに実行させる情報処理プログラム。
    When a plurality of transaction data are received, the signature attached to each of the plurality of transaction data is verified, and the total sum of the transaction volumes corresponding to the transaction data for which verification results satisfying the criteria are obtained among the plurality of transaction data. generating data and signature information of the sum data by a first program;
    Proof of zero-knowledge proof for proving that the signature information corresponds to the signature of the sum data based on the generated sum data and the signature information without showing a plurality of transaction data showing the breakdown of the sum data. a second generation unit that generates information by a second program different from the first program;
    An information processing program that causes a computer to execute a process of storing the sum total data and the proof information in a block chain that stores the transaction history of the transaction data.
  8.  複数の取引データを受け付けると、前記複数の取引データそれぞれに付与された署名を検証するとともに、前記複数の取引データのうち、基準を満たす検証結果が得られた取引データに対応する取引量の総和データと、前記総和データの署名情報とを第1のプログラムにより生成し、
     前記生成した前記総和データおよび前記署名情報に基づき、前記署名情報が前記総和データの署名に対応することを、前記総和データの内訳を示す複数の取引データを示すことなく証明するゼロ知識証明の証明情報を前記第1のプログラムとは異なる第2のプログラムにより生成し、
     前記取引データの取引履歴が格納されたブロックチェーンに、前記総和データおよび前記証明情報を格納する
     処理をコンピュータが実行することを特徴とする情報処理方法。
    When a plurality of transaction data are received, the signature attached to each of the plurality of transaction data is verified, and the total sum of the transaction volumes corresponding to the transaction data for which verification results satisfying the criteria are obtained among the plurality of transaction data. generating data and signature information of the sum data by a first program;
    Proof of zero-knowledge proof for proving that the signature information corresponds to the signature of the sum data based on the generated sum data and the signature information without showing a plurality of transaction data showing the breakdown of the sum data. generating information by a second program different from the first program;
    An information processing method, wherein a computer executes a process of storing the sum total data and the proof information in a block chain storing a transaction history of the transaction data.
PCT/JP2021/020363 2021-05-28 2021-05-28 Information processing system, information processing device, information processing program, and information processing method WO2022249439A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/020363 WO2022249439A1 (en) 2021-05-28 2021-05-28 Information processing system, information processing device, information processing program, and information processing method
JP2023523899A JPWO2022249439A1 (en) 2021-05-28 2021-05-28

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/020363 WO2022249439A1 (en) 2021-05-28 2021-05-28 Information processing system, information processing device, information processing program, and information processing method

Publications (1)

Publication Number Publication Date
WO2022249439A1 true WO2022249439A1 (en) 2022-12-01

Family

ID=84228506

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/020363 WO2022249439A1 (en) 2021-05-28 2021-05-28 Information processing system, information processing device, information processing program, and information processing method

Country Status (2)

Country Link
JP (1) JPWO2022249439A1 (en)
WO (1) WO2022249439A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021001991A (en) * 2019-06-24 2021-01-07 株式会社日立製作所 Anonymous data management system and anonymous data management method
JP2021064891A (en) * 2019-10-16 2021-04-22 株式会社日立製作所 Consortium block chain system, computer, and transaction approval method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021001991A (en) * 2019-06-24 2021-01-07 株式会社日立製作所 Anonymous data management system and anonymous data management method
JP2021064891A (en) * 2019-10-16 2021-04-22 株式会社日立製作所 Consortium block chain system, computer, and transaction approval method

Also Published As

Publication number Publication date
JPWO2022249439A1 (en) 2022-12-01

Similar Documents

Publication Publication Date Title
CN108833081B (en) Block chain-based equipment networking authentication method
US11842317B2 (en) Blockchain-based authentication and authorization
JP7292365B2 (en) Cryptographic methods and systems for secure extraction of data from blockchains
CN108781161B (en) Method for controlling and distributing blockchain implementation of digital content
Lu et al. Zebralancer: Private and anonymous crowdsourcing system atop open blockchain
TWI694350B (en) Information supervision method and device based on blockchain
CN110929288B (en) Method for generating public key certificate, certificate authority and medium
CN110851496B (en) Method, apparatus, accounting node and medium for querying transaction information in blockchain network
CN109829326B (en) Cross-domain authentication and fair audit de-duplication cloud storage system based on block chain
US9547769B2 (en) Data protection hub
CN108418783A (en) A kind of protection method of block chain intelligence contract privacy, medium
CN110223062A (en) Distributed power transaction system and method based on block chain
TW201816638A (en) Method and system for querying data through verification of identity and authorization
CN111049806B (en) Joint authority control method and device, electronic equipment and storage medium
JP7163177B2 (en) Power trading system
CN114900290A (en) Data transaction model and privacy protection method based on block chain
Vakilinia et al. An incentive-compatible mechanism for decentralized storage network
CN115705601A (en) Data processing method and device, computer equipment and storage medium
Mohammadzadeh et al. Invoice factoring registration based on a public blockchain
WO2022249439A1 (en) Information processing system, information processing device, information processing program, and information processing method
Zhang et al. FutureText: A blockchain-based contract signing prototype with security and convenience
KR102494873B1 (en) Transaction execution device to implement a virtual machine based on a zero-knowledge proof circuit for general operation verification
CN113886884A (en) Demand side response user identity authentication management method
KR20220089291A (en) RE100 energy transaction system and method using blockchain
CN112598411A (en) Retrievable privacy authorization transfer method, apparatus and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21943084

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023523899

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE