作者:Moxie Marlinspike,知名加密通讯应用 Signal 创始人
原标题:《My first impressions of web3》
编译:龚荃宇,链捕手
尽管我认为自己是一名密码学家,但我并没有发现自己特别喜欢“Crypto”。此外我并没有像同代人那样对将生活的方方面面都转移到工具化经济中而感到兴奋。
然而,即使严格地在技术层面上,我还没有成功地成为一个信徒。因此,鉴于最近对现在称为 web3 的所有关注,我决定更彻底地探索该领域中发生的一些事情,以了解我可能遗漏的内容。
我如何看待web 1 和web 2
web3 是一个有点模糊的术语,很难严格评估 web3 的野心应该是什么,但总体论点似乎是 web1 是去中心化的,web2 将一切都集中到平台上,而 web3 将再次将一切去中心化。web3 应该给我们 web2 的丰富性,但去中心化。
对中心化平台出现的原因有一定的了解可能会很好,在我看来,解释很简单:
- 人们不想运行自己的服务器,而且永远也不会。web1 的前提是互联网上的每个人都是内容的发布者和消费者,以及基础设施的发布者和消费者。我们都有自己的 web 服务器和自己的网站,我们自己的邮件服务器用于我们自己的电子邮件,我们自己的状态服务器用于我们自己的角色生成。然而——我认为这一点再怎么强调都不过分——这不是人们想要的。人们不想运行自己的服务器。即使是书呆子也不想在这一点上运行自己的服务器。即使是全职构建软件的组织,此时也不想运行自己的服务器。如果我希望我们了解这个世界有一件事,那就是人们不想运行自己的服务器。那些为你提供这些服务的公司是成功的,而那些根据这些网络的可能性迭代新功能的公司则更加成功。
- 协议的运行速度比平台慢得多。30 多年后,电子邮件仍未加密;与此同时,WhatsApp 在一年内从没有加密到完全 e2ee(端到端加密)。人们仍在试图通过IRC标准化可靠地共享视频;同时,Slack允许你根据自己的脸创建自定义反应表情符号。这不是资金问题。如果某件事是真正去中心化的,那么它就会变得非常难以改变,并且经常会被时间卡住。这对技术来说是个问题,因为生态系统的其他部分正在快速发展,如果你不跟上,你就会失败。
但是web3打算不一样,我们来看看。为了快速了解这个空间并更好地了解未来可能会发生什么,我决定构建几个 dApp 并创建一个 NFT。
制作一些去中心化应用程序
为了感受 web3 世界,我制作了一个名为Autonomous Art的 dApp,它可以让任何人通过对 NFT 做出视觉贡献来铸造一个代币。进行视觉贡献的成本会随着时间的推移而增加,并且贡献者的铸造资金会分配给所有以前的艺术家(将这种财务结构可视化类似于金字塔形状)。在撰写本文时,已经有超过 38,000 美元用于创作这件集体艺术作品。
我还制作了一个名为First Derivative的 dApp,它允许你创建、发现和交换追踪基础 NFT 的 NFT 衍生品,类似于追踪基础资产的金融衍生品。
两者都让我对空间的运作方式有所了解。需要明确的是,应用程序本身并没有什么特别“去中心化”的:它们只是普通的网站。“去中心化”是指状态和更新状态的逻辑/权限所在的位置:在区块链上而不是在“中心化”数据库中。
关于加密货币世界,我一直觉得奇怪的一件事是缺乏对客户端/服务器接口的关注。当人们谈论区块链时,他们谈论的是去中心化信任、无领导共识以及其运作的所有机制,但往往掩盖了客户最终无法参与这些机制的现实。所有的网络图都是服务器的,信任模型是服务器之间的,一切都是关于服务器的。区块链被设计成一个点对点网络,但并不是为了让你的移动设备或浏览器真正有可能成为这些节点之一。
随着向移动端的转变,我们现在牢牢地生活在一个客户端和服务器的世界中——前者完全无法充当后者——而这些问题对我来说似乎比以往任何时候都更加重要。同时,以太坊实际上将服务器称为“客户端”,因此甚至没有一个词来表示必须在某个地方存在的实际不受信任的客户端/服务器接口,也没有人承认如果成功,最终会有比服务器多出数十亿的客户端。
例如,无论是在移动设备上还是在 Web 上运行,像Autonomous Art或First Derivative这样的 dApp 都需要以某种方式与区块链交互——为了修改或渲染状态(集体生产的艺术品、它的编辑历史、 NFT 衍生品等)。但是,这实际上是不可能从客户端实现的,因为区块链不能存在于你的移动设备上(或者实际上不能存在于你的桌面浏览器中)。因此,唯一的选择是通过在某处服务器上远程运行的节点与区块链进行交互。
一个服务器!但是,众所周知,人们不想运行自己的服务器。碰巧的是,已经出现了一些公司,它们出售对作为服务运行的以太坊节点的 API 访问权限,同时提供分析、他们在默认以太坊 API 之上构建的增强 API 以及对历史交易的访问权限。听起来……很熟悉。在这一点上,基本上有两家公司。几乎所有 dApp 都使用Infura或Alchemy来与区块链交互。事实上,即使你将 MetaMask 之类的钱包连接到 dApp,并且 dApp 通过你的钱包与区块链交互,MetaMask 也只是在调用 Infura!
这些客户端 API 没有使用任何东西来验证区块链状态或响应的真实性。结果甚至没有签名。像 Autonomous Art 这样的应用程序说“嘿,这个智能合约上的这个视图函数的输出是什么”,Alchemy 或 Infura 用一个 JSON blob 响应,上面写着“这是输出”,然后应用程序渲染它。
这让我很惊讶。创建一个去信任的分布式共识机制已经投入了大量的工作、精力和时间,但几乎所有希望访问它的客户都是通过简单地信任这两家公司的输出来实现的,而无需任何进一步的验证。这似乎也不是最好的隐私情况。想象一下,如果每次你在 Chrome 中与网站交互时,你的请求首先发送到 Google,然后再路由到目的地并返回。这就是今天以太坊的情况。所有写入流量显然已经在区块链上公开,但这些公司还可以查看几乎所有 dApp 中几乎所有用户的几乎所有读取请求。
区块链的支持者可能会说,如果出现这些类型的中心化平台也没关系,因为状态本身在区块链上是可用的,所以如果这些平台行为不端,客户可以简单地转移到其他地方。但是,我建议这是对使平台成为现实的动态的一种非常简单的观点。
让我给你举个例子。
制作 NFT
我还想创建一个更传统的 NFT。大多数人在想到 NFT 时会想到图像和数字艺术,但 NFT 通常不会将这些数据存储在链上。对于大多数图像的大多数 NFT,这太昂贵了。
NFT 不是将数据存储在链上,而是包含一个指向数据的 URL。这些标准让我感到惊讶的是,位于 URL 的数据没有哈希承诺。看看流行市场上以数十、数百或数百万美元出售的许多 NFT,该 URL 通常只是指向某个运行 Apache 的 VPS。
任何有权访问该机器的人、将来购买该域名的任何人或任何破坏该机器的人都可以随时将 NFT 的图像、标题、描述等更改为他们想要的任何内容(无论是否不是他们“拥有”代币)。NFT 规范中没有任何内容告诉你图像“应该”是什么,甚至不允许你确认某物是否是“正确”图像。
所以作为一个实验,我做了一个 NFT,它会根据谁在看它,因为提供图像的 Web 服务器可以根据请求者的 IP 或用户代理选择提供不同的图像。例如,它在 OpenSea 上看起来是一种方式,在 Rarible 上看起来是另一种方式,但是当你购买它并从你的加密钱包中查看它时,它总是会显示为一个大的 ? 表情符号。你出价购买的NFT不是你得到的。这个 NFT 没有什么不寻常的,这就是 NFT 规范的构建方式。许多价格最高的 NFT 随时可能变成?表情符号;我只是说清楚了。
几天后,在没有任何警告或解释的情况下,我制作的 NFT 被从 OpenSea中删除:
删除表明我违反了某些服务条款,但在阅读条款后,我没有看到任何禁止 NFT 的内容。,该 NFT 会根据查看它的位置而改变,我是这样公开描述的。
不过,我发现最有趣的是,在 OpenSea 删除了我的 NFT 后,它也不再出现在我设备上的任何加密钱包中。这是 web3,但是,这怎么可能?
MetaMask、Rainbow 等加密钱包是“非托管”的(私钥保存在客户端),但它与我上面的 dApp 存在相同的问题:钱包必须在移动设备或浏览器中运行。与此同时,以太坊和其他区块链的设计理念是它是一个点对点网络,但并不是这样设计的,即你的移动设备或浏览器真的有可能成为这些节点之一。
像 MetaMask 这样的钱包需要做一些基本的事情,比如显示你的余额、你最近的交易和你的 NFT,以及更复杂的事情,比如构建交易、与智能合约交互等。简而言之,MetaMask 需要与区块链交互,但是区块链的构建使得像 MetaMask 这样的客户端无法与之交互。因此,就像我的 dApp 一样,MetaMask 通过对在该领域整合的三家公司进行 API 调用来实现这一点。
同样,就像我的 dApp 一样,这些响应没有以某种方式进行身份验证。他们甚至没有签名,以便你以后可以证明他们在撒谎。它为你钱包中的所有帐户重用相同的连接、TLS 会话票证等,因此如果你管理钱包中的多个帐户以保持某种身份分离,这些公司知道它们是链接的。
MetaMask 实际上并没有做太多,它只是对这些集中式 API 提供的数据的一个视图。这不是 MetaMask 特有的问题——他们还有什么其他选择?Rainbow等平台的设置方式完全相同。
这一切意味着,如果你的 NFT 从 OpenSea 中移除,它也会从你的钱包中消失。我的 NFT 在某处的区块链上是不可磨灭的,这在功能上并不重要,因为钱包只是使用 OpenSea API 来显示 NFT,它开始返回 304 No Content 用于查询拥有的 NFT按我的地址!
重新创造这个世界
鉴于 web1 成为 web2 的历史,我对 web3 感到奇怪的是,像以太坊这样的技术已经构建了许多与 web1 相同的隐含陷阱。为了使这些技术可用,空间正在围绕……平台进行整合。再次。将为你运行服务器并迭代出现的新功能的人员。Infura、OpenSea、Coinbase、Etherscan。
同样,web3 协议发展缓慢。在构建衍生品时,最好将铸造衍生品定价为基础价值的百分比。这些数据不在链上,而是在 OpenSea 提供给你的 API 中。人们对 NFT 版税可以使创作者受益的方式感到兴奋,但是 ERC-721 中没有指定版税,现在改变它为时已晚,因此 OpenSea 有自己的方式来配置 web2 空间中存在的版税。在中心化平台上快速迭代已经超过了去中心化协议并将控制整合到平台中。
考虑到这些动态,我认为我们已经处在一个地方,你的加密钱包对你的 NFT 的看法就是 OpenSea 对你的 NFT 的看法,这并不奇怪。我不认为我们应该对 OpenSea 不是一个可以被替换的纯粹“视图”感到惊讶,因为它一直在忙于迭代平台,超出了严格意义上的不可能/难以改变的标准。
我认为这与电子邮件的情况非常相似。我可以运行自己的邮件服务器,但在功能上对隐私、审查阻力或控制无关紧要——因为无论如何,GMail 都将位于我发送或接收的每封电子邮件的另一端。一旦去中心化生态系统为了方便而集中在一个平台周围,它就变成了两个世界中最糟糕的:集中控制,但仍然足够去中心化,以至于陷入了时间的泥潭。我可以建立自己的 NFT 市场,但如果 OpenSea 调解人们使用的钱包(以及生态系统中的所有其他应用程序)中所有 NFT 的视图,它不会提供任何额外的控制。
这不是对 OpenSea 的抱怨,也不是对他们所构建的东西的控诉。恰恰相反,他们正在尝试构建一些有效的东西。我认为我们应该期待这种平台整合的发生,并且考虑到不可避免的设计系统,当事情是这样组织的时候,我们可以给我们想要的东西。不过,我的感觉和担忧是,web3 社区期待的结果与我们已经看到的不同。
现在还早
“现在还处于早期阶段”是我在 web3 领域的人们讨论此类问题时看到的最常见的副词。在某些方面,加密货币未能超越相对新生的工程,这使得人们可以认为“早期”的日子已经过去了,因为客观上它已经有十年或更长时间了。
然而,即使这只是一个开始(而且很可能是!),我不确定我们是否应该考虑任何安慰。我认为相反的情况可能是正确的;似乎我们应该从一开始就注意到,这些技术倾向于通过平台集中化,以便实现它们,这对生态系统的速度产生的负面影响为零,并且大多数参与者甚至不知道或关心它正在发生。
这可能表明,权力下放本身对下游的大多数人实际上并没有直接的实际或紧迫的重要性,人们想要的唯一权力下放量是某物存在所需的最低限度,如果不是非常有意识地考虑到,这些随着日子变得不那么早,力量将把我们推得离理想结果更远,而不是更接近。
但你无法阻止淘金热
仔细想想,如果所有 web3 部分都消失了,OpenSea 实际上会在直接意义上“更好”得多。它会更快,对每个人来说更便宜,并且更容易使用。例如,要接受对我的 NFT 的出价,我将不得不支付超过 80 至 150 美元以上的以太坊交易费用。这为所有出价设置了一个人为的底线,否则你会因为接受低于gas费的出价而赔钱。与信用卡相比,信用卡支付费用通常让人觉得是敲诈勒索的,但看起来便宜。如果人们想要交易、报价、出价等的公共记录来验证他们的账目,OpenSea 甚至可以发布一个简单的透明度日志。
但是,如果他们建立了一个平台来买卖名义上不基于加密的图像,我认为它不会起飞。不是因为它没有去中心化,因为正如我们已经看到的那样,使它工作所需的很多东西都没有去中心化。我认为它不会起飞,因为这是一场淘金热。人们通过加密货币投机赚钱,这些人有兴趣以支持他们投资的方式使用加密货币,同时提供额外的回报,从而定义了财富转移市场的环境。
那些正在炒作 NFT 的人从根本上不关心去中心化信任模型或支付机制,但他们关心的是钱在哪里。因此,资金将人们吸引到 OpenSea,他们通过构建一个在 web2 空间中迭代底层 web3 协议的平台来改善体验,他们最终提供了通过 OpenSea 本身而不是通过你自己的智能合约“铸造”NFT 的能力,最终这一切都为 Coinbase 打开了大门,让他们可以通过你的借记卡在自己的平台上访问经过验证的 NFT 市场。
这为 Coinbase 通过 Coinbase 持有的暗池自行管理代币打开了大门,这有助于消除交易费用,并可以完全避免与智能合约进行交互。最终,所有的 web3 部分都消失了,你有了一个用借记卡购买和出售JPEGS网站。由于市场动态,该项目不可能一开始就是Web2平台,但同样的市场动态和中心化的基本力量很可能会推动它最终成为Web2平台。
在堆栈的最后,NFT 艺术家对这种进展感到兴奋,因为这意味着对他们的艺术进行更多的投机/投资,但如果 web3 的目的是避免 web2 的陷阱,我们应该担心的是,这已经是这些应该提供不同未来的新协议的自然趋势。
我认为这些市场力量可能会持续下去,在我看来,持续多久的问题是,大量积累的加密货币最终是在引擎中还是在漏斗中。如果流经 NFT 的资金最终流回加密空间,它可能会继续永远加速(不管它是否只是 web2x2)。如果它大量出现,那么这将是一个昙花一现。就个人而言,我认为在这一点上已经赚到了足够的钱,有足够的水龙头让它继续运转,而这不仅仅是昙花一现。如果是这样的话,似乎值得考虑一下如何紧急避免 web3 成为 web2x2(web2 但隐私更少)。
创意可能还不够
我只是在 web3 的水域摸索了会。不过,从这些小项目的角度来看,我可以很容易地看出为什么这么多人认为 web3 生态系统如此整洁。我不认为它将我们从中心化平台中解放出来,我认为这不会从根本上改变我们与技术的关系,而且我认为隐私故事已经低于互联网的标准(这是一个相当低的标准!),但我也理解为什么像我这样的书呆子会为它而兴奋。它至少是书呆子级别的新事物——它为创造力/探索创造了一个空间,有点让人想起早期的互联网时代。具有讽刺意味的是,这种创造力的一部分可能源于使 web3 如此笨拙的限制。
如果我们确实想改变我们与技术的关系,我认为我们必须有意识地这样做。我的基本想法大致是:
第一,我们应该接受这样一个前提,即人们不会通过设计可以去中心化信任而无需去中心化基础设施的系统来运行自己的服务器。这意味着架构可以预期并接受相对集中的客户端/服务器关系的必然结果,但使用密码学(而不是基础设施)来分配信任。尽管 web3 是基于“加密”构建的,但令我惊讶的事情之一是似乎涉及的密码学很少!
第二,我们应该尽量减轻构建软件的负担。在这一点上,软件项目需要大量的人力。即使是相对简单的应用程序,也需要一群人每天、每天、永远地坐在电脑前八小时。情况并非总是如此,有一段时间,从事软件项目的 50 人不被视为“小团队”。
只要软件需要如此协调一致的能量和如此高度专业化的人类关注点,我认为它就会倾向于为每天坐在那个房间里的人们的利益服务,而不是我们可能认为的更广泛目标。我认为改变我们与技术的关系可能需要让软件更容易创建,但在我的一生中,我看到相反的情况发生了。很遗憾。