我对 web3 的第一印象

翻译说明 原标题: My first impressions of web3 原文链接:Moxie Marlinspike » Blog » My first impressions of web3 作者:@Moxie Marlinspike

尽管我认为自己是一名密码学家(cryptographer),但我没有发现自己特别被 “crypto “所吸引。我不认为我真的说过 “get off my lawn “这句话,但我更有可能点击 Pepperidge Farm Remembers 风味的菜单,了解 “crypto “过去是指 “密码学”,而不是最新的 NFT 。

词语解释:get off my lawn “你们孩子们离开我的草坪!”是 20 世纪末和 21 世纪初的美国表达。这句话代表了一种陈规定型的老年房主对进入或越过其房产的喧闹的孩子们的反应。今天,这个短语已经扩展到嘲笑任何形式的抱怨,尤其是老年人对年轻人的抱怨。参见维基百科: You kids get off my lawn! - Wikipedia
词语解释:crypto 这里指引申为加密货币(Cryptocurrency),参见维基百科: Cryptocurrency - Wikipedia

另外–在这里,我也要说明一下–我并不像这一代人那样对将生活的方方面面都转移到仪器化经济中感到兴奋。

即使是严格意义上的技术层面,我也还没能成为一个信仰者。因此,考虑到最近对现在被称为 web3 的所有关注,我决定更彻底地探索在这个领域发生的一些事情,看看我可能错过了什么。

我是如何看待 web1 和 web2 的

web3 是一个有点模糊的术语,这使得我们很难严格评估 web3 的目标是什么,但一般的论点 似乎是,web1 是分散的,web2 将一切集中到平台上,web3 将再次分散一切。

弄清楚为什么中心化的平台一开始就出现了,这也许是件好事,在我看来,解释很简单:

  1. 人们不想运行自己的服务器,而且永远不会。 web1 的前提是,互联网上的每个人既是内容的发布者和消费者,也是基础设施的发布者和消费者。 我们都会有自己的网络服务器和自己的网站,有自己的邮件服务器发送自己的电子邮件,有自己的手指服务器发送自己的状态信息,有自己的充电器服务器生成自己的角色。然而–我认为这一点怎么强调都不为过–这不是人们想要的。人们并不想运行他们自己的服务器。 在这一点上,即使是书呆子也不希望运行自己的服务器。即使是全职建立软件的组织,在这一点上也不想运行他们自己的服务器。如果有一件事我希望我们已经了解了这个世界,那就是人们不希望运行自己的服务器。出现的那些为你提供服务的公司是成功的,而那些基于这些网络可能实现的新功能进行迭代的公司则更加成功。

  2. 一个协议比一个平台的发展要慢得多 30 多年后,电子邮件仍然是未加密的;同时,WhatsApp 在一年内从未加密到完全 e2ee。人们仍在尝试通过 IRC 可靠地分享视频的标准化;与此同时,Slack 让你根据你的脸来创建自定义的反应表情符号。 这并不是一个资金问题。如果一个东西是真正地去中心化,它就会变得非常难以改变,而且经常停留在时间上。这对技术来说是个问题,因为生态系统的其他部分发展非常快,如果你不跟上,你就会失败。有整个平行的行业专注于定义和改进像敏捷这样的方法论,试图找出如何组织庞大的人群,使他们能够尽可能快地移动,因为它是如此关键。 当技术本身更有利于停滞而不是运动时,这就是一个问题。成功的秘诀是采用 90 年代的协议,将其集中化,并快速迭代。

但是 web3 打算与众不同,所以让我们来看看。为了快速感受这个空间并更好地了解未来可能出现的情况,我决定建立几个 dApps 并创建一个 NFT。

制作一些分布式应用

为了感受一下 web3 世界,我做了一个名为 Autonomous Art的 dApp,它可以让任何人通过对 NFT 的视觉贡献来铸造一个代币。视觉贡献的成本随着时间的推移而增加,贡献者支付的铸币资金会分配给所有以前的艺术家(可视化的这种金融结构会类似于一个金字塔形状的东西)。在写这篇文章的时候,已经有超过 3.8 万美元用于创造这个集体艺术作品。

我还做了一个名为 First Derivative 的 DApp,允许你创建、发现和交换追踪基础 NFT 的 NFT 衍生品,类似于追踪基础资产的金融衍生品😉。

两者都让我感受到了这个空间是如何运作的。明确地说,应用程序本身没有什么特别的 “分布式”:它们只是正常的反应网站。分布式 “是指状态和更新状态的逻辑/权限所在:在区块链上,而不是在 “集中式 “数据库中。

