Try   HackMD

Pedersen Commitment

Public setup:

  • 对某椭圆曲线群
    G
    ,随机生成
    n
    个点
    (G0,G1,Gn1)

承诺阶段
Prover:

  • 假设要对向量
    a=(a0,a1,,an1)
    其中
    aiFr
    ,进行承诺,
    C=i=0n1aiGi
  • C
    发送给 Verifier
  • 一般承诺方案会作为一个组件嵌入到更大的一个协议中,因此接下来 Prover 将使用
    a
    生成其他的证明。

揭示阶段
Prover:

  • 把原始向量
    b=(b0,b1,,bn1)
    发送给 Verifier

Verifier:

  • 验证
    C=i=0n1biGi
    是否成立。如果成立,即可验证 Prover 承诺的数据确实就是
    a
    ,即
    bi=ai

安全性分析

假设

G 的 generator 是
G
Gi=ciG
Gi
之间的离散对数关系不知道。
ci
对双方都是未知的

C=i=0n1aiciG。理论上存在
ba
,使得
i=0n1aici=i=0n1bici
。但是要找到这样的
b
,相当于能攻破离散对数难题。