# 我的 Web3.0 初体验 **Published by:** [SeeDAO](https://paragraph.com/@seedao/) **Published on:** 2022-05-20 **URL:** https://paragraph.com/@seedao/web3-0 ## Content |作者:Moxie Marlinspike|译者:空白|校对:Reikotree|排版:龙犄角| |本文译自以下原文|My first impressions of web3Despite considering myself a cryptographer, I have not found myself particularly drawn to "crypto." I don't think I've ever actually said the words "get off my lawn," but I'm much more likely to click on Pepperidge Farm Remembers flavored memes about how "crypto" used to mean "cryptography" than ...https://moxie.org尽管我自认为是一名密码学家,但我没有觉得自己特别被"加密" (crypto) 吸引。虽然我不认为我真的说过"离开我的草坪" (get off my lawn) [译者注:多指老年人对年轻人的抱怨。] 这句话,但我更有可能点击Pepperidge Farm Remembers 的meme去了解"加密" (crypto) 是指"密码学",而不是最新的NFT发售。 另外——这里也要说明一下——和这一代人不同,我并不对日常生活的方方面面都将转移到工具经济中感到兴奋。 即使在严格意义的技术层面上,我也还没能成为一个信仰者。鉴于最近对所谓 web3 的关注热潮,我决定更彻底地探索该领域发生的一些事,看看我可能错过了什么。我如何看待web1和2Web3是一个有点模糊的术语,因此很难明确说明web3最终想要达成什么目的。一般说来,web1是去中心化的,web2集中一切于平台,web3则将再次完全去中心化。web3应该有着web2的丰富性,但以去中心化的模式。 弄清楚为什么会出现中心化平台也许是件好事,在我看来,对此的解释也很简单:人们不想、并且永远不会运行自己的服务器。 Web1的前提是,互联网上的每个人既是内容的发布者和消费者,也是基础设施的发布者和消费者。 我们都会有自己的网络服务器和自己的网站,用自己的邮件服务器发送自己的电子邮件,用自己的finger服务器发送自己的状态消息,用自己的字符生成器协议(chargen)服务器生成自己的字符。然而——我认为这一点怎么强调都不为过——这不是人们想要的,即人们并不想运行他们自己的服务器。 在这一点上,不论是书呆子,还是专职开发软件的组织,都不想运行他们自己的服务器。如果我希望我们对这个世界有什么了解的话,那就是人们不希望运行自己的服务器。因此,那些为你提供服务的公司获得了成功,其中基于这些网络的可能性而不断迭代新功能的公司则更加成功。协议比平台的发展要慢得多。 经过30多年的发展,电子邮件仍然未加密;于此同时,WhatsApp在一年内从未加密实现完全端到端加密(E2EE)。当人们仍在尝试通过IRC协议实现视频分享的标准化时,Slack已经可以让你根据你的脸来自定义表情符号。 这并不是一个资金问题。真正去中心化的东西非常难以改变,且经常驻足不前。这对技术来说是个大问题,因为当生态系统的其他部分都发展得非常快时,跟不上即意味着失败。许多平行产业都专注于定义和改进像敏捷(Agile)这样的方法论,试图寻找组织庞大人群的方法以使其尽可能快地移动,这点是非常关键的。当技术本身更有利于停滞不前而非向前发展时,就变成了一个问题。解决的方法是采用90年代的协议,即将其中心化并快速迭代。但是web3不打算这么做,让我们来看看。为了快速感受这个领域并更好地了解可能的未来,我决定制作几个dApps并创造一个NFT。制作一些分布式应用为了解web3世界,我制作了一个名为Autonomous Art的dApp,任何人都可以通过对NFT的视觉贡献来铸造一个令牌。视觉贡献的成本随着时间的推移而增加,贡献者支付的铸币资金会分配给所有之前参与过的艺术家(视觉上来说,这个金融结构类似于一个金字塔形状)。在我写这篇文章的时候,已有超过3.8万美元用于创作这个集体艺术作品。 我还做了一个名为First Derivative的dApp,允许你创作、发现和交换追踪基础NFT的NFT衍生品,类似于追踪基础资产的金融衍生品😉。 两者都让我感受到了这个领域是如何运转的。明确地说,应用程序本身没有什么特别的 "分布式":它们只是正常的react网站。“分布式 "指的是状态,及更新状态的逻辑和权限所在:在区块链而不是在 "中心化"数据库中。 关于加密货币世界,令我一直很奇怪的事情是人们对客户端和服务器界面缺乏关注。当人们谈到区块链时,他们会谈论分布式信任、无领导共识,还有所有这些工作的机制,但往往忽略了客户端最终无法参与这些机制的现实。所有的网络图都在服务器上,信任模型是在服务器之间,一切都与服务器有关。虽然区块链被设计成一个点对点的网络,但没有设计成能让你的移动设备或是浏览器真的成为这些节点之一。 随着日常生活向移动设备的转变,我们确乎生活在一个客户端和服务器的世界里——而且前者完全无法充当后者——这些问题对我来说似乎比以往任何时候都要重要。同时,以太坊实际上将服务器称为 "客户端",所以甚至没有一个词来形容一个实际上不可信任的、不得不存在于某个地方的客户端或服务器界面,即使最终成功实现客户端的数量要多于服务器数十亿(!),也无法获得认可。 例如,无论是在移动端还是网络上运行,像Autonomous Art或First Derivative这样的dApp需要以某种方式与区块链进行交互——以便修改或呈现状态(集体创作的艺术作品,编辑历史,NFT衍生品等)。这在客户端是做不到的,因为区块链不可能存在于你的移动设备上(或是现实中的桌面浏览器上)。因此,唯一的选择是通过在某个服务器上远程运行的节点与区块链进行交互。 一个服务器! 但正如我们所知,人们并不想运行他们自己的服务器。这时,出现了一些公司,他们将以太坊节点的API访问作为一项服务并提供分析,在默认的以太坊API上编写增强型API及访问历史交易。这听起来......很熟悉。着力于这一点的基本上有两家公司,几乎所有的dApps都使用Infura或Alchemy与区块链进行交互。事实上,即使你通过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作为实验,这个NFT会根据谁在看它而改变,提供图像的网络服务器可以根据请求者的IP或用户代理选择提供不同的图像。例如,它在OpenSea上看起来是一个样子,在Rarible上是另一个样子,但当你购买后从你的加密钱包查看它时,它将始终显示为一个大的💩表情符号。你出价的东西并不是你得到的东西。这个NFT和其他NFT相比没有什么不同,这就是NFT标准的构建方式。许多价格最高的NFT随时都可能变成💩表情符号,我只是把它明确化了。在OpenSea上的NFT 同样的NFT在Rabible上 同样的NFT在钱包中几天后,在没有任何警告或解释的情况下,我制作的NFT在OpenSea上被删除:删除通知表明我违反了一些服务条款,但仔细阅读条款后,我没有找到任何禁止NFT根据被查看的位置而改变形态的相关条款,正如我公开描述的那样。 最有趣的是,在OpenSea删除我的NFT后,它也不再出现在我设备上的任何加密钱包中。如果这是web3,这怎么可能呢? 像MetaMask、Rainbow这样的加密钱包是 "非托管 "的(即密钥保存在客户端),但它与我在上文所说的dApps有同样的问题:钱包必须在移动设备或是浏览器上运行。虽然以太坊和其他区块链的设计理念是一个点对点的网络,但并没有设计成你的移动设备或浏览器真的有可能成为这些节点之一。 像MetaMask这样的钱包需要做一些基本的事情,比如显示你的余额、最近的交易和你的NFT,以及更复杂的事情,比如构建交易,与智能合约交互等等。简而言之,MetaMask需要与区块链交互,但区块链的构建使MetaMask这样的客户端无法做到这一点。因此,像我的dApp一样,MetaMask通过API调用在这个领域合并的三家公司来完成这个任务。 例如,MetaMask通过API调用etherscan来显示你最近的交易。GET https://api.etherscan.io/api?module=account&address=0x0208376c899fdaEbA530570c008C4323803AA9E8&offset=40&order=desc&action=txlist&tag=latest&page=1 HTTP/2.0 ...通过API调用Infura显示你的账户余额。POST https://mainnet.infura.io/v3/d039103314584a379e33c21fbe89b6cb HTTP/2.0 { "id": 2628746552039525, "jsonrpc": "2.0", "method": "eth_getBalance", "params": [ "0x0208376c899fdaEbA530570c008C4323803AA9E8", "latest" ] } ...通过API调用OpenSea显示你的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,而现在,它开始为我的地址所拥有的NFT的查询返回304 No Content!重新创造这个世界回顾web1变成web2的历史,web3令我觉得奇怪的是,像以太坊这样的技术建立时蕴含了许多与web1相同的隐含条件。为了使这些技术可用,这个领域正围绕着......平台进行整合。再说一遍,平台(如Infura, OpenSea, Coinbase, Etherscan)将为你运行服务器,并对出现的新功能进行迭代。 Web3协议的发展也很缓慢。在开发First Derivative时,如果能以标的物价值的百分比来为铸造衍生品定价就太好了。这个数据不在链上,而在OpenSea给你的一个API中。人们对创作者能从中获益的NFT版税感到兴奋,但版税在ERC-721协议中没有规定,现在提改变已经太迟,因此OpenSea用自己web2的方式来分配版税。在中心化平台发生的快速迭代已远远超过分布式协议的发展速度,凭此控制权被整合到了平台上。 考虑到这些变化,对于NFT在你加密钱包中的显示方式就是NFT在OpenSea上的显示方式,就没有什么好奇怪的了。自OpenSea一直忙于迭代平台,我不觉得我们应该对于opensea不仅是一个单纯意义上的“视窗”且随时都可以被取代这件事而感到惊讶,因为它早已超出严格意义上不可或难以改变的标准。 我认为这与电子邮件的情况非常相似。我可以运行我自己的邮件服务器,但对于隐私、抗审查或控制来说,它在功能上并不重要——因为无论如何,GMail都在我发送或接收每一封邮件的某端。一旦某个分布式的生态系统为了方便而集中于一个平台,它就变成了两个世界中最糟糕的情况:中心化控制,但仍然分散到足以陷入时间的泥潭中。我可以建立我自己的NFT市场,但只要OpenSea仍是人们使用钱包(以及生态系统中的其他应用程序)中所有NFT的显示方式,那么我的NFT市场实际上也并没有额外的控制能力。 这并不是对OpenSea的抱怨,也不是对他们所构建的控诉。恰恰相反,他们正试图建立一个能有效运转的东西。我认为我们应该期待这种平台整合的发生,现实如此,则不可避免的会设计出这类能满足我们所需的系统。不过,我在意的是,Web3社区期待看到的结果产出,并不是我们现在已经看到的这些。为时尚早在我讨论类似问题时,"现在还在早期阶段 "是web3领域人们最常见的反驳。从某种角度来说,可能是加密货币未能超越相对新兴工程的现状使得人们认为现在仍是 "早期阶段",虽然客观上来讲,它已经发展了十年甚至更长的时间。 然而,即使web3才开始发展(而且很可能是!),我也不确定这会是一种安慰。我认为事实可能恰恰相反:我们应该注意到,从一开始,从一开始,这些技术就直接倾向于利用平台的中心化去吸引人们的注意,这不会对生态系统的发展速度产生负面影响,而且大多数参与者甚至不知道或不关心它的发生。这也许表明,去中心化本身实际上对下游的大多数人来说,并不具有迫在眉睫或实际的重要性,想要实现去中心化的人数仅能够使得去中心化存在于世。如果不是有意计算在内,随着时间流逝,这些力量只会推动我们进一步远离、而不是接近理想的结果。无法阻止的淘金热仔细想想,如果去除所有web3的部分,OpenSea实际在直接意义上会变得更“好”。它将更快,对每个人来说更便宜,且更容易使用。例如,为了接受一个NFT的出价,我不得不支付80-150美元以上的以太坊交易费。这给几乎所有的出价都人为设置了一个地板价,否则你会因为接受一个低于gas费的出价而亏本。与之相比,即使是带有欺诈意味的信用卡支付手续费也便宜的多。如果人们想要一个包含了交易、报价、出价等的公开记录来验证他们的账户,OpenSea甚至可以直接发布一个简单的透明度日志。 然而,如果他们建立的不是一个名义上基于加密的图片买卖平台,我认为OpenSea不会有今天的成就。不是因为它不再是分布式的(正如我们所见,OpenSea运作所需很多已不是分布式的),我之所以认为它不会起飞,是因为这是一个淘金热。有些人通过加密货币投机赚了钱,他们有兴趣用这种方式花费加密货币,不仅支持了他们的投资,同时也会提供额外回报,这就定义了财富转移的市场环境。 处于交易链末端炒作NFT的人,从根本上来说并不关心分布式信任模型或支付机制,他们只在乎钱在哪里。因此,钱吸引着人们进入OpenSea,通过建立一个在web2领域迭代而使用web3底层协议的平台改善了体验,并提供了通过OpenSea而不是通过你自己的智能合约来 "铸造 "NFT的能力,最终这一切为Coinbase打开了大门:通过你的借记卡,用他们的平台进入经过验证的NFT市场。这为Coinbase通过他们自己持有的暗池管理代币打开了大门,因为这样有助于减免交易费用,并且有可能完全不与智能合约进行交互。直到最后,所有web3的部分都消失了,剩下的只是一个用你的借记卡买卖JPEG的网站。 由于市场发展的原因,OpenSea的开始不能像其他web2平台一样,但相同的市场发展动力和中心化的基本力,很可能会促使它最终重回老路。 在堆栈的末端,NFT艺术家对这种进展感到兴奋,因为这意味着他们的艺术可能会有更多的投机或投资。但如果web3的重点是避免web2的束缚,我们应该关注的是中心化已经是新协议发展的自然趋势了,即使它们本该提供一个不同的未来。 我认为这些市场力量很可能会继续下去,持续时间的关键在于大量积累的加密货币最终是在一个引擎内还是在一个漏水的桶里。如果流经NFT的资金最终回到加密领域,那么市场可能会永远向前(不管它是否只是web2x2);如果它只出不进,那么这将只是一个小插曲。我个人认为,在这一点上,web3已经有足够的钱和水龙头来维持运转,因此不会只是昙花一现。如果是这样的话,似乎值得考虑如何避免web3成为web2x2(web2,但隐私更少),这个问题亟待解决。仅有创造力可能还不够虽然只是初窥web3,不过通过这些小项目,我很容易就明白了为什么那么多人觉得web3的生态系统很好。我不认为web3的发展轨迹能把我们从中心化平台中解救出来,也不觉得web3能从根本上改变我们与技术的关系,而且我认为它的隐私性已经低于互联网的标准(这是一个相当低的标准!),但我能明白为什么像我这样的书呆子会对构建它感到兴奋。因为,它至少是书呆子层面的新东西——它创造了一个具备创造力且值得探索的领域,有点让人想起早期的互联网时代。讽刺的是,这种创造力的一部分可能来自于使web3如此笨重的限制。我希望这些创造力和探索能有积极的结果,虽然我不确定它是否足以避免互联网历史重演。 如果我们确实想改变我们与技术的关系,我认为必须有所打算。我的基本想法大致是这样的:**我们应该接受这样一个前提,即使设计出能够分布式信任而不必构建分布式基础设施的系统,人们也不想运行他们自己的服务器。**这意味着网络架构必须预见并接受客户端和服务器相对中心化关系的必然结果,同时使用密码学(而不是基础设施)来实现分布式信任。令我感到惊讶的是,构建于“加密”之上的web3似乎很少涉及密码学!我们应该尝试减少开发软件的负担。软件项目需要大量的人力投入,即使是相对简单的应用程序,也需要一群人每天坐在电脑前8小时,永远都是这样。但其实也有例外,曾经有段时间,50个人为一个软件项目工作并不被认为是一个 "小团队"。只要软件开发需要人类如此协调一致的精力和高度专业化的注意力,我认为web3将趋向于为那些每天坐在房间里的人的利益服务,而不是我们认为的更远大的目标。改变我们与技术的关系可能需要使软件更容易开发,但我已经看到出现了相反的情况。不幸的是,我认为分布式系统有加剧这种相反趋势的倾向,因为它使得事情变得更加复杂和困难。Gm! ## Publication Information - [SeeDAO](https://paragraph.com/@seedao/): Publication homepage - [All Posts](https://paragraph.com/@seedao/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@seedao): Subscribe to updates