理解 Web 3 —— 用户控制的互联网

摘要:
本文包括三个部分,分别介绍了万维网步入3.0时代的缘由、含义和方式。不过问题在于,cookies是由服务供应商创建并控制的,而非用户。互联网的第二大主要缺陷是缺少一个原生机制来实现状态转移。在密码学货币和区块链的生态系统中,这种新的基本能力已经被赋予了Web3.0的称号。虽然Web3.0仍处于萌芽阶段,我们已经能够隐约察觉到它的潜能。例如,L4已经对Web3.0的潜能有了一些真知灼见。Web3.0的计算层是人们向状态层下达指令的媒介。

理解 Web 3 —— 用户控制的互联网第1张

本文包括三个部分,分别介绍了万维网步入 3.0 时代(Web 3.0)的缘由、含义和方式。第一部分解释了如今网络存在的缺陷和 Web 3.0 的进步之处;第二部分主要介绍了什么是 Web 3.0 堆栈;第三部分重点讲述了开发者的搭建过程。

第一部分:背景

如今的万维网(互联网)主要存在两大缺陷:

  1. 它不会保留独立于可信的运营者的“状态
  2. 它没有一个原生机制来实现状态转移

之所以会缺少状态,是因为HTTPSMTP等网络协议过于简单。你任何时候都无法查询到一个节点(即一台联网设备)的历史或当前状态。从用户的角度来看,每次使用联网设备的时候,都像是通过新的浏览器第一次使用互联网一样(没有历史记录、收藏夹、保存设置或自动填充用户名)。想象一下,每当你打开设备使用某个服务或是下载心仪的应用程序之时,你都要重新提交用户信息。这就降低了互联网的可用性,至少大幅降低了它的效率。

然而,状态对服务和应用的发展来说都是至关重要的,因为它可以代表价值。两大关键技术的发展已经弥补了这一缺陷。首先是 cookies 技术,正如Brendan Eich强调的那样,该技术旨在帮助由 JavaScript 语言编写的网络应用在本地设备上存储状态。不过问题在于,cookies 是由服务供应商创建并控制的,而非用户。用户无法选择由哪个供应商来存储他们的状态,也无权访问他们的状态。

其次是将用户状态保留在自己机器上的中心化服务供应商。如今的互联网行业巨头 Google 和 Facebook 均保留数十亿用户的状态,也因此创造出了价值。这点从本质上来说无可厚非,毕竟这些公司的用户也享受到了服务和价值。问题在于互联网为这些中心化公司带来的利益多于赋予公众的。

互联网的第二大主要缺陷是缺少一个原生机制来实现状态转移。这在一定程度上也是第一个缺陷导致的。如果状态(及其创造出的价值)无法保留,也就无法转移。经济发展和现代金融的的核心就是实现简单高效的价值转移。只要提高了价值转移的效率,就会带来很多积极影响。如今的互联网已经将信息转移效率提高了好几个数量级,因而为新的业务和服务创造了极大的发展空间。然而,如果企业找不到一种简单的方法交易价值,就需要另辟蹊径,从自己提供的服务中获利。

这就是为什么多年以来广告始终是互联网的商业模式,因为广告是唯一可以有效存储并转移数十亿用户状态的业务。再强调一遍,广告从本质上来说无可厚非。不过这里的问题存在于三个方面:

  1. 第三方中介会促成每一笔广告交易并从中获利;
  2. 广告更有利于老牌企业,而不利于初创企业,限制了经济的发展潜力;
  3. 广告业经济的发展靠的是(喂给广告模型的)用户数据的增多,这会造成用户激励的扭曲和糟糕的用户体验。

互联网发展趋势

理解 Web 3 —— 用户控制的互联网第2张

互联网本身就是技术发展的产物。它就像是一堆管道,任由人们支配。最后需要由人来决定将这些管道的指向。多年以来,互联网的发展趋势显然不会惠及之前未曾受惠的人。在接下来的十年或是二十年,帮助实现以下两点,会是更好的发展方向:

  1. 任何参与者都能够创造原生经济价值;
  2. 这种原生价值可以转移给任何参与者。

感谢中本聪以及前人的学术研究,我们有了区块链技术。现在,网络中的每一位参与者都可以通过数字化的原生格式保留并转移状态。在全球范围内,很多开发人员和企业家都已经开始在这个新的状态层上进行搭建(也可以说是 #BUIDL)了。随着以太坊等开放平台的出现,保留和转移状态的难度日益降低。由于人们意识到了这两个新能力背后的巨大潜力,他们已经开始共同呼唤一个更加开放和公平的互联网,也就是 Web 3.0 了。

第二部分:含义

正如第一部分所解释的那样,如今的互联网是无状态互联网——参与者不能保留自己的状态,也不能在彼此之间以原生的方式转移状态。由比特币开创的区块链技术为我们提供了一种方式,能够以数字化的原生方式保留状态。在密码学货币和区块链的生态系统中,这种新的基本能力已经被赋予了 Web 3.0 的称号。虽然 Web 3.0 仍处于萌芽阶段,我们已经能够隐约察觉到它的潜能。例如,L4已经对 Web 3.0 的潜能有了一些真知灼见

这部分介绍了 Web 3.0 堆栈目前的情况以及未来的发展趋势:

理解 Web 3 —— 用户控制的互联网第3张

-Web 3.0 堆栈的模块框架-

上图的框架是沿着 y 轴从上到下搭建而成的。颜色代表不同层的模块之间的兼容程度。例如,从上图可见,如今的区块链数字商品(Crypto Goods)是黄色模块,与蓝黄模块的以太坊虚拟机(EVM)是兼容的,但是与绿红模块的比特币脚本(Bitcoin Script)并不兼容。EVM 与蓝色模块的以太坊区块链是兼容的,但是与绿色模块的比特币区块链并不兼容。未来,这个框架内还可以加入与比特币脚本兼容的数字商品(不过这在技术上几乎不可能实现)。这种模块式框架对于促进 Web 3.0 的稳健发展来说至关重要,因为这意味着升级其中一层并不需要彻底推翻下面几层的所有模块。还要注意的一点是,虽然每一层的模块或许在 5 年之内就会发生翻天覆地的改变,这些层本身都在往更加全面的方向发展,旨在囊括构成 Web 3.0 的所有部分。

状态层

理解 Web 3 —— 用户控制的互联网第4张

状态层保存着下面几层的状态。状态层几乎都是由相关的区块链基础设施独占提供的,任何遵守网络规则的人都可以参与进来。任何成功网络的目标都是成为默认可靠的基础设施,就像如今的域名服务器供应商一样。当网络如预期那样顺利运行之时( 99% 的情况下都是如此),没人会关心它,一旦出现问题,就会给所有人沉痛的一击。

状态层可以是公有层,也可以是私有层/许可层。可以认为状态是一个默认的普遍的实情,而创建私有层就像是创建平行宇宙一样。公有层和许可层之间也存在技术上的差别,不过这点不在本文的讨论范围内,对于开发者来说将是产品设计上的选择。

接下来,每一层都建立在上一层的基础上,并与上一层相兼容。

计算层

理解 Web 3 —— 用户控制的互联网第5张

软件是人们向计算机下达指令的媒介。Web 3.0 的计算层是人们向状态层下达指令的媒介。 不过,并非所有计算层都可以执行一切指令。例如,比特币脚本的局限性就很高,基本上只能执行交易指令。而以太坊虚拟机(EVM)是图灵完备的,因此支持 EVM 的状态层可以执行任意复杂的计算。

对于应用开发人员(以及区块链开发人员)来说,计算层的选择至关重要,因为它决定了特定应用可以在哪些区块链上运行。例如,凡是可以编译成 EVM 代码的应用都可以在以太坊区块链上运行,但不能在比特币区块链上运行。以太坊基金会正致力于改变以太坊现行的默认计算层,改用另一种基于WebAssembly(WASM)eWASM技术。其他状态层项目,如Dfinity等,也在计划兼容 WASM 。这就意味着,可以编译成 eWASM 代码的应用程序从理论上来说是能够在以太坊区块链、Dfinity 区块链以及其他所有兼容 WASM 的区块链上运行的。

组件层

理解 Web 3 —— 用户控制的互联网第6张

将状态层和计算层结合起来之后,新型数字货币(即可编程货币)的价值设计空间会提高 1000 倍。很多开发者已经对此进行了大量实验。其中一些实施例拥有巨大的潜力(具体例证见下文),毕竟它们都是构建在特定组件上的完整子经济体,你应该可以想象得出来。我在 Coinbase 的同事Jacob Horne将这种情况(连同协议层)称为加密经济原语(Cryptoeconomic Primitives)(编者注:中译本见文末超链接),并且一头扎进了属于加密经济原语之一的数字商品里(编者注:中译本见文末超链接《有趣的范式转变》)。

组件是搭建在计算层之上的,会重复使用标准化的智能合约模版。这类模版资源可以在OpenZeppelin上获取。组件的创建者需要在状态层上发布新的智能合约。

这些组件包括:

  • 原生货币:它是所有公链必不可少的核心部分。它赋予了参与者向区块链付费换取预期服务的权利,这通常是以交易的方式实现的。例如,比特币和以太币。
  • 密码学资产:它是包含一组基本功能及其相关元数据的同质化资产。它降低了货币发行的门槛,曾经一度掀起了 ICO 热潮。除了货币之外,股票、债券、所有权等其他类型的资产也都可以实现数字化。最常用的标准是ERC-20
  • 数字商品:它是包含一组基本功能和相关元数据的非同质化资产,又称非同质化代币(NFT)或数字收藏品。最开始是由一群密码学朋克发起的,之后被以太猫带火。收藏品、游戏资产、访问权限和艺术等特殊商品也可以实现数字化。最常用的标准是ERC-721
  • 身份:它是身份信息的自治容器。该容器本身几乎不提供有价值的身份信息。不过,相关方可以声明自己对容器的关联。相关方的范围很广,包括政府和其他可信方等(例如 Google 和 Coinbase)。主要采用的标准是ERC-725/ERC-735uPort提供的一些协议提案。以太坊域名服务(ENS)又是另一种不同类型的身份标识。
  • 稳定币:它是一种具有稳定价值的加密资产,其价值锚定美元之类的价值物。稳定币是个非常复杂的问题,涉及到不同的理论和实践方案,例如TrueUSD,DaiReserve

协议层

理解 Web 3 —— 用户控制的互联网第7张

你在状态层上创建了组件之后,总归要让这些组件发挥作用。它们的生命周期需要依靠某些常见的基本函数来维持,因此这些函数正在实现标准化。一方面是因为这些函数需要使用同一种编程语言(故称为协议层),另一方面是因为网络效应提高了它们的效率。从根本上来说,这些协议为相关组件创造了健康的市场环境,与现实世界区别不大,只不过成本更低、效率更高。

目前已经出现了各种不同的协议。它们采用智能合约的形式,由协议开发团队进行部署;每一个想将相关函数运用到组件上的应用都可以调用:

  • 交易:一个组件要想获得价值,就需要具备可交易性。交易协议允许钱包到钱包的资产交易,无需信任任何中间方。要注意分清“中继者模式”和大多数“去中心化交易所”之间的差别,后者将资产托管在智能合约内。如果交易是通过交易协议达成的,交易资产是不会被托管的。 采用交易协议的项目主要有0xKyber Network等等。如果你想查看 0x 协议支持的日交易量,以便获得更多信息,可以访问这个网站
  • 借贷:借贷行为带来了投资回报,因此提高了资产的流转率。如果没有借贷行为,资产的投资回报率可能为零。在标准借贷协议下,一个美国人可以通过智能手机借钱给一个津巴布韦人。DharmaETHLend是目前最主要的两大借贷项目。
  • 衍生品:衍生品的全球市场是最大的,预计达 1200 万亿美元。构建衍生品协议可以可以为状态层上的原生组件形成免信任型市场。dy/dxMarket Protocol是两大典型的衍生品项目。

可扩展性/传输层

理解 Web 3 —— 用户控制的互联网第8张

区块链在可扩展性上广受诟病。比特币区块链每秒交易量是 7 笔,以太坊区块链的每秒交易量是 15 笔。虽然区块链是否应该做出一些妥协,将每秒交易量增加至上千笔的问题引起了诸多争议,但是一个不争的事实是,通过不同的分层实现状态转移(也称为 Layer 2 扩展方案)需要状态层支持强健的拓扑结构(编者注:中译本见文末超链接《闪电网络是比特币的 TCP/IP 协议栈》。这些可扩展性方案需要与底层区块链的计算层兼容。

关于如何解决可扩展性问题有很多提议。下面有几个例子:

  • 支付通道:只允许转移特定的原生货币。它是通过附加在状态层交易上的可验证签名来实现的。因为交易中可能产生纠纷,所以需要缴纳一笔押金。相关项目包括比特币的Lighting Network、以太坊的Raiden和 SpankChain 在以太坊上开发的Vynos
  • 状态通道:允许所有状态的转移。它是通过在状态层上的交易添加可验证签名实现的。因为交易中可能产生纠纷,所以需要缴纳一笔押金。相关项目包括针对 EVM 的CounterfactualCeler NetworkArcadeum、FunFair 开发的Fate ChannelConnext
  • 侧链:允许所有状态的转移。它是通过开发兼容主链的其他链来实现的。侧链必需能够与主链上的计算层通信。因为交易中可能产生纠纷,所以需要锁定一笔资金。侧链可以是中心化或私人管理的基础设施,例如针对 EVM 的PoA NetworkLoom NetworkPlasma Framewok。要注意的是 Plasma(衍生出了很多不同的项目)的内部系统上附加了一些要求,能够确保用户可以将他们的资产安全撤回计算层。

目前我们已经讲到第 5 层了,可以看出这个模块化堆栈是如何在一些底层设计选择上赋予开发人员自主空间的,例如搭建在哪条链上。

假设不久的将来出现了一种可由 eWASM 编译的稳定币智能合约,在以太坊区块链上运行,并且兼容状态通道(也就是说,这种智能合约可以在状态通道上转移)。从理论上来说,上述稳定币的代码兼容EOS和 Dfinity ,因为二者都使用 WASM 技术。该代码甚至可以在运行于这些区块链之上的相似状态通道上进行转移。

用户控制层

9

一直到用户控制层为止,普通的用户几乎不可能用到上述几层的功能,除非他/她直接通过命令行接口与计算层互动。用户控制层的主要功能是管理用户的私钥,以及在状态层上签署交易。状态层上的交易会改变用户的账户状态,因此在用户与 Web 3.0 应用的交互过程中处于核心地位。

10

-以太坊区块链的交易解析图-

钱包分为两类:

托管钱包:由 Coinbase 之类的密码学货币交易所推广起来的钱包。它通过控制状态层上有限的资产所有权余额,代表用户管理资金。这些钱包会将用户资金聚集到状态层之外的聚合账户内,并且直接管理个人用户的状态。如果仅仅考虑货币价值的话,这是一种经济易行的操作,不过随着 Web 3.0 应用引入的状态越来越多,就会变得更加复杂。

还有一种更新式的托管钱包,可以为每位用户管理其专属的区块链钱包,并且支持去中心化应用。这种钱包的灵活性更强,不过尚未经过规模化应用的检验。

用户控制型钱包:针对可由 Web 3.0 实现的任意复杂操作提供了一种更为灵活直接的方式。用户控制型钱包的特点是可以在本地保管用户的私钥,并且对每笔交易进行签名。这意味着钱包软件不会复制用户的私钥,也不会允许第三方代替用户提交交易。

用户控制层是上述所有分层与用户之间的最终接触点,因此需要向访问该分层的应用公开所有可实现的功能。这通常是通过类似web3.js的前端库实现的。本文的第三部分将对此进行深入分析。

应用层

11

与传统网络非常相似的是,Web 3.0 上的大部分活动都将通过搭建在上述分层的第三方应用实现。例如,作为加密商品的 CryptoKitties 之所以具有价值,是因为用户可以在cryptokitties.cokittyrace.comcryptogoods.com等应用上通过 CryptoKitties 交易来实现某些功能。相比传统的网络应用,Web 3.0 上搭建的应用拥有不同的性能和要求,因此在大多数情况下被称为去中心化应用(dApp)。正如 Matt Condon 在推文中所言,dApp 若想吸引数百万用户,就不能与现有的应用区分开来。

然而,正是因为去中心化特性创造的新功能,DApp 才会具有如此强大的力量,并且随着堆栈的日趋成熟,网络的用户人数或将继续增加。世界各地的开发者已经创造出了各种类别的前沿用例,用户则将手中的钱投给其中有价值的项目。

  • 募资:已募得资金近200 亿美元参与账户达 72.3 万 个,获得投资的公司总计8000 + 个。虽然募资这块存在欺诈成分,但是到本文截稿之日为止,就参与账户数量来看,它依然是最受欢迎的应用类别。此外,募资类应用依旧热度不减,许多新的募资平台都在推动监管下的 ICO 项目。

  • 交易平台:传统的区块链资产交易平台(充当托管钱包)在用户和状态层之间起到了中介的作用,然而搭建在 Web 3.0 堆栈上的交易平台允许用户完全掌控自己的资金,不用将资金托管到第三方钱包地址内。此外,后者在用户体验上的潜在优势提升了交易体验。虽然很多项目还在努力克服一些技术挑战,但是我们已经看到交易平台类应用在增多

  • 游戏和收藏品:已募得资金达 0.5 至 1 亿美元拥有某类数字商品的账户达 6 万个。相比募资类应用,涉及数字商品的游戏类应用规模小的多,不过还有巨大的市场潜力尚待挖掘。

12

第三部分: 实现

在第一部分,我们回顾了无状态互联网的成因——参与者无法在本地保留自己的状态,或是进行状态转移。比特币开创的区块链技术实现了有状态的计算机网络。身处于密码学和区块链生态系统中的我们已经开始呼唤新型互联网 Web 3.0 的到来,这点我们已经在第二部分介绍过了。

Web 3.0 增加了一个全新的基础设施层,以便各类应用进行交互,还增加了新的客户端功能和需求。用户需要了解新的用户体验概念,才能够使用这些应用。同样地,Web 3.0 应用架构在当前 Web 2.0 应用架构的基础上引入了其他元素,还有新的构建模块和工具需要开发者熟悉。

理解 Web 3 —— 用户控制的互联网第13张

-Web 2.0 应用架构 vs Web 3.0 应用架构-

Web 2.0 架构 vs Web 3.0 架构

目前简单的 Web 2.0 架构包括一个客户端软件(通常是一个浏览器或一个自包含应用)和一套提供内容和逻辑的服务器(由同一个实体——我们把它叫做 Game Co.——控制)。在这个模型内,只有 Game Co. 能够控制服务器内容和逻辑的访问权限,并且追踪记录每个用户的所有权情况及状态维持时间。历史上已经有很多互联网公司更改过用户规则或是停止过服务了,用户却没有权利保存他们所创造的价值。

Web 3.0 架构利用了通用状态层上实现的两大功能:

  1. 允许各类应用将部分或全部的内容和逻辑放到公链上。不同于标准的 Web 2.0 架构,放到公链上的内容和逻辑是公开的,人人都可以访问。
  2. 允许用户直接控制这些内容和逻辑。不同于 Web 2.0 ,用户不一定需要通过账户或是特殊的 API 密钥才能在区块链上实现交互。

Web 3.0 应用之所以能够实现上述两点功能,主要是因为以下两个基础设施:

  • 钱包:Coinbase Wallet之类的现代化钱包不只是充当 Web 3.0 堆栈的用户控制层,它们还与主要客户端的前端进行交互,以便提供更流畅的用户体验。应用可以使用标准库直接向钱包发送请求,其中最受欢迎的标准库是web3.js。例如,web3.js 调用可以是支付请求,要求用户确认钱包可以向应用地址发送一定量的资金。如果用户确认付款的话,会出现两种情况:1)钱包通知了应用前端,作为回应,前端会显示“已付款”界面,2)钱包向区块链服务器发起了RPC调用,将经过确认的交易提交至区块链。此时,第二个基础设施开始发挥作用。

