你可能曾经听说过 ZK 证明或零知识证明。但为什么它会突然变成一个热词?它是什么?什么是 ZK-rollups? 什么是 ZK-SNARKS? 以上问题都会在本文中得到解答,抓紧了快上车!
什么是零知识证明 (Zero Knowledge Proof)?
零知识证明可以让一方 (证明方) 在不透露任何实际信息的情况下向另一方 (验证方) 证明某保密信息或声明是真的。
术语 “零知识“ 本身就表明了不需要揭露任何信息,证明方就可以向验证方证实 ta 所知道的保密信息以及 ta 的声明都是真的。
那为什么需要零知识证明呢?当我们不想披露任何信息,但需要说服其他人相信我们知道的保密信息和提出的声明是真的时候。
目前有两种零知识证明:
1.交互式的 (Interactive)
2.非交互式的 (Non Interactive)
举例说明交互式的零知识证明
假设你需要通过 ZKP (零知识证明) 证明你的年龄大于或等于18岁,但不揭露具体年龄。我们需要第三方机构为你的年龄担保,具体如下:
第三方说:”已接收您出生证明的复印件,我们已经得知您的年龄为 21 岁。现在为您提供一串数字密码,请将它保存到保密与安全的地方。稍后您会用到它。“
”你持有的那串数字密码将会被哈希算法处理 22 次,然后得出一个最终年龄哈希代码给你 (没错,处理次数必须为年龄 +1,才能使得整个操作行得通)。也就是说,你拿到那串数字密码之后,会有 22 次哈希处理过程才能获得最终的年龄哈希代码。“
《堡垒之夜》开发商:为了元宇宙的开放,将与苹果和谷歌战斗到底:金色财经报道,《堡垒之夜》开发商Epic Games首席执行官蒂姆·斯威尼 (Tim Sweeney)在接受英国《金融时报》采访时表示,科技巨头苹果和谷歌可能会不公平地扩大对智能手机平台的束缚,以主导所有在虚拟环境中进行的交易。蒂姆·斯威尼表示,网路游戏《堡垒之夜》可以说是当今最接近元宇宙的东西。每个月约有7千万玩家沉浸在其数字世界中,参与大逃杀 (Battle Royale)战斗,他绝不允许科技巨头像在智慧手机应用程序上那样,利用垄断力量主导新平台,为了元宇宙的开放将与苹果和谷歌战斗到底。[2022/6/1 3:55:36]
“我们将您的姓名、时间戳与最终年龄哈希代码一起打包。这个证明包将提供给他人验证。“
好了,那么当你想要向其他人证明你的年龄超过 18 岁时,你只需要证明从你拿到数字密码到最终年龄哈希代码之间的哈希算法处理次数大于 18 就可以了。
那么怎么证明呢?你只需要向他人展示最后的 18 次哈希算法处理记录。你需要自己进行前 4 次哈希算法处理 (对数字密码进行哈希算法处理 4 次),然后将结果提供给其他人:第四次哈希值。
他们会对第四次哈希值再处理18次 (现在对你的数字密码总共进行了 22 次哈希算法处理),最终他们能够得出最终年龄哈希代码并且使用证明包对它进行验证。
实际上,验证者是在说:"发送我们一个值,我们会对其进行 18 次哈希算法处理,然后这个哈希值将与你提供的年龄哈希代码进行对比。" 如果你低于18岁,最终年龄哈希代码的哈希算法处理次数就没有18次,我们对你提供的那个初始哈希值进行 18 次哈希算法处理后,就会与最终年龄哈希代码不一样。
近日V社创始人:加密货币价值波动让人们无法确认其实际支付价格到底是多少:2月26日消息,近日V社创始人Gabe Newell接受采访时解释了Steam禁止NFT的原因,Gabe表示:“目前NFT发展过于粗糙,并且幕后还涉及某些非法因素,区块链是个非常好的技术,但目前使用方式过粗糙,让你不太想接触它。随后,Gabe补充道:我们在接触加密货币时也遇到了类似的问题,50%用于交易的加密货币都带有欺诈属性。然后加密货币价值波动让人们无法确认其实际支付价格到底是多少,是的,这些交易都是锚定在加密货币的基础上,但是大多数人的工资并不是加密货币。[2022/2/26 10:17:51]
这里是另一个绝佳例子 ?
《一个很棒的零知识证明例子》 - MathOverflow
https://mathoverflow.net/questions/22624/example-of-a-good-zero-knowledge-proof
?但是这种交互式方法有一些局限:
1.每次验证都需要进行整个冗长的过程。而上述例子只是简单的哈希算法处理,想象一下如果需要对实际加密算法进行计算会如何。
2.证明方与验证方都需要同时在场,不管是在线还是面对面。
接下来是非交互式的零知识证明
1986 年,Fiat 与 Shamir 发明了 Fiat-Shamir heuristic (启发式) 算法,这是第一个基于交互式零知识证明来构建数字签名的算法。
京东云发布“京东618十大技术应用趋势”,“区块链防伪追溯 一码到底”上榜:6月17日消息,日前,京东云发布“京东618十大技术应用趋势”,“区块链防伪追溯 一码到底”是其中重要一环。今年京东618,京东云基于区块链技术打造的“智臻链防伪追溯平台”大规模应用,覆盖了包括生鲜农业、母婴、酒类、美妆、二手商品、奢侈品、跨境商品、医药、商超便利店等数十个线上线下零售生态业务场景。官方数据显示,截止目前,京东云“智臻链防伪追溯平台”落链数据已达10亿级,服务超1500 家企业,覆盖超1900个品牌的40万种商品,消费者溯源查询次数超1000万次。[2021/6/17 23:43:43]
Fiat-Shamir heuristic 算法通过使用承诺方案 (Commitment Scheme) 可变为非交互式零知识证明。这就是所谓的 ZK-SNARKs,也可以称为简洁的非交互式零知识证明 (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)。
要使 Fiat-Shamir Heuristic 算法更加强大,需要使用承诺 (commitment)。承诺方案在许多加密协议中都是基本组成部分。承诺方案允许承诺者发布一个值 (即承诺),然后将它们绑定到某消息上而不披露它们 (隐藏)。
Pederson 承诺与 Polynomial 承诺是 ZK 证明使用的两个最著名承诺方案。
但大约到 2013 年,ZK-SNARKs 才实际可行和实现,并真正用于应用中。
《周六夜现场》在OpenSea拍卖NFT作品“到底什么是NFT”:NBC的《周六夜现场》(Saturday Night Live:SNL)团队正在OpenSea上拍卖NFT作品“到底什么是NFT?”(What the hell's an NFT?)。SNL拍摄的同名短视频颇受欢迎,它使用2000年代初的流行文化为SNL观众揭开了NFT的神秘面纱,三分半的搞笑说唱改编了来自姆爷(Eminem)的《Without Me》,SNL演员还Cosplay了黑客帝国的Morpheus,向观众解释了NFT的简单概念。截至目前,该NFT目前的出价为6.9 ETH,拍卖于4月5日结束。中标者不仅将获得NFT,还将收到在第47季录制《周六夜现场》的两张门票。(decrypt)[2021/4/4 19:44:02]
我推荐你们阅读 Vitalik Buterin 写的 ?一篇解释 zk-SNARKs 如何可行的概论,这篇文章写得很棒,解释了 ZK-SNARKs 是如何实现的。只阅读一遍可能还不能理解整篇文章。多阅读 3、4 次,一旦你了解了 ZK-SNARKs 的原理,你会激动到全身起鸡皮疙瘩。
? 跟 AI 与 Web3 一样,我们似乎无法避免后量子世界到来,因此我们需要确保为 ZK-SNARKs 选择使用的加密函数不能被量子计算机暴力破解。这就是为什么我们还需要改进,以保证后量子安全性。
如果想要了解更多信息,可以观看由 ACM 发布的谈话?
提高非交互式零知识证明在后量子签名中的应用
声音 | John McAfee:仅拿到底层访问权限没有用:今日,针对Bitfi钱包能够被黑一事,John McAfee继续作出回应称:“黑客生成获得了底层访问权限,但仍无法对程序进行任何编写或更改。这就像拿着牙医证书去核电站工作一样。你能从钱包里拿走钱吗?你不能。这才是关键。”[2018/8/3]
https://www.youtube.com/watch?v=V0FfpVQzajk
现在终于明白 ZK 证明是什么了,但是它们应用到什么地方呢 ??
在概念上它们有两个主要用例:
扩容区块链交易
个人数据隐私保护,例如在医疗卫生领域
区块链扩容 - ZK Rollups
Rollup 是一种扩容解决方案,在 L1 外执行交易,但在 L1 上发布交易数据。这种工作办法可以让 rollup 对网络进行扩容,但依然受到以太坊共识的安全保护。
将计算转移到链下进行,实际上可以处理更多交易。因为只需要将 rollup 交易的一些数据放进以太坊区块中。
要做到这一点,rollup 交易在另一条链上执行,而这条链甚至可以运行一个 rollup 特定版本的 EVM。
执行完 rollup 上的交易后,下一步是将这些交易打包成一个 batch,然后发布到以太坊主链上。
整个过程基本是执行交易、提取数据、压缩,将其 rollup 到一个个 batch 中然后发到主链上,因而得名 —— ”rollup“。
以太坊怎样得知这些数据是有效的、而不是由恶意份子出于牟利目的而提交的呢??
每个 rollup 都会在 L1 部署一组智能合约,来负责处理存款、取款交易以及验证证明。
证明也是主要区分不同类型 rollups 的因素。
Optimistic rollups 使用欺诈证明。与之相对, ZK rollups 采用有效性证明。
在 ZK rollups 中,发布到 L1 的每个 batch 包含一个叫做 ZK-SNARK 的加密证明。当提交交易 batch 至 L1 之后,L1 上的合约可以快速验证 ZK-SNARK 证明,无效的 batch 会被直接拒绝。
关于 ZK 与 Optimistic rollups 还有很多其他内容,比如它们的实现方法和限制。在这里我只是简短地介绍了一下它们的概念。
许多项目都在开发基于 ZK rollups 的以太坊扩容方案。一些比较知名的项目有 dYdX 、Loopring 、Polygon Miden 、 Polygon Hermez 等等。
隐私 —— 日常生活应用
假设有两个公司 A 和 B 想要使用区块链作为运行与通信的媒介。
A 向 B 转移资产。并且他们想让这笔交易只有他们双方知道。没错,区块链会带来透明度、互操作性、数据安全性、完整性还有其他优点,但是公司怎么会想让内部运行信息在公众面前显示呢?零知识证明就是最佳选择。
比如你想隐私地给你的海外朋友转账,你会怎么做呢?选择零知识证明。
ZK 证明还可以在医疗健康、保险、电子投票、身份管理等领域产生深远影响。
在医疗健康方面,ZK 证明可以保证 DNA 数据、个人信息、医疗报告、基本病史信息、药物溯源、临床试验、医疗健康供应链、器官移植的隐私安全。
在保险方面,ZK 证明可以保证保险单和保险凭证数字信息、个人信息、车辆信息、理赔信息的隐私安全。
使用区块链与 ZKP 的身份管理具有深刻意义。每个关联 KYC (了解你的客户) 的应用、学校、大学、支付软件都要询问我们的 ID 图像,例如驾照、护照、投票 ID 、国家 ID。我们敏感的个人数据就这样给他们了,我们甚至都没有意识到这一点。通过 ZKP,我们可以保证以上所有 ID 信息的隐私安全,只需透露必要信息给供应商、应用与官方即可。实际上,使用 ZKP 我们可以完全改进这些 ID 的发行方式。
我们可以使用 ZK 证明对这些信息进行加密处理。当需要给到一些信息时,用户授权并提供所需信息,而其他详细资料可以保持隐藏。
这些都是在 2013 年后,ZK-SNARKs 在实际应用上足够有效率才开始被开发者使用。这也是为什么未来出现的 ZKP 应用会有很多发展空间。
2016 年上线的 Zcash 是一个成功应用 ZK-SNARKs 的重要产品,为用户提供隐私交易功能。
最普遍的几种 zkp 系统的对比
来源:Matter Labs 的 github 代码库
zk-STARK (zero-knowledge scalable transparent argument of knowledge) 代表零知识的可扩展、透明知识证明,zk-SNARK (zero-knowledge succinct non-interactive argument of knowledge) 代表零知识的简洁、非交互式知识证明。
这两种零知识技术都是非交互式的,这意味着代码可被部署且自动作用。
Zk-SNARKs 底层依靠椭圆曲线保证安全性。在密码学中,椭圆曲线在这样一个基本假设下运行:根据一个公开已知的基本点来找到一个随机椭圆曲线元素的离散对数是不可行的。也就是说,Zk-SNARKs 也需要信任设置。
信任设置是指密钥的初始创建事件,它会被用于生成隐私交易的证明以及验证那些证明。
如果用于创建信任设置的密钥的保密信息没有被销毁,那么这些保密信息可能会被利用通过虚假验证来伪造交易。
SNARKs 的另一个限制是,在前文中我们已经知道了:它们在后量子世界中的可行性。
?另一方面,在一个网络中开始使用 STARKs 的话,不需要信任设置。这些都可认为是抗量子的。虽然 STARK 的证明大小要比 SNARK 大得多。
但是 STARKs 现仍处于初期阶段,开发者们得不到太多支持,所以基于 ZK-STARK 的产品还需要一些时间才能成熟。
本文到这里就结束了。这只是一篇简短的关于 ZK 证明在 Web3 世界是怎样运作的介绍。
来源 | ravjot.hashnode.dev
作者 | Ravjot Singh
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。