关于Web3基础设施

关于Web3基础设施

https://mirror.xyz/suzuha.eth/vb5E5lhzmPTcpxOJcz6Q211TDgSvoFwDLA6JSM1V37Q

image.png

近几个月“web3”一词重新流行起来:不管你喜欢或讨厌它,这个模糊的术语突然成为了区块链和分布式账本技术领域发生的大部分创新的一面旗帜。自 2014 年 Gavin Wood 最初创造它以来这个词已经存在了一段时间,无论好坏,现在它似乎已经达到了“临界质量”。

随之而来的是大量的讨论和批评。讨论分野似乎几乎完美地一分为二:一方面是“区块链爱好者”,他们是一个广泛的群体,从教条的“moon boy ”交易者到像Dan Boneh这样经验丰富的密码学家们,他们正在研究领域相关的核心技术。另一方面是“区块链厌恶者”:例如像Stephen Diehl(他本人实际上在私人区块链上工作)这样的人,他们不断地产出高度自说自话的、reactionary和不屑一顾的批评。

这些批评通常与区块链空间中实际发生的任何事情无关,也没有意识到技术发展和文化愿景。这种分歧对新兴技术的健康极为有害:这些技术不会消失,所以如果你唯一的答案就是不屑一顾和愤怒,你实际上只是放弃了去决定这些技术在我们世界中将会变成什么样的权力。这种话语模式创造了一个负和反馈循环,对所有人都不利。

不要对抗力量,使用它们

Buckminster Fuller

最近,Moxie Marlinspike(以 sslstrip 和 Signal/TextSecure 闻名)发布了一篇名为“我对 web3 的第一印象”的博客文章。在其中,他详细介绍了他深入研究一些“web3”技术的经验:在以太坊上构建 NFT,并使用相关的客户端 RPC 与链交互。Moxie 指出了对当前以太坊生态以及更广泛的 web3的一些重要批评。这是一个非常建设性的批评,没有落入前面提到的反身性陷阱。(“这都是庞氏骗局!”等等)

我想强调其中的一些批评,以及一些社区可以听取并改善现状的方式。

1关于客户端、服务器、全节点和用户的懒惰

Moxie 提出的主要观点是:

人们不想运行自己的服务器,也永远不会 。Web1 的前提是互联网上的每个人都是内容的发布者和消费者,同时是基础设施的发布者和消费者。

我们都有自己的web服务器和我们自己的网站,我们自己的电子邮件服务器,我们自己的状态消息的finger服务器,我们自己的角色生成服务器chargen。然而——我认为这一点强调的还不够——这不是人们想要的 。人们不想运行自己的服务器。

在这一点上,即使是nerds也不想运行自己的服务器。即使是全职构建软件的组织也不想运行自己的服务器。如果有我希望我们已经了解了关于世界的一件事,那就是人们不想运行自己的服务器。那些为你提供服务做这件事的公司是成功的,那些基于这些网络的可能性而迭代新功能的公司则更加成功。

我认为这是一个非常重要非常精确的观察。经验数据也证实了这一点。据 ethernodes.org 称,目前以太坊完整节点的数量约为 5500。如果 Twitter 上的每个以太坊nerd都运行自己的以太坊节点,这个数字会高得多。

125cd7eb7dd07d4a5c844dfc373a9123.png

根据ethernodes.org,以太坊完整节点的数量和客户端分布

这一点在大部分区块链社区中也被广泛接受。Vitalik Buterin 将每个人都运行自己的节点的想法称为“weird mountain man fantasy”。

2关于基础设施提供商

在文章的后面,Moxie 提到了 Web3 基础设施提供商的当前状态:

例如,无论是在移动设备上还是在 Web 上运行,像Autonomous Art或First Derivative这样的 dApp 都需要以某种方式与区块链交互——为了修改或渲染状态(集体生产的艺术品、它的编辑历史、 NFT 衍生品等)。但是,这实际上是不可能从客户端实现的,因为区块链不能存在于你的移动设备上(或者实际上不能存在于你的桌面浏览器中)。因此,唯一的选择是通过在某处服务器上远程运行的节点与区块链进行交互。

一个服务器 !但是,众所周知,人们不想运行自己的服务器。碰巧的是,已经出现了一些公司,它们出售对作为服务运行的以太坊节点的 API 访问权限,同时提供分析、他们在默认以太坊 API 之上构建的增强 API 以及对历史交易的访问权限。听起来……很熟悉。在这一点上,基本上有两家公司。几乎所有 dApp 都使用InfuraAlchemy 来与区块链交互。事实上,即使你将 MetaMask 之类的钱包连接到 dApp,并且 dApp 通过您的钱包与区块链交互,MetaMask 也只是在调用 Infura!

这些客户端 API 没有使用任何东西来验证区块链状态或响应的真实性。结果甚至没有签名。像 Autonomous Art 这样的应用程序说“嘿,这个智能合约上的这个视图函数的输出是什么”,Alchemy 或 Infura 用一个 JSON blob 响应,上面写着“这是输出”,然后应用程序渲染它。

