2021年9月2日,以太坊创始人 Vitalik 在推特上回复网友问题时表示:
我预计 ZK-SNARK 将在未来 10 到 20 年内渗透到主流世界,成为一场重大革命。
zk-SNARKs技术允许大量信息被压缩成所谓的简洁证明,因此能够在提升网络TPS、降低运.算Gas方面发挥重要作用。区块链发展十余年中,我们共同见证了DeFi崛起、NFT热潮以及元宇宙的风靡,这些尝试不仅丰富了区块链玩法,更拓宽了区块链生态的边界。
未来,随着应用场景的进一步丰富,区块链与现实世界的进一步融合也是大势所趋。如何突破性能瓶颈,实现更加安全、隐私、高效的链上链下数据交互,是目前区块链破圈发展亟需解决的问题,也是以Mina Protocol为代表的zk-SNARKs公链发展的机遇所在。
递归零知识证明:打造更简洁安全的区块链
大数据杀熟;贩卖用户数据;数据不透明导致用户欺诈事件…中心化弊端日益凸显,人们希望借助区块链能去中心化、不可篡改的「去信任」架构,消除信任中介,完成各种交易和协作:所有信息上链,所有人都是见证人。
但令人气馁的是,信息上链有悖于隐私保护,而且去中心化导致了繁冗的重复计算,随着交易规模的增加,每个区块链参与者所需要记录的数据随之增加,区块链变得越来越重,新加入者不仅要花费较长的时间同步数据时间,而且需要配置昂贵的硬件设施和消耗大量电力,这无形中提高了成为节点的门槛,导致目前的区块链发展仍存在依赖第三方验证交易的现象,这也对区块链网络安全带来危害。
zk-SNARKs是解决这一问题的可行技术。
在理解zk-SNARKs之前,我们可以先了解零知识证明。
复杂的数学逻辑暂且按下不表,从字面意思上理解,零知识证明就是:证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。我们可以以找熊猫为例说明:
一群人在这张图中找一只熊猫,小A率先发现了熊猫位置,但是他不能立马公开指出来,因为这样就破坏了其他人的游戏体验。
有没有什么办法,即能够证明小A知道熊猫在哪儿,又不会让其他任何人知道答案呢?
于是小A想到了一个办法:
他找来一张超级大的白纸,并把这张纸随意的覆盖在有熊猫的图片上。然后,小A在白纸上剪一个小洞,只让熊猫露出来。
这样,熊猫位置作为关键信息,是被保护起来的,但小A还是能够在不让其他人知道熊猫在哪儿的前提下,证明自己找到了熊猫,这就是零知识证明。
zk-SNARKs全称为Zero Knowledge Succinct Non-Interactive Argument of Knowledge,即非交互式零知识证明,是基于零知识证明的进一步创新。zk-SNARKs提供「不可伪造的证明」,能证明计算正确执行,而无需提供整个计算过程。相比较于零知识证明,zk-SNARK不仅不会泄露信息,而且不需要交互,即使是复杂的逻辑也能够轻松验证,并且通过证明压缩成很小的体积。
因此,很多引入zk-SNARKs技术的公链,选择为每个区块创建一个SNARK的证明,每个SNARK的大小约1 kb,且无需显示所有交易即可证明区块交易历史的准确性,这大大压缩了区块大小。
虽然引入zk-SNARKs的区块已经很小了,但随着区块的堆积,SNARK越来越多,区块数据仍然会线性增长,区块链还可以更简洁。
因此,轻量级区块链协议Mina protocol创新性提出递归零知识证明概念:
快照整个区块链状态,并生成一个 SNARK 证明,当网络中的下一个区块被创建时,它会以区块链先前状态的快照为基础再快照一次,再生成一个 SNARK 证明,这个 SNARK 证明并嵌套到下一区块之中,然后不断进行迭代和嵌套,实现区块大小的恒定。
举个引用较多的例子:
如果你要证明你一年中每天都到过一个广场(广场上有日期时钟),最简单的办法就是每天自拍打卡,365 张照片就是最终证据。
另一种办法就是从第二天起,每天自拍打卡时,手上拿着前一天的照片,最终一年就只需要一张照片即可,这就是 Mina 采用的递归证明。
如此一来,Mina节点无需同步整个历史记录,虽然这些节点不是完整节点,但由于SNARK 证明了交易的准确性,因此它们拥有与完整节点相同的安全性。
通过递归零知识证明,Mina区块链就变得非常「轻」,Mina 中的全节点可以仅为 10kb,这让Mina无论在效率还是安全方面都能够从一众公链中脱颖而出:
因为「轻」,所以网络运行效率高,进一步规避目前困扰以太坊许久的网络拥堵问题;
因为「轻」,所以不需要太高的硬件条件去同步历史数据,成为Mina网络节点的门槛就变得非常低,即使是运算能力相对较弱的移动端,类似手机、平板电脑等,也可以去同步验证 Mina 网络。
因为「轻」,所以全网节点增多,不仅提高了验证速度,而且提高了网络整体的安全性:如果有人提交了错误的 SNARK 证明,任何人的设备比如手机就可以立即验证并发现。
Snapp:由 SNARK 驱动的去中心化应用程序
每一条公链都希望发展自己的生态,Mina 也不例外。
Mina 希望搭建一个围绕零知识证明的生态系统,这个系统由Snapp组成,而Snapp则是由 SNARK 驱动的去中心化应用程序。
在其他区块链应用中,所有的事务、交易和数据都要被公开上链,但实际上我们想要的是验证这些数据的准确性,并不需要数据本身,因此很多计算其实并没有太多意义。
Snapp的最大特点在于:可以在保护用户隐私的情况下使用离线数据。在Snapp,用户不需要将自己的隐私数据上链,而是提交数据证明。Mina也不需要实际地运行整个计算,而是验证数据是否符合一定要求。
因此,基于Mina零知识证明构建的Snapp具有以下优势:
1)隐私保护功能;
2)以安全的方式验证大量数据的能力;
3)简洁带来的低成本和高度可拓展性。
以DeFi为例:
目前大部分借贷类DeFi都是超额抵押,这降低了资金利用效率。而通过Mina构建一个安全、隐私的信誉评估体系,就有可能揭开低抵押贷款的新市场。
在借贷之前,用户登录一个信用分查询服务的网站,并且去查询自己的信用分,同时在自己的本地去生成信用分的证明,并且把这个证明发送上链。
用户的资产情况、社保账号等数据并没有上链,这一方面避免了繁冗的计算,另一方面也保护了隐私信息。有了这个证明,借贷项目便可根据这个证明判断是否要发放贷款以及贷款额度等。
基于这些特性,Mina Snapp拥有广泛应用场景。
成为可信桥梁:围绕零知识证明构建生态系统
区块链的本质是一个去中心化账本,链与链、链与互联网应用之间的交互体验并不顺畅,极易形成信息孤岛,这直接限制了区块链的应用范围,因此「桥」的发展受到重视。
在区块链的世界中,Mina能够很好的扮演「跨链桥」的角色。
假设如果你是以太坊开发者,现在想桥接到另一条链上,你会面临各种问题:首先你需要知道另一条链上的实际共识状态是什么,但这需要下载大量的数据、进行大量的计算,从成本和效率上来说都是考验。但是Mina非常小,几乎任何链都可以在其自己的智能合约内验证Mina所有数据。
对于用户而言,这样的接入也是安全且无感的:如果你是以太坊用户,现在想访问某一热门Snapp ,通过Mina 可信任桥生成证明,你就可以在不迁移任何数据的前提下使用 Snapp。
这让Mina能够轻松接入任何一条链的生态,为Mina生态导入多链的应用场景、用户流量。
作为利用递归零知识证明打造简洁区块链的公链项目,Mina也非常适合成为其他公链的扩容方案,从而实现与其他公链的生态联动。事实上,Mina 已与公链生态的龙头以太坊进行合作,双方的基金会将出资,寻求第三方团队给出一个能高效验证 Pickles SNARK 的 EVM 改进方案,兼顾两条链优势的同时,实现Mina与ETH之间的互操作性。
另一方面,Mina更有能力成为区块链连接真实世界的网关,这个网关开放又隐秘。
开放之处在于,只要网站支持HTTPS协议,互联网数据就能无缝输入Mina,且这个数据是可验证的。
隐秘之处在于,用户数据本身并没有被暴露,仅仅是验证和分享关于这个数据所生成的证明。
比如,某公司要选举年度最佳员工,只有在公司干了超过1年员工才能参与投票。
在投票系统中,员工可以通过展示入职邮件来证明自己拥有投票权,并在完成投票后生成证明,将证明上链,使用这个证明来更新Mina链上的投票应用程序状态。
整个过程中,投票者并不会暴露自己是谁、把票投给了谁。投票期结束,任何人都可以验证投票结果。
除了匿名投票之外,Mina网关也适合应用于:
1)身份登录验证;
2)账户余额验证;
3)信誉评估验证;
4)大学成绩验证;
5)工作成就验证;
6)健康信息验证…
在每个需要数据验证的应用场景,Mina构建的「不需要可信设置的可组合的智能合约」都可以提供安全、高效且完全不依赖于第三方的证明,这体现了Mina在可拓展性方面的巨大潜力。
技术SDK:正在路上
当然,关于Snapp的种种设想是否能够照进现实,除了Mina自身的技术先进性之外,开发低门槛也是重要考量因素之一。
零知识证明的理解和应用都需要扎实的数学基础和开发经验,为了降低开发门槛,早在2017年, Mina 两位联合创始人Evan和Izaak就构建了一种用于构建零知识证明的计算机编程语言Snarky,并让 Snarky 在 Javascript 内部作为 DSL (或领域特定语言) 工作,开发者无需学习全新的编程语言,这大大降低零知识证明开发门槛。
另外,为了让递归零知识证明服务于更大规模的用户群体,Mina SDK开发工具包正在紧锣密鼓的开发当中。SDK可以将 SNARK 证明生成器和哈希生成器以及 Mina 界面嵌入到他们的应用程序中。推出之后,开发者仅需调用几个API接口即可实现Mina核心功能的集成。
根据官方团队透露,Mina SDK开发工具包预计在2021年第四季度推出,帮助开发者在Mina 部署 Snapps的同时,围绕应用部署、技术SDK使用的多类别扶持政策与激励措施也将一并推出。届时,Mina生态是否会迎来阶段性爆发,值得让开发者乃至整个社区期待。