Intuitions Behind the Range Proofs of Bulletproof
In this video I quickly go over the amazing post from the dalek implementation of bulletproof, which itself goes over the range proof protocol of Bulletproofs: Short Proofs for Confidential Transactions and More.
Note that if you don’t know what bulletproof or IPA are, you can check my previous writing on the subject.
To summarize, the way I see the rangeproof protocol built on top of bulletproof/IPA is that you’re proving execution of a circuit with:
- input := a (hiding) commitment to the bits of , and an intermediary value
- expected output := something based on , the (hiding) commitment to
if you can prove the execution of that circuit (which essentially checks that values are bits, and that they are the correct bit decomposition of ) correctly, then you convinced the verifier that is n-bit. The computation is compressed in that inner product where:
- are intermediary values in our circuit, computed from and respectively to embody the circuit logic (unlike other intermediary values, these can be computed by the verifier directly)
- is an intermediary value that contains the expected output, so we need to prove how it connects with the expected output
the proof that the inner product itself is delegated to the IPA proof system, so most of the complexity there is to understand how the intermediary variables are calculated and how they connect (the blinding is what makes it more complicated)