一、零知识证明的概念
设P(Prover,证明者)表示掌握某些信息,并希望证实这一事实的实体,设V(Verifier,验证者)是证明这一事实的实体。
某个协议向V证明P的确掌握某些信息,但V无法推断出这些信息是什么,我们称P实现了最小泄露证明。
如果V除了知道P能够证明某一事实外,不能够得到其他任何知识,我们称P实现了零知识证明,相应的协议称作零知识协议。
在最小泄露协议中满足下述两个性质:
(1)若P知道一个定理的证明方法,则P使V以绝对优势的概率相信他能证明。(完备性)
(2)若P不知道一个定理的证明方法,则P使V相信他会证明定理的概率很低。(可靠性)
在零知识协议中,除满足上述两个条件以外,还满足下述性质:
(3)V无法获取任何额外的知识。(零知识性)
二、零知识证明的例子
1、零知识洞穴
如图表示一个简单的迷宫,C与D之间有一道门,需要知道秘密口令才能将其打开。P向V证明自己能打开这道门,但又不愿向V泄露秘密口令。
可采用如下协议:
协议中,如果P不知道秘密口令,就只能从来路返回B,而不能走另一条路。此外,P每次猜中V要求走哪一条路的概率为1/2,因此每一轮中P能够欺骗V的概率为1/2,假定n取16,则执行16轮之后,P能够成功欺骗V的概率为1/2^16=1/65536。于是,如果16次P都能按V的要求返回,V即可证明P确实知道秘密口令。我们还看出,V无法从上述证明过程中获取丝毫关于P的秘密口令的信息,所以这是一个零知识证明协议。
2、三色问题-部署电塔
现在某个电信业巨头V,打算部署一个新的蜂窝电信网络。这个网络架构图2。图中的每个顶点代表一个无线电塔,每一条连线(边)代表无线电塔信号两两重叠的区域,这意味着连线上的信号会互相干扰。
该电信巨头V允许通信网络传递三种波段的信号,这样就避免了临近电梯信号干涉的问题。
挑战:如何部署不同波段的电塔,使得相邻的两个电塔不具有相同波段。
求助P,让P提供一个电塔部署图,可以得到一笔可观的咨询费。要求:
(1)V必须相信P确实提供了正确的解决方案才付费;
(2)V在未付费前不能够得到P的解决方案。
解决方案,P现在用不同颜色来表示不同波段,将其归为图的三色问题,可以得到如下解决方案。
P按V的要求打开纸板,V进行验证;
P重新着色,盖纸板,V继续验证。
不断的重复上述的挑战,直到V相信P给出了有效的着色方案。
一次验证,V被欺骗的概率:
重复n次验证,V被欺骗的概率: