Control method, device, and program

By error-correcting and encrypting transaction data in blockchain systems, nodes can verify and generate blocks only if the data matches the target, effectively preventing malicious tampering and ensuring data integrity.

WO2026069804A1PCT designated stage Publication Date: 2026-04-02PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-04-28
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

In blockchain systems, malicious miners can alter transaction data before it is stored, as all transaction data is publicly accessible, allowing them to tamper with the information.

Method used

Implementing a control method where transaction data is first error-corrected and encrypted, allowing nodes to decrypt and correct the data using a first encryption key, generating a block only if the original data matches the target data, and utilizing hash values to verify data integrity.

Benefits of technology

This method significantly reduces the likelihood of data tampering by ensuring that only correctly decrypted and corrected data generates a block, thereby deterring malicious miners and maintaining data integrity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025016165_02042026_PF_FP_ABST
    Figure JP2025016165_02042026_PF_FP_ABST
Patent Text Reader

Abstract

A control method is executed by one node among a plurality of nodes that manage a blockchain, the control method comprising: acquiring transaction data in which object data is subjected to first error correction encoding and which includes encrypted first encrypted data (S104); decrypting the first encrypted data included in the transaction data using a first encryption key to generate first decrypted data (S105); executing first error correction on the first decrypted data to generate first corrected data (S106); and, in cases where a source data portion of the first corrected data is the same as the object data, generating a block relating to the transaction data (S108).
Need to check novelty before this filing date? Find Prior Art

Description

Control Method, Device, and Program

[0001] The present disclosure relates to a control method, a device, and a program.

[0002] Conventionally, there is known a technique of transmitting a search request for requesting correct nonce search to a plurality of mining devices, and when a correct nonce is obtained from the mining device, transmitting a block including the correct nonce and data to a blockchain network.

[0003] Japanese Patent Application Laid-Open No. 2020-197822

[0004] As in the prior art, in a blockchain, in principle, all transaction data is made public. Therefore, there is a possibility that a malicious miner may receive transaction data from a certain user and alter it as the transaction data sent by himself / herself.

[0005] The present disclosure has been made in view of the above circumstances, and provides a control method and the like that can suppress a malicious miner from altering target data.

[0006] To achieve the above object, a control method according to an aspect of the present disclosure is a control method executed by one of a plurality of nodes that manage a blockchain, and obtains transaction data including first encrypted data in which target data is first error-correction encoded and encrypted, decrypts the first encrypted data included in the transaction data with a first encryption key to generate first decrypted data, executes first error correction on the first decrypted data to generate first corrected data, and when the original data portion of the first corrected data is the same as the target data, generates a block related to the transaction data.

[0007] Furthermore, an apparatus according to one aspect of the present disclosure is a node among a plurality of nodes managing a blockchain, comprising a processor and memory, wherein the processor uses the memory to acquire transaction data including first encrypted data in which target data has been first error-corrected encoded and encrypted, decrypts the first encrypted data contained in the transaction data with a first encryption key to generate first decrypted data, performs first error correction on the first decrypted data to generate first corrected data, and generates a block relating to the transaction data if the original data portion of the first corrected data is the same as the target data.

[0008] These general or specific embodiments may be implemented as a system, method, integrated circuit, computer program, or recording medium such as a computer-readable CD-ROM, or as any combination of a system, method, integrated circuit, computer program, and recording medium.

[0009] The control methods disclosed herein can prevent malicious miners from tampering with the target data.

[0010] Figure 1 is a schematic block diagram showing the configuration of the control system according to this embodiment. Figure 2 is a diagram for explaining the problems of the prior art. Figure 3 is a schematic block diagram showing the configuration of the BC node according to this embodiment. Figure 4 is a sequence diagram showing an example of the process of generating a block relating to transaction data according to this embodiment. Figure 5 is a flowchart showing an example of the block verification process according to this embodiment. Figure 6 is a sequence diagram showing an example of a part of the process of generating a block relating to transaction data according to Modification 1. Figure 7 is a sequence diagram showing another example of the process of generating a block relating to transaction data according to Modification 1. Figure 8 is a flowchart showing an example of the block verification process according to Modification 1. Figure 9 is a sequence diagram showing an example of the process of generating a block relating to transaction data according to Modification 5. Figure 10 is an explanatory diagram showing the data structure of a blockchain. Figure 11 is an explanatory diagram showing the data structure of transaction data. Figure 12 is an explanatory diagram showing transaction data relating to the execution of a smart contract. Figure 13 is an explanatory diagram showing the process relating to the execution of a smart contract.

[0011] A control method according to a first aspect of this disclosure is a control method executed by one node among a plurality of nodes managing a blockchain, the method being executed by acquiring transaction data which includes first encrypted data which has been first error-corrected encoded and encrypted with respect to the target data, decrypting the first encrypted data contained in the transaction data with a first encryption key to generate first decrypted data, performing first error correction on the first decrypted data to generate first corrected data, and if the original data portion of the first corrected data is the same as the target data, generating a block relating to the transaction data.

[0012] Since the first encrypted data is encrypted and has undergone first error correction encoding, when it is decrypted with the first encryption key, even if the first encryption key is different from the encryption key used to generate the first encrypted data, there is a high probability that the resulting data will be similar to the data that was first error corrected (i.e., data that differs by only a few bits). In other words, the first decrypted data is highly likely to be similar to the data that was first error corrected. Therefore, by performing first error correction on the first decrypted data, there is a high probability that data will be obtained in which the original data portion is the same as the target data.

[0013] Thus, a node that receives transaction data can decrypt the first encrypted data using the first encryption key, even without knowing the encryption key used to encrypt the first encrypted data, and perform the first error correction, making it highly likely that it will obtain data in which the original data portion is the same as the target data. Therefore, by receiving only one transaction data, a node has the potential to obtain data in which the original data portion is the same as the target data based on that transaction data. Furthermore, since the target data in a single transaction data is encrypted until just before the block is generated, it is possible to deter malicious miners from tampering with the target data.

[0014] A control method relating to a second aspect of this disclosure is a control method relating to a first aspect, wherein the first encrypted data is data obtained by encryption using a second encryption key represented by a random number.

[0015] Therefore, by decrypting the first encrypted data, it is possible to obtain first decrypted data in which, after error correction, first corrected data is obtained in which the target data is included in the original data portion.

[0016] A control method relating to a third aspect of this disclosure is a control method relating to a first or second aspect, wherein the block is not generated if the source data portion of the first correction data differs from the target data.

[0017] According to this, if the first decoded data or the first corrected data is tampered with before block generation, a block will not be generated. Therefore, it is possible to suppress block generation when data is tampered with.

