Information processing method and information processing device

By dividing smart contract wallets into functional groups with proxy and beacon contracts, the smart contract 100 facilitates efficient and cost-effective updates to blockchain wallet functions, addressing the inefficiencies of redeploying entire contracts for each user.

JP2026075413APending Publication Date: 2026-05-08유겐가이샤티아이에스
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
유겐가이샤티아이에스
Filing Date
2024-10-22
Publication Date
2026-05-08

AI Technical Summary

Technical Problem

Existing smart contract wallets in blockchain systems are inflexible, leading to high gas fees and inefficiencies when updating or adding new functionality, as the entire contract code must be redeployed for each user, even for minor changes.

Method used

The smart contract 100 divides the contract wallet into functional groups, using proxy and beacon contracts to allow updates on a per-functional group basis, reducing the need for redeploying the entire contract code and minimizing gas fees.

Benefits of technology

This approach enables easy and cost-effective changes to the contract wallet functions on a per-user basis, reducing gas fees and simplifying upgrades by only switching selector contracts when services change.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026075413000001_ABST
    Figure 2026075413000001_ABST
Patent Text Reader

Abstract

The functionality of the contract wallet provided to users can be easily customized for each user. [Solution] In the information processing method, a proxy contract provided for each user using a contract wallet operating on the blockchain obtains the address of a first beacon contract corresponding to the request information from a first selector contract corresponding to the address of a first selector contract provided for each combination of functional groups of the wallet. The first beacon contract obtains the address of a first wallet corresponding to the request information from a first beacon contract corresponding to the address of a first beacon contract corresponding to a first functional group. It then calls a proxy contract corresponding to the request information regarding the request to execute processing on the wallet, calls the first wallet corresponding to the address of the first wallet, and the first wallet is executed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing method and an information processing apparatus.

Background Art

[0002] In recent years, systems for recording transactions in distributed ledgers such as blockchains have become widespread. Also, a smart contract type of blockchain has been proposed in which a transaction with program code added to the blockchain is registered to register a contract address, and a transaction is issued to the contract address to execute a program.

[0003] For example, in Patent Document 1, at least one processor included in a network node is configured to deploy a child smart contract, which is a subsequent version of a parent smart contract, in a distributed ledger, and in the parent smart contract, set an upgraded address field to point to the address of the child smart contract, and the parent smart contract remains deployed even after the child smart contract is deployed, and a technology related to a network node is disclosed.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] However, in the above prior art, it is not always possible to easily change the function of the contract wallet provided to the user for each user.

[0006] Therefore, this disclosure aims to enable users to easily change the functionality of the contract wallet provided to them on a per-user basis. [Means for solving the problem]

[0007] The information processing method according to the present invention is an information processing method executed by an information processing device, wherein a proxy contract provided for each user using a contract wallet operating on a blockchain holds the address of a first selector contract provided for each combination of functional groups of the contract wallet, the first selector contract holds the address of a first beacon contract corresponding to the first functional group included in the combination, the first beacon contract holds the address of a first contract wallet corresponding to the first functional group, and the execution of processing for the contract wallet The proxy contract receives request information and calls the proxy contract corresponding to the request information. The proxy contract obtains the address of the first beacon contract corresponding to the request information from the first selector contract corresponding to the address of the first selector contract it holds. The proxy contract obtains the address of the first contract wallet corresponding to the request information from the first beacon contract corresponding to the address of the first beacon contract. The proxy contract calls the first contract wallet corresponding to the address of the first contract wallet, and the first contract wallet is executed. [Effects of the Invention]

[0008] According to the present invention, it is possible to easily change the functions of the contract wallet provided to the user on a per-user basis. [Brief explanation of the drawing]

[0009] [Figure 1] Figure 1 is a diagram illustrating the comparative technologies. [Figure 2]Figure 2 is a diagram illustrating the comparative technologies. [Figure 3] Figure 3 is a diagram illustrating the comparative technologies. [Figure 4] Figure 4 is a diagram illustrating the comparative technologies. [Figure 5] Figure 5 shows an example of a system according to the embodiment. [Figure 6] Figure 6 shows an example of the configuration of a node computer according to the embodiment. [Figure 7] Figure 7 is a diagram illustrating a smart contract according to an embodiment. [Figure 8] Figure 8 is a diagram illustrating a modified example of a smart contract. [Figure 9] Figure 9 is a hardware configuration diagram showing an example of a computer that implements the functions of a node computer according to the embodiment. [Modes for carrying out the invention]

[0010] The following describes in detail, with reference to the drawings, the embodiments for implementing the information processing method and information processing apparatus according to the present application (hereinafter referred to as "embodiments"). Note that these embodiments do not limit the information processing method and information processing apparatus according to the present application. Furthermore, the same parts are denoted by the same reference numerals in each of the following embodiments, and redundant descriptions are omitted.

[0011] The one or more embodiments (including examples, modifications, and applications) described below can each be implemented independently. On the other hand, at least some of the embodiments described below may be implemented in appropriate combination with at least some of the other embodiments. These embodiments may contain novel features that differ from each other. Therefore, these embodiments may contribute to solving different objectives or problems and may produce different effects.

[0012] (Embodiment) [1. Introduction] In recent years, Web3 has been attracting attention. Web3 is a new form of internet for the next generation, also known as a decentralized internet. In other words, Web3 is an internet concept that aims to distribute data using distributed ledger system (blockchain network) technology.

[0013] Another key feature of Web3 is its ability to prevent data tampering and falsification digitally through blockchain technology, and it is primarily used in markets such as art, music, games, and anime / manga. Examples of Web3-based services include web browsers, NFT marketplaces, NFT apps, and decentralized social graphs.