关于加密货币世界,我一直觉得很奇怪的一件事是对客户/服务器界面缺乏关注。当人们谈论区块链时,他们谈论分布式信任、无领导的共识,以及所有这些工作的机制,但往往掩盖了客户最终不能参与这些机制的现实。所有的网络图都是服务器的,信任模型是在服务器之间,一切都与服务器有关。区块链被设计成一个对等人的网络,但没有设计成你的移动设备或你的浏览器真的可能成为这些对等人之一。

随着向移动设备的转变,我们现在牢牢地生活在一个客户和服务器的世界里–前者完全无法充当后者–这些问题对我来说似乎比以往任何时候都更重要。同时,以太坊实际上将服务器称为 “客户”,所以甚至没有一个词来形容一个实际的不可信任的客户/服务器界面,它将不得不存在于某个地方,也没有承认如果成功,最终将有数十亿(!)客户比服务器多。

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

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

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

这让我很惊讶。为创建一个无信任的分布式共识机制付出了如此多的工作、精力和时间,但几乎所有希望访问它的客户都是通过简单地信任这两家公司的输出,而没有任何进一步的验证。这似乎也不是最好的隐私状况。想象一下,如果你每次在 Chrome 浏览器中与一个网站互动时,你的请求先到谷歌,然后再被路由到目的地,再返回。这就是今天以太坊的情况。所有的写流量显然已经在区块链上公开,但这些公司也能看到几乎所有 dApps 中几乎所有用户的所有读请求。

区块链的支持者可能会说,如果这些类型的中心化平台出现是没有问题的,因为区块链上有状态本身,所以如果这些平台行为不当,客户可以简单地转移到其他地方。然而,我想说的是,这是对使平台成为它们的动态的一个非常简单的看法。

让我给你举个例子。

制作一个 NFT

我还想创建一个更传统的 NFT。大多数人一想到 NFT 就会想到图像和数字艺术,但 NFT 一般不在链上存储这些数据。对于大多数图像的 NFT 来说,这将是非常昂贵的。

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

所以作为一个实验,我做了一个 NFT,根据谁在看它而改变,因为提供图像的网络服务器可以根据请求者的 IP 或用户代理选择提供不同的图像。例如,它在 Opensea 上看起来是一种方式,在 Rarible 上是另一种方式,但当你购买它并从你的加密货币钱包查看它时,它将始终显示为一个大的💩表情符号。你出价的东西并不是你得到的东西。这个 NFT 没有什么不寻常的地方,这就是 NFT 规格的构建方式。许多价格最高的 NFT 随时都可能变成💩表情符号;我只是把它明确化。 NFT on OpenSea Same NFT on Rarible Same NFT in a wallet 几天后,在没有任何警告或解释的情况下,我制作的 NFT 被从 OpenSea(一个 NFT 市场)中删除。 image 撤诉表明我违反了一些服务条款,但在阅读了条款后,我没有看到任何禁止 NFT 的条款,它根据被看的地方而改变,而我是公开地这样描述的。 但我发现最有趣的是,在 OpenSea 删除我的 NFT 后,它也不再出现在我设备上的任何加密货币钱包中。 这是 web3,不过,这怎么可能呢?

像 MetaMask、Rainbow 等加密货币钱包是 “非托管 “的(密钥保存在客户端),但它和我上面的 dApps 有同样的问题:钱包必须在移动设备上或在浏览器中运行。同时,以太坊和其他区块链的设计理念是它是一个对等人的网络,但并没有设计到你的移动设备或你的浏览器真的有可能成为这些对等人之一。

像 MetaMask 这样的钱包需要做一些基本的事情,比如显示你的余额、最近的交易和你的 NFT,以及更复杂的事情,比如构建交易,与智能合约互动,等等。简而言之,MetaMask 需要与区块链互动,但区块链的构建使 MetaMask 这样的客户端无法与之互动。因此,像我的 DApp 一样,MetaMask 通过调用 API 给三家在这个领域合并的公司来完成这个任务。

例如,MetaMask 通过对 etherscan 的 API 调用来显示你最近的交易。

GET https://api.etherscan.io/api?module=account&address=0x0208376c899fdaEbA530570c008C4323803AA9E8&offset=40&order=desc&action=txlist&tag=latest&page=1 HTTP/2.0                                                          

… 通过对 Infura 的 API 调用显示你的账户余额。

POST https://mainnet.infura.io/v3/d039103314584a379e33c21fbe89b6cb HTTP/2.0
{
    "id": 2628746552039525,
    "jsonrpc": "2.0",
    "method": "eth_getBalance",
    "params": [
        "0x0208376c899fdaEbA530570c008C4323803AA9E8",
        "latest"
    ]
}

… 通过对 OpenSea 进行 API 调用,显示你的 NFT。

GET https://api.opensea.io/api/v1/assets?owner=0x0208376c899fdaEbA530570c008C4323803AA9E8&offset=0&limit=50 HTTP/2.0                                                                                               

