Selective audit process for privacy-preserving blockchain
View Patent ↗An example operation may include one or more of identifying a first blockchain transaction stored on a blockchain ledger based on a first identifier of a user that submitted the first blockchain transaction, retrieving a secret key shared between an auditor node and the user, decrypting, via the auditor node, ciphertexts included in the first blockchain transaction based on the secret key to recover a second user identifier of the user, and identifying, via the auditor node, a second blockchain transaction of the user stored on the blockchain ledger which includes the second user identifier.
1 . An apparatus, comprising:
a hardware-implemented processor configured to:
identify, based on a first user identifier of a user that submitted a first blockchain transaction, the first blockchain transaction stored on a blockchain ledger;
retrieve a secret key shared between an auditor node and the user;
decrypt, via the auditor node, based on the secret key, ciphertexts and transaction details included in the first blockchain transaction;
validate, via the auditor node, the transaction details against a determined audit criteria, wherein the validation includes validation of a zero-knowledge proof (ZKP), submitted by the user, included in the first blockchain transaction;
recover a second user identifier of the user based on the decryption of the ciphertexts, and the validation;
identify, via the auditor node, a second blockchain transaction of the user based on the recovery of the second user identifier, wherein
the second blockchain transaction is stored on the blockchain ledger, and
the second blockchain transaction includes the second user identifier;
decrypt, based on the secret key, ciphertexts included in the second blockchain transaction; and
recover a third user identifier based on the decryption of the ciphertexts included in the second blockchain transaction.
2 . The apparatus of claim 1 , wherein the hardware-implemented processor is further configured to verify that there are no blockchain transactions, other than the first blockchain transaction, stored on the blockchain ledger with the first user identifier.
3 . The apparatus of claim 1 , wherein the first user identifier and the second user identifier are each verifiably generated based on a unique user identifier of the user and a key of the user.
4 . The apparatus of claim 1 , wherein the hardware-implemented processor is further configured to:
determine, via the auditor node, that there are no blockchain transactions stored on the blockchain ledger with the third user identifier; and
terminate, based on the determination, an audit process.
5 . The apparatus of claim 1 , wherein the first blockchain transaction and the second blockchain transaction are signed with anonymous signatures.
6 . A computer-implemented method, comprising:
identifying, based on a first user identifier of a user that submitted a first blockchain transaction, the first blockchain transaction stored on a blockchain ledger;
retrieving a secret key shared between an auditor node and the user;
decrypting, via the auditor node, based on the secret key, ciphertexts and transaction details included in the first blockchain transaction;
validating, via the auditor node, the transaction details against a determined audit criteria, wherein the validating comprises validating a zero-knowledge proof (ZKP), submitted by the user, included in the first blockchain transaction;
recovering a second user identifier of the user based on the decrypting of the ciphertexts, and the validating;
identifying, via the auditor node, a second blockchain transaction of the user based on the recovery of the second user identifier, wherein
the second blockchain transaction is stored on the blockchain ledger, and
the second blockchain transaction includes the second user identifier;
decrypting, based on the secret key, ciphertexts included in the second blockchain transaction; and
recovering a third user identifier based on the decrypting of the ciphertexts included in the second blockchain transaction.
7 . The computer-implemented method of claim 6 , wherein the validating further comprises verifying that there are no blockchain transactions, other than the first blockchain transaction, stored on the blockchain ledger with the first user identifier.
8 . The computer-implemented method of claim 6 , wherein the first user identifier and the second user identifier are each verifiably generated based on a unique user identifier of the user and a key of the user.
9 . The computer-implemented method of claim 6 , wherein the computer-implemented method further comprises:
determining, via the auditor node, that there are no blockchain transactions stored on the blockchain ledger with the third user identifier; and
terminating, based on the determining, an audit process.
10 . The computer-implemented method of claim 6 , wherein the first blockchain transaction and the second blockchain transaction are signed with anonymous signatures.
11 . A non-transitory computer-readable storage medium comprising instructions, that when read by a hardware-implemented processor, cause the hardware-implemented processor to perform:
identifying, based on a first user identifier of a user that submitted a first blockchain transaction, the first blockchain transaction stored on a blockchain ledger;
retrieving a secret key shared between an auditor node and the user;
decrypting, via the auditor node, based on the secret key, ciphertexts and transaction details included in the first blockchain transaction;
validating, via the auditor node, the transaction details against a determined audit criteria, wherein the validating includes validating a zero-knowledge proof (ZKP), submitted by the user, included in the first blockchain transaction;
recovering a second user identifier of the user based on the decrypting of the ciphertexts, and the validating;
identifying, via the auditor node, a second blockchain transaction of the user based on the recovery of the second user identifier, wherein
the second blockchain transaction is stored on the blockchain ledger, and
the second blockchain transaction includes the second user identifier;
decrypting, based on the secret key, ciphertexts included in the second blockchain transaction; and
recovering a third user identifier based on the decrypting of the ciphertexts included in the second blockchain transaction.
12 . The non-transitory computer-readable storage medium of claim 11 , wherein the validating further comprises:
verifying that there are no blockchain transactions, other than the first blockchain transaction, stored on the blockchain ledger with the first user identifier.
13 . The non-transitory computer-readable storage medium of claim 11 , wherein the first user identifier and the second user identifier are each verifiably generated based on a unique user identifier of the user and a key of the user.