dalek-cryptography / bulletproofs

A pure-Rust implementation of Bulletproofs using Ristretto.
MIT License
1.03k stars 217 forks source link

Add Lightweight Bulletproof for Linear Relations #356

Closed cathieyun closed 2 years ago

cathieyun commented 2 years ago

In a recent paper, Gentry, Halevi, and Lyubashevsky introduced a technique for making a lightweight bulletproof for linear relations, which they call a linear proof. It is a proof of an inner product <a, b> = c where a is secret but b is public. This approach saves a factor of two in the number of exponentiations needed relative to a regular Bulletproofs inner product proof.

GHL21 paper (see section E.3): https://eprint.iacr.org/2021/1397.pdf

I implemented, tested, and benchmarked the code for the protocol, using similar techniques as found in the inner product proof.

Some notes:

cathieyun commented 2 years ago

The authors have updated the paper (https://eprint.iacr.org/2021/1397.pdf), so the verification equation typo has been fixed.

PTAL

oleganza commented 2 years ago

@cathieyun sounds great, thank you!