Suyash Bagad
Department of Electrical Engineering, IIT Bombay
As a Part of Dual Degree (B.Tech + M.Tech) Project
Prof. Saravanan Vijayakumaran
Guide
June 29, 2020
Shorter, Privacy-Enhancing
Proof of Reserves
Proof of Reserves
Outline
Log-sized Privacy-Enhancing Proofs of Reserves Protocol
Motivation and main idea
Confidentiality of Amounts in Grin
Presented at Crypto Valley Conference on Blockchain Technology, 2020
Focus on performance trade-offs and implementation
Work accepted at IEEE Security & Privacy on Blockchain, 2020
Graph-based analysis of the Grin Blockchain
Main challenge in design
Adaptability to Edwards and Ristretto curves


MimbleWimble
Monero
Revelio
Each output in MimbleWimble is a Pedersen Commitment
For an amount a∈{0,1,…,264−1} and blinding factor k∈Zq
where g,h∈G such that DL relation between them is unknown
Revelio
For each Ci∈Canon, publish the tags (I1,…,In)∈Gn where n=∣Canon∣
Publish Cassets=∏i∈[n]Ii, and NIZK proofs σi∈Zq5 ∀i∈[n]
where yi=H(kexch,Ci)∈Zq
Drawbacks of Revelio
Proof size linear in anonymity set size
Can we shrink proofs sizes to O(log2(n))?
Can we link the blockchain state to the proof of reserves?
Privacy of outputs depends on the anonymity set n
RevelioBP!
RevelioBP!
Publish tag vector (I1,I2,…,Is), Cassets=∏i∈[n]Ii and NIZK ΠRevBP
More on RevelioBP
To build ΠRevBP, we combine the constraints using a scalar u←Zq
We then use Inner Product Argument of the form
RevelioBP proof size | Revelio proof size |
Performance Trade-offs
RevelioBP | Revelio | |
---|---|---|
Proof size | ||
Scalability | ||
Blockchain state | ||
Output privacy | ||
Inflation resistance | ||
Own set size | ||
Running times |









For UTXO set size n=1.6×105 and s=102





Proof Sizes
We implemented RevelioBP in Rust over G=secp256k1 elliptic curve


Note: All plots are in log-log scale.
RevelioBP proofs are ≥10X shorter that that of Revelio
Running Times
RevelioBP proof generation is ≈2X slower that of Revelio


Note: All plots are in log-log scale.
RevelioBP ver. is ≈3X faster than its gen. due to multi-exponentiation
MProve+
Key challenge: Unlinking key-images & one-time addresses in MProve


Use an approach similar to RevelioBP
An MProve+ proof looks like









Implementation Challenges
Implemented MProve+ and MProve in Rust over ed25519, ristretto
Small subgroup attack possible in ed25519




Implementation Challenges
Implemented MProve+ and MProve in Rust over ed25519, ristretto
Small subgroup attack possible in ed25519. For a prime q
Ristretto constructs a prime order group from an Edwards curve
MProve+ over ristretto allows generalisation for other Edwards curves
We show conversion of Ristretto points to Edwards
Wrote an Elligator support over ed25519 to generate random curve points
Running Times for Gris

Note: All plots are in log-log scale.
Thank
Happy to answer any questions!
you!
Aztec-Suyash-Round#2
By Suyash Bagad
Aztec-Suyash-Round#2
Short Presentation of thesis project for Aztec Protocol.
- 114