1. 引言
前序部落格:
- Bulletproofs: Short Proofs for Confidential Transactions and More學習筆記
- Bulletproofs 代碼解析
- Bulletproofs+: Shorter Proofs for Privacy-Enhanced Distributed Ledger學習筆記
- Bulletproofs+ 代碼解析
Liam Eagen 2022年3月論文《Bulletproofs++》。
開源代碼實作見:
- https://github.com/sanket1729/rust-bulletproofs-pp(Rust)
Bulletproofs++ 在 Bulletproofs 和 Bulletproofs+ 的基礎上,實作了:
- 1)新的range proof:具有更短的proof size的同時,具有更短的witness length。
- 1.1)将(weighted)inner product協定修改為可證明norm relation——即self inner product,與此同時,僅需要對該vector commit一次。
- 1.2)借助norm relation argument,建構了a binary digit range proof,其witness length僅為 Bulletproofs和Bulletproofs+ 的一半。
- 1.3)借鑒由BG12論文派生的logarithmic permutation argument,以及本文的norm argument,建構了一組具有任意bases的range proof方案。
-
1.3.1)對于64 bit range proof:采用16個十六進制數字,reciprocal range proofs中包含10個曲線點和3個标量,其proof size對應Curve25519為416位元組,對應SECP256k1為418位元組。
該proof size比Bulletproofs+ 小約27%,比Bulletproofs小約38%。
- 1.3.2)witness length與Verification Complexity成比例,縮小了約6倍,随着range number的增加,可縮小約8倍。
-
-
2)新的confidential transaction協定:支援多種currency類型。
使用permutation argument建構了支援多種currency類型的 zero knowledge confidential transaction protocol:
- 采用one multiplication per input and per output,并支援多方證明,進而大大改進基于ring signature以及Bulletproof所建構的confidential transactions。
具體range proof證明性能對比為:
range proof驗證性能對比為:
不同range proof的proof size對比為: