序言:自比特币诞生以来,已经过去了十年的时间,区块链和数字货币的概念已经被大家所熟知。如今,业内开始频繁提及Web 3.0的概念,但关于Web 3.0到底是什么,却很少有人能说清楚。本文将带您一览Web 3.0的来龙去脉,并且对Web 3.0的各种说法进行去伪存真,最后给出对Web 3.0的未来发展方向的思考。
1. 信息
“信息交流是人类的基本需求”
人类既是信息的生产者也是消费者。信息交流是生产和消费过程中必不可少的环节。
在没有互联网的时代,信息交流的手段十分有限。人们只能当面走到一起,或者通过书信的方式进行交流。
以获取知识为例:教师教书、学生听讲、学生提问、老师解答。学生通过和老师信息交流,获取了新知识。
以商品交易为例:货比三家、讨价还价、达成一致、一手交钱、一手交货。买家和卖家通过信息交流,完成了交易。
在这样的交流过程中,信息的持久、隐私、防篡改等特性都难以保证。
互联网的出现,大大提升了信息交流的效率和质量。
人们获取知识的方式,变成了搜索引擎、知乎、Wiki、在线课堂。任何问题,只要在电脑或手机上轻松点击,答案就立即以图片、文字、视频的方式返回给你。
人们进行交易的方式,也变成了淘宝浏览、支付宝支付、快递送货、确认收货的流程。足不出户,遍览天下商品,买东西变得十分便捷。
2. 互联网进化史
“生产力决定生产关系,生产关系会反作用于生产力”
· 单向流动的Web 1.0
互联网的最早期是Web 1.0的模式。彼时,信息只能从Server向Client单向流动。网站对于所有用户来说,是只读的。
Web 1.0的典型应用包括网址导航、门户网站等。我们有幸找到了知名网址导航Hao123在2011年的页面截图来帮助我们回顾Web 1.0的历史,如下图。可以看到,网站的所有信息都以静态的方式呈现在网页上供用户浏览。当时崛起的中国四大门户网站,新浪、网易、搜狐、腾讯,都位于网页上方的最显眼位置。这也可以看出,在2011年,Web 1.0的应用占据着市场的主导位置。
Web 1.0模式下,生产关系是简单的生产者/消费者模式。Server负责生产信息:网址导航收集网址,门户网站撰写新闻,都是生产信息的过程。Client负责消费信息:点击网站链接跳转,阅读新闻,都是消费信息的过程。
· 双向互动的Web 2.0
不过,单向的信息流动俨然无法满足信息交流的需求。经过PHP、Java等网站后端技术以及Ajax、JavaScript等网站前端技术的迅速发展,互联网很快进入了Web 2.0时代。这时,信息能在Server和Client之间双向流动。网站对于用户而言具有了可读写性。
Web 2.0就此产生了大量的应用。时至今日,我们日常使用的绝大多数应用都是工作在Web 2.0的模式下。其应用主要包含两大类,让我们以今天Hao123的页面截图为例介绍如下:
1. Server提供工具,Client与Server进行信息交互从而使用工具。典型的应用有搜索引擎、聊天工具、支付工具、网络游戏等。例如图中的百度、百度地图、12306都是属于这一类。
2. Server提供平台,Client可以通过平台上传信息、获取信息、进行用户间的交流等。典型的应用包括社交网络、电商平台等。例如图中的淘宝网、京东商城、58同城、知乎都属于这一类。
Web 2.0的生产关系和Web 1.0相比发生了巨大的改变:
首先,Server提供给Client的不再仅仅是信息,而是包括计算、存储、交易甚至物流等在内的各种服务。其次,Client必须和Server进行信息的交互,才能使用Server提供的服务。最后,Server提供的信息不仅可以由自己生产,还可以来自于Client的上传。
Web 2.0的产生和发展很好地印证了历史唯物主义中的两个重要观点:
1.生产力决定生产关系。随着互联网上生产的信息量不断增加,Web 1.0已经无法满足生产力的需求,Web 2.0应运而生。例如当时,随着网站的不断增加,基础的网址导航已经无法满足海量网站的检索需求,所以才产生了搜索引擎。又譬如阿里巴巴最开始的模式是企业黄页,但随着企业和商品的不断增加,其逐渐演化为了电商平台。
2. 生产关系会反作用于生产力。Web 2.0改变了互联网节点间的生产关系后,Client具备了信息生产者和消费者的双重身份,这进一步激发了Client生产信息的能力和意愿。在这样的环境下,先是产生了BBS、社交网络等以UGC(用户生产内容)为主的平台,又迎来了直播、短视频等以PGC(专业生产内容)为主的应用。互联网上的信息量和信息种类进一步得到提升。
但正是随着信息量和信息种类的进一步提升,Web 2.0的瓶颈也体现了出来——即Server的中心化问题。在Web 2.0这种Client/Server的模式下,Server成为了信息的“中介”:所有的信息都会经过Server,部分会存储在Server。那我们是否可以完全信任Server会正确地、合适地、如约地处理这些信息呢?
答案显然是否定的,Server的中心化问题正是Web 2.0模式难以逾越的障碍。只有改变互联网节点之间的生产关系,让信息不再经过中心化的Server,才能彻底解决这个问题。
· 去中心化的Web 3.0
在这样的背景下,Web 3.0的概念逐渐显露了出来。Web 3.0的核心思想是去中心化,也叫做P2P(Peer-To-Peer)。在Web 3.0的模式下,节点之间通过直接的连接来交流信息,而不再需要中心化的Server。所有节点都是对等的关系,不区分Client和Server,而是统一称之为Peer。Peer需要遵守特定的计算、存储、网络等协议来连接其他Peer从而加入到去中心化应用中,并提供一定的计算、存储、带宽等资源来维持应用的运行。
误区1:语义网络(Semantic Web)、人工智能(AI)等技术是Web 3.0。
分析:这些技术可以看做是生产工具的进步。它们提升了人们生产信息、交流信息的能力,但并没有从本质上改变生产关系,所以不能被认为是Web 3.0。
3. Web 3.0
“不同的去中心化生产关系”
· 信息共享
大多数人可能没注意到,最早的Web 3.0的尝试实际上来自于一项沿用至今的技术:BT(BitTorrent)。BT产生的动机是为了解决大型文件传输时带宽不足的问题。在Client/Server的模式下,Server发布了大型的文件后(例如操作系统、视频文件、游戏安装包等),会面临大量的Client同时下载。由于Server的带宽有限,则会出现Client下载速度过慢的问题。这是一个典型的随着生产力提升,生产关系无法满足生产力的场景。
BT因此设计了一套去中心化的文件传输方案。当Peer发布文件的时候,会把文件切分成许多小的数据块,供其他Peer进行下载,同时发布所有数据块的哈希值供验证。当其他Peer下载了数据块并进行哈希值验证后,会提供给更多的Peer下载。最终,文件会以数据块的形式分布在多个Peer中。新的下载者下载文件的时候,实际上是同时从多个Peer下载文件的不同部分,并最终拼接成完整的文件。带宽的压力就变成由多个Peer共同承担,下载速度从而得到了提升。
在最初BT的设计中,除了Peer之外,还需要一个或多个Tracker节点来实时记录每个文件分布在哪些Peer中。下载者会连接若干个Tracker来获取文件的Peer信息,从而决定连接哪些Peer来获取文件。Traker通常会由一些下载站来维护。后续,BT加入了分布式哈希表(DHT,Distributed Hash Table)的设计,将文件和节点的映射关系分布式地记录在多个Peer中,从而实现了完全对等的网络。如今的BT网络中,Tracker和DHT两种模式是共存的。
BT还存在一个问题:缺乏对Peer的激励机制。这造成了部分Peer只下载不上传,影响了整个网络的文件传输。后来出现了PT(Private Tracker)模式,即私有的Tracker。PT会让每个连接自己的Peer上报自己的上传量和下载量,从而给予“上传下载比例”高的Peer更好的待遇:积分奖励,更高的下载优先级、带宽等。
不过BT很好地解决了Server的中心化问题,见下表。
基于BT的思想,产生了很多类似的Web 3.0技术,例如电驴(eMule)、PPTV等,也产生了迅雷、VeryCD等我们所熟知的互联网产品。但后来,这些应用都走向了没落。因为随着CDN、网盘等技术的出现和发展,BT主要解决的带宽问题,在Web 2.0的模式下也得到了解决。而BT的Web 3.0特性,如隐私性、可信性等,对于用户来说并不是特别重要。再加上各国对于盗版的严厉打击,BT的市场份额相比其巅峰时期大大缩水。
事实上,由于BT可以工作在Tracker、PT、DHT这3中不同的模式下,所以对应了3种不同的生产关系。它们之间的区别如下:
这些模式的尝试给后来的Web 3.0系统设计带来了一些启发:
1.给节点赋予多种不同的类型,更有利于激发用户的活力。因为不同用户使用系统的目的并不一致。在BT中,有的用户是为了下载数据、有的是分享数据、有的是建立社区。用户需要根据自己的需求选择对应类型的节点进行运行,而完全对等的网络是做不到这点的。
2.给贡献服务的节点以适当的激励,更有利于促使用户为系统作出贡献。如果没有激励机制的存在,一些恶意的节点会不遵守协议,只使用系统但不作出贡献。例如BT中的只下载不上传的情况。
· 数字货币的诞生
2009年比特币的产生给Web 3.0带来了新的一类应用——数字货币。比特币提出的动机是为了建立一套全球化的货币体系和支付网络,这在Client/Server模式下是难以实现的。因为Server的中心化问题,包括数据丢失、隐私保护、可信计算,对于货币和支付应用来说是非常致命的。另外,Server会面临政府的监管,单一中心建立的货币和支付系统很难被全世界所接受。
比特币的设计充分吸取了BT的经验,赋予了节点不同的类型,且给贡献服务的节点以奖励。比特币的节点分全节点和轻节点两种。全节点负责维护服务也可以使用服务。轻节点则只能使用服务。其中全节点又分为普通全节点和矿工,矿工会额外提供算力以换取数字货币作为奖励。
图5:比特币的网络结构(图片来自Mastering Bitcoin)
比特币通过以下方式解决了Server的中心化问题:
比特币的生产关系可以总结为:部分节点提供服务,所有节点使用服务。所有全节点是服务的提供者,负责同步信息、验证信息。其中,矿工是有偿的服务提供者,即提供算力,获得奖励。其他是无偿的服务提供者。所有节点都是服务的使用者:从网络同步交易信息,拥有数字货币后可以发起交易。
在比特币使用日益普及的同时,也面临着一些问题,但随着技术的发展都得到了一定程度的解决。比如,PoW共识面临着能源问题,于是后来PoS共识被提出,并应用在了Qtum等新的区块链系统中。又比如,交易的金额是以明文的形式存储在区块链上的,存在一定的隐私问题。于是zk-SNARK、MimbleWimble等隐私算法被提出,并应用在了ZCash、Grin、Beam等新的区块链系统中。
· 去中心化应用平台
以太坊在比特币之后开启了新的一种Web 3.0模式,我们称之为去中心化应用平台。以太坊在区块链上加入了虚拟机功能,允许用户在链上创建去中心化的应用,也叫做智能合约或DApp。以太坊上的虚拟机叫做EVM,可以使用对应的Solidity语言编写应用。由此,以太坊上诞生了一大批DApp,包括链上代币、收藏游戏、去中心化交易所、预测市场等。
以太坊的生产关系仍然是部分节点提供服务,所有节点使用服务的模式。但是可以使用的服务除了数字货币的转账交易之外,还可以进行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个分类,是为了提供一些常用的底层技术的解决方案。
目前对于Web 3.0应用模式的探索还非常早期。从下图中可以看出,Web 3.0的项目,大多数都在照搬Web 2.0中一些成功的模式,而没有进行太多的思考和创新。很多项目虽然使用了区块链等去中心化技术,但生产关系还是传统的Client/Server模式,以至于往往陷入到了严重的误区中。
误区2: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目前也诞生了信息共享、数字货币、去中心化应用平台这些以前没有过的模式。
4. 对应用平台未来发展的思考
“ 应用平台的完善,才会带来应用的爆发”
曾经Web 2.0的出现,虽然从本质上来看是互联网信息量增加所催生的,但是直接因素还是依靠底层技术的完善,特别是应用平台的完善。
最初,开发者需要使用复杂的MFC、QT等技术开发客户端程序和服务器进行信息交互。随着Chrome浏览器的出现和完善,以及JavaScript浏览器端编程语言的普及,大家才转而构建交互式的网页应用,或称作Web App。最后,进入了移动互联网时代,iOS和Android两大平台占据了主流地位。直到今天,Web 2.0的应用已经稳定地集中在Chrome、iOS、Android三大平台上。
只有当完善的、通用的应用平台出现,而开发者不必再关注网络通信、消息队列等底层技术细节的时候,才能把更多的思考放在应用的设计上,从而带来应用爆发式的出现。以下我们对比了正在开发中的Web 3.0应用平台:
可以看到,虽然Web 3.0应用平台还处于MFC、QT的时代,但众多项目正在努力向着下一阶段演进。从开发环境而言,EVM和WASM等虚拟机的功能十分有限,缺乏IO、文件、进程、线程、异步、Socket、定时任务等操作系统级别的接口,而Linux虚拟机和云的尝试也许会带来转机。从计算性能而言,虽然跨链、侧链技术能一定程度上带来扩展,但是应用仍然无法做到内部并行,而且始终受到单节点性能的限制,因此链下扩容技术更有潜力。从存储性能而言,全局可验证的要求导致了所有的操作、中间状态都记录在区块链上,存储空间过大,正在探索的P2P存储和链下存储值得期待。
基于当前技术发展的趋势,我们认为,去中心化应用平台至少要达到以下要求,才是发展更多Web 3.0应用的基础:
1.既提供可靠的链上计算环境,又提供高性能的链下计算环境。
2.链上计算保证安全、可验证。
3.链下计算允许应用内并发,计算、存储等资源可无限扩展。
其中的技术难度主要在链下计算部分,目前并没有成熟的解决方案。但相信不久的将来,一定会出现。到那个时候,将会开启互联网、区块链和数字货币的下个十年。
免责声明:本文仅代表作者个人观点,不代表 Qtum 量子链基金会立场,不构成任何投资意见。