零知识证明及其计算复杂性(Zero Knowledge Proof and Its Computational Complexity)

零知识证明是指在证明某件事情的过程中,并不泄露关于这件事情本身的信息。比如Alice向Bob证明她自己有某间教室的钥匙,但是她不能让Bob知道这个钥匙长什么样:有多长、有多少齿、每个齿有多大形状如何等等,因为Bob知道钥匙的具体形状之后,Bob就能自己去仿制一把钥匙用来打开教室的门,然后就可能做一些坏事,所以Alice需要在向Bob证明自己有钥匙的同时,保证Bob无法知道钥匙具体是什么形状。

以这个例子来说,零知识证明的形象化过程可以描述为:现在Alice和Bob两个人中Alice有教室的钥匙,但是Bob没有钥匙,现在Bob想把一些物品存放到教室里,但是Bob不相信Alice有教室的钥匙,无法放心地把物品交给Alice去存放,于是现在Alice为了证明她自己有钥匙,但是又不让Bob知道钥匙是什么样子,于是他们决定这么做,先检查下走廊里没有别人,然后Bob去检查确保教室的门是锁上的,然后Bob到走廊入口处站岗,保证没有别人进入走廊,这个时候Alice过去拿出钥匙把门打开,然后通知Bob,这个时候Bob就回来检查门锁被打开了,由于这期间没有别人进入走廊,所以由此Bob就能确定Alice拥有教室的钥匙,但是Bob也没有知道钥匙的形状,此时就完成了零知识证明。

Leave Comment

电子邮件地址不会被公开。 必填项已用*标注