同样,就像我的 DApp 一样,这些回应没有以某种方式进行认证。他们甚至没有签名,以便你后来可以证明他们在说谎。它为你钱包里的所有账户重用相同的连接、TLS 会话票等,所以如果你在钱包里管理多个账户以保持一些身份分离,这些公司就知道它们是有联系的。

MetaMask 实际上并没有做什么,它只是对这些集中式 API 提供的数据的一种看法。这不是 MetaMask 特有的问题–他们还有什么其他选择?Rainbow 等都是以完全相同的方式设置的。(有趣的是,Rainbow 有他们自己的数据,用于他们在钱包中建立的社交功能–社交图谱、展示等–并选择将所有这些建立在 Firebase 之上,而不是区块链上)。

所有这一切意味着,如果你的 NFT 从 OpenSea 被移除,它也会从你的钱包中消失。从功能上讲,我的 NFT 在区块链的某个地方不可磨灭地存在并不重要,因为钱包(以及生态系统中越来越多的其他东西)只是使用 OpenSea 的 API 来显示 NFT,它开始返回 304 No Content 来查询我的地址所拥有的 NFT!

再造这个世界

鉴于 web1 变成 web2 的历史,我对 web3 感到奇怪的是,像以太坊这样的技术已经建立了许多与 web1 相同的隐含条件。为了使这些技术可用,这个空间正在围绕……平台进行整合。再说一遍。人们将为你运行服务器,并对出现的新功能进行迭代。Infura, OpenSea, Coinbase, Etherscan。

同样地,web3 协议的发展也很缓慢。在建立 First Derivative 的时候,如果能以标的物价值的百分比来为铸币衍生品定价,那就太好了。这个数据不在链上,但它在 OpenSea 会给你的一个 API 中。人们对 NFT 版税感到兴奋,因为它们可以使创造者受益,但版税在 ERC-721 中没有规定,而且现在改变它已经太晚了,所以 OpenSea 有自己的方式来配置版税,存在于 web2 空间。在集中式平台上快速迭代,已经超过了分布式协议,并将控制权整合到平台上。

鉴于这些动态,我不认为我们已经在一个地方,你的加密货币钱包对你的 NFTs 的看法就是 OpenSea 对你的 NFTs 的看法,这不应该是一个惊喜。我不认为我们应该对 OpenSea 不是一个可以被取代的纯粹的 “视图 “感到惊讶,因为它一直忙于迭代平台,超出了严格意义上的不可能/难以改变的标准。

我认为这与电子邮件的情况非常相似。我可以运行我自己的邮件服务器,但对于隐私、抗审查或控制来说,它在功能上并不重要–因为无论如何,GMail 都会在我发送或接收的每一封邮件的另一端。一旦一个分布式的生态系统为了方便而集中在一个平台上,它就变成了两个世界中最糟糕的情况:集中控制,但仍然分布在足够长的时间里,变得泥足深陷。我可以建立我自己的 NFT 市场,但如果 OpenSea 调解人们使用的钱包(以及生态系统中的每一个其他应用程序)中的所有 NFT 的视图,它并没有提供任何额外的控制。

这并不是对 OpenSea 的抱怨,也不是对他们所建立的东西的控诉。恰恰相反,他们正试图建立一个有效的东西。我认为我们应该期待这种平台整合的发生,并且考虑到这种不可避免性,当事情是这样组织的时候,设计出能给我们提供我们想要的东西的系统。不过,我的感觉和担忧是,web3 社区期待着一些其他的结果,而不是我们已经看到的。

现在还很早

“现在还是早期 “是我在讨论类似问题时从 web3 领域的人们那里看到的最常见的反驳。在某些方面,加密货币未能超越相对新生的工程规模,这使得人们有可能认为日子还早,因为客观上它已经有十年或更长时间。

然而,即使这只是一个开始(而且很可能是!),我不确定我们应该认为这是一种安慰。我认为事实可能恰恰相反;我们似乎应该注意到,从一开始,这些技术就立即倾向于通过平台来实现中心化,这对生态系统的速度有~零的负面影响,而且大多数参与者甚至不知道或不关心它正在发生。这可能表明,去中心化本身实际上对下游的大多数人来说并不具有直接的实际或紧迫的重要性,人们想要的唯一数量的去中心化是一些东西存在的最低数量,如果不是非常有意识地考虑到,这些力量将推动我们进一步远离而不是接近理想的结果,因为日子变得越来越早。

但你不能阻止淘金热