[0018] A control method relating to a fourth aspect of the present disclosure is a control method relating to any one aspect of the first to third aspects, wherein the transaction data further includes a first hash value which is the hash value of the first encoded data that the target data has been first error-corrected and encoded, and the control method further generates a second hash value which is the hash value of the first corrected data, and if the second hash value is the same as the first hash value included in the transaction data, the control method determines that the original data portion of the first corrected data is the same as the target data.

[0019] Therefore, it is possible to determine whether the original data portion of the first correction data is the same as the target data by comparing hash values.

[0020] A control method according to a fifth aspect of this disclosure is a control method according to any one aspect of the first to fourth aspects, wherein in the plurality of nodes, the block of the node that generated the block earliest among the plurality of successful nodes that successfully generated the block is stored in the blockchain.

[0021] Therefore, when multiple nodes successfully generate blocks, it becomes easy to determine which node's block should be stored on the blockchain.

[0022] A control method according to a sixth aspect of this disclosure is a control method according to any one aspect of the first to fourth aspects, wherein, among the multiple nodes that have successfully generated the block, the block of the node with the lowest error rate in the first error correction is stored in the blockchain.

[0023] According to this, if multiple nodes successfully generate a block, the system determines which node's block to store on the blockchain based on its error rate, thus ensuring that blocks with a low probability of tampering are stored on the blockchain.

[0024] A control method relating to a seventh aspect of the present disclosure is a control method relating to any one aspect of the first to sixth aspects, wherein the transaction data further includes second encrypted data, the second encrypted data being data which is second error-corrected encoded and encrypted, the first error-corrected encoding being an encoding that can correct errors up to a first number of bits, and the second error-corrected encoding being an encoding that can correct errors up to a second number of bits which is greater than the first number of bits.

[0025] According to this, transaction data contains two types of error-corrected encoded data with different upper limits on the number of bits that can be error-corrected. This may reduce the number of nodes that fail to generate blocks because they cannot recover the original data portion even after error correction.

[0026] A control method according to the eighth aspect of this disclosure is a control method according to the seventh aspect, further comprising: if the original data portion of the first correction data is different from the target data, the second encrypted data included in the transaction data is decrypted with the first encryption key to generate second decrypted data, a second error correction is performed on the second decrypted data to generate second correction data, and if the original data portion of the second correction data is the same as the target data, a block relating to the transaction data is generated.

[0027] Therefore, even if block generation based on the first error correction fails, the difficulty of block generation based on the second error correction can be reduced, potentially reducing the number of nodes that fail to generate blocks because they cannot restore the original data portion even after error correction.

[0028] A control method according to a ninth aspect of the present disclosure is a control method according to an eighth aspect, wherein the transaction data further includes a first hash value which is the hash value of the first encoded data which has been first error-corrected encoded on the target data, and a third hash value which is the hash value of the second encoded data which has been second error-corrected encoded on the target data, and the control method further generates a second hash value which is the hash value of the first corrected data, and if the second hash value is the same as the first hash value included in the transaction data, it is determined that the original data portion of the first corrected data is the same as the target data, and a fourth hash value which is the hash value of the second corrected data, and if the third hash value is the same as the fourth hash value included in the transaction data, it is determined that the original data portion of the second corrected data is the same as the target data.

[0029] Therefore, it is possible to determine whether the original data portion of the first correction data is the same as the target data, and whether the original data portion of the second correction data is the same as the target data, by comparing the hash values.

[0030] A control method relating to the tenth aspect of this disclosure is a control method relating to the second aspect, wherein information indicating how the random numbers were generated is stored in the blockchain.

[0031] Therefore, by referring to the information stored on the blockchain that shows how the random numbers were generated, it is possible to verify whether or not the random numbers were legitimately generated.

[0032] A control method according to an eleventh aspect of the present disclosure is a control method according to any one aspect of the first to tenth aspects, wherein the first encrypted data is data obtained as a result of encryption using a public-key cryptography scheme including any of RSA (Rivest-Shamir-Adleman), elliptic curve cryptography, CRYSTALS-KYBER, Classic McElice, BIKE, and HQC, and the first encryption key is a secret key associated with the one node.

[0033] A control method according to a twelfth aspect of the present disclosure is a control method according to any one aspect of the first to tenth aspects, wherein the first encrypted data is data encrypted by XOR, and the first encryption key is a public key associated with the one node.

[0034] A control method according to a thirteenth aspect of the present disclosure is a control method according to any one aspect of the first to twelfth aspects, wherein the block includes identification information for identifying the transaction data, the first decoded data, and the first corrected data.

[0035] Therefore, by referring to the blocks stored in the blockchain, it is possible to verify at least one of the validity of the first correction data, the validity of the first error correction, and the validity of the decryption.

[0036] A control method according to a fourteenth aspect of the present disclosure is a control method according to any one aspect of the first to twelfth aspects, wherein the block includes identification information for identifying the transaction data and the first decoded data.

[0037] Therefore, the legitimacy of decryption can be verified by referring to the blocks stored in the blockchain.

[0038] A control method relating to a 15th aspect of the present disclosure is a control method relating to any one aspect of the first to 14th aspects, wherein the block relates to the transaction data and additional transaction data.

[0039] Multiple transaction data processed collectively by a single miner can be stored together in a single block.

[0040] An apparatus according to a sixteenth aspect of this disclosure is a node among a plurality of nodes managing a blockchain, comprising a processor and memory, wherein the processor uses the memory to acquire transaction data including first encrypted data in which target data has been first error-corrected encoded and encrypted, decrypts the first encrypted data contained in the transaction data with a first encryption key to generate first decrypted data, performs first error correction on the first decrypted data to generate first corrected data, and generates a block relating to the transaction data if the original data portion of the first corrected data is the same as the target data.

[0041] Since the first encrypted data is encrypted and has undergone first error correction encoding, when it is decrypted with the first encryption key, even if the first encryption key is different from the encryption key used to generate the first encrypted data, there is a high probability that the resulting data will be similar to the data that was first error corrected (i.e., data that differs by only a few bits). In other words, the first decrypted data is highly likely to be similar to the data that was first error corrected. Therefore, by performing first error correction on the first decrypted data, there is a high probability that data will be obtained in which the original data portion is the same as the target data.

[0042] Thus, a node that receives transaction data can decrypt the first encrypted data using the first encryption key, even without knowing the encryption key used to encrypt the first encrypted data, and perform the first error correction, making it highly likely that it will obtain data in which the original data portion is the same as the target data. Therefore, by receiving only one transaction data, a node has the potential to obtain data in which the original data portion is the same as the target data based on that transaction data. Furthermore, since the target data in a single transaction data is encrypted until just before the block is generated, it is possible to deter malicious miners from tampering with the target data.

