前言
关注区块链的朋友,经常会在圈子里面看到有关零知识证明的信息,而zksync、mina等知名项目都是使用到了零知识证明的相关技术。
而实际上,这并不是什么新技术,早在1985年,由MIT教授ShafiGoldwasser,SilvioMicali和密码学大师Charles在《TheKnowledgeComplexityofInteractiveProof-Systems》论文中提出。
正是这篇文章提出了零知识证明这个伟大概念,并逐步成为了现代密码学理论的根基之一,而ShafiGoldwasser和SilvioMicali也于2012年获得了有“计算机界诺贝尔奖”之称的图灵奖。
什么是零知识证明
零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。或许这样的描述还不够通俗,其实在我们日常生活中,也经常会有零知识证明的身影。
以太坊生态零知识协议Semaphore发布V2版本:7月7日消息,以太坊生态针对开发者的零知识协议 Semaphore 推出 V2 版本,更新内容包括不再需要拥有 EdDSA 私钥,从而实现更简单的电路(circuit)和更高效的零知识证明生成;用于身份承诺和 Merkle 树的哈希函数从 MiMC 迁移到 Poseidon,将证明时间减半并提高了 Gas 效率;合约模块化、三个新的 JavaScript 库等。
Semaphore 最早由以太坊社区成员 Kobi Gurkan、Koh Wei Jie 和 Barry Whitehat 提出,在 2019 年发布 V1 版,可以让以太坊用户可以证明他们的群组成员身份,并在不透露原始身份的情况下发送诸如投票或支持的信号。Semaphore 不是面向用户的应用程序,旨在为以太坊开发人员提供强大而简单的工具,以使用私有凭据构建 DApp。[2022/7/7 1:57:35]
例1:
以太坊基金会、AMD、Polkadot 发起 700 万美元竞赛以促进零知识扩展:金色财经报道,ZPrize于4月19日宣布,多个加密货币项目联合起来,为使用零知识(ZK)证明的创新团队提供700万美元的奖金。该竞赛由21个Web3组织支持,包括Polygon、Polkadot、Mina和Ethereum基金会。AMD-Xilinx还将为参赛团队提供高功率的计算设备。ZPrize在一份声明中说,参赛团队将尝试设计 \"新的算法和技术,以实现最好的零知识系统无法比拟的性能指标。\"获奖者必须将其提交的材料开源,以便其他开发者能够将任何突破性的东西整合到他们的工作中。[2022/4/20 14:34:54]
比如我有一个车子,我要向你证明我有车子的钥匙能打开车门。
在这里,我要证明的论题是:我有这个车子的钥匙,第一种做法是,我直接当你的面用车钥匙打开车门,还有一种做法是,我直接拿出车里面的东西给你看。
Zcash开发商称零知识证明系统Halo已获MIT开源许可:4月7日消息,Zcash开发商Electric Coin Company(ECC)表示,零知识证明系统Halo现已获得MIT开源许可。Zcash此前表示,Halo 2证明系统将于今年4 月份在Zcash中实施,引入聚合证明等来增强网络可扩展性。
Halo 2 最初是在Bootstrap开源许可证(BOSL)下发布的,MIT开源许可限制会更加宽松。2021年9月,Filecoin基金会和ECC、Protocol Labs和以太坊基金会公布了一项专注于Halo 2的多方面合作。[2022/4/7 14:10:45]
第一种方法你直接看到钥匙开门的过程,这不算零知识证明,因为你看到了钥匙。
第二种方法,验证者并不需要知道我用钥匙开门的过程,也能判断出我有这个车子的钥匙,整个过程我们认为验证者对于钥匙是零知识的。
Vocdoni 认为以太坊和零知识证明等技术可以实现数字投票方案:去中心化治理工具 Vocdoni 撰文认为在经历了 2020 年美国大选期间的投票混乱之后,是时候该考虑基于以太坊、零知识证明(zkSNARK)和 IPFS 等去中心化技术实现安全且匿名的数字投票解决方案。
Vocdoni 认为这不是一个简单的挑战,但是他们设计了一套系统希望能解决投票的问题,将利用以太坊、IPFS 和 Tendermint 等技术。Vocdoni 表示他们的投票协议技术(Vocdoni Open Stack)是完全开源的,已经在欧洲的一些文化组织选举中被证明是成功的,涉及近 20 万投票者。[2020/11/9 12:06:07]
例2:
A是红绿色盲,B是正常人,现在有一个红球和一个蓝球,除了颜色,其他大小质地等其他因素完全一样,因为A是色盲,他看到的这两个球是一样的,那B如何才能让A相信这两个球是不一样的颜色呢?具体要怎么来做呢?
金色沙龙 | 燕丽:零知识证明对于协调区块链底层扩容也有很大帮助:在今日举行的《隐私计算——区块链信息安全守护者》为主题的金色沙龙中,算力智库创始人燕丽表示,2020年1月1日,中国首部《中华人民共和国密码法》将正式开始实施,而在这之前一直只有一部 2007年4月23日公布的《商用密码产品使用管理规定》和《境外组织和个人在华使用密码产品管理办法》。很多人把这次《密码法》和2019年“1024”中央把区块链技术作为国家战略联系在一起。区块链技术是完全基于密码学技术,所以按照这个逻辑,如果政府要完全掌控未来区块链技术的发展,首先就要完全掌控密码学技术,而这个其中的核心是国家主权范围之间在所有的通信安全和商业行为之间军备竞赛的升级。区块链有大量扩容压力,而为了达到这个操作,必然要牺牲系统处理效能和部分隐私。但矛盾的是,区块链前期的应用场景如虚拟货币,数字金融等,都需要有更好的隐私保护和不容易被恶意攻击的防护。所以若想让区块链技术落地生根,那么提高区块链底层技术来满足对于高安全性(含高完整性和高保密性)、高性能、高广义效率的要求,也许是个稳妥做法。所以隐私计算中的零知识证明等对于协调区块链底层扩容也有很大帮助。[2020/4/15]
很简单,B可以把两个球都给A,A分别一只手拿一个球,并藏在自己身后,A自己决定要不要交换两只手的球。
然后A再把两只手的球拿给B看,B只需要判断是否交换球即可,当然一次并不能证明,但如果我们猜100次呢,1000次呢,如果100次,甚至1000次B都能正确猜对是否交换两个球,那A就可以推断出这两个球的颜色是不一样的了。
在整个过程中,A都不知道球的正确颜色,所以我们认为A对于球的颜色是零知识的,但是A却通过这样的方式正确推断出这两个球的颜色不一样。
零知识证明的性质
上面的两个例子着重强调了零知识证明的“零知识”这个特性,但零知识证明作为一种证明手段,它也应该具备证明的基本性质:一是足够有说服力,而是无法作假。
具体而言,一种零知识证明的方法需要具备如下三个性质:
完备性:若证明方确实掌握了某论断的答案,则他肯定能找到方法向验证方证明他手中掌握的数据的正确性,即真的假不了。
可靠性:若证明方根本不掌握某论断的答案,则他无法说服验证方他手中所谓答案的准确性,即假的真不了。
零知识性:验证方除了知道证明的结果外,对其他信息一无所知。
当然,现实生活中,还有很多这样的例子,我们不一一列举,用到零知识证明的项目很多,这里我们一起来了解一下zkSync,zkSync是基于ZKRollup架构的低成本扩容协议,主要通过零知识证明和数据可用性保障用户资产安全。
zkSync的整体架构工作过程
Watcher负责监控zkSync合约交易,Sender发送zkSync智能合约的交易,而MemPool负责收集交易。
整个过程会产生两种交易:L1交易和L2交易。
BlockProposer将交易打包,并更改世界状态(PlasmaState)。在世界状态更改后,通过BlockCommitter生成证明需要的信息。具体到存款和转账流程如下:
存款
1、用户调用L1zkSync智能合约存储资金,该交易发生在L1;
2、Watcher监控L1存款交易,当交易发生时则会放入Mempool中,该过程一般会经过10个区块确认,但实际使用中,可能需要更长时间L1的充币交易才会在L2中生效;
3、BlockProposer处理Mempool交易打包,并提交StateKeeper更新账本,充币交易的状态随之变化。
转账
1、当用户想要使用L2低成本快速转账时,调用zkSyncAPI提交转账交易;
2、交易同样会按照流程Mempool-->BlockProposer-->StateKeeper进行流转;
3、最终StateKeeper通知BlockCommiter收集生成零知识证明所需信息,调用PlonK证明系统生成零知识证明后,借助Sender将存款和转账等交易数据,以及将对应的零知识证明提交到L1的zkSync智能合约验证,等待L1交易确认后,Watcher会通知L2更新交易状态为最终确认。
zkSync采用PlonK零知识证明系统,其中包括ProverServer和ProvingClient,在电路设计上,非常巧妙的将交易分割成一个个小的通用处理单元。
一个Operation对应的证明电路逻辑支持所有可能交易的Operation逻辑。多个有关联的Operation电路组成交易电路。
多个交易的电路再组合成区块电路。从而,在固定大小的区块中也能包含不同组合的交易。zkSync开源了PlonK算法的验证电路,能进行多个PlonK证明。
相关代码链接如下:
https://github.com/matter-labs/recursive_aggregation_circuit
而在整个充币和转账过程中,zkSync并不需要独立生成新账户,zkSync的L2账户和L1账户是一一对应的,“共享”一份私钥,准确的说,L1的私钥的ECDSA签名的结果作为L2账户的私钥。
这样在使用的时候很方便,我们直接使用L1的地址就可以在L2上完成充币,转账或者提币的操作。
总结
截止目前,imToken和gitcoin已经深度集成了zkSync,后面还会有更多的项目接入,而随着ETH交易量的高速增长,交易的拥堵和高昂的矿工费必将促进Layer2赛道的竞争,zkSync作为零知识证明系统应用的先行者,或许值得期待。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。