[0014] For example, when a user buys or sells NFTs on an NFT marketplace or uses an NFT application, they need to create a wallet (a place to store crypto assets). A wallet address is information that identifies a wallet and is registered in the wallet created by the user. In addition to the wallet address, a public key and a private key are also registered in the wallet. For example, a wallet first creates a private key, and from that private key, a public key and a wallet address are generated.

[0015] A public key is information that identifies the sender of a cryptocurrency transaction. For example, when a cryptocurrency transaction takes place between a sender and a receiver, data (transaction) indicating that transaction is recorded on the blockchain network. Furthermore, since a wallet address can be determined from the public key, it becomes possible to retrieve deposit and withdrawal information from transactions corresponding to a specific account using the wallet address. Therefore, it becomes possible to check for fraud, such as whether a user is being paid an amount greater than the amount of cryptocurrency they actually hold. In this way, Web3 makes it possible to build a system that is difficult to tamper with and highly transparent.

[0016] On the one hand, if only the public key is used, there is a risk that a third party may be able to use someone else's encrypted assets arbitrarily. Therefore, as a mechanism for verifying that the sender of encrypted assets is the owner of the encrypted assets themselves, digital data signing using a private key is adopted. The signed data is created by calculation using the private key known only to the sender and the sender's transaction. And since the signed data is verified for correctness by calculation using the sender's public key, it becomes possible to determine whether the event of sending the encrypted assets is indeed carried out by the person themselves from the calculation result.

[0017] Here, a smart contract (or simply "contract") refers to a set of conditional logics implemented in software. For example, a smart contract refers to one or more sequential steps that are executed in response to one or more related conditions being met. Smart contracts are stored at the address of a distributed ledger (blockchain). Smart contracts are called using the address of the smart contract. For example, smart contracts are programmed in a programming language called Solidity. Smart contracts are executed by a processor on a network node that implements a distributed ledger (blockchain), for example, a network node that executes an Ethereum Virtual Machine (EVM) (hereinafter may be described as a "node computer" in some cases).

[0018] In recent years, contract wallets have also attracted attention. A contract wallet refers to a type of Web3 wallet that gives the smart contract itself the function of a wallet. A contract wallet may be called a smart contract wallet or a smart wallet. Also, when emphasizing that a contract wallet is a smart contract, it may be called the opposite, a wallet contract

[0019] Here, smart contracts such as those on Ethereum are used by deploying code on the blockchain, so in principle, once deployed, the code cannot be changed afterward. However, there are cases where you may want to update the smart contract code later, such as when there is a bug in the contract code or when you want to add new functionality. For example, there are cases where you may want to update the contract wallet code later, such as when there is a bug in the contract wallet code or when you want to add new functionality to the contract wallet.

[0020] Figure 1 is a diagram illustrating comparative technologies. Figure 1 illustrates the case where a contract wallet is distributed to each user who uses a contract wallet operating on the blockchain. For example, each of users A, B, and C is distributed a contract wallet 20 for user A, and a contract wallet 20C for user C. Note that for simplicity, Figure 1 only depicts three users A, B, and C, but the actual number of users can be thousands or even millions. Here, because contract wallets have many functions, the amount of code for a contract wallet is large. Furthermore, in Figure 1, the code for the number of contract wallets must be deployed on the blockchain for each user, so the amount of code increases proportionally to the number of users. This results in high gas fees. Gas fees are the fees incurred when executing transactions or processing programs on the blockchain. Gas fees are also incurred when deploying new code on the blockchain or when modifying existing code. Also, gas fees increase with the amount of code deployed on the blockchain. Furthermore, as shown in Figure 1, once the contract wallets for each of the three users A-C are deployed, the code cannot be changed later. Therefore, a mechanism that allows for contract upgrades is desirable. Also, if bug fixes or new features are to be added to the contract wallets, a new contract must be deployed and redistributed to the users. In this case as well, a new contract wallet must be redeployed for each user. In other words, the code for the new contract wallets must be redeployed on the blockchain for each user, resulting in a larger amount of code for each user. Consequently, gas fees will be higher.

[0021] In Figure 1, when a node computer included in the blockchain system receives request information (hereinafter sometimes referred to as "request information") from a user device used by a user regarding a request to execute a process on a contract wallet, it calls the contract wallet corresponding to the request information, and the contract wallet is executed. For example, the request information includes the address of the contract wallet. For example, if the request information includes the address of contract wallet 20A for person A, the node computer calls contract wallet 20A for person A, and contract wallet 20A for person A is executed.

[0022] Figure 2 is a diagram illustrating the comparative technology. The contract wallet 21 shown in Figure 2 is a program that implements a group of common functions provided to all users of the contract wallet. Figure 2 differs from Figure 1 in that, instead of distributing a separate contract wallet 20 for user A to C, and separate contract wallets 20C for users A to C, each user A to C is distributed a separate proxy contract 30 for user A to C.

[0023] A proxy contract is a contract that acts as a proxy. A proxy contract is a program created for each user who uses a contract wallet that operates on the blockchain. A proxy contract is placed before the main contract, which is the contract wallet. Here, the contract wallet is a program that implements the functions of the contract wallet. A proxy contract implements only the program that implements the proxy functions. A proxy contract holds the address of the contract wallet. In Figure 2, each of the proxy contracts 30A for user A to 30C for user C holds the address of contract wallet 21.

[0024] Generally, proxy contracts have less code than contract wallets. In Figure 2, the code for the number of proxy contracts required for each user must be deployed on the blockchain, but because the code size of the proxy contracts is smaller than that of the contract wallets, the gas fees are lower compared to Figure 1. Also, in Figure 2, the contract can be updated by replacing the contract in contract wallet 21 with another contract. Furthermore, in Figure 2, when updating the contract wallet, only the code for one contract wallet 21 needs to be redeployed, so there is no need to redistribute a new contract to each user. For this reason, in Figure 2, gas fees can be significantly reduced compared to Figure 1, and the operation of the contract wallet is also easier.

