This article is a summary of [BCCGP16].
Consider a situation prover wants to prove he knows two vectors (in ) such that the inner product is given . The simplest way to prove this is to send each vector to a verifier, but this is too long proof and also not zero-knowledge. In the paper, the protocol recursively reduces the length of witness to obtain proof.
Let's describe the situation formally. Information only the prover knows is red.
: additive cyclic group of order prime with DLP security.
: fixed generators for .
: witness for .
The prover commits the witness using and such that
and wants to prove this.
Protocol
Now, the length of the witness is . We want to reduce this size to in the first round, and to next round, and so on.
For the first round choose which divides , and partite and into blocks. Namely,
Similarly, define for . The prover then commits new elements
for . Here, the vector multiplication is like inner product, for example, . I omitted the start and end of the sum, which is as many indices as possible. Similarly, define and commit and , where is defined by
Next, the verifier makes a random challenge . Both prover and verifier compute a reduced statement for the next round using committed
And, the prover computes new witness
Direct computation shows that the original proof implies
and the length of witness reduces to .
By choosing proper and random challenge each round, we repeat this process until the length becomes sufficiently small.
Efficiency
Suppose is a power of and we choose the same for each round. For the prover, the main cost is from computing , , and , which requires at most group exponentiation and field multiplication. The verifier needs to compute new statements each round, which requires at most group exponentiation.
댓글
댓글 쓰기