玩币族移动版

玩币族首页 > 区块链资讯 >

如何证明一个秘密:来自魔术师的零知识证明指南

作者:Michael Blau,a16zcrypto投资合伙人;翻译:区块链网络xiaozou

任何足够先进的技术都与魔法无异,而其中一个类似科幻小说的领域就是零知识证明(ZKP),ZKP是一种加密工具,可以解决Web3世界里的两个关键挑战:可扩展性和隐私性。尤其需要注意的是,ZKP可能是解锁更低交易费用、设计新的隐私保护应用的关键,结果就是,我们有望迎来下一批10亿加密用户。甚至在加密世界之外,ZKP有一天可能还会帮助敏感数据的安全传输,打击非法金融或打击虚假信息。

但什么是ZKP?对于工程师、研究人员和加密社区来说,有许多很好的解释,但它们并不能让加密技术或计算机科学方面经验较少的受众看得懂。即使有大量可用的比喻——从Waldo到阿里巴巴的Cave——也不容易找到一个准确、易于理解的解释,可以充分说明ZKP的超能力。

所以,我在本文结合了我的加密和魔术背景来探索尝试做出一个新比喻:把ZKP想象成一个伟大的魔术。

但首先,让我们了解一下:什么是零知识证明?

我想先分享ZKP的高级定义(特别是关于zk-SNARK的定义),以及它的各种属性,然后再将这些属性映射到魔术的比喻中。

让我们对a16z加密研究伙伴Justin Thaler对SNARK的定义进行扩展:“zk-SNARK允许某人(prover)向不信任的一方(验证者)证明他们知道一些数据,而无需透露任何关于数据本身的信息。”或者,正如麻省理工学院AIP ZK课程所提到的,“零知识协议允许我向你证明我知道一件事,而不需要告诉你这件事的具体内容。”

这在公共区块链的背景下是令人兴奋的,因为ZKP可以在保护隐私信息的同时,允许任何人(毫无疑问地)验证信息的真实性。zk-SNARK还很简洁高效:“简洁”意味着证明的大小比你所证明的数据要小。“高效”意味着验证者验证证明比分析原始数据更快(在以太坊上,这意味着智能合约处理的数据更少,用户的gas成本更低)。L2区块链可以利用zk-SNARK的简洁性和高效性,允许去中心化应用以更低的成本处理更多的数据。

总之,zk-SNARK有两个主要属性:

·隐私:你正在证明的数据(或事实或“知识”)不会有任何信息透露给验证者。

·简洁高效:验证证明比直接检查原始数据效率更高。

即使是这种高层描述听起来也有点像谜语:一个人如何在不分享信息的情况下证明自己知道某件事?

让我们再看一遍这个定义,但这一次,让我们使用一些魔术技巧。

零知识证明魔术

简单地说,魔术就是零知识证明。在魔术中,魔术师声称知道一个秘密,使他们能够表演魔术。但是他们不想把这个秘密透露给观众——那会毁了他们的把戏。

将此扩展到ZKP:将魔术师视为“prover”,将他们的观众视为“验证者”。一个成功的魔术表演(希望收获难以置信的惊叹和热烈的掌声)类似于一个“有效的”证明:这个魔术成功了,所以魔术师必须知道魔术表演的秘密。当然,如果错觉不起作用,证明是“无效的”,观众就会失望,魔术师可能实际上并不知晓秘密方法。

魔术展示了ZKP的一个属性:隐私。但是简洁性和高效性呢?让我们回到这个比喻中来……

观众可以完全跳过表演,只要求魔术师分享魔术背后的秘法。但魔术的秘密可能是复杂而精细的。即使只是解释一个魔术的方法,以及它所有的微妙之处和细微差别,也需要很长时间才能明白个大概,更不用说理解其中的奥秘了。有时,当被要求透露他们的秘密时,魔术师可能会故意向观众透露一个“错误”的解决方案,从而引导他们走上错误的道路。观众如果不能自己切实掌握这个技巧,就不能明确地确定这个秘法是否真的有效——掌握这个技巧可能需要几天、几个月甚至几年的时间。

因此,就如直接检查秘法的正确性实际上是非常耗费时间和精力的——即使魔术师愿意向观众透露秘密——ZKP也是如此。对于观众来说,通过简单地欣赏表演来验证秘法的有效性要快得多。

复牌

举一个简单的例子:我声称知道一个秘法,可以让我立即将一副混着上下两面被打乱的纸牌恢复为单面牌。我想向你证明我有这种能力,但又不想透露具体原理。在魔术结尾让大家看到一副单面牌的行为是一个有效的证明,证明我一定知道“恢复”纸牌的秘法。而当我让你见到单面牌的时候,你就可以立即验证我的说法,这比亲自学习魔术技巧要快得多。

查看更多

知识: 以太坊 智能合约 区块链的 什么是零知识证明