[0025] In Figure 2, when a node computer receives request information, it invokes the proxy contract corresponding to the request information. For example, the request information includes the address of the proxy contract. For example, if the request information includes the address of proxy contract 30A for person A, the node computer invokes proxy contract 30A for person A. When proxy contract 30A is invoked, it invokes the contract wallet 21 corresponding to the address of the contract wallet 21 it holds, and the contract wallet 21 is executed.

[0026] Figure 3 is a diagram illustrating the comparative technology. In Figure 3, the first version of contract wallet 21 described in Figure 2 corresponds to contract wallet 22. Also, in Figure 3, the second version of contract wallet 21 described in Figure 2 corresponds to contract wallet 23. In Figure 3, the contract wallet can be seemingly updated by replacing the contract of contract wallet 22 with the contract of contract wallet 23. Specifically, the contract wallet can be seemingly updated by changing the address of the contract wallet that each of the multiple proxy contracts calls from the address of contract wallet 22 to the address of contract wallet 23. In Figure 3, the modified proxy contracts with the changed address of the called contract wallet are shown as proxy contracts 31A to 31C. Figure 3 shows that when updating a contract wallet, although the gas fee for each individual change is small, the gas fee is multiplied by the number of users because the contract wallet address, which is the value of a variable held by each proxy contract, needs to be changed for each user. Also, Figure 3 shows that even if you only want to upgrade the code corresponding to one function of the contract wallet, the entire contract wallet code must be redeployed as a new contract. In this case, the code that does not need to be upgraded is also deployed together, so the gas fee is high each time an upgrade is performed.

[0027] Figure 4 is a diagram illustrating the comparative technology. Figure 4 differs from Figure 3 in that a beacon contract 40 is placed between each user's proxy contract and contract wallet. In Figure 4, each of the proxy contracts 32A for user A to 32C for user C holds the address of the beacon contract 40. The beacon contract 40 holds the address of either the contract wallet 22 or the contract wallet 23. For example, the beacon contract 40 holds the address of the latest version of the contract wallet 23. In Figure 4, the contract wallet can be seemingly updated by replacing the contract of contract wallet 22 with the contract of contract wallet 23. Specifically, in Figure 4, the contract wallet can be seemingly updated by changing the address of the contract wallet that the beacon contract 40 calls from the address of contract wallet 22 to the address of contract wallet 23. Figure 4 differs from Figure 3 in that it does not require changing the call destination address that each of the multiple proxy contracts calls. Specifically, in Figure 4, when updating the contract wallet, only the call destination address that one beacon contract 40 calls needs to be changed, resulting in lower gas fees compared to Figure 3. However, in Figure 4, even if you want to upgrade only the part of the code corresponding to one function of the contract wallet, you have to redeploy the entire contract wallet code as a new contract, which is the same as in Figure 3.

[0028] In contrast, the smart contract 100 (see Figure 7 below, which will be described in detail in Figure 7), which is a program according to the embodiment, divides the contract wallet into several functional groups and places a beacon contract for each functional group. This allows the smart contract 100 to enable upgrades on a functional group basis. Furthermore, even if only the part of the code corresponding to a single function needs to be upgraded, the smart contract 100 does not need to redeploy the entire contract wallet code as a new contract, thus saving gas fees. The smart contract 100 also places a selector contract, which is a contract that groups several functional groups together, between each user's proxy contract and the beacon contract. This allows the smart contract 100 to combine several functional groups and provide users with functions according to the type of service they want to receive. In addition, if the service provided to a user changes, the smart contract 100 only needs to switch the selector contract, making it easy to change the functions of the contract wallet provided to users on a per-user basis. Furthermore, smart contract 100 can save on gas fees because, if the services provided to the user change, only the selector contract needs to be switched. In this way, smart contract 100, through the combination of beacon contracts established for each functional group and selector contracts that group several functional groups together, makes it possible to easily change the functions of the contract wallet provided to the user on a user-by-user basis.

[0029] [2. System Configuration] Figure 5 shows an example of a system according to the embodiment. In Figure 5, System 1 is shown as an example of a system according to the embodiment. The information processing according to the embodiment is realized in System 1.

[0030] As shown in Figure 5, System 1 comprises a user device 10 and a distributed ledger system 50. The user device 10 and the distributed ledger system 50 are connected via a network N. Note that System 1 may include multiple user devices 10 and multiple distributed ledger systems 50.

[0031] User device 10 is an information processing device used by a user. User device 10 is an example of an information processing terminal that sends requests to the distributed ledger system 50. For example, the request may be request information relating to a request for the execution of processing to a contract wallet. User device 10 may be, for example, a smartphone, a tablet terminal, or a personal computer. The user of user device 10 is a person who performs a transaction, for example, regarding the transfer of crypto assets, in a predetermined settlement system realized by the distributed ledger system 50. Here, "crypto assets" is used to mean not only crypto assets issued on a proprietary blockchain (crypto assets in the narrow sense, also called platform tokens), but also proprietary crypto assets (so-called tokens) issued using existing blockchain technology.

[0032] Tokens can be classified into fungible tokens and non-fungible tokens (hereinafter referred to as "NFTs"). For example, fungible tokens may be transferred or otherwise handled according to ERC20, the smart contract standard for Ethereum®. NFTs, on the other hand, may be transferred or otherwise handled according to ERC721, the smart contract standard for Ethereum.

[0033] Furthermore, users possess a wallet containing their wallet address, public key, and private key in order to perform transactions. Therefore, the user device 10 has a wallet (not shown) for trading crypto assets and an execution environment (not shown) for sending transactions installed.

