本文作者:Qtum量子链研究院核心工程师郑义,原文发布于Qtum量子链(qtumchain)公众号。


文章原标题:《Qtum研究院:从Web 3.0思考如何投资互联网、区块链和数字货币的下个十年》

Web 3.0的核心思想是去中心化,也叫做P2P(Peer-To-Peer)。在Web 3.0的模式下,节点之间通过直接的连接来交流信息,而不再需要中心化的Server。所有节点都是对等的关系,不区分Client和Server,而是统一称之为Peer。Peer需要遵守特定的计算、存储、网络等协议来连接其他Peer从而加入到去中心化应用中,并提供一定的计算、存储、带宽等资源来维持应用的运行。

Web 3.0

“不同的去中心化生产关系”


(1) 信息共享


最早的Web 3.0的尝试实际上来自于一项沿用至今的技术: BT(BitTorrent) 。BT产生的动机是为了解决大型文件传输时带宽不足的问题。在Client/Server的模式下,Server发布了大型的文件后(例如操作系统、视频文件、游戏安装包等),会面临大量的Client同时下载。由于Server的带宽有限,则会出现Client下载速度过慢的问题。这是一个典型的随着生产力提升,生产关系无法满足生产力的场景。

BT因此设计了一套去中心化的文件传输方案。当Peer发布文件的时候,会把文件切分成许多小的数据块,供其他Peer进行下载,同时发布所有数据块的哈希值供验证。当其他Peer下载了数据块并进行哈希值验证后,会提供给更多的Peer下载。最终,文件会以数据块的形式分布在多个Peer中。新的下载者下载文件的时候,实际上是同时从多个Peer下载文件的不同部分,并最终拼接成完整的文件。带宽的压力就变成由多个Peer共同承担,下载速度从而得到了提升。

BT的网络结构(图片来自 Threestory Studio )

在最初BT的设计中,除了Peer之外,还需要一个或多个Tracker节点来实时记录每个文件分布在哪些Peer中。下载者会连接若干个Tracker来获取文件的Peer信息,从而决定连接哪些Peer来获取文件。Traker通常会由一些下载站来维护。后续,BT加入了 分布式哈希表(DHT,Distributed Hash Table) 的设计,将文件和节点的映射关系分布式地记录在多个Peer中,从而实现了完全对等的网络。如今的BT网络中,Tracker和DHT两种模式是共存的。

尽管BT缺乏对Peer的激励机制,BT很好地解决了Server的中心化问题,见下表。


表1:BT如何解决了Server的中心化问题

由于BT可以工作在Tracker、PT、DHT这3中不同的模式下,所以对应了3种不同的 生产关系 。它们之间的区别如下:

表2:BT的3种生产关系


这些模式的尝试给后来的Web 3.0系统设计带来了一些启发:

1. 给节点赋予多种不同的类型,更有利于激发用户的活力。 因为不同用户使用系统的目的并不一致。在BT中,有的用户是为了下载数据、有的是分享数据、有的是建立社区。用户需要根据自己的需求选择对应类型的节点进行运行,而完全对等的网络是做不到这点的。

2. 给贡献服务的节点以适当的激励,更有利于促使用户为系统作出贡献。 如果没有激励机制的存在,一些恶意的节点会不遵守协议,只使用系统但不作出贡献。例如BT中的只下载不上传的情况。

(2)数字货币的诞生


2009年 比特币 的产生给Web 3.0带来了新的一类应用——数字货币。比特币提出的动机是为了建立一套全球化的货币体系和支付网络,这在Client/Server模式下是难以实现的。因为Server的中心化问题,包括数据丢失、隐私保护、可信计算,对于货币和支付应用来说是非常致命的。另外,Server会面临政府的监管,单一中心建立的货币和支付系统很难被全世界所接受。

