A custodian system for non-fungible tokens
A custodian system manages NFTs on behalf of users, addressing security and transaction fee challenges by using a custodian's wallet address and internal records, enhancing security and efficiency in NFT transfers.
Patent Information
- Application Number
- JP2024513183
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-10-01
- Filing Date
- 2022-09-27
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2042-09-27
AI Technical Summary
Users face challenges in securely managing and transferring non-fungible tokens (NFTs) due to the complexity of maintaining private keys, which can lead to loss of ownership and increased transaction fees on distributed ledgers.
A custodian system manages NFTs on behalf of users, using a custodian's wallet address to hold and transfer NFTs, eliminating the need for users to maintain private keys and reducing transaction fees by updating internal records rather than the ledger.
This approach enhances security and efficiency by reducing the need for users to manage private keys and minimizing transaction fees, while ensuring secure and seamless NFT transfers.
Smart Images

Figure 0007721797000001 
Figure 0007721797000002 
Figure 0007721797000003
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to and benefit of co-pending U.S. patent application Ser. No. 17 / 492,021, filed Oct. 1, 2021, entitled "CUSTODIAL SYSTEMS FOR NON-FUNGIBLE TOKENS," which is incorporated by reference in its entirety as if set forth herein. [Background technology]
[0002] Many users use various marketplaces to own, buy, or sell non-fungible tokens (NFTs). Typically, after an NFT is purchased, it is transferred to the owner's wallet. The owner's wallet's public key can be used as a wallet address that identifies who owns the NFT. The owner's wallet's private key can be used to authorize trading or transferring the NFT. However, if an NFT owner loses their private key, they may also lose the ability to prove ownership of their NFT. Similarly, if the private key is stolen, someone could transfer ownership of the NFT to a different wallet address.
[0003] Additionally, securing, storing, and tracking public-private key pairs for personal wallets can be time-consuming and technically challenging for many users. For example, hardware or software wallets connected to the internet allow users to conveniently and easily authorize or verify transactions. However, they create the risk of private key theft if the wallet is compromised. In contrast, hardware or software wallets that are disconnected from the internet are more secure but more cumbersome for users to use to authorize or verify transactions. Summary of the Invention [Means for solving the problem]
[0004] Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals indicate corresponding parts throughout the several views. [Brief explanation of the drawings]
[0005] [Figure 1] FIG. 1 illustrates a network environment in accordance with various embodiments of the present disclosure. [Figure 2] 2 is a flowchart illustrating example functions implemented in the network environment of FIG. 1 according to various embodiments of the present disclosure. [Figure 3] 2 is a flowchart illustrating example functions implemented in the network environment of FIG. 1 according to various embodiments of the present disclosure. [Figure 4] 2 is a flowchart illustrating example functions implemented in the network environment of FIG. 1 according to various embodiments of the present disclosure. [Figure 5] 2 is a flowchart illustrating example functions implemented in the network environment of FIG. 1 according to various embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0006] This paper discloses various techniques for managing ownership of digital assets, such as non-fungible tokens (NFTs), stored on a distributed ledger using a third party as a custodian. When ownership of a digital asset, such as an NFT, is transferred between users, the NFT is often updated to reflect the new owner's wallet address. However, many distributed ledgers (e.g., the ETHEREUM® blockchain) impose transaction fees to transfer an NFT from a first wallet address to a second. Unfortunately, transaction fees can be prohibitively expensive when there is substantial load on the distributed ledger or demand for distributed ledger resources. Additionally, each wallet address often serves as the public key of a public-private key pair, and users are responsible for maintaining the security and confidentiality of the private key required to authorize transactions involving their wallet. Many non-technical users are ill-equipped to properly protect and maintain the confidentiality of their private keys.
[0007] To solve these problems, digital assets such as NFTs can be bought, sold, and transferred while held by a custodian. A custodian can assume ownership of an NFT by associating it with the custodian's wallet address, and the custodian maintains its own records of who the true beneficial owner of that NFT is currently. Subsequent transfers between the custodian's users, customers, or clients can be handled by updating records maintained by the custodian, without the need to update the wallet address associated with the NFT. This eliminates the transaction fees imposed by distributed ledgers for the transfer of ownership of NFTs between individuals. Individuals can also avoid the need to maintain the security and confidentiality of their private keys associated with their wallet addresses, since they can rely on the custodian service to perform that service. This improves the efficiency and security of the computing systems involved.
[0008] The following description provides an overview of the system and its components, followed by a description of their operation. While the following description provides examples of the operation of various components of the present disclosure, use of the following examples does not exclude other implementations that are consistent with the principles disclosed by the following examples.
[0009] 1, a network environment 100 according to various embodiments is shown. The network environment 100 may include a custodian computing environment 103, a verifier computing environment 106, at least one client device 109, an exchange 111, an asset ledger 113, and an identity ledger 116, which may be in data communication with each other via a network 119.
[0010] Network 119 may include a wide area network (WAN), a local area network (LAN), a personal area network (PAN), or a combination thereof. These networks may include wired or wireless components, or a combination thereof. Wired networks may include Ethernet networks, cable networks, fiber optic networks, and telephone networks such as dial-up, digital subscriber line (DSL), and integrated services digital network (ISDN) networks. Wireless networks may include cellular networks, satellite networks, Institute of Electrical and Electronic Engineers (IEEE) 802.11 wireless networks (i.e., Wi-Fi), Bluetooth networks, microwave transmission networks, and other networks that rely on radio broadcasting. Network 119 may also include a combination of two or more networks 113. Examples of network 119 may include the Internet, an intranet, an extranet, a virtual private network (VPN), and similar networks.
[0011] The custodian computing environment 103, the verifier computing environment 106, and / or the exchange 111 may include one or more computing devices that include a processor, memory, and / or a network interface. For example, a computing device may be configured to perform operations on behalf of other computing devices or applications. As another example, such a computing device may host content and / or provide content to other computing devices in response to requests for the content.
[0012] Additionally, the custodian computing environment 103, the verifier computing environment 106, and / or the exchange 111 may employ multiple computing devices that may be located in one or more server banks, computer banks, or other configurations. Such computing devices may be located in a single location or may be distributed across many different geographic locations. For example, the custodian computing environment 103, the verifier computing environment 106, and / or the exchange 111 may include multiple computing devices that may together comprise hosted computing resources, grid computing resources, or any other distributed computing configuration. In some cases, the custodian computing environment 103, the verifier computing environment 106, and / or the exchange 111 may support flexible computing resources, where allocated processing power, network, storage, or other computing-related resources may change over time.
[0013] Both the asset ledger 113 and the identity ledger 116 represent synchronized, eventually consistent data stores scattered across multiple nodes in different geographic or network locations. Each node in the asset ledger 113 or identity ledger 116 may contain a replicated copy of the asset ledger 113 or identity ledger 116, including all data stored in the asset ledger 113 or identity ledger 116. Records of transactions involving the asset ledger 113 or identity ledger 116 may be shared or replicated using a peer-to-peer network connecting the individual nodes forming the asset ledger 113 or identity ledger 116. After a transaction or record is recorded in the asset ledger 113 or identity ledger 116, it may be replicated across the peer-to-peer network until the record is ultimately recorded at all nodes. Various consensus methods may be used to ensure that data is reliably written to the asset ledger 113 or identity ledger 116. In some implementations, data is immutable after it is written to the asset ledger 113 or identity ledger 116. Examples of distributed data stores that can be used for the asset ledger 113 or identity ledger 116 may include various types of blockchains, distributed hash tables (DHTs), and similar data structures. A variety of data may be stored in the asset ledger 113 or identity ledger 116. For example, the asset ledger 113 may store one or more non-fungible tokens (NFTs) 123, while the identity ledger 116 may store one or more ownership claims 126 and / or one or more decentralized identifiers 127.
[0014] An NFT 123 represents a non-fungible unit of data stored in the asset ledger 113. Because NFTs 123 are non-fungible, they can be used for a variety of purposes where fungibility is undesirable. For example, an NFT 123 can be used to represent ownership of a non-fungible digital or physical item, such as a song, a work of art, a website posting, or ownership of property (e.g., real or personal property). Thus, a transfer of ownership of an NFT 123 may represent a transfer of ownership of an asset linked to the NFT 123. Thus, in various implementations of the present disclosure, an NFT 123 may include other data, such as an NFT identifier 129, an NFT owner public key 133, and a description of the asset linked to the NFT 123 or the location of the asset linked to the NFT 123.
[0015] The NFT identifier 129 represents a unique identifier for each NFT 123 that uniquely identifies the NFT 123 relative to other NFTs 123. The NFT identifier 129 can be formatted in a variety of formats depending on the standard to which the NFT 123 conforms. Examples of NFT standards include the ETHEREUM ERC-721 standard, the ETHREUM ERC-1155 standard, and the FLOW blockchain NFT standard.
[0016] The NFT owner public key 133 represents a public key associated with the owner of the NFT 123. The NFT owner public key 133 can be used to uniquely identify the owner of the NFT 123. The NFT owner public key 133 can also be used to claim or verify ownership of the NFT 123 by its owner. In some implementations, the NFT owner public key 133 may also be referred to as the wallet address or owner address of the NFT 123. For each NFT owner public key 133, there may also be a respective NFT owner private key 136. The NFT owner private key 136 allows the owner of the NFT 123 to verify their ownership by generating a cryptographically secure signature that can be verifiable using the NFT owner public key 133. Thus, the NFT owner private key 136 may be stored in a private location separate from the asset ledger 113.
[0017] An ownership claim 126 may represent a claim of ownership over a digital asset 123. Such a claim may be made by the same entity that controls or is associated with the NFT owner public key 133. However, an ownership claim 126 may also be associated with a third party claiming ownership of an NFT 123 held in the name of a custodian or trustee. For example, a custodian may use their own public key as the NFT owner public key 133 to identify the custodian as the owner of the NFT 123 in the asset ledger 113. However, the custodian may also be managing the NFT 123 on behalf of another person. The ownership claim 126 may be stored in an identity ledger to allow a third party to verify the beneficial or true owner of the NFT 123. The ownership claim 126 may also include an NFT identifier 129 subordinate to the ownership claim 126 and an owner identifier 139 representing the individual claiming ownership of the NFT 123. Ownership claims 126 may also be implemented using various standards, such as the World Wide Web Consortium's (W3C) Decentralized Identifier (DID) standard.
[0018] A decentralized identifier (DID) 127 represents an identifier for an individual or entity and can be stored in the identity ledger 116. A DID 127 can represent any self-sovereign identifier used by an individual to assert their identity to others and can be stored in the identity ledger 116 to allow others to verify the individual's identity. Thus, in some implementations, a DID 127 can include a public key of a public-private key pair controlled by an individual. A DID 127 can also include one or more cryptographic signatures generated using the private key of another individual or entity that has certified or verified that the DID 127 identifies the individual using the DID 127 as an identifier. A DID 127 can be implemented using various techniques, such as the World Wide Web Consortium (W3C) Decentralized Identifier (DID) standard. In some implementations of the present disclosure, an owner identifier 139 can be implemented as a DID 127.
[0019] Various applications or other functions may run in the custodian computing environment 103 and the verifier computing environment 106. Components run by the custodian computing environment 103 may include a custodial service 143 and possibly other applications, services, processes, systems, engines, or functions not detailed herein.
[0020] Various data used by the custodian computing environment 103 may also be stored in a custodian data store 146 accessible to the custodian computing environment 103. The custodian data store 146 may represent multiple data stores, which may include relational or non-relational databases, such as object-oriented databases, hierarchical databases, hash tables, or similar key-value data stores, as well as other data storage applications or data structures. The custodian data store 146 may also include secure or limited-access data storage for storing sensitive information, such as cryptographic keys. A combination of these databases, data storage applications, and / or data structures may also be used together to provide a single logical data store. Data stored in the custodian data store 146 is associated with the operation of various application or functional entities, as described below. This data may include one or more asset records 149, NFT owner public keys 133, respective NFT owner private keys 136, and possibly other data.
[0021] Asset records 149 represent data associated with individual NFTs 123 managed by custody service 143 on behalf of others. Each asset record 149 can include an NFT identifier 129 for the respective NFT 123 and an owner identifier 139 for the individual claimed ownership of the NFT 123 managed by custody service 143.
[0022] The custodian service 143 may be executable to perform various operations on behalf of individuals. For example, the custodian service 143 may be executable to transfer ownership of an NFT 123 from one individual to another. The custodian service 143 may also be executed to acquire or dispose of an NFT 123, such as in situations where the NFT 123 is not currently owned or controlled by the custodian service 143. The custodian service 143 may also create, revoke, or update ownership claims 126 stored in the identity ledger 116 for individual NFTs 123. As part of these processes, the custodian service 143 may also create or issue verifiable credentials 159 to client devices 109 so that owners of NFTs 123 can verify their ownership to third parties. The custodian service 143 may also be configured to communicate with the exchange 111 to enable customers to buy or sell NFTs 123 using the exchange 111 while maintaining custody of the respective NFTs 123.
[0023] Verifiable credential 159 may represent any digital credential. For example, verifiable credential 159 may be implemented using the World Wide Web Consortium (W3C) standard for verifiable credentials. Verifiable credential 159 may include several components, such as the identity of the issuer of verifiable credential 159, a timestamp indicating when verifiable credential 159 was issued, a timestamp indicating when verifiable credential 159 will expire, and / or a proof mechanism that a third party can use to verify the authenticity and / or integrity of verifiable credential 159. Proof mechanisms may include a digital signature by the issuer of verifiable credential 159 or a trusted verification authority (e.g., verifier service 153), a token with the token's respective digital signature, a zero-knowledge proof scheme, etc.
[0024] Components executed by the verifier computing environment 106 may include a verifier service 153 and possibly other applications, services, processes, systems, engines, or functions not detailed herein. The verifier service 153 may execute to attest to ownership claims 126 issued by the custodial service 143 and / or to verify ownership claims 126 on behalf of a third party. For example, the verifier service 153 may use the verifier private key 156 to generate a cryptographic signature of a verifiable credential 159 that is used as proof of the verifiable credential 159 associated with the ownership claim 126. Similarly, the verifier service 153 may execute to verify that a verifiable credential 159 issued for an ownership claim 126 is valid.
[0025] Client device 109 represents a plurality of client devices 109 that can be coupled to network 119. Client device 109 may include a processor-based system, such as a computer system. Such a computer system may be embodied in the form of a personal computer (e.g., a desktop computer, a laptop computer, or similar device), a mobile computing device (e.g., a personal digital assistant, a mobile phone, a smartphone, a web pad, a tablet computer system, a music player, a portable game console, an e-book reader, and similar devices), a media playback device (e.g., a media streaming device, a Blu-ray player, a digital video disc (DVD) player, a set-top box, and similar devices), a video game console, or other device with similar functionality. Client device 109 may include one or more displays, such as a liquid crystal display (LCD), a gas plasma-based flat panel display, an organic light-emitting diode (OLED) display, an electrophoretic ink ("E-ink") display, a projector, or other type of display device. In some cases, the display may be a component of the client device 109 or may be connectable to the client device 109 via a wired or wireless connection.
[0026] The client device 109 can be configured to run various applications, such as a browser 166 or an identity wallet 169. The browser 166 can be executed by the client device 109 to access a network, such as a web page provided by an asset marketplace where NFTs 123 can be bought or sold, such as an exchange 111. The identity wallet 169 can be used to manage identification credentials for a user of the client device 109, such as an owner identifier 139 and / or credentials or data that form a verifiable credential 159 issued by a verifier service 153. The client device 106 can be configured to run additional applications, such as an email application, a social networking application, a word processor, a spreadsheet, or other applications.
[0027] As previously discussed, exchange 111 may represent one or more computing devices, computing resources, and / or applications or services that enable users to list NFTs 123 for sale and / or bid on or purchase NFTs 123. Examples of exchange 111 include digital marketplaces such as OPENSEA®, NIFTY GATEWAY®, FANOPOLY®, and TOPSHOT®.
[0028] Next, a general description of the operation of the various components of the network environment 100 is provided. The following description is provided for illustrative purposes, although other operations and interactions are possible depending on the particular implementation and / or transaction.
[0029] First, a user registers their owner identifier 139 in the identity ledger 116 as a distributed identifier (DID) 127. The DID 127 may include information that identifies the user (e.g., name, contact information, etc.) and a public key that can be used to identify the user.
[0030] The NFT 123 can then be listed for purchase on the NFT exchange 111. A user can purchase the NFT 123 from the NFT exchange 111. As part of the purchase process, or after the purchase, the user can request that the NFT 123 be held or maintained by the custody service 143.
[0031] The custody service 143 then assumes public ownership of the NFT 123. For example, the custody service 143 may record the custody service's 143 NFT owner public key 133 as the NFT owner public key 133 of the NFT 123 in the asset ledger 113. Meanwhile, the custody service 143 may also create an asset record 149 to separately track ownership of the NFT 123. The asset record 149 may include the NFT identifier 129 of the NFT purchased by the user and the user's owner identifier 139.
[0032] Subsequent transfers of ownership of the NFT 123 can be recorded by updating the NFT 123's asset record 149. For example, if a user resells or transfers the NFT 123 to another user, the custody service 143 can update the NFT 123's asset record 149 to include the new owner's owner identifier 139, while the NFT owner public key 133 assigned to the NFT 123 remains unchanged. As a result, the NFT 123 is still identified as owned by the custody service 143, and no network transaction fees (e.g., ETHREUM gas fees) need to be paid to the asset ledger 113 nodes as a result of the change of ownership. Additionally, users can rely on the operators of the custody service 143, who are more qualified and knowledgeable than most individual users, to maintain the security of the NFT owner private key 136.
[0033] Referring now to Figure 2, a sequence diagram is shown illustrating one example of interactions between various components of the network environment 100 of Figure 1. These interactions may occur, for example, to allow an individual to obtain an NFT 123 using the custodial service 143. The sequence diagram of Figure 2 illustrates only one example of many different types of functional configurations that may be employed to implement the operations of the described portions of the network environment 100. Alternatively, the sequence diagram of Figure 2 may be viewed as illustrating one example of elements of a method implemented within the network environment 100.
[0034] Starting at block 203, the custodial service 143 may publish a decentralized identifier 127 for the custodial service 143 to the identity ledger 116. The decentralized identifier (DID) 127 may include a token signed by an NFT owner private key 136 and / or an NFT owner public key 133 managed by the custodial service 143. This information may be used by other entities to verify the identity of the custodian computing environment 103 and / or the custodian operating the custodian service 143. In some cases, the custodial service 143 may also publish a schema used to reference or query the NFT###. Such a schema may specify a blockchain address used by the custodial service 143, an NFT owner public key 133 used by the custodial service 143, and other information. In some implementations, the schema may be included in the DID 127 published by the custodial service 143 to the identity ledger 116.
[0035] Then, in block 206, the custody service 143 may receive a request from the customer to assume ownership of the NFT 123 specified by the customer. This request to assume ownership may be received in several contexts. For example, a user of the client device 109 may send a request to the custody service 143 to assume ownership on behalf of a purchaser. As another example, the user may use a browser installed on the client device 109 to go to a webpage provided by the custody service 143 and provide the NFT identifier 129 and any other required information necessary for the custody service 143 to assume ownership of the NFT 123. Generally, the request to assume ownership of the NFT 123 will include at least the NFT identifier 129 of the NFT 123 and the owner identifier 139 of the individual requesting that the custody service 143 assume ownership of the NFT 123.
[0036] Next, in block 209, the custodial service 143 may assume ownership of the NFT 123. For example, the custodial service 143 may invoke a method or function provided by the NFT 123 that allows ownership of the NFT 123 to be updated. The custodial service 143 may provide the custodial service's 143 NFT owner public key 133 as an argument to this function, thereby updating the NFT owner public key 133. The custodial service 143 may also create an asset record 149 to allow the custodial service 143 to track ownership of the NFT 123 separately from the information stored in the asset ledger 113. For example, the custodial service 143 may create an asset record 149 that includes the NFT identifier 129 of the NFT 123 and the owner identifier 139 of the owner associated with the request received in block 206.
[0037] Proceeding to block 213, the asset ledger 113 may record the change in ownership of the NFT 123. The asset ledger 113 may update the NFT 123 specified by the NFT identifier 129 to reflect the NFT owner public key 133 provided by the custody service 143. As a result, the public owner of the NFT 123 will be listed as the operator of the custody service 143.
[0038] Proceeding to block 216, the custodial service 143 may create a verifiable credential 159 that can be used by a customer that submitted a request to assume ownership of the NFT 123 in block 206 to prove that the customer is the owner of the NFT 123 held by the custodial service 143. For example, the custodial service 143 may generate the verifiable credential 159 and sign the verifiable credential 159 with the NFT owner private key 136. As another example, the custodial service 143 may generate a token, sign the token with the NFT owner private key 136, and insert the signed token into the verifiable credential 159 for use as proof of authenticity. In some examples, the custodial service 143 may instead provide a copy of the verifiable credential 159 to the verifier service 153. In such examples, the verifier service 153 can verify the authenticity of the verifiable credential 159 provided by the custody service 143, and then sign the verifiable credential 159 with the verifier private key 163 or generate a signed token using the verifier private key 163, which can then be included in the verifiable credential 159. In these examples, the verifiable credential 159 can then be returned by the verifier service 153 to the custody service 143.
[0039] Referring now to block 219, the custodial service 143 may then provide the verifiable credentials 159 to the customer's identity wallet 169. This may be done using a variety of secure transmission mechanisms. The custodial service 143 may use one or more mechanisms defined by the W3C DID standard to provide the verifiable credentials 159 to the identity wallet 169 on the customer's client device 109.
[0040] Thereafter, in block 223, the identity wallet 169 may save or store on the client device 109 the verifiable credentials 159 received from the custody service 143.
[0041] Proceeding to block 226, the identity wallet 169 may create the ownership claim 126. This may occur in response to receiving the verifiable claim 159 so that the identity wallet 169 knows that the custody service 143 has successfully assumed ownership of the NFT 123. To create the ownership claim 126, the identity wallet 169 may create a claim, such as a claim defined by the W3C DID standard, asserting that the customer is the true owner of the NFT 123 stored in the asset ledger 113. Thus, the ownership claim 126 may include the NFT identifier 129 and the customer's owner identifier 139. However, in some implementations, the custody service 143 may create the ownership claim 126 on behalf of the identity wallet 169.
[0042] Next, in block 229, the identity wallet 169 can store the ownership claim 126 in the identity ledger 116. For example, the identity wallet 169 can write the ownership claim 126 to the identity ledger 116 or provide the ownership claim 126 to the identity ledger 116 for distribution across the nodes of the identity ledger 116. However, in those implementations in which the custodial service 143 created the ownership claim 126, the custodial service 143 can instead store the ownership claim 126 in the identity ledger 116. As a result, the true owner or beneficial owner of the NFT 123 is identified by the ownership claim 126 stored in the identity ledger 116, but the operator of the custodial service 143 is recognized as the owner of the NFT 123 by the asset ledger 113. New or updated ownership claims 126 can be stored in the identity ledger 116 to reflect the change in ownership of the NFT 123 without the custodial service 143 having to transfer or update the NFT 123 in the asset ledger 113. This reduces transaction fees imposed by the asset ledger 113 (e.g., gas fees imposed by the ETHEREUM blockchain network) that may accompany a change of ownership of an NFT 123.
[0043] Referring now to Figure 3, a sequence diagram illustrates one example of interactions between various components of the network environment 100 of Figure 1. These interactions may be used, for example, to allow a third party to verify that an individual possesses a designated NFT 123. The sequence diagram of Figure 3 illustrates only one example of many different types of functional configurations that may be employed to implement the operations of the described portions of the network environment 100. Alternatively, the sequence diagram of Figure 3 may be viewed as illustrating one example of elements of a method implemented within the network environment 100.
[0044] Beginning at block 303, the verifier service 153 may receive a verification request. The verification request may be requested to verify or prove that an individual is the owner of an NFT 123 stored in an asset ledger. The verification request may include information such as the NFT identifier 129 of the NFT 123 and the individual's owner identifier 139 (e.g., the decentralized identifier 127 that the individual uses as their owner identifier 139). Other information may also be included in the verification request as desired in various implementations.
[0045] Proceeding to block 306, the verifier service 153 may send a proof request to the identity wallet 169 in response to receiving the verification request in block 303. The proof request may specify the verifiable credential 159 to be authenticated or verified so that the identity wallet 169 can return proof of the desired verifiable credential 159. For example, the proof request may specify an NFT identifier associated with the verifiable credential 159 (e.g., by including the NFT identifier 129 of the NFT 123).
[0046] Then, in block 309, identity wallet 169 may retrieve verifiable credential 159 and return proof of authenticity or integrity for verifiable credential 159 to verifier service 153. For example, if verifiable credential 159 was signed by custody service 143 or verifier service 153, identity wallet 169 may return the signature of verifiable credential 159. In another example, if verifiable credential 159 includes a token signed by custody service 143 or verifier service 153, the token and a cryptographic signature of the token may be returned to verifier service 153 as proof of authenticity or integrity.
[0047] The verifier service 153 may then verify the issuer of the verifiable credential in block 313. For example, the verifier service 153 may retrieve the decentralized identifier (DID) 127 of the issuer of the verifiable credential 159 from the identity ledger 116. For example, if the custodial service 143 issued the verifiable credential 159, the verifier service 153 may retrieve the custodial service's DID 127 from the identity ledger 116.
[0048] Thereafter, in block 316, the verifier service 153 may verify the authenticity of the verifiable credential 159. For example, the verifier service 153 may use the public key of the issuer of the verifiable credential 159, such as the NFT owner public key 133 maintained by the custody service 143, to verify the cryptographic signature of the verifiable credential 159. Similarly, the verifier service 153 may use the public key of the issuer of the verifiable credential 159, such as the NFT owner public key 133 maintained by the custody service 143, to verify the cryptographic signature of the token associated with the verifiable credential 159. If the verifier service 153 verifies the cryptographic signature using the public key retrieved from the DID 127 of the issuer of the verifiable credential 159, the verifier service 153 may confirm that the holder of the verifiable credential 159 is the current owner of the NFT 123.
[0049] Referring now to Figure 4, a sequence diagram illustrates one example of interactions between various components of the network environment 100 of Figure 1. These interactions may occur, for example, to enable a first individual to transfer ownership of an NFT 123 held by the custodial service 143 to a second individual. The sequence diagram of Figure 4 illustrates only one example of many different types of functional configurations that can be employed to implement the operations of the described portions of the network environment 100. Alternatively, the sequence diagram of Figure 4 can be viewed as illustrating one example of elements of a method implemented within the network environment 100.
[0050] Starting at block 403, the custodial service 143 may receive a request to transfer ownership of the NFT 123. The request may be received in a variety of contexts. For example, the request may be received from the exchange 111 in response to the current owner's sale of the NFT 123 on the exchange 111. As another example, the current owner of the NFT 123 may send a request (e.g., by the current owner gifting the NFT 123 to another person or in response to the current owner completing a bilateral sale of the NFT 123). The request to transfer ownership of the NFT 123 may include data such as the NFT identifier 129, the owner identifier 139 of the new owner of the NFT identifier, and sufficient information to authenticate the current owner of the NFT 123 by the custodial service 143.
[0051] Then, in block 406, the custody service 143 may prove or verify ownership of the NFT 123. The process used to prove or verify ownership of the NFT 123 is described above in the description of FIG. 3.
[0052] After the custody service 143 verifies ownership of the NFT 123, the custody service 143 may update the asset record 149 to reflect the new owner of the NFT 123. For example, the custody service 143 may search for asset records 149 with a matching NFT identifier 129 and update the owner identifier 139 in the asset record 149 to match the owner identifier 139 of the new owner, as specified in the request received in block 403.
[0053] After updating the asset record 149, the custodian service 143 may revoked or invalidate the previous ownership claim 126 stored in the identity ledger 116 in block 413. For example, the custodian service 143 may update the existing ownership claim 126 to indicate that the status of the existing ownership claim 126 is invalid or revoked. As another example, the custodian service 143 may add the previous ownership claim 126 to a revocation list that identifies all ownership claims 126 of NFTs 123 that are no longer recognized by the custodian service 143. In some cases, the updated revocation list may be republished by the custodian service 143.
[0054] Then, in block 416, the custodial service 143 may create a verifiable credential 159 that the new owner of the NFT 123 can use to prove that the new owner is the owner of the NFT 123 held by the custodial service 143. For example, the custodial service 143 may generate the verifiable credential 159 and sign the verifiable credential 159 with the NFT owner private key 136. As another example, the custodial service 143 may generate a token, sign the token with the NFT owner private key 136, and insert the signed token into the verifiable credential 159 for use as proof of authenticity. In some examples, the custodial service 143 may instead provide a copy of the verifiable credential 159 to the verifier service 153. In these examples, the verifier service 153 can verify the authenticity of the verifiable credential 159 provided by the custody service 143, and then sign the verifiable credential 159 with the verifier private key 163 or generate a signed token using the verifier private key 163, which can then be included in the verifiable credential 159. In these examples, the verifiable credential 159 can then be returned by the verifier service 153 to the custody service 143.
[0055] Referring now to block 419, the custody service 143 may then provide the verifiable credentials 159 to the identity wallet 169 of the new owner of the NFT 123. This may be done using a variety of secure transmission mechanisms. The custody service 143 may use one or more mechanisms defined by the W3C DID standard to provide the verifiable credentials 159 to the identity wallet 169 on the new owner's client device 109.
[0056] Thereafter, in block 423, the new owner's identity wallet 169 may save or store the verifiable credentials 159 received from the custody service 143 on the client device 109.
[0057] Proceeding to block 426, the identity wallet 169 may create the ownership claim 126. This may be done in response to receiving the verifiable claim 159 so that the identity wallet 169 knows that the custody service 143 has successfully updated the asset record recording ownership of the NFT 123. To create the ownership claim 126, the identity wallet 169 may create a claim asserting that the new owner of the NFT 123 is the true owner of the NFT 123 stored in the asset ledger 113, such as a claim defined by the W3C DID standard. Thus, the ownership claim 126 may include the NFT identifier 129 and the new owner's owner identifier 139. However, in some implementations, the custody service 143 may create the ownership claim 126 on behalf of the identity wallet 169.
[0058] Next, at block 429, the identity wallet 169 may store the ownership claim 126 in the identity ledger 116. For example, the identity wallet 169 may write the ownership claim 126 to the identity ledger 116 or provide the ownership claim 126 to the identity ledger 116 for distribution across the nodes of the identity ledger 116. However, in those implementations in which the custodial service 143 created the ownership claim 126, the custodial service 143 may instead store the ownership claim 126 in the identity ledger 116. As a result, a change in ownership of the NFT 123 can be recorded without having to transfer or update the NFT 123 in the asset ledger 113, and the asset ledger 113 continues to indicate the custodial service 143 as the owner of the NFT 123. This reduces transaction fees charged by the asset ledger 113 (e.g., gas fees charged by the ETHEREUM blockchain network) that may be related to a change in ownership of the NFT 123.
[0059] Referring now to FIG. 5, a sequence diagram illustrates one example of interactions between various components of the network environment of FIG. 1. These interactions may occur, for example, to enable an owner of an NFT 123 to use a custodial service 143 to list the NFT 123 for sale on an exchange 111. The sequence diagram of FIG. 5 illustrates only one example of many different types of functional configurations that may be employed to implement the operations of the described portions of the network environment 100. Alternatively, the sequence diagram of FIG. 5 may be viewed as illustrating one example of elements of a method implemented within the network environment 100.
[0060] Starting at block 503, the exchange 111 may receive a listing for an NFT 123 or a notice of a listing for an NFT 123. For example, an owner of an NFT 123 may list the NFT 123 for sale on the exchange 111. The listing notice for the NFT 123 may include an NFT identifier 129. In some cases, it may also include an owner identifier 139 (if provided by the user listing the NFT 123).
[0061] Then, at block 506, the exchange 111 may send a request to the custodian service 143 to validate the NFT 123. The validation request may include the NFT identifier 129 of the NFT to be validated. In some implementations, the validation request may also include the owner identifier 139 of the claimed owner of the NFT 123.
[0062] Next, at block 509, the custody service 143 may send a proof request to the identity wallet 169 in response to receiving the verification request at block 506. The proof request may specify the verifiable credential 159 to be authenticated or verified so that the identity wallet 169 can return proof of the desired verifiable credential 159. For example, the proof request may specify the NFT 123 associated with the verifiable credential 159 (e.g., by including the NFT identifier 129 of the NFT 123).
[0063] Proceeding to block 513, the identity wallet 169 may retrieve the verifiable credential 159 and return a proof of authenticity or integrity for the verifiable credential 159 to the custodian service 143. For example, if the verifiable credential 159 is signed by the custodian service 143 or the verifier service 153, the identity wallet 169 may return a signature of the verifiable credential 159. As another example, if the verifiable credential 159 includes a token signed by the custodian service 143 or the verifier service 153, the token and a cryptographic signature of the token may be returned to the custodian service 153.
[0064] Proceeding to block 516, the custody service 143 may use the proof received from the identity wallet 169 to verify the verifiable credential 159. For example, the custody service 143 may use the NFT owner public key 133 maintained by the custody service 143 to verify the cryptographic signature of the verifiable credential 159 or the cryptographic signature of a token stored with the verifiable credential 159. If the cryptographic signature generated by the custody service 143 matches the cryptographic signature provided by the identity wallet 169 in response to the proof request, the custody service 143 may determine that the owner of the verifiable credential 159 is the owner of the NFT 123.
[0065] Then, in block 519, the custody service 143 may send a message to the exchange 111 confirming ownership of the NFT 123. This message may include an indicator that the owner identifier 139 identifies the true owner of record of the NFT 123 and that the verifiable credential 159 confirming ownership is valid.
[0066] Thereafter, in block 513, the exchange 111 may publish the NFT 123 on the exchange for sale. The publication or listing of the NFT 123 may occur in response to the custodial service 143 backing up ownership of the NFT 123.
[0067] The aforementioned software components are stored in the memory of each computing device and are executable by the processor of the respective computing device. In this regard, the term "executable" refers to a program file in a format ultimately executable by a processor. Examples of executable programs can be source code, which can be expressed in any suitable format, such as machine code in a format that can be loaded into a random-access portion of memory and executed by the processor, object code that can be loaded into a random-access portion of memory and executed by the processor, or a compiled program that can be converted into source code that can be interpreted by another executable program to generate instructions in a random-access portion of memory that are executed by the processor. Executable programs can be stored in any portion or component of memory, including random-access memory (RAM), read-only memory (ROM), hard drives, solid-state drives, universal serial bus (USB) flash drives, memory cards, optical disks such as compact discs (CDs) or digital versatile discs (DVDs), floppy disks, magnetic tape, or other memory components.
[0068] Memory includes both volatile and nonvolatile memory and data storage components. Volatile components are components that do not retain data values when power is lost. Nonvolatile components are components that retain data when power is lost. Thus, memory may include random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed through a memory card reader, floppy disks accessed through an associated floppy disk drive, optical disks accessed through an optical disk drive, magnetic tape accessed through an appropriate tape drive, or other memory components, or a combination of any two or more of these memory components. Furthermore, RAM may include devices such as static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM). ROM may include programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or other similar memory devices.
[0069] The applications and systems described herein may be embodied in software or code executed by general-purpose hardware, as described above, but may alternatively be embodied in dedicated hardware or a combination of software / general-purpose hardware and dedicated hardware. If embodied in dedicated hardware, each may be implemented as a circuit or state machine employing any one or a combination of several technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logical functions upon the application of one or more data signals, application-specific integrated circuits (ASICs) having appropriate logic gates, field-programmable gate arrays (FPGAs), or other components. Such technologies are generally well known to those skilled in the art and, therefore, will not be described in detail herein.
[0070] The flowcharts and sequence diagrams illustrate the functionality and operation of some implementations of various embodiments of the present disclosure. When embodied in software, each block may represent a module, segment, or portion of code containing program instructions for implementing the specified logical function(s). The program instructions may be embodied in the form of source code, which includes human-readable statements written in a programming language, or machine code, which includes numerical instructions recognizable by a suitable execution system, such as a processor of a computer system. Machine code can be transformed from source code through various processes. For example, machine code can be generated from source code using a compiler prior to executing the corresponding application. As another example, machine code can be generated from source code upon execution by an interpreter. Other techniques may also be used. When embodied in hardware, each block may represent a circuit or several interconnected circuits for implementing one or more specified logical functions.
[0071] Although the flowcharts and sequence diagrams show a particular order of execution, it is understood that the order of execution may differ from that depicted. For example, the order of execution of two or more blocks may be scrambled relative to the order shown. Also, two or more blocks shown in succession may be executed in parallel or with partial parallelism. Furthermore, in some embodiments, one or more of the blocks shown in the flowcharts and sequence diagrams may be skipped or omitted. Furthermore, any number of counters, state variables, alert semaphores, or messages may be added to the logic flows described herein for purposes such as utility, accounting, enhanced performance measurement, or to provide troubleshooting assistance. All such variations are understood to be within the scope of the present disclosure.
[0072] Additionally, any logic or application described herein, including software or code, can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system, such as a processor of a computer system or other system. In this sense, logic can include statements, including instructions and declarations, that can be fetched from a computer-readable medium and executed by an instruction execution system. In the context of this disclosure, a "computer-readable medium" can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with an instruction execution system. Also, a collection of distributed computer-readable media located across multiple computing devices (e.g., a storage area network or a distributed or clustered file system or database) can collectively be considered a single non-transitory computer-readable medium.
[0073] A computer-readable medium may include any one of many physical media, such as magnetic, optical, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, magnetic tape, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical disks. A computer-readable medium may also be random access memory (RAM), including static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). A computer-readable medium may also be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or other types of memory devices.
[0074] Furthermore, any logic or application described herein may be implemented and structured in a variety of ways. For example, one or more applications described herein may be implemented as modules or components of a single application. Furthermore, one or more applications described herein may execute on shared or separate computing devices, or a combination thereof. For example, multiple applications described herein may execute on the same computing device or on multiple computing devices within the same computing environment.
[0075] Unless otherwise expressly stated, disjunctive language, such as the phrase "at least one of X, Y, or Z," is otherwise understood in the context where it is generally used to express that an item, term, etc. can be either X, Y, or Z, or any combination thereof (e.g., X; Y; Z; X or Y; X or Z; Y or Z; X, Y, or Z, etc.). Thus, such disjunctive language is generally not intended to, and should not, imply that a particular embodiment requires at least one of X, at least one of Y, or at least one of Z, and each is present.
[0076] Exemplary embodiments of the present disclosure, as described above, are described in the following sections. However, other embodiments of the present disclosure are also described herein.
[0077] Item 1 - A system including a computing device including a processor and a memory, and machine-readable instructions stored in the memory, which, when executed by the processor, cause the computing device to at least: receive a verifiable credential representing proof of ownership of a digital asset from a custodial service; store the verifiable credential in the memory of the computing device; receive a request from the custodial service or a verifier service for proof of ownership of the digital asset; and provide the proof of the verifiable credential to the custodial service or the verifier service in response to the request for proof of ownership of the digital asset.
[0078] 2 - The system of claim 1, wherein the machine-readable instructions further cause the computing device to at least send instructions to the custodial service to transfer ownership of the digital asset to another owner, the instructions specifying an owner identifier of the other owner.
[0079] Clause 3 - The system of clause 1 or clause 2, wherein the proof of the verifiable credential includes a cryptographic signature of the verifiable credential generated by the custodial service.
[0080] Clause 4 - A system described in any one of clauses 1 to 3, wherein the proof of verifiable credentials includes a token issued by the storage service and a cryptographic signature of the token, the cryptographic signature being generated by the storage service.
[0081] Clause 5 - The system of any one of clauses 1 to 4, wherein the machine-readable instructions further cause the computing device to at least, in response to receiving the verifiable credential, create an ownership claim including a unique identifier of the digital asset and an identifier of the owner of the digital asset, and publish the ownership claim to the identity ledger.
[0082] Clause 6 - A system described in any one of clauses 1 to 5, wherein the identifier of the owner of the digital asset is a decentralized identifier associated with the owner, and the decentralized identifier includes a public key associated with the owner.
[0083] Item 7 - The system of any one of items 1 to 6, wherein the digital asset is a non-fungible token (NFT).
[0084] Clause 8 - A method comprising: updating an owner identifier of a digital asset in an asset ledger to include a public key of an asset custodian, where the public key of the asset custodian indicates that the asset custodian is the owner of the digital asset; providing a verifiable credential linked to the digital asset in the digital asset ledger to an identity wallet; and creating an asset record that stores an owner identifier representing a user of the identity wallet in association with an asset identifier of the digital asset.
[0085] Clause 9 - The method of clause 8, further comprising signing the verifiable credential with the asset custodian's private key to generate a cryptographic signature, and including the cryptographic signature in the verifiable credential.
[0086] Clause 10 - The method of clause 8 or clause 9, further comprising generating a token, signing the token with the asset custodian's private key to generate a cryptographic signature, and including the token and the cryptographic signature in a verifiable credential.
[0087] Clause 11 - The method of any one of clauses 8 to 10, wherein the owner identifier is a first owner identifier, the verifiable credential is a first verifiable credential, and the identity wallet is a first identity wallet, and the method further includes receiving a request to transfer ownership of the digital asset, the request to transfer the digital asset including a second owner identifier associated with a new owner of the digital asset; updating an asset record to replace the first owner identifier with the second owner identifier; revoking the ownership claim associated with the first owner identifier; and providing the second verifiable credential linked to the digital asset in the digital asset ledger to the second identity wallet.
[0088] Item 12 - The method of item 11, wherein abandoning the ownership claim further includes updating the ownership claim to reflect that the ownership claim has been abandoned.
[0089] Item 13 - The method of item 11, wherein abandoning the ownership claim further includes adding the ownership claim to a abandonment list.
[0090] Clause 14 - The method of any one of clauses 8 to 13, wherein the digital asset is a non-fungible token.
[0091] Clause 15 - A system including a computing device including a processor and a memory, and machine-readable instructions stored in the memory, which, when executed by the processor, cause the computing device to perform at least: 1. A system for providing an identity wallet with verifiable credentials linked to the NFT in a digital asset ledger; and creating an asset record that stores an owner identifier representing a user of the identity wallet in association with the NFT identifier of the NFT. 2. A system for providing an identity wallet with verifiable credentials linked to the NFT in a digital asset ledger; and 3. An asset record that stores an owner identifier representing a user of the identity wallet in association with the NFT identifier of the NFT.
[0092] 16 - The system of claim 15, wherein the machine-readable instructions, when executed by the processor, further cause the computing device to at least sign the verifiable credential with the asset custodian's private key to generate a cryptographic signature and include the cryptographic signature in the verifiable credential.
[0093] 17 - The system of claim 15 or 16, wherein the machine-readable instructions, when executed by a processor, further cause the computing device to at least generate a token; sign the token with the asset custodian's private key to generate a cryptographic signature; and include the token and the cryptographic signature in a verifiable credential.
[0094] Clause 18 - The system of any one of clauses 15 to 17, wherein the owner identifier is a first owner identifier, the verifiable credential is a first verifiable credential, and the identity wallet is a first identity wallet, and the machine-readable instructions, when executed by a processor, further cause the computing device to at least: receive a request to transfer ownership of the NFT, where the request to transfer the NFT includes a second owner identifier associated with a new owner of the NFT; update the asset record to replace the first owner identifier with the second owner identifier; revoke the ownership claim associated with the first owner identifier; and provide the second verifiable credential linked to the NFT in the digital asset ledger to the second identity wallet.
[0095] Clause 19 - The system of any one of clauses 15 to 18, wherein the machine-readable instructions that cause the computing device to relinquish the ownership claim further cause the computing device to update the ownership claim to reflect that the ownership claim has been relinquished.
[0096] Clause 20 - The system of any one of clauses 15 to 19, wherein the machine-readable instructions that cause the computing device to discard the ownership claim further cause the computing device to add the ownership claim to a discard list.
[0097] It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations, set forth to clearly understand the principles of the present disclosure. Many variations and modifications can be made to the above-described embodiments without substantially departing from the spirit and principles of the present disclosure. All such variations and modifications are intended to be included herein within the scope of this disclosure and protected by the following claims.
Claims
1. a computing device including a processor and a memory; and machine-readable instructions stored in the memory, the machine-readable instructions, when executed by the processor, causing the computing device to perform at least: receiving a verifiable credential representing proof of ownership of the digital asset from the custody service; storing the verifiable credential in the memory of the computing device; receiving a request for proof of ownership of the digital asset from the custodian service or verifier service; and causing the custodian service or the verifier service to provide proof of the verifiable credential in response to the request for proof of ownership of the digital asset, the system comprising: The system, wherein the machine-readable instructions further cause the computing device to send at least instructions to the custodial service to transfer ownership of the digital asset to another owner, the instructions specifying an owner identifier of the other owner.
2. a computing device including a processor and a memory; and machine-readable instructions stored in the memory, the machine-readable instructions, when executed by the processor, causing the computing device to perform at least: receiving a verifiable credential representing proof of ownership of the digital asset from the custody service; storing the verifiable credential in the memory of the computing device; receiving a request for proof of ownership of the digital asset from the custodian service or verifier service; and causing the custodian service or the verifier service to provide proof of the verifiable credential in response to the request for proof of ownership of the digital asset, the system comprising: The system, wherein the proof of the verifiable credential includes a cryptographic signature of the verifiable credential generated by the custodial service.
3. a computing device including a processor and a memory; and machine-readable instructions stored in the memory, the machine-readable instructions, when executed by the processor, causing the computing device to perform at least: receiving a verifiable credential representing proof of ownership of the digital asset from the custody service; storing the verifiable credential in the memory of the computing device; receiving a request for proof of ownership of the digital asset from the custodian service or verifier service; and causing the custodian service or the verifier service to provide proof of the verifiable credential in response to the request for proof of ownership of the digital asset, the system comprising: The system, wherein the proof of the verifiable credential includes a token issued by the custodial service and a cryptographic signature of the token, the cryptographic signature being generated by the custodial service.
4. a computing device including a processor and a memory; and machine-readable instructions stored in the memory, the machine-readable instructions, when executed by the processor, causing the computing device to perform at least: receiving a verifiable credential representing proof of ownership of the digital asset from the custody service; storing the verifiable credential in the memory of the computing device; receiving a request for proof of ownership of the digital asset from the custodian service or verifier service; and causing the custodian service or the verifier service to provide proof of the verifiable credential in response to the request for proof of ownership of the digital asset, the system comprising: The machine-readable instructions further include instructions for transmitting to the computing device at least: In response to receiving the verifiable credential, creating an ownership claim including a unique identifier for the digital asset and an identifier for an owner of the digital asset; and publishing the ownership claim in an identity ledger.
5. 5. The system of claim 2, wherein the machine-readable instructions further cause the computing device to send at least an instruction to the custodial service to transfer ownership of the digital asset to another owner, the instruction specifying an owner identifier of the other owner.
6. The system of claim 1 , 3 or 4, wherein the proof of the verifiable credential comprises a cryptographic signature of the verifiable credential generated by the custodial service.
7. 5. The system of claim 1, 2, or 4, wherein the proof of the verifiable credential includes a token issued by the custodial service and a cryptographic signature of the token, the cryptographic signature being generated by the custodial service.
8. The machine-readable instructions further include instructions for transmitting to the computing device at least: In response to receiving the verifiable credential, creating an ownership claim including a unique identifier for the digital asset and an identifier for an owner of the digital asset; and publishing the ownership claim in an identity ledger.
9. The system of claim 4 , wherein the identifier of the owner of the digital asset is a decentralized identifier associated with the owner, the decentralized identifier including a public key associated with the owner.
10. The system of claim 8 , wherein the identifier of the owner of the digital asset is a decentralized identifier associated with the owner, the decentralized identifier including a public key associated with the owner.
11. 5. The system of claim 1, wherein the digital asset is a non-fungible token (NFT).
Citation Information
Patent Citations
Authentication system, authentication method, terminal device and program
JP2021015429A
Game system and auction program
JP2021152815A
Mapping physical items to blockchain frameworks
JP2021507617A
Distributed Document and Entity Validation Engine
JP2021522631A
Asset ownership transfer and verification management
US20210166247A1