[0034] The distributed ledger system 50 manages a distributed ledger. For example, the distributed ledger system 50 manages the transaction history related to the transfer of crypto assets. The distributed ledger is, for example, a blockchain. The blockchain referred to here may be an Ethereum blockchain, and may be either public or private. The distributed ledger system 50 includes a plurality of interconnected computers (which may include user devices 10).

[0035] Furthermore, the distributed ledger system 50 includes multiple node computers 51 that are connected to each other via a P2P (Peer to Peer) network.

[0036] Node computers 51 manage a distributed ledger using, for example, blockchain technology. Specifically, one of the node computers 51 retrieves data related to cryptocurrency transactions to be recorded. Node computer 51 creates a block containing the retrieved data and adds it to the blockchain. Node computer 51 sends information about the added block to other node computers 51. Other node computers 51 verify the correctness of the received block, and if the verification is successful, add the block to the blockchain. Node computer 51 then finalizes the blockchain according to, for example, the number of linked blocks (number of confirmations). This ensures that the same distributed ledger is stored across multiple node computers 51 that make up the distributed ledger system 50. The stored data is encrypted as appropriate.

[0037] Furthermore, the distributed ledger system 50 stores smart contracts 100 for realizing each function of the contract wallet. The smart contract 100 corresponds to a program according to the embodiment, is a program that operates on the blockchain, can hold variables such as integers, strings, and arrays internally, and has functions defined for calling from the outside. For example, the smart contract 100 is executed in response to a request from the user device 10. For example, the smart contract 100 according to this embodiment includes a contract wallet.

[0038] Furthermore, the smart contract 100 is stored in each of the node computers 51 that constitute the distributed ledger system 50. The smart contract 100 may be stored in any of the node computers 51 that constitute the distributed ledger system 50. The information processing device according to this embodiment is a node computer 51 that executes the smart contract 100 on the distributed ledger system 50, by storing the smart contract 100. The node computer 51 that executes the smart contract 100 may be specified in advance, or it may be newly introduced to the distributed ledger system 50 in order to realize the platform according to this embodiment.

[0039] Furthermore, the node computer 51 executing the smart contract 100 may send the contract address of the smart contract 100 to the user device 10. As a result, the user device 10 will be able to call and execute the smart contract 100.

[0040] Although not shown in Figure 5, System 1 may also be further equipped with an external device that sends the smart contract 100 to the node computer 51 and stores the smart contract 100 at the receiving node computer 51. In this case, the contract address of the smart contract 100 may be sent to the user device 10 by the external device. As another example, the external device may send a request to create a smart contract to the node computer 51, and the node computer 51 that receives the request may create the smart contract and deploy it to the distributed ledger system 50. For example, the external device may be the user device 10.

[0041] [3. Node Computer Configuration] The node computer 51 according to the embodiment will be described with reference to Figure 6. Figure 6 is a diagram showing an example of the configuration of the node computer 51 according to the embodiment. As shown in Figure 6, the node computer 51 has a communication unit 52, a storage unit 53, and a control unit 54.

[0042] Here, the node computer 51 is an example of an information processing device that executes the information processing method according to the embodiment. The following describes the case where the information processing device that executes the information processing method according to the embodiment is the node computer 51.

[0043] (Communications Section 52) The communication unit 52 is implemented, for example, by a NIC (Network Interface Card). For example, the communication unit 52 is connected to the network N by wire or wireless connection and transmits and receives information with the user device 10.

[0044] (Storage unit 53) The memory unit 53 is implemented by, for example, a semiconductor memory element such as RAM (Random Access Memory) or flash memory, or a storage device such as a hard disk or optical disc. The memory unit 53 may store a program according to the embodiment. The memory unit 53 may have a blockchain information storage unit 53a.

[0045] The blockchain information storage unit 53a stores information related to the blockchain, such as smart contracts 100 and transactions.

[0046] (Control Unit 54) The control unit 54 is implemented by a CPU (Central Processing Unit) or MPU (Micro Processing Unit), etc., which executes various programs (for example, the program according to the embodiment) stored in the memory device inside the node computer 51 using RAM as the working area. The program according to the embodiment functions as a smart contract 100 on the blockchain. For example, some or all of the functions of the control unit 54 are implemented by the smart contract 100. The control unit 54 is also implemented by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

[0047] The control unit 54 receives request information (hereinafter sometimes referred to as "request information") regarding a request to execute a process on the contract wallet. For example, the control unit 54 receives request information from the user device 10 via the communication unit 52. For example, the request information includes the address of the proxy contract. In other words, the address to which the request information from the user device 10 is sent is the address of the proxy contract. The request information also includes the function name, which is the function that the user wants to execute, and the values ​​of its arguments. Based on the function name (and arguments) information included in the request information, the selector contract selects the corresponding address from among the multiple beacon contract addresses it holds and returns it to the proxy contract. When the control unit 54 receives request information, it calls the proxy contract corresponding to the request information. For example, the control unit 54 calls the proxy contract corresponding to the address of the proxy contract included in the request information.

[0048] Figure 7 is a diagram illustrating a smart contract 100 according to an embodiment. The smart contract 100 shown in Figure 7 is a program that functions as a smart contract on the blockchain. In Figure 7, the smart contract 100 includes proxy contracts 33A to 33C, selector contracts 61 to 62, beacon contracts 41 to 43, and contract wallets 22 to 27. In Figure 7, proxy contract 33A is a proxy contract provided for user A. Proxy contract 33B is a proxy contract provided for user B. Proxy contract 33C is a proxy contract provided for user C.