这让我很惊讶。创建一个去信任的分布式共识机制已经投入了大量的工作、精力和时间,但几乎所有希望访问它的客户都是通过简单地信任这两家公司的输出来实现的,而无需任何进一步的验证。这似乎也不是最好的隐私情况。想象一下,如果每次你在 Chrome 中与网站交互时,你的请求首先发送到 Google,然后再路由到目的地并返回。这就是今天以太坊的情况。所有写入流量显然已经在区块链上公开,但这些公司还可以查看几乎所有 dApp 中几乎所有用户的几乎所有读取请求。

这凸显了当前 dApp 构建方式中的一个关键基础设施漏洞。我敦促 web3/crypto 相关人员注意下这部分批评。这是至关重要的。这感觉类似于 Moxie 指出了 HTTPS 连接可以降级为 HTTP:这是一种系统性风险,开发者社区已经接受,但由于没有向用户充分解释,实际上就是一种系统性的未被接受风险。解决这个问题非常重要(好消息是我们已经有了一些工具)。

3关于 NFT 元数据和用户传达

这篇文章中另一个突出的批评是围绕 NFT的,具体来说是关于那些旨在表示某些图像内容的NFT的(如著名的 Apes)。

NFT 不是将数据存储在链上,而是包含一个指向数据的 URL 。这些标准让我感到惊讶的是,位于 URL 的数据没有散列承诺。看看流行市场上以数十、数百或数百万美元出售的许多 NFT,该 URL 通常只是指向某个运行 Apache 的 VPS。任何有权访问该机器的人、将来购买该域名的任何人或任何破坏该机器的人都可以随时将 NFT 的图像、标题、描述等更改为他们想要的任何内容(无论是否不是他们“拥有”令牌)。NFT 规范中没有任何内容告诉您图像“应该”是什么,甚至不允许你确认某物是否是“正确”图像。

所以作为一个实验,我做了一个 NFT,它会根据谁在看它,因为提供图像的 Web 服务器可以根据请求者的 IP 或用户代理选择提供不同的图像。例如,它在 OpenSea 上看起来是一种方式,在 Rarible 上看起来是另一种方式,但是当你购买它并从你的加密钱包中查看它时,它总是会显示为一个大的 💩 表情符号。你出价的不是你得到的。这个 NFT 没有什么不寻常的,这就是 NFT 规范的构建方式。许多高价的 NFT 都随时可能变成💩表情符号,我只是让这点变得明显。

这是另一个重要的批评。虽然这个元数据字段确实可以 包含一个内容寻址的数据 blob(如Skynet 链接或 IPFS 链接),但事实就是在许多情况下它并没有 。这很糟糕。它不仅代表未能构建默认为合理默认值(如内容寻址数据)的良好工具,还代表钱包技术和基础设施未能向用户传达他们正在控制的链上元数据的内容。

4前行之路:基础设施提供商

当 Moxie 在 2009 年披露 SSLStrip 时,他强调了 TLS 部署方式中的许多关键基础设施疏忽。这些并不是协议本身漏洞 ,而是通过利用用户的期望在实践中破坏 TLS 的一种方式。将 https 链接降级为 http 时,典型的用户绝对没有理由认为出现了任何问题。是的,这不是 对ECDH 或 RSA的攻破 ,但无论如何它实际上 完全攻破了 TLS。后来开发了HTTP Strict Transport Security,成功解决了这种情况。

我对文章中指出的问题也有类似的看法。虽然你确实可以 运行自己的节点,如果你的基础设施提供商审查你,你可以 检查并改变你的数据,你可以 安全地创建 NFT,但是在通常情况下,已部署的软件是根本无法为用户提供足够的默认保护的。

那么,这让我们何去何从?我们应该强迫用户进入“mountain man fantasy”吗?正如 Moxie 所提到的,区块链太大以至于无法安装在移动设备上。我们应该建立更多的基础设施提供商吗?我们的 HTTP Strict Transport Security 是什么?

如果我们接受(我认为我们应该)Moxie 的观点,即在一般情况下用户不会运行节点,那么我们将面临基础设施提供商的以下现存问题:

  • 基础设施提供商可以就区块链状态向用户撒谎,而用户客户端将无法辨别他们已被欺骗。
  • 基础设施提供商可以监视他们的用户,记录他们的链接地址、交易或 NFT 活动,

我将描述两种方法,它们在近期内可以用最少的研发安全地解决这两个问题。

状态验证:轻客户端

5cd6de7af13d338bcdb499f5b98a0b10.png

在第一点上,区块链社区已经知道解决方案有一段时间了。轻客户端 可用于跟踪区块头、验证状态承诺并验证从基础设施提供商发送的状态片段的包含证明。轻客户端可以轻松地在廉价的设备(如手机)上运行,并且需要很少的存储、带宽和计算成本。

轻客户端是一个概念上经过充分探索的领域,可以追溯到原始比特币白皮书中的“简化支付验证”(SPV),通常在比特币生态系统中实施。Tendermint是有成熟的轻客户端的,其已经在IBC协议中证明了自己的价值。IBC协议跨链转移数以百万计的价值并且需要轻客户端保持完整性保护和认证。以太坊生态系统也有类似的轻客户端的工作,尽管它们还并没有部署到像 Metamask 这样的普通终端用户钱包中。

