Information processing system, information processing method, and program
By deploying user-specific contract wallets on a blockchain using business-provided accounts, the system addresses centralized authentication and high gas fees, enhancing security and convenience in blockchain services.
Patent Information
- Application Number
- JP2024161309
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-18
- Publication Date
- 2025-11-07
AI Technical Summary
Existing blockchain systems, such as ERC-4337, lack decentralized management of contract wallets, leading to centralized authentication and high gas fees, compromising user convenience and security.
A system that deploys user-specific contract wallets on a blockchain network, using business-provided externally owned accounts for authentication and transaction management, eliminating the need for user-managed private keys and gas fees.
Ensures secure and convenient user access to blockchain services by decentralizing contract wallet management and reducing operational costs through business-managed transactions.
Smart Images

Figure 2025168186000001_ABST
Abstract
Description
[Technical Field]
[0001] This disclosure provides services using tokens managed on a blockchain network. The present invention relates to an information processing system, an information processing method, and a program for providing such information. [Background technology]
[0002] In recent years, non-fungible tokens (NFTs) and fungibility have become increasingly popular. A blockchain that can issue and manage tokens such as Fungible Tokens (FT). Blockchain technology is attracting attention. An autonomous, decentralized network in which multiple users' computers store a ledger containing history data (also called "blockchain network") will be formed.
[0003] Tokens are associated with blockchain addresses (also simply called "addresses"). It is digital data recorded on the blockchain network. The state in which a token is associated with an address is generally referred to as the state in which the entity identified by the address uses the token. He claims to "own" Kun.
[0004] Here, the entities that can own tokens include "externally owned accounts ( EOA (Externally Owned Account)" and blockchain There are two types: "smart contracts" which are programs deployed on the network, and "smart contracts" which are programs deployed on the network. Both have blockchain addresses. EOA uses what are called "wallets." This may be the case.
[0005] The EOA and the smart contract may each own tokens, but do not have the private keys. The EOA can use this private key to initiate transactions involving the token. In contrast, smart contracts do not have private keys and can only process transactions related to tokens. Transactions cannot be started. In addition, users are charged a fee called a "gas fee."
[0006] Here, the EOA private key is just a string of characters, and can be easily copied, etc. Once it is leaked, If this is the case, it will be possible to change the password and access it later, just like with the ID and password of the existing processing system. Restrictions are impossible, and the permissions granted to the address of the same private key will be accessible forever. Users also write down the character string called a mnemonic corresponding to the private key on a piece of paper and then use it to make a payment. It is inconvenient to store it in a warehouse.
[0007] Smart contracts that are specialized for owning and manipulating tokens are called "contract wallets." " (or "Smart Account"). According to the contract wallet, The smart contract on the blockchain is like a wallet that owns and operates tokens. As a contract wallet standard, for example, E RC-4337 exists (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, the reference implementation of ERC-4337 does not allow for decentralized blockchains. In order to maintain centralization (i.e., autonomous decentralization), the user's EOA address and contract There is a one-to-one correspondence between the address and the wallet address, which also serves as authentication.
[0010] Therefore, when a user makes a transaction request through a contract wallet, However, in reality, users pay their own gas fees and keep the EOA secret. Key management is required, and convenience for blockchain users remains low. There was a problem.
[0011] Therefore, the present disclosure provides a method for users to use a contract wallet while ensuring security. Information processing system, information processing method, and program capable of improving the convenience of the The purpose is to provide. [Means for solving the problem]
[0012] The information processing system according to the first aspect of the present disclosure is managed by a blockchain network. An information processing system for providing services using tokens, It is a program specialized for the ownership and operation of Kun, and each user has a different contract word. a deployment means for deploying the let to the blockchain network; The user uses user information different from that of the account holder to use the service. and an authentication means for authenticating the contract wallet associated with the user. and then use the externally owned account of the business providing the service to execute the contract. A request to make a transaction request regarding said token owned by the wallet. and an est means.
[0013] An information processing method according to a second aspect of the present disclosure is a method for processing information managed by a blockchain network. Information processing method executed in an information processing system for providing services using tokens A program specialized in the possession and operation of the token, which is different for each user. deploying a contract wallet to the blockchain network; Using user information different from the user's externally owned account to use the service and a step of authenticating the user with respect to the controller associated with the user. The external account of the service provider is used for the wallet. , transaction list for the token owned by the contract wallet and a step of performing a quest.
[0014] The program according to the third aspect of the present disclosure is managed by a blockchain network. An information processing system for providing services using tokens is provided with the ownership and A program specialized for the operation and operation of a contract wallet that is different for each user. deploying the user's externally owned account on a blockchain network; Authenticating the user for use of the service using user information different from the Step, and sending the contract wallet associated with the user to the The contract wallet is accessed using an external account of the service provider. making a transaction request for said token for which said token is owned. Make them do so. [Effects of the Invention]
[0015] According to one aspect of the present disclosure, a contract wallet is used to ensure security. Information processing system, information processing method, and program that can improve user convenience Rum can be provided. [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. The same or similar symbols are used for the parts.
[0018] (1) Overview of the embodiment The information processing system according to the embodiment is a blockchain network managed by An information processing system for providing services using KUN, which is It is a specialized program that blocks different contract wallets for each user. The deployment method to deploy to the blockchain network and the user's externally owned account ("User" The Company will use user information different from that of the EOA (also referred to as the "EOA") to provide benefits for the use of the service. The authentication method for authenticating the user and the contract wallet associated with the user , an externally owned account of the business providing the service (also referred to as "Business EOA"); Transactions related to tokens owned by the contract wallet are carried out using the and request means for making a download request.
[0019] In this way, in the embodiment, the authentication means uses user information different from the user EOA. This will authenticate the user for use of the service. Even if a user does not have A), user authentication is possible, and the security degradation is maintained. Users can use the service while maintaining the same security.
[0020] In addition, the request method is to send a request to the contract wallet associated with the user. The contract wallet is owned by the EOA of the service provider. In other words, the user EOA makes a transaction request for the token. Instead, users make transaction requests using the EOA of the business. There is no need to manage your own EOA private key, and users do not need to pay gas fees themselves. Specifically, in the embodiment, the management of the private key of the business EOA and the payment of the gas fee are handled by the business. It is executed as part of the processing by the vendor (processing of the information processing system).
[0021] Therefore, according to the embodiment, an unspecified number of users can operate the contract wallet. A centralized system that does not use EOA but uses the specific EOA of the service provider. This allows the contract wallet processing system to be realized. This can be used to improve user convenience.
[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, a plurality of terminal devices 200, and a blockchain Network 300 and KMS (Key Management Service) system The system 400 is communicably connected via a network 5. includes the Internet. Network 5 is a LAN (Local Area Network) It may include a network (work) and / or a wide area network (WAN).
[0024] The information processing system 100 is a token managed by the blockchain network 300. Services using the token (also referred to as "token-related services" or "Web3 services") It is a system of a business that provides the service and is composed of one or more servers. The blockchain network 300 shares a ledger containing transaction history with multiple users. The computer is distributed and connected by peer-to-peer. It is an autonomous decentralized network that is composed of This mainly refers to blockchain technology, and in this embodiment, it refers to an Ethereum-compatible blockchain. However, even if it is a blockchain that is not Ethereum compatible, such as Solana, Also, the term "blockchain" refers to a blockchain network 300 or ledger may be used interchangeably with.
[0025] Tokens are associated with blockchain addresses and are used to create tokens on the blockchain network. The token may be an NFT or an FT. However, in this embodiment, an example in which the token is an NFT will be mainly described. Furthermore, a service using a token means any service using a token, In this embodiment, NFTs such as issuance and distribution, NFT browsing, NFT transfer, and token gates are The main focus is on services using T.
[0026] Each terminal device 200 is a terminal device of a user who uses a token-related service, for example. For example, any computer, such as a smartphone, tablet, or personal computer. Each terminal device 200 is connected to the information processing system 1 via the network 5. Each terminal device 200 has an interface with a user and communicates with various It accepts operations from the user and presents various information to the user. In this example, there are three terminal devices 200a to 200c corresponding to users a to c. The number of users and terminal devices 200 is not limited to this.
[0027] In conventional technology, users of blockchains and tokens have their own EOA. In the past, it was necessary to manage the private key of the EOA. However, the user's information may be used for token-related services (information processing) For example, users must be registered in the token-related service system 100. The user has a service account for the information processing system 100.
[0028] EOA refers to a wallet that allows you to own tokens. However, in reality it is a private key. The EOA address is a public key associated with the private key. It may be a value that is uniquely calculated from the open key. Since proof of ownership is required to be performed by the department, a signature is made with the private key and the blockchain network is established. By verifying the signature on the network 300, the request is processed as coming from the same address. An EOA can be the starting point for a transaction. For example, the issuance or transfer of tokens. The details of the processing are recorded in
[0029] The blockchain network 300 is a network of multiple computers connected peer-to-peer. Blockchain is a public network of computers with no specific administrator. blockchains, private chains managed by a single organization, and There are three types of consortium chains managed by blockchain networks. The network 300 can be any of these. A typical example is a blockchain network. Ethereum Network or Polygon, which is classified as a public chain, is a blockchain that can be used to exchange cryptocurrencies. Networks or private chains such as the LINE Blockchain It could be.
[0030] In the prior art, users of a blockchain network 300 can use a blockchain called EOA. Use the blockchain network 300 via your blockchain account In addition, the blockchain network 300 is a platform for various smart contracts (programs) The EOA is configured to record addresses (also called "wallet addresses"). ), and smart contracts are also identified by addresses ("account contract addresses"). Both EOA and smart contracts are identified by various transactions. You can become the owner of a token.
[0031] The blockchain network 300 performs various transactions on the blockchain. (Specifically, the ledger) can be recorded (minted). The issuance process involves issuing new accounts, smart contracts, or tokens. This includes transactions such as token transfers and token ownership transfers. do.
[0032] A process for minting transactions into a ledger in a blockchain network 300. The process is carried out by several computers (hereinafter referred to as Specifically, the blockchain Each block that makes up the ledger contains a block header and the specific details of the transaction. The block header contains data indicating the transaction. The Merkle root is the data that is compressed and the hash of the previous block is used. The blockchain network contains a token value and a nonce value, which is an arbitrary string. In 2000, to connect a new block to the blockchain, the If the flash value meets a certain condition (for example, the value must start with "000"), Therefore, the rules stipulate that the block in the blockchain must be A miner who wants to record a lock must have a block whose block header hash value is higher than the The task of finding a nonce value (mining) in a brute force manner so that the above conditions are met As a result of this work, the miner who succeeded in discovering the nonce value the fastest will be the Blockchain transactions are created by linking blocks to the blockchain. The minting process is complete.
[0033] Blockchain network 300 is the Ethereum network or Polygonnet In the case of a blockchain, the person who wants to mint a transaction into the blockchain must A fee called "gas" must be paid in cryptocurrency. Gas is the amount of time required to create a chain of blocks. It is paid as a reward to miners who successfully complete the transaction.
[0034] Blockchain EOA, smart contracts, and transactions (ledgers) In reality, the blockchain network 300 is made up of multiple computers. In the following explanation, the process performed by the smart contract is The process explained here is actually executed by the blockchain network. It is any of the computers that make up network 300.
[0035] KMS System 400 provides hardware wallet functionality as a cloud service It is a system that includes one or more servers. The chain requires signing with a private key, but does not require access to the private key itself. Therefore, the secret key is implemented in a chip that makes it impossible to access the internal data, and the USB (Un Only the signature for input data via a IEEE 802.11a / b / g or a IEEE 802.11b / g / n is accepted. There is a device called a hardware wallet that outputs EOA. Hardware wallets are expensive and not easy to use for the average consumer. It is difficult to say what kind of device it is, so it has not become widespread. There is a hardware security module (HSM) as a key material, A cloud service that uses such equipment is called a KMS. It functions as an EOA in the same way as the KMS. and has a service account for the EOA and uses the KMS system 400 to obtain the private key of the EOA. Manage.
[0036] Based on this overall configuration, the information processing system 100 is It is a specialized program that blocks different contract wallets for each user. It will be deployed on the chain network 300. The contract wallet will be used for smart contracts. However, blockchains such as Bitcoin do not have a smart contract processing system. Even in blockchains, there is a movement to expand the processing system similar to smart contracts, The contract wallet may be realized by a processing system similar to a smart contract. Smart contracts are given unique addresses, just like EOAs. Unlike Ethereum, it does not have the private key and therefore cannot initiate transactions.
[0037] In addition, the information processing system 100 uses user information different from the user EOA to Such user authentication is performed in the token-related service (information processing system 10 0), and is an authentication method that uses user information such as a user identifier pre-registered in The same authentication method as the sign-in authentication can be used. Mu100 is a blockchain authentication system that uses the EOA's private key to sign the transaction. b3 authentication), but password authentication and / or existing authentication such as biometric authentication (so-called We Users are authenticated using the B2 authentication method.
[0038] The information processing system 100 then creates a contract wallet associated with the user. The contract will be executed using EOA, a business that provides token-related services to Make a transaction request for a token owned by the wallet, i.e. The information processing system 100 allows an unspecified number of users EO to operate the contract wallet. A centralized contract wallet processing system that does not use A but uses business EOA. Here, the private key of the business EOA is securely stored in the KMS system 400. The address of the business EOA is considered to be the address of the KMS system 400. This is also called the KMS address.
[0039] In this embodiment, the user EOA itself is not managed by the business operator, so the wallet ( There are no problems with the transfer or duplication of user EOAs, and existing legal systems and terms of use are applicable. In addition, the EOA on the business side makes all transaction requests and Therefore, the user does not have to pay any gas fees. If the service provider (business operator) pays the computing costs required for the service, It is possible to provide Web3 services in accordance with the common sense of Web2.
[0040] In this embodiment, various operation transaction requests of the contract wallet are The test is executed by a signature by the operator EOA. For example, there are over 100 million different addresses. Even if it is a contract wallet, it may be operated by a single operator EOA. This is called centralized. However, the number of EOAs is not limited to one, but may be multiple. Good too.
[0041] Furthermore, in the case of user EOA, the next process cannot be performed until one process is completed. Depending on the blockchain, you may have to wait for several tens of seconds. ,Operations on a single contract wallet by multiple business EOAs It is also possible to perform multiple processes in the same few tens of seconds.
[0042] In this way, the contract wallet according to this embodiment allows for transactions outside the blockchain. For example, a user authenticated by an existing authentication system of a business operator may access the information processing system of the business operator. 100, the user can operate the contract wallet assigned to the user. It is possible.
[0043] (3) Hardware configuration example FIG. 2 shows an information processing system 100, a terminal device 200, and a KMS system according to this embodiment. 400, and the hardware of each computer that constitutes the blockchain network 300 FIG. 1 shows an example of a hardware configuration. Each of these computers has the configuration shown in the figure. The present invention may be configured by a computer 10 that performs the above-described processing.
[0044] The computer 10 includes a processing unit 11, a storage unit 12, a communication unit 13, an input unit 14, and an output unit 15. The processing unit 11, the storage unit 12, the communication unit 13, the input unit 14, and the output unit 15 are included. 5 are electrically connected to each other via a bus (not shown).
[0045] The processing unit 11 includes a CPU (Central Processing Unit), It controls each part of the computer 10 and executes various programs stored in the memory unit 12. It is a device that reads and executes the above.
[0046] The storage unit 12 is a DRAM (Dynamic Random Access Memory y) and auxiliary storage devices such as hard disks, and The operating system and various programs that run various applications It is a device that stores the programs and data used by these programs. The processing unit 11 of each computer executes a program stored in the memory unit 12. By executing the above, the operations described above and below are realized.
[0047] The communication unit 13 is a device for communicating with an external device, and performs communication according to instructions from the processing unit 11. Each computer uses this communication unit 13 to communicate with other devices. Communicate with.
[0048] The input unit 14 is a device that receives input from the outside and supplies it to the processing unit 11. For example, The output unit 15 includes a keyboard, a mouse, and a touch panel. It is a device that outputs processing results to the outside, and is configured with, for example, a display and a speaker. do.
[0049] (4) Example of functional block configuration The information processing system 100, the blockchain network 300, and The functional block configurations of the KMS system 400 and the KMS system 400 will be described below.
[0050] (4.1) Example of a blockchain network configuration FIG. 3 shows the smart computer in the blockchain network 300 according to this embodiment. FIG. 2 is a diagram illustrating an example of a functional block configuration related to a tract.
[0051] Each smart contract shown in the figure is executed by the information processing system 100, for example, The smart contract is issued to the blockchain network 300 using the By making a transaction request, the Each smart contract shown has its own unique address.
[0052] In FIG. 3, a blockchain network 300 includes multiple smart contracts and A plurality of contract wallets 320 and token contracts 330 are deployed. It is being done.
[0053] Contract Wallet 320 is a smart contract wallet specialized for owning and operating tokens. In the example shown, the control associated with user a is LactoWallet(a) 320a and a contract wallet associated with user b (b) 320b, a 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. If the token is FT, the token contract 330 is an FT contract. However, in this embodiment, the token contract 330 is an NFT contract. One NFT contract generates and manages multiple NFTs. Each NFT is created by specifying the address of the NFT contract and the Each NFT is identified by its own unique identifier (=token ID) within the NFT community. The tract stores the ownership status of each NFT in its own memory.
[0055] For example, N with token ID: 3 deployed to address A of the token contract 330 When the ownership of FT is confirmed, the token contract 330 checks whether the token is owned by the owner of the token. )" from the information processing system 100 (business EOA), and It may return the address of the owner of the NFT with token ID:4.
[0056] For example, as shown in FIG. 4, from address C associated with user c, A transfer transaction to transfer an NFT with token ID: 4 to address D associated with d. In this case, the EOA (information processing system 100) of the business operator having the address X is assumed. ) sends a transfer transaction request to the contract wallet 320 at address C. The contract wallet 320 of address C executes the function only for address X. The contract wallet 320 with address C is , and accepts the transfer transaction request and sends "safeTransferFr om(address C, address D, 4)" This is done to the Kun contract 330. The token contract 330 only has address C. access to execute the function (transfer transaction of NFT at address C) The token contract 330 restricts the transfer transaction request. Verify that the token is from address C, the owner of the NFT with token ID: 4. Remember (update) to change the owner of the NFT of Kun ID:4 from address C to address D do.
[0057] In this way, strict access restrictions based on addresses between smart contracts are implemented. This eliminates on-chain security risks.
[0058] However, as shown in Figure 5, a typical contract wallet such as ERC-4337 In the case of a let implementation, all commands (transactions) can be executed at the discretion of the application developer. Specifically, the contract wallet 320 can execute a specific It does not implement the function, but passes the bytecode and executes the specified external smart contract (e.g. For example, the token contract 330) is operated, so basically all operations are possible. Such an implementation may introduce serious security issues, whether intentional or unintentional. It may cause.
[0059] Therefore, in this embodiment, as shown in FIG. 6, a blockchain network 300 One or more operation contracts 310 may be deployed in the There are operation contracts 310, but the number of operation contracts 310 is not limited to this. do not have.
[0060] Each operation contract 310 is a contract between the information processing system 100 (operator EOA) and It is interposed between the contract wallet 320 and the contract wallet 320, and It is a smart contract that can only perform token operations that have been specified. 10 can be used according to the purpose, and operation contracts are set for each group of functions. A port 310 may be provided.
[0061] As shown in Figure 7, the external smart contract execution function of the contract wallet 320 Permission to execute a number of operations is given to one or more operation contracts 310. Specifically, the operation contract 310 is , it is not possible to execute any functions other than those hard-coded in itself. The function addition of the operation contract 310 can be operated by dividing the authority and approval. This prevents the addition of unintended functions. For example, if multiple signatures are obtained, Provided that the operation contract 310 is Specifically, it will be possible to deploy a new blockchain technology called "Signature 310" on the blockchain. As a result, a certain number of EOA signatures from persons with high authority (administrators, etc.) on the business side must be obtained (for example, up to When three out of five signatures are collected (majority vote), the operation contract 310 It allows new functions to be added or new operation contracts 310 to be deployed.
[0062] In this way, each smart contract grants role-based execution authority to each function, By giving a share only to designated addresses, security on the blockchain is ensured. do.
[0063] However, as shown in FIG. 8, when there are many contract wallets 320, The contract wallet 320 contains an entity that has the authority to execute the functions of each contract wallet 320. Therefore, the work of setting the addresses of each operation contract 310 becomes enormous. Therefore, in this embodiment, a common smartphone is used to manage the execution authority of each contract wallet 310. The authorization contract 350 (authentication contract) is a right contract, and all or part of it is Assigned to multiple contract wallets 320. The authority contract 350 assigns authority to It has a function to check whether or not to call from each contract wallet 320. This executes the function. This significantly reduces the amount of configuration work required and avoids security issues caused by misconfigurations.
[0064] Similarly, if there are multiple operation contracts 310, the execution of the function of each operation contract 310 The address of each EOA (each operator EOA) is used as the entity with execution authority for each operation contract. Therefore, in this embodiment, the work of setting each operation contract 310 becomes enormous. The permission contract 34 is a common smart contract that manages the execution permission of the 0 (Authentication Contract) to all or some of the Multi-Operation Contracts 310. The license contract 340 has a function for checking whether the user has the authority, and The function is executed by calling from the tract 310. This significantly reduces the work required to configure the 310 and also reduces security risks caused by misconfigurations. It avoids the problem.
[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. do.
[0066] The information processing system 100 includes a smart contract deployment unit 110 and a user authentication unit 12. 0, a transaction request unit 130, a wallet address determination unit 140, and a secret A private key management unit 150, a user database (DB) 101, and a cloud private key storage unit 10 2 and has.
[0067] The smart contract deployment unit 110 is a smart contract specialized for token ownership and operation. The contract wallet 320 is a contract that is different for each user and is stored in the blockchain. It will be deployed on Network 300.
[0068] The user authentication unit 120 authenticates the user using user information different from the user EOA. (i.e., Web2 authentication).
[0069] The transaction request unit 130 receives the contract wallet associated with the user. The contract wallet 320 is owned by the business operator using the EOA. Make a transaction request regarding the token with the
[0070] The wallet address determination unit 140 determines the contract address to be assigned to each user. The address of the wallet 320 is determined. The let address determination unit 140 determines a predetermined relationship from the identifier of the user (for example, a user ID). A unique wallet address is determined by performing a mathematical operation.
[0071] FIG. 10 is a diagram for explaining an example of a method for determining a wallet address according to this embodiment. The information for each user as shown in FIG. 10 is stored in the user DB 101 as user account information. In the illustrated example, the wallet address determination unit 140 stores the user ID and / or calculate a unique hash value from an identifier such as an email address as an identifier hash. and calculate a unique wallet address (Web3 address) from the identifier hash. do.
[0072] In this way, a unique Web3 address is determined from the user's identifier. The net address determination unit 140 determines the Web3 address in advance using a function (Ethereum By using the create2 method in the case of Therefore, the corresponding Web3 address can be calculated. You can add wallet addresses without connecting to the blockchain.
[0073] This allows for on-chain transactions for a large number of users (accounts) exceeding 100 million, for example. On the other hand, when using conventional user EOA, ,Instant planning is not possible since it requires the user to create an EOA.
[0074] In addition, by determining a unique Web3 address from the user's identifier, all compatible The same address can be used on the blockchain. For example, EVM (Ethereum In the case of blockchains of the same type, such as the Ethereum Virtual Machine, different blocks Contract wallets can be deployed to the same address on the blockchain.
[0075] In this embodiment, the smart contract deployment unit 110 distributes the contract to the user. When a new LET320 needs to be allocated, a wallet address will be decided for the user. Blocking the contract wallet 320 having the address determined by the determination unit 140 Deployed on Chain Network 300. Regarding receiving tokens such as FT and NFT In this case, the deployment of the contract wallet 320 is not required. By deploying the contract wallet 320 for the first time when the function is needed, gas This allows for a significant reduction in costs and processing time.
[0076] For example, in the most common use case such as token gate, the contract wallet The deployment of the contract wallet 320 is not required, and the functionality of using the contract wallet 320 (e.g. The contract is executed only when a transaction (such as a token transfer) is required. The wallet 320 is deployed on the blockchain. The issuance transaction for deployment is around 2,000 yen per Ethereum. Even other inexpensive blockchains cost around 1-2 yen, so In the case of services, significant cost savings are possible.
[0077] The private key management unit 150 manages the private key (also called "wallet private key") of the business EOA. KMS System 400, which realizes hardware wallet functionality as a cloud service The transaction request of the transaction request unit 130 is managed using the The wallet is signed by the KMS system 400 based on the wallet private key. can be.
[0078] In this way, in this embodiment, the access to the wallet private key is not the user EOA but Transaction signing is performed using the KMS (K By using the MS system 400, the work is stored in the memory of the information processing system 100. Signing and signing contracts on the blockchain without deploying the private key The user can also operate the wallet function by using the private key. Since this is realized by the contract wallet 320 that does not have a The wallet private key does not exist in the memory even for a moment from the terminal device 200 to the This realizes an extremely secure processing system.
[0079] The cloud private key storage unit 102 stores a specific private key that has access rights to the KMS system 400. Stores the cloud private key for accessing the service account. Private key management unit 1 50 is a specific service account that has access rights to the KMS (KMS system 400). Using a cloud private key to access the account (also called a "virtual account") Control access to the KMS, i.e., the KMS is only accessible to specific virtual accounts. Give limited access rights to the cloud private key (non-cloud) that can access the virtual account. Access management is performed by assigning a unique password (private key) to a server, etc.
[0080] The private key manager 150 may periodically update the cloud private key. The management unit 150 may rotate the cloud private key at regular intervals. The management unit 150 may immediately invalidate the cloud private key when the cloud private key is leaked. This makes it possible to guarantee a high level of security.
[0081] In this embodiment, the smart contract deployment unit 110, as shown in FIG. A contract wallet that restricts access so that only EOA addresses can execute functions. The smart card 320 may be deployed in the blockchain network 300. As shown in FIG. 8, the contract deployment unit 110 deploys multiple contract wallets 320. is deployed on the blockchain network 300, and multiple contract wallets 320, a common authority contract 350 is installed on the blockchain network 300. As shown in Figures 6 and 7, the operation contract 310 is deployed. If so, the smart contract deployment unit 110 will The contract wallet 320 is a block that restricts access so that only the user can execute functions. It may be deployed in the blockchain network 300. In this way, smart contracts The address deployment unit 110 is configured to receive an address associated with the EOA of the carrier (the address of the EOA of the carrier or The address of the operation contract 310 is the only address that can execute the function. The contract wallet 320 is deployed on the blockchain network 300.
[0082] The smart contract deployment unit 110 generates tokens as shown in FIGS. 6 and 7. The token contract 330 is a program that manages and manages the tokens, and the token contract 330 is a program that manages and manages the tokens from the EOA. A predetermined amount is sent to the contract wallet 320 in response to a transaction request. The operation contract 310 is a program that can only execute the token operation. The smart contract may be further deployed in the blockchain network 300. 10 adds new functions to the operation contract 310 on the condition that multiple signatures are obtained. A function may be added or a new operation contract 310 may be deployed.
[0083] Here, the smart contract deployment unit 110 determines that only the address of the business EOA is a function. The operation contract 310 that restricts access to the execution is installed on the blockchain network. The smart contract deployment unit 110 may be deployed in the network 300 as shown in FIG. Thus, a plurality of operation contracts 310 are deployed on the blockchain network 300, In addition, a permission contract 340 that is commonly used for multiple operation contracts 310 is blocked. Further deployment in the chain network 300 is also possible.
[0084] Furthermore, the smart contract deployment unit 110 Blocking the token contract 330 that restricts access to allow only It may be deployed in a chain network 300.
[0085] (5) Example of operation sequence An example of an operation sequence according to the embodiment will be described. Here, the token is an NFT. The following description will be given taking as an example the case where:
[0086] FIG. 11 shows a sequence diagram illustrating an example of the operation up to issuing an NFT to each user according to this embodiment. This is a diagram.
[0087] In step S101, the information processing system 100 issues a group of smart contracts. A transaction request is made to the blockchain network 300. At this stage, The processing system 100 may also process smart contracts (e.g., For example, the issuance of contracts (e.g., operation contract 310, token contract 330, etc.) on the blockchain. Alternatively, the information processing system 100 may send a request to the network network 300. At this stage, the deployment of at least one contract wallet 320 is performed on the blockchain. A request may be made to the network 300 .
[0088] In step S102, the blockchain network 300 is an information processing system Deploy smart contracts in response to requests from the blockchain. The smart contract network 300 stores the address of each deployed smart contract in the information processing system. The system 100 may be notified.
[0089] In step S103, the information processing system 100 receives the wallet address of each user. The user's address (Web3 address) is uniquely determined based on the user's identifier, and the determined wallet address is The net address is assigned to the user DB 101.
[0090] In step S104, the information processing system 100 Issuing NFTs with wallet addresses as owners on blockchain network 300 Request to.
[0091] In step S105, the blockchain network 300 is an information processing system NFTs are issued in response to requests from 100 blockchain networks. 00 may notify the information processing system 100 of the completion of NFT issuance.
[0092] FIG. 12 shows the NFT token used by each user in this embodiment. FIG. 10 is a sequence diagram showing an example of operation.
[0093] Steps S201 to S205 are related to providing NFT browsing or token gate functions. It is an action.
[0094] In step S201, the terminal device 200 performs the following in response to an operation (instruction) from a user: In order to use the NFT browsing or token gate function, the information processing system 100 (token Sign in to your account (or related services).
[0095] In step S202, the information processing system 100 executes user authentication for sign-in. Here, we will continue the explanation assuming that the user authentication is successful. The information processing system 100 receives the wallet address (Web3 address) of the user who has been successfully authenticated. The response is obtained from the user DB 101.
[0096] In step S203, the information processing system 100 receives the wallet address of the user. Inquire about the ownership status of the NFT owned by the user on the blockchain network 300 .
[0097] In step S204, the blockchain network 300 The information processing system 100 is notified.
[0098] In step S205, the information processing system 100 In response to a notification from the client 300, the terminal device 200 (user) can browse the NFT or use the token gate function. (i) the person in charge of the
[0099] Steps S206 to S209 are operations related to NFT transfer.
[0100] In step S206, the terminal device 200 performs the following in response to an operation (instruction) from the user: An NFT transfer instruction (transfer request) specifying the transfer destination address is sent to the information processing system 10. Do this for 0.
[0101] In step S207, the information processing system 100 receives the wallet address of the user. NFT transfer transaction with the address (Web3 address) as the transfer source and the specified address as the transfer destination A transaction request is made to the blockchain network 300. Here, The information processing system 100 receives the contract associated with the wallet address of the user. If the contract wallet 320 has not been deployed, the contract wallet 320 will be blocked. Request to deploy on Chain Network 300.
[0102] In step S208, the blockchain network 300 executes the transfer transaction. When the transaction is completed, a transaction completion notice is sent to the information processing system 100. .
[0103] In step S209, the information processing system 100 receives a transaction completion notification. This is done for the terminal device 200 (user).
[0104] (6) Other embodiments In the above embodiment, the contract wallet 320 is an ERC-4337 compatible It is also possible to extend the functionality. PKCS#1 v1.5 for IoT and credit cards It is also possible to execute contract wallet functions that use algorithms such as:
[0105] The operation flows and operation examples in the above-described embodiments do not necessarily follow the order described in the flow charts. For example, steps in an operation may not be executed in a chronological order as shown in a flow diagram. The operations may be performed in a different order than described, or may be performed in parallel. Some of the steps in the process may be removed and additional steps may be added to the process. .
[0106] A program for causing a computer to execute the operations according to the above-described embodiments may be provided. The program may be recorded on a computer-readable medium. The removable media allows you to install the program on your computer. Here, the computer-readable medium on which the program is recorded is a non-transitory storage medium. The non-transitory storage medium is not particularly limited, but may be, for example, a C The storage medium may be a D-ROM, a DVD-ROM, or the like.
[0107] As used in this disclosure, the terms "based on" and "depending on" are used unless otherwise specified. does not mean "based only on" or "in accordance with" unless the term "based on" is used in a "Based solely on" and "based at least in part on" are both used interchangeably. Similarly, the phrase "in response to" should be interpreted as "only in response to" and "at least partially in response to." " " Also, "include" and "comprise" ) and variations thereof do not mean to include only the listed items, but This means that the item may contain only the items listed, or may contain additional items in addition to the items listed. Additionally, the term "or" as used in this disclosure does not mean exclusive or. In this disclosure, for example, words such as a, an, and the in English are used interchangeably. If articles are added by translation, these articles should be used in a way that is not obvious from the context. Unless otherwise indicated, the plural is included.
[0108] The embodiment has been described in detail above with reference to the drawings, but the specific configuration has not been described above. The invention is not limited to the above, and various design changes can be made within the scope that does not deviate from the gist of the invention. It is possible.
[0109] (7) Supplementary Notes The following additional notes are about the features of the above-described embodiment.
[0110] Appendix 1 To provide services using tokens managed on a blockchain network An information processing system comprising: A program specialized in the ownership and operation of the token, with different controls for each user. A deployment means for deploying a LactoWallet to the blockchain network; Use of the service using user information different from that of the user's externally owned account authentication means for authenticating the user; The service is provided to the contract wallet associated with the user. The contract wallet is owned by an externally owned account of the provider. and request means for making a transaction request regarding the token. Information processing system.
[0111] Appendix 2 For each user, determine the contract wallet address to be assigned to that user. address determination means for determining whether or not the address is The address determination means determines a unique address by performing a calculation using a predetermined function from the user's identifier. Determine the address of 10. The information processing system of claim 1.
[0112] Appendix 3 The deployment means, when it becomes necessary to allocate the contract wallet to a user, before having the address determined by the address determination means for the user. Deploying the contract wallet to the blockchain network 10. The information processing system of claim 2.
[0113] Appendix 4 The private key of the externally owned account of the said business is stored in a hardware KMS (Key Management Service) is used to realize the wallet function. further comprising key management means for managing the key using the The transaction request from the requesting means includes the KMS A signature generated based on An information processing system according to any one of appendices 1 to 3.
[0114] Appendix 5 The key management means assigns the key to a specific service account that has access rights to the KMS. Manage access to the KMS using a cloud private key for access 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 is configured to deploy only those addresses associated with the externally owned accounts of the business operator. The contract wallet, which restricts access to the blockchain, is Deploy to a 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. A protocol for deploying the blockchain network and for restricting access A program that includes a permission contract commonly used by the plurality of contract wallets. Further deployment 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; A predetermined amount is sent to the contract wallet in response to the transaction request. An operation contract is a program that can only perform designated token operations; 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 allows only the address of an externally owned account of the business operator to execute the function. The operation contract that performs access restriction to the blockchain network is Deploy 10. The information processing system of claim 9.
[0120] Appendix 11 The deployment means deploys a plurality of operation contracts to the block as the operation contract. A program that is deployed on a chain network and that performs the access restriction. and a permission contract commonly used by the plurality of operation contracts is stored in the blockchain. Deploying more to your network 11. The information processing system of claim 10.
[0121] Appendix 12 The deployment means allows only the address of the contract wallet to execute a function. The token contract, which restricts access to the blockchain network, Deploy 12. An information processing system according to any one of appendices 9 to 11.
[0122] Appendix 13 The deployment means deploys the operation contract on the condition that multiple signatures are obtained. Add new functionality or deploy the operation contract anew An information processing system according to any one of appendices 9 to 12.
[0123] Appendix 14 To provide services using tokens managed on a blockchain network An information processing method executed in an information processing system, A program specialized in the ownership and operation of the token, with different controls for each user. Deploying a LactoWallet to the blockchain network; Use of the service using user information different from that of the user's externally owned account authenticating the user with respect to The service is provided to the contract wallet associated with the user. The contract wallet is owned by an externally owned account of the provider. making a transaction request relating to said token; Information processing methods.
[0124] Appendix 15 To provide services using tokens managed on a blockchain network In the information processing system, A program specialized in the ownership and operation of the token, with different controls for each user. Deploying a LactoWallet to the blockchain network; Use of the service using user information different from that of the user's externally owned account authenticating the user with respect to The service is provided to the contract wallet associated with the user. The contract wallet is owned by an externally owned account of the provider. making a transaction request relating to said token; 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. To provide services using tokens managed on the blockchain network An information processing system comprising: A program specialized in the ownership and operation of the token, with different controls for each user. A deployment means for deploying a LactoWallet to the blockchain network; Use of the service using user information different from that of the user's externally owned account authentication means for authenticating the user; The service is provided to the contract wallet associated with the user. The contract wallet is owned by an externally owned account of the provider. and request means for making a transaction request regarding the token. Information processing system.
2. For each user, determine the contract wallet address to be assigned to that user. address determination means for determining whether or not the address is The address determination means determines a unique address by performing a calculation using a predetermined function from the user's identifier. Determine the address of The information processing system according to claim 1 .
3. The deployment means, when it becomes necessary to allocate the contract wallet to a user, before having the address determined by the address determination means for the user. Deploying the contract wallet to the blockchain network The information processing system according to claim 2 .
4. The private key of the externally owned account of the said business is stored in a hardware It uses KMS (Key Management Service) to realize wallet functions. further comprising key management means for managing the key using the The transaction request from the requesting means includes the KMS A signature generated based on The information processing system according to claim 1 .
5. The key management means assigns the key to a specific service account that has access rights to the KMS. Manage access to the KMS using a cloud private key for access 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 is configured to deploy only those addresses associated with the externally owned accounts of the business operator. The contract wallet, which restricts access to the blockchain, is Deploy to a network The information processing system according to claim 1 .
8. The deployment means deploys a plurality of contract wallets as the contract wallets. A protocol for deploying the blockchain network and for restricting access A program that includes a permission contract commonly used by the plurality of contract wallets. Further deployment 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; A predetermined amount is sent to the contract wallet in response to the transaction request. An operation contract is a program that can only perform designated token operations; further deploying it to said blockchain network The information processing system according to any one of claims 1 to 8.
10. The deployment means allows only the address of an externally owned account of the business operator to execute the function. The operation contract that performs access restriction to the blockchain network is Deploy The information processing system according to claim 9 .
11. The deployment means deploys a plurality of operation contracts to the block as the operation contract. A program for restricting access to a chain network. and a permission contract commonly used by the plurality of operation contracts is stored in the blockchain. Deploying more to your network The information processing system according to claim 10.
12. The deployment means allows only the address of the contract wallet to execute a function. The token contract, which restricts access to the blockchain network, Deploy The information processing system according to claim 9 .
13. The deployment means deploys the operation contract on the condition that multiple signatures are obtained. Add new functionality or deploy the operation contract anew The information processing system according to claim 9 .
14. To provide services using tokens managed on the blockchain network An information processing method executed in an information processing system, A program specialized in the ownership and operation of the token, with different controls for each user. Deploying a LactoWallet to the blockchain network; Use of the service using user information different from that of the user's externally owned account authenticating the user with respect to The service is provided to the contract wallet associated with the user. The contract wallet is owned by an externally owned account of the provider. making a transaction request relating to said token; Information processing methods.
15. To provide services using tokens managed on the blockchain network In the information processing system, A program specialized in the ownership and operation of the token, with different controls for each user. Deploying a LactoWallet to the blockchain network; Use of the service using user information different from that of the user's externally owned account authenticating the user with respect to The service is provided to the contract wallet associated with the user. The contract wallet is owned by an externally owned account of the provider. making a transaction request relating to said token; program.