古老的难题
女:你爱我吗?
男:爱!
女:怎么证明?
男:……
零知识证明的定义
零知识证明(Zero-Knowledge Proof)也叫做最小泄露证明,能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄漏出去,即给外界的 “知识” 为“零”。
例子
假设A有一个带密码锁的盒子,他想在不告诉B真正密码的情况下,又让B相信A知道这个盒子的密码。那么他要怎么做呢?
A让B写了一个全世界只有B自己知道的秘密,B写下了一张“我的小狗叫Bob”的字条放入盒子中。A通过正确的密码打开盒子后获取了此信息并告知B。在这个交互过程中,B并没有得知任何此前自己不知道的信息(盒子的密码),但A还是成功的让B相信了A知道密码。
零知识证明的发展
零知识证明第一次问世是在 1985 年麻省理工学院的一篇研究论文中提出的一种加密方法,是可信计算广泛使用的密码学算法之一。其中一位作者 Silvio Micali 后来创立了 Algorand 区块链。
作者在论文中提到,证明者(prover)有可能在不透露具体数据的情况下让验证者(verifier)相信数据的真实性。
像许多技术一样,零知识证明首先吸引的是理论上的关注,然后它才在进一