深入零知识证明——能做的和不能做的
简介
关于零知识证明技术 (ZKPs) 的潜力,一些人感到兴奋并沉迷其中。这种情况下,ZKPs 就像是密码学上的涅磐境界,好像没有任何问题是 ZKPs 无法解决的。
有人将 ZKPs 描述为综合性的隐私解决方案,这是不准确的。本文的目的是对 ZKPs 能做和不能做的内容进行诚实的评估,特别是在涉及隐私方面。我们还将研究可以与 ZK 搭配使用以加强 ZKPs 的工具。
ZKPs 具有一些出色的优点,但也有局限性。了解两者之间的区别是至关重要的,只有这样,我们才能负责任地将它们纳入自己的工具箱中进行构建。
ZKPs允许用户在不透露任何细节的情况下证明自己的知识
零知识证明使用户能够证明他们知道某些信息,而不透露任何细节。为此,必须有一个“证明者/测试者”和一个“验证者”。
有一个关于洞穴的故事来解释 ZKPs:
两个朋友,Alice 和 Jorge,发现了一个洞穴。这个洞穴有两条通往中心处的路径,那里有一扇门。这扇门上有一个代码,据说连接了这两条路径。
Jorge 声称自己知道门上的代码。Alice 想从他那里购买这个代码,但想要证明他确实知道它。Jorge 不能直接告诉她代码以证明他的知识。因此,他们都同意进行一个“零知识”的交换测试。
Alice 让 Jorge 通过其中一条路径进入洞穴。如果他确实知道代码,他就可以通过另一条路径出来。
零知识证明是这个故事的一个加密解决方案。它利用一个序列生成“证明”,而两个当事人之间不需要进行任何知识交换。
ZKPs 提供了交易隐私和可扩展性。
ZKPs 的一个简单用例是识别用户和检查签名。这完全符合它的强项。
像 ZCash 这样的项目还利用零知识来提供交易隐私。
ZKPs 以其可扩展性而闻名。一份信息可以用轻量级“证明”替换,从而减轻区块链拥堵并加快交易速度。这使得 ZKPs 适用于构建高度可扩展的 layer 1 或 layer 2 扩展解决方案,如 zero-knowledge rollups。
ZKPs 无法实现安全计算或可扩展隐私。
ZKPs 可以在“本地”(在交易级别)实现隐私承诺。但是它们无法在“全局”(网络级别、应用程序、多方)级别保密。
例如,为了使 DeFi 变得私密,用户需要能够与无信任代理进行交易,例如基于智能合约的 DEX,同时始终保持其数据的隐私。但是使用 ZKPs 无法实现这一点。
当我们从交易进入安全计算领域时,ZKPs 的隐私保障就会出现问题。
Secret Labs 的首席执行官 Guy Zyskind 解释了这种情况的实际运作方式:
中心化的一方(通常被称为序列器)在链下执行所有交易(和计算)。这意味着客户端直接与这个序列器进行交互,而不是与区块链进行交互,并将它们的非加密输入数据发送给它。序列器在运行所有计算后,生成一个简明证明,并将其与输出(通常是更新后的状态)一起发送到区块链上。区块链作为验证器,验证证明是否正确,如果正确,就应用状态更改,而不直接了解客户端的数据。所有通用区块链ZK解决方案都使用这种拓展方法。
- 星际资讯
免责声明:投资有风险,入市须谨慎。本资讯不作为投资建议。