Batched Pedersen Equality Proofs
Sometime last year I came across a result that I found interesting demonstrating a variant of Schnorr’s identity protocol adapted to the case where a prover wishes to show knowledge of
We’ll be covering protocols that demonstrate:
- Knowledge of
discrete log identity - Knowledge of
discrete log identities - Knowledge of
Pedersen commitment - Knowledge of
Pedersen commitments
Note that I have not yet proven soundness of the last protocol, although it seems intuitively secure. Caveat emptor.
Schnorr’s Identity Protocol
In 1989 Claus Schnorr invented the Schnorr identity protocol, which is the basis for Schnorr signatures. It is designed to prove knowledge of a secret key. The protocol’s security reduces down to the hardness of discrete log in the chosen group.
In the following description, we assume a group
1. The prover picks randomly some |
2. The verifier picks a random challenge |
3. The prover computes scalar |
4. The verifier checks that |
It is easy to see upon expanding out the verification equation that
Schnorr Batched Identity Protocol
In 2004 a team of researchers including Rosario Gennaro discovered a generalization of Schnorr’s identity protocol which allows one to prove simultaneously
As above, we assume a group
1. The prover picks some random |
2. The verifier picks a random challenge |
3. The prover computes |
4. The verifier checks that |
As above, we can see completeness by expanding out the verification equation as
Essentially, the protocol is identical to the original, where we deal with the sum of multiple discrete log values
In terms of computation, if we are operating in an elliptic curve group, invoking the original Schnorr identification protocol
A proof of soundness can be found in the aforementioned authors’ paper, linked at the end of the post.
Schnorr’s Protocol Adapted for Pedersen Commitments
A Pedersen commitment is a commitment scheme of the form
We can create a variant of the Schnorr identification protocol to prove knowledge of a message
1. The prover picks randomly some |
2. The verifier picks a random challenge |
3. The prover computes scalars |
4. The verifier checks that |
As usual, completeness can be proven by expanding out the verification equation:
For knowledge soundness, an extractor can be constructed which runs a prover with randomness
Conceptually, this protocol is really a special case of a more generalized scheme, which can easily be derived from the description above, which modifies the original Schnorr protocol to prove knowledge of
Schnorr’s Protocol Adapted for Batched Pedersen Commitments
Here we demonstrate a protocol which proves knowledge of
1. The prover picks randomly some |
2. The verifier picks a random challenge |
3. The prover computes scalars |
4. The verifier checks that |
Completeness follows from expanding out the verification equation as
If we are working in an elliptic curve group, the protocol for a single Pedersen commitment executed
A proof of soundness is left as an exercise to the reader.
As with the previous protocol proving knowledge of only one Pedersen commitment, the generalization proving knowldge of