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 *big.Int 密文3

Th *big.Int 密文4

Mu *big.Int 隨機數5

IPP InnerProdArg 密文6

// challenges

Cy *big.Int 指紋1

Cz *big.Int 指紋2

Cx *big.Int 指紋3

}

普鄧森見證

散列哈希

A => Cy

S => Cz

T1, T2 => Cx

普鄧森見證(機密交易),多項式擴展

Tau, Th => lhs

Comm => rhs

內積 = 展開的多項式

內積,內乘積(也可分為3步)

Th, IPP; A, S, Mu

Mu, IPP => InnerProductVerifyFast

推薦閱讀:

相關文章