DAOrayaki Podcast |对话姚翔:零知识证明(ZKP)的应用场景

DAOrayaki社区对零知识证明的探索远不止于此,随着ZKP在整个行业不断的深入发展,我们更关心这个技术在实际场景中的运用

DAOrayaki Podcast |对话姚翔:零知识证明(ZKP)的应用场景

DAOrayaki社区对零知识证明的探索远不止于此,随着ZKP在整个行业不断的深入发展,我们更关心这个技术在实际场景中的运用

DAOrayaki DAO研究奖金池:

资助地址: DAOrayaki.eth

投票进展:DAO Reviewer 3/0 通 过

赏金总量:80 USD

研究种类:ZK, Layer2

创作者:Hahaho @DAOrayaki.org

审核者:Shaun@DAOrayaki.org

播客地址: https://www.ximalaya.com/sound/569285107

在上一期播客中,我们对零知识证明进行了详细的溯源,姚翔老师给大家解读了零知识证明的诞生背景,介绍了1985年那篇著名的行业论文《交互式证明系统的知识复杂性》。我们深入探讨了零知识证明可能给整个行业带来的可延展性,包括如何解决隐私问题,扩容技术对区块链未来发展的重要性,ZK-STARK与ZK-SNARKs的区别,以及实现ZKP所面临的技术难题及负面影响等。

如果您只是想对零知识证明有一个简单的了解,相信上一期的播客已经能够充分的帮助到您。然而,DAOrayaki社区对零知识证明的探索远不止于此,随着ZKP在整个行业不断的深入发展,我们更关心这个技术在实际场景中的运用,所以,今天我们很高兴再次邀请到姚翔老师,就ZKP在实际场景中的一些运用的话题。全文如下文所示,喜欢听音频的朋友,可点击播客:https://www.ximalaya.com/sound/569285107

Shaun

Hello,大家好,欢迎来到Yaki 叨叨,我是主持人Shaun。

首先感谢“原语里弄”的发起人姚翔老师,在百忙之中再次做客DAOrayaki的播客,继续跟我们普及ZKP的相关知识。

在上一期播客中,我们对零知识证明进行了详细的溯源,姚翔老师给大家解读了零知识证明的诞生背景,介绍了1985年那篇著名的行业论文《交互式证明系统的知识复杂性》。我们深入探讨了零知识证明可能给整个行业带来的可延展性,包括如何解决隐私问题,扩容技术对区块链未来发展的重要性,ZK-STARK与ZK-SNARKs的区别,以及实现ZKP所面临的技术难题及负面影响等。

如果您只是想对零知识证明有一个简单的了解,相信上一期的播客已经能够充分的帮助到您。然而,DAOrayaki社区对零知识证明的探索远不止于此,随着ZKP在整个行业不断的深入发展,我们更关心这个技术在实际场景中的运用,所以,今天我们很高兴再次邀请到姚翔老师,就ZKP在实际场景中的一些运用的话题,跟大家细致深入的聊一聊。

有请姚翔老师跟社区的小伙伴打个招呼。

姚翔

DAOrayaki的朋友们大家晚上好(早上好),取决于你在哪个时区哈哈哈。

Shaun

如同开篇谈到的,我们在上期聊了关于ZKP的入门知识。在本期开始之前,我大致把零知识证明正在使用与未来可能使用的场景做了简要分类,包括:扩容(ZK-Rollup),隐私公链,通用公链的隐私保护,抗共谋及去中心化存储。

所以我们今天对这几个场景,做一些深入的探讨。先聊第一个场景,ZK与扩容,可能也会涵盖ZK-EVM的部分内容。

姚翔

严格来说,提到的五个场景之间,并不是完全并列的关系。

其次扩容这个场景,比较特殊,因为它本身不是ZK(零知识)的。也就是在扩容场景中,它没有用到零知识的特性,它本身也不是隐私问题的解决方案;这项技术是对链上计算与验证模型的调整,比如像zkSync网络这类产品,我们称为ZK-Rollup技术,是因为它起到了扩容的效果,但扩容又是怎么实现的呢?

我们知道区块链上的状态变化是由交易驱动的:A向B发送一笔交易的同时,会驱动状态由当前状态向新状态发生变化(也称状态转移)。