[0043] A program relating to the 17th aspect of this disclosure is a program that causes a computer to execute a control method relating to any one of the first to 15 aspects.

[0044] Hereinafter, embodiments will be described with reference to the drawings. Note that all the embodiments described below are specific examples of the present disclosure. That is, the numerical values, shapes, materials, components, arrangements and connection forms of the components, steps, order of steps, etc. shown in the following embodiments are merely examples and are not intended to limit the present disclosure. In addition, among the components in the following embodiments, components not described in the independent claims indicating the most general concept are not necessarily required to achieve the problems of the present disclosure, but are described as components constituting a more preferable form.

[0045] (Embodiment) Hereinafter, the control system in the embodiment will be described with reference to the drawings.

[0046] [Configuration of Control System] FIG. 1 is a block diagram schematically showing the configuration of the control system according to the present embodiment.

[0047] The control system controls a blockchain managed by a plurality of nodes, and in order to suppress the growth of the blockchain, it deletes unnecessary transaction data from a plurality of blocks included in the blockchain in a tamper-proof manner. The control system includes a blockchain system 1 and terminals 31 to 33.

[0048] In the present embodiment, the blockchain may be denoted as BC. Also, the smart contract may be denoted as SC.

[0049] The blockchain system 1 includes BC nodes 10A, BC nodes 10B, and BC nodes 10N. The blockchain system 1 manages the blockchain. The BC nodes 10A, BC nodes 10B, and BC nodes 10N are communicably connected to each other via a network N1. The network N1 may be composed of any communication line or network, and includes, for example, the Internet, a carrier network of a mobile phone, and the like. The BC node 10A, the BC node 10B, or the BC node 10N may also be referred to as the "BC node 10".

[0050] Terminal 31 is operated by User A, one of the blockchain users. Terminal 31 is connected to at least BC node 10A in a communicative manner. Terminal 32 is operated by User B, one of the blockchain users. Terminal 32 is connected to at least BC node 10B in a communicative manner. Terminal 33 is operated by User N, one of the blockchain users. Terminal 33 is connected to at least BC node 10N in a communicative manner.

[0051] Each of terminals 31 to 33 is an information terminal equipped with a processor and memory. Each of terminals 31 to 33 may be, for example, a smartphone, a tablet, or a personal computer. Each of terminals 31 to 33 may function as one of the nodes constituting the blockchain system 1. Users A, B, and N are all different users.

[0052] Note that while Figure 1 shows an example where blockchain system 1 has three BC nodes, it is not limited to this. In other words, blockchain system 1 may have four or more BC nodes.

[0053] [Knowledge that forms the basis of this disclosure] Here, we will explain the problems that are anticipated in the prior art using Figure 2.

[0054] Figure 2 is a diagram illustrating the problems of the conventional technology.

[0055] As mentioned above, blockchain essentially makes all transaction data public. Therefore, if a malicious miner receives transaction data from a user and does so before that data is stored on the blockchain, they can tamper with it and present it as if they sent the transaction data themselves.

[0056] For example, a malicious miner, user N, can generate transaction data Tx3a by adding data contained in transaction data Tx3 received from user B to transaction data issued by user N, making it appear as if user N sent the data. If user N succeeds in mining, the transaction data Tx3 received from user B will not be included in the block, and the block will contain the tampered transaction data Tx3a.

[0057] [BC Node 10] Each of the multiple BC nodes 10 manages the blockchain. The BC nodes 10A, 10B, and 10N shown in Figure 1 are each independently operating nodes that are connected to each other via the network N1. Since BC nodes 10A, 10B, and 10N have similar configurations, they will be described as BC node 10 below.

[0058] Figure 3 is a schematic block diagram showing the configuration of the BC node 10 according to this embodiment.

[0059] The BC node 10 is, for example, a server, but it may also be a smartphone, tablet, or personal computer. In this embodiment, as shown in Figure 3, the BC node 10 includes a communication unit 11, a blockchain storage unit 12, and a processing unit 13. These functional units of the BC node 10 can be realized, for example, by a processor such as a CPU (Central Processing Unit) executing a program using memory.

[0060] <Communication Unit 11> The communication unit 11 is a wireless or wired communication interface that communicates with other BC nodes 10 and with user terminals (not shown) connected to the network N1.

[0061] In this embodiment, the communication unit 11 transmits and retrieves transaction data. The communication unit 11 also retrieves information contained in the header of a blockchain block. The transaction data may include, for example, first encrypted data in which the target data has been first error-corrected encoded and encrypted. The transaction data may further include a first hash value, which is the hash value of the first encoded data in which the target data has been first error-corrected encoded.

[0062] The first error correction coding is a process for generating a first error correction code, which is represented by a bit sequence in which a bit sequence for error correction (parity bits) is added to the original bit sequence by multiplying the bit sequence representing the target data by the generation matrix G. The first error correction coding may be, for example, Hamming coding or other error correction coding methods. The first error correction coding and encryption are processes performed by the device (another BC node 10 or terminals 31-33) that generated the transaction data including the first encrypted data. The generation of the first hash value is also a process performed by the device (another BC node 10 or terminals 31-33) that generated the transaction data including the first encrypted data.

[0063] <Blockchain Storage Unit 12> The blockchain storage unit 12 stores a blockchain with the same content as the blockchains of other BC nodes 10, etc. In other words, the blockchain storage unit 12 is a memory device that stores blockchains. The blockchain storage unit 12 is implemented using an HDD (Hard Disk Drive) or an SSD (Solid State Drive), etc.

[0064] <Processing Unit 13> The processing unit 13 can be implemented, for example, by a processor such as a CPU executing a program using memory. The processing unit 13 decrypts the first encrypted data contained in the transaction data acquired by the communication unit 11 using the first encryption key and generates the first decrypted data.

[0065] The encryption is performed using a second encryption key represented by a random number. The first encrypted data is data obtained as a result of encryption using a public-key cryptography scheme including RSA (Rivest-Shamir-Adleman) or elliptic curve cryptography. The first encryption key is a secret key associated with the BC node 10 equipped with a processing unit 13.

[0066] The processing unit 13 performs a first error correction on the decoded first decoded data to generate first corrected data. In the first error correction, the first decoded data subject to the first error correction is multiplied by a check matrix H corresponding to the generation matrix G used in the first error correction coding to detect whether or not there is an error in the first decoded data and which bit of the first decoded data has the error. If an error is detected in the first error correction, the bit in which the error was detected is corrected to obtain the correct bit sequence of the original data.

