| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 基于 MPC 的零知识证明协议 -> 正文阅读 |
|
[区块链]基于 MPC 的零知识证明协议 |
参考文献:
ZKP零知识证明协议的基本定义在这篇文章。 交互式最近看到了另一种描述 ZKP 的表述:
完备性:诚实的Prover拥有 S 1 S_1 S1?,他总是可以给出 step 4 中所要求的两种Proof,因此Verifier最终会相信他。 可靠性:一个恶意的Prover,他没有 S 1 S_1 S1?,为了通过 step 4 的验证,他不得不猜测Verifier的选择。如果猜测Verifier会执行 step 4.1,那么敌手就在 step 2 中选择一个 H 2 ? H 1 H_2 \cong H_1 H2??H1?,同时他不拥有对应的 S 2 S_2 S2?。如果猜测Verifier会执行 step 4.2,那么敌手就在 step 2 中随机生成一个难题 H 2 ′ H_2' H2′?以及对应的解法 S 2 ′ S_2' S2′?,但同时他无法证明 H 1 ? H 2 ′ H_1 \cong H_2' H1??H2′?。 零知识性:一个恶意的Verifier,他无法让第三方Alice相信上述 Proof 的有效性。假设敌手用一个摄像机记录协议的每一步,即使视频中显示Prover总是给出了正确的 Proof,Alice也总是可以质疑:每当Prover猜对了,Verifier就保留视频;每当Prover猜错了,Verifier就删除视频。人们无法区分真实记录(in the real world)和伪造记录(in the ideal world)! 人们已经证明:
非交互式上述的Alice不相信的原因是,她没有介入 ZKP 的交互。为了Prover为了让任何人相信他的Proof,他需要一个非交互式的ZKP。每当Prover发布Proof后,任何人都可以验证这个Proof是否有效(身份认证协议、签名协议)。 利用 Hash 函数 H H H代替了 Verifier:
这儿的 H H H扮演了无偏随机比特发生器的角色。如果恶意Prover不拥有 S S S,那么他最多只能给出 step 4 中的某一个Proof,而不能同时都给出Proof,因此为了欺骗,他必须能够预测 H H H的输出。 当然,是Prover(而非Verifier)来挑选的 b b b,因此敌手完全可以随机猜测 b b b的前 n n n位,然后尝试不同的 { S i } \{S_i\} {Si?}组合,直到全部猜对 n n n个比特。此时,敌手就可以给出一个合法的 Proof 了。为了抵挡敌手的穷举攻击,我们需要将 n n n设置的比较大,例如 64 , 128 64,128 64,128 JKO(2013)ZKP 可以作为一种特殊的 malicious secure computation,根据声明 y y y构造电路 C ( ? , y ) C(\cdot,y) C(?,y)( C ( x , y ) = 1 ?? ? ?? ( x , y ) ∈ R C(x,y)=1 \iff (x,y) \in R C(x,y)=1?(x,y)∈R),其中作为Prover的一方输入证据 x x x,作为Verifier的一方什么也不输入,最后电路结果 C ( x , y ) C(x,y) C(x,y)输出给Prover。 很明显,利用任意的 cut-and-choose-based 2PC protocol,总是可以实现上述的恶意敌手安全的两方计算。但是,直接使用 C&C 技术的 2PC 协议,对应的混淆电路过于巨大。 Jawurek, Kerschbaum 和 Orlandi 观察到:由于 Verifier 没有输入,因此如果让他来生成 GC,那么这个 GC 可以同时用来 checking 和 evaluation:翻转角色,我们让 Verifier 生成一个Yao’s Garbled Circuit,在打开后 Prover 虽然能观察到全部的 label,理论上可以获得 Verifier 的任意明文输入比特,但是奈何 Verifier 根本就没有隐私输入。因此,只需要令重复因子为 ρ = 1 \rho=1 ρ=1,C&C 技术下的混淆电路规模大幅减小。 JKO协议如下:
明显上述的非交互式 ZKP 协议是完备的。下面讨论其安全性:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:28:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |