编者按:本文来自以太坊爱好者(ID:ethfans),作者:Emre Tekisalp,翻译 校对:闵敏 阿剑,星球日报经授权发布。
本文包括三个部分,分别介绍了万维网步入 3.0 时代(Web 3.0)的缘由、含义和方式。第一部分解释了如今网络存在的缺陷和 Web 3.0 的进步之处;第二部分主要介绍了什么是 Web 3.0 堆栈;第三部分重点讲述了开发者的搭建过程。
第一部分:背景
如今的万维网(互联网)主要存在两大缺陷:
1.它不会保留独立于可信的运营者的“状态”
2.它没有一个原生机制来实现状态转移
之所以会缺少状态,是因为 HTTP 和 SMTP 等网络协议过于简单。你任何时候都无法查询到一个节点(即一台联网设备)的历史或当前状态。从用户的角度来看,每次使用联网设备的时候,都像是通过新的浏览器第一次使用互联网一样(没有历史记录、收藏夹、保存设置或自动填充用户名)。想象一下,每当你打开设备使用某个服务或是下载心仪的应用程序之时,你都要重新提交用户信息。这就降低了互联网的可用性,至少大幅降低了它的效率。
然而,状态对服务和应用的发展来说都是至关重要的,因为它可以代表价值。两大关键技术的发展已经弥补了这一缺陷。首先是 cookies 技术,正如 Brendan Eich 强调的那样,该技术旨在帮助由 JavaScript 语言编写的网络应用在本地设备上存储状态。不过问题在于,cookies 是由服务供应商创建并控制的,而非用户。用户无法选择由哪个供应商来存储他们的状态,也无权访问他们的状态。
其次是将用户状态保留在自己机器上的中心化服务供应商。如今的互联网行业巨头 Google 和 Facebook 均保留数十亿用户的状态,也因此创造出了价值。这点从本质上来说无可厚非,毕竟这些公司的用户也享受到了服务和价值。问题在于互联网为这些中心化公司带来的利益多于赋予公众的。
互联网的第二大主要缺陷是缺少一个原生机制来实现状态转移。这在一定程度上也是第一个缺陷导致的。如果状态(及其创造出的价值)无法保留,也就无法转移。经济发展和现代金融的的核心就是实现简单高效的价值转移。只要提高了价值转移的效率,就会带来很多积极影响。如今的互联网已经将信息转移效率提高了好几个数量级,因而为新的业务和服务创造了极大的发展空间。然而,如果企业找不到一种简单的方法交易价值,就需要另辟蹊径,从自己提供的服务中获利。
这就是为什么多年以来广告始终是互联网的商业模式,因为广告是唯一可以有效存储并转移数十亿用户状态的业务。再强调一遍,广告从本质上来说无可厚非。不过这里的问题存在于三个方面:
1.第三方中介会促成每一笔广告交易并从中获利;
2.广告更有利于老牌企业,而不利于初创企业,限制了经济的发展潜力;
3.广告业经济的发展靠的是(喂给广告模型的)用户数据的增多,这会造成用户激励的扭曲和糟糕的用户体验。
互联网发展趋势
互联网本身就是技术发展的产物。它就像是一堆管道,任由人们支配。最后需要由人来决定将这些管道的指向。多年以来,互联网的发展趋势 显然不会惠及之前未曾受惠的人。在接下来的十年或是二十年,帮助实现以下两点,会是更好的发展方向:
1.任何参与者都能够创造原生经济价值;
2.这种原生价值可以转移给任何参与者。
感谢中本聪以及前人的学术研究,我们有了区块链技术。现在,网络中的每一位参与者都可以通过数字化的原生格式保留并转移状态。在全球范围内,很多开发人员和企业家都已经开始在这个新的状态层上进行搭建(也可以说是 #BUIDL )了。随着以太坊等开放平台的出现,保留和转移状态的难度日益降低。由于人们意识到了这两个新能力背后的巨大潜力,他们已经开始共同呼唤一个更加开放和公平的互联网,也就是 Web 3.0 了。
第二部分:含义
正如第一部分所解释的那样,如今的互联网是无状态互联网——参与者不能保留自己的状态,也不能在彼此之间以原生的方式转移状态。由比特币开创的区块链技术为我们提供了一种方式,能够以数字化的原生方式保留状态。在密码学货币和区块链的生态系统中,这种新的基本能力已经被赋予了 Web 3.0 的称号。虽然 Web 3.0 仍处于萌芽阶段,我们已经能够隐约察觉到它的潜能。例如,L4 已经对 Web 3.0 的潜能有了一些真知灼见。
这部分介绍了 Web 3.0 堆栈目前的情况以及未来的发展趋势:
-Web 3.0 堆栈的模块框架-
上图的框架是沿着 y 轴从上到下搭建而成的。颜色代表不同层的模块之间的兼容程度。例如,从上图可见,如今的区块链数字商品(Crypto Goods)是黄色模块,与蓝黄模块的以太坊虚拟机(EVM)是兼容的,但是与绿红模块的比特币脚本(Bitcoin Script)并不兼容。EVM 与蓝色模块的以太坊区块链是兼容的,但是与绿色模块的比特币区块链并不兼容。未来,这个框架内还可以加入与比特币脚本兼容的数字商品(不过这在技术上几乎不可能实现)。这种模块式框架对于促进 Web 3.0 的稳健发展来说至关重要,因为这意味着升级其中一层并不需要彻底推翻下面几层的所有模块。还要注意的一点是,虽然每一层的模块或许在 5 年之内就会发生翻天覆地的改变,这些层本身都在往更加全面的方向发展,旨在囊括构成 Web 3.0 的所有部分。
状态层
状态层保存着下面几层的状态。状态层几乎都是由相关的区块链基础设施独占提供的,任何遵守网络规则的人都可以参与进来。任何成功网络的目标都是成为默认可靠的基础设施,就像如今的域名服务器供应商一样。当网络如预期那样顺利运行之时( 99% 的情况下都是如此),没人会关心它,一旦出现问题,就会给所有人沉痛的一击。
状态层可以是公有层,也可以是私有层/许可层。可以认为状态是一个默认的普遍的实情,而创建私有层就像是创建平行宇宙一样。公有层和许可层之间也存在技术上的差别,不过这点不在本文的讨论范围内,对于开发者来说将是产品设计上的选择。
接下来,每一层都建立在上一层的基础上,并与上一层相兼容。
计算层
软件是人们向计算机下达指令的媒介。Web 3.0 的计算层是人们向状态层下达指令的媒介。 不过,并非所有计算层都可以执行一切指令。例如,比特币脚本的局限性就很高,基本上只能执行交易指令。而以太坊虚拟机(EVM)是图灵完备的,因此支持 EVM 的状态层可以执行任意复杂的计算。
对于应用开发人员(以及区块链开发人员)来说,计算层的选择至关重要,因为它决定了特定应用可以在哪些区块链上运行。例如,凡是可以编译成 EVM 代码的应用都可以在以太坊区块链上运行,但不能在比特币区块链上运行。以太坊基金会正致力于改变以太坊现行的默认计算层,改用另一种基于 WebAssembly(WASM)的 eWASM 技术。其他状态层项目,如 Dfinity 等,也在计划兼容 WASM 。这就意味着,可以编译成 eWASM 代码的应用程序 从理论上来说 是能够在以太坊区块链、Dfinity 区块链以及其他所有兼容 WASM 的区块链上运行的。
组件层
将状态层和计算层结合起来之后,新型数字货币(即可编程货币)的价值设计空间会提高 1000 倍。很多开发者已经对此进行了大量实验。其中一些实施例拥有巨大的潜力(具体例证见下文),毕竟它们都是构建在特定组件上的完整子经济体,你应该可以想象得出来。我在 Coinbase 的同事 Jacob Horne 将这种情况(连同协议层)称为加密经济原语(Cryptoeconomic Primitives)(编者注:中译本见文末超链接),并且一头扎进了属于加密经济原语之一的数字商品里(编者注:中译本见文末超链接《有趣的范式转变》)。
组件是搭建在计算层之上的,会重复使用标准化的智能合约模版。这类模版资源可以在 OpenZeppelin 上获取。组件的创建者需要在状态层上发布新的智能合约。
这些组件包括:
原生货币:它是所有公链必不可少的核心部分。它赋予了参与者向区块链付费换取预期服务的权利,这通常是以交易的方式实现的。例如,比特币和以太币。
密码学资产:它是包含一组基本功能及其相关元数据的同质化资产。它降低了货币发行的门槛,曾经一度掀起了 ICO 热潮。除了货币之外,股票、债券、所有权等其他类型的资产也都可以实现数字化。最常用的标准是 ERC-20 。
数字商品:它是包含一组基本功能和相关元数据的非同质化资产,又称非同质化代币(NFT)或数字收藏品。最开始是由一群密码学朋克发起的,之后被以太猫带火。收藏品、游戏资产、访问权限和艺术等特殊商品也可以实现数字化。最常用的标准是 ERC-721 。
身份:它是身份信息的自治容器。该容器本身几乎不提供有价值的身份信息。不过,相关方可以声明自己对容器的关联。相关方的范围很广,包括政府和其他可信方等(例如 Google 和 Coinbase)。主要采用的标准是 ERC-725/ERC-735 和 uPort 提供的一些协议提案。以太坊域名服务(ENS)又是另一种不同类型的身份标识。
稳定币:它是一种具有稳定价值的加密资产,其价值锚定美元之类的价值物。稳定币是个非常复杂的问题,涉及到不同的理论和实践方案,例如 TrueUSD, Dai 和 Reserve 。
协议层
你在状态层上创建了组件之后,总归要让这些组件发挥作用。它们的生命周期需要依靠某些常见的基本函数来维持,因此这些函数正在实现标准化。一方面是因为这些函数需要使用同一种编程语言(故称为协议层),另一方面是因为网络效应提高了它们的效率。从根本上来说,这些协议为相关组件创造了健康的市场环境,与现实世界区别不大,只不过成本更低、效率更高。
目前已经出现了各种不同的协议。它们采用智能合约的形式,由协议开发团队进行部署;每一个想将相关函数运用到组件上的应用都可以调用:
交易:一个组件要想获得价值,就需要具备可交易性。交易协议允许钱包到钱包的资产交易,无需信任任何中间方。要注意分清“中继者模式”和大多数“去中心化交易所”之间的差别,后者将资产托管在智能合约内。如果交易是通过交易协议达成的,交易资产是不会被托管的。 采用交易协议的项目主要有 0x 和 Kyber Network 等等。如果你想查看 0x 协议支持的日交易量,以便获得更多信息,可以访问这个网站。
借贷:借贷行为带来了投资回报,因此提高了资产的流转率。如果没有借贷行为,资产的投资回报率可能为零。在标准借贷协议下,一个美国人可以通过智能手机借钱给一个津巴布韦人。 Dharma 和 ETHLend 是目前最主要的两大借贷项目。
衍生品:衍生品的全球市场是最大的,预计达 1200 万亿美元。构建衍生品协议可以可以为状态层上的原生组件形成免信任型市场。dy/dx 和 Market Protocol 是两大典型的衍生品项目。
可扩展性/传输层
区块链在可扩展性上广受诟病。比特币区块链每秒交易量是 7 笔,以太坊区块链的每秒交易量是 15 笔。虽然区块链是否应该做出一些妥协,将每秒交易量增加至上千笔的问题引起了诸多争议,但是一个不争的事实是,通过不同的分层实现状态转移(也称为 Layer 2 扩展方案)需要状态层支持强健的拓扑结构(编者注:中译本见文末超链接《闪电网络是比特币的 TCP/IP 协议栈》。这些可扩展性方案需要与底层区块链的计算层兼容。
关于如何解决可扩展性问题有很多提议。下面有几个例子:
支付通道:只允许转移特定的原生货币。它是通过附加在状态层交易上的可验证签名来实现的。因为交易中可能产生纠纷,所以需要缴纳一笔押金。相关项目包括比特币的 Lighting Network 、以太坊的 Raiden 和 SpankChain 在以太坊上开发的 Vynos。
状态通道:允许所有状态的转移。它是通过在状态层上的交易添加可验证签名实现的。因为交易中可能产生纠纷,所以需要缴纳一笔押金。相关项目包括针对 EVM 的 Counterfactual、Celer Network 、Arcadeum 、FunFair 开发的 Fate Channel 和 Connext 。
侧链:允许所有状态的转移。它是通过开发兼容主链的其他链来实现的。侧链必需能够与主链上的计算层通信。因为交易中可能产生纠纷,所以需要锁定一笔资金。侧链可以是中心化或私人管理的基础设施,例如针对 EVM 的 PoA Network 、Loom Network 和 Plasma Framewok 。要注意的是 Plasma(衍生出了很多不同的项目)的内部系统上附加了一些要求,能够确保用户可以将他们的资产安全撤回计算层。
目前我们已经讲到第 5 层了,可以看出这个模块化堆栈是如何在一些底层设计选择上赋予开发人员自主空间的,例如搭建在哪条链上。
假设不久的将来出现了一种可由 eWASM 编译的稳定币智能合约,在以太坊区块链上运行,并且兼容状态通道(也就是说,这种智能合约可以在状态通道上转移)。从理论上来说,上述稳定币的代码兼容 EOS 和 Dfinity ,因为二者都使用 WASM 技术。该代码甚至可以在运行于这些区块链之上的相似状态通道上进行转移。(待续)