通过强大的密码学为面向用户的钱包如 Rainbow、Metamask 等支持采用轻客户端,第一点问题将得到解决。在轻客户端模型中,基础设施提供商不再能对区块链状态撒谎。

隐私:消息检测

对于第二点,我们有几个选择。一种是让基础设施提供商使用某种安全飞地(如 SGX,用于 Signal中的某些功能)来处理传入的用户对当前链状态的查询。假设SGX没有被破坏,用户的隐私应该得到维护。然而,SGX却经常被攻破,并且这种方法可能会有是数据流问题(如聚合访问模式泄漏)。

另一种方法是使用密码学在与用户状态无关的更大的一组状态片段集合中混淆用户的状态片段。一种被称为模糊消息检测 的方法最近刚刚被形式化说明。这个问题与许多保护隐私的加密货币网络相关,但可以概括为允许用户向他们的基础设施提供商隐藏他们的状态片段,而无需依赖任何受信任的硬件,如 SGX。Penumbra是一个链的例子,它计划基于这种方法构建轻客户端基础设施。

消息检测和轻客户端验证一起

通过轻客户端验证,基础设施不能再在最近状态中包含特定状态片段方面撒谎。通过消息检测,用户可以保护他们的隐私免受基础设施提供商的侵害。与运行全节点相比,我们对基础设施提供商的信任还剩什么?

  • 基础设施提供商可以拒绝将状态片段发送到我们的钱包

这种情况已被大大改善,并且本身可以通过Sia或Celestia 中使用的加密经济数据可用性(DA)游戏来解决。

5前行之路:NFT 元数据

65963afed9b3e4eeb47ee361ad455005.png

在 Moxie 提出的另一点即NFT 元数据通常实际上并非用户期望的那样上,我相信我们在短期内有一些选择。

首先,我们应该有更好的透明性工具,以便用户知道他们购买或铸造的 NFT 的元数据内容。OpenSea 等平台以及 Rainbow 和 Metamask 等钱包应该提供对这些 NFT 元数据的可见性,并且应该有一种标准方法来验证一个 JPEG NFT 是否确实包含其 JPEG 的哈希值(不管该哈希值是 一个IPFS 链接,一个Skynet链接或其他东西)。

其次,如果 NFT 旨在成为某种图像,我们应该教育用户和开发人员在他们的元数据中包含一些内容寻址哈希的重要性。

第三,钱包软件应该能够验证 NFT 中的 JPEG 校验和,并在数据可用性提供方返回的数据不匹配时抛出错误。校验和本身将受到轻客户端授予的完整性保护的保护。

第四,我们应该使用加密经济激励的数据可用性提供方。IPFS 是一个开始,但它实际上并没有提供加密经济数据的可用性:它依赖于固定提供者来乐观地固定数据。另一方面,Skynet和Arweave使用强大的加密经济游戏来激励数据可用性,使用与 IPFS 类似的内容寻址系统,并已经投入使用。

这里可能有一些有趣的标准化工作来指定特定的“ERC721-JPEG”格式,该格式可以更好地支持这种类型的非延展性 NFT 图像编码。

6更远的未来:zk-SNARKs

在过去几年中,zk-SNARKs 一直是区块链相关研究的重要支柱。本来最初是一个可追溯到 1980 年代后期的学术密码学的概念,由于 zkSNARK 和相关证明系统在隐私、可扩展性等方面的潜在应用,区块链技术重新引起了人们对 zkSNARK 和相关证明系统的兴趣。

d0411ecd59d66eb80e0e0f185717959c.png

使用 zk-SNARKs,商业设备实际上可以验证整个链状态,包括每个状态转换的语义。Mina使用这种架构,并且使用递归 zk-SNARKs 实现了大约 22kb 的状态大小。这样的架构可以充当与轻客户端类似的安全角色,并具有额外的好处,即允许日常用户在其商业设备上运行完全可验证节点。

同样,zk-SNARKs 可用于证明与 NFT 元数据相关的计算事实。

7整体想法

总的来说,我真的很喜欢 Moxie 的帖子。我认为它在突出展示在构建被称为(可能不情愿地)“web3” 的基础设施建设中的一些重要问题方面做得很好。我希望社区能够建设性地接受批评,并因此建立更安全、更可靠、更少中心化和更少信任的基础设施。看到有节制的、准确的和非夸张的对该方面的批评令人耳目一新。多年来,这些批评引起了很多误导或恶意的批评。我希望我们能看到对这些技术的更富有成效的批评,这些技术有助于我们所有人建立一个更美好的世界。

本文首发于:https://mp.weixin.qq.com/s/eHgE1s32zY0H4wbBn-zauA

  • 发表于 2022-01-10 16:31
  • 阅读 ( 803 )
  • 学分 ( 0 )
  • 分类:以太坊

0 条评论

请先 登录 后评论
XPTY
XPTY

7 篇文章, 20 学分