[0049] The proxy contract holds the address of the selector contract. The selector contract is a program provided for each combination of function groups in the contract wallet. Here, a function group in the contract wallet refers to a group of functions corresponding to the type of functions provided to users of the contract wallet. For example, one example of a function group in the contract wallet is a group of functions common to all users of the contract wallet. Another example of a function group in the contract wallet is a group of functions corresponding to the type of contract wallet service provided to the user. For example, one example of a function group corresponding to the type of contract wallet service is a group of functions corresponding to the user's membership type in the contract wallet service. In Figure 7, users A and B are Gold members, and users A and B are provided with services for Gold members. For example, users A and B, who are Gold members, are provided with a combination of functions common to all users of the contract wallet and functions for Gold members. For example, one example of a combination of function groups in the contract wallet is a combination of a function group common to all users of the contract wallet and a function group for Gold members. In Figure 7, selector contract 61 is a selector contract established for a combination of a functional group common to all users of the contract wallet and a functional group for gold members. Proxy contracts 33A and 33B hold the address of selector contract 61.

[0050] Furthermore, User C is a regular member, and is provided with services intended for regular members. For example, User C, being a regular member, is provided with a combination of functions common to all users of the contract wallet and functions intended for regular members. For example, one example of a combination of function groups in the contract wallet is a combination of a function group common to all users of the contract wallet and a function group intended for regular members. Selector contract 62 is a selector contract established for the combination of the function group common to all users of the contract wallet and the function group intended for regular members. Proxy contract 33C holds the address of selector contract 62.

[0051] When the proxy contract is invoked by the control unit 54, it obtains the address of the beacon contract corresponding to the request information from the selector contract corresponding to the address of the selector contract it holds. For example, the request information includes information specifying the functional group of the contract wallet. For example, the information specifying the functional group of the contract wallet includes the address of the beacon contract corresponding to the functional group of the contract wallet. For example, the information specifying the functional group of the contract wallet includes the address of the contract that implements the functionality corresponding to the functional group of the contract wallet. Specifically, the proxy contract uses the address of the selector contract it holds to invoke the selector contract corresponding to the address of the selector contract it holds. More specifically, the proxy contract causes the selector contract corresponding to the address of the selector contract it holds to call a function (e.g., the getAddress function) to obtain the address of the beacon contract corresponding to the request information. Furthermore, when a selector contract calls a function to obtain the address of the beacon contract corresponding to the request information, it uses the called function to select and obtain the address of the beacon contract corresponding to the request information from among the beacon contract addresses it holds. In addition, the proxy contract obtains the address of the beacon contract corresponding to the request information obtained by the selector contract from the selector contract.

[0052] A selector contract holds the addresses of beacon contracts corresponding to the functional groups included in the combination of functional groups of the contract wallet corresponding to itself. In Figure 7, selector contract 61 holds the address of beacon contract 41, which corresponds to the functional group common to all users of the contract wallet, and the address of beacon contract 42, which corresponds to the functional group for gold members. Selector contract 62 also holds the address of beacon contract 41, which corresponds to the functional group common to all users of the contract wallet, and the address of beacon contract 43, which corresponds to the functional group for general members.

[0053] In Figure 7, when proxy contracts 33A and 33B are invoked by the control unit 54, they obtain the address of the beacon contract corresponding to the request information from the selector contract 61 corresponding to the address of the selector contract 61 they hold. Specifically, when the selector contract 61 is invoked by proxy contract 33A or 33B, it selects and obtains the address of the beacon contract corresponding to the request information from the addresses of the beacon contract 41 and beacon contract 42 that it holds, and sends it to proxy contract 33A or 33B. Proxy contract 33A or 33B obtains the address of the beacon contract corresponding to the request information from the selector contract 61.

[0054] Furthermore, when the proxy contract 33C is invoked by the control unit 54, it obtains the address of the beacon contract corresponding to the request information from the selector contract 62 corresponding to the address of the selector contract 62 it holds. Specifically, when the selector contract 62 is invoked by the proxy contract 33C, it selects and obtains the address of the beacon contract corresponding to the request information from among the addresses of the beacon contract 41 and beacon contract 43 that it holds, and sends it to the proxy contract 33C. The proxy contract 33C obtains the address of the beacon contract corresponding to the request information from the selector contract 62.

[0055] A beacon contract is a program that corresponds to a pre-assigned functional group. A beacon contract holds the address of a contract wallet, which is a program that implements the functional group corresponding to the pre-assigned functional group. When a proxy contract obtains the address of a beacon contract corresponding to the request information from a selector contract, it obtains the address of the contract wallet corresponding to the request information from the beacon contract corresponding to the address of the beacon contract obtained from the selector contract. Specifically, the proxy contract uses the address of the beacon contract obtained from the selector contract to call the beacon contract corresponding to the address of the beacon contract obtained from the selector contract. More specifically, the proxy contract causes the beacon contract corresponding to the address of the beacon contract obtained from the selector contract to call a function (for example, the getAddress function) that obtains the address of the contract wallet corresponding to the request information. Furthermore, when a beacon contract calls a function to obtain the address of the beacon contract corresponding to the request information, it uses the called function to retrieve the beacon contract it holds. In addition, the proxy contract obtains the address of the contract wallet corresponding to the request information obtained by the beacon contract from the beacon contract.

[0056] In Figure 7, the beacon contract 41 holds the address of either contract wallet 22 or contract wallet 23, which corresponds to a functional group common to all users of the contract wallet. Here, contract wallet 22 is the first version of the program that implements the functional group common to all users of the contract wallet. Contract wallet 23 is the second version of the program that implements the functional group common to all users of the contract wallet. For example, the beacon contract 41 holds the address of contract wallet 23, which is the latest version of the program that implements the functional group common to all users of the contract wallet.

