查看原文
其他

利用零知识技术解决区块链关键安全漏洞


Web3 把 Web1 的去中心化与 Web2 的交互式用户体验结合起来。遗憾的是,Web2 集中在逐利的大型科技公司周围。由于他们专注于货币化而非产品效益,致使用户在当今互联网上失去了隐私和安全。


然而,Web3 正在改变这一点。它承诺以用户为中心的价值观、隐私性和交互性,如通常应用于去中心化金融和 NFT 市场的便捷的去中心化应用 (dApp)。要获得这些优势,你必须通过钱包与区块链交互。


但并非所有钱包都是一样的。大多数人无法在网络浏览器中管理传统区块链所需的数百 GB 数据。如果不运行全节点并且自行验证链,这些钱包必须依赖服务器等受信 (trusted) 第三方,Signal 的创始人 提出这是 Web3 的一个关键缺陷。



第三方在 Web3 dApp 中扮演的角色


在进一步深入探讨第三方中间商的信任问题之前,让我们回顾一下迄今为止主导 Web3 的三种方案以及第三方中间商在其中所扮演的角色:


方案一:钱包连接到一台或几台服务器


方案二:钱包通过轻客户端连接到协议


方案三:钱包连接到昂贵的全节点

 

方案一和方案二都存在安全风险。在方案一中,像 这样的钱包依赖于极少数远程过程调用 (RPC) 服务器来充当受信任中间商。如果这些 RPC 遭到破坏,那么用户将直接面临风险。


方案二会减少但不会消除信任。在这种方案中,钱包利用轻客户端来部分验证协议信息。然而,一些信息必须是受信任的,同时省略了对所有区块的完全验证。


此外,轻客户端仍然不能满足 Web3 的需求:它们需要下载大量的区块头,这仍然是昂贵且耗时的,而且提供的信任保证也更少。


方案三更安全,L1 链需要全节点下载和验证链的整个历史记录。与轻客户端相比,它需要下载更多的数据。所有方法都需要权衡:要么信任第三方中间商,要么运行功能强大的计算机,而这些计算机既昂贵又难以操作。



第三方带来的问题


依赖第三方信任的 Web3 钱包和区块链没有遵守 Web3 精神核心的去中心化和去信任原则。


在这种权衡之上,依赖于第三方信任的 Web3 钱包和区块链不能遵守 Web3 精神核心的去中心化和去信任原则。


密码学家莫西·马林斯派克(Moxie Marlinspike),解释了某些钱包上的区块链资产如何仅显示集中式 API(应用程序编程接口)报告的内容,这会危及你的安全。为了证明这一点,马林斯派克创建了一个 NFT,它会根据你从哪里查看它而发生变化:在一个受信实体上是一个图像,在另一个受信实体上是另一个图像。当你从加密钱包中查看它时,它会显示为 💩 表情符号


来源:https://moxie.org/2022/01/07/web3-first-impressions.html


钱包无法显示原始 NFT,也无法验证其真实性。不出所料,这一行为冒犯到了某个第三方实体,随后马林斯派克的 NFT 展示被全部移除,包括从他们的加密钱包中移除,这反映出其未能满足区块链的另一个关键的属性:审查阻力。


马林斯派克的观点很明确:第三方不一定值得信任。此外,诸如中心化控制服务器之类的第三方正被用作 Web3 钱包的公共真实来源,这些钱包可以被黑客攻击或控制,导致暴露未反映在链上的信息。


一个真实事例:委内瑞拉和乌克兰的用户最近发现他们对一个受信任的第三方的,并以此控制他们的数据和资产。这是由于美国制裁计划,配置阻止来自某些地区的 IP 地址。


如此,伴随着第三方中间商的 Web3 与 Web2 没有太大区别。依赖第三方的钱包削弱了实现真正去中心化和安全的可能。



确保 Web3 dApp 信任问题的新方案


新出现的第四种 Web3 方案将解决第三方带来的问题:


方案四:钱包通过全节点验证连接到成本较低的节点


