Formal Verification of Generalized Bulletproofs
Code artifacts, definitions and proofs for GBP/Bulletproofs built upon VCVio.
Definitions
This repository contains definitions of:
- (k1,...,kn) (Computional) Special Soundness
- Honest Verififer Zero-Knowledge
- Completeness
For "sigma-style" protocols, using the formulations/ideas from "Compressed Sigma Protocols" where each protocol is viewed as an interactive reduction from its relation to the language of accepting last round messages: the statement is the verifiers state and the proof is the last round message.
Composition Theorems
Additionally, this repository contains compositions theorems stating e.g.
Soundness:
If protocol
is -special sound and protocol is -special sound. Then
(A followed by B) is -special sound
Zero-Knowledge:
If protocol
is HVZK. Then
is HVZK for any
These enable "composing" a tower of reductions, which is how folding is expressed in this project.
Proofs
Finally, this repository contains proofs of:
- Generalized Bulletproofs (Arithmetization):
- (Computional)
-special soundness - Completeness
- Perfect HVZK
- (Computional)
- Improved Generalized Bulletproofs (Arithmetization):
- (Computional)
-special soundness (observe this protocol has an additional round). - Completeness
- Perfect HVZK
- (Computional)
- Bulletproof folding:
- (Computional) 8-special soundness
- Completeness
- Simplified Bulletproof folding:
- (Computional) 4-special soundness
- Completeness
Final Notes
This is part of a bigger project (hence the lack of git history), a teaser.
More exciting news to come...