比特币的设计充分吸取了BT的经验,赋予了节点不同的类型,且给贡献服务的节点以奖励。比特币的节点分全节点和轻节点两种。全节点负责维护服务也可以使用服务。轻节点则只能使用服务。其中全节点又分为普通全节点和矿工,矿工会额外提供算力以换取数字货币作为奖励。

比特币的网络结构(图片来自 Mastering Bitcoin )

比特币通过以下方式解决了Server的中心化问题:

表3:比特币如何解决了Server的中心化问题

比特币的 生产关系 可以总结为:部分节点提供服务,所有节点使用服务。所有全节点是服务的提供者,负责同步信息、验证信息。其中,矿工是有偿的服务提供者,即提供算力,获得奖励。其他是无偿的服务提供者。所有节点都是服务的使用者:从网络同步交易信息,拥有数字货币后可以发起交易。

在比特币使用日益普及的同时,也面临着一些问题,但随着技术的发展都得到了一定程度的解决。比如,PoW共识面临着能源问题,于是后来PoS共识被提出,并应用在了Qtum等新的区块链系统中。又比如,交易的金额是以明文的形式存储在区块链上的,存在一定的隐私问题。于是zk-SNARK、MimbleWimble等隐私算法被提出,并应用在了ZCash、Grin、Beam等新的区块链系统中。


(3)去中心化应用平台


继比特币之后,以太坊开启了新的一种Web 3.0模式,我们称之为去中心化应用平台。以太坊在区块链上加入了虚拟机功能,允许用户在链上创建去中心化的应用,也叫做智能合约或DApp。以太坊上的虚拟机叫做EVM,可以使用对应的Solidity语言编写应用。由此,以太坊上诞生了一大批DApp,包括链上代币、收藏游戏、去中心化交易所、预测市场等。

以太坊上的DApp(图片来自 DApp Review )

以太坊的生产关系仍然是部分节点提供服务,所有节点使用服务的模式。但是可以使用的服务除了数字货币的转账交易之外,还可以进行DApp相关的操作。例如,开发者可以发布DApp,普通用户可以交互式地使用DApp。这种模式赋予了Web 3.0更多的可能性,允许开发者灵活地构建各种各样的去中心化应用,而不必关心底层的去中心化协议。

以太坊是去中心化应用平台的首次尝试,存在着很多明显的不足。其中最为主要的是性能问题。因为所有节点都会运行一遍链上的智能合约以验证合约的正确性,所以合约的运算和存储等资源受到了单个节点的CPU、内存、硬盘的限制。EOS通过降低去中心化程度,将共识改为了dPoS,即合约只需要21个高性能的超级节点进行验证,从而提升了合约的性能。但这仍旧未能突破单个节点的资源限制,与Web 2.0模式下应用的性能相差很远。

开发中的项目

从已有的信息共享、数字货币、去中心化应用平台三种Web 3.0的应用模式可以看出两点:

1. Web 3.0的底层技术尚未成熟。 一方面表现为,当前的底层技术所能提供的性能较弱,无法支撑大规模的应用。另一方面,很多Web 2.0应用依赖的底层技术,在Web 3.0模式下都尚未出现解决方案,开发者开发一个新的Web 3.0应用的时候,不得不重新进行底层模块(包括传输层、网络层等)的设计和开发。


2. Web 3.0的应用模式还有待探索。 目前Web 3.0能够应用的场景过于狭窄,很多Web 2.0涉及的领域,例如社交网络、电商平台等,无法在Web 3.0的模式下落地。这些场景都会遇到Web 2.0中的Server中心化问题,但是目前并没能通过Web 3.0的模式进行解决。另外,Web 3.0也有望催生出更多新的应用模式和生产关系。

对Web 3.0底层技术的探索一直进行着,以下列举一些项目供参考。其中去中心化应用平台主要是为解决DApp运行环境的性能问题。而文件存储、消息通信、数据库这3个分类,是为了提供一些常用的底层技术的解决方案。


表4:Web 3.0底层技术,开发中的项目

