草稿-Bulletproofs,零知識證明(範圍證明)
Bulletproofs RangeProof
v 是輸入的金額(原始消息)
Comm 是用普鄧森見證加密的密文(根據原始消息 + 隨機數得到)
對 v 進行左、右簡單處理,之後用普鄧森見證加密(新原始消息 + 新隨機數),得到 A,散列哈希得到 Cy
隨機數 S 也是用普鄧森見證生成的,主要是方便後續使用,散列哈希得到 Cz
T1、T2,原理相同,都是使用普鄧森見證生成的,主要是方便後續使用,它們兩者散列哈希得到 Cx
內積(略)
Tau,Th 展開的多項式
Mu,隨機數 & Cx (即 T1、T2)得到
type RangeProof struct {
Comm ECPoint 密文1
A ECPoint 密文2
S ECPoint 隨機數1
T1 ECPoint 隨機數2
T2 ECPoint 隨機數3
Tau *http://big.Int 密文3
Th *http://big.Int 密文4
Mu *http://big.Int 隨機數5
IPP InnerProdArg 密文6
// challenges
Cy *http://big.Int 指紋1
Cz *http://big.Int 指紋2
Cx *http://big.Int 指紋3
}
普鄧森見證
散列哈希
A => Cy
S => Cz
T1, T2 => Cx
普鄧森見證(機密交易),多項式擴展
Tau, Th => lhs
Comm => rhs
內積 = 展開的多項式
內積,內乘積(也可分為3步)
Th, IPP; A, S, Mu
Mu, IPP => InnerProductVerifyFast
推薦閱讀: