Coinbase 剖析了 Web 3 开发背后的动机和技术。本文分为 3 个部分,介绍了万维网历史的新篇章 Web 3 形成的原因、内容及方式。第 1 部分解释了当今网络的缺点和 Web 3 如何改进;第 2 部分着重于介绍 Web 3 堆栈的内容;第 3 部分重点介绍开发人员如何在 Web 3 上构建程序。
image[h1]第 2 部分的总结[/h1]在这一部分,我的目的是建立一个 Web 3 堆栈的整体视图。正如所解释的,Web 3 堆栈是由允许为所有参与者保存状态的模块组件构成,同时防止供应商锁定到下面的层。鉴于此,如果应用程序想更改状态层(如区块链),那么它无需重写它的整个堆栈。这是非常强大的,因为创造了健康的竞争,并且允许每一层保留其创造的价值,无需担心如果以后游戏规则更改会发生什么事。
第 3 部分:方式在第一部分中,我们回顾了今天的互联网是无状态的互联网,其参与者无法保存自己的状态,也不能把状态从一个参与者传递到另一个参与者。从比特币开始,区块链为我们提供了一种建立有状态计算机网络的方法。我们这些处于加密货币和区块链生态系统的人已经开始把这个新互联网称为 Web 3,我们已经在第 2 部分中进行了回顾。
Web 3 为应用程序添加了全新的基础架构层与之交互,还有新的客户端功能和需求。用户还需要学习新的用户体验概念以能够使用这些应用程序。因此,Web 3 应用程序的架构给当前的 Web 2.0 框架引入了额外的元素,以及新的构建块和工具,供开发人员熟悉之。
Web 2.0 应用程序体系结构与 Web 3.0 应用程序体系结构之对比[h1]Web 2.0 体系结构与 Web 3.0 体系结构之对比[/h1]今天的 Web 2.0 架构的简单版本包括客户端软件(通常是浏览器或独立的应用程序)以及一套提供内容和逻辑的服务器,内容和逻辑都是由同一个实体控制,我们可以称之为 Game Co.。在这个模型中,Game Co. 可以唯一控制谁可以访问其服务器的内容和逻辑,以及跟踪哪些用户拥有什么和这些内容保持多长时间。关于互联网公司如何改变用户规则和停止其服务的例子在技术历史上有很多,而用户无权保留他们创造的价值。
Web 3.0 架构利用了通用状态层启用的功能。通过允许这两件事来做到这一点:
允许应用程序把它们的部分或全部内容和逻辑放到公共区块链上。与标准 Web 2.0 相反,这些内容和逻辑是公开的,任何人都可以访问。
允许用户直接控制这些内容和逻辑上。不同于 Web 2.0,用户不一定需要账号或特权 API 密匙与区块链上的内容进行交互。
Web 3 应用程序借助两个关键基础架构部分实现了这一点: 钱包:除了作为 Web 3 栈的用户控制层,现代钱包(如 Coinbase Wallet)与主客户端前端进行交互以实现无缝的用户体验。这通过允许应用程序使用标准库发送请求给钱包本身来实现,其中的 Web3.js 库最为流行。一个 Web3.js 的调用例子可以是支付请求,要求用户确认该钱包能够发送特定数量的资金到申请地址。当用户接受该请求时,发生两件事:1)该钱包让应用程序前端知道并响应,因此,它可以呈现“Payment Submitted”(支付已提交)屏幕,2)钱包发送 RPC 调用给区块链服务器以提交被批准的交易给区块链。这里就是第二个基础设施部分施展身手的地方。