目前对于Web 3.0应用模式的探索还非常早期。从下图中可以看出,Web 3.0的项目,大多数都在照搬Web 2.0中一些成功的模式,而没有进行太多的思考和创新。很多项目虽然使用了区块链等去中心化技术,但生产关系还是传统的Client/Server模式,以至于往往陷入到了严重的误区中。

Web 3.0的应用图谱(图片来自 Medium )


误区:Web 3.0会取代2.0,所有应用都可以去中心化。

1. Web 3.0会和2.0、1.0共存。可以看到Web 2.0的出现并未完全取代1.0,传统的门户网站仍然存在并且满足部分用户的需求。所以,Web 3.0并不会取代它的前辈们,这三者是共存的关系。

2. 有些应用通过Web 2.0的模式就能很好实现,不需要Web 3.0。例如,有些项目想要实现去中心化的分布式计算(也叫Volunteer Computing或Grid Computing)平台,包括Golem、Enigma、Sonm等。但实则用Client/Server的模式就能很好实现,NiceHash、BOINC都是成功的例子。

3. Web 3.0能够解决一部分Web 2.0解决不了的问题。就像Web 2.0解决了搜索引擎和电商中的交互问题一样,Web 3.0目前也解决了文件传输的带宽问题和货币的全球支付问题。

4. Web 3.0会诞生全新的应用模式和生产关系。就像Web 2.0诞生了涉及网络一样,Web 3.0目前也诞生了信息共享、数字货币、去中心化应用平台这些以前没有过的模式。



对应用平台未来发展的思考

“ 应用平台的完善,才会带来应用的爆发”


曾经Web 2.0的出现,虽然从本质上来看是互联网信息量增加所催生的,但是直接因素还是依靠底层技术的完善,特别是 应用平台 的完善。

最初,开发者需要使用复杂的MFC、QT等技术开发客户端程序和服务器进行信息交互。随着Chrome浏览器的出现和完善,以及JavaScript浏览器端编程语言的普及,大家才转而构建交互式的网页应用,或称作Web App。最后,进入了移动互联网时代,iOS和Android两大平台占据了主流地位。直到今天,Web 2.0的应用已经稳定地集中在Chrome、iOS、Android三大平台上。

只有当完善的、通用的应用平台出现,而开发者不必再关注网络通信、消息队列等底层技术细节的时候,才能把更多的思考放在应用的设计上,从而带来应用爆发式的出现。 以下我们对比了正在开发中的Web 3.0应用平台:

表5:Web 3.0去中心化应用平台,开发中的项目对比

可以看到,虽然Web 3.0应用平台还处于MFC、QT的时代,但众多项目正在努力向着下一阶段演进。从开发环境而言,EVM和WASM等虚拟机的功能十分有限,缺乏IO、文件、进程、线程、异步、Socket、定时任务等操作系统级别的接口,而Linux虚拟机和云的尝试也许会带来转机。从计算性能而言,虽然跨链、侧链技术能一定程度上带来扩展,但是应用仍然无法做到内部并行,而且始终受到单节点性能的限制,因此链下扩容技术更有潜力。从存储性能而言,全局可验证的要求导致了所有的操作、中间状态都记录在区块链上,存储空间过大,正在探索的P2P存储和链下存储值得期待。

基于当前技术发展的趋势,我们认为,去中心化应用平台至少要达到以下要求,才是发展更多Web 3.0应用的基础:

1. 既提供可靠的链上计算环境,又提供高性能的链下计算环境。


2. 链上计算保证安全、可验证。


3. 链下计算允许应用内并发,计算、存储等资源可无限扩展。

其中的技术难度主要在链下计算部分,目前并没有成熟的解决方案。但相信不久的将来,一定会出现。到那个时候,将会开启互联网、区块链和数字货币的下个十年。

免责声明:本文仅代表作者个人观点,不代表 Qtum 量子链基金会立场,不构成任何投资意见。关注Qtum量子链(qtumchain)官方公众号,了解更多区块链技术最新研究资讯。