理解 Web 3 —— 用户控制的互联网第14张

-上图的 Web 3.0 代码允许 DApp 从用户钱包中调用智能合约函数-

  • 区块链节点:有两类中介一直在监视并参与区块链——矿工和节点。矿工直接维护并运行区块链,节点则负责监控交易并将交易提交至区块链。可以将它们分别看作是网络服务提供者(ISP)和云服务提供者(例如 AWS)。现如今,大多数应用都使用 AWS 服务运行它们的后端,Infura之类的区块链节点提供者同样使用类似的服务来运行它们的区块链节点。如果一个钱包想要向区块链提交一笔交易,或是查询区块链上的状态信息,就会调用节点提供者。通过发起类似的 RPC 调用,应用的 app 服务器也能够直接与节点提供者进行交互,从而持续更新 app 上的逻辑。

开发者需要了解什么?

工具和架构

了解并熟练掌握相关工具和架构,是开发者生涯中很重要的一部分。尽管 Web 3.0 仍处于早期阶段,但是目前可用的工具已经足以让开发者进入最小化可行产品(MVP)阶段,并加快迭代速度了。这一点在以太坊上最为明显,在社区内诸多成员的努力下,开发者群体不断壮大起来。

理解 Web 3 —— 用户控制的互联网第15张

-图表作者:stefanobernardi;数据来源:GitHub-

