Method and System for Exchange of Value or Tokens Between Blockchain Networks
A blockchain value transfer method including receiving a plurality of transaction requests, performing a balance check procedure on each transaction request to determining if the transaction value in first in-network tokens is greater than the present permitted transaction amount of the sending user account address, adding the transaction request to an aggregate transaction record, determining a net transaction amount for each user account address for each transaction in the aggregate transaction record, with the transaction value for transactions including the user account address as the sending user account address as a debit and as the receiving user account address as a credit, and executing the net transaction amount for each user account address associated with the net transaction amount by transacting tokens to and from the user account addresses upon reaching an aggregation threshold.
Latest Patents:
This application claims priority under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application Ser. No. 62/818,798 filed on Mar. 15, 2019 and titled A Use Case Extension to the Value Token Transfer Protocol (VTTP) and is a continuation-in-part application of and claims priority under 35 U.S.C. § 120 of U.S. patent application Ser. No. 15/976,910 (Attorney Docket No. 3026.00008) filed on May 11, 2018 and titled Method and System for Exchange of Value or Tokens Between Blockchain Networks, which in turn claims priority under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application Ser. No. 62/652,341 filed on Apr. 4, 2018 and titled Value Token Transfer Protocol—VTTP. The contents of these applications are incorporated herein by reference.
FIELD OF THE INVENTIONThe present invention relates to Value Token Transfer Protocol (VTTP), a protocol for exchange of value or tokens within and between blockchain networks.
BACKGROUND OF THE INVENTIONBlockchain is a distributed and public ledger which maintains records of all the transactions. A blockchain network is a truly peer-to-peer network and it does not require a trusted central authority or intermediaries to authenticate or to settle the transactions or to control the network infrastructure. Users can interact and transact with the blockchain networks through Externally Owned Account (EOAs), which are owned and controlled by the users. Each EOA has a balance (in certain units of a Cryptocurrency associated with the Blockchain network) associated with it. EOAs do not have any associated code. All transactions on a blockchain network are initiated by EOAs. These accounts can send transactions to other EOAs or contract accounts. Another type of accounts support by second generation programmable Blockchain platforms are the Contract Accounts. A Contract Account is created and owned by an EOA and is controlled by the associated contract code which is stored with the account. The contract code execution is triggered by transactions sent by EOAs or messages sent by other contracts.
Blockchain networks can either be public or private. Public blockchain networks are free and open to all and any user can create an account and participate in the consensus mechanism on a public blockchain and view all the transactions on the network. Private blockchain networks are usually controlled and operated by a single organization and the transactions can be viewed only by the users within the organization. Public blockchain networks are usually unpermissioned or permissionless, as any node can participate in consensus process. Some public blockchain networks adopt a permissioned model where the consensus process is controlled by a pre-selected set of nodes. Private blockchain networks usually adopt the permissioned model. While public blockchain networks can be considered as fully decentralized, private blockchain networks are partially decentralized.
Organizations can have multiple private blockchain networks where each network is dedicated to a specific use case or department or business vertical. The blockchain networks within an organization may be created either using the same blockchain platform or technology or with different platforms or technologies.
On each blockchain network, a user can create multiple Externally Owned Accounts (EOAs). Each Externally Owned Account (EOA) has a public-private keypair associated with it. The account address is derived from the public key. When a new EOA is created, a keyfile is created which has the public and private keys associated with the account. The private key is encrypted with the password which is provided while creating the account. For sending transactions to other accounts, the private key and the account password are required.
This background information is provided to reveal information believed by the applicant to be of possible relevance to the present invention. No admission is necessarily intended, nor should be construed, that any of the preceding information constitutes prior art against the present invention.
SUMMARY OF THE INVENTIONWith the above in mind, embodiments of the present invention are directed to a system and associated methods for exchange of value or tokens within and between blockchain networks.
In some embodiments, the method may further comprise a Value Token Transfer Protocol (VTTP) that provides the following features:
-
- Intra-chain value transfer of native cryptocurrency (e.g. ETH on Ethereum blockchain);
- Intra-chain value transfer of ERC20 tokens (e.g. sending OMG tokens and receiving SNT tokens);
- Inter-chain value transfer of cryptocurrencies (e.g. Send ETH from Ethereum blockchain and receive LTC on Litecoin blockchain);
- Intra and Inter-chain exchange of cryptocurrencies and ERC20 tokens (e.g. send BAT token from Ethereum blockchain and receive LTC on Litecoin blockchain); and
- Retrieve information on accounts, contracts, transactions for all participating blockchain networks.
In some embodiments, the method may further comprise client-server model in which VTTP works as a request-response protocol based on a client-server architecture, where a VTTP Client sends requests to a VTTP Server, and the server responds to the requests.
In some embodiments, the method may further comprise a peer-to-peer model in which VTTP works as a peer-to-peer protocol where VTTP Peers communicate directly with their peers and a VTTP Coordinator may be used for coordinating the communication between peers.
VTTP is blockchain platform or network independent. VTTP can be used to send any type of tokens between different blockchain networks or within a blockchain network, as long as the VTTP client and server know how to interpret and transfer tokens.
VTTP is a stateless protocol. Each VTTP request contains all the information required to process a request. VTTP client and server do not maintain state between successive requests.
Further embodiments may be directed to a blockchain value transfer method comprising receiving a plurality of transaction requests, each transaction request comprising a sending user account address, a receiving user account address, and a transaction value expressed in terms of a quantity of first in-network tokens, the user account addresses being addresses on a blockchain network. The method further comprises performing a balance check procedure on each transaction request comprising identifying a present permitted transaction amount in first in-network tokens for the sending user account address, and determining if the transaction value in first in-network tokens is greater than the present permitted transaction amount of the sending user account address. Upon determining the transaction value in first in-network tokens is greater than the present permitted transaction amount in first in-network tokens of the sending user account address, the method may continue with refusing the transaction. Upon determining the transaction value is not greater than the present permitted transaction amount of the sending user account address, the method may continue with adding the transaction request to an aggregate transaction record, updating the present permitted transaction amount of the sending user account address reflecting a debit of the transaction value, and updating the present permitted transaction amount of the receiving user account address reflecting a credit of the transaction value. The method may further comprise determining a net transaction amount for each user account address for each transaction in the aggregate transaction record, with the transaction value for transactions including the user account address as the sending user account address as a debit and as the receiving user account address as a credit and executing the net transaction amount for each user account address associated with the net transaction amount by transacting tokens to and from the user account addresses upon reaching an aggregation threshold, comprising withdrawing an amount of tokens from user account addresses with a net debit having a value equal to the value of the net debit, defined as debit user account addresses, defining debited tokens and depositing an amount of tokens from the debited tokens to user account addresses with a net credit in an amount equal to the amount of the net credit, defined as credit user account addresses.
In some embodiments, execution of the net transaction amount may comprise recording a net transaction smart contract to the blockchain network, the net transaction smart contract comprising each of the user account addresses and the tokens transacted with each of the user account addresses. Furthermore, the net transaction smart contract may add a transaction fee to each token transaction for the user account addresses.
In some embodiments, the aggregation threshold may be defined as at least one of a length of time elapsing since a previous net transaction execution, a gross transaction amount, or a risk tolerance.
In some embodiments, each transaction request of the plurality of transaction requests may have an associated transaction request smart contract recorded on the blockchain network, defining a plurality of transaction request smart contracts. Each transaction request smart contract may comprise a transaction tax added to the transaction value.
In some embodiments, the method may further comprise, for each refused transaction, re-determining if the transaction value in first in-network tokens is greater than the present permitted transaction amount of the sending user account address after at least one of a first time interval and an intervening transaction involving the sending user account address, defining a transaction retry, for one or more of a fixed number of transaction retry attempts or after a second time interval.
In some embodiments, the method may further comprise a first sending user account address of a first transaction request of the plurality of transaction requests is on a first blockchain network comprising the first in-network token, a first receiving user account address of the first transaction request is on a second blockchain network and comprises a second in-network token, and the first receiving user account address is determined to be a credit user account address. Executing the net transaction amount for the receiving user account may further comprise exchanging an amount of first in-network tokens, equal in value to the net credit for the first receiving user account, defining a net credit value, for an amount of first tethered tokens having a value equal to the net credit value, the first tethered tokens being comprised by a first tethered token transfer record, recording a transaction to the first blockchain network of sending the first tethered token transfer record from the first blockchain network to the second blockchain network, recording a transaction to the second blockchain network of receiving the first tethered token transfer record at the second blockchain network from the first blockchain network, exchanging the first tethered tokens comprised by the first tethered transfer record for an amount of second in-network tokens having a value equal to the net credit value, defining a second blockchain network deposit, and depositing the second blockchain network deposit to the receiving user account address. Furthermore, the first tethered token may have a value thereof tethered to a first fiat currency, the first in-network token may have a first exchange rate with the first tethered token, and the second in-network token may have a second exchange rate with the first tethered token that is different from the first exchange rate.
In some embodiments, a first sending user account address of a first transaction request of the plurality of transaction requests may be on a first blockchain network comprising the first in-network token, a first receiving user account address of the first transaction request may be on a second blockchain network and comprises a second in-network token, and the first receiving user account address may be determined to be a credit user account address. Executing the net transaction amount for the receiving user account may comprise exchanging an amount of first in-network tokens, equal in value to the net credit for the first receiving user account, defining a net credit value, for an amount of first tethered tokens having a value equal to the net credit value, the first tethered tokens being comprised by a first tethered token transfer record, recording a transaction to the first blockchain network of sending the first tethered token transfer record from the first blockchain network to a tethered token exchange, exchanging the first tethered tokens comprised by the first tethered token transfer record for an amount of second tethered tokens having a value equal to the net credit value, the second tethered tokens being comprised by a second tethered token transfer record, recording a transaction to the second blockchain network of receiving the second tethered token transfer record at the second blockchain network from the tethered token exchange, exchanging the second tethered tokens comprised by the second tethered transfer record for an amount of second in-network tokens having a value equal to the net credit value, defining a second blockchain network deposit, and depositing the second blockchain network deposit to the receiving user account address. A value of the first tethered token may be tethered to a first fiat currency, a value of the second tethered token may be tethered to a second fiat currency different from the first fiat currency, the first in-network token may have a first exchange rate with the first tethered token, the second in-network token may have a second exchange rate with the second tethered token, and the first tethered token may have a third exchange rate with the second tethered token. The method may further comprise at least one of defining the first exchange rate responsive, the second exchange rate, and the third exchange rate responsive to the second fiat currency. The method may further comprise updating the present permitted transaction amount responsive to at least one of the first fiat currency and the second fiat currency.
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Those of ordinary skill in the art realize that the following descriptions of the embodiments of the present invention are illustrative and are not intended to be limiting in any way. Other embodiments of the present invention will readily suggest themselves to such skilled persons having the benefit of this disclosure. Like numbers refer to like elements throughout.
Although the following detailed description contains many specifics for the purposes of illustration, anyone of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the invention. Accordingly, the following embodiments of the invention are set forth without any loss of generality to, and without imposing limitations upon, the claimed invention.
In this detailed description of the present invention, a person skilled in the art should note that directional terms, such as “above,” “below,” “upper,” “lower,” and other like terms are used for the convenience of the reader in reference to the drawings. Also, a person skilled in the art should notice this description may contain other terminology to convey position, orientation, and direction without departing from the principles of the present invention.
Furthermore, in this detailed description, a person skilled in the art should note that quantitative qualifying terms such as “generally,” “substantially,” “mostly,” and other terms are used, in general, to mean that the referred to object, characteristic, or quality constitutes a majority of the subject of the reference. The meaning of any of these terms is dependent upon the context within which it is used, and the meaning may be expressly modified.
Various types of computing hardware may be disclosed herein, e.g. server, computer, computerized device, smart phone, etc. Except where described otherwise, it is contemplated and included within the scope of the invention that such hardware may comprise a processor operable to execute software resulting in a described function, a memory device positioned in communication with the processor permitting the storage of software thereon as well as data generated or processed by the processor, and a communication device positioned in communication with the processor and, in some embodiments, the memory device, and is operable to send and receive data across any type of computer network as is known in the art. The memory device may be permanent and non-transitory.
Referring now to
Referring now to
Referring now to
A separate blockchain network 218 may be used for user identity and access management. The identity information of each user may be maintained on a separate blockchain network. An identity verification and certification procedure is performed for securely linking blockchain accounts to real users. The identity (and associated blockchain accounts) of each user may be separately verified through an identity verification process. A system and associated methods for securely linking blockchain accounts to real users, as described in related U.S. patent application Ser. No. 15/863,128 titled Method and System for Blockchain-Based Combined Identity, Ownership and Custody Management filed Jan. 5, 2018, the content of which is incorporated herein by reference except to the extent disclosure therein is inconsistent with disclosure herein. A user identity registration and certification procedure is performed that comprises receiving hashed user identification information that has been signed with a private key of the user from the user, defining a seal contract, generating an address of the seal contract, defined as a sealed user record address, and providing the sealed user record address. The procedure may further comprise receiving a hashed verification record from a certificate authority, generating an address of a verification contract from the hashed verification record, defined as a sealed verification record address and providing the sealed verification record address. Furthermore, the procedure may further comprise generating a certification contract from a combination of the sealed user record address, a certification token, and the sealed verification record address, providing a certification contract address, receiving a verification record by a certification authority comprising the hashed user identification information and a token, and receiving a combination of the certification contract address and the seal contract, defining a received certification contract address and a received seal contract, respectively. Additionally, the procedure may further comprise obtaining each of the sealed user record address and the sealed verification record address from the certification contract address, retrieving the seal contract from the sealed user record address, defining a retrieved seal contract, decrypting the retrieved seal contract using a public key associated with the user, defining a decrypted retrieved seal contract, and comparing the decrypted retrieved seal contract and the received seal contract. Yet further, the procedure may comprise retrieving the verification contract from the sealed verification record address, defining a retrieved verification contract, obtaining a certification token from the certification contract address, generating a hashed confirming verification record by hashing the combination of the decrypted retrieved seal contract and the certification token, and comparing the hashed confirming verification record to the retrieved verification contract. Upon a comparison of the decrypted retrieved seal contract and the received seal contract indicating they are at least a partial match and the comparison of the hashed confirming verification record to the retrieved verification contract indicating they are at least a partial match, a session certification token for a decentralized application may be generated. Finally, the procedure may comprise transmitting the session certification token to the user.
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
GET vttp://ROOT_URL/ethereum/address/0x004E1A8B6d1B65C2497055e65AFC5E5A46Db750D/balance
The VTTP SEND command 454 is used to send value from one account to another account in same network. For example, the VTTP SEND command 454 to send ETH from one Ethereum account to another may look as follows:
SEND vttp://ROOT_URL/ethereum?from=0x004E1A8B6d1B65C2497055e65AFC5E5A46Db750D &to=0x0049b1258Fd75C021d99E2109323Daa0E9ae8a6A&value=1
A VTTP SEND command 454 to send ERC20 token ABC from account A and receive ERC20 token XYZ in account B may look as follows:
SEND vttp://ROOT_URL/ethereum?from=0x004E1A8B6d1B65C2497055e65AFC5E5A46Db750D &to=0x0049b1258Fd75C021d99E2109323Daa0E9ae8a6A &source=ABC&destination=XYZ& &sourceContract=0x4891615e2942FD4c176E4f2Ae3faF281E26EE466
&destinationContract=0x2fF2159D77805d489F6347BbEa3067Efb13d3176&value=1
The VTTP XSEND command 456 is used to send value from one account to another account in another network. For example, the VTTP XSEND command 456 to send ETH from an Ethereum account and receive LTC in a Litecoin account may look as follows:
XSEND vttp://ROOT_URL/ethereum/litecoin? from=0x004E1A8B6d1B65C2497055e65AFC5E5A46Db750D &to=LWhC2FmafKgDbqT129rB8Yj3dB9FVGhA2E &source=ETH&destination=LTCvalue=1
The VTTP REQUEST command 458 is used to request value from an account in the same network. For example, the VTTP REQUEST command 458 to request ETH from an Ethereum account may look as follows:
REQUEST vttp://ROOT_URL/ethereum? from=0x004E1A8B6d1B65C2497055e65AFC5E5A46Db750D &to=0x0049b1258Fd75C021d99E2109323Daa0E9ae8a6A&value=1
The VTTP XREQUEST command 460 is used to request value from an account in another network. For example, the VTTP XREQUEST command 460 to request LTC from a Litecoin account and receive ETH in Ethereum account may look as follows:
XREQUEST vttp://ROOT_URL/ethereum/litecoin? from =0x004E1A8B6d1B65C2497055e65AFC5E5A46Db750D &to=LWhC2FmafKgDbqT129rB8Yj3dB9FVGhA2E &source=LTC&destination=ETH&value=1
The VTTP RESPOND command 462 is used to accept or deny a request received from an account in the same network. For example, the VTTP RESPOND command 462 to accept a value transfer request within Ethereum network may look as follows:
RESPOND vttp://ROOT_URL/ethereum?reqid=132376876 &status=accept
Similarly, the VTTP RESPOND command 462 to deny a value transfer request within Ethereum network may look as follows:
RESPOND vttp://ROOT_URL/ethereum?reqid=132376876 &status=deny
The VTTP XRESPOND command 464 is used to accept or deny a request received from an account in another network. For example, the VTTP XRESPOND command 464 to accept a value transfer request from Litecoin to Ethereum network may look as follows:
XRESPOND vttp://ROOT_URL/ethereum/litecoin?reqid=63768237 &status=accept
Similarly, the VTTP XRESPOND command 464 to deny a value transfer request from Litecoin to Ethereum network may look as follows:
XRESPOND vttp://ROOT_URL/ethereum/litecoin?reqid=63768237 &status=deny
The VTTP SIGN command 466 is used to sign and approve a transaction. For example, the VTTP SIGN command 466 to sign a value transfer request may look as follows:
SIGN vttp://ROOT_URL/ethereum? Id=1827637&signature=0xf86b0184ee6b280082520894187
Referring now to
Referring now to
The signature is also used to verify the message wasn't changed along the way. The VTTP server 552 returns a VTTP AUTH response 562 containing the JSON Web Token. The VTTP client 550 uses this token for all subsequent VTTP requests 564, 570, and the VTTP server 552 validates the authentication token and process the VTTP requests 564, 570, then sending respective VTTP response 568, 572. When the JSON Web token expires, the VTTP client 550 sends a new AUTH request.
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
A further embodiment of the invention may be referred to as a VTTP+ protocol. The VTTP+ protocol may be understood to build upon the VTTP protocol, including facilitating transactions from user devices, such as smart phones. Referring now to
Referring now to
-
- VTTP+ supports exchange of fiat currency (in fiat bank accounts and fiat wallet apps) with tokens on blockchain networks;
- Fiat value transfer between fiat accounts of participating fiat banks;
- Fiat value transfer between wallet accounts of participating fiat wallets;
- Fiat value transfer between fiat accounts of participating fiat banks and accounts of participating fiat wallets;
- VTTP+ allows retrieving information on accounts, balances, and transactions for all participating fiat bank accounts and fiat wallets; and
- VTTP+ allows retrieving information on accounts, balances, contracts, transactions for all participating blockchain networks.
A separate blockchain network 1116 may be used for user identity and access management. The identity information of each user may be maintained on a separate blockchain network. An identity verification and certification procedure is performed for securely linking blockchain accounts to real users. The identity (and associated blockchain accounts) of each user may be separately verified through an identity verification process. A system and associated methods for securely linking blockchain accounts to real users, as described in related U.S. patent application Ser. No. 15/863,128 titled Method and System for Blockchain-Based Combined Identity, Ownership and Custody Management filed Jan. 5, 2018, the content of which is incorporated herein by reference except to the extent disclosure therein is inconsistent with disclosure herein. A user identity registration and certification procedure may be performed, comprising receiving hashed user identification information that has been signed with a private key of the user from the user, defining a seal contract, generating an address of the seal contract, defined as a sealed user record address, and providing the sealed user record address. The procedure may further comprise receiving a hashed verification record from a certificate authority, generating an address of a verification contract from the hashed verification record, defined as a sealed verification record address and providing the sealed verification record address. Furthermore, the procedure may further comprise generating a certification contract from a combination of the sealed user record address, a certification token, and the sealed verification record address, providing a certification contract address, receiving a verification record by a certification authority comprising the hashed user identification information and a token, and receiving a combination of the certification contract address and the seal contract, defining a received certification contract address and a received seal contract, respectively. Additionally, the procedure may further comprise obtaining each of the sealed user record address and the sealed verification record address from the certification contract address, retrieving the seal contract from the sealed user record address, defining a retrieved seal contract, decrypting the retrieved seal contract using a public key associated with the user, defining a decrypted retrieved seal contract, and comparing the decrypted retrieved seal contract and the received seal contract. Yet further, the procedure may comprise retrieving the verification contract from the sealed verification record address, defining a retrieved verification contract, obtaining a certification token from the certification contract address, generating a hashed confirming verification record by hashing the combination of the decrypted retrieved seal contract and the certification token, and comparing the hashed confirming verification record to the retrieved verification contract. Upon a comparison of the decrypted retrieved seal contract and the received seal contract indicating they are at least a partial match and the comparison of the hashed confirming verification record to the retrieved verification contract indicating they are at least a partial match, a session certification token for a decentralized application may be generated. Finally, the procedure may comprise transmitting the session certification token to the user.
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
Referring now to
In some embodiments, where a sending user account address is determined to not have a present permitted transaction amount greater than a transaction amount of a transaction request, the transaction request may be re-processed, including a redetermination of if the transaction value is greater than the present permitted transaction amount of the sending user account address after at least one of a first time interval and an intervening transaction including the sending user account address. Such re-processing may be defined as a transaction retry. There may be one or more transaction retry attempts. In some embodiments, there may be a limit to transaction retry attempts based on a fixed number of attempts or a second time interval measured from the original transaction request or the first transaction retry attempt.
Referring now to
In some embodiments, where a transaction request requires a conversion between two tethered tokens that are tethered to different fiat currencies, the present permitted transaction amount may be updated to reflect additional risk in the transaction resulting from the multiple exchange rates involved.
Some of the illustrative aspects of the present invention may be advantageous in solving the problems herein described and other problems not discussed which are discoverable by a skilled artisan.
While the above description contains much specificity, these should not be construed as limitations on the scope of any embodiment, but as exemplifications of the presented embodiments thereof. Many other ramifications and variations are possible within the teachings of the various embodiments. While the invention has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed as the best or only mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims. Also, in the drawings and the description, there have been disclosed exemplary embodiments of the invention and, although specific terms may have been employed, they are unless otherwise stated used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention therefore not being so limited. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another. Furthermore, the use of the terms a, an, etc. do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced item.
Thus the scope of the invention should be determined by the appended claims and their legal equivalents, and not by the examples given.
The claims in the instant application are different than those of the parent application or other related applications. Applicant therefore rescinds any disclaimer of claim scope made in the parent application or any predecessor application in relation to the instant application. Any such previous disclaimer and the cited references that it was made to avoid, may need to be revisited. Further, any disclaimer made in the instant application should not be read into or against the parent application.
Claims
1. A blockchain value transfer method comprising:
- receiving a plurality of transaction requests, each transaction request comprising a sending user account address, a receiving user account address, and a transaction value expressed in terms of a quantity of first in-network tokens, the user account addresses being addresses on a blockchain network;
- performing a balance check procedure on each transaction request comprising: identifying a present permitted transaction amount in first in-network tokens for the sending user account address; determining if the transaction value in first in-network tokens is greater than the present permitted transaction amount of the sending user account address; upon determining the transaction value in first in-network tokens is greater than the present permitted transaction amount in first in-network tokens of the sending user account address, refusing the transaction; upon determining the transaction value is not greater than the present permitted transaction amount of the sending user account address, adding the transaction request to an aggregate transaction record; updating the present permitted transaction amount of the sending user account address reflecting a debit of the transaction value; and updating the present permitted transaction amount of the receiving user account address reflecting a credit of the transaction value;
- determining a net transaction amount for each user account address for each transaction in the aggregate transaction record, with the transaction value for transactions including the user account address as the sending user account address as a debit and as the receiving user account address as a credit; and
- executing the net transaction amount for each user account address associated with the net transaction amount by transacting tokens to and from the user account addresses upon reaching an aggregation threshold, comprising: withdrawing an amount of tokens from user account addresses with a net debit having a value equal to the value of the net debit, defined as debit user account addresses, defining debited tokens; and depositing an amount of tokens from the debited tokens to user account addresses with a net credit in an amount equal to the amount of the net credit, defined as credit user account addresses.
2. The blockchain value transfer method of claim 1 wherein execution of the net transaction amount comprises recording a net transaction smart contract to the blockchain network, the net transaction smart contract comprising each of the user account addresses and the tokens transacted with each of the user account addresses.
3. The blockchain value transfer method of claim 2 wherein the net transaction smart contract adds a transaction fee to each token transaction for the user account addresses.
4. The blockchain value transfer method of claim 1 wherein the aggregation threshold is defined as at least one of a length of time elapsing since a previous net transaction execution, a gross transaction amount, or a risk tolerance.
5. The blockchain value transfer method of claim 1 wherein each transaction request of the plurality of transaction requests has an associated transaction request smart contract recorded on the blockchain network, defining a plurality of transaction request smart contracts.
6. The blockchain value transfer method of claim 5 wherein each transaction request smart contract comprises a transaction tax added to the transaction value.
7. The blockchain value transfer method of claim 1 further comprising, for each refused transaction, re-determining if the transaction value in first in-network tokens is greater than the present permitted transaction amount of the sending user account address after at least one of a first time interval and an intervening transaction involving the sending user account address, defining a transaction retry, for one or more of a fixed number of transaction retry attempts or after a second time interval.
8. The blockchain value transfer method of claim 1 wherein
- a first sending user account address of a first transaction request of the plurality of transaction requests is on a first blockchain network comprising the first in-network token;
- a first receiving user account address of the first transaction request is on a second blockchain network and comprises a second in-network token;
- the first receiving user account address is determined to be a credit user account address; and
- executing the net transaction amount for the receiving user account comprises: exchanging an amount of first in-network tokens, equal in value to the net credit for the first receiving user account, defining a net credit value, for an amount of first tethered tokens having a value equal to the net credit value, the first tethered tokens being comprised by a first tethered token transfer record; recording a transaction to the first blockchain network of sending the first tethered token transfer record from the first blockchain network to the second blockchain network; recording a transaction to the second blockchain network of receiving the first tethered token transfer record at the second blockchain network from the first blockchain network; exchanging the first tethered tokens comprised by the first tethered transfer record for an amount of second in-network tokens having a value equal to the net credit value, defining a second blockchain network deposit; and depositing the second blockchain network deposit to the receiving user account address.
9. The blockchain value transfer method of claim 8 wherein:
- the first tethered token has a value thereof tethered to a first fiat currency;
- the first in-network token has a first exchange rate with the first tethered token; and
- the second in-network token has a second exchange rate with the first tethered token that is different from the first exchange rate.
10. The blockchain value transfer method of claim 1 wherein
- a first sending user account address of a first transaction request of the plurality of transaction requests is on a first blockchain network comprising the first in-network token;
- a first receiving user account address of the first transaction request is on a second blockchain network and comprises a second in-network token;
- the first receiving user account address is determined to be a credit user account address; and
- executing the net transaction amount for the receiving user account comprises: exchanging an amount of first in-network tokens, equal in value to the net credit for the first receiving user account, defining a net credit value, for an amount of first tethered tokens having a value equal to the net credit value, the first tethered tokens being comprised by a first tethered token transfer record; recording a transaction to the first blockchain network of sending the first tethered token transfer record from the first blockchain network to a tethered token exchange; exchanging the first tethered tokens comprised by the first tethered token transfer record for an amount of second tethered tokens having a value equal to the net credit value, the second tethered tokens being comprised by a second tethered token transfer record; recording a transaction to the second blockchain network of receiving the second tethered token transfer record at the second blockchain network from the tethered token exchange; exchanging the second tethered tokens comprised by the second tethered transfer record for an amount of second in-network tokens having a value equal to the net credit value, defining a second blockchain network deposit; and depositing the second blockchain network deposit to the receiving user account address.
11. The blockchain value transfer method of claim 10 wherein:
- a value of the first tethered token is tethered to a first fiat currency;
- a value of the second tethered token is tethered to a second fiat currency different from the first fiat currency;
- the first in-network token has a first exchange rate with the first tethered token;
- the second in-network token has a second exchange rate with the second tethered token; and
- the first tethered token has a third exchange rate with the second tethered token.
12. The blockchain value transfer method of claim 11 further comprising at least one of defining the first exchange rate responsive, the second exchange rate, and the third exchange rate responsive to the second fiat currency.
13. The blockchain value transfer method of claim 10 further comprising updating the present permitted transaction amount responsive to at least one of the first fiat currency and the second fiat currency.
14. A blockchain value transfer method comprising:
- receiving a plurality of transaction requests, each transaction request comprising a sending user account address, a receiving user account address, and a transaction value expressed in terms of a quantity of first in-network tokens, the user account addresses being addresses on a blockchain network;
- performing a balance check procedure on each transaction request comprising: identifying a present permitted transaction amount in first in-network tokens for the sending user account address; determining if the transaction value in first in-network tokens is greater than the present permitted transaction amount of the sending user account address; upon determining the transaction value in first in-network tokens is greater than the present permitted transaction amount in first in-network tokens of the sending user account address, refusing the transaction; upon determining the transaction value is not greater than the present permitted transaction amount of the sending user account address, adding the transaction request to an aggregate transaction record; updating the present permitted transaction amount of the sending user account address reflecting a debit of the transaction value; and updating the present permitted transaction amount of the receiving user account address reflecting a credit of the transaction value;
- determining a net transaction amount for each user account address for each transaction in the aggregate transaction record, with the transaction value for transactions including the user account address as the sending user account address as a debit and as the receiving user account address as a credit; and
- executing the net transaction amount for each user account address associated with the net transaction amount by transacting tokens to and from the user account addresses upon reaching an aggregation threshold, comprising: recording a net transaction smart contract to the blockchain network, the net transaction smart contract comprising each of the user account addresses and the tokens transacted with each of the user account addresses; withdrawing an amount of tokens from user account addresses with a net debit having a value equal to the value of the net debit, defined as debit user account addresses, defining debited tokens; and depositing an amount of tokens from the debited tokens to user account addresses with a net credit in an amount equal to the amount of the net credit, defined as credit user account addresses;
- wherein the aggregation threshold comprises at least one of a length of time elapsing since a previous net transaction execution, a gross transaction amount, or a risk tolerance.
15. The blockchain value transfer method of claim 14 wherein
- a first sending user account address of a first transaction request of the plurality of transaction requests is on a first blockchain network comprising the first in-network token;
- a first receiving user account address of the first transaction request is on a second blockchain network and comprises a second in-network token;
- the first receiving user account address is determined to be a credit user account address; and
- executing the net transaction amount for the receiving user account comprises: exchanging an amount of first in-network tokens, equal in value to the net credit for the first receiving user account, defining a net credit value, for an amount of first tethered tokens having a value equal to the net credit value, the first tethered tokens being comprised by a first tethered token transfer record; recording a transaction to the first blockchain network of sending the first tethered token transfer record from the first blockchain network to the second blockchain network; recording a transaction to the second blockchain network of receiving the first tethered token transfer record at the second blockchain network from the first blockchain network; exchanging the first tethered tokens comprised by the first tethered transfer record for an amount of second in-network tokens having a value equal to the net credit value, defining a second blockchain network deposit; and depositing the second blockchain network deposit to the receiving user account address.
16. The blockchain value transfer method of claim 15 wherein:
- the first tethered token has a value thereof tethered to a first fiat currency;
- the first in-network token has a first exchange rate with the first tethered token; and
- the second in-network token has a second exchange rate with the first tethered token that is different from the first exchange rate.
17. The blockchain value transfer method of claim 14 wherein
- a first sending user account address of a first transaction request of the plurality of transaction requests is on a first blockchain network comprising the first in-network token;
- a first receiving user account address of the first transaction request is on a second blockchain network and comprises a second in-network token;
- the first receiving user account address is determined to be a credit user account address; and
- executing the net transaction amount for the receiving user account comprises: exchanging an amount of first in-network tokens, equal in value to the net credit for the first receiving user account, defining a net credit value, for an amount of first tethered tokens having a value equal to the net credit value, the first tethered tokens being comprised by a first tethered token transfer record; recording a transaction to the first blockchain network of sending the first tethered token transfer record from the first blockchain network to a tethered token exchange; exchanging the first tethered tokens comprised by the first tethered token transfer record for an amount of second tethered tokens having a value equal to the net credit value, the second tethered tokens being comprised by a second tethered token transfer record; recording a transaction to the second blockchain network of receiving the second tethered token transfer record at the second blockchain network from the tethered token exchange; exchanging the second tethered tokens comprised by the second tethered transfer record for an amount of second in-network tokens having a value equal to the net credit value, defining a second blockchain network deposit; and depositing the second blockchain network deposit to the receiving user account address.
18. The blockchain value transfer method of claim 17 wherein:
- a value of the first tethered token is tethered to a first fiat currency;
- a value of the second tethered token is tethered to a second fiat currency different from the first fiat currency;
- the first in-network token has a first exchange rate with the first tethered token;
- the second in-network token has a second exchange rate with the second tethered token; and
- the first tethered token has a third exchange rate with the second tethered token.
19. The blockchain value transfer method of claim 18 further comprising at least one of defining the first exchange rate responsive, the second exchange rate, and the third exchange rate responsive to the second fiat currency.
20. A blockchain value transfer method comprising:
- receiving a plurality of transaction requests, each transaction request comprising a sending user account address, a receiving user account address, and a transaction value expressed in terms of a quantity of first in-network tokens, the user account addresses comprising: a first sending user account address of a first transaction request of the plurality of transaction requests on a first blockchain network comprising the first in-network token; and a first receiving user account address of the first transaction request is on a second blockchain network and comprises a second in-network token;
- performing a balance check procedure on each transaction request comprising: identifying a present permitted transaction amount in first in-network tokens for the sending user account address; determining if the transaction value in first in-network tokens is greater than the present permitted transaction amount of the sending user account address; upon determining the transaction value in first in-network tokens is greater than the present permitted transaction amount in first in-network tokens of the sending user account address, refusing the transaction; upon determining the transaction value is not greater than the present permitted transaction amount of the sending user account address, adding the transaction request to an aggregate transaction record; updating the present permitted transaction amount of the sending user account address reflecting a debit of the transaction value; and updating the present permitted transaction amount of the receiving user account address reflecting a credit of the transaction value;
- determining a net transaction amount for each user account address for each transaction in the aggregate transaction record, with the transaction value for transactions including the user account address as the sending user account address as a debit and as the receiving user account address as a credit, with the first receiving user account address being determined to be a credit user account address; and
- executing the net transaction amount for each user account address associated with the net transaction amount by transacting tokens to and from the user account addresses upon reaching an aggregation threshold, comprising: withdrawing an amount of first in-network tokens from user account addresses with a net debit having a value equal to the value of the net debit, defined as debit user account addresses, defining debited tokens; and exchanging an amount of first in-network tokens, equal in value to a net credit for the first receiving user account, defining a net credit value, for an amount of first tethered tokens having a value equal to the net credit value, the first tethered tokens being comprised by a first tethered token transfer record; recording a transaction to the first blockchain network of sending the first tethered token transfer record from the first blockchain network to a tethered token exchange; exchanging the first tethered tokens comprised by the first tethered token transfer record for an amount of second tethered tokens having a value equal to the net credit value, the second tethered tokens being comprised by a second tethered token transfer record; exchanging the second tethered tokens comprised by the second tethered transfer record for an amount of second in-network tokens having a value equal to the net credit value, defining a second blockchain network deposit; depositing the second blockchain network deposit to the receiving user account address; and depositing the remaining first in-network tokens from the debited first in-network tokens to user account addresses on the first blockchain network with a net credit in an amount equal to the amount of the net credit, defined as credit user account addresses.
Type: Application
Filed: Apr 29, 2019
Publication Date: Oct 10, 2019
Applicant: (Johns Creek, GA)
Inventor: Vijay Madisetti (Johns Creek, GA)
Application Number: 16/396,845