CRYPTOCURRENCY SYSTEM AND METHOD FOR PERFORMING FINANCIAL TRANSACTIONS
20230068597 · 2023-03-02
Inventors
Cpc classification
G06Q20/389
PHYSICS
G06Q20/3678
PHYSICS
G06Q20/02
PHYSICS
G06Q20/4016
PHYSICS
International classification
Abstract
A cryptocurrency system and method for performing financial transactions is disclosed. The method includes receiving a request for performing a financial transaction with respect to a decentralized account associated with a sender and first set of parties. Further, the method includes performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to at least one of a recipient and a second set of parties. Also, the method includes recovering the account private key at the recipient and the second set of parties' side using the secret share key associated with each of the sender and the first set of parties. Further, the method includes discarding the secret share key of the account private key at the sender and the first set of parties' side.
Claims
1. A cryptocurrency system for performing financial transactions, the cryptocurrency system comprising: one or more hardware processors; and a memory coupled to the one or more hardware processors, wherein the memory comprises a plurality of modules in the form of programmable instructions executable by the one or more hardware processors, wherein the plurality of modules comprises: a request handler module configured for receiving a request for performing a financial transaction with respect to a decentralized account associated with a sender and first set of parties, wherein each of the sender and the first set of parties own a secret share key of an account private key associated with the decentralized account; a financial transaction management module configured for performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to at least one of a recipient and a second set of parties, a decentralized account management module configured for: recovering the account private key at the recipient and the second set of parties' side using the transferred secret share key associated with each of the sender and the first set of parties; and discarding the secret share key of the account private key at the sender and the first set of parties' side upon recovering the account private key at the recipient side and the second set of parties' side.
2. The cryptocurrency system of claim 1, wherein the decentralized account management module is further configured for: obtaining a consent for generating a set of decentralized accounts from each of the sender and the first set of parties, wherein the set of decentralized account is jointly owned by the sender and the first set of parties; and generating the set of decentralized accounts by executing a secure protocol at the sender side and the first set of parties' side.
3. The cryptocurrency system of claim 2, wherein the decentralized account management module further comprises a key management module configured for: generating a set of account private keys corresponding to the generated set of decentralized accounts, wherein each of the set of account private keys comprises a group of secret share keys; and distributing the group of the secret-share keys associated with each of the generated set of account private keys between the sender and the first set of parties based on a predefined share-key policy, wherein each secret share key among the group of the secret share keys corresponds to a portion of respective account private key corresponding to respective decentralized account.
4. The cryptocurrency system of claim 1, wherein the generated set of decentralized accounts comprises an address in a cryptocurrency system with a fund as balance.
5. The cryptocurrency system of claim 1, wherein in performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties, the financial transaction management module configured for: transferring funds to the generated set of decentralized accounts from at least one of an existing decentralized accounts and existing non-decentralized accounts, wherein the funds are transferred using a blockchain transaction.
6. The cryptocurrency system of claim 1, wherein in performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties, the financial transaction management module configured for: executing a secure protocol between the sender and the first set of parties; and transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties based on the executed secure protocol.
7. The cryptocurrency system of claim 1, wherein in performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient, the financial transaction management module configured for; transferring complete funds within the decentralized account to the recipient and the second set of parties.
8. The cryptocurrency system of claim 1, wherein in performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient and the second set of parties, the financial transaction management module configured for: obtaining a consent for performing the financial transaction from the sender and the first set of parties, the recipient and the second set of parties; and performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient and the second set of parties.
9. The cryptocurrency system of claim 1, wherein the cryptocurrency system further comprises: the request handler module further configured for receiving a request for performing the financial transaction with respect to a decentralized account from the sender, wherein the sender and the first set of parties own secret share key of the account private key associated with the decentralized account; the financial transaction management module further configured for transferring the secret share key of the account private key from the first set of parties to the sender by executing key reconstruction protocol; and the decentralized account management module further configured for reconstructing the account private key at the sender side by merging the secret share key of the sender with the secret share key transferred from the first set of parties.
10. The cryptocurrency system of claim 1, wherein the financial transaction management module is further configured for: determining funds to be transferred for performing the financial transaction; determining subset out of set of decentralized accounts associated with the sender based on the determined funds to be transferred, wherein total balance in the determined subset of decentralized account matches the determined funds to be transferred; and performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties corresponding to the determined subset of decentralized accounts to the at least one of the recipient and the second set of parties.
11. A cryptocurrency-based method for performing financial transactions in cryptocurrency systems, the cryptocurrency-based method comprising: receiving, by a processor, a request for performing a financial transaction with respect to a decentralized account associated with a sender and first set of parties, wherein each of the sender and the first set of parties own a secret share key of an account private key associated with the decentralized account; performing, by the processor, the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to at least one of a recipient and a second set of parties; recovering, by the processor, the account private key at the recipient and the second set of parties' side using the transferred secret share key associated with each of the sender and the first set of parties; and discarding, by the processor, the secret share key of the account private key at the sender and the first set of parties' side upon recovering the account private key at the recipient side and the second set of parties' side.
12. The cryptocurrency-based method of claim 11, wherein receiving the request for performing the financial transaction with respect to the decentralized account associated with the sender and the first set of parties comprises: obtaining a consent for generating a set of decentralized accounts from each of the sender and the first set of parties, wherein the set of decentralized account is jointly owned by the sender and the first set of parties: generating the set of decentralized accounts by executing a secure protocol at the sender side and the first set of parties' side; generating a set of account private keys corresponding to the generated set of decentralized accounts, wherein each of the set of account private keys comprises a group of secret share keys; distributing the group of the secret-share keys associated with each of the generated set of account private keys between the sender and the first set of parties based on a predefined share-key policy, wherein each secret share key among the group of the secret share keys corresponds to a portion of respective account private key corresponding to respective decentralized account.
13. The cryptocurrency-based method of claim 11, wherein the generated set of decentralized accounts comprises an address in a cryptocurrency system with a fund as balance.
14. The cryptocurrency-based method of claim 11, wherein performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties comprises: transferring funds to the generated set of decentralized accounts from at least one of an existing decentralized accounts and existing non-decentralized accounts, wherein the funds are transferred using a blockchain transaction.
15. The cryptocurrency-based method of claim 11, wherein performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties comprises: executing a secure protocol between the sender and the first set of parties; and transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties based on the executed secure protocol.
16. The cryptocurrency-based method of claim 11, wherein transferring the secret share key associated with each of the sender and the first set of parties to a recipient by executing a secure protocol between the sender and the first set of parties comprises: transferring complete funds within the decentralized account to the recipient and the second set of parties.
17. The cryptocurrency-based method of claim 11, wherein performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient and the second set of parties comprises: obtaining a consent for performing the financial transaction from the sender and the first set of parties, the recipient and the second set of parties; and performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient and the second set of parties.
18. The cryptocurrency-based method of claim 11, further comprising: receiving a request for performing the financial transaction with respect to a decentralized account from the sender, wherein the sender and the first set of parties own secret share key of the account private key associated with the decentralized account; transferring the secret share key of the account private key from the first set of parties to the sender by executing key reconstruction protocol; and reconstructing the account private key at the sender side by merging the secret share key of the sender with the secret share key transferred from the first set of parties.
19. The cryptocurrency-based method of claim 11, further comprising: determining funds to be transferred for performing the financial transaction; determining subset out of set of decentralized accounts associated with the sender based on the determined funds to be transferred, wherein total balance in the determined subset of decentralized account matches the determined funds to be transferred; and performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties corresponding to the determined subset of decentralized accounts to the at least one of the recipient and the second set of parties.
20. A non-transitory computer-readable storage medium having instructions stored therein that, when executed by a hardware processor, cause the processor to perform the method steps comprising: receiving a request for performing a financial transaction with respect to a decentralized account associated with a sender and first set of parties, wherein each of the sender and the first set of parties own a secret share key of an account private key associated with the decentralized account; performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to at least one of a recipient and a second set of parties; recovering the account private key at the recipient and the second set of parties' side using the transferred secret share key associated with each of the sender and the first set of parties; and discarding the secret share key of the account private key at the sender and the first set of parties' side upon recovering the account private key at the recipient side and the second set of parties' side.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0013] The disclosure will be described and explained with additional specificity and detail with the accompanying figures in which:
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022] Further, those skilled in the art will appreciate that elements in the figures are illustrated for simplicity and may not have necessarily been drawn to scale. Furthermore, in terms of the construction of the device, one or more components of the device may have been represented in the figures by conventional symbols, and the figures may show only those specific details that are pertinent to understanding the embodiments of the present disclosure so as not to obscure the figures with details that will be readily apparent to those skilled in the art having the benefit of the description herein.
DETAILED DESCRIPTION OF THE DISCLOSURE
[0023] For the purpose of promoting an understanding of the principles of the disclosure, reference will now be made to the embodiment illustrated in the figures and specific language will be used to describe them. It will nevertheless be understood that no limitation of the scope of the disclosure is thereby intended. Such alterations and further modifications in the illustrated system, and such further applications of the principles of the disclosure as would normally occur to those skilled in the art are to be construed as being within the scope of the present disclosure. It will be understood by those skilled in the art that the foregoing general description and the following detailed description are exemplary and explanatory of the disclosure and are not intended to be restrictive thereof.
[0024] In the present document, the word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment or implementation of the present subject matter described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
[0025] The terms “comprise”, “comprising”, or any other variations thereof, are intended to cover a non-exclusive inclusion, such that one or more devices or sub-systems or elements or structures or components preceded by “comprises . . . a” does not, without more constraints, preclude the existence of other devices, sub-systems, additional sub-modules. Appearances of the phrase “in an embodiment”. “in another embodiment” and similar language throughout this specification may, but not necessarily do, all refer to the same embodiment.
[0026] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this disclosure belongs. The system, methods, and examples provided herein are only illustrative and not intended to be limiting.
[0027] Embodiments of the present disclosure disclose a cryptocurrency system and method for performing financial transactions. The present disclosure enables sending cryptocurrency without incurring transaction fees and preserves decentralization (no single third-party knows all the secrets needed to send the transaction). In the present disclosure, users do not own the spending keys. Rather, the users and some reliable servers secret-share the spending keys of some accounts. In this case, “secret-share” means that each user knows a “share” of the spending keys, and an insufficient number of parties cannot reconstruct the spending keys, however a sufficient number of parties reconstructs the spending keys and perform computation over it. When the user wishes to transfer money, these servers and the user give the recipient the spending keys of these accounts, which does not incur a blockchain transaction and therefore avoids the transaction fees. The present disclosure involves three protocols, firstly, to convert existing non-decentralized accounts to decentralized accounts, secondly to transfer the ownership of decentralized accounts completely to a recipient and N parties and lastly to convert decentralized accounts back to non-decentralized accounts. Each of these protocols enable to perform the financial transactions to avoid transaction fees, prevent double spending attacks and avoid waiting time for confirmation.
[0028] Referring now to the drawings, and more particularly to
[0029]
[0030] Although
[0031] Those of ordinary skilled in the art will appreciate that the hardware depicted in
[0032] Those skilled in the art w % ill recognize that, for simplicity and clarity, the full structure and operation of all data processing systems suitable for use with the present disclosure is not being depicted or described herein. Instead, only so much of a blockchain network 100 as is unique to the present disclosure or necessary for an understanding of the present disclosure is depicted and described. The remainder of the construction and operation of the blockchain network 100 may conform to any of the various current implementation and practices known in the art.
[0033]
[0034] The processor(s) 202, as used herein, means any type of computational circuit, such as, but not limited to, a microprocessor unit, microcontroller, complex instruction set computing microprocessor unit, reduced instruction set computing microprocessor unit, very long instruction word microprocessor unit, explicitly parallel instruction computing microprocessor unit, graphics processing unit, digital signal processing unit, or any other type of processing circuit. The processor(s) 202 may also include embedded controllers, such as generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, and the like.
[0035] The memory 204 may be non-transitory volatile memory and non-volatile memory. The memory 204 may be coupled for communication with the processor(s) 202, such as being a computer-readable storage medium. The processor(s) 202 may execute machine-readable instructions and/or source code stored in the memory 204. A variety of machine-readable instructions may be stored in and accessed from the memory 204. The memory 204 may include any suitable elements for storing data and machine-readable instructions, such as read only memory, random access memory, erasable programmable read only memory, electrically erasable programmable read only memory, a hard drive, a removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, and the like. In the present embodiment, the memory 204 includes a plurality of modules stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be in communication with and executed by the processor(s) 202.
[0036] The request handler module 210 is configured for receiving a request for performing a financial transaction with respect to a decentralized account associated with a sender and first set of parties. Each of the sender and the first set of parties own a secret share key of an account private key associated with the decentralized account. The financial transaction comprises transferring of funds from one decentralized account to another decentralized account or a non-decentralized account. The secret share key is a portion of the account private key. The terms ‘first set of parties’ and N parties are used interchangeably throughout the document.
[0037] In a case, where a sender who no longer wishes to use decentralized accounts, the sender may downgrade the decentralized accounts to non-decentralized accounts. This likely happens when the sender wishes to transfer money to a receiver who does not trust that some of the sender's N parties can prevent double-spending attacks. In such embodiment of the present disclosure, the request handler module 210 is further configured for receiving a request for performing the financial transaction with respect to a decentralized account from the sender. The request handler module 210 then forwards the request to the N parties. The sender and the first set of parties own secret share key of the account private key associated with the decentralized account. In such case, the secret share key of the account private key is transferred from the first set of parties to the sender by executing key reconstruction protocol and later the account private key is reconstructed at the sender side by merging the secret share key of the sender with the secret share key transferred from the first set of parties. Hence, the sender alone has the full account private key.
[0038] The financial transaction management module 212 is configured for performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to at least one of a recipient and a second set of parties. Specifically, in performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties, the financial transaction management module 212 is configured for executing a secure protocol between the sender and the first set of parties and transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties based on the executed secure protocol.
[0039] Further, in performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient, the financial transaction management module 212 is configured for transferring complete funds within the decentralized account to the recipient and the second set of parties. Before performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient and the second set of parties, the financial transaction management module 212 is configured for obtaining a consent for performing the financial transaction from the sender and the first set of parties, the recipient and the second set of parties and then performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient and the second set of parties.
[0040] In one embodiment of the present disclosure, in performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties, the financial transaction management module 212 is configured for transferring funds to the generated set of decentralized accounts from at least one of an existing decentralized accounts and existing non-decentralized accounts. The funds are transferred using a blockchain transaction.
[0041] In case where the sender owns multiple decentralized accounts, the financial transaction management module 212 is further configured for determining funds to be transferred for performing the financial transaction. Further, the financial transaction management module 212 is configured for determining subset out of set of decentralized accounts associated with the sender based on the determined funds to be transferred. A total balance in the determined subset of decentralized account matches the determined funds to be transferred. Also, the financial transaction management module 212 is further configured for performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties corresponding to the determined subset of decentralized accounts to the at least one of the recipient and the second set of parties.
[0042] In case where the sender alone requests for full access to the account private key, the financial transaction management module 212 is further configured for transferring the secret share key of the account private key from the first set of parties to the sender by executing key reconstruction protocol.
[0043] The decentralized account management module 214 is configured for recovering the account private key at the recipient and the second set of parties' side using the transferred secret share key associated with each of the sender and the first set of parties and discarding the secret share key of the account private key at the sender and the first set of parties' side upon recovering the account private key at the recipient side and the second set of parties' side.
[0044] In an embodiment of the present disclosure, the decentralized account management module 214 is configured for obtaining a consent for generating a set of decentralized accounts from each of the sender and the first set of parties. The set of decentralized account is jointly owned by the sender and the first set of parties. Further, the decentralized account management module 214 is configured for generating the set of decentralized accounts by executing a secure protocol at the sender side and the first set of parties' side. The generated set of decentralized accounts comprises an address in a cryptocurrency system with a fund as balance.
[0045] In an embodiment of the present disclosure, the decentralized account management module 214 further comprises a key management module configured for generating a set of account private keys corresponding to the generated set of decentralized accounts. Each of the set of account private keys comprises a group of secret share keys. Further, the key management module is configured for distributing the group of the secret-share keys associated with each of the generated set of account private keys between the sender and the first set of parties based on a predefined share-key policy. Each secret share key among the group of the secret share keys corresponds to a portion of respective account private key corresponding to respective decentralized account.
[0046] In an embodiment of the present disclosure, the decentralized account management module 214 is further configured for reconstructing the account private key at the sender side by merging the secret share key of the sender with the secret share key transferred from the first set of parties.
[0047] The storage unit 206 stores the information relating to the account private keys on temporary basis. The storage unit 206, according to another embodiment of the present disclosure, is a location on a file system directly accessible by the plurality of modules. The storage unit 206 is also responsible for caching and regular updating of node data. The storage unit 206 stores decentralized account addresses, and balance of each decentralized accounts.
[0048]
[0049] In receiving the request for performing the financial transaction with respect to the decentralized account associated with the sender and the first set of parties, the cryptocurrency-based method 300 includes obtaining a consent for generating a set of decentralized accounts from each of the sender and the first set of parties. The set of decentralized account is jointly owned by the sender and the first set of parties. Further, the cryptocurrency-based method 300 includes generating the set of decentralized accounts by executing a secure protocol at the sender side and the first set of parties' side. The generated set of decentralized accounts comprises an address in a cryptocurrency system with a fund as balance. Further. the cryptocurrency-based method 300 includes generating a set of account private keys corresponding to the generated set of decentralized accounts. Each of the set of account private keys comprises a group of secret share keys. Further, cryptocurrency-based method 300 includes distributing the group of the secret-share keys associated with each of the generated set of account private keys between the sender and the first set of parties based on a predefined share-key policy. Each secret share key among the group of the secret share keys corresponds to a portion of respective account private key corresponding to respective decentralized account.
[0050] In performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties, the cryptocurrency-based method 300 includes transferring funds to the generated set of decentralized accounts from at least one of an existing decentralized accounts and existing non-decentralized accounts. The funds are transferred using a blockchain transaction.
[0051] In performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties, the cryptocurrency-based method 300 includes executing a secure protocol between the sender and the first set of parties and transferring the secret share key associated with each of the sender and the first set of parties to the at least one of the recipient and the second set of parties based on the executed secure protocol.
[0052] In transferring the secret share key associated with each of the sender and the first set of parties to a recipient by executing a secure protocol between the sender and the first set of parties, the cryptocurrency-based method 300 includes transferring complete funds within the decentralized account to the recipient and the second set of parties.
[0053] In performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient and the second set of parties. the cryptocurrency-based method 300 includes obtaining a consent for performing the financial transaction from the sender and the first set of parties, the recipient and the second set of parties; and performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties to the recipient and the second set of parties.
[0054] The cryptocurrency-based method 300 further includes receiving a request for performing the financial transaction with respect to a decentralized account from the sender. The sender and the first set of parties own secret share key of the account private key associated with the decentralized account. Further, the cryptocurrency-based method 300 includes transferring the secret share key of the account private key from the first set of parties to the sender by executing key reconstruction protocol. Furthermore. the cryptocurrency-based method 300 includes reconstructing the account private key at the sender side by merging the secret share key of the sender with the secret share key transferred from the first set of parties.
[0055] The cryptocurrency-based method 300 further includes determining funds to be transferred for performing the financial transaction. Also, the cryptocurrency-based method 300 further includes determining subset out of set of decentralized accounts associated with the sender based on the determined funds to be transferred. A total balance in the determined subset of decentralized account matches the determined funds to be transferred. Furthermore, the cryptocurrency-based method 300 further includes performing the financial transaction by transferring the secret share key associated with each of the sender and the first set of parties corresponding to the determined subset of decentralized accounts to at least one of the recipient and the second set of parties.
[0056]
[0057]
[0058] According to
[0059]
[0060]
[0061] This conversion would incur a transaction fee and take time for confirmation. However, later when the sender transfers the money by transferring the ownership of decentralized accounts. there would not be a need to pay transaction fees or wait for confirmation, hence the conversion cost is considered as one-time cost to create accounts from scratch. In this specific embodiment, at step 702, the sender and N parties run a decentralized key generation protocol to create ‘M’ new decentralized accounts, which are then funded by the sender. The decentralized key generation protocol may be any protocol that fulfils the following requirements. After running the protocol, the sender and the N parties is aware of the M decentralized accounts' public keys (i.e., addresses), which are the account private keys. After the protocol, the sender and the N parties each have one secret share key of the account private keys of each of the M decentralized accounts. The entire cryptocurrency system 200 therefore has (1+N)*M secret share keys of the account private keys. The left-to-middle part of the
[0062] In summary, for generating the decentralized accounts and funding them, there are three phases, firstly an agreement phase where the sender and the N parties agree to create some decentralized accounts, secondly a decentralized key generation phase where the sender and the N parties run some protocol to generate M new accounts and receive secret-share keys of the account private keys of these accounts and lastly a funding phase where the sender makes a standard blockchain transaction to send money to these M new accounts.
[0063]
[0064] Upon running this key resharing protocol at step 802, the recipient and the N′ parties obtain new secret share keys (denoted by k′(1), k′(2), k′(3), k′(4)) of the account private key k. This is the same key k as the one originally secret-shared by the sender and the N parties. The new secret share keys may be different from the old secret share keys or may also be the same.
[0065] Further, upon running this key resharing protocol at step 802, the recipient is certain that the secret share keys owned by the recipient and the N′ parties are used to recover the same account private key k. corresponding to an address in the cryptocurrency system 200 with a specific amount as the balance.
[0066] Furthermore, upon running this key resharing protocol at step 802, the recipient is certain that some of the N parties have successfully discarded its share of the secret share key, such that the sender and the N parties may no longer reconstruct the account private key k using the remaining shares, if any.
[0067] The money in the decentralized accounts are always sent in whole. Hence, if a sender wishes to send $20, the cryptocurrency system determines several decentralized accounts such that the total balance is exactly $20.
[0068] Eventually, as a result of the computation above, the recipient and the N′ parties now have the secret share keys of the decentralized accounts. In other words, the recipient now owns the coins, though he/she needs to work with the N′ parties to perform more transfers. This process does not require a transaction fee, as there are no blockchain transactions being generated. In addition, this process is confirmed very quickly. as the protocol is all what the sender and the receiver need. This protocol is also decentralized, as no single entity knows the key.
[0069] If N′=0, this is the special case where the recipient is now the sole entity of the account private key. The previously decentralized account now becomes a normal cryptocurrency account, where the recipient uses the account similar to those in the original cryptocurrency system. The recipient, in this case, can no longer transfer the ownership of the decentralized accounts to someone else, and money transfer would need to follow the traditional cryptocurrency protocol, which uses a blockchain transaction.
[0070] In summary, this protocol can be considered as two phases, firstly an agreement phase where the sender and the N parties, as well as the recipient and the N′ parties, agree to perform this transfer. This means that the recipient trusts that some of the N parties would refuse to participate if there is a double-spending attack, and the fact that the N parties agree to do so means this transfer would not be a double spending. Second is a key resharing phase, where the sender and the N parties, as well as the recipient and the N′ parties, run the key resharing protocol, such that the recipient and the N′ parties have the secret share keys of the account private key.
[0071] In an additional embodiment, a sender who no longer wishes to use decentralized accounts may downgrade the decentralized accounts to non-decentralized accounts. This likely happens when the sender wishes to transfer money to a receiver who does not trust that some of the sender's N parties prevents double-spending attacks. To achieve this, the sender contacts the N parties, the N parties then run a key reconstruction protocol, which fulfils the following requirements:
[0072] (1) after running the protocol, the sender receives all the secret share keys of the account private key k, which allows the sender to spend the money in the accounts directly; and
[0073] (2) after running the protocol, the N parties forget or discard the secret share keys.
[0074] In summary, this protocol can be considered as two phases, firstly, an agreement phase, where the sender and the N parties, as well as the recipient and the N′ parties, agree to perform this transfer. This means that the recipient trusts that some of the N parties would refuse to participate if there is a double-spending attack, and the fact that the N parties agree to do so means this transfer would not be a double spending. Second is a key reconstruction phase, where the sender and the N parties run the key reconstruction protocol, such as the sender now has the account private key.
[0075] Various embodiments of the present system provide a technical solution to the problem of preventing double-spending attack in cryptocurrency systems, avoiding transaction fees incurred for a transaction and reduce or avoid confirmation time required for the transaction to be confirmed on the blockchain network. In the present system, instead of transferring the money, the sender and the N parties send the account private key to the receiver. The N parties forget the secret share key later, such that the receiver has the full ownership of the coins in the account. As long as the receiver trusts that some of the N parties are trustworthy, they can be certain that there is nobody else who can spend money in that account, and the receiver owns those coins. To achieve this, first, all the coins in a decentralized account are transferred. Further, it is considered that the sender has many decentralized accounts, each of the which has some small amounts of money. To transfer, for example, $20, the sender selects a subset of his or her decentralized accounts such that the total balance in these accounts are $20. Second, this protocol avoids transaction fees, provides fast confirmation, and is decentralized. Since there is no actual transaction being created, there are no transaction fees. The confirmation is also quick because the receiver does not need to wait for the block containing the transaction to be finalized on the blockchain (to avoid suffering double-spending attacks). The present system is also decentralized, as one or even some of the N parties, even if they collude with each other or are compromised by the same attacker, would not be able to spend the user's money without the user's approval.
[0076] The written description describes the subject matter herein to enable any person skilled in the art to make and use the embodiments. The scope of the subject matter embodiments is defined by the claims and may include other modifications that occur to those skilled in the art. Such other modifications are intended to be within the scope of the claims if they have similar elements that do not differ from the literal language of the claims or if they include equivalent elements with insubstantial differences from the literal language of the claims.
[0077] The embodiments herein can comprise hardware and software elements. The embodiments that are implemented in software include but are not limited to, firmware, resident software, microcode, etc. The functions performed by various modules described herein may be implemented in other modules or combinations of other modules. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can comprise, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
[0078] The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid-state memory, magnetic tape, a removable computer diskette, a random-access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM). compact disk-read/write (CD-R/W) and DVD.
[0079] Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
[0080] A representative hardware environment for practicing the embodiments may include a hardware configuration of an information handling/computer system in accordance with the embodiments herein. The system herein comprises at least one processor or central processing unit (CPU). The CPUs are interconnected via system bus to various devices such as a random-access memory (RAM), read-only memory (ROM), and an input/output (I/O) adapter. The I/O adapter can connect to peripheral devices, such as disk units and tape drives, or other program storage devices that are readable by the system. The system can read the inventive instructions on the program storage devices and follow these instructions to execute the methodology of the embodiments herein.
[0081] The system further includes a user interface adapter that connects a keyboard, mouse, speaker, microphone, and/or other user interface devices such as a touch screen device (not shown) to the bus to gather user input. Additionally, a communication adapter connects the bus to a data processing network, and a display adapter connects the bus to a display device which may be embodied as an output device such as a monitor, printer, or transmitter, for example.
[0082] A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary, a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention. When a single device or article is described herein, it will be apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the invention need not include the device itself.
[0083] The illustrated steps are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments. Also, the words “comprising,” “having,” “containing,” and “including,” and other similar forms are intended to be equivalent in meaning and be open-ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise.
[0084] Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based here on. Accordingly, the embodiments of the present invention are intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.