Information processing system, information processing method, and program
The system improves user convenience and security in blockchain transactions by deploying user-specific contract wallets and using business EOAs to manage transactions, addressing the inefficiencies and insecurities of existing systems like ERC-4337.
Patent Information
- Application Number
- JP2024073080
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-26
- Publication Date
- 2025-11-07
- Estimated Expiration
- 2044-04-26
AI Technical Summary
Existing blockchain technologies, such as ERC-4337, require a one-to-one correspondence between a user's EOA address and contract wallet address for authentication, necessitating users to manage their own EOA private keys and pay gas fees, which is inconvenient and insecure.
An information processing system that deploys a contract wallet specialized for each user on a blockchain network, authenticates users using non-EOA information, and uses a business EOA to manage transactions, eliminating the need for users to handle private keys and pay gas fees.
This approach enhances user convenience and security by allowing centralized contract wallet management, reducing the burden of private key management and gas fees, while ensuring secure and efficient token operations.
Smart Images

Figure 2025168000000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to an information processing system, an information processing method, and a program for providing services using tokens managed on a blockchain network. [Background technology]
[0002] In recent years, blockchain technology, which allows the issuance and management of tokens such as non-fungible tokens (NFTs) and fungible tokens (FTs), has been attracting attention. Blockchain technology creates an autonomous decentralized network (also called a "blockchain network") in which multiple users' computers distribute and maintain a ledger containing transaction history.
[0003] A token is digital data that is associated with a blockchain address (also simply called an "address") and recorded on the blockchain network. When a token is associated with a certain address, it is generally said that the entity identified by that address "owns" the token.
[0004] There are two types of entities that can own tokens: "Externally Owned Accounts (EOAs)" assigned to users, and "smart contracts," which are programs deployed on the blockchain network. Both have blockchain addresses. EOAs are sometimes called "wallets."
[0005] Although EOA and smart contracts may each own tokens, EOA, which has a private key, can initiate transactions related to tokens using this private key, whereas smart contracts, which do not have the private key, cannot initiate transactions related to tokens. In addition, users are charged a fee called a "gas fee" to record transactions on the blockchain.
[0006] Here, the EOA private key is merely a character string, which can be easily copied, and once it is leaked, it is impossible to restrict access after the fact by changing the password, as with the IDs and passwords of existing processing systems, and the authority granted to the address of the private key will be accessible forever. For users, it is inconvenient as they have to write down the character string corresponding to the private key, called a mnemonic, on paper and store it in a safe.
[0007] A smart contract specialized for owning and manipulating tokens is called a "contract wallet" (or "smart account"). Contract wallets may make it possible to treat smart contracts on a blockchain like wallets that own and operate tokens. One example of a contract wallet standard is ERC-4337 (see Non-Patent Document 1). [Prior art documents] [Non-patent literature]
[0008] [Non-Patent Document 1] ERC-4337,URL:https: / / github.com / ethereum / ercs / blob / master / ERCS / erc-4337.md Summary of the Invention [Problem to be solved by the invention]
[0009] However, in the reference implementation of ERC-4337, in order to protect the decentralization (i.e., autonomous decentralization) of the blockchain, there is a one-to-one correspondence between the user's EOA address and the contract wallet address, which also serves as authentication.
[0010] Therefore, although users make transaction requests via contract wallets, in reality, users must pay the gas fees and manage the EOA private keys themselves, which means that convenience for users of blockchain remains low.
[0011] Therefore, an object of the present disclosure is to provide an information processing system, an information processing method, and a program that can improve user convenience by using a contract wallet while ensuring security. [Means for solving the problem]
[0012] An information processing system according to a first aspect of the present disclosure is an information processing system for providing a service using a token managed on a blockchain network, and comprises: a deployment means for deploying a contract wallet, which is a program specialized for the ownership and operation of the token, that is different for each user on the blockchain network; an authentication means for authenticating the user regarding use of the service using user information that is different from the user's externally owned account; and a request means for making a transaction request regarding the token, which is owned by the contract wallet, to the contract wallet associated with the user, using the externally owned account of a business providing the service.
[0013] An information processing method according to a second aspect of the present disclosure is an information processing method executed by an information processing system for providing a service using a token managed on a blockchain network, and includes the steps of: deploying a contract wallet, which is a program specialized for owning and operating the token and is different for each user, on the blockchain network; authenticating the user for use of the service using user information different from the user's externally owned account; and making a transaction request regarding the token, which is owned by the contract wallet, to the contract wallet associated with the user, using an externally owned account of a business providing the service.
[0014] A program according to a third aspect of the present disclosure causes an information processing system for providing a service using a token managed on a blockchain network to execute the following steps: deploying a contract wallet, which is a program specialized for owning and operating the token and is different for each user, on the blockchain network; authenticating the user for use of the service using user information different from the user's externally owned account; and making a transaction request regarding the token, which is owned by the contract wallet, to the contract wallet associated with the user, using an externally owned account of a business providing the service. [Effects of the Invention]
[0015] According to one aspect of the present disclosure, it is possible to provide an information processing system, an information processing method, and a program that can improve user convenience by using a contract wallet while ensuring security. [Brief explanation of the drawings]
[0016] [Figure 1] 1 is a diagram illustrating an example of an overall configuration including an information processing system according to an embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of each computer according to the embodiment. [Figure 3] FIG. 1 is a diagram illustrating an example of a functional block configuration related to a smart contract in a blockchain network according to an embodiment. [Figure 4] FIG. 10 is a diagram illustrating an example of the operation of each smart contract according to the embodiment. [Figure 5] FIG. 10 is a diagram illustrating an example of the operation of each smart contract according to the embodiment. [Figure 6] FIG. 10 is a diagram illustrating a modified example of the functional block configuration related to smart contracts in a blockchain network according to an embodiment. [Figure 7] FIG. 10 is a diagram illustrating an example of the operation of each smart contract according to the embodiment. [Figure 8] FIG. 10 is a diagram illustrating another modified example of the functional block configuration related to smart contracts in a blockchain network according to an embodiment. [Figure 9] FIG. 1 is a diagram illustrating an example of a functional block configuration of an information processing system according to an embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of a method for determining a wallet address according to an embodiment. [Figure 11] FIG. 10 is a sequence diagram showing an example of the operation up to issuing an NFT to each user in accordance with an embodiment. [Figure 12] FIG. 10 is a sequence diagram showing an example of operations when each user uses an NFT (token-related service) according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0017] The embodiments will be described with reference to the drawings, in which the same or similar parts are denoted by the same or similar reference numerals.
[0018] (1) Overview of the embodiment The information processing system according to the embodiment is an information processing system for providing services using tokens managed on a blockchain network, and includes: a deployment means for deploying a contract wallet, which is a program specialized for the ownership and operation of tokens, that is different for each user on the blockchain network; an authentication means for authenticating a user regarding use of the service using user information that is different from the user's externally owned account (also referred to as "user EOA"); and a request means for making a transaction request regarding a token owned by the contract wallet associated with the user, using the externally owned account (also referred to as "business EOA") of the business that provides the service.
[0019] In this way, in the embodiment, the authentication means authenticates the user for use of the service by using user information different from the user EOA. This allows user authentication even for users who do not have an EOA (user EOA), and allows users to use the service while maintaining a reduced level of security.
[0020] Furthermore, the request means uses the EOA of the business providing the service to make a transaction request to the contract wallet associated with the user, regarding a token owned by the contract wallet. In other words, the transaction request is made using the business EOA, not the user EOA. This eliminates the need for the user to manage the EOA's private key and the user to pay the gas fee. Specifically, in the embodiment, the management of the business EOA's private key and the payment of the gas fee are performed as part of the business's processing (processing of the information processing system).
[0021] Therefore, according to the embodiment, a centralized contract wallet processing system can be realized in which a contract wallet is operated using a specific EOA of a service provider, rather than using an unspecified number of user EOAs. This makes it possible to improve the convenience of users using a contract wallet.
[0022] (2) Overall configuration example FIG. 1 is a diagram showing an example of the overall configuration including an information processing system 100 according to this embodiment.
[0023] In the illustrated example, an information processing system 100, multiple terminal devices 200, a blockchain network 300, and a KMS (Key Management Service) system 400 are communicatively connected via a network 5. The network 5 includes the Internet. The network 5 may also include a LAN (Local Area Network) and / or a WAN (Wide Area Network).
[0024] The information processing system 100 is a system of a business operator that provides services (also referred to as "token-related services" or "Web3 services") using tokens managed by a blockchain network 300, and is configured to include one or more servers. The blockchain network 300 is an autonomous distributed network configured of multiple computers connected peer-to-peer, in which multiple users' computers distribute and hold ledgers containing transaction histories. Note that the term "blockchain" primarily refers to blockchain technology, and in this embodiment, an Ethereum-compatible blockchain is assumed, but a non-Ethereum-compatible blockchain such as Solana may also be used. Furthermore, the term "blockchain" may be used interchangeably with the blockchain network 300 and ledger.
[0025] A token is digital data that is associated with a blockchain address and recorded on a blockchain network. A token may be an NFT or an FT, but this embodiment will mainly describe an example in which the token is an NFT. Furthermore, a service using a token refers to any service that uses a token, but this embodiment will mainly consider services that use NFTs, such as NFT issuance and distribution, NFT browsing, NFT transfer, and token gates.
[0026] Each terminal device 200 is a terminal device of a user who uses a token-related service, and is configured by any computer, such as a smartphone, a tablet terminal, or a personal computer. Each terminal device 200 communicates with the information processing system 100 via the network 5. Each terminal device 200 has an interface with the user, accepts various operations from the user, and presents various information to the user. In the illustrated example, there are three terminal devices 200a to 200c corresponding to users a to c, but the number of users and terminal devices 200 is not limited to this.
[0027] In conventional technologies, a user who uses a blockchain or a token needs to have his or her own EOA and manage the private key of the EOA. However, in this embodiment, a user does not need to have his or her own EOA. However, the user's information needs to be registered in the token-related service (information processing system 100). For example, the user has a service account for the token-related service (information processing system 100).
[0028] An EOA is a so-called wallet that can hold tokens, but is actually a private key. The address of an EOA may be a value uniquely calculated from the public key associated with the private key. Since proof of ownership must be performed outside the blockchain network 300, a signature is made with the private key, and the signature is verified on the blockchain network 300, so that the request is processed as coming from the same address. An EOA can be the starting point for a transaction. A transaction is, for example, a process such as the issuance or transfer of a token. The details of the transaction are recorded on the blockchain.
[0029] The blockchain network 300 is a network of multiple computers connected peer-to-peer. There are three types of blockchains: public chains with no specific administrator, private chains managed by a single organization, and consortium chains managed by multiple organizations, and the blockchain network 300 may be any of these. In a typical example, the blockchain network 300 may be the Ethereum network or Polygon network, which are classified as public chains, or the LINE blockchain, which is classified as a private chain.
[0030] In the prior art, users of a blockchain network 300 use the network 300 through a blockchain account called an EOA. The blockchain network 300 is also configured to be able to record various smart contracts (programs). An EOA is identified by an address (also called a "wallet address"), and a smart contract is also identified by an address (also called an "account contract address"). Both the EOA and the smart contract can be the owner of various tokens.
[0031] The blockchain network 300 is configured to be able to record (mint) various transactions on the blockchain (specifically, the ledger). These various transactions include an issuance transaction for issuing a new account, smart contract, or token, and a transfer transaction for transferring ownership of a token.
[0032] The process of minting a transaction into the ledger in the blockchain network 300 is executed by several computers (hereinafter referred to as "miners") connected to the blockchain network 300. Specifically, each block constituting the blockchain (ledger) includes a block header and data (transaction data) indicating the specific contents of the transaction. The block header includes a Merkle root, which is data obtained by compressing the size of the transaction data, a hash value of the previous block, and a nonce value, which is an arbitrary string of characters. In the blockchain network 300, a rule is established that, in order for a new block to be connected to the blockchain, the hash value of the block must satisfy a predetermined condition (for example, the condition that the value begins with "000"). Therefore, a miner who wishes to record a block in the blockchain performs a brute-force operation (mining) to find a nonce value so that the hash value of the block's block header satisfies the predetermined condition. As a result of this operation, the miner who succeeds in discovering the nonce value first connects the block to the blockchain, thereby completing the minting of the transaction into the blockchain.
[0033] When the blockchain network 300 is the Ethereum network or the Polygon network, a person who wants to mint a transaction into the blockchain must pay a fee called "gas" in virtual currency. Gas is paid as a reward to miners who successfully link blocks.
[0034] The blockchain EOA, smart contract, and transactions (ledger) are actually stored in one or more of the multiple computers that make up the blockchain network 300. In the following explanation, even when a process is described as being performed by a smart contract, it is actually one of the computers that make up the blockchain network 300 that executes that process.
[0035] The KMS system 400 is a system that provides hardware wallet functionality as a cloud service and is composed of one or more servers. As mentioned above, blockchain requires signatures using private keys, but does not require access to the private keys themselves. Therefore, there are devices called hardware wallets that function as EOAs. These devices store private keys in chips that do not allow access to internal data and output signatures only for input data via USB (Universal Serial Bus) or other interfaces. However, hardware wallets are expensive and not user-friendly for average consumers, so they have not become widespread. A hardware security module (HSM) with similar functionality exists for data centers, and a cloud service using such equipment is called a KMS. A KMS functions as an EOA, just like a hardware wallet. Providers of token-related services have a KMS service account and use the KMS system 400 to manage the private keys of their EOAs.
[0036] Based on this overall configuration, the information processing system 100 deploys a contract wallet, which is a program specialized for token ownership and operation, and which is different for each user, on the blockchain network 300. A contract wallet is a type of smart contract. However, even in blockchains such as Bitcoin that do not have smart contract processing systems, there is a movement to expand smart contract-like processing systems, and contract wallets may be realized by smart contract-like processing systems. Note that, like EOAs, smart contracts are assigned unique addresses, but unlike EOAs, they do not have private keys and therefore cannot be the starting point for transactions.
[0037] Furthermore, the information processing system 100 authenticates the user using user information different from the user EOA. Such user authentication is authentication using user information such as a user identifier pre-registered in the token-related service (information processing system 100), and can use an authentication method similar to conventional login (sign-in) authentication. In other words, the information processing system 100 authenticates the user using existing authentication such as password authentication and / or biometric authentication (so-called Web2 authentication), rather than blockchain authentication using a signature using the private key of the EOA (so-called Web3 authentication).
[0038] The information processing system 100 then uses a business EOA that provides token-related services to issue a transaction request for a token owned by the contract wallet associated with the user. In other words, the information processing system 100 realizes a centralized contract wallet processing system that uses a business EOA to operate the contract wallet, rather than an unspecified number of user EOAs. The private key of the business EOA is securely stored and managed in the KMS system 400. The address of the business EOA can also be considered the address of the KMS system 400, and is also referred to as a KMS address.
[0039] In this embodiment, the user EOA itself is not managed by the operator, so there are no issues with transferring or duplicating the wallet (user EOA), and existing legal systems and terms of use can be applied as is. Furthermore, the operator's EOA makes all transaction requests and pays the gas fee, so the user does not need to pay any gas fees. Therefore, according to this embodiment, Web3 services can be provided in accordance with the common sense up to Web2, where the service provider (operator) pays the computing costs required for the service.
[0040] In addition, in this embodiment, requests for various operation transactions of the contract wallet are executed by signatures from the business EOA. For example, even a contract wallet with over 100 million different addresses may be operated by a single business EOA. This is called centralized. However, the number of business EOAs is not limited to one, and there may be multiple.
[0041] Furthermore, in the case of a user EOA, the next process cannot be performed until one process is completed, which may require waiting for several tens of seconds depending on the blockchain. On the other hand, according to this embodiment, by having multiple business EOAs perform operations on a single contract wallet, it is possible to perform multiple processes in the same several tens of seconds.
[0042] In this way, with the contract wallet of this embodiment, a user who has been authenticated outside the blockchain, for example, by the business operator's existing authentication system, can operate the contract wallet assigned to that user through the business operator's information processing system 100.
[0043] (3) Hardware configuration example 2 is a diagram showing an example of the hardware configuration of each computer constituting the information processing system 100, terminal device 200, KMS system 400, and blockchain network 300 according to this embodiment. Each of these computers can be configured as a computer 10 having the configuration shown in the figure.
[0044] The computer 10 includes a processing unit 11, a memory unit 12, a communication unit 13, an input unit 14, and an output unit 15. The processing unit 11, the memory unit 12, the communication unit 13, the input unit 14, and the output unit 15 are electrically connected to each other via a bus (not shown).
[0045] The processing unit 11 includes a CPU (Central Processing Unit) and is a device that controls each part of the computer 10 and also reads and executes various programs stored in the storage unit 12.
[0046] The storage unit 12 includes a main storage device such as a DRAM (Dynamic Random Access Memory) and an auxiliary storage device such as a hard disk, and is a device for storing various programs for executing the operating system and various applications of the computer 10, as well as data used by these programs. The processing unit 11 of each computer executes the programs stored in its respective storage unit 12 to realize the operations described above and below.
[0047] The communication unit 13 is a device for communicating with external devices, and transmits and receives data according to instructions from the processing unit 11. Each computer uses this communication unit 13 to communicate with other devices.
[0048] The input unit 14 is a device that receives input from outside and supplies it to the processing unit 11, and is configured to include, for example, a keyboard, a mouse, and a touch panel. The output unit 15 is a device that outputs the processing result of the processing unit 11 to the outside, and is configured to include, for example, a display and a speaker.
[0049] (4) Example of functional block configuration The functional block configurations of the information processing system 100, the blockchain network 300, and the KMS system 400 according to this embodiment will be described.
[0050] (4.1) Example of a blockchain network configuration FIG. 3 is a diagram showing an example of a functional block configuration related to a smart contract in the blockchain network 300 according to this embodiment.
[0051] Each of the illustrated smart contracts may be deployed to the blockchain network 300 by the information processing system 100, for example, using an enterprise EOA, making a request for a smart contract issuance transaction to the blockchain network 300. Each of the illustrated smart contracts has a unique address.
[0052] In FIG. 3, a plurality of contract wallets 320 and a token contract 330 are deployed as a plurality of smart contracts in a blockchain network 300.
[0053] Contract wallet 320 is a smart contract specialized for token ownership and operation, and is different for each user. In the illustrated example, contract wallet (a) 320a associated with user a, contract wallet (b) 320b associated with user b, and contract wallet (c) 320c associated with user c are deployed.
[0054] The token contract 330 is a smart contract that generates and manages tokens. If the token is an NFT, the token contract 330 is an NFT contract, and if the token is an FT, the token contract 330 is an FT contract. However, this embodiment mainly assumes that the token contract 330 is an NFT contract. One NFT contract can generate and manage multiple NFTs, and each NFT is identified by the address of the NFT contract and the identifier of each NFT within the NFT contract (=token ID). The NFT contract stores the ownership status of each NFT in its own memory area.
[0055] For example, when confirming ownership of an NFT with token ID: 3 deployed at address A of token contract 330, token contract 330 may accept an API call such as "ownerOf(3)" from information processing system 100 (business EOA) and return the address of the owner of the NFT with token ID: 4.
[0056] Also, for example, as shown in FIG. 4, consider a transfer transaction to transfer an NFT with token ID: 4 from address C associated with user c to address D associated with user d. In this case, an enterprise EOA (information processing system 100) having address X makes a transfer transaction request to the contract wallet 320 of address C. The contract wallet 320 of address C restricts access so that only address X can execute functions. The contract wallet 320 of address C accepts the transfer transaction request and makes a transfer transaction request such as "safeTransferFrom(address C, address D, 4)" to the token contract 330. The token contract 330 restricts access so that only address C can execute the function (transfer transaction of the NFT of address C). The token contract 330 confirms that the transfer transaction request is from address C, the owner of the NFT with token ID: 4, and records (updates) the owner of the NFT with token ID: 4 to change from address C to address D.
[0057] In this way, strict access restrictions based on addresses between smart contracts eliminate security risks on-chain.
[0058] However, as shown in Figure 5, in the case of a typical contract wallet implementation, such as ERC-4337, all commands (transaction requests) can be executed at the discretion of the application developer. Specifically, the contract wallet 320 does not implement specific functions, but instead passes bytecode and operates a specified external smart contract (e.g., token contract 330), so essentially all operations are possible. Such an implementation could potentially cause serious security issues, whether intentional or unintentional.
[0059] Therefore, in this embodiment, one or more operation contracts 310 may be deployed in the blockchain network 300, as shown in Fig. 6. In the illustrated example, there are two operation contracts 310, but the number of operation contracts 310 is not limited to this.
[0060] Each operation contract 310 is a smart contract that exists between the information processing system 100 (business EOA) and the contract wallet 320 and can only perform predetermined token operations on the contract wallet 320. Each operation contract 310 can be used differently depending on the purpose, and an operation contract 310 may be deployed for each group of functions.
[0061] As shown in FIG. 7, one or more operation contracts 310 are given the authority to execute the external smart contract execution function of the contract wallet 320, allowing execution only from functions implemented in the operation contract 310. Specifically, the operation contract 310 cannot execute functions other than those hard-coded within itself. This implementation allows the addition of functions to the operation contract 310 to be operated with divided authority and approval, preventing unintended function addition. For example, new functions can be added to the operation contract 310 or a new operation contract 310 can be deployed only after multiple signatures are obtained. Specifically, new functions can be added to the operation contract 310 or a new operation contract 310 can be deployed only when a certain number of EOA signatures (e.g., three out of a maximum of five signatures) from highly authorized individuals (such as administrators) on the blockchain are collected (by majority vote).
[0062] In this way, each smart contract grants role-based execution permissions for each function, and by granting the same roles only to specified addresses, security on the blockchain is ensured.
[0063] However, as shown in Figure 8, when there are a large number of contract wallets 320, the work of setting the address of each operation contract 310 in each contract wallet 320 as an entity with authority to execute the functions of each contract wallet 320 becomes enormous. For this reason, in this embodiment, an authority contract 350 (authentication contract), which is a common smart contract that manages the execution authority of each contract wallet 310, is assigned to all or some of the multiple contract wallets 320. The authority contract 350 has a function for confirming whether authority is granted, and executes this function when called from each contract wallet 320. This significantly reduces the work of setting up each contract wallet 320 and avoids security issues due to setting errors.
[0064] Similarly, when there are a large number of operation contracts 310, the work of setting the addresses of each EOA (each operator EOA) in each operation contract 310 as entities with authority to execute functions of each operation contract 310 becomes enormous. For this reason, in this embodiment, an authority contract 340 (authentication contract), which is a common smart contract that manages the execution authority of each operation contract 310, is assigned to all or some of the multiple operation contracts 310. The authority contract 340 has a function for checking whether authority is granted, and executes this function when called from each operation contract 310. This significantly reduces the work of setting each operation contract 310 and avoids security problems due to setting errors.
[0065] (4.2) Example of information processing system configuration FIG. 9 is a diagram showing an example of a functional block configuration of an information processing system 100 according to this embodiment.
[0066] The information processing system 100 includes a smart contract deployment unit 110, a user authentication unit 120, a transaction request unit 130, a wallet address determination unit 140, a private key management unit 150, a user database (DB) 101, and a cloud private key storage unit 102.
[0067] The smart contract deployment unit 110 deploys a contract wallet 320, which is a smart contract specialized for token ownership and operation and is different for each user, on the blockchain network 300.
[0068] The user authentication unit 120 performs user authentication (that is, Web2 authentication) using user information different from the user EOA.
[0069] The transaction request unit 130 uses the business EOA to make a transaction request to the contract wallet 320 associated with the user regarding a token owned by the contract wallet 320.
[0070] The wallet address determination unit 140 determines, for each user, the address (wallet address) of the contract wallet 320 to be assigned to that user. Specifically, the wallet address determination unit 140 determines a unique wallet address from the user's identifier (e.g., user ID) by performing a calculation using a predetermined function.
[0071] Fig. 10 is a diagram for explaining an example of a method for determining a wallet address according to this embodiment. Information for each user as shown in Fig. 10 is stored as user account information in user DB 101. In the example shown, wallet address determination unit 140 calculates a unique hash value as an identifier hash from an identifier such as the user's ID and / or email address, and calculates a unique wallet address (Web3 address) from the identifier hash.
[0072] In this way, a unique Web3 address is determined from the user identifier. For example, the wallet address determination unit 140 can calculate the Web3 address corresponding to the user identifier using only offline calculations by using a function that can calculate the Web3 address in advance (such as create2 in the case of Ethereum). Therefore, a wallet address can be added to the Web2 user DB 101 without connecting to the blockchain.
[0073] This makes it possible to instantly plan on-chain measures for a large number of users (accounts), for example, over 100 million.On the other hand, when using conventional user EOAs, it is necessary for users to create EOAs, making instant planning impossible.
[0074] Furthermore, by determining a unique Web3 address from a user's identifier, the same address can be used on all compatible blockchains. For example, in the case of blockchains using the same method, such as EVM (Ethereum Virtual Machine), contract wallets can be deployed at the same address on different blockchains.
[0075] In this embodiment, when it becomes necessary to allocate a contract wallet 320 to a user, the smart contract deployment unit 110 deploys the contract wallet 320 having the address determined by the wallet address determination unit 140 for that user on the blockchain network 300. Deploying the contract wallet 320 is not necessary for receiving tokens such as FTs and NFTs. Deploying the contract wallet 320 only when the functions of the contract wallet 320 are needed can significantly reduce gas costs and processing time.
[0076] For example, in the most commonly used usage pattern such as Token Gate, the deployment of Contract Wallet 320 is not required, and Contract Wallet 320 is deployed on the blockchain only when a function using Contract Wallet 320 (for example, initiating a transaction such as transferring a token) becomes necessary. The issuance transaction for deploying Contract Wallet 320 costs around 2,000 yen per Ethereum, and around 1 to 2 yen even on other inexpensive blockchains, which allows for significant cost reductions in the case of a service with a scale of 100 million accounts.
[0077] The private key management unit 150 manages the private key (also referred to as the "wallet private key") of the business EOA using the KMS system 400, which realizes a hardware wallet function as a cloud service. A signature generated by the KMS system 400 based on the wallet private key is attached to the transaction request of the transaction request unit 130.
[0078] As described above, in this embodiment, transaction signing is performed not by the user EOA but by the KMS, which does not have access to the wallet private key. Specifically, by using the KMS (KMS system 400) for the business EOA, it is possible to sign and operate the contract wallet 320 on the blockchain without deploying the wallet private key on the memory of the information processing system 100. Furthermore, since the function equivalent to the wallet on the user side is also realized by the contract wallet 320, which does not have a private key, an extremely secure processing system is realized in which the wallet private key does not exist on the memory, even for a moment, from the information processing system 100 to the terminal device 200.
[0079] The cloud private key storage unit 102 stores a cloud private key for accessing a specific service account that has access rights to the KMS system 400. The private key management unit 150 manages access to the KMS using a cloud private key for accessing a specific service account (also referred to as a "virtual account") that has access rights to the KMS (KMS system 400). That is, the KMS manages access by granting minimum access rights only to specific virtual accounts and assigning cloud private keys (non-wallet private keys) that can access these virtual accounts to servers, etc.
[0080] The private key management unit 150 may periodically update the cloud private key. For example, the private key management unit 150 may rotate the cloud private key at regular intervals. Furthermore, the private key management unit 150 may immediately invalidate the cloud private key when it is leaked. This makes it possible to ensure a high level of security.
[0081] In this embodiment, the smart contract deployment unit 110 may deploy a contract wallet 320 that performs access restriction to allow only the address of the operator EOA to execute functions in the blockchain network 300, as shown in Fig. 4. Furthermore, the smart contract deployment unit 110 may deploy multiple contract wallets 320 in the blockchain network 300, as shown in Fig. 8, and further deploy an authority contract 350 that is used commonly by the multiple contract wallets 320 in the blockchain network 300. As shown in Figs. 6 and 7, when an operation contract 310 is deployed, the smart contract deployment unit 110 may deploy a contract wallet 320 in the blockchain network 300 that performs access restriction to allow only the address of the operation contract 310 to execute functions. In this way, the smart contract deployment unit 110 deploys a contract wallet 320 in the blockchain network 300 that restricts access so that only addresses associated with the operator EOA (the address of the operator EOA or the address of the operation contract 310) can execute functions.
[0082] 6 and 7, the smart contract deployment unit 110 may further deploy a token contract 330, which is a program that generates and manages tokens, and an operation contract 310, which is a program that can perform only predetermined token operations on the contract wallet 320 in response to a transaction request from an enterprise EOA, on the blockchain network 300. The smart contract deployment unit 110 may add a new function to the operation contract 310 or deploy a new operation contract 310, on the condition that multiple signatures are obtained.
[0083] Here, the smart contract deployment unit 110 may deploy an operation contract 310 that restricts access so that only the address of the business EOA can execute functions, on the blockchain network 300. As shown in Figure 8, the smart contract deployment unit 110 may deploy multiple operation contracts 310 on the blockchain network 300, and may also deploy an authority contract 340 that is commonly used by the multiple operation contracts 310 on the blockchain network 300.
[0084] Furthermore, the smart contract deployment unit 110 may deploy a token contract 330 on the blockchain network 300 that imposes access restrictions that allow only the address of the operation contract 310 to execute functions.
[0085] (5) Example of operation sequence An example of an operation sequence according to the embodiment will be described below, taking as an example a case where the token is an NFT.
[0086] FIG. 11 is a sequence diagram showing an example of the operation up to issuing an NFT to each user according to this embodiment.
[0087] In step S101, the information processing system 100 makes a request to the blockchain network 300 to issue a group of smart contracts. At this stage, the information processing system 100 may request the blockchain network 300 to issue a smart contract other than the contract wallet 320 (e.g., the operation contract 310 or the token contract 330). Alternatively, at this stage, the information processing system 100 may request the blockchain network 300 to deploy at least one contract wallet 320.
[0088] In step S102, the blockchain network 300 deploys a group of smart contracts in response to a request from the information processing system 100. The blockchain network 300 may notify the information processing system 100 of the addresses of each deployed smart contract.
[0089] In step S103, the information processing system 100 uniquely determines a wallet address (Web3 address) for each user based on the user's identifier, and assigns the determined wallet address to the user DB101.
[0090] In step S104, the information processing system 100 requests the blockchain network 300 to issue an NFT whose owner is the wallet address determined in step S103.
[0091] In step S105, the blockchain network 300 issues the NFT in response to a request from the information processing system 100. The blockchain network 300 may notify the information processing system 100 of the completion of the NFT issuance.
[0092] FIG. 12 is a sequence diagram showing an example of the operation when each user uses an NFT (token-related service) according to this embodiment.
[0093] Steps S201 to S205 are operations related to providing NFT viewing or token gate functions.
[0094] In step S201, the terminal device 200 signs in to the information processing system 100 (token-related service) in response to an operation (instruction) from a user to view an NFT or use the token gate function.
[0095] In step S202, the information processing system 100 performs user authentication (Web2 authentication) for the sign-in. Here, the explanation will continue assuming that the user authentication is successful. The information processing system 100 acquires the wallet address (Web3 address) of the successfully authenticated user from the user DB 101.
[0096] In step S203, the information processing system 100 queries the blockchain network 300 regarding the ownership status of NFTs owned by the user's wallet address.
[0097] In step S204, the blockchain network 300 notifies the information processing system 100 of the ownership status.
[0098] In step S205, the information processing system 100 provides the NFT viewing or token gate function to the terminal device 200 (user) in response to a notification from the blockchain network 300.
[0099] Steps S206 to S209 are operations related to NFT transfer.
[0100] In step S206, the terminal device 200 issues an NFT transfer instruction (transfer request) specifying the transfer destination address to the information processing system 100 in response to an operation (instruction) from the user.
[0101] In step S207, the information processing system 100 makes an NFT transfer transaction request to the blockchain network 300, specifying the wallet address (Web3 address) of the user as the transfer source and the specified address as the transfer destination. Here, if the contract wallet 320 associated with the wallet address of the user has not been deployed, the information processing system 100 requests that the contract wallet 320 be deployed to the blockchain network 300.
[0102] In step S208, when the blockchain network 300 completes the transfer transaction, it notifies the information processing system 100 of the completion of the transaction.
[0103] In step S209, the information processing system 100 notifies the terminal device 200 (user) of the completion of the transaction.
[0104] (6) Other embodiments In the above embodiment, the contract wallet 320 can also perform ERC-4337 compatible function extensions, and can also execute contract wallet functions that utilize algorithms such as PKCS#1 v1.5 for IoT and credit cards.
[0105] The operational flows and operational examples in the above-described embodiments do not necessarily have to be executed in chronological order according to the order shown in the flow diagrams. For example, steps in the operations may be executed in an order different from that shown in the flow diagrams, or may be executed in parallel. Furthermore, some steps in the operations may be deleted, or additional steps may be added to the process.
[0106] A program may be provided that causes a computer to execute the operations according to the above-described embodiments. The program may be recorded on a computer-readable medium. The computer-readable medium can be used to install the program on a computer. Here, the computer-readable medium on which the program is recorded may be a non-transitory storage medium. The non-transitory storage medium is not particularly limited, and may be, for example, a storage medium such as a CD-ROM or a DVD-ROM.
[0107] As used in this disclosure, the terms "based on" and "depending on" do not mean "based only on" or "depending only on," unless expressly stated otherwise. The term "based on" means both "based only on" and "based at least in part on." Similarly, the term "depending on" means both "depending only on" and "depending at least in part on." Furthermore, the terms "include," "comprise," and variations thereof do not mean including only the listed items, but may include only the listed items, or may include additional items in addition to the listed items. Furthermore, the term "or" as used in this disclosure is not intended to mean an exclusive or. In this disclosure, when articles are added by translation, such as a, an, and the in English, these articles are intended to include the plural unless the context clearly indicates otherwise.
[0108] The above describes the embodiments in detail with reference to the drawings, but the specific configuration is not limited to that described above, and various design changes can be made within the scope that does not deviate from the gist of the invention.
[0109] (7) Supplementary Notes The following additional notes are about the features of the above-described embodiment.
[0110] Appendix 1 An information processing system for providing services using tokens managed on a blockchain network, A deployment means for deploying a contract wallet, which is a program specialized for the ownership and operation of the token, and which is different for each user, on the blockchain network; an authentication means for authenticating the user for use of the service using user information different from that of the user's externally owned account; and a request means for making a transaction request for the token owned by the contract wallet associated with the user, using an externally owned account of a business providing the service. Information processing system.
[0111] Appendix 2 Further, an address determination means is provided for determining, for each user, the address of the contract wallet to be assigned to that user; The address determination means determines the unique address from the user's identifier by performing a calculation using a predetermined function. 10. The information processing system of claim 1.
[0112] Appendix 3 When it becomes necessary to allocate the contract wallet to a user, the deployment means deploys the contract wallet having the address determined by the address determination means to the blockchain network for the user. 10. The information processing system of claim 2.
[0113] Appendix 4 The system further comprises a key management unit that manages the private keys of the externally owned accounts of the business using a KMS (Key Management Service) that realizes a hardware wallet function as a cloud service, The transaction request from the request means is given a signature generated by the KMS based on the private key. An information processing system according to any one of appendices 1 to 3.
[0114] Appendix 5 The key management means manages access to the KMS using a cloud private key for accessing a specific service account that has access rights to the KMS. 5. The information processing system of claim 4.
[0115] Appendix 6 The key management means periodically updates the cloud private key. 6. The information processing system according to claim 5.
[0116] Appendix 7 The deployment means deploys the contract wallet, which restricts access so that only addresses associated with externally owned accounts of the business operator can execute functions, on the blockchain network. 7. An information processing system according to any one of appendices 1 to 6.
[0117] Appendix 8 The deployment means deploys a plurality of contract wallets as the contract wallets on the blockchain network, and further deploys an authority contract, which is a program for restricting access and is used in common by the plurality of contract wallets, on the blockchain network. 8. The information processing system of claim 7.
[0118] Appendix 9 The deployment means A token contract is a program that generates and manages the tokens; an operation contract, which is a program capable of executing only predetermined token operations on the contract wallet in response to the transaction request; further deploying it to said blockchain network An information processing system according to any one of appendices 1 to 8.
[0119] Appendix 10 The deployment means deploys the operation contract, which performs access restriction such that only the address of an externally owned account of the business operator can execute the function, on the blockchain network. 10. The information processing system of claim 9.
[0120] Appendix 11 The deployment means deploys a plurality of operation contracts as the operation contracts on the blockchain network, and further deploys an authority contract, which is a program for restricting access and is used in common by the plurality of operation contracts, on the blockchain network. 11. The information processing system of claim 10.
[0121] Appendix 12 The deployment means deploys the token contract, which restricts access so that only the address of the contract wallet can execute functions, to the blockchain network. 12. An information processing system according to any one of appendices 9 to 11.
[0122] Appendix 13 The deployment means adds a new function to the operation contract or deploys the operation contract on the condition that multiple signatures are obtained. An information processing system according to any one of appendices 9 to 12.
[0123] Appendix 14 An information processing method executed in an information processing system for providing a service using tokens managed in a blockchain network, Deploying a contract wallet, which is a program specialized for owning and operating the tokens and is different for each user, on the blockchain network; authenticating the user to use the service using user information different from that of the user's externally owned account; and making a transaction request for the token, whose owner is the contract wallet, to the contract wallet associated with the user, using an externally owned account of a business that provides the service. Information processing methods.
[0124] Appendix 15 An information processing system for providing services using tokens managed on a blockchain network. Deploying a contract wallet, which is a program specialized for owning and operating the tokens and is different for each user, on the blockchain network; authenticating the user to use the service using user information different from that of the user's externally owned account; and making a transaction request for the token owned by the contract wallet associated with the user, using an externally owned account of a business providing the service. program. [Explanation of symbols]
[0125] 5: Network 10: Computer 11: Processing section 12: Storage section 13: Communications Department 14: Input section 15: Output section 100: Information Processing Systems 102: Cloud private key storage unit 110: Smart Contract Deployment Department 120: User authentication unit 130: Transaction request section 140: Wallet address determination unit 150: Private key management department 200: Terminal device 300: Blockchain Network 310: Operation Contract 320: Contract Wallet 330: Token Contract 340: Permissions Contract 350: Permissions Contract 400: KMS system
Claims
1. An information processing system for providing services using tokens managed on a blockchain network, A deployment means for deploying a contract wallet, which is a program specialized for the ownership and operation of the token, and which is different for each user, on the blockchain network; an authentication means for authenticating the user for use of the service using user information different from that of the user's externally owned account; and a request means for making a transaction request for the token owned by the contract wallet associated with the user, using an externally owned account of a business providing the service. Information processing system.
2. Further, an address determination means is provided for determining, for each user, the address of the contract wallet to be assigned to that user; The address determination means determines the unique address from the user's identifier by performing a calculation using a predetermined function. The information processing system according to claim 1 .
3. When it becomes necessary to allocate the contract wallet to a user, the deployment means deploys the contract wallet having the address determined by the address determination means to the blockchain network for the user. The information processing system according to claim 2 .
4. The system further comprises a key management means for managing the private key of the externally owned account of the business operator by using a KMS (Key Management Service) that realizes a hardware wallet function as a cloud service; The transaction request from the requesting means is given a signature generated by the KMS based on the private key. The information processing system according to claim 1 .
5. The key management means manages access to the KMS using a cloud private key for accessing a specific service account that has access rights to the KMS. The information processing system according to claim 4 .
6. The key management means periodically updates the cloud private key. The information processing system according to claim 5 .
7. The deployment means deploys the contract wallet, which restricts access so that only addresses associated with externally owned accounts of the business operator can execute functions, on the blockchain network. The information processing system according to claim 1 .
8. The deployment means deploys a plurality of contract wallets as the contract wallets on the blockchain network, and further deploys an authority contract, which is a program for restricting access and is used in common by the plurality of contract wallets, on the blockchain network. The information processing system according to claim 7 .
9. The deployment means A token contract is a program that generates and manages the tokens; an operation contract, which is a program capable of executing only predetermined token operations on the contract wallet in response to the transaction request; further deploying it to said blockchain network The information processing system according to any one of claims 1 to 8.
10. The deployment means deploys the operation contract, which performs access restriction such that only the address of an externally owned account of the business operator can execute the function, on the blockchain network. The information processing system according to claim 9 .
11. The deployment means deploys a plurality of operation contracts as the operation contracts on the blockchain network, and further deploys an authority contract, which is a program for restricting access and is used in common by the plurality of operation contracts, on the blockchain network. The information processing system according to claim 10.
12. The deployment means deploys the token contract, which restricts access so that only the address of the contract wallet can execute functions, to the blockchain network. The information processing system according to claim 9 .
13. The deployment means adds a new function to the operation contract or deploys the operation contract on the condition that multiple signatures are obtained. The information processing system according to claim 9 .
14. An information processing method executed in an information processing system for providing a service using tokens managed in a blockchain network, Deploying a contract wallet, which is a program specialized for owning and operating the tokens and is different for each user, on the blockchain network; authenticating the user to use the service using user information different from that of the user's externally owned account; and making a transaction request for the token, whose owner is the contract wallet, to the contract wallet associated with the user, using an externally owned account of a business that provides the service. Information processing methods.
15. An information processing system for providing services using tokens managed on a blockchain network. Deploying a contract wallet, which is a program specialized for owning and operating the tokens and is different for each user, on the blockchain network; authenticating the user to use the service using user information different from that of the user's externally owned account; and making a transaction request for the token owned by the contract wallet associated with the user, using an externally owned account of a business providing the service. program.
Citation Information
Patent Citations
Transaction commission method and transaction commission system
JP2021119544A
Content output system, method, and program using non-fungible tokens
JP7043672B1
E-commerce site management device
JP7454903B1