[0057] Furthermore, beacon contract 42 holds the address of contract wallet 24 or contract wallet 25, which corresponds to the feature group for gold members. For example, contract wallet 24 is the first version of the program that implements the features of the feature group for gold members. Contract wallet 25 is the second version of the program that implements the features of the feature group for gold members. For example, beacon contract 42 holds the address of contract wallet 25, which is the latest version of the program that implements the features of the feature group for gold members.

[0058] Furthermore, beacon contract 43 holds the address of contract wallet 26 or contract wallet 27, which corresponds to the functional group for general members. For example, contract wallet 26 is the first version of the program that implements the functional group for general members. Contract wallet 27 is the second version of the program that implements the functional group for general members. For example, beacon contract 43 holds the address of contract wallet 27, which is the latest version of the program that implements the functional group for general members.

[0059] When a proxy contract obtains the address of the contract wallet corresponding to the request information, it invokes the contract wallet corresponding to the address of the contract wallet corresponding to the request information, and the contract wallet is executed.

[0060] Figure 7 illustrates a case where smart contract 100 includes three proxy contracts, two selector contracts, three beacon contracts, and six contract wallets. However, the number of each contract included in smart contract 100 is not limited to this. For example, smart contract 100 may include three or more proxy contracts. For example, smart contract 100 may include a number of proxy contracts corresponding to the number of users of the contract wallet. Also, smart contract 100 may include two or more selector contracts. For example, smart contract 100 may include a number of selector contracts corresponding to the number of combinations of function groups in the contract wallet. Furthermore, smart contract 100 may include three or more beacon contracts. For example, smart contract 100 may include a number of beacon contracts corresponding to the number of function groups in the contract wallet. Also, smart contract 100 may include six or more contract wallets. For example, smart contract 100 may include a number of contract wallets corresponding to the number of functional groups in the contract wallet. Also, smart contract 100 may include a number of contract wallets corresponding to the number of versions in the functional groups of the contract wallet.

[0061] Furthermore, the group of functions corresponding to the type of contract wallet service may include a group of functions corresponding to the type of bank specified by the user of the contract wallet service. For example, a user of the contract wallet service may pre-specify a bank for depositing or withdrawing cryptocurrency from an exchange. For example, if user A specifies bank D, user A will be provided with functions for bank D. Similarly, if user B specifies bank E, user B will be provided with functions for bank E.

[0062] As described above, the node computer 51 (an example of an information processing device according to the embodiment) executes the program according to the embodiment. Specifically, the control unit 54 of the node computer 51 executes the program according to the embodiment. The program according to the embodiment is a program that functions as a smart contract 100 on the blockchain. That is, the program according to the embodiment is the smart contract 100 according to the embodiment. The smart contract 100 includes a proxy contract (proxy contracts 33A to 33C in Figure 7), a first selector contract (selector contracts 61 to 62 in Figure 7), a first beacon contract (beacon contracts 41 to 43 in Figure 7), and a first contract wallet (contract wallets 22 to 27 in Figure 7). A proxy contract, established for each user (users A-C, etc. in Figure 7) using a contract wallet operating on the blockchain, holds the address of a first selector contract (selector contract 61, etc. in Figure 7) established for each combination of function groups of the contract wallet (a combination of a function group common to all users of the contract wallet and a function group for gold members, etc. in Figure 7). The first selector contract (for example, selector contract 61 shown in Figure 7) holds the address of a first beacon contract (for example, beacon contract 41, etc. shown in Figure 7) corresponding to the first function group included in the combination of function groups of the contract wallet (a function group common to all users of the contract wallet, etc. in Figure 7). The first beacon contract holds the address of a first contract wallet (contract wallet 22, etc. in Figure 7) corresponding to the first function group.The control unit 54 receives request information regarding a request to execute processing on the contract wallet, calls a proxy contract corresponding to the request information, the proxy contract obtains the address of the first beacon contract corresponding to the request information from the first selector contract corresponding to the address of the first selector contract it holds, obtains the address of the first contract wallet corresponding to the request information from the first beacon contract corresponding to the address of the first beacon contract, calls the first contract wallet corresponding to the address of the first contract wallet, and the first contract wallet is executed. The information processing method according to the embodiment is implemented by a program executed by the control unit 54 of the node computer 51 according to the embodiment. The information processing method according to the embodiment is implemented by a smart contract 100 executed by the control unit 54 of the node computer 51 according to the embodiment.

[0063] Furthermore, the first selector contract (selector contract 61, etc. in Figure 7) is provided for each combination of contract wallet function groups (a combination of a function group common to all contract wallet users and a function group for gold members, etc. in Figure 7) according to the type of contract wallet service provided to the user (a service for gold members, etc. in Figure 7).

[0064] [4. Variations] The processing according to the above-described embodiment may be carried out in various other forms besides those described above.

[0065] Figure 8 is a diagram illustrating a modified smart contract 100A. In Figure 8, explanations of parts common to Figure 7 are omitted. Figure 8 illustrates the case where new functions are added to the service for gold members. In Figure 8, users A and B, who are gold members, are provided with a combination of functions common to all users of the contract wallet, functions for gold members, and additional functions. In Figure 8, an example of a combination of function groups for the contract wallet is a combination of a function group common to all users of the contract wallet, a function group for gold members, and an additional function group.

[0066] The selector contract 61A shown in Figure 8 is a selector contract established for combinations of a common functional group for all users of the contract wallet, a functional group for gold members, and an additional functional group. The proxy contract 33A holds the address of selector contract 61A. Selector contract 61A is the same as selector contract 61 described in Figure 7 in that it holds the address of beacon contract 41, which corresponds to the common functional group for all users of the contract wallet. In contrast, selector contract 61A differs from selector contract 61 described in Figure 7 in that instead of holding the address of beacon contract 42, which corresponds to the functional group for gold members, it holds the address of selector contract 63. Selector contract 61A holds the addresses of beacon contract 41 and selector contract 63. Selector contract 63 holds the address of beacon contract 42, which corresponds to the Gold Member feature group, and the address of beacon contract 44, which corresponds to the additional feature group, which is included in the combination of a feature group common to all users of the contract wallet, a feature group for Gold Members, and an additional feature group. Beacon contract 42 holds the address of contract wallet 25, which corresponds to the Gold Member feature group. Beacon contract 44 holds the address of contract wallet 28, which corresponds to the additional feature group.