我不会详细介绍目前已有的工具,不过开发者还是有必要了解一下哪些工具是他们可以用的。下图中的列表并不全面(实际上还有一个列表),不过里面列出了一些针对新手开发者的入门工具。

16

设计选择

针对哪些部分实现去中心化:这是新出现的关键性选择。大多数的早期开发者旨在将去中心化发挥到最大程度,并把所有东西都放到区块链上。区块链目前依然存在低效和高成本的问题,因此不可能实现规模化发展。CryptoKitties 大概是第一个尝试保留中心化成分的 DApp 了。例如,猫咪的繁殖逻辑就不是公开的。尽管 CryptoKitties 因此遭受了一些非议,但是依然有很多用户豪掷重金购买该逻辑下繁殖出来的数字猫咪。再比如说Gods Unchained,这款游戏本身托管在标准的云架构之上,然而资产所有权是在状态层上进行追踪的。

虽然各个 dApp 实现去中心化的方式不尽相同,但是它们采取的方式都以“可见公共状态最小化”为第一原则。如果你正在开发一款的游戏可以让用户拥有资产,那么应该将所有权上链。如果你正在构建一个预测市场,那么应该将关于该市场的报告和押注情况上链。终有一天,等到用户发现你开发的应用可以实现真正的所有权之时,就会感受到它的价值。