[0067] The processing unit 13 determines whether the original data portion of the first correction data is the same as the target data. Specifically, the processing unit 13 generates a second hash value, which is the hash value of the first correction data, and compares the second hash value with the first hash value included in the transaction data. If the second hash value is the same as the first hash value, the processing unit 13 determines that the original data portion of the first correction data is the same as the target data. On the other hand, if the second hash value and the first hash value are different, the processing unit 13 determines that the original data portion of the first correction data is different from the target data. The original data portion of the first correction data is the bit sequence obtained by removing the parity bit from the first correction data.

[0068] The processing unit 13 generates a block relating to the acquired transaction data if the source data portion of the first correction data is the same as the target data. The generated block includes, for example, a transaction ID that identifies the transaction data, the first decoded data, and the first correction data. The block may also include the transaction data. Furthermore, the block may include either the first decoded data or the first correction data.

[0069] Furthermore, if the original data portion of the first correction data differs from the target data, the processing unit 13 does not generate a block relating to the acquired transaction data.

[0070] [Operation] Next, we will explain the operation of the control system configured as described above.

[0071] Figure 4 is a sequence diagram showing an example of the process for generating a block of transaction data according to the embodiment.

[0072] Terminal 31 generates a random number rk to be used as a second encryption key for encryption (S101).

[0073] Terminal 31 performs first error-correction encoding on the message (target data) m and generates encoded data code(m) (S102).

[0074] Terminal 31 encrypts the encoded data code(m) and the random number rk using the random number rk as the second encryption key to generate encrypted data c. Furthermore, it hashes the encoded data code(m) to generate the first hash value h1 (S103). Encoded data code(m) is an example of the first encoded data. Encrypted data c is an example of the first encrypted data.

[0075] Terminal 31 generates transaction data including encrypted data c and a first hash value h1, and sends the transaction data to BC node 10 (miner) (S104).

[0076] When BC node 10 obtains transaction data, it decrypts the encrypted data c contained in the transaction data using its own private key sk to generate decrypted data c' (S105). Decrypted data c' is an example of first decrypted data.

[0077] The BC node 10 performs a first error correction on the decoded data c' to generate corrected data c'' (S106). The corrected data c'' is an example of the first corrected data.

[0078] The BC node 10 hashes the correction data c'' to generate a second hash value h2, and determines whether the second hash value h2 is the same as the first hash value h1 (S107). The hash function used in hashing in step S107 is the same as the hash function used in hashing in step S103.

[0079] If the second hash value h2 is the same as the first hash value h1 (Yes in S107), the BC node 10 generates a block containing a transaction ID that identifies the transaction data, the first decrypted data, and the correction data c'' (S108).

[0080] If the BC node 10 finds that the second hash value h2 and the first hash value h1 are different (No in S107), it terminates processing without generating a block.

[0081] The generated blocks are stored on the blockchain.

[0082] Figure 5 is a flowchart showing an example of the verification process of a block according to the embodiment.

[0083] The block verification process is performed by a verification device. The verification device may be, for example, a different BC node 10 from the BC node 10 that generated the block, or a different terminal from the terminals 31 to 33 that corresponds to the BC node 10 that generated the block. Alternatively, the verification device may be an information processing device (computer) different from the BC node 10 and terminals 31 to 33.

[0084] The verification device retrieves a block stored in the blockchain, hashes the correction data c'' contained in the retrieved block, and determines whether the hash value obtained by hashing is the same as the first hash value h1 (S111). The hash function used in hashing in step S111 is the same as the hash function used in hashing in steps S103 and S107. If the hash value obtained by hashing the correction data c'' is the same as the first hash value h1 (Yes in S111), the verification device executes step S112. If the hash value obtained by hashing the correction data c'' is different from the first hash value h1 (No in S111), the verification process is terminated.

[0085] The verification device performs a first error correction on the decoded data c' contained in the block and determines whether the result of the first error correction is the same as the corrected data c'' contained in the block (S112). If the result of the first error correction is the same as the corrected data c'' (Yes in S112), the verification device executes step S113. If the result of the first error correction is different from the corrected data c'' (No in S112), the verification process is terminated.

[0086] The verification device determines whether the result of encrypting the decrypted data c' with the public key pk corresponding to the BC node 10 (miner) that generated the acquired block is the same as the encrypted data c included in the transaction data (S113). If the encrypted result is the same as the encrypted data c included in the transaction data (Yes in S113), the verification device determines that the verification was successful (S114). If the encrypted result is different from the encrypted data c included in the transaction data (No in S113), the verification process is terminated.

[0087] If the result in any of steps S111 to S113 is No, the verification device may discard the block that was the subject of the verification process in steps S111 to S113. In this case, the verification device may also send information to the BC node 10 indicating that the block failed to be verified.

[0088] Furthermore, the verification device does not have to perform all of the processes in steps S111 to S113, and may perform any one of them. If only one process is performed, in step S108, the block should be generated to include at least the information necessary for the process to be performed.

[0089] [Effects, etc.] The control method according to this embodiment is a control method executed by one of the multiple BC nodes 10 that manage the blockchain. The BC node 10 acquires transaction data that includes encrypted data c (first encrypted data) in which the target data has been first error-corrected encoded and encrypted (S104). The BC node 10 decrypts the encrypted data c included in the acquired transaction data with the first encryption key to generate decrypted data c' (first decrypted data) (S105). The BC node 10 performs first error correction on the decrypted data c' to generate corrected data c'' (first corrected data) (S106). If the original data portion of the corrected data c'' is the same as the target data (Yes in S107), the BC node 10 generates a block relating to the acquired transaction data (S108).

[0090] Since encrypted data c is encrypted and has undergone first error correction encoding, when it is decrypted with the first encryption key, even if the first encryption key is different from the encryption key used to generate encrypted data c, there is a high probability that the resulting data will be similar to the data that was first error corrected (i.e., data that differs by only a few bits). In other words, the first decrypted data is likely to be similar to the data that was first error corrected. Therefore, by performing first error correction on the first decrypted data, there is a high probability that data will be obtained in which the original data portion is the same as the target data.

[0091] Thus, a node that receives transaction data has a high probability of obtaining data in which the original data portion is the same as the target data, even without knowing the encryption key used to encrypt the encrypted data c. By decrypting it with the first encryption key and performing the first error correction, it can potentially obtain data in which the original data portion is the same as the target data. Therefore, by receiving only one transaction data, a node has a chance of obtaining data in which the original data portion is the same as the target data based on that transaction data. Furthermore, in a single transaction data, the target data is encrypted until just before the block is generated, which helps to deter malicious miners from tampering with the target data.

