什么是 zk-SNARKs

原文:What Is zkSNARK: A Beginner-Friendly Explainer

作者:phemex

编译:火火

出品:白话区块链(ID:hellobtc)

原用标题:一文说透 V 神眼里未来十年和区块链一样重要的 zk-SNARKs

一直以来,区块链的不可能三角(即可拓展性、去中心化、安全性)三者只能得其二),所以在以太坊实现了较高程度的安全和隐私之后,扩容变成重中之重。

因此 Layer 2 顺势而生,当下在 Layer 2 扩容方案中,ZK 技术被太坊联合创始人 Vitalik Buterin (V 神) 认为是解决扩容问题的最终方案。

5 月 21 日,在黑山举办的非营利性的年度全球以太坊会议 EDCON 2023 大会上,V 神表示,未来 10 年,以 ZK 为底层技术的 zk-SNARK 将与区块链一样重要。

那么最近 V 神力推的 zk-SNARKs 到底是什么?能解决哪些区块链疑难杂症?一起来看看今天的这篇介绍。

以下为正文:

什么是 zk-SNARKs?

1. 谁创造了 zk-SNARKs?

“zk-SNARKs” 一词是由一群密码学家创建的,其中包括 Nir Bitansky、Alessandro Chiesa 和 Eran Tromer,最初这些人在一篇论文中发表了关于 zk-SNARKs 的基本原理。由此,zk-SNARKs 逐步被许多不同的项目和团队开发和改进。

2.zk-SNARK 代表什么?

- ZK:zero knowledge 零知识

零知识意味着正在验证声明的人无法从验证过程中获得任何新信息。换句话说,在零知识证明过程中,验证者只知道陈述是对还是错,除此之外一无所知。

- S:simplicity 简洁

简洁的 zk-SNARKs 证明是简短且易于验证的证明。这与常规的零知识证明形成对比,后者可能非常长且复杂。通常,zk-SNARK  证明可以在几毫秒内得到验证。

- N:non-interactive 非交互式

非交互式 zk-SNARKs 证明不需要证明者和验证者之间的任何交互。这意味着只有一条结果消息从证明者发送到验证者。这与交互式证明形成对比,在交互式证明中,证明者和验证者必须相互来回交互才能完成证明。

- AR:argument 争论

论点是支持一个观点的一个或一组理由。在 zk-SNARKs 的上下文中,论证是一系列数学运算,用于证明一个陈述论点是正确的。

- K:knowledge 知识

知识是指证明者知道完成证明所需的某些信息的想法。例如,这可能是帐户的私钥。

综上所述,zk-SNARKs 是一个 ZK 系统(零知识证明系统),它允许用户(“证明者”)向另一方(“验证者”)证明某些东西,比如他们的身份、他们的资金所有权等,而无需透露有关这些资产的任何信息。例如:

- 用户应该能够证明他的账户中有足够的余额来购买产品或服务,而不必分享他所拥有的确切金额;
- 用户应该能够在访问应用程序之前验证他的身份,而不必共享他的个人数据。

以如何 “向一个 5 岁的孩子解释 zk-SNARKs” 举例,这里可以通过一个游戏来解释 zk-SNARKs 是什么:

“想象一下,你正在和三个朋友一起玩 “语文老师在哪里?”,奖项是 1000 美元的赌注由获胜者平分。你和你的朋友围坐在一张桌子旁,每个人都拿到了一张有语文老师的图片。

你必须在图片中找到语文老师, 一旦找到语文老师就需要证明你找到了他,但不能透露她的位置或其他任何信息。换句话说,您想在不透露任何超出您声明有效性的信息的情况下证明对事实的了解。

运用 zkSNARK 原中,可以拿一张相同大小的纸,并在图片中语文老师的位置标记一个点。然后可以把纸藏在一个盒里,一旦你的朋友解决了这个谜题,他们就可以自己看到你标记的语文老师所在的位置。”

换句话说,zk-SNARKs 允许你证明你所需的验证信息,而无需透露该信息的具体值。在当前跨链生态系统中,使用 zk-SNARKs 技术可以维护其平台上构建的区块链和 DApp 的隐私。

在这里面,关键思想是验证者不可能获得关于该证明的任何信息(因此称为 “零知识” 证明)。

