• 密码学 | 承诺:Pedersen 承诺 + ZKP


    🥑原文:Toward Achieving Anonymous NFT Trading

    🥑写在前面:看了篇 22 年 SCI 3 区论文,里面提到在 Pedersen 承诺的揭示阶段可以使用零知识证明,而不必揭示消息明文和随机数。姑且记录一下这个方法。



    1 Pedersen 承诺

    以下是原文对 Pedersen 承诺的介绍😽

    ​一个承诺方案在承诺者 C 和接收者 R 之间进行。承诺者首先对一个秘密消息进行承诺,并将承诺发送给接收者。将来,这个秘密消息被打开给接收者,并且有一个有效的算法来验证打开的消息确实是用于生成承诺的确切消息。

    这一段是对承诺的介绍,承诺全称就是承诺方案。

    为此,公布一个具有阶 q q q 的群 G \mathcal{G} G 和两个生成元 G G G H H H 作为公共参数。C 随机选择 r ∈ Z q r∈Z_q rZq,并通过生成 c o m = m G + r H com = mG + rH com=mG+rH 来对消息 m m m 进行承诺,其中 c o m com com 发送给 R 。C 通过透露 ( m , r ) (m,r) (m,r) 来打开这个承诺,以便 R R R 可以检查 c o m = m G + r H com = mG + rH com=mG+rH 是否成立。

    我真是服了: G \mathcal{G} G G G G 都是字母 G,只不过使用了不同的字体,以区分一个是循环群,一个是生成元。



    2 Pedersen 承诺 + ZKP

    为了保护消息 m m m 不被泄露给他人,C 可以生成一个关于消息打开过程的 知识证明,这样就能证明自己对消息内容的知晓,而不必直接透露消息本身,这一方案建立在如下原理之上。

    在之前的学习中,C 都是直接揭示的消息 m m m 明文。如果消息 m m m 不涉及隐私,那么公布明文也无所谓,承诺的主要作用也只是为了防止 C 胡乱解读消息;如果消息 m m m 涉及隐私,那么我们将不希望公布明文。

    承诺阶段

    C 选择随机数 r r r 为消息 m m m 生成承诺:

    c o m = m ∗ G + r ∗ H com = m*G + r*H com=mG+rH

    C 将承诺 c o m com com 发送给 R 。

    承诺阶段的操作没有改变。

    揭示阶段

    C 并不直接给 R 发送 ( m , r ) (m,r) (m,r),而是 ( P , x ′ , y ′ ) (P,x',y') (P,x,y)

    x , y ← Z q P = x ∗ G + y ∗ H h   ← R O ( P ) x ′ = x + h ∗ m , y ′ = y + h ∗ r x,yZqP=xG+yHh RO(P)x=x+hm,y=y+hr x,yZqP=xG+yHh RO(P)x=x+hm,y=y+hr

    R 收到 ( P , x ′ , y ′ ) (P,x',y') (P,x,y) 后验证:

    h   ← R O ( P ) P + h ∗ c o m = ? x ′ ∗ G + y ′ ∗ H h RO(P)P+hcom?=xG+yH h RO(P)P+hcom=?xG+yH

    注意:RO 是指 Random Oracle 随机预言机 这一抽象概念,在具体实现中通常是一个抗碰撞的哈希函数。

    我的证明

    对式子 ( 6 ) (6) (6) 的证明如下:

    P + h ∗ c o m = ( x ∗ G + y ∗ H ) + h ∗ ( m ∗ G + r ∗ H ) = ( x + h ∗ m ) ∗ G + ( y + h ∗ r ) ∗ H = x ′ ∗ G + y ′ ∗ H P+hcom=(xG+yH)+h(mG+rH)=(x+hm)G+(y+hr)H=xG+yH P+hcom=(xG+yH)+h(mG+rH)=(x+hm)G+(y+hr)H=xG+yH



  • 相关阅读:
    2023高教社杯 国赛数学建模C题思路 - 蔬菜类商品的自动定价与补货决策
    阿里云 linux tomcat 无法访问方法
    git初级
    Java并发-操作系统,进程,线程,并行并发?
    更新npm和node
    Acwing 842. 排列数字
    Mac上在vm虚拟机上搭建Hadoop集群并安装zookeeper hive hbase
    matlab画图中图
    vue中常用的两种路由模式
    为什么软件可以被破解,但是压缩包却破解不了?
  • 原文地址:https://blog.csdn.net/m0_64140451/article/details/137987161