CA-3017579-C - SYSTEMS AND METHODS FOR PROVIDING A PERSONAL DISTRIBUTED LEDGER
Abstract
An embodiment of a method of recording transactions conducted in a public distributed ledger system using a personal distributed ledger system includes: generating, by a wallet distributed application, an address in the public distributed ledger system and a private key; signing, by the wallet distributed application, a transaction to a distributed application in the public distributed ledger system using the generated address and private key; generating, by the wallet distributed application, a transaction to the personal distributed ledger system, the generated transaction containing information identifying the signed transaction to the public distributed ledger system, such as the private key used to sign the transaction; and transmitting, by the wallet distributed application, the transaction to at least one distributed node of the personal distributed ledger system.
Inventors
- Richard Collin
Assignees
- THOMSON REUTERS GLOBAL RESOURCES UNLIMITED COMPANY
Dates
- Publication Date
- 20260505
- Application Date
- 20170602
- Priority Date
- 20170602
Claims (12)
- CLAIMS 1. A method of conducting transactions the method comprising: generating, by a wallet distributed application for a user, an address for use with a public distributed ledger system and a private key; generating, by the wallet distributed application, a first transaction to a distributed application in the public distributed ledger system, the generating using the generated address and private key; transmitting the first transaction to the public distributed ledger system for execution; upon execution of the first transaction, generating, by the wallet distributed application, a second transaction to a smart contract of a personal distributed ledger system, the generated second transaction containing information identifying the executed first transaction, the identifying information including at least a portion of the executed first transaction and the private key used to sign the first transaction, the personal distributed ledger system being separate from the public distributed ledger system and including only distributed nodes authorized by the user, the authorized distributed nodes including a validator node hosted by a financial institution system; transmitting, by the wallet distributed application, the second transaction to at least one distributed node of the personal distributed ledger system; retrieving, by the validator node hosted by the financial institution system, at least a portion of the identifying information from the personal distributed ledger system by executing a read call to the smart contract of the personal distributed ledger system; determining, by the financial institution system, whether to authorize the user associated with the personal distributed ledger system to further conduct transactions in the public distributed ledger system using tokens of the public distributed ledger system minted by the financial institution system, the determining based on the retrieved identifying information; and in response to determining to authorize the user, minting, by the financial institution system based on the retrieved identifying information, the tokens of the public distributed ledger system for use by the user to conduct further transactions in the public distributed ledger system.
- 2. The method of claim 1, wherein the information identifying the signed transaction to the public distributed ledger system includes an execution receipt for the signed transaction.
- 3. The method of claim 1, further comprising: receiving, by the wallet distributed application, an invocation to sign the first transaction, the invocation including the transaction, the invocation received from the distributed application of the public distributed ledger system.
- 4. The method of claim 1, further comprising: generating a third transaction utilizing the minted tokens.
- 5. The method of claim 1, wherein: the smart contract includes program instructions stored on a distributed ledger of the personal distributed ledger system, the program instructions including a storage function and a read function; the generated second transaction invokes the storage function to store the identifying information on the distributed ledger of the personal distributed ledger system; the authorized distributed nodes include a master node; and the read call to the smart contract invoking the read function of the program instructions of the contract to retrieve the at least a portion of the identifying information.
- 6. At least one non-transitory machine-readable storage medium having program instructions, which when executed by processors cause a method of conducting transactions to be performed, the method comprising: generating, by a wallet distributed application for a user, an address for use with a public distributed ledger system and a private key; generating, by the wallet distributed application, a first transaction to a distributed application in the public distributed ledger system, the generating using the generated address and private key; transmitting the first transaction to the public distributed ledger system for execution; upon execution of the first transaction, generating, by the wallet distributed application, a second transaction to a smart contract of a personal distributed ledger system, the generated second transaction containing information identifying the executed first transaction, the identifying information including at least a portion of the executed first transaction and the private key used to sign the first transaction, the personal distributed ledger system being separate from the public distributed ledger system and including only distributed nodes authorized by the user, the authorized distributed nodes including a validator node hosted by a financial institution system; transmitting, by the wallet distributed application, the second transaction to at least one distributed node of the personal distributed ledger system; retrieving, by the validator node hosted by the financial institution system, at least a portion of the identifying information from the personal distributed ledger system by executing a read call to the smart contract of the personal distributed ledger system; determining, by the financial institution system, whether to authorize the user associated with the personal distributed ledger system to further conduct transactions in the public distributed ledger system using tokens of the public distributed ledger system minted by the financial institution system, the determining based on the retrieved identifying information; and in response to determining to authorize the user, minting, by the financial institution system based on the retrieved identifying information, the tokens of the public distributed ledger system for use by the user to conduct further transactions in the public distributed ledger system.
- 7. The at least one non-transitory machine-readable storage medium of claim 6, wherein the information identifying the signed transaction to the public distributed ledger system includes an execution receipt for the signed transaction.
- 8. The at least one non-transitory machine-readable storage medium of claim 6, the method further comprising: receiving, by the wallet distributed application, an invocation to sign the first transaction, the invocation including the transaction, the invocation received from the distributed application of the public distributed ledger system.
- 9. The at least one non-transitory machine-readable storage medium of claim 6, wherein: the smart contract includes program instructions stored on a distributed ledger of the personal distributed ledger system, the program instructions including a storage function and a read function; the generated second transaction invokes the storage function to store the identifying information on the distributed ledger of the personal distributed ledger system; the authorized distributed nodes include a master node; and the read call to the smart contract invokes the read function of the program instructions of the contract to retrieve at least a portion of the identifying information.
- 10. A system for conducting transactions, the system comprising: a host computing system including at least one processor configured to execute program instructions to cause the following to be performed: generating, by a wallet distributed application for a user, an address for use with a public distributed ledger system and a private key; generating, by the wallet distributed application, a first transaction to a distributed application in the public distributed ledger system, the generating using the generated address and private key; transmitting the first transaction to the public distributed ledger system for execution; upon execution of the first transaction, generating, by the wallet distributed application, a second transaction to a smart contract of a personal distributed ledger system, the generated second transaction containing information identifying the executed first transaction, the identifying information including at least a portion of the executed first transaction and the private key used to sign the first transaction, the personal distributed ledger system being separate from the public distributed ledger system and including only distributed nodes authorized by the user, the authorized distributed nodes including a validator node hosted by a financial institution system; transmitting, by the wallet distributed application, the second transaction to at least one distributed node of the personal distributed ledger system; and a validator computing system including at least one processor configured to execute program instructions to cause the following to be performed: retrieving, by the validator node hosted by the financial institution system, at least a portion of the identifying information from the personal distributed ledger system by executing a read call to the smart contract of the personal distributed ledger system; determining, by the financial institution system, whether to authorize the user associated with the personal distributed ledger system to further conduct transactions in the public distributed ledger system using tokens of the public distributed ledger system minted by the financial institution system, the determining based on the retrieved identifying information; and in response to determining to authorize the user, minting, by the financial institution system based on the retrieved identifying information, the tokens of the public distributed ledger system for use by the user to conduct further transactions in the public distributed ledger system.
- 11. The system of claim 10, wherein the information identifying the executed first transaction includes an execution receipt for the first transaction.
- 12. The system of claim 10, wherein the host system is further configured to cause the following to be performed: receiving, by the wallet distributed application, an invocation to sign the first transaction, the invocation including the first transaction, the invocation received from the distributed application of the public distributed ledger system.
Description
SYSTEMS AND METHODS FOR PROVIDING A PERSONAL DISTRIBUTED LEDGER CROSS REFERENCE TO RELATED APPLICATIONS [0001] This application claims priority to U.S. Provisional Patent Application No. 5 62/346,097, filed on June 6, 2016, and U.S. Patent Application No. 15/612,288, filed on June 2, 2017, each of which are hereby incorporated by reference herein in their entireties. BACKGROUND INFORMATION [0002] Distributed ledger systems are increasingly used to implement currency, financial transactions and other functions. Often, it is desirable for a user to conduct transactions with 10 such systems anonymously, in order to conceal their financial positions, etc. One way for users to conduct transactions anonymously within a distributed ledger system is to generate and use a different public address and private key for each transaction. As users typically store private keys used to sign transactions in a secure location outside the distributed ledger system, it is usually not possible to connect the identity of the user to the transaction through 15 the private key. [0003] In tension with this, know-your-customer regulatory mandates typically require banks, financial institutions and other entities to verify the identity of their customers. Knowyour- customer mandates help prevent criminals from using transactions conducted through these institutions to perform money laundering and other crimes. However, a user 20 conducting transactions anonymously through the use of newly generated addresses and keys for every transaction stifles satisfaction of know-your-customer mandates. [0004] Thus, a need exists for systems and methods to securely but reliably link transactions conducted anonymously in a distributed ledger system and the user conducting the transactions. 25 BRIEF DESCRIPTION OF THE DRAWINGS [0005] So that the features of the present invention can be understood, a number of drawings are described below. However, the appended drawings illustrate only particular embodiments of the invention and are therefore not to be considered limiting of its scope, for the invention may encompass other equally effective embodiments. [0006] FIG. 1 is a schematic diagram depicting an embodiment of a system for providing a personal distributed ledger. [0007] system. [0008] FIG. 2 is a schematic diagram depicting an embodiment of a distributed ledger FIG. 3 is a schematic diagram depicting an embodiment of a distributed node of a distributed ledger system. 5 [0009] FIG. 4 is a schematic diagram depicting another embodiment of a system for providing a personal distributed ledger. [0010] FIG. 5 is a flowchart depicting an embodiment of a method of using a personal distributed ledger system to record details of transactions conducted in a public distributed ledger system. 10 [0011] FIG. 6 is a schematic diagram depicting another embodiment of a system for providing a personal distributed ledger. [0012] FIG. 7 is a flowchart depicting an embodiment of a method of using a personal distributed ledger system to confirm a record of transactions conducted in a public distributed ledger system. 15 [0013] FIG. 8 is a schematic diagram depicting another embodiment of a system for providing a personal distributed ledger. [0014] FIG. 9 is a schematic diagram depicting another embodiment of a system for providing a personal distributed ledger. [0015] FIG. 10 is a flowchart depicting an embodiment of a method of using a personal 20 distributed ledger system to store digital assets, identity data and/or custom data. [0016] FIG. 11 is a flowchart depicting an embodiment of a method of using a personal distributed ledger system to distribute digital assets, identity data and/or custom data. DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS [0017] Embodiments of a system for providing a personal distributed ledger record of 25 details of transactions conducted in a public distributed ledger system in a personal distributed ledger system, enabling an immutable, secure and reliable link between the transactions conducted in the public ledger and the user conducting the transactions. [0018] To conduct transactions in the public distributed ledger system, a wallet distributed application may be invoked by a distributed application of the public distributed 30 ledger system. The wallet application may generate an address in the public distributed ledger system and a private key, sign the transaction using the generated address and key, and transmit the signed transaction to a distributed node of the public distributed ledger system. To record details of the transaction in a personal distributed ledger, the wallet application also may generate a transaction invoking a smart contract in the personal distributed ledger system 5 and containing details of the transaction conducted in the public distributed ledger system, such as the private key used to sign the transaction and an identifier identifying the transaction, and transmit the generated transaction to a distr