# Hello Web3

By [0xLin](https://paragraph.com/@0xlin) · 2022-01-25

---

_“…每次技术革命都是被当作一次震荡被社会接受的。它在扩散过程中会遇到人们和制度的强大抵抗。因此，技术革命在财富创造潜力上的充分展开，最初总会产生相当混乱而且矛盾的社会后果，此后则需要一次重大的社会重组。这不仅包括改变那些影响所有市场和经济活动的调节框架，重新设计成整整一系列制度——包括政府、金融管制以及教育，而且包括对社会行为和观念进行修正。正是由于重塑了与技术革命潜力相适应的环境，“黄金时代”才得以出现。”——《技术革命与金融资本》_

Web3.0时代的开端
-----------

相信不少朋友在近期都会听到一个词语：「Web3.0」，特别是在元宇宙的浪潮下，Web3.0已越来越多地被业界所提及，据谷歌趋势数据显示，截止至2022年1月，“web3”一词在最近3个月的全球搜索量更是有着呈指数级上升的趋势。

![ web3谷歌搜索趋势](https://storage.googleapis.com/papyrus_images/3c5b340413014ee13d5372e2d48b20b77ebe8c35fb900c68addb2f221300f2df.png)

web3谷歌搜索趋势

我们必须承认的是，Web3.0的轮廓从目前来看依旧处于模糊状态，对Web3.0的定义也还未完全得到传统互联网的认可——围绕这一话题曾出现过许多不同观点的探讨甚至是争议。此外，Web2.0巨头们对Web3.0的到来似乎也并未感到压力。但可以很明确的说，我们已悄然处于Web3.0时代的开端，并且它几乎以一种不可逆的趋势向我们加速走来。

前Web3.0时代
---------

早在1989年 Tim Berners-Lee 提出万维网概念至今，互联网产业便已经历过Web1.0与Web2.0两个惊涛骇浪的时代，所以想要更加全面的了解什么是Web3.0，我想需要让我们先回顾和梳理下「前Web3.0时代」。

简单来说，Web1.0通常指的是第一代互联网，它通过TCP、IP、SMTP 和 HTTP等数据传输协议，将互联网世界中的独立计算机进行相互连接，很大程度上降低了信息交换的成本，它以早期的门户、搜索网站、个人博客等为代表，主要特点是网络平台单向地向用户提供内容，这个阶段的用户只能被动地接收网络传递的内容，无法参与到网络中。

![Web1.0 时代的协议 ](https://storage.googleapis.com/papyrus_images/9004eb9592124647308f3de38dbe1c83e4d2e571979c800dbe57d751660f8cd1.png)

Web1.0 时代的协议

接下来是Web2.0时代，其实在Web2.0概念被提出来时，还并没有Web1.0的说法。Web2.0是由 Darcy DiNucci 于1999年发明，后来在2004年底的 O'Reilly Media Web2.0大会上由 Tim O'Reilly 和 Dale Dougherty 推广，Web2.0才更被大家所接受。而为了区分，便把之前的网络发展时期称为Web1.0。

Web2.0时代，用户不再是内容的被动接收者，而是可以在网络平台创建自己的内容（包括文字、图片、视频等等），并和网络上其它用户进行交互。在这一阶段，互联网从单向传播变成了双向或多向互动。

也因此，Web2.0时代爆发出了如Google、Amazon、Facebook等巨头企业，这些科技巨头当前已成为我们在互联网上所赖以生存的新中介和看门人，涉及社交、购物、娱乐等不同领域，让信息、商品和服务的生产者和消费者之间的联系更加紧密。简而言之，Web2.0 更注重用户的交互，用户既是网站内容的浏览者，也是网站内容的制造者。内容互联网的产品模式，由单纯的「读」向「写」以及「共同建设」发展，即Web2.0从 Web1.0 的「只读」升级到 「可读-可交互」。

但需要警惕的是，我们不得不被迫信任这些科技巨头编写的不透明代码和所维护的中心服务器。——关于Web2.0的弊端，我会在下面更加详尽地展开，不在此赘述。

![Web2.0时代 ](https://storage.googleapis.com/papyrus_images/4bfd2b74ea4713b42c64743e43700d21b367a0992153d0b000423db532370ff9.png)

Web2.0时代

什么是Web3.0？
----------

虽然Web3.0在近期才开始被越来越多人关注，但早在2011年左右，万维网之父 Tim Berners-Lee 便提出了Web3.0的概念，它将其定义为：Semantic network （语义网络），感兴趣的可以看该出处：[Detail History of web 1.0 to 3.0](https://www2.slideshare.net/ghazalhina/detail-history-of-web-10-to-30)

![Web3.0 语义网络](https://storage.googleapis.com/papyrus_images/9bdceb1e68e3791952e8a2be43c65d98be626a4347362ab30676c7c8144c1f35.png)

Web3.0 语义网络

语义网络，可简单理解为「机器语言网络」。即机器互联互通之后形成一个系统（一般意义上理解为软件系统），这个系统中的机器设备能够交流互动，对信息分类。因此，基于机器语言的定义，语义网络一般与AI（人工智能）、IoT（物联网）等关联在一起，但如果从日常的交易机制、事务以及我们的日常生活都会由机器与机器之间的沟通来处理，即「机器智能代理」的角度来看，这又似乎与「智能合约」的概念不谋而合——智能合约更多代指区块链上的自动化执行程序。

时间来到2014年，由以太坊联合创始人、波卡创始人、Web3基金会创始人 Gavin Wood 进一步提出了当前更加主流的Web3.0的概念。他认为 Web3 是一组包容性协议，可以让互联网更加去中心化、可验证和安全。Web3 的愿景是实现无服务器、去中心化的互联网，即用户掌握自己的身份ID、数据。随着 Web3 概念不断被普及，内容由用户创造，数据归用户所有，平台通过用户行为和内容获得的收益，同样应该分给用户的概念深入人心。感兴趣的可以看该出处：[ĐApps: What Web 3.0 Looks Like](http://gavwood.com/dappsweb3.html)

由以上的定义我们不难推敲出，Web3.0 基于无服务器、去中心化的网络，在Web2.0的基础上加入了信任的、可验证的机制，用户不再受限于科技巨头们的“控制”。即Web3.0从Web2.0的 「可读-可交互」跃迁到「可读-可交互-可拥有」。

![从内容消费者和生产者之间的交互看 Web 1.0、2.0 和 3.0](https://storage.googleapis.com/papyrus_images/5836b71562c866cb4b142f4f19199835de6ad77e1fa7e7cdef924d59651d747a.png)

从内容消费者和生产者之间的交互看 Web 1.0、2.0 和 3.0

Web2.0的局限性
----------

回顾互联网从Web1.0到Web2.0的演进，一切似乎都朝着用户体验越来越好的方向发展，事实也的确如此，那为何还要另辟蹊径的创造出Web3.0呢？因为从技术的底层逻辑来看我更偏向于Web3.0相较于Web2.0是一种破坏性创新与技术跃迁，而不仅仅只是在Web2.0的基础上做技术更新。

尽管此时Web3.0还处于早期阶段，但被历史所选择时，是否可以认为，Web3.0必定有着Web2.0所无法解决的问题和得天独厚的优势？答案几乎显而易见，下面我将试着从用户和企业两个角度来分析Web2.0世界下所面临的局限性。

### 用户：Web2.0架构所带来的弊端

Web2.0的世界里，我们仍采用着Client-Server这样的架构模型，用户数据在互联网巨头的服务器上集中存储和管理。即当你在Web2.0的某个平台上注册你的账号且打勾了《服务协议》和《隐私条款》时，便意味着后续你在该平台的一切行为产生的数据都存储在该平台的中心服务器上，且你的数据归属平台所有。

![Client-Server模型](https://storage.googleapis.com/papyrus_images/9319336d02e7734967394cdc4b1bed9d5c7ce318b7be153fea3a6ab215a300a3.png)

Client-Server模型

对用户来讲，这带来了以下几个弊端：

> **数据信任和安全问题**

当Web2.0 产生的数据在服务器端集中管理时，便难免存在着安全隐患。一切都可归因为天灾人祸：黑客的入侵或监守自盗、中心服务器的损毁、企业倒闭后的数据销毁等。以安全为例，当黑客试图非法操作着你所使用的平台的背后服务器集群，就好像试图闯进一座房屋，房屋的防盗门会阻拦黑客，警报系统也会发出警报。但即使房屋围墙再坚固、警报系统再灵敏，只要黑客够高明，或存在监守自盗，这座房屋便还是很容易被攻破，此时你的数据便存在着隐私问题。因此，互联网公司常常发生着服务器被非法入侵、数据泄露等事故。「社工库」便是数据隐私问题的典型。

当然，有攻就有守，Web2.0发展至今，也同样伴随着一系列技术升级和相应监管机制的完善，如引入隐私计算，通过同态加密、多方安全计算、可信执行环境等技术，保证数据在使用过程中是明文不可见的；如在服务器层面引入多机房部署与冷备；如在监管层面引入用户数据保护条例等。但我个人认为这些手段依然未从根本性上解决问题。

> **经济模型的不对等**

从前面描述的Web2.0架构模型来看，我们的数据虽然有价值，但实际上并不属于我们，而是完全归属于企业，且可以被任意使用和变现。其实，就我所知的大部分Web2.0的企业平台或应用，每一个都在无所不用其极的锁住用户，提高粘性和留存，把用户和数据的护城河建立起来，并从中榨取最大的价值。

因此，在Web2.0的世界里，我们的数据不但不属于我们，连数据所产生的价值也不会分给我们。—— 当然，数据的价值归归属方所有在商业逻辑上也无可指摘。但我们依然可以说，Web2.0时代，以互联网巨头为核心，形成着一个个生态圈，并“统治”着生态，垄断着生态的数据、价值和网络效应。——但不得不说，这与世风日下、人心不古无关，这是自由市场竞争、员工实现股东利益最大化的正常行为逻辑产生的必然结果。

此外，作为互联网的垄断型平台，“收割”的不仅是平台使用用户，还同时“收割”着产品的生产者或服务的提供者。这其实是一种寻租行为，即平台在没有从事生产的情况下，为垄断社会资源或维持垄断地位，从而得到垄断利润（亦即经济租）所从事的一种非生产性寻利活动。以国内某打车平台为例，它同时服务着乘客用户和网约车司机，我们的数据都由该平台所掌握和所属，并几乎垄断着国内市场份额。基于该背景，员工们为公司股东赚钱这一原则下会尽可能地提高网约车的费用，并压低司机的分成，以此实现利润最大化。正是由于垄断平台持续地寻租，获取的收益分配比重才越来越大。这也是为什么越来越多人都开始意识到，滥用垄断优势、不正当牟利已逐渐成为互联网平台的常态，Gavin Wood甚至感叹：今天的互联网在设计上就是坏掉的。

面对以上的问题，Web2.0世界同样也在尝试着升级或者改革。如越来越多的平台开始呼吁“用户第一”，以国内某巨头企业为例，其作为垄断型平台企业，已把“用户第一、员工第二、股东第三”作为价值观的第一条，这是一次不小的变革。但在当前商业环境下，能否真正实现并长期坚持，有待未来证实。再比如行业监管的力度也再进一步地增强：据近些年的数据显示，欧盟及欧盟各国对Google的罚款，总额已经超过100亿欧元。但同样的，我个人认为以上措施依然未从根本性上解决问题。

> **用户数据的不互通**

我们前面提到，用户产生数据，企业则把用户和数据的护城河建立起来，并从中产生价值。这其实促使着各个企业有着把数据建立起壁垒的动力，即数据闭源。

于是我们能够看到，在Web2.0的世界里，我们在每个网站上使用一个新的产品时，都要不厌其烦的走一遍手机号/邮箱/用户+密码/验证码的流程，然后往往不怎么用的产品第二次使用的时候还要再点击找回密码，这间接的降低了互联网用户的使用体验。近期就我所发生的一件事让我对数据的不互通所带来的感受更为颇深，因为我过往的电子支付行为几乎都在支付宝上，因此支付宝可以利用一套非常丰富的算法且根据我的一系列行为数据来衡量我的信用分（目前给到我的芝麻信用分已在750分以上）， 但我在近期又尝试开通了微信支付分，由于我在支付宝产生的数据因为商业壁垒不会也不允许共享给微信，等于我在微信的支付行为几乎为0， 因此微信支付只能给我设置了初始的650+分（当然两者的衡量算法和分数体系并不一致，但并不影响我想表达的意思）。

说到数据互通的作用性，互联网巨头们也早已明白，特别是加上大数据赋能的情况。于是最近几年，我们几乎可以看见巨头们正在加速并购各种垂类应用，以此建立起自己完整的生态圈，然后利用大数据的力量使数据价值更大化。我们不妨思考一个问题：企业平台应该如何做到广告的精准推送？方法有非常多，但其中一定绕不开用户画像的建设与完善。举个例子：也许有一天我们在某个视频网站上搜索关于“如何防止脱发”的科普视频，此时我们的用户画像可能就已经被动的被打上了“脱发”的属性，未来的某一天当我们打开购物网站时，赫然眼前的就很有可能是一则“植发”广告或“防脱发”药水。这其实是老生常谈的话题，相信大多数朋友也早已知晓和习以为然。

但我想引出我要表达的意思：Web2.0的数据互通依然受限于企业的生态圈，且中心化，当我们换到其他生态圈时互通的那条数据线就已经被无形掐断。因此，只要存在着商业壁垒，就无法真正做到用户身份、数据的互通，这就如最近常说的元宇宙的概念，我个人认为被科技巨头控制的元宇宙，不是真正的元宇宙，真正的元宇宙最终需要实现跨链互通、身份互认、价值共享，它不属于任何一家科技巨头，而是属于每一个人。

### 企业：Web2.0的流量见顶

Web1.0至Web2.0时代，我们常提及「流量」一词——流量从供给不足（互联网刚出现）再到市场争夺流量入口（互联网普及），进而实现流量变现。可以笼统的说Web2.0是流量为王的时代。

拥有着用户流量的平台同时控制着用户的行为数据，建立起属于平台的护城河，以此享有对应的市场红利。但从近两年的趋势来看，Web2.0的世界里不仅早已过了流量井喷的时代，在人口增速下降和互联网渗透率已提高到一定程度的宏观因素下，更面临着流量逐渐见顶的不可逆趋势。

实际上也确实如此，根据艾瑞咨询联合华为发布的《2021互联网行业挑战与机遇白皮书》，流量的增长乏力是全球互联网的共同特点，传统“砸钱铺规模”的流量获取思路捉襟见肘。截至2021年3月31日，全球互联网用户数量达到51.69亿人，全球占总人口的72.3%。这点在发达国家表现更为明显，截至2021年3月31日，北美地区互联网渗透率最高，达到93.9%，其次为欧洲地区，互联网渗透率为88.2%。流量见顶几乎板上钉钉。

流量见顶和流量获取成本越来越大的趋势下，各大企业便需要开辟新的战场，市场从海内触及至海外，终端从2C到2B或2T，云原生、AI、大数据等进行技术升级，无不都在改善这个问题。当然，从Web2.0至Web3.0，我认为也是一种甚至是更有效的方式，至少目前从个人创作者、社区、中小型企业来说是。——已越来越多的创作者、社区等在Web3.0构建自己的世界并取得成功。

![全球互联网用户数量](https://storage.googleapis.com/papyrus_images/4d6cce2b8aca0e979bf3cd9b691e20e0e25ccdf6e2eb42dac1d34f2c420832e7.png)

全球互联网用户数量

Web3.0的价值体现
-----------

Web3.0常被人称为“后端革命”，主因是它利用了区块链技术重新定义了互联网后端的连接方式，这项技术彻底改变了互联网的数据存储和管理方式，最终打造出更加去中心化、受信任、可验证和安全的网络。

前面讲到Web2.0的局限性时从用户层面阐述了三个问题，即：数据信任和安全问题、经济模型的不对等、用户数据的不互通。那么回到Web3.0，正是由于其利用了区块链技术升级出新的数据结构和模式，较好的解决了Web2.0中较难甚至无法解决的问题：

> **用户数据受信任和隐私保护**

区块链的设计方式是分散式的，服务器不再是一座坚固的房屋，而是散布在全球各地的众多的房屋。每间房屋，都有自己的围墙和警报系统来保护数据。如果你是一名黑客，此时你需要同时闯入全球多个房屋，每个房屋都有自己的围栏和警报系统，这才能突破它们。这是可能的，但相比Web2.0来说所花的代价将变得非常昂贵。正因为这种数据结构的升级，必然使用户数据相比Web2.0得到更好的保护。

同时，基于数据权益通证化、数据确权与授权的区块链技术，用户数据的隐私也相比Web2.0将得到更好的保护。在Web3.0中，用户的所有数据归用户自己所有，因此在没有得到用户授权之前，使用者无权使用。

最后，Web3.0的世界中，随着应用的去中心化，链上数据可查的情况下，用户行为、产生的数据乃至应用协议同样需得到隐私保护。隐私保护是多方面的，包括基础区块链平台隐私保护、存储数据隐私（分布式存储）、用户私钥管理、匿名协议等多方面。

> **经济模型更对等**

在Web3.0，链上数据属于每个人，同时又对每个人或组织可读，大家都可以对这些数据进行价值捕获，价值的分配方式其实已被重塑。本质上Web3.0是去中介化的、去平台经济的、或降低平台在双边市场中对价值定位和商业策略的影响的。这种机制可以让使用者群体之间实现直接交易/交互，共同创造着价值和网络效应。但不可否认，只要存在用户之间的交易/交互，在商业的正常运转逻辑下双边或多边平台必然产生，但与现有Web2.0平台不同的是，Web3.0的平台不是由企业运营，而是由众多相互独立的实体组成的社区共同维护运营，它不受单一实体或少数实体组成的利益同盟控制。

同时，Web3.0的平台由于内置了激励机制，根据社区规则向参与者分发加密通证。参与者对平台增长贡献越大，分到的通证越多。通证价值随着平台经济规模增长，参与者群体共同创造价值、分享收益。可见，Web3.0的世界是平台组织方式和分配方式的革命，对传统平台构成降维打击。

> **数据的互通性**

在Web3.0中，平台或应用将打破Web2.0的生态圈界限，应用之间的复合性、组合性将不受限制，用户在Web3.0世界将以开放的姿态驰骋，同时在隐私得到充分保护的情况下充分发挥着创造力。另外，Web3.0内部基于不同基础设施的应用之间可以被「跨链」协议解决互联互通。因此，用户在Web3.0世界多个应用的行为可以生产类似社交关系图谱，进一步提升数据价值的挖掘潜力。这也意味着你可以穿梭在任何一个世界里面，用同一个套账号地址体系，资产和数据全部共享。而且，游戏/金融/社交/电商任何类型的应用都可以无缝融入这个世界。这带来的想象空间将是巨大的，也是元宇宙甚至多元宇宙的实现基础。

数据的互通性，目前已有的最直接的案例就是所谓「DeFi Lego」，任何应用都可以对底层基础协议（如DEX）做调用或聚合，以及合成资产平台将现实世界资产映射到链上（无交割关系），这等于打破了所谓线上线下和虚拟与现实的界限。

截止目前，Web3.0的生态图景其实已经涵盖游戏、社交、金融、内容平台等领域。

![Web3.0的生态图景](https://storage.googleapis.com/papyrus_images/631f87c30aecebfb4a12fd46e8ee9cc01e6f46a22e6b720e2422191c7db120c5.png)

Web3.0的生态图景

通过上述的描述，似乎还无法很好的勾勒出Web3.0世界的模样，我们不妨再畅想下未来的世界应该是什么样的：

    早上醒来，我用DID（Web3.0世界用户登录行为依靠去中心化身份：DID （Decentralized IDentity））登录到了WOW的世界中并游玩起来，当我与队友经历了数小时的配合后共同推倒了BOSS，因此，我获得了一件不错的装备，但可惜这件装备并不是我想要的且我暂时还不缺游戏里的流动资金，于是我将这件装备挂到了NFT交易平台上进行拍卖，不久的某一天，我成功出售并赚取了我在Web3.0世界中的一笔Token（资产），在得到这笔Token后我正好看到了这个平台上挂着一件我想要的头像NFT，于是我拿出一部分Token毫不犹豫的把这个NFT拍了下来，拍下后的不久Twitter便给我发了个通知，内容大致是能否将我的Twitter头像更新成最新的NFT头像，于是我同样用同一套身份认证体系登录到了Twitter，在我的授权和许可下，我的头像被成功替换。当我在关闭Twitter平台之前看到我的一位好朋友发了一条令人激动的推文，于是我点赞了它，与以往不同的是，这个点赞的动作同时意味着我的这位朋友将收获Twitter平台发的一枚Token。 
    

我们可以看到，在Web3.0的时代，你可以穿梭在任何一个世界里，用同一套账号地址体系，资产和数据全部共享，并且不只是游戏，金融/社交/电商任何类型的应用都可以无缝融入到这个世界，且你在Web3.0使用任何一个应用的时候，不是从零开始，而是带着你的地址画像和标签在每一个应用里行走，价值的载体是你的数据，也属于你自己。Web3.0时代，可以勾划出只属于你的异常丰富的用户画像和行为模式。

web3.0的不确定性
-----------

前面我们提到Web3.0相较于Web2.0的进步，但web3.0的世界同样面临着一些不确定性，我将列出我认为最大的两个点来展开阐述。

> **Web3.0的去中心化是基石也是绊脚石？**

谈及Web3.0，最直接的印象非「去中心化」莫属，而且似乎倾向于认为去中心化程度越高越好。如果将这个叙事逻辑套在比特币这样的「资产类项目」之上是毋庸置疑的，但如果将这样的逻辑放在「应用类项目」上似乎又难以契合市场预期，因为一味去中心化的结果必然带来用户体验的下降。

这个现象可以通过三元悖论来解释，在分布式领域有个著名的 CAP 定理：分布式系统无法同时确保一致性（Consistency）、可用性（Availability）和分区容忍性（Partition），设计中需要弱化对某个特性的需求。因此CAP 原理认为，分布式系统最多只能保证三项特性中的两项特性。同样的，Web3.0中利用到的区块链技术也存在三元悖论，即“不可能三角”，指的是去中心化（Decentralization）、可扩展性（Scability）、安全性（Security）这三项要求无法同时满足，必须有所取舍。

因此我们不得不面临一个问题，如果Web3.0的确是未来需要承载十亿级别用户且体验也符合用户心理预期的方向，那以众多应用类项目需要性能（可扩展性）来保证用户体验的前提下，在“不可能三角”面前，Web3.0的发展路径是否需要从「去中心化」向「高性能」让步？事实上，区块链领域也确实有不少通过牺牲一些去中心化来提高性能的尝试，比如比特币的闪电网络、以太坊的分片技术、Layer 2方案等。但不管怎么样，我始终认为，Web3.0应该在安全、公开透明、公平这些必要因素中寻找平衡才能谋求市场最大化，也即才符合Web3.0的精神。

> **Web3.0时代的自由与监管该如何平衡？**

Web3.0的核心之一是DAO（全称是“去中心化自治组织，Decentralized Autonomous Organization”）带来的权力下放，公开透明的计算机代码是DAO的精神内核，完全受区块链保护的交易记录与程序规则是DAO的灵魂所在，一币一票完全受控于股东是DAO的最终诉求。在这些内核下，DAO成了完全自治的乌托邦代名词。但是，完全的权力下放真的能够成就Web3.0吗？

我个人对于这种方式还是持怀疑和悲观的态度，至少从目前的良好运作的社会组织结构来看，99%的决策应该来自一个有远见的领导团队、顶尖的专业团队、核心的开发社区，而不是完全的社区治理和权力下放。

此外，理想的DAO似乎并不能解决所有问题，往往在需要仲裁、追讨被盗资产等问题发生后，通过引入社会政府机构和监管机构来寻求帮助。DAO本身就有其局限性。由此我们可以设想， DAO的治理，似乎少不了现实社会监管机构的参与？监管又如何在Web3.0开放、包容、隐私和共建的背景下得到平衡呢？

总之，Web3.0带来的监管挑战无疑是巨大的，但毫无疑问，由于Web3.0应用业务模式的巨大革新，监管方式势必会产生大的变化以适应新事物的发展业态。

Web3.0的架构
---------

作为用户，在互联网上使用着Web2.0或Web3.0的应用时，展现在我们眼前的往往只是应用的前端，我们似乎很难窥探到应用背后究竟是如何实现的。应用架构中的每一个组件其实都决定着应用的底层属性，若想真的理解 Web2.0 与 Web3.0 应用之间的本质差异，我们似乎可以从应用的架构入手。正好近期读到一篇a16z前合伙人写得Web3.0应用架构的文章：[The Architecture of a Web 3.0 application](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application?ref=tokendaily)，也结合我自身的认知，想尝试着从架构层面去解剖Web3.0。

想要真正了解Web3.0的架构，我想还是需要先从Web2.0的架构开始。前面讲到Web2.0的通用架构是Client-Server模式。Client-Server模式可简单理解为互联网用户使用浏览器或客户端界面通过网络与Web server交互的模式。于是，当我们在某个网站上想写一篇博客并发布到互联网上时，你首先需要利用浏览器输入该网站的域名，并通过DNS指向真正的你想与之交互的Web server。此时你将与它的前端（Front-end）交互——在界面输入框中输入你的博客内容，前端和后端（Back-end）交互——前端在点下保存按钮后将博客内容传输至后端，后端再与它的数据库（Database）交互——后端将博客内容保存至数据库。所有这些代码都托管在中心化服务器上，并通过互联网浏览器发送给用户。这便是当今大多数Web2.0应用的基础架构：

![](https://storage.googleapis.com/papyrus_images/7c70fa1963ef0d161567959e2f3565e789e87741125e9054891f3fda2d0228e5.png)

现在，区块链技术为 Web 3.0 应用开启了令人兴奋的新方向，与Web2.0 应用不同，Web3.0 去除了中间层，Web server只保留了前端部分，这中间没有了中心化服务器用于存储后端逻辑，也没有了存储应用程序状态的中心化数据库，而是换成了由区块链（此处用以太坊为例）构建的去中心化的各个服务节点。更重要的是，没有单一实体控制这个去中心化的状态机，它由网络中的每个人共同维护。而我们的应用程序逻辑，则是由我们编写的智能合约来定义。 有关区块链和智能合约的更多知识，不在此展开阐述，建议感兴趣的朋友可以关注下比特币白皮书：[A Peer-to-Peer Electronic Cash System](https://bitcoin.org/bitcoin.pdf)与以太坊白皮书：[Ethereum Whitepaper](https://ethereum.org/zh/whitepaper/)。

![](https://storage.googleapis.com/papyrus_images/be5369203b5ed277a87cd59b4ca9feed592c4b3c8f4d694705311fde87dcc403.png)

Web3.0的架构远不止如此，让我们更进一步，当Web3.0的应用程序逻辑换成了由区块链构建的去中心化的各个服务节点时，架构模型则变成了前端和区块链上的数据和代码进行交互，即意味着我们要和区块链中的某一节点进行通信。因为任何节点都可以广播在以太坊虚拟机上进行交易的请求，此时我们需要想办法部署节点。 有两种方式： 1． 自己设立一个运行以太坊程序的节点 2． 使用 [Infura](https://infura.io/) 或者 [Alchemy](https://www.alchemy.com/) 第三方提供的节点 我们默认使用第三方节点，因为它能让我们免去自己运行全节点所带来的麻烦，原因不在此展开。每个以太坊客户端（Provider）实行 JSON-RPC 规范，这确保了前端应用程序想要与区块链交互时有一组统一的方法。此时Web3.0的架构变成了下图所示：

![](https://storage.googleapis.com/papyrus_images/563a4523c11ae34bc6d8ce96fce0382c8a48056fd93499f3a86c3cb21766e76e.png)

当我们通过以太坊客户端连接到区块链后，就已经可以读取存储在区块链上的状态。但是，如果我们想写入状态，则需要将在写入内容提交到区块链之前，使用我们的私钥对写入内容进行「签名」。

举个例子，假设我们运行了一个 Web3.0的应用，它可以让用户阅读或发布博客文章到区块链，同时它在前端设置了一个按钮，允许任何人查询特定用户撰写的博客文章。此时，阅读区块链中的文章并不需要我们对交易进行签名。但是，当我们想要在区块链上发布新的文章时，Web3.0应用会要求我们使用他们的私钥「签署」交易，只有这样Web3.0应用才会将交易传播到区块链上，而签署交易这个环节通常是需要使用 [Metamask（小狐狸）](https://metamask.io/)这样的签名者工具。此时Web3.0的架构又变成了下图所示：

![](https://storage.googleapis.com/papyrus_images/e28065c3c4a52779cf8155a1413e968de24dcd9a2bff958898d2e94e4df1c8e0.png)

此时，我们已经在以太坊上搭建了我们的应用程序，并能够与之交互，但是有一个问题，在区块链上存储数据虽然快捷，但价格也不菲。——我们每次在以太坊上添加新数据时都要付费给维护节点的矿工。所以，如果Web3.0应用每次在用户需要添加新状态时，都要求他们支付额外费用的话，那么用户体验是极差的。为了解决这一问题，于是我们引入了使用去中心化链下存储的方案，如 IPFS 或 Swarm。关于更多的去中心化存储方案知识，建议可以直接参考[IPFS使用文档](https://docs.ipfs.io/)或[Swarm使用文档](https://docs.ethswarm.org/docs/)。

所以现在，有了 IPFS 或 Swarm，我们的应用架构变成了这样：

![](https://storage.googleapis.com/papyrus_images/1ca35c5665773f28742153020c147c8436f77d9b374a19909e4c7d18078fdca1.png)

而如果我们需要搭建一个真正的去中心化应用程序，我们同样需要把Web server中的前端代码存储在IPFS或Swarm，所以我们的应用架构又变成了这样：

![](https://storage.googleapis.com/papyrus_images/7b6ee60f468133de12af03f4c0667fcf160d5b13050f3373dd0fae14f2b997cb.png)

到目前为止，我们已经探讨了如何通过签署交易并将它们发送到区块链上来完成交易的写入。但从区块链上的智能合约中读取数据又该如何操作呢？这时就该让「The Graph」上场了，The Graph 是一个链下数据索引方案，可以方便我们在以太坊上查询数据。在 The Graph 中，你既可以定义哪些智能合约需要索引、哪些事件与函数调用需要监听，也可以规定如何将传入的事件转化为前端逻辑（或任何正使用 API 的程序）可处理的实体。它使用 GraphQL 作为查询语言，与传统的 REST API 相比，它能传达更多信息。

同样的关于更多的链下数据索引方案，建议可以直接参考[The Graph使用文档](https://thegraph.com/docs/en/)。

至此，我们的应用架构大概是这样：

![](https://storage.googleapis.com/papyrus_images/501b9430ff331cf9520405663422689c1a9a0cf07039f445d8a3004dbbfeb18a.png)

我们还需要解决最后一个问题，即性能（可扩展性）问题。我们在前面章节提到，区块链因为去中心化的机制而导致处理性能下降，这必将导致用户在Web3.0应用中的体验严重降低，为了解决这个问题，我们引入的Layer 2方案，目前主流的L2方案有[Polygon](https://polygon.technology/)、[Optimistic Rollups 和 zkRollups](https://ethereum.org/en/developers/docs/scaling/layer-2-rollups)等。

至于什么是Layer 2方案，简而言之，Polygon、Optimistic Rollups、zkRollups等都属于以太坊的「侧链」，而每次用户在状态变更的行为都均由「侧链」而非主链来完成，每隔一段时间，侧链就会将其最近的区块聚合起来提交给主链，即某种意义上的批量操作。

![](https://storage.googleapis.com/papyrus_images/faa2bc0871fabc2e967fa2c1f62c239f4413e50a95529da2c722e1c6c1aab671.png)

于是，我们的Web3.0应用构建好了！它的最终架构长这样：

![](https://storage.googleapis.com/papyrus_images/b039df958213875c2c11078cca8db78540692626f0bf7034e68ab984609c6924.png)

面向web3可能的未来
-----------

当我在刚接触区块链技术并尝试着去理解它时，曾通过类似MetaMask的工具创建过自己的钱包，当时我的第一印象是，通过私钥和助记词的方式实在是太影响用户体验了。但如今，我似乎开始觉得影响用户体验的反而是我在Web2.0世界中时使用的每个应用都需要独立的账号体系这一设定。如果不是1password，我找回密码的邮件一定要收到成百上千次。看，Web3.0的世界似乎已开始向我招手！

但需要让我们保持清醒的是，Web3.0的世界又的确还处于萌芽阶段。—— 当前Web2.0应用的用户体验比Web3.0好太多，可谓降维打击。我个人倾向于Web3.0要想真正走向用户，一定要在界面、交互等表现形态上跟Web2.0的区别并不明显，甚至看不出什么区别。

在用户体验上除了要接近Web2.0甚至超越Web2.0外，Web3.0的未来到底又将给我们带来什么呢？我最近就这个问题与大多数已投身至Web3.0的用户或从业者做过一些探讨，他们给出的答案多数是元宇宙。但元宇宙这个概念太大了，除了用Web3.0来构建外，它还常涉猎到虚拟现实、数字孪生、硬件终端等领域，实在是超出了我的知识范畴。

为此，我仅以我的个人见识来预测一个Web3.0可能能带给我们的未来，即未来将会弱化公司、企业的概念，个人用户或创造者将隶属于某一个或多个社区并在有限的生命内为之贡献着自己的价值。

讲到这里，由衷的希望你已通过这篇文章对Web3.0的概念有了了解并甚至开始喜欢上它。如果你想作为普通用户的身份接触到Web3.0，那么去寻找并加入到你喜欢的社区吧！如果你想作为内容创作者、开发者、运营者等等身份加入到Web3.0的世界，也同样的行动起来吧！

总之，Web3.0的可能性是无穷的，而这只是开端，让我们一起向他招手，并等候着他向我们走来吧！

---

*Originally published on [0xLin](https://paragraph.com/@0xlin/hello-web3)*