[0092] Furthermore, in the control method according to this embodiment, the encrypted data c is data obtained by encryption using a second encryption key represented by a random number.

[0093] Therefore, by decrypting the encrypted data c, it is possible to obtain first decrypted data in which, after error correction, corrected data c'' containing the target data in the original data portion can be obtained.

[0094] Furthermore, in the control method according to this embodiment, the BC node 10 does not generate a block relating to the acquired transaction data if the original data portion of the correction data c'' is different from the target data (No in S107).

[0095] According to this, if the first decoded data or corrected data c'' is tampered with before block generation, a block will not be generated, thus preventing block generation when data is tampered with.

[0096] Furthermore, in the control method according to this embodiment, the acquired transaction data further includes a first hash value which is the hash value of the encoded data code(m) in which the target data has been first error-corrected. The BC node 10 further generates a second hash value which is the hash value of the corrected data c''. If the second hash value h2 is the same as the first hash value h1 included in the transaction data (Yes in S107), the BC node 10 determines that the original data portion of the corrected data c'' is the same as the target data.

[0097] Therefore, it is possible to determine whether the original data portion of the corrected data c'' is the same as the target data by comparing hash values.

[0098] Furthermore, in the control method according to this embodiment, a block includes identification information (Tx ID) for identifying transaction data, decrypted data c', and correction data c''. Therefore, by referring to the block stored in the blockchain, it is possible to verify at least one of the validity of the first correction data, the validity of the first error correction, and the validity of the decryption.

[0099] Furthermore, in the control method according to this embodiment, a block includes identification information (Tx ID) for identifying transaction data and decrypted data c'. Therefore, the legitimacy of decryption can be verified by referring to the block stored in the blockchain.

[0100] [Variation 1] In the above embodiment, the terminal 31 generates transaction data containing one encrypted data c (first encrypted data), but it is not limited to this, and may generate transaction data containing two encrypted data (first encrypted data c1 and second encrypted data c2).

[0101] Figure 6 is a sequence diagram showing an example of a part of the process for generating a block of transaction data related to Modified Example 1. Figure 7 is a sequence diagram showing another example of a part of the process for generating a block of transaction data related to Modified Example 1. Figure 7 shows the process that follows the sequence diagram in Figure 6.

[0102] Terminal 31 generates a random number rk to be used as a second encryption key for encryption (S121).

[0103] Terminal 31 performs first error-correction encoding on the message (target data) m and generates encoded data code1(m) (S122).

[0104] Terminal 31 encrypts the encoded data code1(m) and the random number rk using the random number rk as the second encryption key to generate the first encrypted data c1. Furthermore, it hashes the encoded data code1(m) to generate the first hash value h1 (S123).

[0105] Terminal 31 performs second error correction encoding on the message (target data) m and generates encoded data code2(m) (S124).

[0106] Terminal 31 encrypts the encoded data code2(m) and the random number rk using the random number rk as the second encryption key to generate the second encrypted data c2. Furthermore, it hashes the encoded data code2(m) to generate the third hash value h3 (S125).

[0107] Terminal 31 generates transaction data including the first encrypted data c1, the first hash value h1, the second encrypted data c2, and the third hash value h3, and sends the transaction data to BC node 10 (miner) (S126).

[0108] When BC node 10 obtains transaction data, it decrypts the first encrypted data c1 contained in the transaction data using BC node 10's own secret key sk to generate the first decrypted data c1' (S127).

[0109] The BC node 10 performs a first error correction on the first decoded data c1' to generate the first corrected data c1'' (S128).

[0110] The BC node 10 hashes the first correction data c1'' to generate a second hash value h2, and determines whether the second hash value h2 is the same as the first hash value h1 (S129). The hash function used in hashing in step S129 is the same as the hash function used in hashing in step S123.

[0111] If the second hash value h2 is the same as the first hash value h1 (Yes in S129), the BC node 10 generates a block containing a transaction ID that identifies the transaction data, ciphertext information indicating the ciphertext used to generate the second hash value h2 used in the determination in step S129 (in this case, the first encrypted data c1), the first decrypted data c1' as decrypted data c', and the first corrected data c1'' as corrected data c'' (S130).

[0112] The generated blocks are stored on the blockchain.

[0113] If the BC node 10 determines that the second hash value h2 and the first hash value h1 are different (No in S129), it waits for one hour without performing any processing, and then executes the next step S132 (S131) ​​after one hour has elapsed. In other words, the BC node 10 counts the time from the moment it determines that the second hash value h2 and the first hash value h1 are different, and when the counted time reaches one hour, it executes the next step S132. Note that in step S131, the waiting time without performing any processing is not limited to one hour; it could be 30 minutes or two hours. In other words, in step S131, it is sufficient to wait for a predetermined amount of time.

[0114] In step S131, the BC node 10 may wait until a certain number of blocks are created, instead of waiting for a predetermined time. The blocks created at this time are blocks that store other transaction data, which are different from the transaction data being processed in this flow, by performing the same processing on them as on the transaction data being processed. In other words, the next step S132 may be executed when the processing on a certain number of other transaction data, which are different from the transaction data being processed in this flow, is successful and a certain number of blocks are generated.

[0115] After waiting for one hour, BC node 10 decrypts the second encrypted data c2 contained in the transaction data using its own private key sk to generate the second decrypted data c2' (S132).

[0116] The BC node 10 performs a second error correction on the second decoded data c2' to generate the second corrected data c2'' (S133).

[0117] The BC node 10 hashes the second correction data c2'' to generate a fourth hash value h4, and determines whether the fourth hash value h4 is the same as the third hash value h3 (S134). The hash function used in hashing in step S134 is the same as the hash function used in hashing in step S125.

[0118] If the fourth hash value h4 is the same as the third hash value h3 (Yes in S134), the BC node 10 generates a block containing a transaction ID that identifies the transaction data, ciphertext information indicating the ciphertext used to generate the fourth hash value h4 used in the determination in step S134 (in this case, the second encrypted data c2), the second decrypted data c2' as decrypted data c', and the second corrected data c2'' as corrected data c'' (S135).

[0119] The generated blocks are stored on the blockchain.

[0120] Figure 8 is a flowchart showing an example of the verification process for a block related to Modification Example 1.

[0121] The verification device that performs the block verification process is the same as in the embodiment.