[0067] In Figure 8, the control unit 54 receives the request information. When the control unit 54 receives the request information, it calls the proxy contract 33A corresponding to the request information. The proxy contract 33A obtains the address of the selector contract 63 corresponding to the request information from the selector contract 61A corresponding to the address of the selector contract 61A it holds, obtains the address of the beacon contract 44 corresponding to the request information from the selector contract 63 corresponding to the address of the selector contract 63, obtains the address of the contract wallet 28 corresponding to the request information from the beacon contract 44 corresponding to the address of the beacon contract 44, calls the contract wallet 28 corresponding to the address of the contract wallet 28, and the contract wallet 28 is executed.

[0068] Alternatively, proxy contract 33A may obtain the address of beacon contract 42 corresponding to the request information from selector contract 63 corresponding to the address of selector contract 63, obtain the address of contract wallet 25 corresponding to the request information from beacon contract 42 corresponding to the address of beacon contract 42, call contract wallet 25 corresponding to the address of contract wallet 25, and execute contract wallet 25.

[0069] As described above, the modified smart contract 100A includes a second selector contract (selector contract 63 in Figure 8) that is different from the first selector contract (selector contract 61A in Figure 8). The first selector contract holds the address of the second selector contract. The second selector contract holds the address of the second beacon contract (beacon contract 44 in Figure 8) that corresponds to the second function group (additional function group in Figure 8) included in the combination of function groups of the contract wallet (combination of a function group common to all users of the contract wallet, a function group for gold members, and an additional function group in Figure 8). The second beacon contract holds the address of the second contract wallet (contract wallet 28 in Figure 8) that corresponds to the second function group. The control unit 54 receives the request information and calls the proxy contract corresponding to the request information (proxy contract 33A in Figure 8). The proxy contract obtains the address of the second selector contract corresponding to the request information (the address of selector contract 63 in Figure 8) from the first selector contract (selector contract 61A in Figure 8) that it holds, and then calls the second selector contract (in Figure 8, the address of selector contract 63) that corresponds to the address of the second selector contract. The second beacon contract (in Figure 8, the address of beacon contract 44) corresponding to the request information is obtained from the Rector contract 63), the address of the second contract wallet (in Figure 8, the address of contract wallet 28) corresponding to the request information is obtained from the second beacon contract (in Figure 8, beacon contract 44) corresponding to the address of the second beacon contract, the second contract wallet (in Figure 8, contract wallet 28) corresponding to the address of the second contract wallet is called, and the second contract wallet is executed.

[0070] [5. Effects] As described above, the information processing device according to the embodiment (node ​​computer 51 in the embodiment) includes a control unit (control unit 54 in the embodiment). A proxy contract provided for each user using a contract wallet operating on the blockchain holds the address of a first selector contract provided for each combination of functional groups of the contract wallet, the first selector contract holds the address of a first beacon contract corresponding to the first functional group included in the combination, and the first beacon contract holds the address of a first contract wallet corresponding to the first functional group. The control unit receives request information regarding a request to execute processing on the contract wallet, calls the proxy contract corresponding to the request information, the proxy contract obtains the address of the first beacon contract corresponding to the request information from the first selector contract corresponding to the address of the first selector contract it holds, obtains the address of the first contract wallet corresponding to the request information from the first beacon contract corresponding to the address of the first beacon contract, calls the first contract wallet corresponding to the address of the first contract wallet, and the first contract wallet is executed.

[0071] This allows the information processing device to enable upgrades on a functional group basis. Furthermore, even if only a portion of the code corresponding to a single function needs to be upgraded, the information processing device can save on gas fees because it doesn't need to redeploy the entire contract wallet code as a new contract. The information processing device can also combine several functional groups to provide users with functions tailored to the type of service they receive. Additionally, if the services provided to users change, the information processing device only needs to switch selector contracts, further saving on gas fees. Moreover, by combining beacon contracts for each functional group with selector contracts that group several functional groups together, the information processing device can easily modify the functions of the contract wallet provided to users on a user-by-user basis. Finally, the information processing device can minimize the gas fees incurred when changing the functions of the contract wallet.

[0072] Furthermore, the first selector contract is established for each combination corresponding to the type of contract wallet service provided to the user.

[0073] This allows the information processing device to easily change the functions of the contract wallet provided to each user, depending on the type of contract wallet service provided to the user.

[0074] Furthermore, the first selector contract holds the address of a second selector contract which is different from the first selector contract, the second selector contract holds the address of a second beacon contract which corresponds to a second functional group included in the combination, and the second beacon contract holds the address of a second contract wallet which corresponds to a second functional group. The control unit receives the request information and invokes the proxy contract corresponding to the request information. The proxy contract obtains the address of the second selector contract corresponding to the request information from the first selector contract corresponding to the address of the first selector contract it holds. The proxy contract obtains the address of the second beacon contract corresponding to the request information from the second selector contract corresponding to the address of the second selector contract. The proxy contract obtains the address of the second contract wallet corresponding to the request information from the second beacon contract corresponding to the address of the second beacon contract. The proxy contract invokes the second contract wallet corresponding to the address of the second contract wallet, and the second contract wallet is executed.

