Information processing device, information processing system, information processing program, information processing method, and smart contract program
The information processing device and system use a smart contract to derive wallet addresses from a user's identification document public key, addressing security concerns in blockchain transactions by ensuring reliable and easy address generation for real individuals.
Patent Information
- Application Number
- JP2025078620
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-05-09
- Publication Date
- 2026-01-29
- Estimated Expiration
- 2045-05-09
AI Technical Summary
The management of wallets on blockchain by robots and non-human entities raises security concerns in transactions, necessitating reliable and easy generation of wallet addresses associated with real individuals.
An information processing device and system that utilizes a smart contract to derive a wallet address on a blockchain based on a portion of a public key from a user's personal identification document, ensuring secure and easy address generation.
Enables reliable and easy generation of wallet addresses associated with real persons, enhancing transaction security and authenticity on the blockchain.
Smart Images

Figure 0007808379000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an information processing device, an information processing system, an information processing program, an information processing method, and a smart contract program for performing processing using a smart contract. [Background technology]
[0002] Blockchain is a distributed ledger technology that records data in a way that makes it difficult to tamper with. A smart contract is an application of blockchain, and is a system that allows the data to be managed on a distributed ledger and the processing conditions to be defined by a program, and is characterized by retrieving data recorded on the distributed ledger and executing a predetermined program and changing data on the distributed ledger in accordance with the contents of the transactions stored in the distributed ledger (see Non-Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Non-Patent Document 1] Ethereum Yellow Paper: a formal specification of Ethereum, a programmable blockchain<URL:https: / / ethereum.github.io / yellowpaper / paper.pdf> Summary of the Invention [Problem to be solved by the invention]
[0004] In order to conduct transactions such as remittances on the blockchain, users create and use their own wallets on the blockchain. However, in recent years, with the development of robotics and AI technology, many wallets are being managed by robots and other entities that are not real people, which is causing problems in terms of transaction security.
[0005] The present invention has been made in consideration of the above circumstances, and aims to provide an information processing device, an information processing system, an information processing program, an information processing method, a smart contract program for address derivation, and a smart contract program for transaction execution that enable reliable and easy generation of wallet addresses on a blockchain associated with real people. [Means for solving the problem]
[0006] The above object can be achieved by the following means.
[0007] The information processing device is provided for performing processing using a smart contract that functions when a computer executes code recorded on a blockchain, and has a reception unit, an acquisition unit, a derivation unit, and an output unit. The reception unit receives a generation instruction from a user to generate a wallet address usable on the blockchain. When the reception unit receives the generation instruction, the acquisition unit acquires at least a portion of the public key of an electronic certificate included in the user's personal identification document. The derivation unit transmits at least a portion of the public key acquired by the acquisition unit to the blockchain, and derives a wallet address usable on the blockchain by the user based on the portion of the public key using a first smart contract. The output unit outputs the address derived by the derivation unit so that the user can use it.
[0008] The information processing system includes the information processing device and a user terminal used by a user. An acquisition unit of the information processing device acquires a part of the public key of the digital certificate obtained by reading the identity verification document with the user terminal, and an output unit outputs the derived address by transmitting it to the user terminal.
[0009] The information processing program is configured to cause a computer to function as the above-mentioned information processing device.
[0010] The information processing method is a method for performing processing using a smart contract that functions when a computer executes code recorded on a blockchain, and includes a receiving step, an acquiring step, a deriving step, and an output step. The receiving step receives a generation instruction from a user to generate a wallet address that can be used on the blockchain. If the generation instruction is received in the receiving step, the acquiring step acquires at least a portion of the public key of an electronic certificate included in the user's personal identification document. The derivation step sends at least a portion of the public key acquired in the acquiring step to the blockchain, and causes a first smart contract to derive a wallet address that the user can use on the blockchain based on the portion of the public key. The output step outputs the address derived in the derivation step so that the user can use it.
[0011] The smart contract program for address derivation is recorded and executed on the blockchain, and is configured to execute an acquisition step of acquiring at least a portion of the public key of an electronic certificate included in an identification document held by a user, a derivation step of deriving a wallet address usable on the blockchain using the portion of the public key acquired in the acquisition step, and an output step of outputting the address derived in the derivation step.
[0012] The smart contract program for transaction execution is recorded on the blockchain in association with an address derived using a portion of the public key of an electronic certificate included in the identification document held by the user, and is configured to execute the following steps: a storage step for storing a portion of the public key; an acquisition step for acquiring a transaction execution instruction from the user and an execution electronic signature for the execution instruction generated by the user using the private key of the electronic certificate; a verification step for acquiring a public key from the portion of the public key stored in the storage step and verifying the execution electronic signature acquired in the acquisition step using the acquired public key; and an approval step for approving the execution of the transaction if the verification is successful in the verification step, and not approving the execution of the transaction if the verification is unsuccessful in the verification step. [Effects of the Invention]
[0013] According to the information processing device of the present invention, at least a portion of the public key of the digital certificate included in the user's identification document is acquired and transmitted to the blockchain. A first smart contract is used to derive a wallet address that the user can use on the blockchain based on the portion of the public key, and the derived address is output so that the user can use it. This allows the user's address to be derived using a portion of the public key of the digital certificate included in the user's identification document, which proves the user's existence, making it easy to generate a wallet address associated with the user and the identification document. Therefore, a wallet address on the blockchain associated with an actual person can be reliably and easily generated and used by the user. [Brief explanation of the drawings]
[0014] [Figure 1] 1 is a diagram showing a schematic configuration of an information processing system to which an information processing device according to an embodiment of the present invention is applied; [Figure 2] FIG. 2 is a block diagram showing a schematic configuration of a user terminal. [Figure 3]FIG. 1 is a block diagram showing a schematic configuration of an information processing device. [Figure 4] 1 is a block diagram showing a schematic configuration of an authentication system. [Figure 5] FIG. 1 is a block diagram showing a schematic configuration of a server that serves as a node connected to a peer-to-peer network. [Figure 6] FIG. 2 is a block diagram showing the functional configuration of a CPU of the information processing device. [Figure 7] FIG. 1 is a schematic diagram showing a smart contract program placed on a blockchain. [Figure 8] 10 is a sequence chart illustrating an example of a procedure of an address derivation process executed in the information processing system. [Figure 9] 1 is a sequence chart illustrating an example of a procedure of a transaction execution process executed in an information processing system. [Figure 10] 10 is a sequence chart showing an example of a procedure for checking the validity of an address and registering the address, which is executed in the information processing system; DETAILED DESCRIPTION OF THE INVENTION
[0015] Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings. In the description of the drawings, the same elements are designated by the same reference numerals, and duplicate explanations will be omitted. Furthermore, the dimensional proportions in the drawings are exaggerated for the convenience of explanation and may differ from the actual proportions.
[0016] <Configuration of information processing system> FIG. 1 is a diagram showing a schematic configuration of an information processing system to which an information processing device according to an embodiment of the present invention is applied.
[0017] As shown in FIG. 1, the information processing system includes a user terminal 100, an information processing device 200, an authentication system 300, and a server 400, which serves as a node connected to a peer-to-peer network. The information processing system uses an identity verification document C to reliably and easily generate a wallet address on a blockchain associated with a real person, securely execute various transactions using the address, and verify and prove the existence of the address's owner. The identity verification document C is an IC card used for identity verification and authentication, and an electronic certificate is recorded in the IC chip. The user terminal 100 is connected to the information processing device 200, the server 400, and other devices via a network such as the Internet or various wireless communications, allowing for mutual communication. The information processing device 200 is connected to the user terminal 100, the authentication system 300, the server 400, and other devices via a network such as the Internet or various wireless communications, allowing for mutual communication. The server 400 is connected to the user terminal 100, the information processing device 200, and other devices via a network such as the Internet or various wireless communications, allowing for mutual communication. Furthermore, the server 400 is connected to other servers 400a, 400b, etc. via a peer-to-peer network so that they can communicate with each other. Note that the connections between the components are not limited to the above example, and the components may be connected to each other by any method.
[0018] Each component will be described in detail below.
[0019] <User terminal 100> The user terminal 100 is an information terminal used by a user, such as a mobile terminal such as a smartphone, a notebook PC, or a desktop PC.
[0020] FIG. 2 is a block diagram showing a schematic configuration of a user terminal.
[0021] 2, the user terminal 100 has a CPU (Central Processing Unit) 110, a ROM (Read Only Memory) 120, a RAM (Random Access Memory) 130, a storage 140, a communication interface 150, and an operation display unit 160. Each component is connected to each other via a bus 170 so as to be able to communicate with each other.
[0022] The CPU 110 controls the above components and performs various arithmetic processing in accordance with programs stored in the ROM 120 and storage 140 .
[0023] The ROM 120 stores various programs and various data.
[0024] The RAM 130 serves as a working area for temporarily storing programs and data.
[0025] The storage 140 stores various programs including an operating system and various data. For example, applications are installed in the storage 140 for transmitting and receiving various information to and from other devices such as the information processing device 200 via a network, and for displaying various information provided by other devices. The storage 140 also has installed therein a wallet application for transmitting and receiving various information such as a digital certificate, a digital signature, and a PIN to and from the personal identification document C, and for accessing the information processing device 200 to generate a wallet address and perform various transactions using the address.
[0026] The communication interface 150 is an interface for communicating with external devices such as the information processing device 200 and the personal identification document C. The communication interface 150 for communication with external devices may use, for example, standards for mobile phone communication such as 3G or 4G, or standards such as Wi-Fi (registered trademark). The communication interface 150 may also use a standard for short-range wireless communication such as Bluetooth (registered trademark). The communication interface 150 for communication with the personal identification document C may also use, for example, a standard for short-range wireless communication such as NFC (Near Field Communication) for communication with a contactless IC card, or a wired communication standard for communication with a contactless IC card. In this embodiment, an example will be described in which an IC card reader / writer conforming to the NFC Type B standard is used as the communication interface 150 to perform contactless communication with a My Number card, which is the personal identification document C.
[0027] The operation display unit 160 is, for example, a touch panel display, which displays various information and accepts various inputs from the user.
[0028] <Information processing device 200> The information processing device 200 is, for example, a computer such as a server. The information processing device 200 is provided by, for example, a business operator (service provider) that provides a service that enables wallet addresses on a blockchain to be reliably and easily generated and various transactions to be safely executed using the addresses.
[0029] FIG. 3 is a block diagram showing a schematic configuration of the information processing device.
[0030] 3, the information processing device 200 has a CPU 210, a ROM 220, a RAM 230, a storage 240, a communication interface 250, and an operation display unit 260. Each component is connected to each other so as to be able to communicate with each other via a bus 270. Note that the CPU 210, the ROM 220, the RAM 230, the storage 240, the communication interface 250, and the operation display unit 260 have the same functions as the corresponding components of the user terminal 100, and therefore redundant explanations will be omitted.
[0031] Programs and data for performing various processes are installed in the storage 240. The storage 240 also stores various types of identification information and the like for communicating with the user terminal 100, the authentication system 300, and the server 400. The storage 240 also stores programs for deriving wallet addresses using smart contracts on the blockchain, programs for executing various transactions using the derived addresses, and the like.
[0032] In this embodiment, the CPU 210 functions as a reception unit, an acquisition unit, a derivation unit, an output unit, a verification unit, an approval unit, a confirmation unit, a generation unit, and a registration unit. The functions realized by the CPU 210 will be described in detail later.
[0033] <Authentication System 300> The authentication system 300 is a system provided in a certification authority, which is an organization that provides public personal authentication services related to personal identification documents C.
[0034] FIG. 4 is a block diagram showing a schematic configuration of the authentication system.
[0035] 4, authentication system 300 has CPU 310, ROM 320, RAM 330, storage 340, communication interface 350, and operation display unit 360. Each component is connected to each other so as to be able to communicate with each other via bus 370. Note that CPU 310, ROM 320, RAM 330, storage 340, communication interface 350, and operation display unit 360 have the same functions as the corresponding components of user terminal 100, and therefore redundant explanations will be omitted.
[0036] The storage 340 stores various programs and data for verifying the validity of the certificate of the personal identification document C transmitted from the information processing device 200 and notifying the information processing device 200 of the verification result.
[0037] <Server 400> Server 400 is a node connected to a peer-to-peer network and communicates with other nodes, such as servers 400a and 400b, via the peer-to-peer network. Each node, such as server 400, stores a common blockchain and executes smart contracts by running code recorded on the blockchain. Server 400 may be a full node that holds all information in the blockchain, or a light node that holds information such as hash values to certify each piece of data.
[0038] FIG. 5 is a block diagram showing a schematic configuration of the server.
[0039] 5, the server 400 has a CPU 410, a ROM 420, a RAM 430, a storage 440, a communication interface 450, and an operation display unit 460. Each component is connected to each other so as to be able to communicate with each other via a bus 470. Note that the CPU 410, the ROM 420, the RAM 430, the communication interface 450, and the operation display unit 460 have the same functions as the corresponding components of the user terminal 100, and therefore redundant explanations will be omitted.
[0040] The storage 440 stores a blockchain 500 that records code, setting values, and the like for executing smart contracts. The blockchain 500 can be configured using a known blockchain platform such as Ethereum, which is capable of executing smart contracts, and therefore a detailed description thereof will be omitted. Furthermore, the method of digital signatures using private and public keys is also known technology, and therefore a detailed description thereof will be omitted.
[0041] For example, Ethereum is used as a blockchain platform for implementing smart contracts. However, the blockchain platform for implementing smart contracts is not limited to Ethereum, and various platforms such as BNB Smart Chain, Solana, Polygon, Arbitrum, Avalanche, Cardano, Polkadot, Tezos, Algorand, or independently developed platforms can also be used.
[0042] <Functions of information processing device 200> FIG. 6 is a block diagram showing the functional configuration of the CPU of the information processing device.
[0043] As shown in FIG. 6, the information processing device 200 functions as a reception unit 211, an acquisition unit 212, a derivation unit 213, an output unit 214, a verification unit 215, an approval unit 216, a confirmation unit 217, a generation unit 218, and a registration unit 219 by the CPU 210 reading a program stored in the storage 240 and executing processing.
[0044] The reception unit 211 receives a generation instruction from a user to generate a wallet address that can be used on the blockchain 500.
[0045] When the generation instruction is accepted by the accepting unit 211, the acquiring unit 212 acquires at least a part of the public key of the electronic certificate included in the personal identification document C held by the user. The personal identification document C is, for example, a My Number card, and the electronic certificate is, for example, a user authentication electronic certificate stored in the My Number card.
[0046] The derivation unit 213 transmits at least a portion of the public key acquired by the acquisition unit 212 onto the blockchain 500, and causes a first smart contract (first smart contract program) 510 to derive a wallet address that the user can use on the blockchain 500 based on the portion of the public key. The portion of the public key is associated with the address and recorded on the blockchain 500. The derivation unit 213 may transmit a modulus, which is information unique to each user and included in the public key, onto the blockchain 500, and the first smart contract 510 may use the modulus to derive the address.
[0047] The output unit 214 outputs the address derived by the derivation unit 213 so that the address can be used by the user.
[0048] Furthermore, the receiving unit 211 can receive an instruction to execute a transaction from a user. When the receiving unit 211 receives the execution instruction, the acquiring unit 212 acquires an execution digital signature related to the execution instruction that the user has generated using the private key of the digital certificate.
[0049] The verification unit 215 transmits the execution instruction received by the reception unit 211 and the execution electronic signature acquired by the acquisition unit 212, together with the user's address, onto the blockchain, and has the second smart contract (second smart contract program) 520 obtain a public key from a portion of the public key recorded in association with the address and verify the execution electronic signature.
[0050] If the verification by the verification unit 215 is successful, the approval unit 216 controls the second smart contract 520 to approve the execution of the transaction, and if the verification by the verification unit 215 is unsuccessful, the approval unit 216 controls the second smart contract 520 to not approve the execution of the transaction.
[0051] Furthermore, the receiving unit 211 can receive a confirmation instruction from the user to confirm the validity of the user's address. When the receiving unit 211 receives the confirmation instruction, the acquiring unit 212 acquires the digital certificate of the personal identification document C.
[0052] The confirmation unit 217 transmits the electronic certificate acquired by the acquisition unit 212 to the authentication system 300 that provides a public personal authentication service, and acquires the confirmation result regarding the validity of the personal identification document C in the public personal authentication service.
[0053] The generation unit 218 generates a registration instruction for registering the confirmation result acquired by the confirmation unit 217 on the blockchain 500. When the registration instruction is generated, the acquisition unit 212 acquires from the user a registration digital signature for the registration instruction that is generated using the private key of the digital certificate.
[0054] The registration unit 219 transmits the registration instruction and the registration digital signature generated by the generation unit 218 together with the user's address to the blockchain 500, and has the second smart contract 520 obtain a public key from a portion of the public key recorded in association with the address and verify the registration digital signature. If the verification is successful, the registration unit 219 uses the third smart contract (third smart contract program) 530 to record on the blockchain 500 that the address is valid.
[0055] Furthermore, the verification unit 217 may further acquire a certification digital signature related to the verification result generated using a pre-stored certification private key. In this case, the registration unit 219 transmits the certification digital signature together with a registration instruction to the blockchain, and causes the third smart contract 530 to verify the certification digital signature using a pre-prepared certification public key. If the verification is successful, the registration unit 219 causes the third smart contract 530 to record on the blockchain 500 that the address is valid, and if the verification is unsuccessful, the registration unit 219 does not record on the blockchain 500 that the address is valid.
[0056] <Smart contract functions> Figure 7 is a schematic diagram showing a smart contract program placed on a blockchain.
[0057] 7, a first smart contract program 510, a second smart contract program 520, and a third smart contract program 530 are placed on a blockchain 500. Placing a smart contract (smart contract program) on the blockchain 500 is generally expressed as deploying.
[0058] The first smart contract program 510 is a smart contract program for address derivation. The first smart contract program 510 is configured to derive a wallet address that a user can use on the blockchain 500 based on a portion of the public key of a digital certificate included in the personal identification document C. For example, the first smart contract 510 is configured to derive a unique address using the modulus of the public key. The first smart contract 510 may derive the address using a computer program module that deterministically outputs a unique and irreversible output value for an input value. Specifically, the first smart contract 510 derives the address as an output value by inputting the modulus as an input value into the computer program module. The first smart contract program 510 is placed in an address for address derivation provided on the blockchain 500 by the service provider.
[0059] The second smart contract program 520 is a smart contract program for transaction execution. When an execution digital signature is received, the second smart contract program 520 is configured to obtain a public key from a portion of the public key associated with the user's address and verify the execution digital signature using the obtained public key. The second smart contract program 520 is also configured to approve the execution of the transaction if the above verification is successful, and not approve the execution of the transaction if the verification is unsuccessful. The second smart contract program 520 is placed at the user's wallet address on the blockchain 500 derived by the first smart contract program 510.
[0060] When the second smart contract program 520 receives a registration instruction and a registration digital signature for an address whose validity has been confirmed and successfully verifies the registration digital signature, the third smart contract program 530 records on the blockchain 500 that the address is valid. The third smart contract program 530 may also verify the certification digital signature using a certification public key prepared in advance, and, if the verification is successful, record on the blockchain 500 that the address is valid. The third smart contract program 530 may also record on the blockchain 500 the date and time at which the address was confirmed to be valid, in association with the address confirmed to be valid. The third smart contract program 530 is placed at an address for validity registration set up on the blockchain 500 by the service provider.
[0061] Each of the above smart contract programs may execute additional processes or may not execute some of the above processes. Also, each smart contract program may be executed in combination with other smart contract programs, or may be divided into multiple smart contract programs and executed.
[0062] <Identification document C> The personal identification document C is an IC card for identity verification and authentication, and is issued to residents by a public institution such as a local government. The IC card may be a contact IC card using a contactless communication method, or a contactless IC card using a contactless communication method. An electronic certificate is stored in an IC chip mounted on the personal identification document C. The electronic certificate and its public key are stored as files in the IC chip and can be read externally via an IC card reader or the like installed in the user terminal 100. The private key of the electronic certificate is stored in a secure element (tamper-resistant area) in the IC chip and cannot be read externally. Processes such as generating an electronic signature using the private key are performed only within the IC card, and only the results of the generated electronic signature are output externally. For example, a My Number card issued in Japan is used as the personal identification document C. In this case, the electronic certificate for user authentication provided on the My Number card is preferably used as the electronic certificate. The personal identification document C is not limited to a My Number Card, and any legitimate personal identification document that stores a valid electronic certificate can be used as the personal identification document C. The electronic certificate is also not limited to a user-certified electronic certificate. For example, when a My Number Card is used as the personal identification document C, a signature-use electronic certificate may be used as the electronic certificate in this embodiment, rather than a user-certified electronic certificate.
[0063] <Outline of processing in information processing systems> An example of processing executed in the information processing system will be described below.
[0064] First, we will explain the process of deriving a user's wallet address on the blockchain 500 using personal identification document C.
[0065] FIG. 8 is a sequence chart showing an example of the procedure of an address derivation process executed in the information processing system.
[0066] 8, user terminal 100 receives an instruction from a user to derive a wallet address (step S101). For example, user terminal 100 receives the instruction to derive an address from the user on a screen displayed on operation display unit 160 by a wallet application installed in storage 140.
[0067] The user terminal 100 accesses the IC chip of the identification document C, transmits and receives various information, and reads the digital certificate data from the identification document C (step S102). The digital certificate also includes the public key of the digital certificate. For example, the wallet application of the user terminal 100 displays a message on the operation display unit 160 prompting the user to bring the identification document C close to (touch) the IC card reader / writer portion of the user terminal 100 and read the identification document C. When the user follows the displayed message and brings the identification document C close to the IC card reader / writer portion of the user terminal 100, the user terminal 100 can read the digital certificate data from the identification document C.
[0068] The user terminal 100 transmits the digital certificate and the public key of the digital certificate that have been read and acquired from the personal identification document C to the information processing device 200 (step S103).
[0069] The information processing device 200 acquires the information transmitted from the user terminal 100 and extracts a modulus from the public key of the digital certificate (step S201). The modulus is part of the public key and is unique information whose value differs for each individual public key. The information processing device 200 transmits the extracted modulus to the server 400 to send it onto the blockchain 500.
[0070] The server 400 transmits the modulus transmitted from the information processing device 200 to an address derivation address on the blockchain 500 where the first smart contract 510 is located (step S401). The first smart contract 510 uses the transmitted modulus to derive a wallet address that the user can use on the blockchain 500. For example, the first smart contract 510 uniquely and deterministically derives a wallet address from the modulus using a function such as CREATE2, which is a computer program module that deterministically outputs a unique and irreversible output value for an input value. Specifically, the first smart contract 510 inputs the modulus as an input value into a function such as CREATE2 to derive an address as an output value. This establishes a one-to-one relationship between the modulus and the address, and the address generated from the modulus, which is unique information for each public key, can also be unique information. Therefore, it is possible to generate a user's wallet address that has a one-to-one relationship with the personal identification document C possessed by each individual. A second smart contract 520 is placed in the generated user wallet address, and information indicating the modulus used to generate the address or a public key including the modulus is associated with the address and recorded.
[0071] The server 400 acquires address information indicating the address of the user's wallet derived by the first smart contract 510 (step S402), and transmits the acquired address information to the information processing device 200.
[0072] The information processing device 200 acquires the transmitted address information, stores it in the storage 240, and transmits it to the user terminal 100 (step S202).
[0073] The user terminal 100 displays the transmitted address information on the operation display unit 160 and stores it in the storage 140 (step S104).
[0074] Next, we will explain the process for safely executing various transactions using the generated user wallet address.
[0075] FIG. 9 is a sequence chart illustrating an example of a procedure for a transaction execution process executed in an information processing system.
[0076] As shown in FIG. 9, the user terminal 100 receives an instruction from a user to execute various transactions (step S111). Examples of transactions include remittance, payment, issuance, transfer, and exchange of various tokens, contract conclusion, voting, etc., and various transactions and expressions of intent can be executed as transactions. The user terminal 100 transmits a transaction execution request to the information processing device 200.
[0077] In response to the transaction execution request transmitted from the user terminal 100, the information processing device 200 generates execution instruction information indicating an execution instruction (step S211). The execution instruction information also includes an instruction to the user terminal 100 to obtain a digital signature generated using the private key of the digital certificate stored in the personal identification document C, attach it to the execution instruction information, and transmit it to the information processing device 200. For example, in the Ethereum platform, the execution instruction information may be generated as a data structure called UserOperation. The information processing device 200 transmits the generated execution instruction information to the user terminal 100.
[0078] Based on the execution instruction information transmitted from the information processing device 200, the user terminal 100 receives input of a PIN from the user for authenticating the identification document C, and transmits and receives various information to and from the identification document C to obtain an execution digital signature for the execution instruction information (step S112). For example, the wallet application of the user terminal 100 displays a message on the operation display unit 160 prompting the user to input the PIN for the identification document C. When the PIN is input on the operation display unit 160, the user terminal 100 displays a message on the operation display unit 160 prompting the user to bring the identification document C close to (touch) the IC card reader / writer portion of the user terminal 100. When the user brings the identification document C close to the IC card reader / writer portion of the user terminal 100, the user terminal 100 accesses the identification document C and requests the generation of an execution digital signature, which is an electronic signature for the execution instruction information. The PIN input to the user terminal 100 is transmitted to the identification document C. If authentication using the PIN on the identification document C is successful, an execution digital signature is generated using the private key stored in the identification document C. The user terminal 100 can receive and obtain the digital signature for execution from the personal identification document C.
[0079] The user terminal 100 adds the digital signature for execution obtained from the personal identification document C to the execution instruction information, and transmits the execution instruction information with the digital signature for execution to the information processing device 200 (step S113).
[0080] The information processing device 200 acquires the execution instruction information with the execution digital signature sent from the user terminal 100, and sends it to the server 400 together with the address information of the user to be sent onto the blockchain 500 (step S212).
[0081] The server 400 transmits the execution instruction information with the digital signature for execution transmitted from the information processing device 200 to the address of the user's wallet where the second smart contract 520 is located on the blockchain 500 (step S411). For example, the information processing device 200 transmits UserOperation data, which is the execution instruction information with the digital signature for execution, to the blockchain 500 via a node called a bundler that aggregates multiple UserOperations. When the second smart contract 520 receives the execution instruction information with the digital signature for execution, it obtains a public key from a portion of the public key associated with the user's address and verifies the execution digital signature using the obtained public key. If the verification is successful, the second smart contract 520 approves the execution of the transaction indicated by the execution instruction information. In this case, the transaction is executed on the blockchain 500. On the other hand, if the verification fails, the second smart contract 520 does not approve the execution of the transaction. In this case, the transaction is not executed, and the processing is terminated as a verification error. The server 400 acquires the execution result of the transaction by the second smart contract 520 and transmits information indicating the execution result to the information processing device 200.
[0082] The information processing device 200 acquires the transmitted execution result information, stores it in the storage 240, and transmits it to the user terminal 100 (step S213).
[0083] The user terminal 100 displays the transmitted execution result information on the operation display unit 160 and stores it in the storage 140 (step S114).
[0084] Next, we will explain the process of confirming the existence of the owner of the generated user's wallet address and registering it.
[0085] FIG. 10 is a sequence chart showing an example of a procedure for checking the validity of an address and registering the address, which is executed in the information processing system.
[0086] 10, user terminal 100 receives a confirmation instruction from the user to confirm the validity of the wallet address and register it (step S121). For example, user terminal 100 receives the instruction to confirm the validity and register it from the user on a screen displayed on operation display unit 160 by a wallet application installed in storage 140.
[0087] User terminal 100 accesses the IC chip of identification document C, transmits and receives various information, and reads the digital certificate data from identification document C (step S122). For example, the wallet application of user terminal 100 displays a message on operation display unit 160 urging the user to bring identification document C close to (touch) the IC card reader / writer portion of user terminal 100 and read the identification document C. When the user follows the displayed message and brings identification document C close to the IC card reader / writer portion of user terminal 100, user terminal 100 can read the digital certificate data from identification document C. User terminal 100 transmits the digital certificate read and acquired from identification document C to information processing device 200, along with a confirmation request to confirm the validity of the digital certificate.
[0088] The information processing device 200 transmits the electronic certificate transmitted from the user terminal 100 to an authentication system 300 that provides a public personal authentication service, and confirms the validity of the electronic certificate (step S221). For example, if the personal identification document C is a My Number card, the validity of the electronic certificate can be confirmed using the JPKI AP (public personal authentication AP) installed on the My Number card. The information processing device 200 acquires information indicating the result of the validity confirmation transmitted from the authentication system 300.
[0089] The information processing device 200 generates a certification digital signature for certifying the verification result using a certification private key that has been prepared and stored in advance by the service provider (step S222). For example, the information processing device 200 generates the certification digital signature using the EIP-712 standard defined in the Ethereum platform.
[0090] The information processing device 200 generates registration instruction information indicating a registration instruction for registering the confirmation result on the blockchain 500 (step S223). The registration instruction information is attached with the certification digital signature generated in the processing of step S222. The registration instruction information also includes an instruction to the user terminal 100 to obtain a digital signature generated using the private key of the digital certificate stored in the personal identification document C, attach the digital signature to the registration instruction information, and transmit it to the information processing device 200. The registration instruction information is generated, for example, as a UserOperation in the Ethereum platform. The information processing device 200 transmits the generated registration instruction information to the user terminal 100.
[0091] Based on the registration instruction information transmitted from the information processing device 200, the user terminal 100 receives a PIN from the user for authenticating the identification document C, and transmits and receives various information to and from the identification document C to obtain a registration digital signature for the registration instruction information (step S123). For example, the wallet application of the user terminal 100 displays a message on the operation and display unit 160 prompting the user to enter the PIN for the identification document C. When the PIN is entered on the operation and display unit 160, the user terminal 100 displays a message on the operation and display unit 160 prompting the user to bring the identification document C close to (touch) the IC card reader / writer portion of the user terminal 100. When the user brings the identification document C close to the IC card reader / writer portion of the user terminal 100, the user terminal 100 accesses the identification document C and requests the generation of a registration digital signature, which is a digital signature for the registration instruction information. The PIN entered into the user terminal 100 is transmitted to the identification document C. If authentication using the PIN on the identification document C is successful, a registration digital signature is generated using the private key stored in the identification document C. The user terminal 100 can receive and obtain the registration digital signature from the personal identification document C.
[0092] The user terminal 100 adds the registration digital signature obtained from the personal identification document C to the registration instruction information, and transmits the registration instruction information with the registration digital signature to the information processing device 200 (step S124).
[0093] The information processing device 200 acquires the registration instruction information with the registration digital signature sent from the user terminal 100, and sends it to the server 400 together with the address information of the user to be sent onto the blockchain 500 (step S224).
[0094] The server 400 transmits the registration instruction information with the registration digital signature transmitted from the information processing device 200 to the address of the user's wallet where the second smart contract 520 is located on the blockchain 500 (step S421). For example, the information processing device 200 transmits UserOperation data, which is the registration instruction information with the registration digital signature, to the blockchain 500 via a bundler. When the second smart contract 520 receives the registration instruction information with the registration digital signature, it obtains a public key from a portion of the public key associated with the user's address and verifies the registration digital signature using the obtained public key. If the verification is successful, the second smart contract 520 approves the execution of the registration instruction indicated by the registration instruction information and transmits the registration instruction information to the address where the third smart contract 530 is located. On the other hand, if the verification fails, the second smart contract 520 does not approve the execution of the registration instruction. In this case, the registration instruction is not executed and the processing ends.
[0095] The third smart contract 530 verifies the certification digital signature attached to the registration instruction information using a certification public key prepared in advance by the service provider. If the verification is successful, the third smart contract 530 records the address on the blockchain 500 as a validated address (step S422). That is, since the authentication system 300 has confirmed that the digital certificate of the personal identification document C used to generate the address is valid, the address owner is confirmed to be a real person. The validity of the verification result is also guaranteed by verifying the certification digital signature attached by the service provider. Furthermore, since the validated address is recorded on the blockchain 500, other users can easily understand that the validity of the address has been confirmed. The third smart contract 530 also records the date and time when the address was validated on the blockchain 500 in association with the validated address. This allows the date and time when the address was validated to be recorded and confirmed by other users. Furthermore, the third smart contract 530 may record, in association with the above address, identification information such as account information for identifying the user, address information where the first smart contract 510 in which the wallet address is generated is located, and the like, on the blockchain 500. The server 400 acquires the registration result and transmits registration result information indicating the registration result to the information processing device 200.
[0096] The information processing device 200 acquires the transmitted registration result information, stores it in the storage 240, and transmits it to the user terminal 100 (step S225).
[0097] User terminal 100 displays the transmitted registration result information on operation display unit 160 and stores it in storage 140 (step S125).
[0098] The present invention is not limited to the above-described embodiment, but can be modified in various ways within the scope of the claims.
[0099] For example, each of the components of the information processing system, the user terminal 100, the information processing device 200, the authentication system 300, and the server 400, may include components other than those described above, or may not include some of the components described above.
[0100] Furthermore, the user terminal 100, the information processing device 200, the authentication system 300, and the server 400 may each be configured with multiple devices, or may be configured with a single device. Furthermore, the functions of each component may be realized by other components. For example, the information processing device 200 and the server 400 may be realized by a single device. Furthermore, the functions of the information processing device 200 may be implemented as applications in the user terminal 100 and executed by the user terminal 100. Furthermore, the functions of the information processing device 200 and the server 400 may be implemented as applications in the user terminal 100, and the user terminal 100 may function as the information processing device 200 and the server 400.
[0101] Furthermore, the processing in the information processing system according to the above-described embodiment may include steps other than those in the sequence chart above, or may not include some of the steps described above. The order of the steps is not limited to that of the above-described embodiment. Furthermore, each step may be combined with other steps and executed as a single step, may be included in other steps and executed, or may be divided into multiple steps and executed. Furthermore, some steps may be omitted, and other steps may be added.
[0102] As described above, the information processing device 200 of this embodiment acquires at least a portion of the public key of the electronic certificate included in the identification document C held by the user and transmits it to the blockchain 500. The first smart contract 510 derives a wallet address that the user can use on the blockchain 500 based on the portion of the public key, and outputs the derived address so that it can be used by the user. This makes it possible to derive the user's address using a portion of the public key of the electronic certificate of the identification document C that proves the existence of the individual user, making it possible to easily generate a wallet address associated with the user and the identification document C. Therefore, it is possible to reliably and easily generate a wallet address on the blockchain associated with an actual person and allow the user to use it.
[0103] For example, by using a My Number Card as identification document C and generating an address using the modulus, which is information specific to each user and included in the public key of the user authentication electronic certificate, a unique address specific to the user can be derived.
[0104] Furthermore, when deriving an address, a computer program module that deterministically outputs a unique and irreversible output value for an input value is used, and the address can be derived as an output value by inputting the modulus as an input value. This allows a unique address to be deterministically derived from the modulus, which is a value unique to each user, and therefore the same address can be derived and used on different blockchain 500 networks without the user being aware of it.
[0105] Previously, the private keys used by users in blockchain transactions were complex character strings that were difficult for users to remember, manage, use, etc. Furthermore, if a private key were shared with a third party, the assets held by the user on the blockchain could be transferred by that third party, making private key management extremely important yet difficult, and this has been a major obstacle to the widespread adoption of various blockchain-based services.
[0106] Furthermore, due to the nature of wallet addresses on conventional blockchains, it is difficult to know who the owner is, making it difficult to know in advance whether the other party in a transaction on the blockchain is an AI or a bot, which creates the problem that it is difficult for real people to conduct transactions with confidence. According to an embodiment of the present invention, it is possible to generate a wallet address on the blockchain that is linked one-to-one with an identification document C that proves the identity of a real person, thereby enabling real people to conduct transactions with confidence on the blockchain.
[0107] The information processing device 200 can also accept a transaction execution request from the user terminal 100. When an execution request is accepted, the information processing device 200 generates execution instruction information indicating an execution instruction and transmits it to the user terminal 100. The user terminal 100 acquires an execution digital signature for the execution instruction generated using the private key of the digital certificate of the personal identification document C and transmits it to the information processing device 200. The information processing device 200 transmits the execution instruction information and the execution digital signature together with the user's address to the blockchain 500, and causes the second smart contract 520 to obtain a public key from a portion of the public key recorded in association with the address and verify the execution digital signature. This allows the execution digital signature generated by the user using the private key of the personal identification document C to be attached to the transaction execution instruction, and the execution digital signature can be verified on the blockchain 500.
[0108] Furthermore, if the above verification is successful, the information processing device 200 approves the execution of the transaction using the second smart contract 520, and if the verification is unsuccessful, the information processing device 200 does not approve the execution of the transaction using the second smart contract 520. This allows a transaction to be executed only if the verification of the digital signature for execution generated by the user using the private key of the personal identification document C is successful, and allows transactions on the blockchain 500 to be executed safely and reliably based on the user's intention.
[0109] Furthermore, when the second smart contract 520 receives the digital signature for execution, it obtains a public key from a portion of the public key recorded in association with the address and verifies the digital signature for execution using the obtained public key. This allows the second smart contract 520 to reliably verify the digital signature for execution. Therefore, users can safely and reliably execute transactions on the blockchain 500.
[0110] Furthermore, the information processing device 200 can receive a confirmation instruction from the user to confirm the validity of the user's address. When the confirmation instruction is received, the information processing device 200 acquires an electronic certificate for the identification document C via the user terminal 100. The information processing device 200 transmits the acquired electronic certificate to the authentication system 300, which is a server that provides a public personal authentication service, and acquires the confirmation result regarding the validity of the identification document in the public personal authentication service. This makes it possible to reliably and easily confirm the validity of the identification document C.
[0111] The information processing device 200 also generates registration instruction information indicating a registration instruction for registering the confirmation result of the validity of the acquired identification document C on the blockchain 500, and transmits the information to the user terminal 100. The user terminal 100 acquires a registration digital signature for the registration instruction, generated using the private key of the digital certificate of the identification document C, and transmits the digital signature to the information processing device 200. The information processing device 200 transmits the registration instruction information and the registration digital signature together with the user's address to the blockchain 500, and the second smart contract 520 obtains a public key from a portion of the public key recorded in association with the address, and verifies the registration digital signature. If the verification is successful, the third smart contract 530 records on the blockchain 500 that the address is valid. In other words, since the authentication system 300 has confirmed that the digital certificate of the identification document C used to generate the address is valid, the owner of the address is confirmed to be a real person. Then, since the address whose validity has been confirmed is recorded on the blockchain 500, other users can easily understand that the validity of the address has been confirmed.
[0112] Furthermore, when the information processing device 200 obtains the verification result of the validity of the personal identification document C, it generates a verification digital signature for the verification result using a verification private key prepared in advance by the service provider or the like, and attaches the verification digital signature to the registration instruction information and transmits it onto the blockchain 500. The third smart contract 530 verifies the verification digital signature using the verification public key, and if the verification is successful, the third smart contract 530 records on the blockchain 500 that the address is valid. This makes it possible to confirm the legitimacy of the verification result of the validity of the personal identification document C by verifying the verification digital signature attached by the service provider or the like.
[0113] Furthermore, the third smart contract 530 can record the date and time when the address was confirmed to be valid, in association with the address that has been confirmed to be valid. This allows the date and time when the address was confirmed to be valid to be recorded and confirmed by other users. For example, if the date and time when the address was confirmed to be valid is relatively recent, it can be determined that the address has a higher degree of confidence in its validity, and if the date and time when the address was confirmed to be valid is relatively old, it can be determined that the address has a lower degree of confidence in its validity.
[0114] The means and methods for performing various processes in the information processing system according to the above-described embodiments can be realized by either dedicated hardware circuits or a programmed computer. The programs may be provided, for example, on a computer-readable recording medium such as a flexible disk or CD-ROM, or online via a network such as the Internet. In this case, the programs recorded on the computer-readable recording medium are typically transferred to and stored in a storage unit such as a hard disk. The programs may also be provided as standalone application software or may be incorporated into the software of the device as a function of the system. [Explanation of symbols]
[0115] 100 user terminals, 110 CPUs, 120 ROM, 130 RAM, 140 storage, 150 communication interface, 160 Operation display section, 170 bus, 200 information processing device, 210 CPUs, 211 Reception Department, 212 Acquisition Department; 213 Derivation part, 214 output section, 215 Verification Department, 216 Approval Department, 217 Confirmation Department, 218 generation section, 219 Registration Department, 220 ROM, 230 RAM, 240 storage, 250 communication interface, 260 operation display section, 270 bus, 300 authentication system, 310 CPUs, 320 ROM, 330 RAM, 340 storage, 350 communication interface, 360 operation display section, 370 bus, 400, 400a, 400b servers (nodes), 410 CPUs, 420 ROM, 430 RAM, 440 storage, 450 communication interface, 460 Operation display section, 470 bus, 500 Blockchain, 510 first smart contract (first smart contract program), 520 second smart contract (second smart contract program), 530 Third smart contract (third smart contract program).
Claims
1. An information processing device for performing processing using a smart contract that functions by a computer executing code recorded on a blockchain, a reception unit that receives a generation instruction from a user to generate a wallet address that can be used on the blockchain; an acquisition unit that acquires at least a part of a public key of an electronic certificate included in an identification document held by the user when the generation instruction is accepted by the acceptance unit; a derivation unit that transmits at least a portion of the public key acquired by the acquisition unit onto the blockchain and derives, by a first smart contract, a wallet address that the user can use on the blockchain based on the portion of the public key; an output unit that outputs the address derived by the derivation unit so that the address can be used by the user; and A portion of the public key is associated with the address and recorded on the blockchain; the reception unit is capable of receiving an instruction to execute a transaction from the user; When the execution instruction is accepted by the accepting unit, the acquiring unit acquires an execution digital signature for the execution instruction, which is generated by the user using a private key of the digital certificate; An information processing device further having a verification unit that transmits the execution instruction accepted by the acceptance unit and the execution electronic signature acquired by the acquisition unit together with the address of the user onto the blockchain, and obtains the public key from a portion of the public key recorded in association with the address using a second smart contract to verify the execution electronic signature.
2. An information processing device for performing processing using a smart contract that functions by a computer executing code recorded on a blockchain, a reception unit that receives a generation instruction from a user to generate a wallet address that can be used on the blockchain; an acquisition unit that acquires at least a part of a public key of an electronic certificate included in an identification document held by the user when the generation instruction is accepted by the acceptance unit; a derivation unit that transmits at least a portion of the public key acquired by the acquisition unit onto the blockchain and derives, by a first smart contract, a wallet address that the user can use on the blockchain based on the portion of the public key; an output unit that outputs the address derived by the derivation unit so that the address can be used by the user; and the receiving unit is capable of receiving a confirmation instruction from the user to confirm the validity of the address of the user; the acquisition unit acquires the digital certificate of the personal identification document when the confirmation instruction is accepted, a verification unit that transmits the electronic certificate acquired by the acquisition unit to a server that provides a public personal authentication service and acquires a verification result regarding the validity of the personal identification document in the public personal authentication service; Further, a generation unit generates a registration instruction for registering the confirmation result acquired by the confirmation unit on the blockchain, when the registration instruction is generated, the acquisition unit acquires, from the user, a registration digital signature for the registration instruction, which is generated using a private key of the digital certificate; The information processing device further has a registration unit that sends the registration instruction and the registration electronic signature generated by the generation unit together with the address of the user onto the blockchain, obtains the public key from a portion of the public key recorded in association with the address using a second smart contract to verify the registration electronic signature, and if the verification is successful, records on the blockchain that the address is valid using a third smart contract.
3. 2. The information processing device according to claim 1, further comprising an approval unit that approves execution of the transaction by the second smart contract if verification by the verification unit is successful, and does not approve execution of the transaction by the second smart contract if verification by the verification unit is unsuccessful.
4. 2. The information processing device according to claim 1, wherein when the execution electronic signature is received, the second smart contract obtains the public key from a portion of the public key associated with the address and recorded, and verifies the execution electronic signature using the obtained public key.
5. the verification unit further obtains a certification digital signature regarding the verification result, which is generated using a pre-stored certification private key; 3. The information processing device of claim 2, wherein the registration unit transmits the certification electronic signature together with the registration instruction to the blockchain, and has the third smart contract verify the certification electronic signature using a pre-prepared certification public key, and if the verification is successful, records on the blockchain by the third smart contract that the address is valid, and if the verification is unsuccessful, does not record on the blockchain that the address is valid.
6. The information processing device according to claim 5 , wherein the third smart contract records the date and time when the address was confirmed to be valid, in association with the address that was confirmed to be valid.
7. The information processing device according to any one of claims 1 to 6, wherein the derivation unit transmits a modulus, which is information unique to each user included in the public key, onto the blockchain, and the first smart contract derives the address using the modulus.
8. The information processing device according to claim 7 , wherein the first smart contract uses the modulus to derive the unique address.
9. 9. The information processing device according to claim 8, wherein the first smart contract uses a computer program module that deterministically outputs an output value that is unique and irreversible for an input value, and derives the address as an output value from the computer program module by inputting the modulus as an input value to the computer program module.
10. 7. The information processing device according to claim 1, wherein the personal identification document is a My Number card, and the electronic certificate is a user authentication electronic certificate.
11. An information processing device according to any one of claims 1 to 6; a user terminal used by a user; the acquisition unit acquires a part of a public key of an electronic certificate obtained by reading the identification document by the user terminal, The output unit outputs the derived address by transmitting it to the user terminal.
12. An information processing program for causing a computer to function as the information processing device according to any one of claims 1 to 6.
13. An information processing method for performing processing using a smart contract that functions by a computer executing code recorded on a blockchain, a receiving step in which the information processing device receives, from a user, a generation instruction to generate a wallet address that can be used on the blockchain; an acquisition step in which, when the generation instruction is accepted in the acceptance step, the information processing device acquires at least a part of the public key of the electronic certificate included in the personal identification document held by the user; a derivation step in which an information processing device transmits at least a portion of the public key acquired in the acquisition step onto the blockchain, and derives, by a first smart contract, a wallet address that the user can use on the blockchain based on the portion of the public key; an output step in which the information processing device outputs the address derived in the derivation step so that the address can be used by the user; Including, A portion of the public key is associated with the address and recorded on the blockchain; the receiving step can receive an instruction to execute a transaction from the user; When the execution instruction is accepted by the accepting step, the acquiring step acquires an execution digital signature for the execution instruction, which is generated by the user using a private key of the digital certificate; An information processing method further including a verification step of transmitting the execution instruction accepted in the acceptance step and the execution electronic signature acquired in the acquisition step together with the address of the user onto the blockchain, and having a second smart contract acquire the public key from a portion of the public key recorded in association with the address to verify the execution electronic signature.
14. An information processing method for performing processing using a smart contract that functions by a computer executing code recorded on a blockchain, a receiving step in which the information processing device receives, from a user, a generation instruction to generate a wallet address that can be used on the blockchain; an acquisition step in which, when the generation instruction is accepted in the acceptance step, the information processing device acquires at least a part of the public key of the electronic certificate included in the personal identification document held by the user; a derivation step in which an information processing device transmits at least a portion of the public key acquired in the acquisition step onto the blockchain, and derives, by a first smart contract, a wallet address that the user can use on the blockchain based on the portion of the public key; an output step in which the information processing device outputs the address derived in the derivation step so that the address can be used by the user; Including, The receiving step can receive a confirmation instruction from the user to confirm the validity of the address of the user, The obtaining step obtains the digital certificate of the personal identification document when the confirmation instruction is accepted, The method further includes a confirmation step of transmitting the electronic certificate acquired in the acquisition step to a server that provides a public personal authentication service, and acquiring a confirmation result regarding the validity of the personal identification document in the public personal authentication service, The method further includes a generation step of generating a registration instruction for registering the confirmation result acquired in the confirmation step on the blockchain, the obtaining step obtains, when the registration instruction is generated, a registration digital signature for the registration instruction, which is generated using a private key of the digital certificate, from the user; An information processing method further including a registration step of transmitting the registration instruction and the registration electronic signature generated in the generation step together with the address of the user onto the blockchain, having a second smart contract obtain the public key from a portion of the public key recorded in association with the address to verify the registration electronic signature, and if the verification is successful, having a third smart contract record on the blockchain that the address is valid.
15. A smart contract program including a smart contract program for deriving an address that is recorded and executed on a blockchain, and a smart contract program for executing a transaction that is recorded in association with an address derived using a portion of the public key of an electronic certificate included in an identity verification document held by a user, The smart contract program for deriving the address is a first acquisition step of acquiring at least a part of a public key of an electronic certificate included in an identification document held by a user; a derivation step of deriving a wallet address usable on the blockchain using a portion of the public key acquired in the first acquisition step; an output step of outputting the address derived in the derivation step, The smart contract program for executing the transaction is a storing step of storing a portion of the public key; a second acquisition step of acquiring a transaction execution instruction from the user and an execution digital signature for the execution instruction generated by the user using the private key of the digital certificate; a verification step of obtaining the public key from the part of the public key stored in the storage step, and verifying the execution digital signature obtained in the second obtaining step using the obtained public key; an approval step of approving execution of the transaction if the verification is successful in the verification step, and not approving execution of the transaction if the verification is unsuccessful in the verification step; A smart contract program configured to cause a computer to execute the following.
Citation Information
Patent Citations
Computer-Implemented Method and System for Storing Authenticated Data on a Blockchain
JP2022549070A
History management system and history management method
JP2024006160A
Key recovery based on contactless card authentication
JP2025500248A
Method and system for decentralized identity generation
US20240380619A1