Systems and methods for blockchain dependent operation sets
By receiving multiple operation requests, generating temporary blockchain addresses, obtaining conversion factors, recording blockchain transactions in the blockchain, and processing related second transactions after transaction verification, solving the execution dependency in the existing technology Due to the low efficiency of blockchain operation sets, an efficient authorization and confirmation mechanism is achieved.
Patent Information
- Application Number
- CN202411351482.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2017-07-18
- Filing Date
- 2018-07-17
- Publication Date
- 2025-02-07
AI Technical Summary
The prior art is difficult to effectively execute blockchain-dependent operation sets, especially when exchanging mixed asset types, and lacks efficient authorization mechanisms and transaction confirmation mechanisms.
By receiving multiple operation requests, a temporary blockchain address is generated, a conversion factor is obtained, a blockchain transaction is recorded in the blockchain, and the related second transaction is processed after the transaction verification is performed, and the transaction efficiency is improved by insertion change. and privacy protection.
It realizes effective authorization and confirmation of blockchain transactions, improves operational efficiency and privacy protection, and ensures irrevocable transactions and quick notifications.
Smart Images

Figure CN119398918A_ABST
Abstract
Description
[0001] This application is a divisional application of the patent application with Chinese application number 201880048226.5 (PCT international application number PCT / IB2018 / 055281), application date July 17, 2018, and name “System and method for a set of operations relying on blockchain”. Technical Field
[0002] The present disclosure generally relates to systems and methods for performing a set of operations, the set of operations including at least one distributed ledger transaction, where other operations including other transaction types are dependent on the distributed ledger transaction. The present invention is particularly suitable for, but not limited to, use in exchanging hybrid asset types.
[0003] CROSS-REFERENCE TO RELATED APPLICATIONS
[0004] This application claims the benefit of South African Provisional Application No. 2017 / 04853 filed on July 18, 2017. Background Art
[0005] In this document, the term "blockchain" is used to cover all forms of computer-based electronic distributed ledgers. These electronic distributed ledgers include consensus-based blockchain and transaction chain technologies, permissioned and unpermissioned ledgers, shared ledgers and their variants. Although specific blockchains may be mentioned herein for convenience and illustration purposes, it should be noted that the present invention is not limited to use with specific blockchains. Other blockchain implementations and protocols are also within the scope of the present invention.
[0006] A blockchain is a peer-to-peer electronic ledger that is a decentralized, distributed computer-based system that consists of blocks, which in turn consist of transactions. Each transaction is a data structure that encodes the transfer of control of digital assets between participants in the blockchain system and includes at least one input and at least one output. Each block includes a hash of the previous block, and the blocks are linked together to create a permanent, unchangeable record of all transactions written to the blockchain since its inception. Transactions include small programs called scripts embedded in their inputs and outputs that specify how and by whom the outputs of the transaction can be accessed. These scripts are written using a stack-based scripting language.
[0007] In order for a transaction to be written to the blockchain, it must be validated. Network nodes perform this work to ensure that each transaction is valid and to reject invalid transactions in the network. The software client installed on the node performs this validation work on the unspent transactions (UTXO) by executing its lock and unlock script functions. If the execution of the lock and unlock scripts evaluates to true, then the transaction is valid and it is written to the blockchain. Therefore, in order for a transaction to be written to the blockchain, the transaction must: i) be validated by the first node that receives the transaction - if the transaction passes validation, the node relays it to other nodes in the network; ii) be added to a new block; and iii) be mined, i.e., added to the public ledger of past transactions.
[0008] Digital entrepreneurs have begun exploring the use of cryptographically secure systems and data that can be stored on blockchain to implement new systems. It would be very advantageous if blockchain could be used to automate tasks and processes. Such solutions would be able to leverage the advantages of blockchain (e.g. permanent tamper-proof records of events, distributed processing, etc.) and be more versatile in applications. Summary of the invention
[0009] The present invention provides methods, systems, and computer program products.
[0010] According to the present invention, a computer-implemented method can be provided, comprising: receiving a request to initiate multiple operations, the request comprising a first value and an identifier of a first entity, the multiple operations comprising a blockchain transaction and a second transaction of a different type from the blockchain transaction; generating a blockchain address temporarily associated with the identifier in a data store; obtaining from a service a conversion factor for converting the first value to a second value to be used in the blockchain transaction; causing the blockchain transaction to be recorded in a blockchain, wherein the blockchain transaction uses the generated blockchain address and an inserted change address; validating the blockchain transaction; and after the blockchain transaction has been validated, causing the second transaction to be processed based at least in part on the first value.
[0011] Using a blockchain (i.e., a distributed ledger) in the above approach can provide many advantages, including providing an efficient authorization mechanism for operations based on first transactions. This is partly because such verification mechanisms can be more easily determined to be irreversible than other transaction types.
[0012] Using drop-in change addresses can also provide many advantages. For example, drop-in change addresses can be created without waiting for confirmation, allowing operations to be performed efficiently. In addition, using drop-in change addresses can provide detailed transaction data to both parties of the transaction, assuring both parties that the transaction is irreversible, while also preventing the transaction records of the parties from being published. The drop-in change address is a blockchain address and therefore inherits the properties of the blockchain, such as irreversibility. Using drop-in change addresses can also determine that a transaction has been entered into the blockchain more quickly than other techniques, such as for waiting for the block containing the transaction to be mined (added to the public ledger of past transactions).
[0013] The method may also include sending a notification that a third transaction may be performed after the blockchain transaction has been verified. The plurality of operations may include related subordinate transactions that may be performed after determining that the first transaction is irrevocable. This determination may be made efficiently using the techniques described herein, which then always links the third transaction to the previous transaction, thereby avoiding undue delays that may be encountered when using other techniques.
[0014] The method also includes obtaining an identifier of the first entity from a visual code scanned by a device controlled by the second entity. This provides the advantage of allowing the second entity to conveniently initiate an operation and also provides a convenient mechanism for the second entity to confirm the identity of the first entity before initiating a transaction.
[0015] The method may further comprise sending the request from a point of sale device controlled by the first entity.This may be advantageous for a number of reasons, including providing a convenient mechanism for the first entity to initiate an operation.
[0016] The method may further include sending the request from a point of sale device controlled by the first entity in response to an electronic communication from a device controlled by a second entity. This is advantageous for a number of reasons, including providing a convenient mechanism for a second entity to initiate an operation while providing notification to the first entity that an operation has been initiated.
[0017] The method may also include validating the blockchain transaction by identifying other blockchain transactions including identifying other blockchain transactions that assign changes to the blockchain transaction to the intervening change address. Using the intervening change address in this operation can more efficiently confirm blockchain transactions. This has many advantages, including making it more feasible for other transactions to depend on the blockchain transaction and enabling faster notification of entity transaction success.
[0018] The method may further comprise publishing the blockchain transaction, and verifying the blockchain transaction comprises completion of the publishing. Thus, the verification step may be accomplished by initiating the transaction while acting as a distributed ledger node or interfacing with a distributed ledger node. In various embodiments, the transaction module may act as a distributed ledger node or interface with a distributed ledger node to publish the blockchain transaction. By controlling the publication of the distributed ledger node, it may be determined that the transaction is in fact irrevocable even before the corresponding block is mined. In particular, it may be ensured that conflicting digital asset transfers are not permitted.
[0019] The method may also include: after performing the plurality of operations, the generated blockchain address will not be used in blockchain transactions. Using such a one-time address improves privacy protection for entities involved in the operation because the blockchain will not contain other entries directly linking the entities involved in the operation.
[0020] The method also includes a plurality of operations including other blockchain transactions that transfer the digital asset from the temporary address to the address provided by the service. The execution of the operation can realize the exchange of the digital asset with another asset type. In this way, the use of the provider of the conversion rate to obtain the outgoing transfer address can minimize the deviation between the obtained conversion rate and the actual conversion rate. In addition, it also helps to promote the automatic and time-limited selection of the execution of the exchange, thereby further minimizing the risk of deviation and improving the reliability and availability of the system.
[0021] The method may also include selecting the service from the plurality of services based at least in part on the service meeting at least one of a jurisdictional criterion or a geographic criterion. This may also reduce the risk of bias and improve the reliability and availability of the system, for example.
[0022] It is also contemplated to provide a system comprising at least one process processor; and a memory containing executable instructions which, when executed by the at least one processor, cause the system to perform any of the methods described above.
[0023] It is also contemplated to provide a non-state computer-readable storage medium having executable instructions stored thereon, wherein the executable instructions, after being executed by a processor of a computer system, cause the computer system to perform at least any one of the above methods.
[0024] According to the present invention, a computer-implemented method may be provided, the method comprising: receiving a request for initiating a plurality of operations, the request comprising information indicating a first value and an identifier of a first entity, the plurality of operations comprising a first blockchain transaction, a second blockchain transaction, and a third transaction of a type different from the first blockchain transaction and the second blockchain transaction; obtaining a first conversion factor from a first service associated with a first region; causing the first blockchain transaction to be recorded in a blockchain, wherein the first blockchain transaction indicates an incoming transfer of a certain amount of a digital asset based at least in part on the first amount and the first conversion factor; obtaining a second conversion factor from a second service associated with a second region; causing the second blockchain transaction to be recorded in the blockchain, wherein the second blockchain transaction indicates an outgoing transfer of the certain amount of the digital asset, wherein the outgoing transfer is exchanged with a second amount of a second asset type, the second amount being based at least in part on the amount of the digital asset and the second conversion factor; and initiating the third transaction based at least in part on the second amount of the second asset.
[0025] According to the present invention, a computer-implemented method for recording a transaction on a blockchain may be provided, the method comprising: receiving a request for initiating a plurality of operations, the request comprising information indicating a first value and an identifier of a first entity, the plurality of operations comprising a first blockchain transaction, a second blockchain transaction, and a third transaction of a type different from the first blockchain transaction and the second blockchain transaction; obtaining a first conversion factor from a first service associated with a first region; causing the first blockchain transaction to be recorded in a blockchain, wherein the first blockchain transaction indicates an incoming transfer of an amount of digital assets (i.e., the amount of digital assets) based at least in part on the first amount (first value) and the first conversion factor; obtaining a second conversion factor from a second service associated with a second region; and causing the second blockchain transaction to be recorded in the blockchain,
[0026] Optionally, the second blockchain transaction represents an outgoing transfer of the certain amount of digital assets, wherein the outgoing transfer is exchanged for a second amount of a second asset type, the second amount is based at least in part on the amount of the digital asset and the second conversion factor.
[0027] The method may also include initiating the third transaction based at least in part on the second amount of the second asset.
[0028] The method may also include initiating the third transaction in response to confirming the first transaction (first blockchain transaction) and the second transaction (second blockchain transaction) in the blockchain, wherein the confirmation is performed without determining that the first transaction and the second transaction are associated with a mined block in the blockchain. This enables operations to be performed with greater efficiency and overall speed because operations are not delayed while waiting for the current block to be mined.
[0029] The method also includes: the first transaction includes a generated blockchain address, wherein the generated blockchain address will not be used in the transaction after performing the plurality of operations. This helps to protect the privacy of the parties involved in the transaction.
[0030] The method also includes: the third transaction includes transferring at least a portion of the second amount of the second asset to a mobile money account. The use of a mobile money account provides a convenient way for the recipient entity to utilize the transferred asset. In addition, the mobile money account can use a phone number as an account identifier, thereby providing a convenient way to identify the recipient account.
[0031] The method also includes selecting the first service and the second service based at least in part on the service's conformance to at least one of a jurisdictional criterion or a geographic criterion. This has various advantages, including allowing identification of services that comply with local laws and regulations, and also reducing monetary risk and improving the accuracy of quoted conversion rates. In addition, dynamic selection (e.g., in response to initiating multiple operations) provides a number of advantages, such as minimizing the risk that the obtained conversion rate deviates from the actual conversion rate, and reducing the risk that the dynamically selected service is unable to participate in the exchange when requested.
[0032] The method also includes that the information indicating the first value includes an identifier of the credential. In some cases, the credential held by the second entity is presented to the first entity. The credential can be scanned by a mobile device, a point of sale terminal, or other device to obtain a credential identifier. The identifier is then sent with the request to initiate the plurality of operations. Using the identifier, the recipient of the request can look up any pre-selected or predetermined parameters related to the request in a database.
[0033] It is also contemplated to provide a system comprising at least one process processor; and a memory containing executable instructions, the at least one processor executing the executable instructions to cause the system to perform any one of the above methods.
[0034] It is also contemplated to provide a non-transitory computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor of a computer system, causes the computer system to perform at least any one of the above methods. BRIEF DESCRIPTION OF THE DRAWINGS
[0035] These and other aspects of the invention will become apparent and elucidated with reference to the embodiments described herein. Embodiments of the invention will now be described by way of example only and with reference to the accompanying drawings, in which:
[0036] Figure 1 A blockchain environment in which various embodiments may be implemented is shown;
[0037] Figure 2 A system for facilitating the transfer of assets between a source party and a recipient party is shown;
[0038] Figure 3 An example process for facilitating the transfer of assets between a source party and a recipient party is shown;
[0039] Figure 4 An example process for recording transactions in a distributed ledger is shown;
[0040] Figure 5 A system for facilitating the transfer of assets between a source party and a recipient party in different jurisdictions is shown;
[0041] Figure 6 An example process is shown that facilitates the transfer of assets between a source party and a recipient party in different jurisdictions. DETAILED DESCRIPTION
[0042] Systems, methods, and computer program products for performing multiple operations will now be described, wherein at least one of the multiple operations is a blockchain transaction and another operation is dependent on confirmation of the blockchain transaction. In various aspects and embodiments, the systems, methods, and computer program products described herein may further include techniques for confirming blockchain transactions.
[0043] In one example, a computer-implemented method for transferring assets between parties using a distributed ledger is provided. In one embodiment, a computer-implemented method is provided for providing legal tender (or some other asset type) to a recipient entity in exchange for a digital asset held by a source entity. A digital asset may refer to an asset associated with a blockchain. However, in some cases, a digital asset may refer to other asset types associated with a distributed ledger. The computer-implemented method employs a distributed ledger and associated architecture (e.g., a local exchange service) to provide greater convenience for utilizing digital assets, including in situations where a recipient entity is unable or unwilling to receive a transfer of a digital asset.
[0044] In another embodiment, a computer-implemented method is provided for exchanging assets in different regions using different asset types in each region. One application of the method is to allow a source entity to send a first type of legal tender to a recipient, which receives a second type of legal tender. The computer-implemented method utilizes a distributed ledger and an associated distributed ledger architecture (e.g., a local exchange service) to facilitate the exchange.
[0045] In another embodiment, a computer-implemented method for performing a series of interdependent operations, wherein at least one operation depends on irreversibility of a previous operation, is provided. The method may also depend on irreversibility being determined within a threshold time period.
[0046] First reference Figure 1 . Figure 1 An example blockchain network 100 associated with a blockchain according to an embodiment of the present disclosure is shown. A blockchain is just one example of a distributed ledger, although the two terms are sometimes used interchangeably. As used herein, a distributed ledger refers to a distributed data management system in which multiple computing devices (sometimes referred to as nodes) each maintain their own copy of the ledger. The ledger typically contains a record of a series of transactions. No single node includes the final copy of the ledger. Instead, transaction records recorded by any node are distributed to other nodes, which can also record the transaction, thereby achieving a consensus view of the ledger. The distributed ledger is also associated with digital assets. In particular, in various embodiments, digital assets are associated with creating verifiable blocks associated with ledger transactions.
[0047] In the illustrated embodiment, the example blockchain network 100 includes blockchain nodes implemented as peer-to-peer distributed electronic devices, each node running an instance of software and / or hardware that performs operations in accordance with a blockchain protocol that is agreed upon, at least in part, by respective operators of respective nodes 102. In some examples, a "node" refers to a peer-to-peer electronic device distributed among a blockchain network.
[0048] In some embodiments, node 102 may be comprised of any suitable computing device (e.g., a server in a data center, a client computing device (e.g., a desktop computer, a laptop computer, a tablet computer, a smartphone, etc.), a plurality of computing devices in a distributed system of a computing resource service provider, or any suitable electronic client device such as a computer). In some embodiments, node 102 has an input for receiving a data message or object representing a proposed transaction (e.g., transaction 104). In some embodiments, the node may be queried to obtain information maintained by it, for example, to obtain status information of transaction 104.
[0049] like Figure 1 As shown, some of the nodes 102 are communicatively coupled to one or more other nodes in the nodes 102. Such communicatively coupling may include one or more of wired or wireless communications. In an embodiment, each of the nodes 102 maintains at least a portion of a "ledger" of all transactions in the blockchain. In this way, the ledger is a distributed ledger. Transactions processed by a node that affects the ledger can be verified by one or more of the other nodes, thereby maintaining the integrity of the ledger.
[0050] With respect to which of the nodes 102 can communicate with which other nodes, it will be sufficient to state that each node in the example blockchain network 100 is capable of communicating with one or more of the other nodes in the nodes 102 so that a message passed between the nodes (assuming that the message is one that the blockchain protocol indicates should be forwarded) can propagate throughout the example blockchain network 100 (or a significant portion thereof). Such a message may be one of the nodes 102 (e.g., node 102A) publishing a proposed transaction, which message will then propagate along a path (e.g., path 106). Such a message may also be an announcement of a new block proposed for addition to the blockchain.
[0051] In an embodiment, at least some of the nodes 102 are nodes that perform complex computations (e.g., solve cryptographic problems). The node that solves the cryptographic problem creates a new block for the blockchain and broadcasts the new block to the other nodes in the nodes 102. The other nodes in the nodes 102 verify the work of the node that solves the cryptographic problem and incorporate the block into the blockchain after verification (e.g., by adding it to the distributed ledger of the blockchain). In some examples, a block is a group of transactions, typically marked with a timestamp and a "fingerprint" (e.g., a hash) of the previous block. In this way, each block is linked to the previous block, thereby creating a "chain" of linked blocks in the blockchain. In an embodiment, valid blocks are added to the blockchain through the consensus of the nodes 102. In addition, in some examples, the blockchain includes a list of verified blocks.
[0052] In an embodiment, at least some of the nodes 102 operate as validation nodes for validating transactions as described in the present disclosure. In some examples, the transaction includes data that provides proof of ownership of the digital asset and conditions for accepting or transferring ownership / control of the digital asset. In some examples, a "spending transaction" refers to a blockchain transaction that reassociates at least a portion of a digital asset (represented by an unspent transaction output (UTXO) of a previous transaction) with an entity associated with a blockchain address (e.g., transfers ownership or control). In some examples, a "previous transaction" refers to a blockchain transaction that includes a UTXO referenced by a spending transaction. A transaction (e.g., a spending transaction) may also specify a change address, which is a blockchain address of the UTXO assigned to the transaction. In some cases, the change address may be set to the owner of the asset being transferred so that the owner receives any unspent transaction outputs. However, the change address may also be set to direct control of ownership or changes at other locations.
[0053] In some embodiments, a transaction includes a "locking script" that blocks the transaction with some conditions that must be met in order for the transaction to transfer ("unlock") ownership / control.
[0054] In some embodiments, a blockchain address is a string of alphanumeric characters that is associated with an entity to which control of at least a portion of a digital asset is transferred or reassociated. In some embodiments implementing a blockchain protocol, there is a one-to-one correspondence between a public key associated with an entity and a blockchain address. In some embodiments, verification of a transaction includes verifying one or more conditions specified in a locking script and / or an unlocking script. Upon successful verification of transaction 104, the verification node adds transaction 104 to the blockchain and distributes it to nodes 102.
[0055] Figure 2 A system 200 is shown that facilitates the transfer of assets between a source party and a recipient party. For example, Figure 2 The illustrated example embodiment may be used to facilitate the transfer of assets in which a recipient entity 220 (e.g., a merchant) is paid for a product or service in fiat currency based on a digital asset held by a source entity 222 (e.g., a customer of the merchant). It will be appreciated that the examples are intended to be illustrative and thus should not be construed to limit the scope of the invention to only the specific examples provided.
[0056] The example system 200 may include a transfer module 202 that performs operations to facilitate the transfer of an asset from a source entity 222 to a recipient entity 220 using a distributed ledger 212. In an embodiment, the transfer module 202 includes a computing device, such as a non-transitory memory of the computing device having processor-executable instructions stored therein, which, in response to the processor executing the instructions, causes the computing device to perform the functions of the transfer module 202 described herein.
[0057] exist Figure 2 In the illustrated example embodiment, the transfer module 202 generates a unique identifier representing a recipient entity 220 and stores a record of the association between the unique identifier and the recipient entity. The unique identifier can be represented as a visual code 224 and provided to the recipient entity in printed or electronic form. The visual code 224 can be a barcode, a two-dimensional quick response ("QR") code, or other visual indicia. The recipient entity can display the visual code 224 to the intended source party. For example, the visual code 224 can be provided to a merchant in the form of a signature, poster, or other printed element, which can then be presented to a potential customer.
[0058] The source entity 222 can see the visual code 224 and scan the visual code 224 using the mobile computing device 226. In this way, the source entity's mobile computing device 226 can access the unique identifier of the recipient entity. The application running on the mobile computing device 226 can then send a transfer request 228 to the transfer module 202 via the network 250. Figure 2 In the example shown, the transfer involves a series of operations in which a source entity provides a first type of asset (specifically, a digital asset associated with distributed ledger 212), and a recipient entity receives a second type of asset, such as fiat currency.
[0059] In another embodiment, the mobile computing device 226 sends the electronic message to a terminal 228, such as a point of sale device operated by a recipient entity. The terminal 228 may then send a transfer request 228 to a transfer module.
[0060] In another embodiment, the terminal 228 sends the transfer request 228 directly to the transfer module 202. In this case, the terminal 228 obtains information about the source entity 222 by any possible means, such as directly querying the mobile computing device 226 of the source entity 222 or cross-exchanging with the mobile computing device 226 of the source entity 222.
[0061] The transfer request 228 includes an identifier of the recipient entity and the amount to be transferred, the amount to be transferred being specified according to the target asset type, ie, the asset type requested by the recipient entity. For example, the amount may be specified to be displayed in units of legal currency.
[0062] In response to receiving the transfer request 228, the transfer module 202 creates a temporary distributed ledger account associated with the recipient entity 220. In an embodiment, creating the account includes forming a public / private key pair and a corresponding blockchain address. The blockchain address can be used to represent the temporary account in subsequent digital asset transfers. In some cases, a temporary blockchain address is also generated for use as an interstitial change address.
[0063] In an embodiment, the transfer module 202 obtains a conversion factor that can be used to convert between a source asset type and a target asset type. In an embodiment, the conversion factor is based on information obtained from the local exchange service 130 and represents the current exchange rate between the source asset type and the target asset type. In an embodiment, the conversion factor is obtained within a threshold amount of time, so the acquisition of the conversion factor can be considered to occur simultaneously with the initiation of the transaction. This can have technical impacts, including, but not limited to, minimizing transaction risk for the source entity 222, minimizing risk for the transfer module 202, and providing the source entity 222 with a deeper understanding of transaction costs.
[0064] As used herein, a local exchange service 230 is a computer-accessible service implemented via a network 250 (e.g., the Internet). The service may provide a programming interface, protocol, or other similar mechanism to perform certain functions including providing conversion rates between asset types, and provide a programming interface, protocol, or other similar mechanism to perform the exchange of these asset types. The asset types will include digital assets bound to a distributed ledger 212.
[0065] In an embodiment, the local exchange service 230 is in jurisdictional proximity to at least one of the source entity 222 or the recipient entity 220. As used herein, jurisdictional proximity refers to a local exchange service 230 operating in the same country or economic region as the source or recipient transaction entity 220.
[0066] In an embodiment, the local exchange service 230 is geographically proximate to at least one of the source entity 222 or the recipient entity 220. As used herein, geographic proximity refers to the local exchange 230 being within the same geographic boundaries as the first transacting entity 220.
[0067] In an embodiment, the local exchange service 230 is neither geographically nor jurisdictionally close to the source entity 222 or the recipient entity 220, but still operates in a manner that is relevant to the jurisdiction and / or geographic location of at least one of the parties. For example, the global exchange can exchange between digital assets and various other asset types (e.g., asset types used in the jurisdiction and / or geographic area associated with the source and / or recipient entity).
[0068] exist Figure 2 In the example of , the transfer module 202 selects a local exchange service 230 from a plurality of local exchange services based on set criteria. The criteria may include consistency with the aforementioned jurisdictional or geographic factors, and may also include other factors such as availability, latency, accuracy, etc. In the example, the recipient entity 220 provides an indication of the desired asset type, which is typically an asset type associated with the jurisdiction of the recipient entity 220. Thus, if the recipient entity 220 is a merchant, the local exchange service 230 may be selected based on the ability of the local exchange service 230 to provide the merchant's local fiat currency in exchange for digital assets associated with the distributed ledger 212.
[0069] The transfer module 202 processes a distributed ledger transaction to transfer a digital asset from an account associated with the source entity 222 to a temporary account. The use of a distributed ledger provides the following technical advantages, including but not limited to enabling the transfer module 202 to determine when a payment or other transfer to a recipient entity is authorized.
[0070] The amount of the ledger transaction is based on the amount specified in the transfer request 228 and the conversion factor obtained from the local exchange service 230. Thus, the amount of the target asset as specified in the transfer request 228 is converted to the amount of the digital asset using the conversion factor. The amount of the ledger transaction corresponds to this amount, but this amount may be adjusted based on factors such as fees or commissions.
[0071] The transfer module 202 specifies a plug-in change address to be used in a ledger entry 210. The plug-in change address may be a blockchain address that is generated and used only once. Using a plug-in change address has the following technical advantages, including but not limited to being able to efficiently authorize a requested transaction, providing detailed transaction information, and avoiding exposure of any one entity's transaction history to the public blockchain.
[0072] In an embodiment, the ledger entry 210 includes a temporary blockchain address that serves as the destination of the transfer and the plug-in change address.
[0073] In an embodiment, the ledger entry 210 includes a first temporary blockchain address used as a destination for the transfer, and a second temporary blockchain address used as a plug-in change address.
[0074] In an embodiment, the ledger entry 210 is input by a transfer module 202 acting as a ledger node 232 , which publishes (ie, transmits or broadcasts) the transaction to other ledger nodes 232 .
[0075] The transfer module 202 can process a distributed ledger transaction by submitting an entry to the distributed ledger. The ledger entry 210 indicates the transfer of a digital asset. In particular, the entry can include: a source indicator set to the blockchain address of an account held by the second entity of the transaction; a destination indicator set to the blockchain address of a temporary account; and a change address set to the plug-in change address.
[0076] Transfer module 202 may determine that ledger entry 210 has been recorded in distributed ledger 212. In various embodiments, an entry is considered to have been recorded in the distributed ledger when one or more ledger nodes 232 have received and stored a copy of the entry.
[0077] In response to determining that the entry has been recorded, the transfer module 202 can initiate an exchange of the digital asset with the other asset type. This includes transferring the digital asset from the temporary digital asset account to the digital asset account of the exchange. The exchange can then remit the money in the target asset type. Figure 2 In the example of , the digital assets previously transferred from the source entity's account to the temporary account are then transferred to the digital asset account associated with the local exchange service 230. In response, the local exchange service 230 deposits a corresponding amount of the target asset into an account owned by the transfer module.
[0078] Likewise, in response to determining that the ledger transaction has been recorded, the transfer module can initiate a deposit of the target asset into the account of the recipient entity. The deposit amount typically corresponds to the amount of the target currency indicated in the transaction request 228, but can be adjusted based on various other factors (including, but not limited to, service fees, commissions, taxes, etc.).
[0079] In an embodiment, transfer module 202 sends a notification to terminal 228. Terminal 228 may be, for example, a point of sale system used by recipient entity 220. However, this example should not be construed as limiting the scope of the invention to only those embodiments consistent with this example.
[0080] Figure 3 An example process 300 is shown that facilitates asset transfers between a source and a recipient. Although the example is described as a series of operations, the order of description should not be construed as limiting the scope of the invention to only those embodiments that conform to that order unless explicitly stated or logically required (e.g., where the output of one operation is used as the input of another). In particular, in various embodiments, certain steps may be omitted, reordered, or performed in parallel.
[0081] The operations of the example process 300 may be performed by a transfer module (e.g. Figure 2The process can be implemented by transferring the digital assets of the customer to the merchant. The operation can also be performed in a variety of environments. In an example, the process can be used to enable a merchant to receive payment in legal currency based on the digital assets held by the customer. In another case, conversion between digital asset types is implemented.
[0082] like Figure 3 As shown, an entity corresponds to a person, group, device, or system associated with a digital asset type or a non-digital asset type.
[0083] At step 302, the transfer module receives a request to transfer an asset. The received request includes the amount to be transferred to the recipient entity and an identifier of the recipient entity. Figure 2 As explained in the example of , the request can be initiated in a variety of ways, including the source entity using a mobile device to scan a visually encoded recipient identifier and using an application on the mobile device to send the request.
[0084] In step 304, the transfer module responds to the request by creating a blockchain address for identifying the temporary account. The account and blockchain address refer to the distributed ledger 212, so it can also be used to indicate the source or destination of the digital asset transfer linked to the distributed ledger 212.
[0085] At step 306, the transfer module obtains a conversion rate between the amount transferred to the recipient and the amount of the digital asset associated with the distributed ledger. In various embodiments, the conversion rate may be obtained from a local exchange service selected concurrently with other operations related to the transfer.
[0086] In step 308, the transfer module initiates the operation of transferring the determined amount of digital assets to the temporary account. This enables the distributed ledger to record the transaction record. For example, Figure 2 The transfer module 202 described in the example may use an application programming interface or a web service to initiate a distributed ledger transaction. In response, one or more distributed ledger nodes 232 process the transaction by at least storing a transaction record in the distributed ledger.
[0087] In an embodiment, the entry specifies the source entity address as the source of the transfer, the temporary account address as the destination of the transfer, and the interim change address as the change address for the transaction.
[0088] At step 310, the transfer module sends a notification indicating that the transfer has been successfully recorded. To determine that the transfer has been successfully recorded, the transfer module may publish the blockchain transaction itself, for example, by acting as a distributed ledger node or interfacing with a distributed ledger node. In another embodiment, the transfer module determines that the transfer has been successfully recorded by identifying an entry in the distributed ledger that points to the inserted change address.
[0089] At step 312, the transfer module initiates a deposit to an account associated with the identifier of the recipient entity. In some cases and in some embodiments, this operation may be performed before or simultaneously with the transfer module initiating an exchange between the digital asset and the type of asset used by the recipient. Performing this exchange helps reduce volatility risk associated with the digital asset and / or volatility associated with the type of asset used by the recipient.
[0090] To initiate a deposit, the transfer module may send an electronic message (e.g. Figure 2 The deposit request 214 shown in the figure can be directed to another system. For example, in applications involving legal tender, the deposit request 214 can be directed to a banking institution associated with the recipient entity.
[0091] Figure 4 An example process 400 for recording transactions in a distributed ledger is shown. Although described as an order of operations, the order described should not be interpreted as limiting the scope of the present invention to only those embodiments that conform to the order described unless explicitly stated or logically required (e.g., where the output of one operation is used as the input of another). In particular, in various embodiments, certain steps may be omitted, reordered, or performed in parallel.
[0092] The operations of the example process 400 may be performed by a transfer module (e.g. Figure 1 The transfer module 202 shown in FIG. Figure 3 As shown in operation 308 in , the example process 400 involves recording a distributed ledger entry.
[0093] In step 402, the transfer module sets the transfer amount of the distributed ledger entry. Figure 3 The amount is represented by a digital asset linked to the distributed ledger in which the entry is recorded. The amount transferred is based on the amount of the recipient's asset being transferred and the conversion rate obtained from the selected local exchange service.
[0094] At step 404, the transfer module sets the input of the transfer as a ledger entry associated with the source entity. Although the digital assets of the source entity may be described as being held in the digital asset account of the source entity, the digital assets of the source entity are represented in the distributed ledger as one or more transfers to the source entity (which are not transferred elsewhere). The transfer module locates the unspent entry and uses it as the input of the transfer to be recorded in the distributed ledger.
[0095] The transfer module sets the destination of the transfer to the address associated with the temporary account created by the transfer module at step 406. Thus, this entry indicates that the output of the transfer should be allocated to the temporary account with little modification.
[0096] The transfer module sets the change address to the drop-in change address at step 408. Thus, the ledger entry will indicate that any funds in excess of the specified amount should be allocated to the specified drop-in change address.
[0097] At step 410, the transfer module submits a distributed ledger entry to be recorded in the distributed ledger. The record of the ledger entry transfers the digital asset to the temporary account. In addition, other entries that assign the change to the inserted change address are also entered into the distributed ledger.
[0098] Figure 5 A system is shown that facilitates the transfer of assets between a source party and a recipient party in different jurisdictions. Figure 5 In the system 500 shown in FIG. 5 , a source entity 522 may transfer money to a recipient entity 520 in another country via a remittance facilitator 502 utilizing a distributed ledger 512 .
[0099] The example system 500 includes a transfer module 502 that performs operations using a distributed ledger 512 to facilitate the transfer of an asset from a source entity 522 to a recipient entity 520. In an embodiment, the transfer module 502 includes a computing device, such as a computing device in which a non-transitory memory stores processor-executable instructions that, in response to the processor executing the instructions, cause the computing device to perform the functions of the transfer module 502 described herein.
[0100] In various cases and embodiments, source entity 522 uses mobile computing device 526 to scan voucher 528. Voucher 528 may be obtained from a merchant or other source in exchange for an amount of legal tender corresponding to the amount the source entity wants to transfer and adjusted for any fees, commissions, or other costs.
[0101] The voucher 528 may be a printed ticket or other physical document, or may be an electronic document or message that can be displayed visually. The voucher 528 may include a visual code, such as a barcode, a two-dimensional ("QR") code, or other visual indicia that can be scanned by the mobile computing device 526. In addition, the voucher 528 may include encoded information in a non-visual form, such as a magnetic stripe or radio frequency identification ("RFID") that can be read by the mobile computing device 526. The mobile computing device 526 thereby obtains a voucher identifier. The voucher identifier includes data that uniquely identifies the voucher.
[0102] The mobile computing device 526 of the source entity 522 may send a transfer request 524 to the transfer module 502. In an embodiment, the transfer request 524 includes a credential identifier. A one-time personal identification number (PIN) or encryption key may also be included and used to verify the source entity's authorization to use the credential.
[0103] In an alternative embodiment, transfer request 524 includes account access and authorization information and the amount to be transferred. Therefore, in some embodiments, this information can be used instead of a credential identifier to establish the terms of the requested transfer.
[0104] Transfer module 502 can verify transfer request 524 by confirming that the credential identifier corresponds to an authentic and unexpired credential. In some cases, verification also includes determining that the amount of the requested transfer is consistent with the amount associated with the credential.
[0105] Alternatively, transfer module 502 may validate transfer request 524 by authenticating the provided account credentials and determining that the amount of the requested transfer is consistent with the available balance in the account, or simply determining the amount of the credentials stored in the system.
[0106] In response to the verification request, the transfer module 502 obtains a conversion factor for exchanging between the source asset type and the digital asset bound to the distributed ledger 512. The conversion factor can be obtained from the local exchange service 530. Techniques for selecting a local exchange service can be similar to Figure 2 The techniques described in for selecting the local exchange service 230 are similar.
[0107] The transfer module 502 then acquires a quantity of digital assets proportional to the requested transfer quantity (adjusted by the conversion factor). The acquisition may be performed by electronically communicating with a local exchange service 530 in the source region 540. The acquisition process is performed by exchanging the specified quantity of source assets for digital assets, adjusted using the conversion factor of the local exchange service 530.
[0108] The transfer module 502 also sells the corresponding amount of digital assets. The sale can be performed by electronically communicating with the local exchange service 532 in the destination area 542. In various situations and embodiments, the acquisition of the digital asset is performed simultaneously with the sale of the digital asset. For example, the sale can be performed immediately after the digital asset is successfully acquired. The sale can be performed by exchanging the digital asset for the target asset and adjusting according to the conversion factor provided by the local exchange service 532 in the destination area 542.
[0109] In some embodiments, transfer module 504 can transfer digital assets from source region 540 to destination region 542 prior to the sale. In particular, assets acquired by an account associated with source region 540 can be transferred to an account associated with destination region 532. The sale of digital assets can then be conducted based on the digital assets held by the destination region account.
[0110] The acquisition of the digital asset is recorded in the distributed ledger 512 as an incoming transfer 504 of the digital asset. Here, "incoming" refers to the transfer of the digital asset to an account associated with the transfer module 502. The incoming transfer 504 can be recorded in the distributed ledger 512 by initiating a ledger transaction, where the destination address of the transfer corresponds to the account of the transfer module 502.
[0111] Similarly, the sale of a digital asset may be recorded in the distributed ledger 512 as an outgoing transfer 506 of the digital asset. Here, "outgoing" refers to the transfer of a digital asset out of an account held by the transfer module 502. The outgoing transfer 506 may be recorded in the distributed ledger 512 by initiating a ledger transaction in which the source address of the transfer is represented as the address of the transfer module 512 account. In some cases, the destination address is the address of the local exchange service 532 selected in the destination area 542.
[0112] Incoming transfer 504 and outgoing transfer 506 can be implemented by local switching services 530 and 532, respectively. Incoming transfer 504 can be implemented by local switching service 530 in source area 540, and outgoing transfer 506 can be implemented by local switching service 532 in destination area 542. Figure 5 , the transfer module 502 selects a local exchange service 530, 532 from a plurality of local exchange services based on set criteria. The criteria may include jurisdictional or geographic factors, availability, latency, and cost that are consistent with the selected exchange 530, 532. The local exchange service may be selected concurrently with other operations, such as in response to the transfer module 502 receiving the transfer request 524.
[0113] In an embodiment, the transfer module 502 uses the proceeds from the sale of the digital asset to acquire the second region assets and provide these assets to the recipient entity. In an embodiment, the second region assets are converted into mobile currency and deposited into a mobile currency account that the recipient entity 520 can access using the mobile computing device 526. For example, the second region assets can be legal tender for the jurisdiction of the destination region 542. The transfer module 502 can use legal tender funds to purchase a corresponding amount of mobile currency on behalf of the recipient entity 520. The recipient entity can then use these funds to purchase goods and services. As used herein, mobile currency refers to assets that are typically denominated in legal tender and accessible to users of mobile devices. A mobile currency account refers to a service for tracking the availability of mobile currency for users.
[0114] Figure 6An example process for facilitating the transfer of assets between a source and a recipient in different jurisdictions is shown. Although the order described is described as an order of operations, unless explicitly stated or logically required (e.g., where the output of one operation is used as the input of another), the order described should not be interpreted as limiting the scope of the present invention to only those embodiments that conform to the order described. In particular, in various embodiments, certain steps may be omitted, reordered, or performed in parallel.
[0115] At step 602, the transfer module receives a request to transfer assets between parties in different jurisdictions. Thus, the requested transfer may involve exchanging different types of assets. For example, a source entity may wish to transfer assets held in a local currency to another entity, converting the local currency into another asset type available to the receiving entity.
[0116] The request received by the transfer module may include an identifier of the credential, an identifier of the recipient entity, and an amount to be transferred. The amount may be specified based on the source or target asset type. For example, the amount may correspond to an amount of legal tender used to purchase the credential from the merchant. The credential may contain a visual indicia encoding an identifier that may be scanned and sent to the transfer module when requesting to initiate a transfer.
[0117] At step 604, the transfer module validates the voucher identifier. In an embodiment, this includes identifying a record that associates the voucher identifier with other data, including a quantity associated with the voucher and a record of how much of the quantity has been used. For example, the transfer module may retrieve a database record index by the voucher identifier and containing the above information.
[0118] At step 606, the transfer module determines a first amount of the digital asset based on a conversion factor for the source region. Figure 5 , an embodiment may obtain the conversion factor by selecting a local exchange service 530 in a source region 540 and then utilizing the local exchange service 530. The use of a dynamically and synchronously selected local exchange service has a number of advantages, including reducing the risk of exchange rate fluctuations.
[0119] At step 608, the transfer module causes a distributed ledger entry to be recorded indicating the input transfer of the first amount of digital assets. Thus, the entry reallocates the assets held by the source entity to another account owned by the transfer module. In an embodiment, the transfer module performs this step through an intermediary such as the local exchange service 530. For example, the transfer module may send a request for the first amount of digital assets to the local exchange service 530 in exchange for the transfer module remitting a corresponding amount of source assets.
[0120] At step 610, the transfer module determines a second digital asset transfer amount based on a conversion factor for the second region. Figure 5 , an embodiment can obtain the conversion factor by selecting a local exchange service 532 in the destination area 542. This selection can be dynamic and performed simultaneously with other operations in the transfer, which can reduce the risk of exchange rate fluctuations.
[0121] At step 612, the transfer module causes a distributed ledger entry to be recorded indicating the incoming transfer of the second digital asset. Embodiments may implement the recording via an intermediary such as a local exchange service 532 in the second region, and in exchange may receive a corresponding amount of some other asset type.
[0122] At step 614, the transfer module initiates a deposit to the recipient's account, wherein the amount of the deposit is based on the second amount of the digital asset. The amount can be based on factors such as costs, fees, or commissions, corresponding to the proceeds of the outgoing transfer of the digital asset, less adjustment.
[0123] Embodiments of the present invention may exhibit one or more of the advantages described below. The described techniques (e.g. Figure 3 The described techniques) can quickly authorize related operations, such as the transfer of goods or services that rely on the described set of operations (e.g., Figure 3 The described techniques also facilitate providing detailed transaction and operation data to entities affected by the set of operations. In addition, the described techniques can prevent the transaction history of participating entities from being exposed on the public blockchain. The described techniques can also reduce exchange rate fluctuation risk by performing related conversions simultaneously with other operations.
[0124] The described techniques (e.g. Figure 6 The described technology) can quickly complete related transactions, such as remittances of converted asset types. In addition, the use of vouchers and a corresponding set of blockchain transactions can be used to transfer value to a receiving entity without traditional remittance mechanisms. The described technology also allows assets to be sent to a receiving entity at nearly synchronous speeds, which is faster than through traditional remittance mechanisms.
[0125] The description and drawings should be understood as illustrative rather than restrictive. However, it is obvious that various modifications and changes can be made thereto without departing from the scope of the invention. Likewise, other changes are also within the scope of the invention. Therefore, although the technology described herein is susceptible to various modifications and alternative configurations, certain example embodiments are shown in the drawings and described in detail above. However, it should be understood that we have no intention of limiting the invention to one or more specific forms described herein, but rather, the invention is intended to cover all modifications, alternative configurations, and equivalent forms that fall within the scope of the invention.
[0126] In the context of describing the disclosed embodiments (especially in the context of the claims), the use of the terms "one" and "the" and similar references should be interpreted as including both singular and plural cases, unless otherwise stated or clearly contradicted by the context. Unless otherwise stated, the terms "comprising", "having", "including" and "containing" should be interpreted as open terms (i.e., meaning "including but not limited to"). The term "connected" should be understood as being partially or completely contained, attached or connected together when it is not modified and refers to a physical connection, even if there is some intervention. Unless otherwise noted, the enumeration of numerical ranges in the present invention is only intended to be used as a shorthand method to refer to each individual value falling within the range, respectively, and each individual value is incorporated into the specification as if it is separately listed. Unless otherwise noted or the context is contradictory, the use of the term "group" (e.g., "a group of items") or "subset" should be interpreted as a non-empty set including one or more members. In addition, unless otherwise noted or the context is contradictory, the term "subset" of the corresponding set does not necessarily represent a true subset of the corresponding set, and the subset and the corresponding set may be equal.
[0127] Unless expressly stated otherwise or clearly contradicted by context, conjunction language such as phrases of the form "at least one of A, B, and C" or "at least one of A, B, and C" are understood to be generally used in conjunction with context to refer to items A or B or C, and also any non-empty subset of the sets A and B and C, unless otherwise stated. For example, the conjunctions "at least one of A, B, and C" and "at least one of A, B, and C" in the illustrative example of a set having three members refer to any of the following sets: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Thus, such conjunction language is generally not intended to imply that certain embodiments require the presence of at least one of A, at least one of B, and at least one of C.
[0128] The operations of the described processes may be performed in any suitable order unless otherwise indicated or clearly contradicted by context. The described processes (or variations and / or combinations thereof) may be performed under the control of one or more computer systems configured with executable instructions and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) that is executed together on one or more processors by hardware or a combination thereof. In some embodiments, the code may be stored on a computer-readable storage medium, for example, in the form of a computer program consisting of a plurality of instructions executable by one or more processors. In some embodiments, the computer-readable storage medium is non-transitory.
[0129] The use of any and all examples, or exemplary language (e.g., "such as"), is intended only to better illustrate embodiments of the invention and does not constitute a limitation on the scope of the invention unless otherwise required. No language in the specification should be construed as indicating any non-claimed element is essential to the practice of the invention.
[0130] Embodiments of the present invention are described herein, including the best mode known to the inventor for carrying out the present invention. By reading the above description, it will become apparent to a person having ordinary skills in the art that the variations of the embodiments described will become apparent. The inventor expects that such variations will be appropriately adopted by a skilled person, and the inventor hopes that the embodiments of the present invention can be implemented in a manner different from that specifically described. Therefore, the scope of the present invention includes all variations and equivalents of the subject matter listed in the attached claims as permitted by applicable law. Moreover, unless otherwise noted or clearly contradictory to the context, any combination of the above elements in all possible variations thereof belongs to the scope of the present invention.
[0131] All references, including publications, patent applications, and patents, cited are herein incorporated by reference to the same extent as if each reference were individually and specifically indicated to be incorporated by reference and were set forth in its entirety.
[0132] It should be noted that the above embodiments illustrate rather than limit the present invention, and those skilled in the art will be able to design many alternative embodiments without departing from the scope of the present invention. In the claims, any figure marks in brackets should not be interpreted as limiting the claims. The words "including" and the like do not exclude the existence of other elements and steps as a whole, even though these elements and steps are not listed in any claim or specification. In this specification, "including" means "including or consisting of...". The singular reference of an element does not mean to exclude the plural reference of these elements, and vice versa. The present invention can be implemented by means of hardware including several different elements, and by means of a suitably programmed computer. In a device claim that lists several devices, several of these devices can be embodied by the same component of hardware. The indisputable fact is that certain methods are listed in different dependent claims, which does not mean that the combination of these methods cannot achieve beneficial effects.
Claims
1. A computer-implemented method for recording a transaction on a blockchain, the method comprising: receiving a request to initiate a plurality of operations, the request comprising information indicating a first value and an identifier of a first entity, the plurality of operations comprising a first blockchain transaction, a second blockchain transaction, and a third transaction of a different type than the first blockchain transaction and the second blockchain transaction; obtaining a first conversion factor from a first service associated with a first region; causing the first blockchain transaction to be recorded in a blockchain, wherein the first blockchain transaction indicates an incoming transfer of an amount of a digital asset based at least in part on the first amount and the first conversion factor; obtaining a second conversion factor from a second service associated with a second region; Cause the second blockchain transaction to be recorded in the blockchain.
2. The method of claim 1 , wherein the second blockchain transaction represents an outgoing transfer of the certain amount of the digital asset, wherein the outgoing transfer is exchanged for a second amount of a second asset type, the second amount being based at least in part on the amount of the digital asset and the second conversion factor.
3. The method according to claim 1, wherein the method further comprises: The third transaction is initiated based at least in part on the second amount of the second asset.
4. The computer-implemented method of claim 1 , wherein: In response to confirming the first transaction and the second transaction in the blockchain, the third transaction is initiated, wherein the confirming is performed without determining that the first transaction and the second transaction are associated with a mined block in the blockchain.
5. The computer-implemented method of claim 1 , wherein: The first transaction includes a generated blockchain address, and the generated blockchain address will not be used in the transaction after performing the plurality of operations.
6. The computer-implemented method of claim 1 , wherein: The third transaction comprises transferring at least a portion of the second amount of the second asset to a mobile money account.
7. The computer-implemented method of claim 1 , further comprising: The first service and the second service are selected based at least in part on compliance of the services with at least one of a jurisdictional criterion or a geographic criterion.
8. The computer-implemented method of claim 1 , wherein: The information indicative of the first value comprises an identifier of the credential.
9. A system comprising: at least one processor; and A memory containing executable instructions which, when executed by the at least one processor, cause the system to perform the computer-implemented method of any one of claims 1 to 8.
10. A non-transitory computer-readable storage medium having executable instructions stored thereon, wherein after being executed by a processor of a computer system, the executable instructions cause the computer system to at least perform the computer-implemented method of any one of claims 1 to 8.