Control method, device, and program
The control method facilitates devices without next-generation signature support to participate in block generation by using external verification, reducing costs and preventing fraud, addressing the exclusion issue in blockchain systems.
Patent Information
- Application Number
- PCT/JP2025/012568
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-05
- Filing Date
- 2025-03-27
- Publication Date
- 2025-10-09
AI Technical Summary
Devices that do not support next-generation digital signatures in blockchain technology are unable to participate in block generation, leading to exclusion from the blockchain community and increased operational and maintenance costs.
A control method that allows devices to acquire transaction data with unverifiable digital signatures, transmit it to an information terminal with capable programs, receive verification results, and generate blocks based on these results, ensuring participation in the blockchain system even if digital signatures are migrated to next-generation methods.
Enables devices without support for current digital signatures to participate in block generation, reducing costs and preventing fraudulent blocks by using multiple verification results to ensure legitimacy, thus lowering operation and maintenance expenses.
Smart Images

Figure JP2025012568_09102025_PF_FP_ABST
Abstract
Description
Control method, device, and program
[0001] The present disclosure relates to a control method, an apparatus, and a program.
[0002] Patent Document 1 discloses a technology for verifying device integrity using digital signatures in order to strengthen the security of transactions on a blockchain.
[0003] Special table 2018-516026 publication
[0004] The present disclosure provides a control method and the like that can realize a blockchain system in which even devices that do not support digital signatures used in blockchain technology can participate in block generation.
[0005] A control method according to one aspect of the present disclosure is a control method executed by a device, which acquires transaction data including a digital signature of a type that the device cannot verify, transmits the transaction data to an information terminal storing one or more programs that verify the transaction data using the digital signature of the type that cannot be verified, receives one or more verification results generated by the one or more programs from the information terminal, and generates a block to be stored in a blockchain, the block including the transaction data, based on the one or more verification results.
[0006] Moreover, an apparatus according to one aspect of the present disclosure includes a processor and a memory, wherein the processor uses the memory to obtain transaction data including a digital signature of a type that the apparatus cannot verify, transmits the transaction data to an information terminal storing one or more programs for verifying the transaction data using the digital signature of the type that cannot be verified, receives one or more verification results generated by the one or more programs from the information terminal, and generates a block to be stored in a blockchain, the block including the transaction data, based on the one or more verification results.
[0007] These comprehensive or specific aspects may be realized as a system, a device, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a device, an integrated circuit, a computer program, and a recording medium.
[0008] According to the control method and the like disclosed herein, it is possible to realize a blockchain system in which even devices that do not support digital signatures used in blockchain technology can participate in block generation.
[0009] FIG. 1 is a block diagram showing the configuration of a system according to the first embodiment. FIG. 2 is a diagram showing an example of the configuration of an information terminal 100 according to the first embodiment. FIG. 3 is a diagram showing an example of the configuration of a node according to the first embodiment. FIG. 4 is a diagram showing an example of the configuration of an information terminal 300 according to the first embodiment. FIG. 5 is a sequence diagram showing an example of the operation of the system according to the first embodiment. FIG. 6 is a diagram for explaining a specific example of the verification process. FIG. 7 is a diagram for explaining a specific example of the verification process. FIG. 8 is a block diagram showing the configuration of a system according to the second embodiment. FIG. 9 is a diagram showing an example of the configuration of a node according to the second embodiment. FIG. 10 is a sequence diagram showing an example of the operation of the system according to the second embodiment. FIG. 11 is an explanatory diagram showing the data structure of a blockchain. FIG. 12 is an explanatory diagram showing the data structure of transaction data. FIG. 13 is an explanatory diagram showing transaction data related to the execution of a smart contract. FIG. 14 is an explanatory diagram showing processing related to the execution of a smart contract. FIG. 15 is an explanatory diagram showing the structures of NFTs and metadata.
[0010] (Findings that Form the Basis of the Present Disclosure) In blockchains, signature algorithms are used to prove asset possession. Advances in computers have created a need for signature algorithms to be changed to algorithms with longer key lengths or to transition to next-generation algorithms with greater processing loads. Examples of next-generation algorithms include PQC (Post-Quantum Cryptography) using quantum computers.
[0011] In response to this, it is possible to consider changing to a digital signature method using a next-generation algorithm for all transaction data, but the following issues are expected to arise.
[0012] Devices (nodes) that do not support digital signatures using the next-generation algorithm will not be able to generate or verify transaction data, and will therefore not be able to participate in the blockchain community (blockchain system). In other words, devices that do not support next-generation digital signatures will not be able to participate in block generation.
[0013] To solve the above problems, the inventors have discovered a control method and the like that can realize a blockchain system in which even devices that do not support the digital signatures used in blockchain technology can participate in block generation.
[0014] A control method according to a first aspect of the present disclosure is a control method executed by a device, which acquires transaction data including a digital signature of a type that the device cannot verify, transmits the transaction data to an information terminal storing one or more programs that verify the transaction data using the digital signature of the type that cannot be verified, receives one or more verification results generated by the one or more programs from the information terminal, and generates a block to be stored in a blockchain, the block including the transaction data, based on the one or more verification results.
[0015] This allows an information terminal to perform verification using types of digital signatures that a device cannot verify, thereby realizing a blockchain system in which even devices that do not support the digital signatures used in blockchain technology can participate in block generation. This reduces the cost of participating in the blockchain system, even if the blockchain's digital signatures are migrated to, for example, a next-generation signature method to maintain security, and as a result, reduces the operation and maintenance costs of the blockchain system.
[0016] A control method according to a second aspect of the present disclosure is the control method according to the first aspect, wherein the one or more programs are two or more programs, and the receiving includes receiving from the information terminal two or more verification results generated by the two or more programs, and generating a block including the transaction data based on the two or more verification results.
[0017] Therefore, even if some of the programs contain unauthorized programs, the possibility of receiving a verification result from a legitimate program can be increased.
[0018] A control method according to a third aspect of the present disclosure is the control method according to the second aspect, wherein, in the generation, if a predetermined number or more of the two or more verification results indicate successful verification, a block including the transaction data is generated, and if less than the predetermined number of the two or more verification results indicate successful verification, a block including the transaction data is not generated.
[0019] Therefore, even if some of the verification results are fraudulent due to fraudulent programs, blocks will not be generated unless the number of fraudulent programs is greater than a predetermined number, thereby preventing fraudulent blocks from being generated due to fraudulent verification results from fraudulent programs.
[0020] A control method according to a fourth aspect of the present disclosure is the control method according to the third aspect, wherein the predetermined number is a majority of the total number of the two or more verification results.
[0021] Therefore, even if some of the verification results are fraudulent due to fraudulent programs, a block will not be generated unless the number of fraudulent programs is in the majority, thereby preventing fraudulent blocks from being generated due to fraudulent verification results from fraudulent programs.
[0022] A control method according to a fifth aspect of the present disclosure is a control method according to the third or fourth aspect, further comprising: if the predetermined number or more of verification results indicate successful verification, paying a reward to addresses of a predetermined number or more of the programs that generated the predetermined number or more of verification results out of the two or more programs.
[0023] Therefore, a reward is paid to a program that generates a legitimate verification result, and a reward is not paid to a program that generates an illegitimate verification result, so that legitimate programs can be encouraged to be added to information terminals, and the possibility that illegitimate programs will be added to information terminals can be reduced.
[0024] A control method according to a sixth aspect of the present disclosure is a control method according to the third or fourth aspect, further comprising: if verification results less than the predetermined number indicate verification success or verification failure, reducing the reliability of programs out of the two or more programs that generated verification results less than the predetermined number.
[0025] Therefore, the reliability can be used to determine whether a program is an unauthorized program or not.
[0026] A control method according to a seventh aspect of the present disclosure is a control method according to any one of the second to fourth aspects, wherein the transmission includes transmitting information along with the transaction data to cause only the two or more programs selected from a plurality of programs to verify the transaction data, and at the information terminal, the verification of the transaction data is performed by the two or more programs specified by the information.
[0027] This allows the device to select a program to execute verification, and therefore the device can select a program to execute verification from among legitimate programs, for example.
[0028] A control method according to an eighth aspect of the present disclosure is a control method according to the seventh aspect, further comprising: if fewer than a predetermined number of verification results indicate verification success or verification failure, lowering the reliability of the two or more programs that generated fewer than the predetermined number of verification results, and the two or more programs are programs whose reliability is equal to or higher than the predetermined reliability.
[0029] Therefore, the device can select a program to be verified from among programs whose reliability is equal to or higher than a predetermined reliability and which are highly likely to be legitimate.
[0030] A control method according to a ninth aspect of the present disclosure is a control method according to any one of the first to seventh aspects, wherein each of the one or more programs is a contract code constituting a smart contract, the smart contract is stored in the blockchain, and the information terminal is one of a plurality of information terminals constituting a blockchain system that manages the blockchain.
[0031] Therefore, by transmitting transaction data to the blockchain system, the device can obtain the verification results of the transaction data using a digital signature by the smart contract of the blockchain system. Because the smart contract is stored in the blockchain system, tampering with the smart contract can be prevented. In other words, the device can receive highly reliable verification results from the blockchain system.
[0032] An apparatus according to a tenth aspect of the present disclosure is an apparatus comprising a processor and a memory, wherein the processor uses the memory to obtain transaction data including a digital signature of a type that the apparatus cannot verify, transmits the transaction data to an information terminal storing one or more programs that verify the transaction data using the digital signature of the type that cannot be verified, receives one or more verification results generated by the one or more programs from the information terminal, and generates a block to be stored in a blockchain, the block including the transaction data, based on the one or more verification results.
[0033] This allows an information terminal to perform verification using types of digital signatures that a device cannot verify, thereby realizing a blockchain system in which even devices that do not support the digital signatures used in blockchain technology can participate in block generation. This reduces the cost of participating in the blockchain system, even if the blockchain's digital signatures are migrated to, for example, a next-generation signature method to maintain security, and as a result, reduces the operation and maintenance costs of the blockchain system.
[0034] A program according to an eleventh aspect of the present disclosure is a program for causing a computer to execute a control method executed by an apparatus, the program causing a computer to execute the following steps: acquire transaction data including a digital signature of a type that cannot be verified by the apparatus; transmit the transaction data to an information terminal storing one or more programs that verify the transaction data using the digital signature of the unverifiable type in order to verify the transaction data using the digital signature included in the transaction data; receive one or more verification results generated by the one or more programs from the information terminal; and generate, based on the one or more verification results, a block to be stored in a blockchain, the block including the transaction data.
[0035] These comprehensive or specific aspects may be realized as a system, a device, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a device, an integrated circuit, a computer program, and a recording medium.
[0036] Hereinafter, embodiments will be described with reference to the drawings. Note that each of the embodiments described below represents a specific example of the present disclosure. In other words, the numerical values, shapes, materials, components, component arrangements and connection forms, steps, and step orders shown in the following embodiments are merely examples and are not intended to limit the present disclosure. Furthermore, among the components according to the following embodiments, components not recited in the independent claims representing the highest concepts are not necessarily required to achieve the objectives of the present disclosure, but are described as components constituting a more preferred embodiment.
[0037] (First Embodiment) In this embodiment, a control method and the like that can realize a blockchain system in which even devices that are not compatible with digital signatures used in blockchain technology can participate in block generation will be described.
[0038] [System Configuration] FIG. 1 is a block diagram showing the configuration of a system according to the first embodiment.
[0039] As shown in FIG. 1 , the system 1 includes an information terminal 100 , a blockchain system 200 , and an information terminal 300 .
[0040] The information terminal 100 is a terminal (computer) owned by an issuer that issues transaction data. The information terminal 100 is an example of a device.
[0041] The blockchain system 200 includes nodes 200a to 200c that are communicatively connected to each other. The blockchain system 200 manages a blockchain that is composed of blocks containing arbitrary data. The arbitrary data may be, for example, data containing a Fungible Token (FT), data containing a Non-Fungible Token (NFT), or other data. The arbitrary data may include privacy information related to a user (e.g., personal information of the user). The FT is, for example, a virtual currency such as Bitcoin. The NFT can prove, for example, the uniqueness of digital content or the ownership of digital content.
[0042] The information terminal 300 is a computer having multiple programs for verifying a digital signature included in transaction data. That is, the information terminal 300 verifies the digital signature included in the transaction data using the multiple programs. When the information terminal 300 receives the digital signature, or when it receives transaction data, the information terminal 300 verifies the digital signature based on an algorithm defined in the programs, based on the digital signature included in the received transaction data. Each of the multiple programs may be a program capable of verifying multiple types of digital signatures. Furthermore, one or more programs that are part of the multiple programs may be a program capable of verifying only the first digital signature, and one or more programs that are another part of the multiple programs may be a program capable of verifying only the second digital signature. The first digital signature and the second digital signature are different types of digital signatures. The second digital signature is a digital signature that requires a greater amount of calculation to decrypt than the first digital signature.
[0043] The multiple programs may be capable of verifying three or more types of digital signatures. Each program may be capable of verifying three or more types of digital signatures. Each program may be capable of verifying one type of digital signature, and the multiple programs may include a program capable of verifying a first digital signature, a program capable of verifying a second digital signature, and a program capable of verifying another type of digital signature.
[0044] In this embodiment, a verifiable digital signature is one that can be decrypted by the device, and an unverifiable digital signature is one that cannot be decrypted by the device. Examples of unverifiable digital signatures include the following: the device does not support next-generation encryption algorithms; the key length required for the signature exceeds the processing power or memory constraints of the device; the hash function used to generate and verify the signature is not implemented in the device; the encoding format or message format of the signature data is different from that used by the device; etc.
[0045] The information terminal 100, the blockchain system 200, and the information terminal 300 may all be connected to each other via a network 500, or all may be directly connected to be able to communicate, or some may be connected via the network 500 and other parts may be directly connected to be able to communicate. The network 500 may be, for example, the Internet or a mobile phone carrier network, but may be composed of any communication line or network.
[0046] FIG. 2 is a diagram showing an example of the configuration of the information terminal 100 according to the first embodiment.
[0047] The information terminal 100 includes a communication unit 101 , an input receiving unit 102 , a display unit 103 , a control unit 104 , and a storage unit 105 .
[0048] The communication unit 101 may transmit information to the blockchain system 200 or the information terminal 300 via the network 500, or may receive information from the blockchain system 200 or the information terminal 300. Specifically, the communication unit 101 may transmit transaction data to the blockchain system 200. The communication unit 101 may receive information different from the above-mentioned information from another information terminal communicatively connected thereto, or may transmit information to the other information terminal.
[0049] In this way, the communication unit 101 communicates with the blockchain system 200 and the information terminal 300 via the network 500. This communication may be performed using TLS (Transport Layer Security), and an encryption key for TLS communication may be held in the communication unit 101. The communication unit 101 is realized by a communication IF (Interface).
[0050] The input receiving unit 102 receives inputs from an issuer. The input receiving unit 102 displays the received inputs on the display unit 103, transmits them to the control unit 104, or transmits them to the communication unit 101. The input receiving unit 102 is realized by an input IF (Interface).
[0051] The display unit 103 displays a UI (User Interface) for receiving input by the input receiving unit 102. The display unit 103 also displays the input received by the input receiving unit 102 on the UI. The display unit 103 may display information received from the blockchain system 200 or the information terminal 300. The display unit 103 is realized by a display.
[0052] The control unit 104 may generate transaction data based on the information input accepted by the input accepting unit 102, and transmit the generated transaction data to the blockchain system 200 via the communication unit 101. The control unit 104 is realized by a processor.
[0053] The memory unit 105 stores information received by the communication unit 101, input accepted by the input accepting unit 102, transaction data generated by the control unit 104, etc. The memory unit 105 may also store data other than the above-mentioned information. The memory unit 105 is realized by a storage.
[0054] The information terminal 100 is realized by the processor executing a predetermined program using the memory.
[0055] FIG. 3 is a diagram illustrating an example of a configuration of a node according to the first embodiment.
[0056] 3, each of the nodes 200a to 200c includes a communication unit 201, a control unit 202, a recording unit 203, a block generation unit 204, and a distributed ledger 205. The nodes 200a to 200c manage the blockchain.
[0057] The communication unit 201 transmits information to the information terminals 100, 300 or other nodes among the nodes 200a to 200c, and receives information from the information terminals 100, 300 or other nodes via the network 500. Specifically, the communication unit 201 may transmit a request to verify transaction data to the information terminal 300. The communication unit 201 may receive verification results from the information terminal 300. The other nodes are nodes among the nodes 200a to 200c that are different from the node that includes the communication unit 201. The communication unit 201 also transmits and receives transaction data to and from the other nodes 200a to 200c.
[0058] In this way, the communication unit 201 communicates with the information terminals 100 and 300 or other nodes via the network 500. This communication may be performed using TLS (Transport Layer Security), and the encryption key for TLS communication may be held by the communication unit 201.
[0059] The control unit 202 executes a consensus algorithm on the transaction data received by the communication unit 201. As a result, the control unit 202 stores the transaction data in the distributed ledger 205. The control unit 202 stores information included in the transaction data in the blockchain, for example, by linking a block including the transaction data to the blockchain of the distributed ledger 205.
[0060] Furthermore, if the information received by the communication unit 201 is a request to issue an NFT, the control unit 202 may issue an NFT and record the issued NFT in the distributed ledger 205. This may result in a block containing the NFT being added to the blockchain. In the case of an NFT corresponding to content, upon receiving a request to issue an NFT, the communication unit 201 generates an NFT corresponding to the content based on the address (URL1) included in the issuance request and stores the NFT in the blockchain. The NFT is recorded in the blockchain ledger by a smart contract as a set of data linking the address included in the issuance request, the NFT ID generated by the smart contract, and the initially set owner. The data recorded in the NFT may include other information. For example, the data may include the date and time the content was created, or information about other content that was used as material to create the content.
[0061] The block generation unit 204 verifies whether the transaction data is valid based on multiple verification results. If the block generation unit 204 verifies the validity, the communication unit 201 transmits a copy of the transaction data to multiple other nodes 200a-200c, causing the verified authenticated transaction data to be recorded in the recording units 203 of the other nodes 200a-200c. This allows only transaction data whose validity has been verified to be transmitted to other servers, thereby suppressing increases in computer power consumption. Note that this verification may be skipped.
[0062] The block generator 204 executes a consensus algorithm together with multiple other nodes 200a to 200c to reach an agreement on the validity of transaction data.
[0063] The consensus algorithm may be Practical Byzantine Fault Tolerance (PBFT) or another known consensus algorithm. Examples of known consensus algorithms include Proof of Work (PoW) and Proof of Stake (PoS). When PBFT is used as the consensus algorithm, the block generation unit 204 receives reports from each of the multiple nodes 200a-200c indicating whether the transaction data verification was successful or not, and determines whether the number of such reports exceeds a predetermined number. The reports may be based on the results of verification requests from each of the nodes 200a-200c to the information terminal 300 for transaction data verification. In other words, the report may be based on multiple verification results from multiple programs to determine whether the transaction data verification was successful or not. The block generation unit 204 then determines that the transaction data has been verified by the consensus algorithm when the number of such reports exceeds a predetermined number.
[0064] If the block generation unit 204 confirms the validity of the transaction data, it causes the recording unit 203 to record the transaction data. If the validity of the transaction data cannot be verified, the block generation unit 204 discards the transaction data. This prevents transaction data whose validity cannot be verified from being recorded in the recording unit 203, thereby reducing the required amount of computer resources. The block generation unit 204 may generate a block including transaction data whose validity has been confirmed, and store the generated block in the distributed ledger 205.
[0065] In this embodiment, the validity of transaction data is verified by each of a plurality of programs included in the information terminal 300, and is determined based on a plurality of verification results by the plurality of programs.
[0066] The recording unit 203 records the transaction data after validity verification by storing the transaction data in the distributed ledger 205. This makes it possible to prevent tampering with the transaction data.
[0067] The recording unit 203 may be configured inside the distributed ledger 205.
[0068] The distributed ledger 205 stores transaction data. The distributed ledger 205 sequentially acquires and stores transaction data, and therefore stores one or more pieces of transaction data. The distributed ledger 205 is realized by storage.
[0069] Note that, when the information received by the communication unit 201 is a request to issue an NFT, the control unit 202 may issue the NFT and record the issued NFT in the distributed ledger 205. As a result, a block including the NFT may be added to the blockchain.
[0070] FIG. 4 is a diagram showing an example of the configuration of the information terminal 300 according to the first embodiment.
[0071] The information terminal 300 includes a communication unit 301 , an input receiving unit 302 , a display unit 303 , a control unit 304 , and a storage unit 305 .
[0072] The communication unit 301 may transmit information to the information terminal 100 or the blockchain system 200 via the network 500, or may receive information from the information terminal 100 or the blockchain system 200. Specifically, the communication unit 301 may receive a request to verify transaction data from the blockchain system 200. The communication unit 301 may transmit multiple verification results of transaction data by multiple programs to the blockchain system 200. The communication unit 301 may receive information different from the above-mentioned information from another information terminal communicatively connected, or may transmit information to the other terminal.
[0073] In this way, the communication unit 301 communicates with the information terminal 100 and the blockchain system 200 via the network 500. This communication may be performed using TLS (Transport Layer Security), and an encryption key for TLS communication may be held in the communication unit 301. The communication unit 301 is realized by a communication IF (Interface).
[0074] The input reception unit 302 receives inputs from the administrator. The input reception unit 302 displays the received inputs on the display unit 303, transmits them to the control unit 304, or transmits them to the communication unit 301. The input reception unit 302 is realized by an input IF (Interface).
[0075] The display unit 303 displays a UI (User Interface) for receiving input by the input receiving unit 302. The display unit 303 also displays the input received by the input receiving unit 302 on the UI. The display unit 303 may display information received from the information terminal 100 or the blockchain system 200. The display unit 303 is realized by a display.
[0076] The control unit 304 executes verification of the received transaction data using a plurality of programs based on the transaction data, and obtains a plurality of verification results by the plurality of programs. The control unit 304 may transmit the plurality of verification results to the blockchain system 200 via the communication unit 301.
[0077] Specifically, the control unit 304 verifies the validity of transaction data when the communication unit 301 receives the transaction data. For example, the control unit 304 verifies whether a digital signature generated by a correct method is attached to the transaction data received by the communication unit 301.
[0078] The control unit 304 is realized by a processor.
[0079] The memory unit 305 stores information received by the communication unit 301, input accepted by the input accepting unit 302, multiple verification results generated by the control unit 304, etc. The memory unit 305 may also store data other than the above-mentioned information. The memory unit 305 is realized by a storage.
[0080] The information terminal 300 is realized by a processor executing a predetermined program using a memory.
[0081] [System Operation] Next, the operation of the system 1 configured as above will be described.
[0082] 5 is a sequence diagram showing an example of the operation of the system according to embodiment 1. In the diagram, transaction data may be expressed as Tx data.
[0083] The information terminal 100 generates transaction data including data to be stored in a blockchain in response to, for example, an input from an issuer (S101). The data to be stored may be, for example, data for transferring a token from a first account to a second account different from the first account, or other data. Transferring from the first account to the second account may indicate changing the owner of the token from the first user to the second user.
[0084] The information terminal 100 transmits the generated transaction data to the blockchain system 200 that manages the blockchain in order to store the data in the blockchain (S102). As a result, the blockchain system 200 receives (acquires) the transaction data from the information terminal 100.
[0085] When the blockchain system 200 receives the transaction data, it stores the received transaction data in a transaction pool (S103).
[0086] The blockchain system 200 obtains one or more transaction data for block generation from the transaction pool (S104).
[0087] The blockchain system 200 transmits a verification request for one or more transaction data acquired from the transaction pool to the information terminal 300 (S105). As a result, the information terminal 300 receives (acquires) one or more transaction data from the blockchain system 200. The verification request may include one or more transaction data and request information indicating a request to verify the one or more transaction data. The request information may include information specifying two or more programs to be verified from among multiple programs.
[0088] When the information terminal 300 receives one or more pieces of transaction data, it executes two or more programs for each of the one or more pieces of transaction data based on the transaction data, and verifies each of the one or more pieces of transaction data (S106). Specifically, the information terminal 300 executes two or more programs for each piece of transaction data, thereby generating verification results for each of the two or more programs. As a result, the information terminal 300 generates two or more verification results for each piece of transaction data by the two or more programs.
[0089] 6 and 7 are diagrams for explaining a specific example of the verification process according to the first embodiment.
[0090] 6, the blockchain system 200 requests verification of transaction data from a plurality of programs A to D. In this embodiment, the transaction data is transmitted to the information terminal 300.
[0091] 7, the transaction data is verified by multiple programs A to D, and a verification result is obtained from each of the multiple programs A to D. In other words, multiple verification results are obtained. The multiple verification results are then sent to the blockchain system 200.
[0092] In this way, verification is performed on one transaction data by multiple programs A to D, and multiple verification results by these multiple programs A to D are transmitted to the blockchain system 200. As a result, the blockchain system 200 can obtain multiple verification results.
[0093] In this description, the number of programs A to D for which verification is performed is four, but it may be less than four or may be five or more.
[0094] Returning to the description of FIG.
[0095] The information terminal 300 transmits the two or more verification results generated for each transaction data to the blockchain system 200 (S107). As a result, the blockchain system 200 receives the two or more verification results generated for each transaction data from the information terminal 300.
[0096] The blockchain system 200 determines the legitimacy of each transaction data based on the two or more received verification results, and generates a block including one or more transaction data that have been determined to be legitimacy among the one or more transaction data (S108). If a predetermined number or more of the two or more verification results indicate successful verification, the blockchain system 200 may generate a block including transaction data corresponding to the two or more verification results. If less than a predetermined number of the two or more verification results indicate successful verification, the blockchain system 200 does not generate a block including transaction data corresponding to the two or more verification results. Here, the predetermined number may be a majority of the total number of the two or more verification results.
[0097] The blockchain system 200 stores the generated block in the blockchain by linking it to the blockchain (S109).
[0098] Here, if a predetermined number or more of verification results indicate successful verification, the blockchain system 200 may pay a reward to the addresses of a predetermined number or more of the programs that generated the predetermined number or more of verification results out of the two or more programs.
[0099] Furthermore, when fewer than a predetermined number of verification results indicate a verification success or a verification failure, the blockchain system 200 may lower the reliability of the programs that generated fewer than the predetermined number of verification results among the two or more programs. In this way, the blockchain system 200 may evaluate the reliability of multiple programs included in the information terminal 300. For example, the reliability of multiple programs may be set to an initial value, and the reliability may be lowered by subtracting points from the initial value. The reliability may be stored in association with each program.
[0100] Furthermore, the blockchain system 200 may evaluate the reliability of multiple programs based on the verification results of transaction data by the multiple programs included in the information terminal 300. The reliability of a program that outputs the same verification result as a verification result with a predetermined number or more of verification results may be evaluated to be higher, and the reliability of a program that outputs the same verification result as a verification result with a verification result with less than the predetermined number of verification results may be evaluated to be lower.
[0101] In step S105, request information for having only two or more programs selected from the plurality of programs verify the transaction data may be transmitted along with the transaction data. The selection of the two or more programs may be based on the verification track record or reliability of the plurality of programs. In other words, two or more programs having a reliability level equal to or higher than a predetermined reliability level may be selected from the plurality of programs. In this case, the two or more programs to be selected may be randomly determined from the plurality of programs that satisfy the reliability conditions. In the information terminal 300, the verification of the transaction data may be performed by two or more programs specified by the request information.
[0102] The number of programs that execute the verification is not limited to a plurality of programs, and may be a single program. In other words, a block may be generated based on a single verification result by a single program.
[0103] Note that steps S105 to S107 may be performed only by a node that does not support the type of digital signature included in the acquired transaction data. In other words, verification of the transaction data may be performed by any node that supports the digital signature of the transaction data, and does not have to be performed by the information terminal 300 on its behalf.
[0104] [Effects, etc.] In the system 1 according to this embodiment, each node 200a-200c in the blockchain system 200 acquires transaction data that includes a digital signature of a type that the node cannot verify (S104). Each node 200a-200c transmits the transaction data to an information terminal 300 that stores one or more programs for verifying the transaction data using a digital signature of a type that the node cannot verify (S105). Each node 200a-200c receives one or more verification results generated by the one or more programs from the information terminal 300 (S107). Based on the one or more verification results, each node 200a-200c generates a block containing the transaction data, to be stored in the blockchain (S108).
[0105] According to this, since verification using a type of digital signature that cannot be verified by the node is performed by the information terminal 300 on behalf of the node, it is possible to realize a blockchain system 200 in which even devices that do not support the digital signatures used in blockchain technology can participate in block generation. As a result, even if the blockchain's digital signatures are migrated to, for example, a next-generation signature method in order to maintain security, the cost for nodes to participate in the blockchain system 200 can be reduced, and as a result, the operation and maintenance costs of the blockchain system 200 can be reduced.
[0106] In the system 1 according to this embodiment, the one or more programs are two or more programs. In reception (S107), each of the nodes 200a to 200c receives two or more verification results generated by the two or more programs from the information terminal 300. Each of the nodes 200a to 200c generates a block including transaction data based on the two or more verification results.
[0107] Therefore, even if some of the programs contain unauthorized programs, the possibility of receiving a verification result from a legitimate program can be increased.
[0108] In the system 1 according to this embodiment, if a predetermined number or more of the two or more verification results indicate successful verification in the generation (S108), each node 200a to 200c generates a block including transaction data, and if less than a predetermined number of the two or more verification results indicate successful verification, each node does not generate a block including transaction data.
[0109] Therefore, even if some of the verification results are fraudulent due to fraudulent programs, blocks will not be generated unless the number of fraudulent programs is greater than a predetermined number, thereby preventing fraudulent blocks from being generated due to fraudulent verification results from fraudulent programs.
[0110] In the system 1 according to the present embodiment, the predetermined number is a majority of the total number of verification results, which is two or more.
[0111] Therefore, even if some of the verification results are fraudulent due to fraudulent programs, a block will not be generated unless the number of fraudulent programs is in the majority, thereby preventing fraudulent blocks from being generated due to fraudulent verification results from fraudulent programs.
[0112] In the system 1 according to this embodiment, when a predetermined number or more of verification results indicate successful verification, each node 200a to 200c further pays a reward to the addresses of a predetermined number or more of the programs that generated the predetermined number or more of verification results out of two or more programs.
[0113] Therefore, a reward is paid to a program that generates a legitimate verification result, and no reward is paid to a program that generates an illegitimate verification result, which encourages legitimate programs to be added to information terminals and reduces the possibility that illegitimate programs will be added to information terminal 300.
[0114] In the system 1 according to this embodiment, each node 200a to 200c further reduces the reliability of the programs among two or more programs that have generated less than the predetermined number of verification results, if the verification results indicate a verification success or a verification failure.
[0115] Therefore, the reliability can be used to determine whether a program is an unauthorized program or not.
[0116] In the system 1 according to the present embodiment, in the transmission step (S105), each of the nodes 200a to 200c transmits, together with the transaction data, request information for causing only two or more programs selected from among the plurality of programs to verify the transaction data. In the information terminal 300, verification of the transaction data is performed by the two or more programs specified by the request information.
[0117] Therefore, each of the nodes 200a to 200c can select a program to execute verification, for example, from among legitimate programs.
[0118] In the system 1 according to the present embodiment, when less than a predetermined number of verification results indicate a verification success or a verification failure, each of the nodes 200a to 200c further reduces the reliability of less than the predetermined number of programs that generated less than the predetermined number of verification results, among the two or more programs. The two or more programs are programs whose reliability is equal to or higher than the predetermined reliability.
[0119] Therefore, each of the nodes 200a to 200c can select a program to be verified from among programs whose reliability is equal to or higher than a predetermined reliability and which are highly likely to be legitimate.
[0120] Second Embodiment [System Configuration] FIG. 8 is a block diagram showing the configuration of a system according to a second embodiment.
[0121] 8, the system 1A includes an information terminal 100 and a blockchain system 200A. The system 1A according to the second embodiment differs from the system 1 according to the first embodiment in that the information terminal 300 is incorporated into the blockchain system 200A. Therefore, the differences from the system 1 according to the first embodiment will be described.
[0122] FIG. 9 is a diagram illustrating an example of a configuration of a node according to the second embodiment.
[0123] The nodes 200Aa to 200Ac differ from the nodes 200a to 200c of the first embodiment in that they further include a smart contract execution unit 206.
[0124] The smart contract execution unit 206 operates the smart contract by executing contract code and the like included in the transaction data stored in the blockchain of the distributed ledger 205. The smart contract corresponds to the program stored in the information terminal 300 in the first embodiment, and includes contract code that verifies transaction data using a type of digital signature that cannot be verified by a node. In other words, the smart contract execution unit 206 realizes the function of the information terminal 300 in the first embodiment, that is, the function of verifying transaction data using a type of digital signature that cannot be verified by a node. Therefore, each of the multiple programs in Figures 6 and 7 may be interpreted as a smart contract.
[0125] In this way, the smart contract execution unit 206 can manage various processes using the distributed ledger 205 by running smart contracts. Note that smart contracts are generated by applications on the nodes 200Aa-200Ac or the information terminals 100 and 300 based on user operations, for example, and blocks containing these smart contracts are stored in the blockchain in advance. In other words, the blockchain stores the contract code of the smart contract.
[0126] The contract code of the smart contract may be separated and stored separately in the blockchain, or may be stored as a single integrated contract code in the blockchain.
[0127] [System Operation] Next, the operation of the system 1A configured as above will be described.
[0128] 10 is a sequence diagram showing an example of the operation of the system according to embodiment 2. In the diagram, transaction data may be expressed as Tx data.
[0129] The information terminal 100 executes steps S101 and S102 of the first embodiment.
[0130] The blockchain system 200A executes steps S103 and S104 of the first embodiment.
[0131] The blockchain system 200A executes a smart contract based on each of one or more pieces of transaction data acquired from the transaction pool and verifies the transaction data (S106a). Step S106a is the same process as step S106 in the first embodiment, except that the processing is performed by the blockchain system 200A.
[0132] The blockchain system 200A executes steps S108 and S109 of the first embodiment.
[0133] [Effects, etc.] In the system 1A according to this embodiment, each of the one or more programs is a contract code that constitutes a smart contract. The smart contract is stored in a blockchain. Each of the multiple nodes 200Aa to 200Ac that constitute the blockchain system 200A has the same functions as the information terminal 300 according to the first embodiment.
[0134] As a result, each node 200Aa to 200Ac in the blockchain system 200A can obtain the verification results of transaction data using digital signatures through the smart contract of the blockchain system 200A. Because the smart contract is stored in the blockchain system 200A, tampering with the smart contract can be prevented. In other words, the device can receive highly reliable verification results from the blockchain system 200A.
[0135] (Supplementary Note) The following provides a supplementary explanation of the distributed ledger in the above embodiment or modification. Here, a blockchain will be described as an example of a distributed ledger, but the same applies to other distributed ledgers.
[0136] FIG. 11 is an explanatory diagram showing the data structure of a blockchain.
[0137] A blockchain is a chain of blocks, which are the units of record. Each block contains multiple transaction data and the hash value of the immediately preceding block. Specifically, block B2 contains the hash value of the previous block B1. A hash value calculated from the multiple transaction data contained in block B2 and the hash value of block B1 is then included in block B3 as the hash value of block B2. In this way, by connecting blocks in a chain while including the contents of the previous block as a hash value, tampering with the recorded transaction data is effectively prevented.
[0138] If past transaction data were to be changed, the hash value of the block would be different from before the change, and in order to make the altered block appear correct, all subsequent blocks would have to be recreated, which is extremely difficult in reality. This property is used to ensure that blockchains are tamper-resistant.
[0139] FIG. 12 is an explanatory diagram showing the data structure of the transaction data.
[0140] The transaction data shown in Figure 12 includes a transaction body P1 and a digital signature P2. The transaction body P1 is the data body included in the transaction data. The digital signature P2 is a digital signature generated for the hash value of the transaction body P1 using the signature key of the creator of the transaction data. 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+.
[0141] The transaction data has digital signature P2, making it virtually impossible to tamper with. If the transaction data were to be tampered with, verification using digital signature P2 would fail, revealing that the transaction data had been tampered with. This prevents tampering with the transaction body P1.
[0142] 13 and 14 are explanatory diagrams showing transaction data related to the execution of a smart contract, and processes related to the execution of a smart contract, respectively.
[0143] A series of processes related to the execution of a smart contract using a distributed ledger will be described with reference to Figures 13 and 14.
[0144] In step SB1, the node stores transaction data B11, including contract code B12 that describes the processing of the smart contract, in the distributed ledger B10. For example, the node acquires transaction data B11 by receiving the transaction data B11 from an information processing device via communication or by the node itself generating the transaction data B11, and stores the acquired transaction data B11 in the distributed ledger B10. Step SB1 is performed before executing the smart contract.
[0145] In step SB2, the node stores transaction data B15, including instructions B16 for executing 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.
[0146] In step SB3, in response to the transaction data B15 including the instruction B16 being stored in the distributed ledger B10 in step SB2, the node reads the contract code B12 from the distributed ledger B10 and executes processing based on the contract code B12. The results of the processing may be included in the transaction data and stored in the distributed ledger B10.
[0147] FIG. 15 is an explanatory diagram showing the structure of an NFT and metadata. An NFT is a token stored in a distributed ledger and is a unique token (in other words, a non-fungible token). NFTs are standardized, for example, as ERC (Ethereum Request for Comments) 721, but are not limited to this. NFTs may conform to a different standard or may be non-standard (for example, proprietary to an organization). While ERC 721 is a standard for unique tokens, the NFTs described herein do not necessarily have to be unique tokens.
[0148] 15 shows transaction data B21 stored in the distributed ledger. The transaction data B21 stores an NFT. The NFT includes a token ID (i.e., identification information that can uniquely identify the NFT) and a metadata uniform resource identifier (URI).
[0149] The NFT has metadata. The metadata may be located in a location accessible via a network (e.g., storage device B22). A metadata URI indicating the location of the metadata may be calculated using the NFT's token ID and a predetermined base URI.
[0150] The information managed as an NFT may be included in the transaction data B21 or in the metadata. Including the information managed as an NFT in the metadata has the advantage of reducing the amount of information included in the transaction data B21 (in other words, the information included in the blockchain). In this case, it can be said that the metadata contains the actual information managed as an NFT. When an image is managed as an NFT, a URL indicating the image data of the image may be managed as an NFT.
[0151] Through the above series of processes, when the distributed ledger system receives transaction data B15 including instructions B16 for executing a smart contract, it automatically (i.e., without manual intervention) executes the processing in accordance with the instructions B16, enabling highly efficient (i.e., high speed or short processing time). Achieving highly efficient processing has the effect of reducing power consumption. Furthermore, since no manual intervention is required, it is possible to prevent human tampering with information, fraud, or human error. Furthermore, since the results of the processing thus executed are stored in the blockchain, it is virtually impossible to tamper with the results of the processing.
[0152] In the above embodiments, each component may be configured with dedicated hardware, or may be realized by executing a software program suitable for each component. Each component may be realized by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory. Here, the software that realizes the devices of the above embodiments is the following program.
[0153] In other words, this program causes a computer to execute a control method that acquires transaction data including a digital signature of a type that cannot be verified by the device, transmits the transaction data to an information terminal that stores one or more programs that verify the transaction data using the digital signature of the type that cannot be verified in order to verify the transaction data using the digital signature included in the transaction data, receives one or more verification results generated by the one or more programs from the information terminal, and generates a block that includes the transaction data, which is to be stored in a blockchain, based on the one or more verification results.
[0154] Although the devices according to one or more aspects have been described based on the embodiments, the present invention is not limited to these embodiments. As long as they do not deviate from the spirit of the present invention, various modifications conceivable by those skilled in the art to the present embodiments and configurations constructed by combining components of different embodiments may also be included within the scope of one or more aspects.
[0155] The present disclosure is useful as a control method that allows even devices that do not support digital signatures used in blockchain technology to participate in block generation.
[0156] 1, 1A System 100, 300 Information terminal 200, 200A Blockchain system 200a to 200c, 200Aa to 200Ac Node 101, 201, 301 Communication unit 102, 302 Input reception unit 103, 303 Display unit 104, 202, 304 Control unit 105, 305 Memory unit 203 Recording unit 204 Block generation unit 205 Distributed ledger 206 Smart contract execution unit 500 Network
Claims
1. A control method executed by a device, comprising: acquiring transaction data including a digital signature of a type that cannot be verified by the device; transmitting the transaction data to an information terminal storing one or more programs that verify the transaction data using the digital signature of the type that cannot be verified, in order to verify the transaction data using the digital signature included in the transaction data; receiving one or more verification results generated by the one or more programs from the information terminal; and generating a block including the transaction data, to be stored in a blockchain, based on the one or more verification results.
2. The control method according to claim 1, wherein the one or more programs are two or more programs, and the receiving step includes receiving from the information terminal two or more verification results generated by the two or more programs, and generating a block including the transaction data based on the two or more verification results.
3. The control method according to claim 2, wherein, in the generation, if a predetermined number or more of the two or more verification results indicate successful verification, a block including the transaction data is generated, and if less than the predetermined number of the two or more verification results indicate successful verification, a block including the transaction data is not generated.
4. The control method according to claim 3, wherein the predetermined number is a majority of the total number of the two or more verification results.
5. The control method according to claim 3 or 4, further comprising: if the predetermined number or more of verification results indicate successful verification, paying a reward to addresses of a predetermined number or more of the programs among the two or more programs that have generated the predetermined number or more of verification results.
6. A control method according to claim 3 or 4, further comprising: if the verification results less than the predetermined number indicate a verification success or a verification failure, lowering the reliability of the programs out of the two or more programs that have generated the verification results less than the predetermined number.
7. A control method according to any one of claims 2 to 4, wherein the transmission includes transmitting information together with the transaction data for causing only the two or more programs selected from a plurality of programs to verify the transaction data, and the two or more programs specified by the information verify the transaction data at the information terminal.
8. The control method of claim 7 further comprises: if less than a predetermined number of verification results indicate verification success or verification failure, lowering the reliability of less than a predetermined number of programs among the two or more programs that have generated less than the predetermined number of verification results; and the two or more programs are programs whose reliability is equal to or greater than a predetermined reliability.
9. A control method according to any one of claims 2 to 4, wherein each of the one or more programs is a contract code constituting a smart contract, the smart contract is stored in the blockchain, and the information terminal is one of a plurality of information terminals constituting a blockchain system that manages the blockchain.
10. An apparatus comprising: a processor; and a memory, wherein the processor uses the memory to obtain transaction data including a digital signature of a type that cannot be verified by the apparatus; transmit the transaction data to an information terminal storing one or more programs that verify the transaction data using the digital signature of the type that cannot be verified, in order to verify the transaction data using the digital signature included in the transaction data; receive from the information terminal one or more verification results generated by the one or more programs; and generate a block to be stored in a blockchain, the block including the transaction data, based on the one or more verification results.
11. A program for causing a computer to execute a control method executed by an apparatus, comprising: acquiring transaction data including a digital signature of a type that cannot be verified by the apparatus; transmitting the transaction data to an information terminal storing one or more programs for verifying the transaction data using the digital signature of the type that cannot be verified, in order to verify the transaction data using the digital signature included in the transaction data; receiving one or more verification results generated by the one or more programs from the information terminal; and generating a block including the transaction data, to be stored in a blockchain, based on the one or more verification results.
Citation Information
Patent Citations
Vehicle inspection device
JP2016151471A
Communication device, server, signature verification commission system, and signature verification commission method
JP2016220062A
Content distribution system, content distribution method, content generation device, and content generation program
JP2017204707A
Verification program, verification method, and information processing apparatus
JP2023121536A
Minimizing the impact of failed peers on the blockchain
JP2023552784A