为什么我们需要链上的隐私保护
链上的公开与透明对于所有用户来说都是一把双刃剑,一方面有人希望能够通过 web3.0 这个世界尽情的展现自己的的履历与 NFT 藏品,另一方面你的一举一动都有可能能被别人监控,完全失去了个人隐私。
zkRollups 能够使用零知识证明技术将隐私性整合进 Rollup 方案,但目前来看大多数的 zkRollups 方案对于零知识证明的隐私性方面的涉足并不多。
本文作者 Matthias Heinrich Morales 阐述了 基于 zkRollups 的方案进行隐私保护的可行性,他认为链上的交易情况在默认情况应该是匿名的,以保护个人隐私。 在完全匿名的情况下,用户可以选择基于可编程式的隐私保护模式来选择是否将个人的一些交易情况公开到链上。律动将原文翻译如下。
在这篇文章中,我所提到的基于隐私保护都是基于 zkRollups 方案上的,我们为何会如此需要隐私保护。zkSync、Starknet 和 Aztec 之间对比起来有哪些相同,又有哪些不同?
隐私保护是当前大部分的加密领域和 zkRollups 能够取得成功的关键因素。在接下来的阐述中我将主要介绍一下几点:
-
为什么隐私如此重要
-
为什么它应该成为我们的默认选项
-
为什么 zkRollups 可以成为独特的催化剂
-
zkRollups 方案中的一些主流项目该如何比较?
为什么隐私如此重要
Web3.0 是一种新的范式,允许用户来掌控他们自身的个人数据,然后决定是否要共享这些数据。 (没有信息签名就不会发起交易或转移)然而,我们处在 以太坊 上的 Web3.0 时代,在默认情况下都是没有隐私的,因为所有交易都是公开的,即使你只是用了网名,一旦有人知道了你的钱包地址,那么他们仍然能够追踪到你在链上做的所有事情,以及与你有交集的所有事情。
一方面来说这是好事,想象一下如果你的钱包地址能够链接你的 ENS 域名,并且向别人展示你链上的 NFT 收藏,这是很多人希望从中得到的。其他情况下,比如你通过某些 DeFi 项目流转大量资金,我相信你是不愿意将这些信息公之于众的。
zkSync 在他们的用户手册中有一点说的非常正确:「一些生活在贫苦或危险地区的居民可能不会通过加密货币支付当地的开销,因为这些商人能够很轻松的知道他们手里到底有多少钱」
为了规避这一点,许多用户都拥有公共地址和私人地址,WPMonty(Bankless Dao 的技术成员)也曾经写过一篇很精彩的文章《3 Rules for Healthy Pseudonymous Hygiene with Ethereum》来介绍如何保持两个地址相互独立没有联系。
然而对于很多新用户来说,如果没有一个更为简单抽象的措施的话,设置多个地址并且妥善维护这些地址是劳民伤财的。如果这点都无法做到,我们该如何相信未来的加密货币能够成为主流?单从这一点来看,我们就能看到隐私转账的价值所在。
为什么隐私应该成为我们的默认选项
事实上,目前有几个方案解决了这个问题,并在以太坊上是可选择的保护隐私,其中最值引人注目的就是 Tornado.Cash(龙卷风协议)。然而这些可选择性的隐私保护方案都伴随着很多局限。
例如,通过 Tornado.Cash 用户只能转移固定额度的 ETH ,而不是任意额度,尽管最新版本的 Tornado Nova 已经在实验中了,但还是很大程度地阻碍了这些协议的实用性。
就算这方面的实用性不是亟待解决的问题,隐私转账的额度选项受到限制,但目前来看这种默认的全局匿名的方式只能被认作最高级别的隐私保护。
换句话说,在默认的情况下,隐私交易如果允许我们从简单的全局式隐私保护到可编程的隐私交易,那么将会把隐私相关的 Dapp 带入到一个全新的世界。
为什么是 zkRollups
其实可编程式的隐私交易已经在其他链上实现了,例如 SecretNetwork,也可以通过跨链的方式应用于以太坊链上。然而跨链又引发一系列新的安全问题,比如最近的 WormHole 事件跨链桥漏洞事件,黑客的攻击提醒了人们,这项技术必须要更加成熟。
事实上基于跨链的解决方式 Vitalik 也曾经表示未来会是一个「多链」时代而非「跨链」。
因此,隐私解决方案最好是直接运行在以太坊,这样 Rollups 也会继承以太坊所有的安全保障(通过在 L1 的智能合约上运行)并且也能减少在转移过程中产生的成本。
zkRollups 方案特别适用于作为默认隐私设置,首先,它会随着规模减小从而降低边际成本。其次,它拥有广泛的可验证性。最后,其本身使用的零知识证明技术也通常用于保护隐私。就像 TornadoCash 在 L1 上仍然需要依靠 zkSNARKs 来应用零知识证明。
如果你对于 zkRollups 还不了解,那么 CryptoCanti 写的这篇专业的文章也许能够很好的帮助到你《Ethereum-powered ZK-Rollups: World Beaters》
zkRollups 方案中的一些主流项目该如何比较?
让我们来看一下在默认隐私保护的状态下,基于 zkRollups 方案的 zkSync、StarkNet 和 Aztec 在以太坊主网的对比情况。
zkSync
zkSync 由 @gluk64 和 @Shamatar 创办,由 Matter Labs 开发推出的可扩展性支付方案。zkSync 立志将加密货币带到群众面前,拥有强大的哲学保护措施和全球范围的自由经济发展措施。
zkSync 计划将默认隐私作为发展的一部分,随着时间的推移将会把隐私转账的形式应用于可编程的隐私 Dapp。但目前为止,zkSync 还没有可用的隐私保护功能,用户仍然需要依赖第三方协议进行隐私交易。
zkSync 也在推特上表示「当『证明方技术』无需高成本且拥有弹性消耗时将会添加隐私功能并在平台上架」。
这种向默认隐私设置的转移必然是全隐私保护的智能合约,就像 zkSync 团队所言:「隐私保护模式必须支持可编程,因为在真实状况下的应用案例并不仅仅只是转账这么简单」
将当前的交易模式转为默认隐私模式的结果是未知的,然而我们或许能够期待一下 zkSync2.0 上线所带来的改变,而后再来介绍它实际中的应用 zkPorter。
StarkNet
StarkNet 是由 @EliBenSasson、@ukolodny、@RiabzevMichael 和 @Alessandro Chiesa 联合创办,由 StarkWare 团队推出的可组合的 zkRollup 网络。他们专注于零知识技术的开发与研究以用来提高区块链的延展性。
在 StarkNet 之前,他们曾经开发了 StarkEx 的 zkRollup 方案,通过通用的智能合约为例如, dYdX 、ImmutableX 和 Sorare 这样特定的应用或团队提供帮助。
StarkNet 背后的团队仍然将目标放在 L2 的 Rollup 方案而非默认隐私方案,然而他们仍然拥抱那些能够将隐私方案带到 StarkNet 的团队。
StarkNet 在官网中也明确表示,「任何团队都能够团队都能够在 StarkNet 上部署各种隐私协议,所有网络参与者将会提供完整的隐私支持。并且能够通过 StarkNet 的可扩展性来解决隐私协议中所需的大量计算压力」。
从 StarkNet 的热门项目建设目录中来看,目前似乎还没有在 Rollups 中提供隐私交易的协议,也许它会是 StarkNet 提及过正在建设的 80 秘密协议之一。
随着时间的推移,我们还可以期待 StarkNet 自己 Rollup 方案的隐私协议,以 L3 或 L4 的形式支持在 L2(非私有)上运行。
关于 StarkWare 的内容可以参考这篇文章《Fractal Scaling: From L2 to L3》
目前为止关于 StarkNet 是否会推出关于隐私交易和可编程式隐私交易还未有定论。
Aztec
Aztec 是由 @Zac_Aztec、@jaosef 和 @rel_Aztec 所主导的,以隐私为首要哲学深入的延伸到默认隐私形式和可编程的隐私设置的研究。
整个团队深耕于基础研究,例如他们发布了原版 PLONK 论文,为很多团队建立了理论基础。
在默认状态下,Aztec 的 Rollups 方案中所有的隐私交易都是利用屏蔽机制来完成的,但目前很多应用和程序受到限制,该协议目前仅能通过 zk.money 来进行隐私转账。
不久之后 zk.money 将会开放允许隐私账户在 L1 注入流动性、于 DeFi 协议交互,以及利用公司的 SDK 来实现再利用功能。
使用 Aztec 合约的 SDK 是一个非常新颖的方案,它通过保护 ETH 从 L2 与 L1 智能合约的交互,并且再返送回 L2,从而保护了隐私。
这种方法的过人之处在于它允许完全私人智能合约交互,而无需将 DAPP 部署在 Aztec 的 L2 上(并且具有完全等效与 EVM 的 ZKEVM)
Aztec Connect 目前在测试网上运行,将于 3 月 22 日在主网上推出。
随着时间的推移,Aztec 希望能够通过其私有的智能合约语言 Noir 为 L2 带来完全私有化的可编程方案。Noir 是完全开源的,高级别 rust-like 编程语言,它是 PLONK 后端软件编译的零知识技术。该项目目前也正在招聘语言架构师。
总结
我们能够看到,以太坊需要隐私,而且默认隐私将会最为安全的。zkRollup 方案中最为优先的定位就是提供完整的隐私性和可编程性,而 zkRollups 在以太坊解决方案中上述的三个团队也在努力的完善各个方面的功能。
原文作者:Matthias Heinrich Morales
原文编译:0x21,律动 BlockBeats