通过递归零知识证明打通数据交互:Mina 生态应用场景丰富

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生态是否会迎来阶段性爆发,值得让开发者乃至整个社区期待。

Subscribe to MinaWallet
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.