干货 | 从「模拟」理解零知识证明:平行宇宙与时光倒流
I know that I know nothing
—— 苏格拉底
安全的定义与不可区分性
「安全」需要有一个数学意义上的严格定义
完美安全:假设你是一个攻击者,你通过密文获取不到任何有价值的信息,破解的唯一手段就是靠瞎蒙。

语义安全:假设你是一个攻击者,你通过密文在多项式时间内计算不出来任何有价值的信息。
你随机产生两段等长的明文,
m1=「白日依山尽,黄河入海流」,
m2=「烫烫烫烫烫,烫烫烫烫烫」
你把这两段明文,m1 与 m2 交给我
我随机挑选一个明文,
不告诉你是哪一个,然后进行加密,
产生一个密文 c
我把密文 c 出示给你看,让你猜这个c 究竟
是由唐诗加密产生,还是乱码加密产生
如果你用一台计算机来破解c,
在多项式时间内破解不出来,
也就是说你没办法区分c的来源,
那么就说明加密算法是语义安全的
遇见模拟器
n
轮挑战,没有发现对方作弊,即「你」的两个分身都认为对方确实知道「答案」。换句话说,「你」没有能力「区分」出来自己到底在 「现实世界」 还是 「理想世界」,当然也没能力「区分」和自己对话的究竟是 Alice 还是 Zlice。不仅如此,对于吃瓜群众我而言,如果把「我」作为观察者放入任何一个世界中,我会和你一样「无法区分」出来眼前的 这个长相为 “Alice” 的人到底是真还是假。
区分两个世界


w
,甚至不想让 Bob 从交互的过程中分析出哪怕一丁点的信息。那么怎么保证这一点呢?「模拟器」这时候登场了,它能模拟出一个和现实世界外表一模一样的「理想世界」,然后「模拟器」在这个世界中可以轻松地骗过任何一个对手,让对方无法分辨自己是在现实世界中,还是理想世界中。因为「模拟器」手里没有那个秘密 w
,「理想世界」是零知识的。又因为两个世界的不可区分性,所以我们可以得出结论:Alice 的交互协议是「零知识」的。地图三染色问题的零知识证明

-
第一步:Alice 把地图染色答案做一次完全置换,然后将所有顶点盖上纸片,交给 Bob -
第二步:Bob 随机挑选一条边 -
第三步:Alice 打开指定边的两端顶点的纸片,Bob检验两个顶点的颜色是否相同,如果不同则通过,如果相同则失败 -
回到第一步,重复 n
遍








不诚实的 Bob
阿里巴巴、洞穴与芝麻开门


模拟与图灵机
柏拉图的洞穴寓言
未完待续
参考文献
往期回顾

长按二维码添加微信进群讨论零知识证明
info@secbit.io
安比(SECBIT)实验室