网络应用 vs. 原生应用:这是一个已经困扰了开发者数十年的选择,只不过是借了 Web 3.0 应用这个新形式而已。如今的 DApp 多数都是网络应用,原因很简单:a)用户不需要每次都下载一个新的 app ,b)用户不需要每次使用 app 的时候都创建一个新的钱包。还有少数的原生 dApp 需要用户在每次使用之时都创建一个新的钱包,因此会影响用户体验。原生 dApp 显然是没有未来的,毕竟用户不可能保管上百个钱包的私钥。虽然不久的将来,原生应用的运行将会更加流畅,从而改进用户体验上的不足,但是就目前而言,网络应用会带来更加便捷的用户体验。

桌面应用 vs. 移动应用:就 Web 3.0 应用而言,这不是一个二选一的问题,而是用户最终会如何使用桌面端和移动端的 DApp 。就桌面端而言,如今多数用户都是依靠MetaMask之类的 Chrome 扩展程序与 DApp 的交互的。虽然用户需要下载一个新的扩展程序,但是他们依然是与自己熟悉的浏览器界面进行交互。

然而,扩展程序是不可能安装在移动端上的,至少在 iOS 系统上是如此。这就是为什么 Coinbase Wallet 之类的钱包 app 会嵌入浏览器。一旦用户从移动端的 DApp 进入浏览器页面,就会获得与桌面端相同的体验。此外,Coinbase Wallet 的工程部主管 Pete Kim 还在这篇文章中讲到了几个关于移动端开发的技术细节。

