Privacy preserving auditable accounts
AssigneeInternational Business Machines Corporation
InventorsElli Androulaki, Kaoutar El Khiyaoui
Life of this patent
Estimating the term…
Abstract
An approach for privacy-preserving auditable accounts on blockchain networks. The approach may include encoding tokens associated with a blockchain network. The encoding may include data relating to the current epoch, where an epoch is a specific time range. The tokens may be received from a user for inspection by an auditing entity. The approach may include performing an audit check on the encoded tokens. If the audit check succeeds, the auditing entity may submit an audit transaction verifying the tokens were generated in the current epoch and making the tokens auditable for the next epoch.
Claims18
A computer-implemented method for privacy-preserving auditable accounts, the method comprising:
- generating at least one token, wherein the at least one token is encoded with an owner identifier, a type, a value, a current epoch, transferability, a seed, and a r value;
- generating a zero-knowledge proof, wherein the zero-knowledge proof denotes the owner of the at least one token is a registered user of a blockchain network;
- assembling a first transaction message, wherein the first transaction message comprises the at least one token, the zero-knowledge proof, and a public key of an issuer;
- signing the first transaction message, wherein the signature is based on a private key associated with the issuer's public key;
- broadcasting the first transaction message to the blockchain network;
- transferring the ownership of one or more tokens, wherein transferring comprises consuming tokens to be transferred and creating one or more tokens with the same value and type of the input tokens, and which encode the current epoch, a second seed, and a second r value, the new owner identifier and a bit that indicates that they are not transferable yet;
- generating a token serial number for each of the one or more input tokens;
- generating a second zero-knowledge proof to show the input tokens are transferrable and that the newly created tokens are not;
- and
- generating a second anonymous signature for the transaction, wherein the second anonymous signature demonstrates the signer knows a secret key of the owner of the one or more input tokens.
A computer system for privacy-preserving auditable accounts, the system comprising:
- a memory;
- and
- a processor in communication with the memory, the processor being configured to perform operations comprising:
- generate at least one token, wherein the at least one token is encoded with an owner identifier, a type, a value a current epoch, transferability, a seed, and a r value;
- generate a zero-knowledge proof, wherein the zero-knowledge proof denotes the owner of the at least one token is a registered user of a blockchain network;
- assemble a first transaction message, wherein the first transaction message comprises the at least one token, the zero-knowledge proof, and a public key of an issuer;
- sign the first transaction message, wherein the signature is based on a private key associated with the issuer's public key;
- broadcast the first transaction message to the blockchain network;
- transfer the ownership of one or more tokens, wherein the transfer operations comprise:
- consume tokens to be transferred and creating one or more tokens with the same value and type of the input tokens, and which encode the current epoch, a second seed, and a second r value, the new owner identifier and a bit that indicates that they are not transferable yet;
- generate a token serial number for each of the one or more input tokens;
- generate a second zero-knowledge proof to show the input tokens are transferrable and that the newly created tokens are not;
- and
- generate a second anonymous signature for the transaction, wherein the second anonymous signature demonstrates the signer knows a secret key of the owner of the one or more input tokens.
A computer program product for privacy-preserving auditable accounts, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processors to perform operations, the operations comprising:
- generate at least one token, wherein the at least one token is encoded with an owner identifier, a type, a value, a current epoch, transferability, a seed, and a r value;
- generate a zero-knowledge proof, wherein the zero-knowledge proof denotes the owner of the at least one token is a registered user of a blockchain network;
- assemble a first transaction message, wherein the first transaction message comprises the at least one token, the zero-knowledge proof, and a public key of an issuer;
- sign the first transaction message, wherein the signature is based on a private key associated with the issuer's public key;
- broadcast the first transaction message to the blockchain network;
- transfer the ownership of one or more tokens, wherein the transfer operations comprise:
- consume tokens to be transferred and creating one or more tokens with the same value and type of the input tokens, and which encode the current epoch, a second seed, and a second r value, the new owner identifier and a bit that indicates that they are not transferable yet;
- generate a token serial number for each of the one or more input tokens;
- generate a second zero-knowledge proof to show the input tokens are transferrable and that the newly created tokens are not;
- and
- generate a second anonymous signature for the transaction, wherein the second anonymous signature demonstrates the signer knows a secret key of the owner of the one or more input tokens.
Dependencies are inferred from the claim text.