在以太坊的计算模型下,状态转移的流程是:1、当前状态(意味着要拥有当前以太坊的全部数据);2、交易驱动(必须亲自将交易计算一遍);3、得出新的结果(新状态)。其中的问题在于,计算交易的过程不是并行的,只能串行执行(一笔交易一笔交易的计算),这也是为什么每个区块的交易数量是有限的:在短时间内保证每个节点将交易计算完成;当前以太坊的状态数据规模在上百G,而产生新区块的间隔只有13秒,如果考虑最坏的情况,13秒内没有将交易执行完,整个网络就永远不可能把所有的事情验证完,就会陷入一种危险的状况(这也和机器的性能有关,但为普遍性考虑,只以一般机器为例)。所以在状态转移过程中,“机械”的将每笔交易的串行计算,造成了很大阻碍。

而此时零知识证明起到的作用就是,从旧状态到新状态的跨越中,不去实际的计算交易过程,只需要简单验证提供的证明,节点就会确信交易存在,随后进行状态转移。比如在zkSync网络中,你可以发送Token或ETH,这是针对一种特殊类型的交易,构建的零知识证明电路,以此提高效率。它的好处也在于,从链的角度来说,只需要验证不需要计算,所耗费的资源会大大减少,这是一个很大的变化或进步;但还有一点要说明的是,这实际上是构建了一个二层网络,状态转移也是在二层网络中发生的,所以需要每隔一段时间去以太坊(或其它主链)上更新智能合约里的状态数据。

而有关ZK-EVM,可以把它认为是一种兼容EVM(以太坊虚拟机)的特殊类型Rollup。它之所以重要,是基于一个假定:一直以来智能合约的开发过程中所遗留下来的代码,安全审计报告,安全运行时间等等是有极大价值的,所以大家会希望将这些有价值的智能合约(比如DApp)可以比较容易的迁移到新的ZK-Rollup上,开发者也不必再为新的使用场景设计特定电路。

但目前来看这种方式不太可行,因为EVM最初在设计的时候没有考虑过零知识证明,所以从算法层面(包括操作码(operation code)等设计)对零知识证明的兼容并不是很友好。所以大家在“希望设计出比EVM更兼容零知识证明的虚拟机”和“过去的经验积累”中,找到了一个平衡点,就是ZK-EVM。也就是State0到State1的状态转移过程中,只需要检查提交的证明,同时在EVM里用Solidity写的一个智能合约也可以正常运行的新虚拟机环境(支持零知识证明计算,又和EVM兼容)。其中的技术设计比较复杂,解决方案也有很多;但很重要,一定要提到的一点是:ZK-EVM到底证明了什么?

第一个就是程序的字节码(程序本身),即是否正确的载入了程序;第二个是要证明操作哪些数据(操作码和数据的关系);第三件就是具体状态数值的改变。一旦ZK-EVM做成之后,节点在运行的时候,就不需要去重新执行交易,只需要验证Proof(证明)是否正确,随即执行状态转移。这种节点的验证方式,比重新计算交易所消耗的时间和计算资源要小很多。所以对于单个节点来说,验证交易的效率与可拓展性提高了,同时对以太坊的全节点来说,硬件的运行门槛也不会很高。

所以从设计上来看,ZK-Rollup本质上是计算与验证模型的变化。

Shaun

我听下来的理解是,结合了ZK的扩容技术,一是成本会降低,二是效率更高,最后是硬件的门槛降低?

可以这么理解,但要说明的一点是,以太坊本身是没有变化的,这些事情只发生在ZK-Rollup一层,在以太坊上还是要去执行各种交易,只是以太坊上的交易比例会发生变化。ZK-Rollup在以太坊上就是一个或几个一组的智能合约,管理着自己的状态数据,假设以太坊上每个区块里90%多的交易都是ZK-Rollup之间的交易,那么对于节点来说,它只需要考虑对这些状态数据访问的优化,但这种想法过于乐观且不现实。

所以ZK-Rollup对以太坊的扩容,和以太坊本身的验证模型转变,是没有关系的;以太坊仍要全节点装载所有数据状态,执行交易计算,只是对于特定智能合约来说验证门槛减轻了,这本质上是两件事情。

Shaun

我们聊过了扩容,那想请姚老师再聊一聊,关于ZK在隐私公链上的应用。对我个人而言,像个人身份类的数据,都属于隐私的部分。

姚翔

我觉得这个命题其实可以分成两部分,首先是我们的需求是什么,其次是它是不是一定要用零知识证明来做。