[0122] The verification device retrieves a block stored in the blockchain, hashes the correction data c'' contained in the retrieved block, and determines whether the hash value obtained by hashing is the same as the hash value corresponding to the ciphertext information contained in the block (S141). Specifically, if the correction data c'' contained in the block is the first correction data c1'', the verification device determines whether the hash value of the first correction data c1'' is the same as the hash value corresponding to the ciphertext information indicating the first encrypted data c1 (i.e., the first hash value h1). If the correction data c'' contained in the block is the second correction data c2'', the verification device determines whether the hash value of the second correction data c2'' is the same as the hash value corresponding to the ciphertext information indicating the second encrypted data c2 (i.e., the third hash value h3). The hash function used in hashing in step S141 is the same as the hash function used in hashing in steps S123, S125, S129 and S134.

[0123] The verification device executes step S142 if the hash value obtained by hashing the correction data c'' is the same as the corresponding hash value (Yes in S141), and terminates the verification process if the hash value obtained by hashing the correction data c'' is different from the first hash value h1 (No in S141).

[0124] The verification device performs error correction on the decoded data c' contained in the block, and determines whether the result of the error correction is the same as the corrected data c'' contained in the block (S142). Specifically, if the decoded data c' contained in the block is the first decoded data c1', the verification device performs the first error correction on the first decoded data c1' and determines whether the result of the first error correction is the same as the corrected data c'' (first corrected data c1'') contained in the block. If the decoded data c' contained in the block is the second decoded data c2', the verification device performs the second error correction on the second decoded data c2' and determines whether the result of the second error correction is the same as the corrected data c'' (second corrected data c2'') contained in the block. If the result of the error correction is the same as the corrected data c'' (Yes in S142), the verification device executes step S143, and if the result of the error correction is different from the corrected data c'' (No in S142), the verification process is terminated.

[0125] The verification device determines whether the result of encrypting the decrypted data c' contained in the block with the public key pk corresponding to the BC node 10 (miner) that generated the acquired block is the same as the encrypted data contained in the transaction data and the encrypted data corresponding to the ciphertext information contained in the block (S143). Specifically, if the decrypted data c' contained in the block is the first decrypted data c1', the verification device determines whether the result of encrypting the first decrypted data c1' with the public key pk corresponding to the BC node 10 (miner) that generated the acquired block is the same as the first encrypted data c1. If the decrypted data c' contained in the block is the second decrypted data c2', the verification device determines whether the result of encrypting the second decrypted data c2' with the public key pk corresponding to the BC node 10 (miner) that generated the acquired block is the same as the second encrypted data c2. The verification device executes step S144 if the encrypted result is the same as the encrypted data included in the transaction data (Yes in S143), and terminates the verification process if the encrypted result is different from the encrypted data c included in the transaction data (No in S143).

[0126] The verification device determines whether the encrypted data indicated by the ciphertext information contained in the block was used by the BC node 10 (miner) at an appropriate time (S144). The verification device determines whether the encrypted data was used by the BC node 10 (miner) at an appropriate time by comparing, for example, the block generation time with the time period specified by the ciphertext information contained in the block. Time period information, which associates the ciphertext information with the time period during which the use of the encrypted data is permitted, is stored in advance in the verification device, and the verification device executes the process in step S144 based on the ciphertext information contained in the block, the block generation time, and the time period information. The block generation time is assigned to the block.

[0127] The verification device determines that the encrypted data indicated by the ciphertext information contained in the block was used by the BC node 10 (miner) at an appropriate time (Yes in S144), and determines that the verification was successful (S145). If it determines that the encrypted data indicated by the ciphertext information contained in the block was used by the BC node 10 (miner) at an inappropriate time (No in S144), it terminates the verification process.

[0128] If the result in any of steps S141 to S144 is No, the verification device may discard the block that was the subject of the verification process in steps S141 to S144. In this case, the verification device may also send information to the BC node 10 indicating that the block failed to be verified.

[0129] In the control method according to Modification 1, the second encrypted data c2 is data that has been encrypted and subjected to second error correction encoding of the target data. The first error correction encoding is an encoding that can correct errors up to the upper limit of the first number of bits. The second error correction encoding is an encoding that can correct errors up to the upper limit of the second number of bits which is greater than the first number of bits. The second error correction encoding may be an error correction encoding of the same type as the first error correction encoding.

[0130] According to this, transaction data contains two types of error-corrected encoded data with different upper limits on the number of bits that can be error-corrected. This may reduce the number of nodes that fail to generate blocks because they cannot recover the original data portion even after error correction.

[0131] Furthermore, in the control method according to Modification 1, if the original data portion of the first correction data c1'' is different from the target data, the BC node 10 decrypts the second encrypted data c2 included in the transaction data with the first encryption key to generate the second decrypted data c2'. The BC node 10 performs the second error correction on the second decrypted data c2' to generate the second correction data c2''. If the original data portion of the second correction data c2'' is the same as the target data, the BC node 10 generates a block relating to the transaction data.

[0132] Therefore, even if block generation based on the first error correction fails, the difficulty of block generation based on the second error correction can be reduced, potentially reducing the number of nodes that fail to generate blocks because they cannot restore the original data portion even after error correction.

[0133] Furthermore, in the control method according to Modification 1, the transaction data further includes a first hash value h1, which is the hash value of the encoded data code1(m) (first encoded data) in which the target data has been first error-corrected and encoded, and a third hash value h3, which is the hash value of the encoded data code2(m) (second encoded data) in which the target data has been second error-corrected and encoded. The BC node 10 generates a second hash value h2, which is the hash value of the first corrected data c1''. If the second hash value h2 is the same as the first hash value h1 included in the transaction data, the BC node 10 determines that the original data portion of the first corrected data c1'' is the same as the target data. The BC node 10 generates a fourth hash value h4, which is the hash value of the second corrected data c2''. If the third hash value h3 is the same as the fourth hash value h4 included in the transaction data, the BC node 10 determines that the original data portion of the second corrected data c2'' is the same as the target data.

[0134] Therefore, it is possible to determine whether the original data portion of the first correction data c1'' is the same as the target data, and whether the original data portion of the second correction data c2'' is the same as the target data, by comparing the hash values.

[0135] [Modification 2] In the above embodiment, the determination of whether the original data portion of the first corrected data is the same as the target data is made by comparing the second hash value, which is the hash value of the first corrected data, with the first hash value, which is the hash value of the first encoded data. However, the embodiment is not limited to this. Alternatively, the BC node 10 that generated the transaction data including the first encrypted data may be asked to confirm whether the first corrected data is correctly corrected data, and based on the confirmation result obtained from the BC node 10, it may be determined whether the original data portion of the first corrected data is the same as the target data.