仔细想想,如果所有的 web3 部分都消失了,OpenSea 实际上在直接意义上会 “好 “很多。它将更快,对每个人来说更便宜,而且更容易使用。例如,为了接受我的 NFT 的投标,我不得不支付 80-150 美元以上的以太坊交易费。这给所有的出价设置了一个人为的底线,因为否则你会因为接受一个低于气体费用的出价而亏本。通过信用卡支付的费用,通常感觉是敲诈性的,与此相比,看起来很便宜。如果人们想要一个公开的交易、报价、出价等记录来验证他们的账目,OpenSea 甚至可以发布一个简单的透明度日志。

然而,如果他们建立了一个不是名义上基于加密货币的图片买卖平台,我认为它不会起飞。不是因为它不是分布式的,因为正如我们所看到的,使其运作所需的许多东西已经不是分布式的。我认为它不会起飞,因为这是一个淘金热。人们通过加密货币投机赚了钱,这些人有兴趣以支持其投资的方式花费这些加密货币,同时提供额外的回报,因此这就定义了财富转移市场的设定。

处于终点的那些炒作 NFT 的人,从根本上来说并不关心分布式信任模型或支付机制,但他们关心的是钱在哪里。因此,钱吸引人们进入 OpenSea,他们通过建立一个在 web2 空间迭代底层 web3 协议的平台来改善体验,他们最终提供了通过 OpenSea 本身而不是通过你自己的智能合约来 “铸造 “NFT 的能力,最终这一切为 Coinbase 打开了大门,让他们通过自己的平台通过你的借记卡进入验证的 NFT 市场。这为 Coinbase 通过 Coinbase 持有的暗池管理代币本身打开了大门,这有助于消除交易费用,并使其有可能完全避免与智能合约互动。最终,所有的 web3 部分都消失了,你有一个用你的借记卡买卖 JPEG 的网站。由于市场动态的原因,该项目不能以 web2 平台开始,但同样的市场动态和中心化的基本力量很可能会促使它最终达到这个目的。

在堆栈的末端,NFT 艺术家对这种进展感到兴奋,因为这意味着对他们的艺术有更多的投机/投资,但也似乎,如果 web3 的重点是避免 web2 的束缚,我们应该担心这已经是这些新协议的自然趋势,这些协议应该提供一个不同的未来。

我认为这些市场力量很可能会继续下去,在我看来,它能持续多久的问题是,大量积累的加密货币最终是在一个引擎内还是在一个漏水的桶里。如果流经 NFT 的资金最终被引导回加密货币空间,那么它可能永远继续加速(不管它是否只是 web2x2)。如果它汹涌而出,那么这将是一个小插曲。我个人认为,在这一点上,已经有足够的钱,有足够的龙头来保持它,这不会只是一个昙花一现。如果是这样的话,似乎值得考虑如何避免 web3 成为 web2x2(web2,但隐私更少),并具有一定的紧迫性。

仅有创意可能还不够

我只是在 web3 的水里浸泡了一下,不过通过这些小项目的镜头来看,我很容易就能明白为什么那么多人觉得 web3 的生态系统很好。我不认为它正处于将我们从集中式平台中解救出来的轨道上,我不认为它将从根本上改变我们与技术的关系,而且我认为隐私故事已经低于互联网的标准(这是一个相当低的标准!),但我也理解为什么像我这样的书呆子会对为它构建感到兴奋。至少,它是书呆子层面的新东西–这创造了一个创造性/探索的空间,有点让人想起早期的互联网时代。具有讽刺意味的是,这种创造力的一部分可能来自于使 web3 如此笨重的限制。我希望我们看到的创造力和探索将产生积极的结果,但我不确定它是否足以防止互联网的所有相同动态再次展开。

如果我们确实想改变我们与技术的关系,我认为我们必须有意地去做。我的基本想法大致是这样的:

  1. 我们应该接受这样一个前提,即人们不会通过设计能够分配信任而不必分配基础设施的系统来运行自己的服务器。 这意味着架构预计并接受相对集中的客户/服务器关系的必然结果,但使用密码学(而不是基础设施)来分配信任。关于 web3,尽管是建立在 “密码学 “之上的,但对我来说,令人惊讶的事情之一是似乎很少涉及密码学!我们应该努力减少密码学的负担。
  2. 我们应该尝试减少构建软件的负担。 在这一点上,软件项目需要大量的人力投入。即使是相对简单的应用程序,也需要一群人每天坐在电脑前 8 小时,每天如此,永远如此。情况并不总是这样,曾经有一段时间,50 个人在一个软件项目上工作并不被认为是一个 “小团队”。只要软件需要如此协调一致的精力和如此高度专业化的人类关注,我认为它将有为每天坐在那个房间里的人的利益服务的倾向,而不是我们可能认为的更广泛的目标。我认为改变我们与技术的关系可能需要使软件更容易创建,但在我的一生中,我已经看到了相反的情况出现。不幸的是,我认为分布式系统有加剧这种趋势的倾向,它使事情变得更复杂、更困难,而不是更不复杂、不困难。