首先说需求,我们都知道区块链是一个公开网络可以验证,这里就要提到Zcash,它是在2014年提出的一条公链协议,也可以算是一个加强版的Bitcoin。

我们不讨论共识算法或数据结构层面的问题,只考虑一个核心区别:在比特币上,一笔交易的Sender(借款人),Receiver(收款人)以及金额的信息都是公开的,且全部节点都参与验证,UTXO模型也决定了需要验证Output的总金额要比Input的总金额小;而Zcash并不对以上提到的这些数据开启全部默认保护,是有一定比例的。它保护的数据包括借款人,收款人以及金额,也就是说你可以给一个人秘密的发一笔钱,在公共账本上其他人并不能看到是谁发的,也看不到谁收的以及有多少钱。

这个功能的实现,基于它构造了一个大的匿名的集合。举一个不太恰当的比方,与洗钱很像:想做这件事的人,共同组建一个巨大的池子,在这个池子里把自己的东西藏起来。核心在于这个池子要很大,如果只有一个人在用,再怎么保护也没用,因为链上进出就一个地址,中间怎么绕都没用,这就是Zcash的原理。而且它其实是一个非常开拓性的工作,例如ZK-SNARK的首先使用,包括Zcash的基金会也对整个零知识证明技术的发展提供了非常大的帮助。

那么再往下追问,它还能保护什么?我们能否对更一般的状态进行保护?因为谁给谁转多少钱这件事似乎过于简单,一开始以太坊要做智能合约平台,就是觉得比特币能做的计算类型或复杂度是有限的。

从动机的角度分析这件事,我们能不能对一般的状态转移模型,也结合零知识证明技术,现在来看这件事比较困难,而且这些链关心的更多是应用层面的状态转换,而不像Zcash一样在底层对Sender,Receiver和金额进行保护。

第二个问题是,这件事情是不是一定要用零知识证明来做?其实也不是,比如Monero是用环签名以及相关的技术做的,并没有用到零知识证明技术。密码学的技术或原语是很多的,为了实现同样的目的可能会使用不同的技术,虽然本质思想是相似的。此外这些新公链与Zcash不一样的原因,我觉得还有一个比较重要的点:就是监管的介入。监管介入后自然希望对数据有更大的控制权,最近发生的很多事情也体现了这点,而且很多项目走的是融资流程,相关内容就比较敏感了。所以这个命题很难再往下继续推进,如果对这个问题实在感兴趣,我觉得只需要了解Zcash就够了。

Shaun

在通用公链上呢,最近好像也有用ZK在通用公链上实现隐私性的需求,在这个领域应该也有比较广泛的应用?

姚翔

大家能看到的常见应用,应该也是最近被OFAC(美国财政部海外资产控制办公室)制裁的Tornado.cash。它相当于在以太坊上建了一个混币器,可以将一笔钱(ETH或其它ERC-20Token)存入池子里,同时生成一个收据(需要自行保存),并可以随时凭收据从池子里把钱提走,中间的关联关系其它人也没办法知晓。这整个过程就是通过零知识技术来实现的,收据的作用是证明有从池中取钱的“权利”。

这整个过程中,团队确实有很大技术上的成就,因为除了以太坊每个账户(钱包地址)上面固有的ETH余额,其它ERC-20Token(即每个人有多少钱),是在各自Token合约里记录的,这样分散的状态下很难设计一个可以同时保护借款人,收款人和金额的模型。

所以Tornado.cash写了一个新的智能合约,将所有的Token打入智能合约里,实现一个关系的盲化(或是让整个转账的流向变得难以分析)。但很多Token因为要符合监管的要求,所以本身内置了对Token权限的控制:可以使一些地址禁止转账,甚至直接把地址的金额冻结。所以当OFAC出台相关规则之后,像USDC第一时间把公布的地址进行了“拉黑”,地址里的钱也无法进行其它动作;但也有像DAI的类似Token,因为是去中心化代币,它没有保留相关控制权限。

所以可以看到,零知识证明在类似场景中实在的发挥了作用(资金流向保密),但从监管的角度来说却又很危险,这也是目前技术和现行法律监管制度的碰撞。

Shaun

所以在这个场景,去中心化变成了类似“伪命题”?难免要使用中心化的思路(混币池)。

姚翔

从这个角度来说,这可能也是保护隐私的必然方法,简单说就是藏叶于林,假如100个人给另外100个人转钱,如何知道谁和谁的对应关系呢,这取决于匿名级的大小,匿名级要足够大这件事可能才有意义。