[0136] [Modification 3] In the above embodiment, if there are multiple successful nodes in the multiple BC nodes 10 that have successfully generated a block, the process may be carried out as follows.

[0137] For example, BC node 10 may store the block of the node that generated the block earliest among multiple successful nodes in the blockchain. Therefore, if there are multiple BC nodes 10 that have successfully generated a block, it is easy to determine which BC node 10's block should be stored in the blockchain.

[0138] Furthermore, for example, BC node 10 may store the block of the node with the lowest error rate among multiple successful nodes in the first error correction process into the blockchain. In this case, if there are multiple BC nodes 10 that have successfully generated a block, the decision of which BC node 10's generated block to store in the blockchain is made based on the error rate, thus allowing the blockchain to store a block with a low probability of tampering.

[0139] [Modification 4] In the above embodiment, when the BC node 10 generates a block relating to transaction data, it may generate a block that includes information indicating how the random number rk contained in the encrypted data c was generated. The information indicating how the random number rk was generated may be, for example, the random number seed used to generate the random number rk. Therefore, by referring to the information indicating how the random number rk was generated, which is stored in the blockchain, it is possible to verify whether or not the random number rk is a legitimately generated random number.

[0140] [Modification 5] In the above embodiment, terminal 31 encrypts messages using a public-key cryptography scheme including RSA (Rivest-Shamir-Adleman) or elliptic curve cryptography, but it is not limited to this. Terminal 31 may encrypt using XOR. Terminal 31 may also encrypt messages using a public-key cryptography scheme other than those mentioned above. Other public encryption schemes include, for example, CRYSTALS-KYBER, Classic McElice, BIKE, and HQC.

[0141] Figure 9 is a sequence diagram showing an example of the process for generating a block of transaction data related to Modified Example 5.

[0142] Terminal 31 generates a random number rk to be used as the second encryption key for encryption (S151).

[0143] Terminal 31 performs first error-correction encoding on the message (target data) m and generates encoded data code(m) (S152).

[0144] Terminal 31 encrypts the encoded data code(m) and the random number rk using XOR with the random number rk as the second encryption key to generate encrypted data c. Furthermore, it hashes the encoded data code(m) to generate the first hash value h1 (S153). Encoded data code(m) is an example of the first encoded data. Encrypted data c is an example of the first encrypted data.

[0145] Terminal 31 generates transaction data including encrypted data c and a first hash value h1, and sends the transaction data to BC node 10 (miner) (S154).

[0146] When BC node 10 obtains transaction data, it decrypts the encrypted data c contained in the transaction data using its own public key pk to generate decrypted data c' = xor(c, pk) (S155). Decrypted data c' is an example of first decrypted data.

[0147] The BC node 10 performs a first error correction on the decoded data c' to generate corrected data c'' (S156). The corrected data c'' is an example of the first corrected data.

[0148] The BC node 10 hashes the correction data c'' to generate a second hash value h2, and determines whether the second hash value h2 is the same as the first hash value h1 (S157). The hash function used in hashing in step S157 is the same as the hash function used in hashing in step S153.

[0149] If the second hash value h2 is the same as the first hash value h1 (Yes in S157), the BC node 10 generates a block containing a transaction ID that identifies the transaction data, the first decrypted data, and the correction data c'' (S158).

[0150] If the BC node 10 finds that the second hash value h2 and the first hash value h1 are different (No in S157), it terminates processing without generating a block.

[0151] The generated blocks are stored on the blockchain.

[0152] [Modification 6] In the above embodiment, the block may be a block relating to transaction data and additional transaction data. That is, the block may contain information about one transaction data, or it may contain information about two or more transaction data. For example, if one BC node 10 (miner) succeeds in generating a block relating to multiple transaction data, the BC node 10 may combine the multiple transaction data into a single block.

[0153] (Supplement) The distributed ledger in the above embodiment or modified example will be explained in more detail below. Here, blockchain will be explained as an example of a distributed ledger, but the same applies to other distributed ledgers.

[0154] Figure 10 is an explanatory diagram illustrating the data structure of a blockchain.

[0155] A blockchain is a chain of blocks, which are the units of data recording. Each block contains multiple transaction data and the hash value of the previous block. Specifically, block B2 contains the hash value of the previous block, B1. Then, the hash value calculated from the multiple transaction data contained in block B2 and the hash value of block B1 is included in block B3 as the hash value of block B2. In this way, by including the contents of the previous block as a hash value and linking the blocks in a chain, tampering with the recorded transaction data is effectively prevented.

[0156] If past transaction data is altered, the hash value of the block will be different from the original value. To make the tampered block appear legitimate, all subsequent blocks would have to be rebuilt, a process that is practically extremely difficult. This property is used to guarantee the tamper-proof nature of blockchain.

[0157] Figure 11 is an explanatory diagram showing the data structure of transaction data.

[0158] The transaction data shown in Figure 11 includes a transaction body P1 and a digital signature P2. The transaction body P1 is the data body contained in the transaction data. The digital signature P2 is a digital signature generated using the signing key of the creator of the transaction data on the hash value of the transaction body P1, or more specifically, it is generated by encrypting the hash value with the private key of the creator of the transaction data. Examples of digital signature methods include ECDSA (Elliptic Curve Digital Signature Algorithm), CRYSTALS-Dilithium, Falcon, and SPHINCS+.

[0159] Since the transaction data has a digital signature P2, it is virtually impossible to tamper with it. If the transaction data is tampered with, the verification using the digital signature P2 will fail, revealing that the transaction data has been tampered with. This prevents tampering with the transaction body P1.

[0160] Figure 12 is an explanatory diagram showing transaction data related to the execution of a smart contract. Figure 13 is an explanatory diagram showing the processing related to the execution of a smart contract.

[0161] Referring to Figures 12 and 13, a series of processes related to the execution of a smart contract using a distributed ledger will be explained.

[0162] In step SB1, the node stores transaction data B11, which includes contract code B12 describing the processing of the smart contract, in the distributed ledger B10. For example, the node obtains transaction data B11 by receiving it via communication from an information processing device or by generating the transaction data B11 itself, and stores the obtained transaction data B11 in the distributed ledger B10. Step SB1 is performed before executing the smart contract.

[0163] In step SB2, the node stores transaction data B15, which includes the instruction B16 to execute the smart contract, in the distributed ledger B10. For example, the node receives transaction data B15 from an information processing device via communication and stores the received transaction data B15 in the distributed ledger B10.

