METHOD AND SYSTEM FOR ENABLED TRACKABLE, PRIVACY-PRESERVING, MULTI-HOP, OFFLINE TRANSACTIONS FOR DIGITAL CURRENCY
The method and system facilitate secure, offline cryptocurrency transfers using cryptographically signed messages and secure storage, ensuring immutability and privacy, addressing the limitations of traditional blockchain systems by enabling offline transactions that can be verified and posted when connectivity is restored.
Patent Information
- Application Number
- JP2024535552
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-12-14
- Filing Date
- 2022-12-05
- Publication Date
- 2025-10-21
- Estimated Expiration
- 2042-12-05
AI Technical Summary
Existing blockchain systems require both parties to have an active connection to a blockchain node for cryptocurrency transactions, making offline transfers impossible, which is time-consuming and limits transaction flexibility.
A method and system for processing offline cryptocurrency transfers using cryptographically signed transfer messages, secure connections, and secure data storage to enable transactions without sacrificing security, immutability, and privacy, allowing transfers to be verified and posted to the blockchain when connectivity is restored.
Enables secure, offline cryptocurrency transfers that maintain blockchain benefits like immutability and privacy, allowing continuous transaction without requiring constant network connectivity and preventing unauthorized spending.
Smart Images

Figure 0007757537000001 
Figure 0007757537000002 
Figure 0007757537000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to conducting offline transactions involving digital currency, and in particular to using a series of cryptographically signed transfer messages, secure connections, and secure data storage to enable the transfer of digital currency while offline and maintaining the privacy of participants.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Patent Application No. 17 / 550,596, filed December 14, 2021, the entire contents of which are incorporated by reference for all purposes. [Background technology]
[0003] Blockchains were originally created as a storage mechanism for making payment transactions using cryptocurrencies. The use of blockchains offers several benefits, such as decentralization, distributed computing, and transparency regarding transactions, while providing anonymity for the individuals or entities involved in the transactions. A relatively favorable property of blockchains is the immutability of their records: all transactions that are part of the chain are stored and are immutable due to the computational power and bandwidth limitations required, especially as the chain grows and the blockchain network adds more nodes.
[0004] However, in traditional blockchains, for a transaction to be a valid transfer, all transactions must be submitted to a node, verified, and included in a new block that is successfully added to the chain. To use newly acquired cryptocurrency, the transferee must wait for the transaction to be posted to the blockchain. Not only can this process be time-consuming, but it also requires both parties to the transaction to have an active connection to a blockchain node. There can be many cases in which both parties wish to transfer cryptocurrency even when they lack sufficient connectivity to a blockchain node (i.e., they are offline). In existing blockchain systems, such transfers are not possible.
[0005] Therefore, there is a need for a technological solution that allows for the transfer of cryptocurrencies without sacrificing the security, immutability, and privacy of the blockchain. Summary of the Invention
[0006] This disclosure provides a description of a system and method for processing offline cryptocurrency transfers. To perform an offline transfer, a certified transfer message must first be issued to a first party by an authorized entity, such as a blockchain node or other permissioned system. The transfer message serves as authorization for any recipient of the first party's permission to perform the offline transfer. Once received, the first party can generate a transfer message for a blockchain transaction to transfer cryptocurrency to a second party. This transfer message can be grouped with the first transfer message and electronically sent to the second party. The second party can eventually connect to the blockchain network (i.e., go online), submit the transfer message, which is verified, and the offline transaction is posted to the blockchain, or the second party can continue to perform offline transfers by generating a new transfer message and sending the complete group of transfer messages to a third party, who can then connect to the blockchain network or continue the chain of offline transfers. By requiring a full chain of custody of the transfer message, the original cryptocurrency cannot be used in any other manner and unauthorized spending is avoided. In some cases, all transfer messages, cryptographic keys, and other data can be stored in a secure element or other secure data storage on the computing device to prevent access by the user, thereby maintaining privacy for prior offline transactions on the chain and associated transferors. This allows for offline cryptocurrency transfers without sacrificing any of the existing blockchain benefits.
[0007] A method for processing a transfer of cryptocurrency offline includes: receiving, by a receiver of a computing device, a first transfer message, the first transfer message being cryptographically signed using a first private key of a first key pair; verifying, by a processor of the computing device, the cryptographic signature of the first transfer message using a first public key of the first key pair; storing the verified first transfer message in a memory of the computing device; receiving, by an input device of the computing device, a transfer instruction including at least a communication address; and electronically transmitting, by a transmitter of the computing device, the verified first transfer message to an external device based on at least the communication address.
[0008] A system for processing offline cryptocurrency transfers includes: an external device; a computing device including: a receiver that receives a first transfer message, where the first transfer message is cryptographically signed using a first private key of a first key pair; a processor that verifies the cryptographic signature of the first transfer message using a first public key of the first key pair; a memory that stores the verified first transfer message; an input device that receives a transfer instruction including at least a communication address; and a transmitter that electronically transmits the verified first transfer message to the external device based on at least the communication address. [Brief explanation of the drawings]
[0009] The scope of the present disclosure is best understood from the following detailed description of exemplary embodiments when taken in conjunction with the accompanying drawings, in which:
[0010] [Figure 1] FIG. 1 is a block diagram illustrating a high-level system architecture for processing cryptocurrency transfers offline, according to an exemplary embodiment. [Figure 2]FIG. 2 is a block diagram illustrating a computing device of the system of FIG. 1 for processing cryptocurrency transfers offline, according to an exemplary embodiment. [Figure 3A] 1 is a flow diagram illustrating a process for processing cryptocurrency transfers offline, according to an example embodiment. [Figure 3B] 1 is a flow diagram illustrating a process for processing cryptocurrency transfers offline, according to an example embodiment. [Figure 4] 1 is a flow diagram illustrating an example method for processing cryptocurrency transfers offline, according to an example embodiment. [Figure 5] FIG. 1 is a block diagram illustrating a computer system architecture, according to an exemplary embodiment.
[0011] Further areas of applicability of the present disclosure will become apparent from the following detailed description. The detailed description of exemplary embodiments is intended for purposes of illustration only and is not intended to necessarily limit the scope of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0012] A system for processing offline cryptocurrency transfers FIG. 1 illustrates a system 100 for processing cryptocurrency transfers offline using a chain of cryptographically signed transfer messages.
[0013] As described herein, the term "blockchain" may refer to a public ledger of all transactions in a blockchain-based currency (also referred to as a cryptocurrency). One or more computing devices may include a blockchain network (described in more detail below), which may be configured to process and record transactions as part of blocks in the blockchain. Once a block is complete, it is added to the blockchain, thereby updating the transaction record. In many embodiments, the blockchain may be a chronological ledger of transactions or may be presented in any other order suitable for use by the blockchain network. In some embodiments, a transaction recorded in the blockchain may include a destination address and a currency amount. The blockchain thereby records how much currency belongs to a particular address. In some embodiments, transactions may or may not be financial-related and may include additional or different information (e.g., source address, timestamp, etc.). In some embodiments, the blockchain may additionally or alternatively include almost any type of data in the form of transactions. This may be or should be placed in a distributed database that maintains a continuously growing list of data records that are hardened against tampering and revision, even by an operator, and can be verified and validated by the blockchain network via proof-of-work (PoW) and / or any other suitable verification techniques associated therewith. In some cases, the data for a given transaction may further include additional data that is not directly part of the transaction that is appended to the transaction data. In some instances, the inclusion of such data in the blockchain may constitute a transaction.
[0014] The system 100 can include a blockchain network 104. The blockchain network 104 can be comprised of a plurality of blockchain nodes 102. Each blockchain node 102 can be a computing system, for example, as shown in Figures 2 and 5 and described in more detail below, that is configured to perform functions associated with processing and managing a blockchain, which can include: generating blockchain data values, validating proposed blockchain transactions, verifying digital signatures, generating new blocks, validating new blocks, and maintaining copies of the blockchain.
[0015] A blockchain may be a distributed ledger comprising at least a plurality of blocks. Each block may include at least a block header and one or more data values. Each block header may include at least a timestamp, a block reference value, and a data reference value. The timestamp may be the time when the block header was generated and may be represented using any suitable method (e.g., a UNIX timestamp, DateTime notation, etc.). The block reference value may be a value that references a preceding block in the blockchain (e.g., based on the timestamp). In some embodiments, the block reference value in the block header may be a reference to the block header of the most recently added block preceding the respective block. In an exemplary embodiment, the block reference value may be a hash value generated by hashing the block header of the most recently added block. Similarly, the data reference value may be a reference to one or more data values stored in the block containing the block header. In an exemplary embodiment, the data reference value may be a hash value generated by hashing one or more data values. For example, the block reference value may be the root of a Merkle tree generated using one or more data values.
[0016] The use of a block reference value and a data reference value in each block header results in immutability for the blockchain. Any attempted change to the data value requires the generation of a new data reference value for that block, which in turn requires the generation of a new block reference value for the subsequent block, which in turn requires the generation of a new block reference value for each subsequent block. For the change to be permanent, this must be performed and updated for every single blockchain node 102 in the blockchain network 104 before a new block is created and added to the blockchain. Computing and communication limitations can make such changes extremely difficult or even impossible, hence the blockchain's immutability.
[0017] In some embodiments, a blockchain can be used to store information about blockchain transactions conducted between two different blockchain wallets. A blockchain wallet can contain a private key of a cryptographic key pair, which can be used to generate a digital signature that can serve as a payer's authorization for the blockchain transaction, and the digital signature can be verified by the blockchain network 104 using the public key of the cryptographic key pair. In some cases, the term "blockchain wallet" can refer specifically to a private key. In other cases, the term "blockchain wallet" can refer to a computing device (e.g., first device 106, second device 108, third device 110, etc.) that stores a private key for use in blockchain transactions. For example, each computing device can have its own private key for each cryptographic key pair and can be a blockchain wallet for use in transactions with a blockchain associated with the blockchain network. The computing device may be any type of device suitable for storing and utilizing a blockchain wallet, such as a desktop computer, a laptop computer, a notebook computer, a tablet computer, a mobile phone, a smartphone, a smart watch, a smart television, a wearable computing device, an embeddable computing device, etc.
[0018] Each blockchain data value stored in the blockchain may correspond to a blockchain transaction or other data storage, as appropriate. A blockchain transaction may include at least the following: a digital signature of the sender (e.g., first device 106) of the currency generated using the sender's private key, a blockchain address of the recipient (e.g., second device 108) of the currency generated using the recipient's public key, and the amount of blockchain currency to be transferred or other data to be stored. In some blockchain transactions, the transaction may also include: one or more blockchain addresses of the sender where the blockchain currency is currently stored (e.g., if a digital signature demonstrates access to such currency); and an address generated using the sender's public key for any changes to be maintained by the sender. Addresses to which cryptocurrency that can be used in future transactions is sent are referred to as "output" addresses because they were previously used to capture the output of a previous blockchain transaction, and are also referred to as "unspent transactions" because there is currency sent to the address in a previous transaction where that currency has not yet been spent. In some cases, a blockchain transaction may also include the sender's public key for use by entities to verify the transaction. For traditional processing of blockchain transactions, such data may be provided by either the sender or the recipient to a blockchain node 102 in the blockchain network 104. The node can verify the digital signature using the public key in the sender's wallet's cryptographic key pair and verify access to the sender's funds (e.g., if the unspent transaction has not yet been spent and was sent to an address associated with the sender's wallet), a process known as "confirming" the transaction, and then include the blockchain transaction in a new block.In a traditional blockchain implementation, new blocks may be verified by other nodes in the blockchain network 104 before being added to the blockchain and distributed to all blockchain nodes 102 in the blockchain network 104. If the blockchain data value does not relate to a blockchain transaction but instead relates to the storage of other types of data, the blockchain data value may still include or otherwise involve verification of a digital signature.
[0019] In the system 100, the first device 106 can have a blockchain wallet stored therein, which has access to cryptocurrency amounts on a blockchain associated with the blockchain network 104. As described, the terms “first device 106,” “second device 108,” and “third device 110” can interchangeably refer to the respective computing devices, their users, or the blockchain wallets stored thereon. The first device 106 can be interested in transferring its cryptocurrency to the second device 108 offline. To perform the offline transfer, a first transfer message, also referred to as an issue-transfer message, must be issued to the first device 106. The issue-transfer message can be a cryptographically signed message that includes a previous blockchain transaction in which the cryptocurrency was transferred to the first device 106.
[0020] The issuance and transfer message can be cryptographically signed by an authorized entity, such as the blockchain node 102. In some embodiments, the system 100 can include additional authorized entities, such as the issuing system 112, that are authorized to cryptographically sign issuance and transfer messages. For example, the blockchain can be a permissioned blockchain between financial institutions, with a central bank as the administrative entity and other banks as participating entities. In such a case, the central bank can cryptographically sign the issuance and transfer message and distribute it to other banks, which can be used to transfer cryptocurrency offline. The cryptographic signature can be generated using an appropriate generation algorithm and a private key of a cryptographic key pair. The entity generating the cryptographic signature (e.g., the blockchain node 102 or the issuing system 112) can have the private key of the cryptographic key pair, referred to as the issuance key pair, used to generate the cryptographic signature. The corresponding public key of the issuance key pair can be published to participants in the blockchain network 104, such as the first device 106, the second device 108, and the third device 110.
[0021] The first device 106 can request and receive a cryptographically signed issuance transfer message from the appropriate entity. The first device 106 can verify the cryptographic signature using the public key of the issuance key pair to ensure that the issuance transfer message is valid and will be honored by the blockchain network 104 after the offline transaction is completed. Upon successful verification of the issuance transfer message, the first device 106 is ready to execute the transaction offline.
[0022] The first device 106 and the second device 108 can agree on a cryptocurrency transfer corresponding to an issuance transfer message. The first device 106 can receive input regarding details about the new blockchain transaction, such as the amount of cryptocurrency to be transferred and the identity of the second device 108 as the recipient of the transfer. In some cases, the identity can be a destination blockchain address, which can be generated using the public key of a cryptographic key pair associated with the second device's blockchain wallet. In other cases, the identity can be a public key. The first device 106 can generate a transfer message (referred to as the first transfer message) that includes the cryptocurrency amount, the identity of the second device 108, and a digital signature generated using the private key of the cryptographic key pair associated with the first device's blockchain wallet, which can be generated using any suitable signature generation algorithm. In some cases, the digital signature can be generated using the same signature generation algorithm used to cryptographically sign the issuance transfer message.
[0023] Once the first transfer message is generated, the first device 106 can generate a payment message. The payment message can be a data container that wraps the issuance transfer message with the first transfer message. The first device 106 can then electronically transmit the payment message to the second device 108 using any suitable communication method, such as via Bluetooth, radio frequency, short messaging service, multimedia messaging service, or an application program that can be embedded in the software of a blockchain wallet. The second device 108 can receive the payment message and gain control of the transferred cryptocurrency for a new offline transfer, even before the transfer from the first device 106 to the second device 108 is published on the blockchain.
[0024] If the second device 108 connects to the blockchain network 104 before making the additional offline transfer, the second device 108 can electronically send a payment message to the blockchain node 102 using an appropriate communication network and method. The blockchain node 102 can receive the payment message and unwrap the data container to obtain the issuance transfer message and the first transfer message contained therein. The blockchain node 102 can verify the issuance transfer message by verifying the cryptographic signature using the issuance public key. If the issuance transfer message is valid, the blockchain node 102 can verify the transaction contained in the first transfer message by verifying the digital signature using the public key of the cryptographic key pair associated with the first device's blockchain wallet. If the digital signature is valid, the transaction can then be included in a new block that is generated, verified, and confirmed by the blockchain node 102 in the blockchain network 104 and added to the blockchain using traditional methods. The second device 108 can then use the received cryptocurrency in future online blockchain transactions or can request a new issuance transfer message for use of the cryptocurrency for future offline blockchain transactions.
[0025] In some cases, once an issuance transfer message is distributed, the associated cryptocurrency cannot be used in any transaction without presenting the issuance transfer message for verification, as in the process described above, preventing the cryptocurrency from being used in online transactions while the issuance transfer message is outstanding, thereby preventing double spending of the cryptocurrency. In such cases, the blockchain node 102 and / or the issuing system 112 may maintain records of distributed issuance transfer messages. In some cases, the blockchain network 104 may require an issuance transfer message for all blockchain transactions, thereby eliminating the need to maintain records of distributed issuance transfer messages while still preventing the possibility of double spending of the cryptocurrency.
[0026] In some embodiments, a first device 106 can connect to the blockchain network 104 and submit a payment message to have a new blockchain transaction added to the blockchain. In such embodiments, the first device 106 can electronically transmit the payment message to the blockchain node 102, which can verify both included transfer messages as described above. If a second device 108 later submits the same payment message, or if the second device 108 has already submitted a payment message before the first device's submission, the receiving blockchain node 102 can analyze the blockchain to determine whether the transaction associated with the issued transfer message already redeemed the associated cryptocurrency. If so, the blockchain node 102 can discard the received payment message because the corresponding transaction was already published on the blockchain.
[0027] In other embodiments, when the first device 106 electronically transmits the payment message to the second device 108, the first device 106 may automatically delete any local data storage of the payment message, the issuance transfer message, and the first transfer message.
[0028] For simplicity, blockchain transactions discussed herein refer to the transfer of the full amount of cryptocurrency associated with the preceding blockchain transaction. In cases where not all of the cryptocurrency associated with the preceding blockchain transaction is transferred (e.g., if the transferor holds some currency), subsequent blockchain transactions may include additional destination addresses associated with the transferor's blockchain wallet, and this will be reflected appropriately in the transfer message.
[0029] In some cases, the second device 108 may receive a payment message from the first device 106 and may be interested in performing another offline transfer before connecting to the blockchain network 104. In such a case, the second device 108 may be interested in transferring the received cryptocurrency to a third device 110. In such a case, the second device 108 may receive an identification of the third device 110, such as a destination blockchain address or a public key of a cryptographic key pair associated with the third device's blockchain wallet. The second device 108 may generate a transfer message for the new blockchain transaction (referred to as a second transfer message). The second transfer message may include the amount of cryptocurrency to be transferred, an identification of the third device 110, and a digital signature generated by the second device 108 using the private key of its cryptographic key pair. The second device 108 can add the second transfer message to the payment message, either by inserting the second transfer message into a data container, or by extracting the issuance transfer message and the first transfer message from the payment message to create a new payment message that includes the issuance transfer message and the first and second transfer messages. The second device 108 can then electronically transmit the payment message to the third device 110 using an appropriate communication method.
[0030] The third device 110 can receive the payment message from the second device 108 and can either continue to transfer the cryptocurrency in a future offline transfer or connect to the blockchain network 104 and have the offline transfer added to the blockchain using the process described above. In some cases, the second device 108 can automatically delete the payment message and all local transfer messages after the payment message is sent to the third device 110.
[0031] In other cases, the payment message may be held by any of the participating computing devices and may be electronically transmitted to a blockchain node 102 in the blockchain network 104. In such cases, upon receiving the payment message, the blockchain node 102 may determine whether any offline transfers indicated in the transfer message have already been published on the blockchain. For example, in one example, the second device 108 may make an offline transfer to a third device 110. The first device 106 may then connect to the blockchain node 102 and transmit its payment message, which includes the issuance transfer message and the first transfer message. The blockchain node 102 may determine that the corresponding transaction has not yet been published on the blockchain and may add the transaction to the blockchain using the process described above. The third device 110 may then connect to the blockchain node 102 and transmit its payment message, which includes the issuance transfer message, the first transfer message, and the second transfer message. The blockchain node 102 can verify each transfer message and can determine that a first offline transfer from the first device 106 to the second device 108 corresponding to the first transfer message has already been published on the blockchain, but that a second offline transfer has not. The blockchain node 102 can then add a new transaction corresponding to the second transfer to the blockchain. As a result, cryptocurrency can be continuously transferred via offline transactions, and the blockchain is updated as any participating devices connect to the blockchain network 104.
[0032] In some embodiments, first device 106, second device 108, and third device 110 may utilize a secure element or other form of secure data storage for storage of cryptographic keys, transfer messages, payment messages, and other data used to perform the functions described herein (e.g., application programs for blockchain wallets, etc.). The secure element or secure data storage may be a separate hardware data store or a partitioned section of other data storage that is accessible only by trusted applications and not to all other applications. In these embodiments, a user may not be authorized to access any data stored within the secure element, while still being able to utilize the data stored there via a trusted application, such as a blockchain wallet. In such cases, this may prevent a user (e.g., of second device 108 or third device 110) from verifying any data about a prior offline transfer, thus maintaining a high level of privacy for all entities involved. It also ensures forced deletion of payment or transfer messages, where applicable, without requiring user intervention.
[0033] In such embodiments, the first device 106, the second device 108, and / or the third device 110 may communicate with each other using a secure communication channel, which may utilize any protocol, encryption, and other techniques sufficient for secure communication. By way of example, messages sent from the first device 106 to the second device 108 may utilize Transport Layer Security (TLS) or another suitable type of encrypted channel. In some embodiments, messages may be sent using such a secure communication channel directly from the secure data storage of the first device 106 to the secure data storage of the second device 108. Therefore, in such cases, the messages, in addition to being data stored in the secure data storage, are not available to the device users.
[0034] The described method enables offline transfer of cryptocurrency through the use of signed transfer messages and allows for proper verification by blockchain nodes 102. As a result, entities can transfer blockchain cryptocurrency offline without constraints and without sacrificing the accuracy, immutability, and verifiability of the blockchain. Additionally, by using a secure element or other secure data storage on the computing device, a high level of privacy can be maintained for offline transfers by making data about any prior transfers inaccessible to the user, while still ensuring the accuracy of the offline transfer. Thus, the described method and system provide a technical improvement over existing blockchain networks 104 and systems.
[0035] Computing Device 2 illustrates an embodiment of a computing device 200 that may be used as a blockchain node 102, a first device 106, a second device 108, or a third device 110 in system 100. The embodiment of computing device 200 illustrated in FIG. 2 is provided by way of example only and may not be an exhaustive list of all possible configurations of computing device 200 suitable for performing the functions of the present disclosure. For example, computer system 500 illustrated in FIG. 5 and described in more detail below may be a suitable configuration of computing device 200.
[0036] The computing device 200 may include a receiving device 202. The receiving device 202 may be configured to receive data over one or more networks via one or more network protocols. In some examples, the receiving device 202 may be configured to receive data from the blockchain node 102, the first device 106, the second device 108, the third device 110, the issuing system 112, and other systems and entities via one or more communication methods, such as radio frequency, a local area network, a wireless area network, a cellular communication network, Bluetooth, the Internet, etc. In some embodiments, the receiving device 202 may include multiple devices (e.g., different receiving devices receiving data over different networks (e.g., a first receiving device receiving data over a local area network and a second receiving device receiving data over the Internet)). The receiving device 202 may receive a transmitted electronic data signal, whereby upon receipt of the data signal by the receiving device 202, data may be superimposed on the data signal and may be decoded, parsed, read, or otherwise obtained. In some embodiments, the receiving device 202 may include an analysis module for analyzing the received data signal to obtain data superimposed thereon. For example, the receiving device 202 may include an analysis program configured to receive and convert the received data signal into usable input for functions performed by the processing device to implement the methods and systems of the present disclosure.
[0037] The receiving device 202 can be configured to receive data signals electronically transmitted by a blockchain node 102, which may be superimposed or encoded with a new blockchain transaction, a blockchain transaction verification, a confirmation message, a response message, a new block, a block reference value, a public key, an issuance transfer message, or data related thereto. The receiving device 202 can be configured to receive data signals electronically transmitted by the first device 106, the second device 108, and the third device 110, which may be superimposed or encoded with a payment message, a public key, a destination address, or other data described herein. The receiving device 202 can also be configured to receive data signals electronically transmitted by the issuing system 112, which may be superimposed or encoded with a cryptographically signed issuance transfer message, a public key, or other data described herein.
[0038] Computing device 200 may also include a communications module 204. Communications module 204 may be configured to transfer data between modules, engines, databases, memory, and other components of computing device 200 for use in performing the functions of the present disclosure. Communications module 204 may include one or more communication types and may use various communication methods for communication within the computing device. For example, communications module 204 may include a bus, a contact pin connector, wires, etc. In some embodiments, communications module 204 may also be configured to communicate between internal components of computing device 200 and external components of computing device 200 (e.g., externally connected databases, display devices, input devices, etc.). Computing device 200 may also include a processing unit. The processing unit may be configured to perform the functions of computing device 200 of the present disclosure. In some embodiments, the processing unit may include multiple engines and / or modules (e.g., query module 214, generation module 216, validation module 218, etc.) specifically configured to perform one or more functions of the processing unit. As in this disclosure, the term "module" may refer to software or hardware that is specifically programmed to receive input, perform one or more operations using the input, and provide an output. The inputs, outputs, and operations performed by the various modules will be apparent based on this disclosure.
[0039] Computing device 200 may also include memory 206. Memory 206 may be configured to store data (e.g., public keys, private keys, symmetric keys, etc.) for use by computing device 200 in performing the functions of the present disclosure. Memory 206 may be configured to store data using any suitable data formatting methodology and schema and may be any suitable type of memory (e.g., read-only memory, random access memory, etc.). Memory 206 may include, for example, cryptographic keys and algorithms, communication protocols and standards, data formatting standards and protocols, program code for modules and processing unit application programs, and other suitable data used by computing device 200 in performing the functions of the present disclosure, as will be appreciated. In some embodiments, memory 206 may include a relational database using Structured Query Language (SQL) to store, identify, modify, update, access, etc., stored structured data sets. Memory 206 may be configured to store, for example, cryptographic keys, salts, nonces, communication information for blockchain nodes 102 and blockchain network 104, address generation and verification algorithms, digital signature generation and verification algorithms, hashing algorithms, transfer message generation rules, payment messages, etc. In some cases, memory 206 may include a secure element 208 or other secure data storage, which may be part of memory 206 or separate from memory 206. Secure element 208 may be used to store data used by computing device 200 in performing the functions herein, which may include, for example, a blockchain wallet application program, cryptographic keys, transfer messages, payment messages, etc.
[0040] Computing device 200 may also include input device(s) 210. Input device(s) 210 may be configured to receive input from a user of computing device 200 or from another source, such as a device interfaced with computing device 200 via input device 210, for example, a keyboard, mouse, microphone, touchscreen, etc. Input device 210 may be requested to receive data via this interface, which may be transmitted to another device or component within computing device 200 via communications module 204. For example, input device 210 may be configured to receive input from a user of computing device 200 via a touchscreen and may handle the selection of a cryptocurrency transfer amount or the selection of another computing device 200 from a list of available computing devices to use for transmitting a payment message.
[0041] Computing device 200 may also include display device 212. Display device 212 may be configured to display data to a user of computing device 200 via any suitable type of display, such as an LCD, a thin film transistor display, an LED display, etc. Display device 212 may receive data from another device or module of computing device 200, such as via communications module 204, and may display the data to a user of computing device 200 via a user interface. For example, display device 212 may display a user interface for use by a user of computing device 200 in making selections regarding offline transfers of cryptocurrency, which may be received via input device 210.
[0042] The computing device 200 may also include a query module 214. The query module 214 may be configured to perform a query on a database to identify information. The query module 214 may receive one or more data values or query strings and, based thereon, may perform the query string on an indicated database (e.g., memory 206 of the computing device 200) to identify information stored therein. The query module 214 may then output the identified information to an appropriate engine or module of the computing device 200 as needed. For example, the query module 214 may perform a query on the secure element 208 to identify an issuing public key to be used in verifying a received issuing transfer message.
[0043] Computing device 200 may also include a generation module 216. Generation module 216 may be configured to generate data for use by computing device 200 in performing the functions of the present disclosure. Generation module 216 may receive instructions as input, generate data based on the instructions, and output the generated data to one or more modules of computing device 200. For example, generation module 216 may be configured to generate proposal messages, confirmation messages, digital signatures, data signals, key pairs, block headers, blocks, transfer messages, payment messages, destination addresses, etc.
[0044] Computing device 200 may also include a validation module 218. Validation module 218 may be configured to perform validation on computing device 200 as part of the functionality of the present disclosure. Validation module 218 may receive as input instructions, which may include data to be used in performing the validation, perform the validation on demand, and output the results of the validation to another module or engine of computing device 200. Validation module 218 may be configured, for example, to: verify digital and cryptographic signatures using appropriate signature generation algorithms and keys, verify transaction values, verify transfer messages, and other data as described herein.
[0045] The computing device 200 may also include a transmitting device 220. The transmitting device 220 may be configured to transmit data over one or more networks via one or more network protocols. In some examples, the transmitting device 220 may be configured to transmit data to the blockchain node 102, the first device 106, the second device 108, the third device 110, the issuing system 112, and other entities via one or more communication methods, such as a local area network, a wireless area network, cellular communication, Bluetooth, radio frequency, the Internet, etc. In some embodiments, the transmitting device 220 may include multiple devices (e.g., different transmitting devices for transmitting data over different networks (e.g., a first transmitting device transmitting data over a local area network and a second transmitting device transmitting data over the Internet)). The transmitting device 220 may electronically transmit a data signal having superimposed data, the data being analyzed by a receiving computing device. In some embodiments, the transmitting device 220 may include one or more modules for superimposing, encoding, or formatting data into a data signal suitable for transmission.
[0046] The sending device 220 can be configured to electronically send a data signal to the blockchain node 102, which can be superimposed or encoded with a new blockchain transaction, a verification of a blockchain transaction, a confirmation message, a reply message, a new block, a block reference value, a public key, an issuance transfer message or data related thereto, a payment message, etc. The sending device 220 can also be configured to electronically send a data signal to the first device 106, the second device 108, and the third device 110, which can be superimposed or encoded with a transfer message, a payment message, a request for a public key or a destination address, etc. The sending device 220 can also be configured to electronically send a data signal to the issuing system 112, which can be superimposed or encoded with a request for an issuance transfer message, which can include, for example, a public key, a digital signature, or other data.
[0047] A process that facilitates offline transfers of cryptocurrency 3A and 3B illustrate a process for facilitating offline transfer of blockchain cryptocurrency in system 100, where the transfer occurs from a first device 106 to a second device 108 and then to a third device 110.
[0048] At S302, the receiving device 202 of the first device 106 may receive an issuance transfer message from the issuing system 112 or blockchain node 102. The issuance transfer message may be a cryptographically signed transfer message associated with a transfer of cryptocurrency to the first device 106 that has been published on a blockchain associated with the blockchain network 104. At S304, the verification module 218 of the first device 106 may verify the cryptographic signature of the issuance transfer message via the issuance public key, which may be stored, for example, within the secure element 208 of the first device 106. If the verification is successful, the issuance transfer message may be stored within the secure element 208 until used by the first device 106.
[0049] If the user of the first device 106 is interested in making an offline transfer, the first device 106 may receive data related to the offline transfer as input. In optional S306, the second device 108 may electronically transmit the public key of its cryptographic key pair to the first device 106 via the sending device 220 using an appropriate communication method, which may be received by the receiving device 202 of the first device 106. In S308, the first device 106 may receive (via the input device 210 and / or the receiving device 202) the input data corresponding to the offline transfer, which may include at least the following: the amount of cryptocurrency, the public key of the second device 108, or, if optional S306 is not performed and the public key of the second device 108 is not received, another identifier generated by and associated with the first device 106 or elsewhere, and an indication that this is the offline transfer associated with the received issuance transfer message.
[0050] At S310, the generation module 216 of the first device 106 can generate a first transfer message for the offline transfer. The transfer message can include at least the cryptographic currency amount and an identification associated with the second device 108. At S312, the generation module 216 of the first device 106 can generate a digital signature for the offline transfer, which can be generated using a private key of the first device 106's cryptographic key pair and can be appended to the transfer message or can be a cryptographic signature of the transfer message itself. At S314, the sending device 220 of the first device 106 can electronically send the issuance transfer message and the first transfer message to the second device 108 using an appropriate communication method. In some cases, the issuance transfer message and the first transfer message can first be wrapped in a data container (referred to as a payment message) before sending to the second device 108. In some embodiments, the first device 106 can delete the transfer message from the secure element 208 after sending.
[0051] At S316, the receiving device 202 of the second device 108 may receive the issuance transfer message (e.g., in a payment message) and the first transfer message from the first device 106. If the user of the second device 108 is interested in making an offline transfer, the second device 108 may receive data related to the offline transfer as input. At optional S318, the third device 110, via the sending device 220, may electronically send the public key of its cryptographic key pair to the second device 108 using an appropriate communication method, which may be received by the receiving device 202 of the second device 108. In S320, the second device 108 may receive (via the input device 210 and / or the receiving device 202) input data corresponding to the offline transfer, which may include at least the following: the amount of cryptocurrency, the public key of the third device 110 or other identifier generated by and associated with the second device 108 or elsewhere if optional S318 is not performed and the public key of the third device 110 is not received, and an indication that this is an offline transfer associated with the received issuance transfer message.
[0052] At S322, the generation module 216 of the second device 108 can generate a first transfer message for the offline transfer. The transfer message can include at least the cryptographic currency amount and an identification associated with the third device 110. At S324, the generation module 216 of the second device 108 can generate a digital signature for the offline transfer, which can be generated using a private key of the second device 108's cryptographic key pair and can be appended to the transfer message or a cryptographic signature of the transfer message itself. At S326, the sending device 220 of the second device 108 can electronically send the issuance transfer message, the first transfer message, and the second transfer message to the third device 110 using an appropriate communication method. In some cases, the transfer messages can first be wrapped in a payment message before sending to the third device 110. In some embodiments, the second device 108 can delete the transfer message from the secure element 208 after sending.
[0053] At S328, the receiving device 202 of the third device 110 may receive the issuance transfer message, the first transfer message, and the second transfer message (e.g., in a payment message) from the second device 108. At S330, the third device 110 may establish communication with a blockchain node 102 in the blockchain network 104 using any suitable method. At S322, the sending device 220 of the third device 110 may upload the payment message to the blockchain node 102. The blockchain node 102 may receive the payment message, verify the included transfer message, and cause the offline transfer to be published on the blockchain as a new blockchain transaction. In some embodiments, the third device 110 may delete the payment message from the secure element 208 of the third device 110 once the data is uploaded to the blockchain node 102.
[0054] Exemplary methods for facilitating offline cryptocurrency transfers FIG. 4 illustrates a method 400 for processing cryptocurrency transfers offline via signed transfer messages.
[0055] At S402, a first transfer message may be received by a receiver (e.g., receiving device 202) of a computing device (e.g., computing device 200), where the first transfer message is cryptographically signed using a first private key of a first key pair. At S404, the cryptographic signature of the first transfer message may be verified by a processor (e.g., verification module 218) of the computing device using a first public key of the first key pair. At S406, the verified first transfer message may be stored in a memory (e.g., memory 206 or secure element 208) of the computing device. At S408, a transfer instruction may be received by an input device (e.g., input device 210) of the computing device, where the transfer instruction includes at least a communication address. At S410, the verified first transfer message may be electronically transmitted by a transmitter (sending device 220) of the computing device to an external device (e.g., another computing device 200) based at least on the communication address.
[0056] In one embodiment, the memory may be a secure element. In some embodiments, the memory may be inaccessible by a user of the computing device. In some embodiments, method 400 further includes generating, by a processor of the computing device (e.g., generation module 216), a second transfer message, the second transfer message including at least a payment amount, a destination reference, and a reference to the first transfer message, and electronically transmitting the verified first transfer message to the external device further includes transmitting the generated second transfer message to the external device. In a further embodiment, method 400 may also include cryptographically signing, by a processor of the computing device (e.g., generation module 216), the generated second transfer message using a second private key of a second key pair. In another further embodiment, the destination reference and the payment amount may be included in the received transfer instruction. In another further embodiment, the destination reference may be a second public key of the second key pair. In a further embodiment, method 400 may further include receiving, by a receiver of the computing device, the second public key from the external device.
[0057] Computer System Architecture FIG. 5 illustrates a computer system 500, in which embodiments of the present disclosure, or portions thereof, may be implemented as computer-readable code. For example, the blockchain node 102, the first device 106, the second device 108, the third device 110, and the issuing system 112 of FIG. 1, or the computing device 200 of FIG. 2, may be implemented in the computer system 500 using hardware, a non-transitory computer-readable medium having stored instructions, or a combination thereof, and may be implemented in one or more computer systems or other processing systems. The hardware may embody modules and components used to implement the methods of FIGS. 3A, 3B, and 4.
[0058] Where programmable logic is used, such logic may be executed on commercially available processing platforms configured with executable software code, and may be special-purpose or dedicated devices (e.g., programmable logic arrays (PGAs), application-specific integrated circuits (ASICs), etc.). Embodiments of the disclosed subject matter may be implemented in a variety of computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, distributed functionality linked or clustered computers, and general-purpose or miniature computers that may be implemented in virtually any device. For example, at least one processor unit and memory may be used to implement the embodiments.
[0059] A processor unit or device of the present disclosure may be a single processor, multiple processors, or a combination thereof. A processor device may have one or more processor “cores.” The terms “computer program medium,” “non-transitory computer-readable medium,” and “computer-usable medium” of the present disclosure are used generally to refer to tangible media (e.g., removable storage unit 518, removable storage unit 522, and a hard disk installed in hard disk drive 512, etc.).
[0060] Various embodiments of the present disclosure are described with respect to this exemplary computer system 500. After reading this disclosure, it will become apparent how to implement the present disclosure using other computer systems and / or computer architectures. While operations are disclosed as sequential processes, some operations may in fact be performed in parallel, concurrently, and / or in distributed environments, where program code is stored locally or remotely for access by uniprocessor or multiprocessor machines. Furthermore, in some embodiments, the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.
[0061] The processor unit 504 may be a special-purpose or general-purpose processor unit specially configured to perform the functions of the present disclosure. The processor unit 504 may be connected to a communications infrastructure 506 (e.g., a bus, a message queue, a network, a multi-core message passing scheme, etc.). The network may be any network suitable for performing the functions of the present disclosure and may include a local area network (LAN), a wide area network (WAN), a wireless network (e.g., Wi-Fi), a mobile communications network, a satellite network, the Internet, fiber optics, coaxial cable, infrared, radio frequency (RF), or any combination thereof. Other suitable network types and configurations will appear appropriate from the description herein. The computer system 500 may also include a main memory 508 (e.g., random access memory, read-only memory, etc.) and may also include a secondary memory 510. The secondary memory 510 may include a hard disk drive 512 and a removable storage drive 514 (e.g., a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, etc.).
[0062] Removable storage drive 514 may read from and / or write to removable storage unit 518 in a well-known manner. Removable storage unit 518 may include a removable storage medium that can be read from and written to by removable storage drive 514. For example, if removable storage drive 514 is a floppy disk drive or a USB port, removable storage unit 518 may be a floppy disk or a portable flash drive, respectively. In one embodiment, removable storage unit 518 may be a non-transitory readable recording medium.
[0063] In some embodiments, secondary memory 510 may include alternative means for allowing computer programs or other instructions to be loaded into computer system 500 (e.g., removable storage unit 522 and interface 520). Examples of such means may include program cartridges and cartridge interfaces (e.g., found in video game systems), removable memory chips (e.g., EEPROM, PROM, etc.) and associated sockets, other removable storage units 522 and interfaces 520.
[0064] Data stored in computer system 500 (e.g., in main memory 508 and / or secondary memory 510) may be stored on any type of suitable computer-readable medium, such as optical storage (compact disc, digital versatile disc, Blu-ray disc, etc.) or magnetic tape storage (e.g., hard disk drive). The data may be organized in any type of suitable database structure, such as a relational database, a structured query language (SQL) database, a distributed database, an object database, etc.
[0065] Computer system 500 may also include a communications interface 524. Communications interface 524 may allow software and data to be sent and received between computer system 500 and external devices. Exemplary communications interface 524 may include a modem, a network interface (e.g., an Ethernet card), a communications port, a PCMCIA slot and card, etc. The software and data transferred via communications interface 524 may be in the form of signals. The signals may be electronic, electromagnetic, optical, or other suitable signals. The signals propagate through communications path 526. The paths are configured to carry the signals and may be implemented using wire, cable, fiber optics, a telephone line, a cellular phone link, a radio frequency link, etc.
[0066] Computer system 500 may further include a display interface 502. Display interface 502 may be configured to allow data to be transferred between computer system 500 and an external display 530. Exemplary display interfaces 502 may include a high-definition multimedia interface (HDMI), a digital visual interface (DVI), a video graphics array (VGA), etc. Display 530 may be any suitable type of display for displaying data transferred via display interface 502 of computer system 500, including a cathode ray tube (CRT) display, a liquid crystal display (LCD), a light-emitting diode (LED) display, a capacitive touch display, a thin-film transistor (TFT) display, etc.
[0067] The computer program medium and computer usable medium may refer to memory (e.g., main memory 508 and secondary memory 510), which may be semiconductor memory (such as DRAM). These computer program products may be means for providing software to computer system 500. Computer programs (e.g., computer control logic) may be stored in main memory 508 and / or secondary memory 510. Computer programs may also be received via communications interface 524. Such computer programs, when executed, may enable computer system 500 to perform methods of the present disclosure. In particular, when executed, computer programs may enable processor unit 504 to implement the methods illustrated in FIGS. 3A, 3B, and 4 as described herein. Such computer programs therefore represent the controller of computer system 500. The present disclosure is implemented using software. The software may be stored in a computer program product and loaded into computer system 500 using removable storage drive 514, interface 520, and hard disk drive 512 or communications interface 524.
[0068] The processor unit 504 may include one or more modules or engines configured to perform the functions of the computer system 500. Each module or engine may be implemented using hardware, or in some embodiments, software (e.g., corresponding to program code or programs stored in the main memory 508 or the secondary memory 510). In such embodiments, the program code may be compiled by the processor unit 504 (e.g., by a compilation module or engine) before execution by the hardware of the computer system 500. For example, the program code may be source code written in a programming language (e.g., assembly language or machine code) that is translated into a lower-level language for execution by the processor unit 504 and / or any additional hardware components of the computer system 500. The compilation process may include the use of lexical analysis, preprocessing, syntactic analysis, semantic analysis, syntax-driven translation, code generation, code optimization, or any other techniques suitable for translating program code into a lower-level language for control of the computer system 500 to perform the functions of the present disclosure. Such processing may result in computer system 500 being a specially configured computer system 500 uniquely programmed to perform the functions described above.
[0069] Technology consistent with the present disclosure provides, among other features, systems and methods for processing cryptocurrency transfers offline. While various exemplary embodiments of the systems and methods of the present disclosure have been described above, it should be understood that they are presented by way of example only, and not by way of limitation. They are not exhaustive and do not limit the disclosure to the precise form disclosed. Modifications and variations are possible in light of the above teachings. Modifications and variations may be obtained from implementations of the present disclosure without departing from the scope or spirit of the disclosure.
Claims
1. 1. A method for processing cryptocurrency transfers offline, comprising: communicating, by a transmitter of a computing device, with a blockchain node in a blockchain network to request a cryptographically signed first transfer message; receiving, by a receiver of the computing device, the first transfer message from the blockchain node, the first transfer message being cryptographically signed by the blockchain node using a first private key of a first key pair and associated with a transfer of cryptocurrency to the computing device that has been published on a blockchain associated with the blockchain network; verifying, by a processor of the computing device, the cryptographic signature of the first transfer message using a first public key of the first key pair stored in a memory of the computing device to determine whether the first transfer message is valid; upon determining that the first transfer message is valid, storing the verified first transfer message in the memory of the computing device; receiving, by an input device of the computing device, a transfer instruction including at least a communication address for transferring the cryptocurrency; generating, by the processor of the computing device, a second transfer message, the second transfer message including at least a payment amount, a destination reference, and a reference to the first transfer message; generating, by the processor of the computing device, a data container by wrapping the stored first relocation message and the stored second relocation message; electronically transmitting, by the transmitter of the computing device, the data container to an external device based at least on the communication address; A method comprising:
2. 2. The method of claim 1, wherein the destination reference and the payment amount are included in the received transfer instruction.
3. 2. The method of claim 1, wherein the destination reference is a second public key of a second key pair.
4. The method of claim 3 further comprising: receiving, by the receiver of the computing device, the second public key from the external device.
5. The method of claim 1 further comprising: cryptographically signing, by the processor of the computing device, the generated second transfer message using a second private key of a second key pair.
6. The method of claim 1 , wherein the memory is a secure element.
7. 10. The method of claim 1, wherein the memory is not accessible by a user of the computing device.
8. A system for processing cryptocurrency transfers offline, Blockchain network and An external device; 1. A computing device comprising: a transmitter communicating with a blockchain node in the blockchain network to request a cryptographically signed first transfer message; a receiver that receives the first transfer message from the blockchain node, the first transfer message being cryptographically signed by the blockchain node using a first private key of a first key pair and associated with a transfer of cryptocurrency to the computing device that has been published on a blockchain associated with the blockchain network; and a processor that verifies the cryptographic signature of the first transfer message using a first public key of the first key pair to determine whether the first transfer message is valid; a memory that stores the verified first transfer message upon determining that the first transfer message is valid, the first public key of the first key pair being stored in the memory; and an input device for receiving a transfer instruction including at least a communication address for transferring the cryptocurrency; The processor of the computing device generating a second transfer message, the second transfer message including at least a payment amount, a destination reference, and a reference to the first transfer message; generating a data container by wrapping the stored first relocation message and the stored second relocation message; The transmitter electronically transmits the data container to an external device based at least on the communication address.
9. 9. The system of claim 8, wherein the destination reference and the payment amount are included in the received transfer instruction.
10. 9. The system of claim 8, wherein the destination reference is a second public key of a second key pair.
11. 11. The system of claim 10, wherein the receiver of the computing device receives the second public key from the external device.
12. 10. The system of claim 8, wherein the processor of the computing device cryptographically signs the generated second transfer message using a second private key of a second key pair.
13. 10. The system of claim 8, wherein the memory is a secure element.
14. 9. The system of claim 8, wherein the memory is not accessible by a user of the computing device.
Citation Information
Patent Citations
Data structures for efficient data validation
JP2023501905A
Voice ticketing
US20100099391A1
Method and system for secure and verifiable offline blockchain transactions
US20210012331A1
Data structure for efficiently verifying data
WO2021079224A1