目前仍需应对的挑战有:

  • 谁来负担 Gas 费用:现如今,每个搭建在以太坊上的 DApp 都要求用户自己承担交易手续费——在以太坊区块链上被称为 Gas 。然而,要想让 Web 3.0 应用吸引数百万加密社区以外的用户的话,这并非长久之计。目前已经提出了几种理论上可行的解决方案,其中一些快要实现了,例如 gas 中继者,不过目前尚未有方案投入使用。

  • App 账户是否为专属账户:通用身份是 Web 3.0 带来的最激动人心的应用之一。由于目前实用的身份解决方案不多,一些 dApp 依然要求用户创建账户,才能将用户在 dApp 上的活动与他们的身份相关联。这种方式跟 Web 2.0 差别不大。一旦有了实用的去中心化身份解决方案,dApp 应该如何处理用户的身份问题?虽然目前还没有明确的答案,但是已经出现了一些提议,例如使用 ERC-725 和 735 构建的Origin’s demo

结语

在第三部分,我总结了 Web 3.0 对应用架构的改变,以及开发者在开始构建 Web 3.0 应用的时候应该了解哪些的东西。对于初学者来说,Cryptozombies是一个很棒的入门途径,它提供了趣味教程,任何人都可以学习如何创建第一个 Web 3.0 应用。

