Zero-knowledge distributed ledgers with confidential assets and inter-asset auditing capabilities
A method may include: a broadcaster computer program generating, for participants in a network in a transaction, a commit, an audit token, and a proof of consistency; the broadcaster computer program broadcasting, the commits, the audit tokens, and the proofs of consistency for each participant to all participants in the network; the participant computer programs generating complimentary commits, complimentary audit tokens, complementary proofs of consistency, proofs of equivalency, and a proof of assets; the broadcaster computer program receiving from each of the participant computer programs, the proof of assets, the complimentary commit, the complimentary audit token, the complementary proof of consistency, and the proof of equivalency; the broadcaster computer program and/or the participant computer programs verifying, the proofs of assets, the proofs of balance, the proofs of consistency, and the proofs of equivalency; and the broadcaster computer program approving the transaction based on the verification.
1 . A method, comprising:
generating, by a broadcaster computer program, for each participant in a network in a transaction involving an exchange of assets among the participants that are owners of the assets, a commit, an audit token, and a proof of consistency, wherein the proof of consistency proves that the transaction is consistent with a distributed ledger;
broadcasting, by the broadcaster computer program, the commits, the audit tokens, and the proofs of consistency for each participant to all participants in the network;
generating, by the participant computer program for each participant, complimentary commits, complimentary audit tokens, complementary proofs of consistency, proofs of equivalency that show that the commits have the same value, and a proof of assets that proves that a transferring bank has sufficient assets for the transaction;
receiving, by the broadcaster computer program and from each of the participant computer programs, the proof of assets, the complimentary commit, the complimentary audit token, the complementary proof of consistency, the proof of equivalency;
verifying, by the broadcaster computer program and/or the participant computer programs, that each participant has sufficient assets for the transaction based on the proofs of assets, that the proof of consistency and the complimentary proof of consistency are consistent, and the commit and the complimentary commit have the same value based on the proofs of equivalency; and
approving, by the broadcaster computer program, the transaction based on the verification.
2 . The method of claim 1 , further comprising:
generating, by the broadcaster computer program, for each asset in a transaction, a commit, an audit token, and a proof of consistency.
3 . The method of claim 1 , wherein the broadcaster computer program further selects for each participant, a random point, wherein the commit is based on the random point, an asset value for the participant, and two random number generators of a cyclic group.
4 . The method of claim 3 , further comprising:
signing, by the broadcaster computer program, the random point with the audit token.
5 . The method of claim 1 , further comprising:
verifying, by a participant computer program for each participant, its proof of consistency; and
generating, by the participant computer program for each participant, a commit and a token pair.
6 . The method of claim 5 , wherein the participant computer program verifies its proof of consistency by extracting an integer value from its audit token and commit.
7 . The method of claim 1 , wherein the approval is based on a consensus of the participants.
8 . The method of claim 1 , wherein the verification of the proofs of assets requires the complementary commits and the complimentary audit tokens from each participant.
9 . The method of claim 1 , wherein the verification of the proofs of assets requires the commits and the audit tokens for each participant.
10 . A system comprising:
a broadcaster computer program executed by a computer processor at one of a plurality of nodes in a network;
a plurality of participant computer programs, each participant computer program executed by a computer processor at a participant node for a participant in the network;
wherein:
the broadcaster computer program is configured to generate, for each of the participants in a transaction involving an exchange of assets among the participants that are owners of the assets, a commit, an audit token, and a proof of consistency, wherein the proof of consistency proves that the transaction is consistent with a distributed ledger;
the broadcaster computer program is configured to broadcast the commits, the audit tokens, and the proofs of consistency for each participant to all participants in the network;
the participant computer programs are configured to generate complimentary commits, complimentary audit tokens, complementary proofs of consistency, proofs of equivalency that show that the commits have the same value, and a proof of assets that proves that a transferring bank has sufficient assets for the transaction;
the broadcaster computer program is configured to receive, from each of the participant computer programs, the proof of assets, the complimentary commit, the complimentary audit token, the complementary proof of consistency, and the proof of equivalency;
the broadcaster computer program and/or participant computer programs are configured to verify that each participant has sufficient assets for the transaction based on the proofs of assets, that the proof of consistency and the complimentary proof of consistency are consistent, and the commit and the complimentary commit have the same value based on the proofs of equivalency; and
the broadcaster computer program is configured to approve the transaction based on the verification.
11 . The system of claim 10 , wherein the broadcaster computer program is further configured to generate, for each asset in a transaction, a commit, an audit token, and a proof of consistency.
12 . The system of claim 10 , wherein the broadcaster computer program is further configured to select, for each participant, a random point, wherein the commit is based on the random point, an asset value for the participant, and two random number generators of a cyclic group.
13 . The system of claim 12 wherein the broadcaster computer program is further configured to sign the random point with the audit token.
14 . The system of claim 10 , wherein participant computer program is further configured to verify, for each participant, its proof of consistency, and to generate, for each participant, a commit and a token pair.
15 . The system of claim 14 , wherein participant computer program is configured to verify its proof of consistency by extracting an integer value from its audit token and commit.
16 . The system of claim 10 , wherein the approval is based on a consensus of the participants.
17 . The system of claim 10 , wherein the verification of the proofs of assets requires the complementary commits and the complimentary audit tokens from each participant.
18 . The system of claim 10 , wherein the verification of the proofs of assets requires the commits and the audit tokens for each participant.
19 . The system of claim 10 , wherein the verification of the proofs of balance requires the commits and the audit tokens for each participant.