Shaun

那您对抗共谋这个场景熟悉吗?

姚翔

因为我自己也在做二次方筹款的相关研究,有关MACI协议(最小化抗共谋基础设施)大概了解一点。有趣的地方在于,它是一个经典场景(投票)下的新问题(共谋),因为在二次方筹款中,贿赂的问题会更加突显,假如一个人想贿赂投票人,在链上内容公开的前提下,可以容易的证明贿赂成功;但在MACI下,类似于创建了一个假身份,投票者就无法证明真的依照了贿赂者的意愿行事,贿赂这件事就变得困难,贿赂行为双方的“信任”无法建立。

虽然二次方筹款这个命题是成立的,但我们先回到这个经典场景(投票)中,最重要的事情其实是投票者的隐私(即投票给谁这个信息),如果从这个角度去想,二次方筹款其实是解决两件事,首先是投票者隐私(但目前几乎所有的链上投票都做不到这点)。这只是第一步,在抗共谋的场景里,要再前进一步,即就算你想披露,也无法披露,这可以有效的防止贿赂行为的达成。

但这其中的递进问题是:你自己无法证明你投给了谁(其它人当然也不知道),但假设场景是委托代表投票,这就造成了代表也无法向对他(她)授权的人,证明他(她)的确的执行了委托,这个方向可能会展开更多的讨论。

Shaun

这个话题可能会涉及到有关去中心化身份(DID),DAOrayaki是业内最早对MACI做跟踪报道分析的,最近在跟行业内的人交谈时,确实也会谈到代理投票时的投票者身份验证问题;所以我想,如果去中心化身份的发展能够结合零知识证明,相关的解决方案可能会更完整一些。

姚翔

据我所知确实有一些团队在讨论基于零知识证明的可验证凭证。如果可以在链上基于凭证,既不泄露相关信息,又起到验证的作用,当然是很好。比如说我持有某个证件(假设是特定机构颁发),我的某一个属性又符合条件,比如我的年龄大于多少岁,或我的存款大于多少,但我又没有泄露信息本身,这确实是可以解决很多现有问题。

但这可能也是整个行业的发展问题,零知识证明的算法和技术在目前工程的实现方面,还是一个比较小的因素。

Shaun

那接下来聊最后一个场景,去中心化存储,可能要提到Filecoin,这也是我在看相关资料时最看不懂的。

姚翔

这个例子很有趣,大概4年前我看了相关白皮书。为什么存储文件会涉及零知识证明呢,这和它的机制设计有关:Filecoin的设计就是要证明某个时间内存有对应的某个文件数据,这样才能获得相应的激励。

这里存在一个矛盾点,就是在查询数据的时候是要付钱的,这也暗示着数据不是公开的,但是如果不公开,某人如何证明确实存有这个数据呢?所以在整个机制的设计中,零知识证明技术的作用就是在不泄露数据的前提下,证明自己拥有数据。且每隔一段时间会有挑战者,针对你有没有存某一个特定数据发起挑战,随后接受挑战的人(或证明生成者),会根据存有数据生成一份一次性证明,这份证明所有人都可以验证。

还有数据的可用性问题,冷数据(储存在线下设备里或不联网的数据;热数据可以线上查询,但成本较高)实际上处于不可用状态,这就会使得证明的生成时间与挑战时间不对等,通过机制设计,可以确保挑战时间内成功完成挑战,同时查询者(挑战者)又不知道数据的详细内容。

这也使Filecoin产生了大量的硬件需求,这些硬件本身是用来对数据的存在性证明进行计算,也有围绕着这些计算做的各种硬件与算法的优化。总的来说,这个场景的核心就是,通过整个网络的激励设计来向“你”证明“我”拥有某个数据。

Shaun

所以其实围绕的核心话题还是关于隐私安全与隐私效率问题,那您怎么看待零知识证明相关的隐私安全与隐私效率问题?

姚翔

这个问题,我觉得可能需要精确一点。刚才在聊天区,我看到有一个朋友也在问:ZK-EVM有没有保护隐私。再比如前面谈到扩容的时候也提及了,在这里零知识证明不是为了保护隐私,只是给验证状态转移合法性一个新工具或者说新模式。

