零知识证明系统:交互式与非交互式的探索
1. 零知识证明系统的基础与推论
在零知识证明系统中,保密性通常是在接收方披露其在承诺阶段使用的抛硬币结果后才得以确立。这里,证明者扮演接收方的角色,验证者扮演发送方的角色。事后确立保密性就足够了,因为若保密性未确立,验证者会拒绝。实际上,完美承诺方案的保密性仅用于确保交互式证明的可靠性。基于命题4.8.8,我们得到推论:如果存在非均匀无爪集合,那么NP中的每一种语言都有一个轮次高效的零知识证明系统。
2. 限制作弊证明者的能力
在假设存在无爪集合的情况下,构造4.9.1为NP问题产生了轮次高效的零知识证明系统。若假设存在单向函数,我们可以修改构造4.9.1,以获得零知识计算可靠的证明系统。在修改后的协议中,验证者使用具有计算保密性的承诺方案,而不是构造4.9.1中使用的具有完美保密性的承诺方案。此外,证明者使用的承诺方案必须是非遗忘的,即很难在“不知道”承诺值的情况下构造承诺。
2.1 非遗忘承诺方案
非遗忘承诺方案与知识证明的定义密切相关。
-定义:设(S, R)是如定义4.4.1中的(完美绑定)承诺方案。若规定的接收方R构成一个知识验证者,且对于关系
[((1^n,r, m), (\sigma, s)) : m = view_S(\sigma,1^n,s){R(1^n,r)}]
总是被S说服,则称该承诺方案是非遗忘的。其中,(view_S(\sigma,1^n,s){R(1^n,r)})表示交互式机器R在输入(1^n)和本地硬币r时,与机器S(输入为((\sigma, 1^n))并使用硬币s