[0075] This allows the information processing device to easily make specification changes, such as adding new functions, without having to redeploy the selector contract. Furthermore, because the information processing device does not need to redeploy the selector contract, it does not need to change the address of the proxy's call destination, thus reducing gas costs. In this way, the information processing device can easily make specification changes while saving on gas costs.

[0076] [6. Hardware Configuration] Furthermore, the node computer 51 according to the embodiment described above is realized by a computer 1000 having a configuration such as that shown in Figure 9. Figure 9 is a hardware configuration diagram showing an example of a computer that realizes the functions of the node computer 51 according to the embodiment. The computer 1000 includes a CPU 1100, RAM 1200, ROM 1300, HDD 1400, communication interface (I / F) 1500, input / output interface (I / F) 1600, and media interface (I / F) 1700.

[0077] The CPU 1100 operates based on programs stored in the ROM 1300 or HDD 1400, and controls various parts. The ROM 1300 stores boot programs executed by the CPU 1100 when the computer 1000 starts up, as well as programs that depend on the computer 1000's hardware.

[0078] The HDD1400 stores programs executed by the CPU1100, as well as data used by such programs. The communication interface1500 receives data from other devices via a predetermined communication network and sends it to the CPU1100, and transmits data generated by the CPU1100 to other devices via the predetermined communication network.

[0079] The CPU 1100 controls output devices such as displays and printers, and input devices such as keyboards and mice, via the input / output interface 1600. The CPU 1100 acquires data from input devices via the input / output interface 1600. The CPU 1100 also outputs the generated data to output devices via the input / output interface 1600.

[0080] The media interface 1700 reads a program or data stored in the recording medium 1800 and provides it to the CPU 1100 via the RAM 1200. The CPU 1100 loads the program from the recording medium 1800 onto the RAM 1200 via the media interface 1700 and executes the loaded program. The recording medium 1800 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase Change Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.

[0081] For example, when computer 1000 functions as a node computer 51 according to the embodiment, the CPU 1100 of computer 1000 realizes the functions of the control unit 54 by executing programs loaded on RAM 1200. The CPU 1100 of computer 1000 reads and executes these programs from the recording medium 1800, but as another example, these programs may be obtained from other devices via a predetermined communication network.

[0082] Although some embodiments of the present invention have been described in detail above with reference to the drawings, these are illustrative examples, and the present invention can be implemented in various other forms with modifications and improvements based on the knowledge of those skilled in the art, starting with the embodiments described in the disclosure section of the invention.

[0083] [7. Other] Furthermore, among the processes described in the above embodiments and modifications, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically by known methods. In addition, the processing procedures, specific names, and information including various data and parameters shown in the above document and drawings can be arbitrarily changed unless otherwise specified. For example, the various information shown in each figure is not limited to the information shown.

[0084] Furthermore, the components of each illustrated device are functionally conceptual and do not necessarily need to be physically configured as shown. In other words, the specific forms of distribution and integration of each device are not limited to those shown, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads and usage conditions.

[0085] Furthermore, the embodiments and modifications described above can be combined as appropriate, provided that the processing content is not inconsistent. [Explanation of symbols]

[0086] 50 Distributed Ledger Systems 51 Node Computer 52 Communications Department 53 Memory section 53a Blockchain Information Storage Unit 54 Control Unit

Claims

1. An information processing method performed by an information processing device, A proxy contract established for each user utilizing a contract wallet operating on the blockchain holds the address of a first selector contract established for each combination of functional groups of the contract wallet. The first selector contract holds the address of the first beacon contract corresponding to the first functional group included in the combination, The first beacon contract holds the address of the first contract wallet corresponding to the first functional group, The proxy contract receives request information relating to a request to execute processing on the contract wallet, calls the proxy contract corresponding to the request information, the proxy contract obtains the address of the first beacon contract corresponding to the request information from the first selector contract corresponding to the address of the first selector contract it holds, obtains the address of the first contract wallet corresponding to the request information from the first beacon contract corresponding to the address of the first beacon contract, calls the first contract wallet corresponding to the address of the first contract wallet, and the first contract wallet is executed. Information processing methods.

2. The first selector contract is provided for each combination according to the type of contract wallet service provided to the user. The information processing method according to claim 1.

3. The first selector contract holds the address of a second selector contract which is different from the first selector contract. The second selector contract holds the address of the second beacon contract corresponding to the second functional group included in the combination, The second beacon contract holds the address of the second contract wallet corresponding to the second functional group, The proxy contract receives the request information, calls the proxy contract corresponding to the request information, the proxy contract obtains the address of the second selector contract corresponding to the request information from the first selector contract corresponding to the address of the first selector contract it holds, obtains the address of the second beacon contract corresponding to the request information from the second selector contract corresponding to the address of the second selector contract, obtains the address of the second contract wallet corresponding to the request information from the second beacon contract corresponding to the address of the second beacon contract, calls the second contract wallet corresponding to the address of the second contract wallet, and the second contract wallet is executed. The information processing method according to claim 1.

4. A proxy contract established for each user utilizing a contract wallet operating on the blockchain holds the address of a first selector contract established for each combination of functional groups of the contract wallet. The first selector contract holds the address of the first beacon contract corresponding to the first functional group included in the combination, The first beacon contract holds the address of the first contract wallet corresponding to the first functional group, A control unit receives request information regarding a request to execute processing on the contract wallet, calls the proxy contract corresponding to the request information, the proxy contract obtains the address of the first beacon contract corresponding to the request information from the first selector contract corresponding to the address of the first selector contract it holds, obtains the address of the first contract wallet corresponding to the request information from the first beacon contract corresponding to the address of the first beacon contract, calls the first contract wallet corresponding to the address of the first contract wallet, and executes the first contract wallet. An information processing device equipped with the following features.

Citation Information

Patent Citations

  • Upgradeable securities token

    JP2024059854A