什么是零知识证明
零知识证明,也叫作 ZKP ,是 zero-knowledge proof 的缩写。 通俗解释, 零知识证明指的是 在我不给你提供任何有用信息的情况下,但是我能够让你相信我得论断是正确的。这当中涉及到证明者和验证者,证明者提供信息,验证者来验证,证明 者向验证者证明并使其相信自己知道或拥有某一消息 ,但是却不提供任何有意义的信息。这就是所谓的零知识证明。 其实,零知识证明在生活中很常见。比如, A 要向 B 证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。 这时有 2 个 方法 : 方法一: A 把钥匙出示给 B , B 用这把钥匙打开该房间的锁,从而证明 A 拥有该房间的正确的钥匙。 方法二: B 确定该房间内有某一物体, A 用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给 B ,从而证明自己确实拥有该房间的钥匙 。方法二就 属于零知识证明。它的好处在于,在整个证明的过程中, B 始终不能看到钥匙的样子,从而避免了钥匙的泄露 。 零知识证明在区块链中的应用 零知识证明在区块链中的典型应用是在扩容解决方案中 ZK rollup. 我们知道,底层区块链只需计算轻量化的交易证明,验证网络活动并储存原始交易数据。 零知识汇总解决方案 是 在链下处理交易并在发布到底层区块链之前对其进行批处理 , 还生成用于验证交易数据真实性的加密有效性证明 , 称为 SNARK 。 L1 上的合约可以快速验证 ZK-SNARK 证明,这就类似于我我们刚开始举的例子,我去房间取东西,间接证明我有房间钥匙是一样的道理。一句话汇总, ZK Rollups 是 分批处理链下交易并生成加密有效性证明以验证每批交易的真实性。 许多项目都在开发基于 ZK rollups 的以太坊扩容方案。比如 dYdX 、 Loopring 、 Polygon Miden 、 Polygon Hermez 等等明 零知识证明的挑战 从数学意义上来讲,零知识证明并非真正的证明,因为证明者说谎而不被验证者识别的概率,虽然可以无限趋近于零,但它永远不会到达零。因此零知识证明并不能保证 100 % 有效。 硬件方面,市面上目前还没有专门用作零知识证明相关的硬件和软件。零知识证明需要证明者和...