所以现在也有一种新的东西出现,叫ZK-ZK-Rollup,有个相关项目叫Aztec,它相当于在ZK-Rollup上又实现了一层ZK,这层ZK是用来保护隐私的。所以我们讨论的ZK-EVM和ZK-Rollup的ZK,严格来讲跟零知识没有太大关系。这也是行业早期发展过程中,约定俗成的叫法,让很多问题有些混淆。

所以可能要更关注这件事情本身,如果它是为了解决安全问题提出的算法,那就只谈论安全;在谈到ZK-Rollup,就谈论验证或扩容的内容。这和场景是息息相关的,而不是用一个固定标准去评判。

Shaun

那从您目前的从业经验来看,ZKP是否也有一些潜在的风险呢?

姚翔

从算法上来说,近些年的研究和实际应用已经有很大的进展和突破了,但总体来说,这还是一个很新的领域,出现问题是必然的。

其次是目前应用层确实存在一些状态过热的问题,可能是急于求成,就都在想未来能实现多么多么好的效果,但算法本身,包括构造零知识证明的思路,都有存在巨大变化的可能性。

简单来说也是因为基础层的创新依然在发展,所以也存在一种可能性:未来要重新设计现有的应用层或上层系统。这不是很大的问题,但我个人认为确实存在应用层过热的现象。

Shaun

零知识证明有多种用途,并会彻底改变我们共享数据的方式以及区块链的工作方式。借助数字身份和零知识证明,人们可以证明它们的年龄或公民身份,而不必放弃其身份证明文件中的敏感和有价值的数据。它还可以用于数字投票,并确保匿名投票有效且可计入。

但是,零知识技术仍然是一个令人难以置信的新事物,要成为密码学的主要组成部分还有很长的路要走。然而,它的研究正在取得巨大进展,有朝一日可以为各种事物创建零知识证明,包括以太坊智能合约和金融应用程序。这将彻底改变我们与数据交互的方式,并导致个人隐私的复兴。

DAOrayaki社区一直保持着对Web3领域前沿技术的持续,深入,跟踪式的研究跟报道。我们在研究中发现,目前零知识证明在整个Web3领域普及化的程度还很低。尤其是在中文社区,还没有一个成型的专业性的普及ZKP相关知识的社区。介于零知识证明这项技术,可能对行业未来发展所起到的至关重要的作用,DAOrayaki社区觉得有义务跟责任让更多的小伙伴了解,熟悉,甚至参与到零知识证明未来的建设中来。结合Yaki叨叨dMedia Podcast平台,由浅入深,多角度,全方位的介绍,探讨,分析零知识证明的相关内容。

再次感谢姚翔老师的倾情分享,让社区的小伙伴受益良多,谢谢姚翔老师。同时也感谢DAOrayaki社区。

今天相关讨论的音频晚些时候会上传在DAOrayaki官网,DAOrayaki.org的专属播客频道里。我们也会同时发布在国内的小宇宙播客平台,喜马拉雅FM,全球各大流媒体平台,例如苹果播客、谷歌播客、YouTube以及Spotify上,欢迎大家收听及订阅。我们下期不见不散。


通过 DAO,研究组织和媒体可以打破地域的限制,以社区的方式资助和生产内容。DAOrayaki将会通过DAO的形式,构建一个代表社区意志并由社区控制的功能齐全的去中心化媒体。欢迎通过文末方式提交与DAO、量子计算、星际移民、DA相关的内容,瓜分10000USDC赏金池!欢迎加入DAOrayaki社区,了解去中心化自治组织(DAO),探讨最新话题!

官方网站:https://daorayaki.org

Media:https://media.daorayaki.org

Discord server: https://discord.gg/wNUPmsGsa4

Medium: https://medium.com/@daorayaki

Email: daorayaki@dorafactory.org

Twitter: @daorayaki_

微信助手:DAOrayaki-Media

小宇宙:DAOrayaki

详情请参考:

Dora Factory支持去中心化DAO研究组织DAOrayaki

对DAOrayaki第一阶段的回顾--去中心化媒体的先驱

DAOrayaki |DAOrayaki 开启去中心化治理2.0时代

DAOrayaki |风险投资的范式转移:无限主义基金和无限游戏

DAOrayaki |DAOrayaki dGov 模型:基于Futarchy的正和游戏

更多关于DAO的文章,关注Dorafactory,查看往期文章。

DAOrayaki

DAOrayaki is a decentralized media and research organization that is autonomous by readers, researchers, and funders.

More posts from this author