前言本篇主要分享基于Bulletproofs的Range proof的具体实现细节,并和当前github已有的实现做了对比分析。
阅读本篇前,假设您已经阅读了:
Step1. 理解零知识证明算法之Bulletproofs –Range Proof I (8btc com/media/530155)
Step2. 理解零知识证明算法之Bulletproofs –Range Proof II (8btc com/media/532874)
回顾
Range proof
一个开源的实现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 大概率成立。
总结本篇主要分享了 基于Bulletproofs的Range proof实现细节,结合本系列前面的两篇文章,相信读者能对Range proof的背后的原理有了相对深刻的理解。下一篇文章,将主要分享Bulletproofs在一般计算上的应用。谢谢大家
附录1. Bulletproofs 论文:chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=https%3A%2F%2Feprint.iacr.org%2F2017%2F1066.pdf
2. Bulletproofs 项目地址:https://github com/dalek-cryptography/bulletproofs