Control method, server, and program
The method addresses blockchain bloat by deleting long-unused transaction data from wallets and smart contracts, maintaining integrity through Merkle trees, thus reducing operational costs.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
- Filing Date
- 2022-07-26
- Publication Date
- 2026-06-16
Smart Images

Figure 0007874646000001 
Figure 0007874646000002 
Figure 0007874646000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a control method, a server, and a program.
Background Art
[0002] A wallet is known as a virtual wallet for managing cryptocurrency such as coins traded using blockchain technology.
[0003] For example, Patent Document 1 discloses a system that can securely transmit information for using a wallet while ensuring transparency, using blockchain transactions in which smart contracts can be implemented.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] In actual banks and the like, measures are taken to close accounts that have not been accessed for several years, or measures are taken to collect fees for maintaining accounts.
[0006] However, for example, the blockchain used in Patent Document 1 does not have such a mechanism, and even wallets and smart contracts that have not been used for a long time will remain in the blockchain forever.
[0007] As a result, there is a problem that the blockchain becomes bloated and the operation cost of the blockchain increases.
[0008] This disclosure is made in light of the circumstances described above and provides control methods that can suppress the bloat of blockchains. [Means for solving the problem]
[0009] To achieve the above objective, a control method relating to one form of this disclosure is a control method for a blockchain managed by multiple nodes, The control method is performed by a computer located in one of the multiple nodes. Each of the multiple blocks included in the blockchain contains a header of metadata which includes the hash value of the previous block and a transaction tree which is a Merkle tree summarizing the multiple transaction data included in that block, as well as multiple transaction data which constitute the main data. Transaction data relating to a first target that has not been used for a predetermined period of time, among targets which are blockchain wallets, smart contracts, or specific transaction data, is deleted from the multiple blocks.
[0010] 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. [Effects of the Invention]
[0011] According to the control methods disclosed here, it is possible to suppress the bloat of the blockchain. [Brief explanation of the drawing]
[0012] [Figure 1] Figure 1 is a block diagram schematically showing the configuration of the control system according to the embodiment. [Figure 2] Figure 2 is an explanatory diagram showing the data structure of a blockchain according to an embodiment. [Figure 3] Figure 3 is an explanatory diagram showing the data structure of a blockchain block according to an embodiment. [Figure 4] Figure 4 shows an example of ledger information in multiple blocks included in the blockchain according to the embodiment. [Figure 5] Figure 5 shows an example of an account list included in a block according to the embodiment. [Figure 6] Figure 6 shows an example of a Tx data list included in a block according to the embodiment. [Figure 7] Figure 7 is a block diagram schematically showing the configuration of the nodes according to the embodiment. [Figure 8] Figure 8 is a flowchart showing the process overview of how a BC node in the embodiment deletes actual data from the blockchain. [Figure 9] Figure 9 is a flowchart showing an example of processing for a blockchain wallet according to the embodiment. [Figure 10] Figure 10 shows an example of deleting an account list related to a processing example for a blockchain wallet according to this embodiment. [Figure 11] Figure 11 shows an example of deleting a Tx data list related to an example of processing for a blockchain wallet according to the embodiment. [Figure 12] Figure 12 is a flowchart showing an example of processing for a smart contract according to an embodiment. [Figure 13] Figure 13 shows an example of deleting an account list related to Processing Example 1 for a smart contract according to the embodiment. [Figure 14] Figure 14 shows an example of deleting a Tx data list related to Processing Example 1 for a smart contract according to the embodiment. [Figure 15] Figure 15 is a flowchart showing an example of processing for a smart contract according to an embodiment. [Figure 16] Figure 16 shows an example of the information contained in the deletion request transaction data related to Processing Example 2 for a smart contract according to the embodiment. [Figure 17]FIG. 17 is a diagram showing an example of information included in deletion rule setting transaction data. [Figure 18] FIG. 18 is an explanatory diagram showing the data structure of a blockchain according to another embodiment. [Figure 19] FIG. 19 is an explanatory diagram showing the data structure of a block of a blockchain according to another embodiment. **Embodiments for Carrying Out the Invention**
[0013] The first embodiment of the present disclosure is a method for controlling a blockchain managed by a plurality of nodes. In each of the plurality of blocks included in the blockchain, a header of meta-information including a hash value of the previous block and a transaction tree obtained by summarizing a plurality of transaction data included in the block by a Merkle tree, and a plurality of transaction data which are main body data are stored. A control method for deleting transaction data related to a first target that has not been used for a predetermined period among a blockchain wallet, a smart contract, or specific transaction data which is a target.
[0014] According to this, a control method capable of suppressing the enlargement of the blockchain can be realized.
[0015] More specifically, transaction data related to a first target which is at least one of a blockchain wallet, a smart contract, and specific transaction data including physical data other than a transaction history that has not been used for a long time is deleted from a plurality of blocks of the blockchain.
[0016] As a result, the integrity of the blockchain can be verified using the headers of a plurality of blocks of the blockchain, and the transaction data which is the main body data of the unused transaction information can be deleted without being tampered with.
[0017] In this way, by reducing the amount of blockchain data that has not been used for a specified period, the bloat of the blockchain can be suppressed.
[0018] Herein, a second embodiment of the present disclosure is, for example, the first embodiment of the control method, which obtains from one of the plurality of nodes transaction data created by the user who created the first object and indicating that the first object should be deleted, and deletes the transaction data relating to the first object when the deletion request transaction data is recorded on the blockchain.
[0019] This allows the transaction data related to a first target, which has not been used for a predetermined period, to be deleted from multiple blocks of the blockchain, triggered by retrieving the deletion request transaction data created by the user who created the first target.
[0020] Furthermore, a third form of this disclosure is a first form of control method in which, for example, if transaction data including an address indicating an object that is a blockchain wallet, smart contract, or specific transaction data is not acquired for a predetermined period, the object is considered to be the first object, and transaction data relating to that object is deleted.
[0021] This allows the transaction data relating to the first target to be deleted from multiple blocks of the blockchain when transaction data indicating the address of the first target is not retrieved for a predetermined period of time.
[0022] Furthermore, a fourth embodiment of this disclosure is a control method of any of the first to third embodiments, which, for example, if there is a blockchain wallet whose coin balance has reached zero, deletes the transaction data relating to the blockchain wallet, treating the blockchain wallet as the first target.
[0023] Thus, with respect to blockchain wallets, when the balance of coins exchanged in the blockchain wallet reaches zero, the transaction data related to the blockchain wallet may be deleted from multiple blocks of the blockchain. In other words, if a blockchain wallet is of the disposable type, it will no longer be used after the coin balance reaches zero, so the transaction data related to this blockchain wallet may be deleted, treating it as the first target. This reduces the amount of blockchain data that is not used for a predetermined period, thereby suppressing blockchain bloat.
[0024] Furthermore, the fifth form of this disclosure is a control method of any of the first to fourth forms, in which, for example, the header further stores an account list describing financial transaction information relating to an account assigned when a blockchain wallet is created, and when the first target is a first blockchain wallet, when deleting transaction data relating to the first target, the first transaction data that includes the first blockchain wallet as the source or destination, among the transaction data that includes the first blockchain wallet as the source or destination, a second blockchain wallet that is different from the first blockchain wallet and has been deleted, and the information of the first blockchain wallet is deleted from one or more account lists that describe the information of the first blockchain wallet among the multiple account lists included in the multiple blocks.
[0025] This allows us to maintain the ability to verify the integrity of the blockchain using the headers of multiple blocks, so that the transaction data of the first target, the first blockchain wallet, can be deleted without appearing tampered with.
[0026] Furthermore, the sixth form of this disclosure is, for example, a control method of any of the first to fifth forms in which, if the first target is a first blockchain wallet, the information of the first blockchain wallet included in the world state is deleted before deleting the transaction data relating to the first target.
[0027] This allows us to maintain the ability to verify the integrity of the blockchain using the headers of multiple blocks, so that the transaction data of the first target, the first blockchain wallet, can be deleted without appearing tampered with.
[0028] Herein, the seventh form of this disclosure is a fifth form of control method in which, for example, the information of the first blockchain wallet included in the world state is information of the sender and receiver using the first blockchain wallet.
[0029] Furthermore, the eighth form of this disclosure is, for example, a control method of the first to seventh forms in which, when deleting transaction data relating to the first object, if the first object is the first smart contract, the first transaction data that deploys the first smart contract is deleted.
[0030] This allows for the deletion of transaction data containing the actual smart contract data that is not being used, without tampering with the blockchain, while still maintaining the ability to verify the integrity of the blockchain using the headers of multiple blocks.
[0031] Therefore, by reducing the amount of blockchain data that has not been used for a specified period, the bloat of the blockchain can be suppressed.
[0032] Furthermore, the ninth embodiment of this disclosure is, for example, the eighth embodiment of a control method in which, when deleting transaction data relating to the first object, the second transaction data for calling the first smart contract is deleted along with the first transaction data for deploying the first smart contract.
[0033] This allows for the deletion of transaction data containing the actual smart contract data that is not being used, without tampering with the blockchain, while still maintaining the ability to verify the integrity of the blockchain using the headers of multiple blocks.
[0034] Therefore, by reducing the amount of blockchain data that has not been used for a specified period, the bloat of the blockchain can be suppressed.
[0035] Furthermore, the tenth form of this disclosure is, for example, a control method of the eighth or ninth form in which, when deleting transaction data relating to the first target, the header further stores an account list describing information about account addresses created when the first smart contract is deployed, and when deleting transaction data relating to the first target, the control method further deletes information about the account address from one or more account lists containing the account address among the multiple account lists included in the multiple blocks.
[0036] This allows the integrity of the blockchain to be verified using the headers of multiple blocks, thus enabling the deletion of the transaction data of the smart contract, which is the primary target, without appearing to have been tampered with.
[0037] Furthermore, an eleventh embodiment of this disclosure is, for example, a control method of any eighth to tenth embodiment in which a world state indicating the state of the entire blockchain network is stored in the on-memory of the plurality of nodes, and the information of the first smart contract included in the world state is deleted before the transaction data relating to the first object is deleted.
[0038] This allows the integrity of the blockchain to be verified using the headers of multiple blocks, thus enabling the deletion of transaction data related to the smart contract, which is the primary target, without appearing to have been tampered with.
[0039] Furthermore, a server relating to one form of this disclosure is a server that controls a blockchain managed by multiple nodes, wherein each of the multiple blocks included in the blockchain stores a header of metadata including the hash value of the previous block and a transaction tree that summarizes the multiple transaction data included in the block using a Merkle tree, and multiple transaction data which constitute the main data, and the server is one of the multiple nodes and comprises a processor and memory, wherein the processor uses the memory to delete transaction data relating to a first object that has not been used for a predetermined period of time from the multiple blocks, which is an object that is a blockchain wallet, a smart contract or specific transaction data.
[0040] The embodiments will be described below with reference to the drawings. Note that each embodiment described below represents a preferred example of the present disclosure. In other words, the numerical values, components, arrangement and connection configurations of components, steps, and the order of steps shown in the following embodiments are examples and are not intended to limit the present disclosure. The present disclosure is identified by the claims. Therefore, components in the following embodiments that are not described in the independent claims are described as components that constitute a more preferred configuration, even though they are not necessarily required to achieve the objectives of the present disclosure.
[0041] (Embodiment) The control system in the embodiment will be described below with reference to the drawings.
[0042] [Control system configuration] The control system disclosed here controls a blockchain managed by multiple nodes and, in order to curb blockchain bloat, removes unnecessary transaction data from multiple blocks contained in the blockchain in a tamper-proof manner.
[0043] Figure 1 is a schematic block diagram showing the configuration of the control system according to this embodiment.
[0044] The control system according to this embodiment includes BC nodes 10A, 10B, and 10N, as shown in Figure 1. These are communicated together via a network N. Network N may consist of any communication line or network, including, for example, the Internet or a mobile phone carrier network. BC nodes 10A, 10B, or 10N may also be referred to as "BC node 10". Although Figure 1 shows an example where the control system has three BC nodes 10, it is not limited to this. That is, the control system may have four or more BC nodes 10.
[0045] [Data structure] This section explains the data structure of Block 100 and the data structure of Block n.
[0046] <Blockchain 100 Data Structures> Figure 2 is an explanatory diagram showing the data structure of blockchain 100 according to an embodiment.
[0047] 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.
[0048] 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.
[0049] <Block data structure> Figure 3 is an explanatory diagram showing the data structure of block n of blockchain 100 according to this embodiment. Figure 3 schematically represents the data structure of block n, which is one of several blocks included in blockchain 100.
[0050] Each of the multiple blocks in Blockchain 100 contains a metadata header that includes, in addition to the hash value of the previous block, a transaction tree that summarizes the multiple transaction data contained in that block using a Merkle tree. Furthermore, each of the multiple blocks in Blockchain 100 also contains the main data, which consists of multiple transaction data.
[0051] More specifically, block n in this embodiment, as shown in Figure 3, has a header and a plurality of transaction data, the header including ledger information, an account list and a Tx receipt list.
[0052] The ledger information for block n includes the hash value of the previous block, the Nounce, the Tx list, the hash value, the Word State trie, and the Tx trie.
[0053] The hash value of the previous block stores the hash value of the header of the previous block. The Nounce field stores a randomly generated number that is used only once. The hash value field stores the hash value representing the current block n. The Tx list stores the hash values of each of the multiple transaction data included in the current block n.
[0054] The Word State trie stores the hash value of the root, which is a Merkle tree summary of all account states after all transaction data in block n has been executed. The hash value of the root stored in the Word State trie can be calculated using the world state, which represents the state of the entire blockchain 100 network, as the source data. The world state, which serves as the source data, is stored in memory on multiple nodes that manage blockchain 100.
[0055] A Tx trie is a transaction tree that summarizes the multiple transaction data contained in a block using a Merkle tree. Specifically, a Tx trie stores the hash value of the root, which is a Merkle tree summary of all transaction data contained in block n. A Merkle tree is a tree structure obtained by recursively hashing the hash values of a given dataset. The root hash, which is the root of the tree, is a fixed-size value that contains the hash values of all the leaves, and the leaves of the tree are the hash values of each data in the dataset. In other words, the root hash contains the hash properties of all the leaves. Therefore, if the leaf data is even slightly modified, it will take a completely different value, which can be used to verify later whether the data has been tampered with.
[0056] Figure 4 shows an example of ledger information in multiple blocks included in the blockchain 100 according to this embodiment. Figure 4 shows an example of ledger information in multiple blocks included in the blockchain 100 as a list. Each line of the list shown in Figure 4 corresponds to the ledger information of one block. The ledger information shown in Figure 4 can also be called a block list.
[0057] Let's return to Figure 3 and continue the explanation.
[0058] The Tx receipt list is information that stores the execution results of multiple transaction data contained in block n in a tree structure. More specifically, the Tx receipt list stores the hash value of the root, which is a Merkle tree summary of the execution results of all transaction data contained in block n.
[0059] Furthermore, the account list is the account information stored in the header of block n. The account list describes financial transaction information related to accounts granted when a blockchain wallet is created. This account list may also contain information about account addresses created when a smart contract is deployed.
[0060] Figure 5 shows an example of an account list included in block n according to this embodiment. In this embodiment, an account address is created as an account when a blockchain wallet is created and when a smart contract is deployed. In the example shown in Figure 5, if the account address corresponds to a blockchain wallet, information about financial transactions and information about the number of coins currently held as a result of financial transactions are described and linked to the account address. The number of Tx issued is information about financial transactions. The number of coins held is information about the number of coins currently held, and in Figure 5 it is shown as the quantity of Ether, a cryptocurrency in Ethereum. Note that coins are an example of a cryptocurrency or virtual asset usable on Blockchain 100 and are not limited to cryptocurrencies usable on Ethereum, etc. Also, if the account address corresponds to a smart contract, the hash value of the smart contract is described in Code HASH and linked to that account address.
[0061] Let's return to Figure 3 and continue the explanation.
[0062] Multiple transaction data are stored in a location other than the header. These multiple transaction data are the main data of the multiple transaction information described in the header, and store transaction information or actual data. In this embodiment, each block manages multiple transaction data using a Tx data list stored in a location other than the header.
[0063] Figure 6 shows an example of a Tx data list included in block n according to this embodiment. Block n according to this embodiment manages multiple transaction data in a Tx data list by identifying them by Tx addresses.
[0064] In Ethereum, there are four types of transaction data: transaction data for monetary transactions, transaction data for deploying smart contracts, transaction data for calling smart contracts, and other transaction data. Transaction data for monetary transactions is used to send money from one or more wallets to one or more wallets. Transaction data for deploying smart contracts is used to register the smart contract program itself on the blockchain. Transaction data for calling smart contracts is used to call registered smart contracts. Other transaction data is used for purposes such as registering data on the blockchain.
[0065] In this embodiment, multiple transaction data are primarily used for sending coins, deploying smart contracts, and calling smart contracts. Additionally, specific transaction data may be used to register data on the blockchain. Transaction data used for sending coins includes the sender and recipient addresses and the number of coins to send. Transaction data used for deploying smart contracts includes the hash value of the smart contract and the program body of the smart contract as binary data (not shown). Transaction data used for calling smart contracts includes the sender and recipient addresses and the hash value of the smart contract to be called.
[0066] [BC node 10] Each of the multiple BC nodes 10 manages the blockchain 100. The BC nodes 10A, 10B, and 10N shown in Figure 1 are independently operating nodes that are connected and communicate via the network N. Since BC nodes 10A, 10B, and 10N have similar configurations, they will be described hereafter as BC node 10.
[0067] Figure 7 is a schematic block diagram showing the configuration of the BC node 10 according to this embodiment.
[0068] 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 7, 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.
[0069] <Communications Department 11> The communication unit 11 is a wireless or wired communication interface that communicates with other BC nodes 10 or with user terminals (not shown) connected to the network N.
[0070] In this embodiment, the communication unit 11 transmits and retrieves transaction data. The communication unit 11 also retrieves information contained in the block header of the blockchain 100.
[0071] <Blockchain memory unit 12> The blockchain memory unit 12 stores blockchain 100 with the same content as other blockchain nodes 10, etc. In other words, the blockchain memory unit 12 is a storage device that stores blockchain 100. The blockchain memory unit 12 is implemented using an HDD (Hard Disk Drive) or SSD (Solid State Drive), etc.
[0072] <Processing Unit 13> The processing unit 13 can be implemented, for example, by a processor such as a CPU executing a program using memory. Upon execution of a trigger, the processing unit 13 checks whether there is a first target that satisfies predetermined conditions among targets such as a blockchain wallet, a smart contract, or specific transaction data. If there is a first target that satisfies the predetermined conditions, the processing unit 13 deletes the transaction data related to the first target from one or more blocks of the blockchain 100.
[0073] Here, the trigger may be executed periodically or whenever a block is generated, for example, according to the standards of blockchain 100 or rules recorded in the ledger of blockchain 100, i.e., in the blocks. In this case, the rule to delete a blockchain wallet or smart contract that meets certain conditions may be defined as a blockchain standard or recorded in the blockchain ledger. Alternatively, the trigger may be executed when delete request transaction data indicating the deletion of the first target is recorded in the blockchain.
[0074] The specified condition is a condition indicating that the target is no longer needed, for example, that it has not been used for a specified period of time. The specified period can be set as appropriate, but it can be a long period such as one year. Note that the specified period may be set differently for each first target, i.e., for each blockchain wallet, smart contract, or specific transaction data, or even for the same target, different periods may be set for each blockchain wallet. Furthermore, if the target is a blockchain wallet, the specified condition may be that the coin balance has become 0.
[0075] Furthermore, the processing unit 13 can create smart contracts through user operation or control by a terminal operated by the user. The processing unit 13 also creates transaction data and executes a consensus algorithm for the transaction data with multiple other BC nodes 10, through user operation or control by a terminal operated by the user. The processing unit 13 also writes the transaction data, after the consensus algorithm has been processed, to a block in blockchain 100. Additionally, the processing unit 13 executes smart contracts that are written to blocks in blockchain 100 and running in memory.
[0076] In this embodiment, the processing unit 13 deletes transaction data relating to a first target, which is a blockchain wallet, smart contract, or specific transaction data, that has not been used for a predetermined period of time, from multiple blocks of the blockchain 100. The processing unit 13 may also determine that a first target has not been used for a predetermined period of time if transaction data including an address indicating the first target has not been retrieved and has not been recorded in the blockchain 100 for a predetermined period of time. When the processing unit 13 deletes transaction data relating to the first target from multiple blocks of the blockchain 100, it may create transaction data indicating that it has been deleted as proof of deletion and have it recorded in the blockchain 100.
[0077] Furthermore, the processing unit 13 may create deletion request transaction data indicating the deletion of the first target based on an operation by the user who created the first target. In this case, the user who created the first target creates the deletion request transaction data in order to delete the first target that has not been used for a predetermined period. When the deletion request transaction data is recorded on the blockchain 100, the processing unit 13 deletes the transaction data related to the first target.
[0078] Furthermore, if the account list is stored in the header of blockchain 100, the processing unit 13 removes the transaction data related to the first target from the block and also removes the information about the first target from the account list. This ensures that the integrity of blockchain 100 can be verified using the headers of multiple blocks of blockchain 100. In addition, if the world state, which represents the state of the entire blockchain 100 network, is stored in the in-memory of multiple BC nodes 10, the processing unit 13 removes the information about the first target included in the world state. This ensures that blockchain 100 can function correctly even if the value of the world state stored in memory is overwritten by the transaction data related to the first target.
[0079] Here, for example, let's assume the first target is the first blockchain wallet. In this case, the processing unit 13 deletes the first transaction data that includes the deleted second blockchain wallet as either the source or destination, from among the transaction data that includes the first blockchain wallet as either the source or destination. The second blockchain wallet is a different blockchain wallet from the first blockchain wallet. This makes it possible to delete the transaction data, which is the main data of the transaction information of the first blockchain wallet, the unused first target, while maintaining the ability to verify the integrity of the blockchain using the headers of multiple blocks of blockchain 100.
[0080] Furthermore, the header also contains an account list that describes financial transaction information related to the account granted when the blockchain wallet is created.
[0081] In this case, the processing unit 13 removes the information of the first blockchain wallet from one or more account lists containing information about the first blockchain wallet among the multiple account lists included in multiple blocks. This ensures that the integrity of the blockchain can be verified using the headers of multiple blocks in blockchain 100.
[0082] Furthermore, if the world state is stored in the in-memory of multiple BC nodes 10, the processing unit 13 only needs to delete the information of the first blockchain wallet included in the world state before deleting the transaction data related to the first target. The information of the first blockchain wallet included in the world state that is deleted is, for example, information between the sender and receiver using the first blockchain wallet. This ensures that blockchain 100 can function correctly even if the value of the world state stored in memory is overwritten by the transaction data related to the first blockchain wallet, which is the first target.
[0083] Furthermore, for example, suppose the first target is the first smart contract. In this case, the processing unit 13 may delete the first transaction data for deploying the first smart contract. Alternatively, the processing unit 13 may delete the second transaction data for calling the first smart contract along with the first transaction data for deploying the first smart contract. This allows the transaction data, which is the main data of the transaction information of the first smart contract, which is the first target, to be deleted while maintaining the ability to verify the integrity of the blockchain using the headers of multiple blocks of the blockchain 100.
[0084] Furthermore, the header may also contain an account list containing information about the account addresses created when the first smart contract is deployed.
[0085] In this case, the processing unit 13 removes information about the account address from one or more account lists that contain the account address created when the first smart contract is deployed, among the multiple account lists included in multiple blocks. This ensures that the integrity of the blockchain can be verified using the headers of multiple blocks in the blockchain 100.
[0086] Furthermore, if the world state is stored in the in-memory of multiple BC nodes 10, the processing unit 13 only needs to delete the information of the first smart contract included in the world state before deleting the transaction data related to the first target. This ensures that the blockchain 100 can function correctly even if the transaction data related to the first smart contract, which is the first target, overwrites the value of the world state stored in memory.
[0087] [Operation] Next, we will explain the process outline for how the BC node 10, configured as described above, deletes actual data from the blockchain 100.
[0088] [Processing Summary] Figure 8 is a flowchart illustrating the process by which the BC node 10 in this embodiment deletes actual data from the blockchain 100. As described above, each of the multiple blocks included in the blockchain 100 stores a header of metadata that includes the hash value of the previous block and a transaction tree that summarizes the multiple transaction data included in that block using a Merkle tree. In addition, each of the multiple blocks included in the blockchain 100 stores multiple transaction data, which constitute the main data, in a location different from the header.
[0089] BC node 10 is triggered periodically or whenever a block is generated, according to, for example, the standards of blockchain 100 or the rules recorded in the blockchain ledger, i.e., the blocks (S1).
[0090] Next, BC node 10 checks if there are any targets that meet the specified conditions among the targets, which are blockchain wallets, smart contracts, or specific transaction data (S2).
[0091] If no target exists in step S2 that meets the specified conditions (No in S2), the process returns to step S1.
[0092] On the other hand, in step S2, if there is an object that satisfies a predetermined condition (Yes in S2), the BC node 10 deletes the transaction data relating to that object from the blocks of blockchain 100 (S3). For example, the BC node 10 deletes the transaction data relating to a first object, which is a blockchain wallet, smart contract, or specific transaction data, that has not been used for a predetermined period of time, from multiple blocks included in blockchain 100.
[0093] [Example of processing for blockchain wallets] Next, we will explain an example of the process when the target of deleting the main data is a blockchain wallet. In this example, we will explain that the headers of multiple blocks included in blockchain 100 also contain an account list, such as the one shown in Figure 5, which describes the financial transaction information related to the account that is assigned when the blockchain wallet is created. Furthermore, we will assume that the multiple transaction data included in the block to be deleted below is managed by storing a Tx data list, such as the one shown in Figure 6, in that block.
[0094] Figure 9 is a flowchart illustrating an example of processing for a blockchain wallet according to this embodiment. Figure 9 shows BC1, BC2, and BCn as examples of multiple BC nodes 10, illustrating an example of processing in which a BC node 10 deletes actual blockchain wallet data from the blockchain 100. Figure 10 is a diagram illustrating an example of account list deletion related to the blockchain wallet processing example according to this embodiment. Figure 11 is a diagram illustrating an example of Tx data list deletion related to the blockchain wallet processing example according to this embodiment.
[0095] First, BC1, BC2, or BCn, i.e., BC node 10, checks whether there are any blockchain wallets that have not been used for a predetermined period (S101). BC node 10 performs step S101 periodically or whenever a block is generated, for example, according to the specifications of blockchain 100 or the rules recorded in the blockchain ledger, i.e., the block. Alternatively, BC node 10 may also check whether there are any blockchain wallets that have not been used for a predetermined period by checking whether transaction data containing an address indicating the target has not been retrieved (or referenced) for a predetermined period.
[0096] In step S101, if there are no blockchain wallets that have not been used for a specified period (No in S101), return to step S101.
[0097] On the other hand, in step S101, if there is a blockchain wallet that has not been used for a predetermined period of time (Yes in S101), the BC node 10 removes the information of that blockchain wallet from the account list (S102).
[0098] Here, we will explain using the example shown in Figure 10. The account list shown in Figure 10(a) is the same as the account list shown in Figure 5. In this case, BC node 10 removes the row containing the account address indicated by "0x6566.." from the account list shown in Figure 10(a) as information about an unused blockchain wallet. Figure 10(b) shows the account list from which the information about the unused blockchain wallet has been removed. In this way, BC node 10 removes the information about an unused blockchain wallet from the account list.
[0099] Next, BC node 10 enumerates all transactions from the ledger information of blockchain 100 in which the blockchain wallet is the source or destination (S103).
[0100] Next, BC node 10 checks if there is any transaction data among the enumerated transactions that has been removed from the account list, i.e., first transaction data (referred to as first transaction data), where the blockchain wallet included as both the source and destination has been removed (S104).
[0101] If there is no first Tx data in step S104 (No in S104), BC node 10 terminates processing.
[0102] On the other hand, if there is first Tx data in step S104 (Yes in S104), the BC node 10 removes the first Tx data from the block of blockchain 100 as transaction data relating to that object (S105).
[0103] Here, we will explain using the example shown in Figure 11. The Tx data list shown in Figure 11(a) is the same as the Tx data list shown in Figure 6. Assume that the account address indicating an unused blockchain wallet is "0x6566.." and that the blockchain wallet information for the account address indicated by "0x74F71..." has already been removed from the account list. Also, as shown in Figure 10(b), BC node 10 has removed the blockchain wallet information for the account address indicated by "0x6566.." from its account list. Therefore, BC node 10 removes the transaction data for the row containing the account address indicated by "0x6566.." as the destination from the Tx data list shown in Figure 11(a) as transaction data related to an unused blockchain wallet. Figure 11(b) shows the Tx data list from which the transaction data related to the unused blockchain wallet has been removed. Furthermore, since the blockchain wallet for the account address indicated by "0x74F71..." has already been deleted, BC node 10 can delete the transaction data for the above row that includes the account address indicated by "0x74F71..." as the source. In other words, BC node 10 deletes transaction data that includes an unused blockchain wallet as either the source or destination, specifically those that include another deleted blockchain wallet as either the source or destination.
[0104] In this way, transaction data related to unused blockchain wallets can be deleted while maintaining the ability to verify the integrity of blockchain 100 using the headers of multiple blocks in blockchain 100.
[0105] [Example 1 of processing smart contracts] Next, we will explain an example of processing when the target of deleting the main data is a smart contract. In this example, we will explain that the headers of multiple blocks included in blockchain 100 also contain an account list, such as the one shown in Figure 5, which contains information about the account addresses created when the first smart contract is deployed. Furthermore, we will assume that the multiple transaction data included in the block to be deleted below is managed by storing a Tx data list, such as the one shown in Figure 6, in that block.
[0106] Figure 12 is a flowchart of Processing Example 1 for a smart contract according to this embodiment. Figure 12 shows BC1, BC2, and BCn as examples of multiple BC nodes 10, and illustrates an example of processing in which BC nodes 10 delete the actual data of a smart contract from the blockchain 100. Figure 13 is a diagram showing an example of account list deletion according to Processing Example 1 for a smart contract according to this embodiment. Figure 14 is a diagram showing an example of Tx data list deletion according to Processing Example 1 for a smart contract according to this embodiment.
[0107] First, BC1, BC2, or BCn, i.e., BC node 10, checks whether there are any smart contracts (indicated as SC in the diagram) that have not been used for a predetermined period (S111). BC node 10 performs the process in step S111 periodically or whenever a block is generated, for example, according to the specifications of blockchain 100 or the rules recorded in the blockchain ledger, i.e., the block. Alternatively, BC node 10 may also check whether there are any smart contracts that have not been used for a predetermined period by checking whether transaction data containing an address indicating the target has not been retrieved (or referenced) for a predetermined period.
[0108] In step S111, if there are no smart contracts that have not been used for a predetermined period (No in S111), the process returns to step S111.
[0109] On the other hand, if in step S111 there is a smart contract that has not been used for a predetermined period of time (Yes in S111), the BC node 10 removes the information of that smart contract from the account list (S112).
[0110] Here, we will explain using the example shown in Figure 13. The account list shown in Figure 13(a) is the same as the account list shown in Figure 5. In this case, BC node 10 removes the row containing the account address indicated by "0x8AE82..." as information about unused smart contracts from the account list shown in Figure 13(a). Figure 13(b) shows the account list from which the information about unused smart contracts, i.e., the information about the account addresses of unused smart contracts, has been removed. In this way, BC node 10 removes the information about unused smart contracts from the account list.
[0111] Next, BC node 10 removes the unused smart contract deployment Tx data from the blockchain 100, i.e., the Tx data list, as transaction data related to the target (S113).
[0112] Here, we will explain using the example shown in Figure 14. The Tx data list shown in Figure 14(a) is the same as the Tx data list shown in Figure 6. BC node 10 removes the transaction data for deploying a smart contract with the code hash value indicated as "0x7E2A0..." from the Tx data list shown in Figure 14(a) as transaction data for an unused smart contract. Figure 14(b) shows the Tx data list after the transaction data for deploying a smart contract with the code hash value indicated as "0x7E2A0..." has been removed as transaction data for an unused smart contract.
[0113] Next, BC node 10 enumerates all the invocation Tx, which are transaction information for calling the smart contract, from the ledger information of blockchain 100, i.e., the Tx list (S114).
[0114] Next, BC node 10 removes the transaction data (Tx data in the diagram), which is the body data of all the enumerated calls Tx, from the block of blockchain 100 (S115).
[0115] Here, we will explain using the example shown in Figure 14. BC node 10 removes the transaction data, which is the smart contract invocation Tx data with the code hash value indicated as "0x7E2A0...", from the Tx data list shown in Figure 14(a) as transaction data related to an unused smart contract. Figure 14(b) shows the Tx data list after the transaction data invoking the smart contract with the code hash value indicated as "0x7E2A0..." has been removed as transaction data related to an unused smart contract. In other words, BC node 10 removes the smart contract invocation Tx data from the Tx data list.
[0116] This allows for the deletion of transaction data containing the program body, which is the actual data of unused smart contracts, while maintaining the ability to verify the integrity of blockchain 100 using the headers of multiple blocks in blockchain 100.
[0117] [Example 2 of processing smart contracts] Next, we will describe other processing examples when the target of deletion of the actual data is a smart contract. In this processing example, we will describe the case in which the actual data of a smart contract is deleted when a deletion request transaction data for requesting the deletion of the actual data of the smart contract is stored in blockchain 100. Note that detailed explanations of processing similar to that described in Figure 12 will be omitted. In addition, similar to the processing example above, it is assumed that the headers of multiple blocks included in blockchain 100 also contain an account list, for example, as shown in Figure 5, which contains information about the account address created when the first smart contract is deployed. Furthermore, it is assumed that the multiple transaction data included in the block to be deleted below is managed by storing a Tx data list, for example, as shown in Figure 6, in that block.
[0118] Figure 15 is a flowchart illustrating Processing Example 2 for a smart contract according to this embodiment. Figure 15 shows BC1, BC2, and BCn as examples of multiple BC nodes 10, illustrating Processing Example 2 in which BC nodes 10 delete the actual data of a smart contract from the blockchain 100. Figure 16 is a diagram showing an example of the information contained in the deletion request transaction data related to Processing Example 2 for a smart contract according to this embodiment.
[0119] First, the user operates BC1, which is one BC node 10, to cause BC1 to create a deletion request transaction data indicating that the user wants to delete the smart contract they created (S121). In step S121, for example, if the user has not used the smart contract for a year or if it is no longer needed, the user should cause BC1 to create the deletion request transaction data. The user can decide whether to delete the transaction data for calling the smart contract in addition to the transaction data for deploying the smart contract as part of deleting the smart contract's actual data. If the user also deletes the transaction data for calling the smart contract, they should include information such as a flag that specifies whether to delete the transaction data related to the smart contract. To illustrate with the example shown in Figure 16, the user should cause BC1 to create a deletion request transaction data that includes the smart contract and its address "0x8AE82..." as the target and address of the item to be deleted, and True as a flag indicating whether to delete the related Tx.
[0120] Next, when the deletion request transaction data is recorded on blockchain 100, BC1, BC2, or BCn, i.e., BC node 10, deletes the information of the smart contract from the account list (S122). The details are explained using Figure 13, so the explanation is omitted here.
[0121] Next, BC node 10 checks whether to delete the transaction data (Tx data in the diagram) associated with the smart contract by checking the flag included in the deletion request transaction data recorded on blockchain 100 (S123).
[0122] If the transaction data associated with the smart contract is not deleted in step S123 (No in S123), the BC node 10 terminates the process.
[0123] On the other hand, if in step S123 the transaction data related to the smart contract is deleted (Yes in S123), BC node 10 deletes the unused Tx data for deploying the smart contract from blockchain 100 (S124). Here, the unused Tx data for deploying the smart contract corresponds to the transaction data related to that subject. BC node 10 deletes the unused Tx data for deploying the smart contract from the block in blockchain 100 by deleting it from the block's Tx data list.
[0124] The following steps S125 and S126 are the same processes as steps S114 and S115 described above, so their explanation will be omitted.
[0125] [Effects, etc.] As described above, the control method disclosed herein deletes transaction data related to the blockchain wallet, smart contract, or specific transaction data that has not been used for a predetermined period from the blockchain 100. This enables a control method that can suppress the bloat of the blockchain.
[0126] Blockchain verification is performed using the headers of multiple blocks within the blockchain. More specifically, blockchain verification is performed using the transaction tree contained within the headers of multiple blocks within the blockchain. The transaction tree stores hash values that summarize the multiple transaction data contained in each block using a Merkle tree. In other words, blockchain verification does not require the multiple transaction data itself, which is the actual data of the multiple transaction information contained in the block. Therefore, as long as the information contained in the headers of multiple blocks is consistent, it is not a problem even if the actual data of the first target transaction information is deleted.
[0127] Therefore, since the integrity of the blockchain can be verified using the headers of multiple blocks, the transaction data, which is the main data of the first target transaction information that is not being used, can be deleted without it being considered tampered with.
[0128] It might appear that deleting transaction data—the core data of the primary target transaction information—from a block that has not been used for a specified period constitutes block tampering. However, since the transaction tree and other elements contained within the block remain unchanged, and the information in the headers of multiple blocks is consistent, this does not constitute block tampering. Furthermore, tampering with a block requires more than 50% of the nodes managing the blockchain to act simultaneously. Therefore, deleting transaction data—the core data of the primary target transaction information—that has not been used does not compromise the security of the blockchain.
[0129] Here, if a deletion request transaction data indicating the deletion of the first target, created by the user who created the first target, is obtained and recorded on the blockchain, the transaction data related to the first target may be deleted. This allows the transaction data related to the first target to be deleted from multiple blocks on the blockchain, triggered by obtaining deletion request transaction data created by the user who created the first target that has not been used for a predetermined period.
[0130] Furthermore, the control method disclosed herein may delete transaction data relating to the first target if transaction data containing an address indicating the first target has not been referenced for a predetermined period. This allows the transaction data relating to the first target to be deleted from multiple blocks of the blockchain, triggered by the fact that transaction data indicating an address indicating the first target has not been referenced for a predetermined period.
[0131] Furthermore, the control methods disclosed herein may delete transaction data related to a blockchain wallet if the coin balance in that blockchain wallet becomes zero. In other words, with respect to a blockchain wallet, when the coin balance of the cryptocurrency exchanged in the blockchain wallet becomes zero, the transaction data related to that blockchain wallet may be deleted from multiple blocks of the blockchain.
[0132] This means that if a blockchain wallet is disposable, it will not be used after the coin balance reaches zero, thus reducing the amount of blockchain data that is not used for a predetermined period. Therefore, the bloat of the blockchain can be suppressed.
[0133] Here, let's assume that the first target that has not been used for a predetermined period is the first blockchain wallet, and the second blockchain wallet has been removed from the account list. In this case, the first transaction data that includes the first blockchain wallet and the second blockchain wallet as either the sender or recipient should be deleted as transaction data related to the blockchain wallet. Additionally, the information for the first blockchain wallet should be removed from the account list.
[0134] By the way, the transaction data for the first blockchain wallet is transaction data related to monetary transactions. If all transaction data in which the first blockchain wallet is included as either the sender or recipient is deleted, it may become impossible to calculate the correct balance of other blockchain wallets. However, if both the sending and receiving blockchain wallets of the coins are deleted, there is no need to calculate the balance, so this problem is resolved. Therefore, if the blockchain wallets included as both the sender and recipient are removed from the account data, their transaction data can be deleted.
[0135] Therefore, the control method disclosed herein involves deleting the first blockchain wallet, which is the first target, from the account list, and deleting the transaction data, including the source or destination blockchain wallet that was deleted from the account list.
[0136] This allows us to maintain the ability to verify the integrity of the blockchain using the headers of multiple blocks, so that the transaction data of the first target, the first blockchain wallet, can be deleted without appearing tampered with.
[0137] Furthermore, the world state may be stored in the on-memory of each of the multiple nodes managing the blockchain. In such cases, the control method disclosed herein is sufficient to delete the information of the first blockchain wallet, which is the first target, from the world state before deleting the transaction data related to the first target.
[0138] This allows us to maintain the ability to verify the integrity of the blockchain using the headers of multiple blocks, so that the transaction data of the first target, the first blockchain wallet, can be deleted without appearing tampered with.
[0139] Furthermore, the control methods disclosed herein may also include the deletion of transaction data for deploying a smart contract from multiple blocks of the blockchain, as transaction data relating to the first target, which is a smart contract that has not been used for a predetermined period.
[0140] Furthermore, the control method of this disclosure may also delete transaction data relating to the first target, which is a smart contract that has not been used for a predetermined period, from multiple blocks of the blockchain, along with transaction data for deploying the smart contract, to call the smart contract.
[0141] This allows for the deletion of transaction data containing the actual smart contract data that is not being used, without tampering with the blockchain, while still maintaining the ability to verify the integrity of the blockchain using the headers of multiple blocks.
[0142] Therefore, by reducing the amount of blockchain data that has not been used for a specified period, the bloat of the blockchain can be suppressed.
[0143] Furthermore, the headers of multiple blocks on the blockchain may contain an account list that describes information about account addresses created when a smart contract is deployed. In such cases, the control method for this disclosure can be implemented by deleting the transaction data related to the first target, and at the same time, deleting the information about the account address from the account list.
[0144] This allows the integrity of the blockchain to be verified using the headers of multiple blocks, thus enabling the deletion of the transaction data of the smart contract, which is the primary target, without appearing to have been tampered with.
[0145] Furthermore, the world state may be stored in the on-memory of each of the multiple nodes managing the blockchain. In such cases, the control method disclosed herein is sufficient to remove the information of the smart contract, which is the first target, from the world state before deleting the transaction data related to the first target.
[0146] This allows the integrity of the blockchain to be verified using the headers of multiple blocks, thus enabling the deletion of transaction data related to the smart contract, which is the primary target, without appearing to have been tampered with.
[0147] [Other embodiments, etc.] As described above, this disclosure has been explained based on the embodiments described above, but of course, this disclosure is not limited to the embodiments described above. The following cases are also included in this disclosure.
[0148] (1) In the above embodiment, for example, Figures 15 and 16 were used to describe the case in which the actual data of a smart contract is deleted triggered by the deletion request transaction data being stored in the blockchain 100, but the embodiment is not limited to this. As mentioned above, the same applies to the case in which transaction data relating to a blockchain wallet is deleted and the case in which specific transaction data is deleted. In this case, the information contained in the deletion request transaction data is also modified as appropriate.
[0149] For example, the items included in a deletion request transaction data may include a blockchain wallet, a smart contract, or specific transaction data. If the item is a blockchain wallet, the associated transaction data will be transaction data for conducting a monetary transaction with that blockchain wallet as the source and destination. If the item is a smart contract, the associated transaction data will be transaction data for deploying that smart contract and transaction data for calling that smart contract.
[0150] (2) In the above embodiment, when deleting from one or more blocks of blockchain 100, it was explained that transaction data which is the main data of the first target transaction information that satisfies predetermined conditions according to the rules recorded in the ledger of blockchain 100, i.e., the block, is deleted. And, as a predetermined condition, it was explained that the rule to delete the first target transaction data that has not been used for a predetermined period of time is recorded in the ledger of blockchain 100, but it is not limited to this.
[0151] A predetermined user or service provider on blockchain 100 may operate BC node 10 or otherwise issue transaction data that describes the conditions indicating whether the target is no longer needed, i.e., the content of the deletion rule. In this case, the deletion rule is set when the deletion rule setting transaction data, which describes the content of the deletion rule, is agreed upon by a majority of the multiple BC nodes and written to blockchain 100.
[0152] Figure 17 shows an example of the information included in the transaction data for setting a deletion rule. In Figure 17, the time rule is set to one year and the coin balance has become zero. In other words, Figure 17 shows that if an item has not been used for a specified period of one year or if the coin balance becomes zero, the conditions indicating that the item is no longer needed are met. Note that both the time rule being one year and the coin balance becoming zero may be specified, or either one of them may be specified.
[0153] (3) Furthermore, the blockchain 100 relating to this disclosure is not limited to an Ethereum-based blockchain if its integrity is verified using the header of a block that does not contain body data, such as in an Ethereum Light node. In other words, if the integrity of the blockchain can be verified using the headers of multiple blocks of the blockchain, it may be a new blockchain that is not based on Ethereum, and some nodes may manage a blockchain consisting of blocks that do not contain body data.
[0154] Here, we will explain the data structure of a blockchain consisting of blocks that do not contain transaction data, which is the core data, and the data structure of block n (where n is a natural number) that does not contain transaction data, which is the core data.
[0155] Figure 18 is an explanatory diagram showing the data structure of blockchain 100 according to another embodiment. The same explanation as in Figure 2 is omitted.
[0156] The blockchain 100 shown in Figure 18 is a chain of blocks, which are its units of recording, and unlike the blockchain 100 shown in Figure 2, it does not contain multiple transaction data. In other words, a certain BC node 10 may manage a blockchain 100 as shown in Figure 18, which consists of connected blocks that have the hash value of the previous block and do not contain transaction data, instead of the blockchain 100 shown in Figure 2. Specifically, in the blockchain 100 shown in Figure 18, block B2 contains the hash value of the previous block B1. The hash value calculated from the information contained in the header of block B2 and the hash value of block B1 is then included in block B3 as the hash value of block B2. Therefore, even a blockchain 100C, which is a chain of connected blocks without body data, functions to effectively prevent tampering with recorded transaction data, similar to the blockchain 100 according to the above embodiment.
[0157] Figure 19 is an explanatory diagram showing the data structure of block n of blockchain 100 according to another embodiment. Figure 19 schematically represents a typical data structure of block n, which is one of several blocks included in blockchain 100.
[0158] Block n shown in Figure 19 differs from block n shown in Figure 3 in that it does not contain transaction data, which is the main data.
[0159] Furthermore, block n shown in Figure 19 differs from block n shown in Figure 3 in the contents of the Tx list included in the header. That is, the Tx list shown in Figure 19 stores the addresses of multiple transaction data that are not included in block n shown in Figure 19 but would be included in block n shown in Figure 3. For example, the Tx list shown in Figure 10 stores the addresses of multiple transaction data included in block n shown in Figure 3, which are shown in the rightmost column of Figure 6.
[0160] (4) Specifically, each device in the above embodiment is a computer system consisting of a microprocessor, ROM, RAM, hard disk unit, display unit, keyboard, mouse, etc. A computer program is recorded in the RAM or hard disk unit. Each device achieves its function by the operation of the microprocessor in accordance with the computer program. Here, the computer program is composed of a combination of multiple instruction codes that indicate commands to the computer in order to achieve a predetermined function.
[0161] (5) In the above embodiments, each device may have some or all of its constituent components made up of a single system LSI (Large Scale Integration). The system LSI is a multi-functional LSI manufactured by integrating multiple components onto a single chip, and specifically, it is a computer system comprising a microprocessor, ROM, RAM, etc. A computer program is stored in the RAM. The system LSI achieves its function by operating the microprocessor in accordance with the computer program.
[0162] Furthermore, each component of the above-mentioned device may be integrated into a single chip individually, or it may be integrated into a single chip to include some or all of the components.
[0163] Furthermore, while we refer to it as a system LSI here, depending on the degree of integration, it may also be called an IC, LSI, super LSI, or ultra LSI. Also, the method of integrated circuit implementation is not limited to LSIs; it may be implemented using dedicated circuits or general-purpose processors. After LSI manufacturing, FPGAs (Field Programmable Gate Arrays) that can be programmed, or reconfigurable processors that allow for the reconfiguration of the connections and settings of circuit cells within the LSI, may also be used.
[0164] Furthermore, if advancements in semiconductor technology or other derived technologies lead to the emergence of integrated circuit technologies that replace LSIs, then naturally, it would be possible to use those technologies to integrate functional blocks. The application of biotechnology, for example, is a possibility.
[0165] (6) Some or all of the components constituting each of the above devices may consist of a removable IC card or a standalone module. The IC card or module is a computer system consisting of a microprocessor, ROM, RAM, etc. The IC card or module may include the above-mentioned multi-functional LSI. The microprocessor operates according to a computer program, thereby enabling the IC card or module to perform its function. The IC card or module may be tamper-resistant.
[0166] (7) The disclosure may also be the methods described above. Alternatively, it may be a computer program that implements these methods using a computer, or a digital signal consisting of the computer program.
[0167] Furthermore, the computer program or the digital signal may be recorded on a computer-readable recording medium, such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray® Disc), semiconductor memory, etc. Alternatively, the digital signal may be recorded on one of these recording media.
[0168] Furthermore, this disclosure may also describe transmitting the computer program or digital signal via telecommunications lines, wireless or wired communication lines, networks such as the Internet, data broadcasting, etc.
[0169] Furthermore, the present disclosure may also provide a computer system comprising a microprocessor and memory, wherein the memory stores the computer program, and the microprocessor operates in accordance with the computer program.
[0170] Furthermore, the program or digital signal may be implemented by another independent computer system by recording and transferring it on the recording medium, or by transferring the program or digital signal via the network or the like.
[0171] (8) The above embodiments and the above modified examples may be combined. [Industrial applicability]
[0172] This disclosure can be used in control methods, servers, and programs, for example, in control methods, servers, and programs for suppressing blockchain bloat by deleting transaction data containing unnecessary entity data. [Explanation of Symbols]
[0173] 10A, 10B, 10N BC nodes 11 Communications Department 12 Blockchain memory 13 Processing Unit 100 Blockchains Blocks B1, B2, and B3 N Network
Claims
1. A method for controlling a blockchain managed by multiple nodes, The control method is performed by a computer located in one of the multiple nodes. Each of the multiple blocks included in the aforementioned blockchain contains a header of metadata which includes the hash value of the previous block and a transaction tree that summarizes the multiple transaction data included in that block using a Merkle tree, as well as the main data which consists of multiple transaction data. Transaction data relating to a first object, which is a blockchain wallet, smart contract, or specific transaction data, that has not been used for a predetermined period of time, is deleted from the plurality of blocks. Control method.
2. The control method described above is From one of the aforementioned multiple nodes, obtain a deletion request transaction data created by the user who created the first target, which indicates that the first target should be deleted. When the aforementioned deletion request transaction data is recorded on the blockchain, the transaction data relating to the first target is deleted. The control method according to claim 1.
3. If transaction data including an address indicating a blockchain wallet, smart contract, or specific transaction data is not obtained within the predetermined period, the system will assume that the target is the first target and delete the transaction data relating to that target. The control method according to claim 1.
4. Furthermore, if there is a blockchain wallet whose coin balance has reached zero, the transaction data related to the blockchain wallet is deleted, with the blockchain wallet being the first target. The control method according to claim 1.
5. The header further contains an account list describing financial transaction information related to the account granted when the blockchain wallet is created. If the first target is the first blockchain wallet, when deleting transaction data relating to the first target, Among the transaction data in which the first blockchain wallet is included as the source or destination, delete the first transaction data in which a second blockchain wallet different from the first blockchain wallet and which has been deleted is included as the source or destination. From among the multiple account lists included in the multiple blocks, delete the information of the first blockchain wallet from one or more account lists that describe the information of the first blockchain wallet. The control method according to any one of claims 1 to 4.
6. Furthermore, the on-memory of the multiple nodes stores a world state that represents the state of the entire blockchain network. If the first object is the first blockchain wallet, before deleting the transaction data relating to the first object, To delete the information of the first blockchain wallet included in the world state, The control method according to claim 5.
7. The information in the first blockchain wallet included in the world state is information between the sender and receiver using the first blockchain wallet. The control method according to claim 6.
8. When deleting transaction data relating to the first object, If the first target is the first smart contract, delete the first transaction data that deploys the first smart contract. The control method according to claim 1.
9. When deleting transaction data relating to the first object, Delete the first transaction data for calling the first smart contract, along with the first transaction data for deploying the first smart contract. The control method according to claim 8.
10. The header further contains an account list describing information about the account addresses created when the first smart contract is deployed. When deleting transaction data relating to the first object, further, From among the multiple account lists included in the multiple blocks, delete the information related to the account address from one or more account lists that describe the account address. The control method according to claim 9.
11. Furthermore, the on-memory of the multiple nodes stores a world state that represents the state of the entire blockchain network. Before deleting the transaction data relating to the first object, Delete the information of the first smart contract included in the world state. The control method according to any one of claims 8 to 10.
12. A server that controls a blockchain managed by multiple nodes, Each of the multiple blocks included in the aforementioned blockchain contains a header of metadata which includes the hash value of the previous block and a transaction tree that summarizes the multiple transaction data included in that block using a Merkle tree, as well as the main data which consists of multiple transaction data. The server is one of the plurality of nodes, Equipped with a processor and memory, The processor uses the memory to: Transaction data relating to a first object, which is a blockchain wallet, smart contract, or specific transaction data, that has not been used for a predetermined period of time, is deleted from the plurality of blocks. server.
13. A program that allows a computer to control a blockchain managed by multiple nodes, Each of the multiple blocks contained in a blockchain managed by multiple nodes contains a metadata header that includes the hash value of the previous block and a transaction tree that summarizes the multiple transaction data contained in that block using a Merkle tree, as well as the main data, which consists of multiple transaction data. To the aforementioned computer, The system will execute the deletion of transaction data relating to a first target, which is a blockchain wallet, smart contract, or specific transaction data, that has not been used for a predetermined period of time, from the aforementioned multiple blocks. program.