[0164] In step SB3, the node reads the contract code B12 from the distributed ledger B10 in response to the fact that the transaction data B15, including the instruction B16, was stored in the distributed ledger B10 in step SB2, and executes processing based on the contract code B12. The result of the above processing may be included in the transaction data and stored in the distributed ledger B10.

[0165] Through the above series of processes, when the distributed ledger system receives transaction data B15 containing the instruction B16 to execute a smart contract, it automatically (in other words, without human intervention) executes the process according to instruction B16, enabling highly efficient (in other words, fast or in a short time) processing. This high-efficiency processing has the effect of reducing power consumption. Furthermore, because it does not involve human intervention, it is possible to prevent human tampering with information, fraudulent activities, or human errors. In addition, since the results of the processing executed in this way are stored on the blockchain, it is virtually impossible to tamper with the results of the processing.

[0166] In the above embodiments and modifications, each component may be implemented by dedicated hardware or by executing a software program suitable for each component. Each component may also be implemented by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory. Here, the software that implements the above embodiments and modifications (i.e., the BC node 10) is the following program.

[0167] In other words, this program is a program that causes a computer to execute a control method performed by one of several nodes that manage a blockchain, and is a program that causes a computer to execute the following: acquire transaction data which includes first encrypted data which has been first error-corrected encoded and encrypted, decrypt the first encrypted data contained in the transaction data with a first encryption key to generate first decrypted data, perform first error correction on the first decrypted data to generate first corrected data, and if the original data portion of the first corrected data is the same as the target data, generate a block relating to the transaction data.

[0168] Although control methods and the like according to one or more embodiments have been described above based on embodiments, the present invention is not limited to these embodiments. Without departing from the spirit of the present invention, various modifications that a person skilled in the art can conceive of may be applied to these embodiments, and forms constructed by combining components from different embodiments may also be included within the scope of one or more embodiments.

[0169] This disclosure is useful as a control method that can deter malicious miners from tampering with target data.

[0170] 1 Blockchain system 10, 10A, 10B, 10N BC nodes 11 Communication unit 12 Blockchain memory unit 13 Processing unit 31-33 Terminals N1 Network

Claims

1. A control method executed by one of several nodes managing a blockchain, comprising: acquiring transaction data which includes first encrypted data which has been first error-corrected encoded and encrypted with respect to target data; decrypting the first encrypted data contained in the transaction data with a first encryption key to generate first decrypted data; performing first error correction on the first decrypted data to generate first corrected data; and generating a block relating to the transaction data if the original data portion of the first corrected data is the same as the target data.

2. The control method according to claim 1, wherein the first encrypted data is data obtained by encryption using a second encryption key represented by a random number.

3. The control method according to claim 1, wherein the block is not generated if the original data portion of the first correction data differs from the target data.

4. The control method according to any one of claims 1 to 3, wherein the transaction data further includes a first hash value which is the hash value of the first encoded data which has been first error-corrected encoded, and the control method further generates a second hash value which is the hash value of the first corrected data, and if the second hash value is the same as the first hash value included in the transaction data, it is determined that the original data portion of the first corrected data is the same as the target data.

5. The control method according to any one of claims 1 to 3, wherein, among the multiple successful nodes that have successfully generated the block, the block of the node that generated the block earliest is stored in the blockchain.

6. The control method according to any one of claims 1 to 3, wherein, among the multiple successful nodes that have succeeded in generating the block, the block of the node with the lowest error rate in the first error correction is stored in the blockchain.

7. The control method according to any one of claims 1 to 3, wherein the transaction data further includes second encrypted data, the second encrypted data is data in which the target data has been second error-corrected encoded and encrypted, the first error-correction encoding is an encoding that can correct errors up to a first number of bits, and the second error-correction encoding is an encoding that can correct errors up to a second number of bits greater than the first number.

8. The control method according to claim 7, further comprising: if the source data portion of the first correction data is different from the target data, decrypting the second encrypted data included in the transaction data with the first encryption key to generate second decrypted data; performing a second error correction on the second decrypted data to generate second correction data; and if the source data portion of the second correction data is the same as the target data, generating a block relating to the transaction data.

9. The control method according to claim 8, wherein the transaction data further includes a first hash value which is the hash value of the first encoded data which has been first error-corrected encoded, and a third hash value which is the hash value of the second encoded data which has been second error-corrected encoded, and the control method further generates a second hash value which is the hash value of the first corrected data, determines that the original data portion of the first corrected data is the same as the target data if the second hash value is the same as the first hash value included in the transaction data, generates a fourth hash value which is the hash value of the second corrected data, and determines that the original data portion of the second corrected data is the same as the target data if the third hash value is the same as the fourth hash value included in the transaction data.

10. The control method according to claim 2, wherein information indicating how the random numbers were generated is stored in the blockchain.

11. The control method according to any one of claims 1 to 3, wherein the first encrypted data is data obtained as a result of encryption using a public-key cryptography scheme including any of RSA (Rivest-Shamir-Adleman), elliptic curve cryptography, CRYSTALS-KYBER, Classic McElice, BIKE, and HQC, and the first encryption key is a secret key associated with the one node.

12. The control method according to any one of claims 1 to 3, wherein the first encrypted data is data encrypted by XOR, and the first encryption key is a public key associated with the one node.

13. The control method according to any one of claims 1 to 3, wherein the block includes identification information for identifying the transaction data, the first decoded data, and the first corrected data.

14. The control method according to any one of claims 1 to 3, wherein the block includes identification information for identifying the transaction data and the first decoded data.

15. The control method according to any one of claims 1 to 3, wherein the block is the transaction data and additional transaction data.

16. A node among a plurality of nodes managing a blockchain, comprising a processor and memory, wherein the processor uses the memory to acquire transaction data including first encrypted data in which target data has been first error-corrected encoded and encrypted; decrypts the first encrypted data contained in the transaction data with a first encryption key to generate first decrypted data; performs first error correction on the first decrypted data to generate first corrected data; and generates a block relating to the transaction data if the original data portion of the first corrected data is the same as the target data.

17. A program for causing a computer to execute a control method performed by one of several nodes managing a blockchain, the program for causing a computer to execute the following: acquire transaction data which includes first encrypted data which has been first error-corrected encoded and encrypted with respect to target data; decrypt the first encrypted data contained in the transaction data with a first encryption key to generate first decrypted data; perform first error correction on the first decrypted data to generate first corrected data; and if the original data portion of the first corrected data is the same as the target data, generate a block relating to the transaction data.

Citation Information

Patent Citations

  • Detection and method of tampering with electronic file, and program

    JP2023178735A

  • Control method, server, and program

    WO2021153421A1