Suyash Bagad, Saravanan Vijayakumaran
Department of Electrical Engineering, IIT Bombay
IEEE Security & Privacy on the Blockchain, 2020
September 7, 2020
What is a proof of reserves? Why is it necessary?
Revelio - current state-of-the-art for MimbleWimble
RevelioBP - a Bulletproofs based proof of reserves for MimbleWimble
Performance comparison of RevelioBP and Revelio
Future scope
Proof of ownership of a certain amount of assets
For crypto exchanges, challenge is proving this without revealing any sensitive information
Exchanges
UTXO Set
a1
a2
a3
a4
We own some addresses
which contain a total of
an amount hidden in a
Pedersen commitment Cres.
Reserves: Cres=gr1⋅h∑iai,
Proof of solvency: Cres⋅Cliab−1 commits to an integer in range [0,M],M>0
Liabilities: Cliab=gr2⋅h∑ili
Each output in MimbleWimble is a Pedersen Commitment
Pedersen Commitments are homomorphic, perfectly hiding and computationally binding
For an amount a∈{0,1,…,264−1} and blinding factor k∈Zq
Let G be a prime ordered group (∣G∣=q) with generators g,h∈G such that DL relation between them is unknown
Proves that each Ci∈Canon, is either owned OR not owned by exchange
σi are NIZK proofs of representation of discrete log
Proof size linear in anonymity set size: (n+1)∈G, 5n∈Zq
Free choice of Canon; Can we have Canon=UTXO?
We then use the inner product argument of the form
RevelioBP proof size | Revelio proof size |
To build ΠIP, we combine the constraints using a scalar u←Zq
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
RevelioBP proof generation is 2X slower that of Revelio
Note: All plots are in log-log scale.
RevelioBP ver. is 4X faster than its gen. due to multi-exponentiation
RevelioBP | Revelio | |
---|---|---|
Proof size | ||
Scalability | ||
Blockchain state | ||
Output privacy | ||
Inflation resistance | ||
Own set size | ||
Running times | ||
Parallelizable |
For UTXO set size n=1.6×105 and s=50
100
Proof of reserves using other proof systems: zk-SNARKs like PLONK, Sonic for O(1)-time verification - will require additional assumptions
Extend it to other cryptocurrencies - work in progress for Monero
B. Bünz et al., "Bulletproofs: Short Proofs for Confidential Transactions and More," 2018 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, 2018, pp. 315-334, doi: 10.1109/SP.2018.00020.
Russell W. F. Lai et al., "Omniring: Scaling Private Payments Without Trusted Setup". In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security (CCS '19). ACM, New York, NY, USA, 31–48. DOI: 10.1145/3319535.3345655
G. Dagher et al. "Provisions: Privacy-preserving Proofs of Solvency for Bitcoin Exchanges". In Proceedings of the 2015 ACM SIGSAC Conference on Computer and Communications Security. ACM, New York, NY, USA, 720–731. DOI: 10.1145/2810103.2813674