虽然随着相关基础设施的发展,Web 3.0 的构建方式会发生很多变化,但是关键在于应用程序依旧在开发之中。Web 3.0 尚处于起步阶段,有许多优秀的团队正在迎接挑战,把握机遇。


链接:https://blog.coinbase.com/understanding-web-3-a-user-controlled-internet-a39c21cf83f3

免责声明:文章转载自《理解 Web 3 —— 用户控制的互联网》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jvm内存模型和内存分配vi中设置显示行号下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

WinRAR 激活的小办法

WinRAR是一个强大的压缩文件管理工具。它可以备份数据,减少电子邮件附件的大小,解压缩从Internet下载的RAR、ZIP和其他压缩文件,并以RAR和ZIP格式创建压缩文件。如果您使用的正版WinRAR未激活,请将以下注册代码复制到新文档并将其重命名为rarreg。键,然后复制rarreg。键到WinRAR根目录以激活它。...

网页分页数据的三种抓取方式

目前,只有两种方法可以捕获其他网站的数据:我一开始尝试用第三方工具捕获所需的数据。现在我将介绍以三种形式捕获分页数据的方法。此方法通过循环生成数据分页的URL地址,例如:}上面的代码可以返回相应页面的html内容字符串,其分页控件通过post模式将分页信息提交给后台代码。当您将鼠标移到每个页码上时,状态栏将显示javascript:...

配置nginx

aNULL:!MD5:!...

flutter vscode+第三方安卓模拟器

1.首先打开夜曲模拟器2.Win+R,选择cmd,在第三方模拟器安装目录的bin目录下输入夜曲模拟器,然后运行命令:nox_Adb.execonnect127.0.0.1:620013。打开项目终端的vscode并建立连接:adbconnect127.00.1:62001(夜神模拟器的默认端口)4。查看连接:adbdevices或不使用第三方模拟器:1.打开...

JS前端数据多条件筛选(商品搜索)

有时候也会需要在前端进行数据筛选,增强交互体验。当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很大麻烦。进行商品按条件筛选主要是利用Arrary.prototype.filter对数组元素进行遍历检查,返回一个符合检查条件的新数组,不会改变原数组。为了能自动适配不同的筛选条件,将筛选条件分为两个大类,一个是区间类型rangesFilter,如:品牌、...

2.页面绘制和引入组件库uView

文本+背景色的形式,而不是横幅图的形式,可以节省未来的工作量。在index.vue中,关于开关的代码:EFGHIJKLMNOPQRSTUWXYZB˃DEFGHIJKLNNOPQRSTUVWXYZEFGHIJKLMNOPQRSTUVWXYZ导出默认值{data(){return{}},onLoad()},方法:{}}。横幅{width:100%;height:...