Enabling confidential and non-confidential transactions on a digital token architecture
AssigneeSolana Labs, Inc.
InventorsMichael Janacek Vines, Sam Bit Kim
Life of this patent
Estimating the term…
Abstract
Introduced here is a new program that was developed to provide privacy for data stored on a blockchain. This new program was designed to be deployed on the blockchain as an extension to the existing program that allows non-confidential transfers of funds. This new can work in conjunction with the existing program to permit users to conduct confidential and non-confidential transactions as necessary based on the sensitivity of the data involved.
Claims20
A non-transitory medium with instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:
- receiving input that is indicative of an instruction from an owner to initialize a first account for a first program that permits confidential transfers of tokens;
- establishing that the owner is associated with a second account for a second program that permits non-confidential transfers of tokens;
- and
- deriving an account address for the first account based on (i) an account address of the second account and (ii) a mint address of the second account.
A non-transitory medium with instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:
- receiving input that is indicative of a request to initiate a confidential transfer from a first account associated with a sender to a second account associated with a recipient,
- wherein the input includes (i) a first ciphertext encrypted under a public cryptographic key of the sender, (ii) a second ciphertext encrypted under a public cryptographic key of the recipient, and (iii) at least one zero-knowledge proof;
- subtracting the first ciphertext from an encrypted balance of the first account;
- and
- adding the second ciphertext to an encrypted balance of the second account.
A method for initiating a confidential transfer from a first account that is associated with a sender to a second account that is associated with a recipient, the method comprising:
- receiving input that includes (i) a first ciphertext that is encrypted using a public cryptographic key of the sender and (ii) a second ciphertext that is encrypted using a public cryptographic key of the recipient;
- merging the first and second ciphertexts to create a merged ciphertext;
- and
- effecting the confidential transfer by—
- subtracting the merged ciphertext from an encrypted balance of the first account, and
- adding the merged ciphertext to an encrypted balance of the second account.
Dependencies are inferred from the claim text.