方案四提供全节点安全性,同时通过消除下载和验证大量数据的需要来降低成本,从而降低其计算需求。当全节点验证变得不那么计算密集和昂贵时,更多的人可以参与进来,并消除第三方运行节点或查询服务器的需要,从而实现更高程度的去中心化。从本质上讲,第三方越少,参与越分散,一条链就越安全。然而,如何做到?

 

一项名为(ZKP)的新兴技术已经研究和开发多年,Mina 协议生态系统利用它设计了一个轻量级的区块链,任何人都可以参与。



用验证代替信任:通过 Mina 的零知识区块链


方案一、二和三需要信任第三方或运行昂贵且复杂的硬件。

 

与 Mina 的区块链一样,第四种方案的内在力量来自于递归 zk-SNARK(零知识简洁非交互式知识论证)。你能够执行全节点验证,验证区块链(包括你的帐户)完整状态有效性的 ZK 证明,而不仅仅是最新的区块。这一切都发生在小于一条推文大小的小型可验证加密证明中。换言之,Mina 上的全节点验证是高效的,并且可以在不下载整个区块链的情况下为用户提供完整的验证安全性。

 

试想一下,通过 Mina,即使你连接的节点没有全节点验证,你仍然可以通过加密证明来验证链的完整性。即使你连接到非全验证节点或作恶节点,这也是有效的。收到的证明不能被恶意节点伪造,并且你可以验证它。这就是 Mina 的力量!



对于少数想要保留网络上每笔帐户历史记录的人来说,Mina 存档节点是可选类型的节点,你可以在本地机器、提供持久存储的程序或集中式程序上运行。然而,这些并不是网络安全所必需的,因为完全验证的共识节点提供了链有效性的证明。Mina 基金会首席执行官 Evan Shapiro 提到,“把它想象成你的信用卡:你不需要交易历史来进行交易。系统只需要当前余额即可进行交易,而你个人可能希望保留自己的交易历史记录。”

 

Mina 生态系统正进一步利用 Mina 的简洁性,为任何使用网络浏览器的人开发运行节点的功能,从而实现进一步的去中心化和安全性。对于开发者来说,web 节点还大大降低了进入门槛,无需在 Linux 环境中运行和维护节点,从而减少了能源需求以及深厚技术知识的需求。


Mina 的 Web3 dApps 能够利用 Mina 的全节点安全性,同时还将 ZK 用于数据隐私应用。你可以通过 ZKP 证明你有权访问某些信息,例如你的个人数据,但无需将数据泄露给任何人,同时还可以在不查看详细信息的情况下验证数据的正确性。这意味着开发者可以在已知提交交易的链是安全的基础上开发保护用户隐私的应用。

 

因此,即使在网络浏览器上处理、记录和验证交易时,你的数据也可以得到保密。



解决区块链安全问题的关键


Mina 的零知识消除了第三方并提供了可证明的信息。


在当今的计算机化世界中,你的隐私和安全应该成为常态,而让包括其他链在内的所有人都可以访问零知识将是实现这一目标的关键。Mina 生态中的几个团队也在努力进一步实现这种可能性。除了在(non-consensus browser nodes) 上取得进展外,Mina 贡献者还在致力于 (zkApps) 和 的开发,以便其他链可以访问 Mina 的隐私和安全属性。


如果你准备好使用 ZK 开发去中心化应用并且对 TypeScript 有所了解,欢迎查看


获取开发者资源,了解更多有关如何构建用户主权的隐私安全的未来。




About Mina Protocol

#PoweredByParticipants


Mina 是全球最轻量区块链,由参与者参与治理。


凭借其优雅的设计,Mina 是首个实现简易编程性零知识智能合约(zkApp)的一层网络。Mina 独特的隐私和安全功能及其通过 zkApp 与任何网站链接的能力,使得 Web3 更具安全性和私密性,极大地推动着所有人都应享有的安全民主未来的构建。Mina 由总部位于美国的非营利组织 Mina 基金会管理。





全球最轻量区块链 人人皆可参与

公众号|Mina Protocol Official

微 博|Mina_Protocol



往期回顾

Mina 改进提案 (MIP) 链上投票|Part 1

Mina 生态开发进展月度更新|2022 年 11 月

zkIgnite 队列 0 正式启动!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存