前言

本篇主要分享基於 Bulletproofs 的 Range proof 的具體實現細節,並和當前 github 已有的實現做了對比分析。 閱讀本篇前,假設您已經閱讀了:

Step1. 理解零知識證明算法之 Bulletproofs --Range Proof 1

Step2. 理解零知識證明算法之 Bulletproofs --Range Proof 2

回顧

ZKSwap 團隊理解零知識證明算法之 Bulletproofs --Range Proof 3

ZKSwap 團隊理解零知識證明算法之 Bulletproofs --Range Proof 3

Range proof

ZKSwap 團隊理解零知識證明算法之 Bulletproofs --Range Proof 3

一個開源的實現
Bulletproof 的 rangeproof 的開源實現,項目地址在 https://github.com/dalek-cryptography/bulletproofs,相對於本篇分享的內容,下圖中展示內容主要有以下幾點不同:

1. 本文講述的是以離散對數爲基礎;圖中以橢圓曲線離散對數爲基礎,因此只要把指數操作轉化爲乘法操作即可

2. 圖中最後的驗證內容:實際上是本篇公式 (19) 和 (24) 的結合,利用假設:如果 AcB = 1, 則有很大的概率滿足 A =1 & B =1。因此,公式 (19) 和 (24) 可優化爲一個驗證等式,即 (19)c(24) =? 1,若成立,則等式 (19) =? 1 & (24) =? 1 大概率成立。

ZKSwap 團隊理解零知識證明算法之 Bulletproofs --Range Proof 3

總結
本篇主要分享了 基於 Bulletproofs 的 Range proof 實現細節,結合本系列前面的兩篇文章,相信讀者能對 Range proof 的背後的原理有了相對深刻的理解。下一篇文章,將主要分享 Bulletproofs 在一般計算上的應用。謝謝大家

附錄
1. Bulletproofs 論文:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8418611
2. Bulletproofs 項目地址:https://github.com/dalek-cryptography/bulletproofs

來源鏈接:zks.org