zk-SNARKs  运作原理

zk-SNARKs 在加密领域尤为重要,因为许多区块链本质上是公开的,隐私就变得尤为重要。

最著名的例子是 Zcash,它是一种隐私加密资产。当在比特币和以太坊等公链交易 Zcash 时,会使用发送方和接收方地址等详细信息以及输入和输出值(即花费了多少,未花费多少)进行验证。

但通过 zk-SNARKs,Zcash 可以在不公开地址和价值等信息的情况下证明交易有效。

Zcash 如何使用 zkSNARKS 为加密用户提供隐私层
来源:Blockchainhub.net

zk-SNARKs 如何运作?数字签名构成了 zk-SNARKs 的工作原理。数字签名使用加密算法对敏感信息进行保护,使其对另一方隐藏,同时向该方提供所要求的必要证据。

那么具体它是如何完成的呢?步骤如下:

1. 证明者首先生成一对密钥,一个公钥,一个私钥。他使用私钥签署交易。
2. 然后证明者将此交易编码为 zk-SNARKs,这是交易有效的数学证明。
3. 证明与公钥一起发送给验证者。然后,验证者使用公钥检查公式是否正确,而无需了解有关交易的任何其他信息。由于只验证少量信息,因此可以非常快速地完成此检查,以确认交易有效。

zk-SNARKs 的具体用例

1. 哪些 Token 使用 zk-SNARKs?

SNARK 加密 Token 是一种使用 zk-SNARKs 来改善隐私的加密资产,也称为隐私 Token。这类隐私 Token 的例子有:
- Zcash (ZEC)
- Verge (XVG)
- Monero (XMR)
- Dash (DASH)
- Beam (BEAM)
- Horizen (ZEN)
- Bytecoin (BCN)

zk-SNARKs 的主要挑战是如果私钥被泄露,就可以创建伪造的证明。这可能允许伪造证明的创建者进行欺诈,例如,创建和使用伪造的隐私币。

2. zk-SNARKS 的其他应用

Filecoin 是一个去中心化存储提供商,运作过程涉及多个方面。

首先,Filecoin 网络上的存储提供者(提供存储空间以换取区块奖励),而 “证明者”,必须证明他们正在正确地将数据存储在链上。

另一方面,我们有 “验证者”,即节点,他们必须验证存储提供商是否正确存储和保护数据。这些验证者必须对存储提供者给出的证明感到满意。

这要求存储提供商和节点在数据易手时进行通信。可以想象,这一过程将是资源密集型的。

Filecoin 官方博客文章解释道:“为了验证他们的存储,如今单个存储提供商提供的必须证明的数据量是巨大的,而且只会随着时间的推移而增长。Filecoin 网络的出块时间为 30 秒。为了保持时间不变并启用可扩展的方法,Filecoin 需要一种允许快速、高效和稳健验证的解决方案,”

借助 zk-SNARKs,Filecoin 网络可以通过减少各方验证存储所需的时间来提高其可扩展性和效率。

对于存储提供商,zk-SNARKs 减少了他们需要传输的数据量以证明其存储,从而降低了运营成本。

3. zk-SNARKs 还可以用于其他事情

例如:

-  身份验证:无需密码即可验证用户凭据,不再需要护照、出生证明等文件证明,以保护出生地点和出生日期等敏感信息。

- 投票系统:无需身份识别即可验证选民身份,即使选票泄露也无法识别选民身份,从而保护选民隐私。

-  数据压缩:这是 zk-SNARKS 的一个有趣用途,值得单独展开一节。

小结

总的来说,zk-SNARKS 有三个关键要点:

1.zkSNARKS 是一种零知识证明系统,它允许一方向另一方证明他们知道一个值 x,而无需传达有关 x 的任何其他信息。

2. 关键思想是验证者不可能仅仅从证明者能够证明他们知道 x 的事实中推导出关于 x 的任何信息。这保护了证明者的数据隐私。

3. 零知识证明系统用于各种应用,包括安全通信、密码学和隐私保护数据分析。

虽然目前零知识证明系统是一个相对较新的研究领域,其可行性和实用性仍有许多悬而未决的问题。然而,它们已经被用来创造一些令人印象深刻的产品。

免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。本文内容仅用于信息分享,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。