Web3的组成架构(1):分层结构

深入浅出Web3开发技术Keegan小钢2024-1-23 13:54

Web3 发展至今,生态已然初具雏形,如果将当前阶段的 Web3 生态组成架构抽象出一个鸟瞰图,由下而上可划分为四个层级:区块链网络层、中间件层、应用层、访问层。下面我们来具体看看每一层级都有什么。另外,此章节会涉及到很多项目的名称,因为篇幅原因不会一一进行介绍,有兴趣的可以另外去查阅相关资料进行深入了解。

区块链网络层

最底层是「区块链网络层」,也是 Web3 的基石层,主要由各区块链网络所组成。

组成该层级的区块链网络还不少,Bitcoin、Ethereum、BNB Chain(BSC)、Solana、Polygon、Arbitrum、Polkadot、Cosmos、Celestia、Avalanche、Aptos、Sui 等等,还有很多。根据之前 Blockchain-Comparison 的统计,截止撰文之日的区块链至少有 150 条。这里我们主要说的是公链,联盟链不包括在内。因为区块链实在太多,会有些眼花缭乱,所以有必要进行分门别类。

首先,不同区块链之间存在着分层结构,有 Layer0、Layer1、Layer2 之分。其次,Web3 的繁荣发展,依赖于智能合约技术,而智能合约的运行环境为虚拟机。智能合约和虚拟机的关系,就和 Java 程序和 JVM 的关系类似。从不同的虚拟机维度上划分区块链,就可以分为两大类:EVM 链Non-EVM 链。EVM 是 Ethereum Virtual Machine,即为以太坊虚拟机的简称。EVM 链即为兼容 EVM 的区块链,而 Non-EVM 顾名思义就是不兼容 EVM 的区块链。最后,还可以根据存储的数据大小进行分类,可以分为计算型区块链和存储型区块链。

先从分层结构说起。最好理解的是 Layer1,我们所熟知的比特币、以太坊、EOS、BSC 都属于 Layer1,也称为主链。在分布式系统中,存在 CAP 定理,即一个分布式系统不可能同时满足三个特性:一致性、可用性、分区容错性。一个分布式系统只能满足三项中的两项。Layer1 的区块链本质上也是分布式系统,也同样存在不可能三角问题,只是三个特性与 CAP 不同,分别为:可扩展性、安全性、去中心化,每个区块链也只能满足三项中的两项。比特币和以太坊偏向于安全性和去中心化,所以可扩展性比较弱,TPS 比较低。EOS 和 BSC 则只依赖于少数节点来维护共识,相比于比特币和以太坊,减低了去中心化特性,但提高了可扩展性,从而能达到很高的 TPS。

为了解决比特币和以太坊的可扩展性问题,就慢慢衍生出了 Layer2。Layer2 是作为依附于主链的子链而存在,主要用于承载 Layer1 的交易量,承担执行层的角色,而 Layer1 则可变成结算层,可大大减少交易压力。目前主流的 Layer2 都是扩展以太坊的子链,包括 Arbitrum、Optimism、zkSync、StarkNet、Polygon 等。比特币也有 Layer2,主要包括闪电网络、Stacks、RSK 和 Liquid,但目前都比较小众。

Layer0 则比较抽象了,一般被定义为区块链基础设施服务层,主要由模块化区块链所构成,包括 Celestia、Polkadot、Cosmos 等。模块化区块链这个概念主要是由 Celestia 提出的,其核心设计思路就是把区块链的共识、执行、数据可用性这几个核心模块拆分开来,每个模块由一条单独的链来完成,再将几个模块组合到一起完成全部工作。这和软件架构设计中所提倡的模块化设计思想是一样的,可实现高内聚低耦合。

实现跨链通信的跨链桥或跨链协议也可以划入 Layer0。跨链桥的数量也是非常多,撰写此文时,debridges.com 上统计的跨链桥多达 114 条,其中 TVL 排名最高的三个分别为 Polygon、Arbitrum、Optimism 的官方跨链桥,这几个桥分别实现了各自的 Layer2 和以太坊之间的资产跨链。

聊完分层结构的划分,我们再从 EVM 的维度来梳理下不同的区块链。前面说过,从 EVM 维度上可划分为 EVM 链和 Non-EVM 链两大类。

EVM 链是目前最主流的方向,基于 EVM 链的 DApp 和用户群体是目前整个 Web3 生态里规模最大的。有些原生就是兼容 EVM 的,比如 BSC、Heco、Arbitrum、Optimism 等;有些则是后期才扩展兼容 EVM 的,比如 zkSync 1.0 并不兼容 EVM,而 zkSync 2.0 则是兼容 EVM 的。很多区块链就算早期并不兼容 EVM,但也逐渐在拥抱 EVM。比如,Polkadot 推出了 Moonbeam 平行链来兼容 EVM,Cosmos 则有 Evmos。

目前来看,排名靠前的区块链中,大部分都已经兼容 EVM,不过依然还有少部分 Non-EVM 链存在,比如 Solana、Terra、NEAR、Aptos、Sui。另外,EVM 链的智能合约主要使用 Solidity 作为开发语言,而 Non-EVM 链则主要使用 Rust 或 Move 语言开发智能合约。

以上提到的这些区块链,主要还是偏向于解决去中心化计算的区块链,这些区块链普遍不支持大数据的存储,比如文件存储。而存储型的区块链则聚焦于解决大数据存储的问题,这类区块链目前不太多,主要有 Filecoin、Arweave、Storj、Siacoin 和 EthStorage。

目前组成「区块链网络层」的区块链成员们主要就包括这些了,未来还会不断有新成员加入,但也有不少旧成员逐渐没落而被遗落在角落里。

中间件层

在区块链网络层之上的这一层,我称之为「中间件层」,主要为上层应用提供各种通用服务和功能。所提供的通用服务和功能包括但不限于:安全审计、预言机、索引查询服务、API 服务、数据分析、数据存储、基本的金融服务、数字身份、DAO 治理等。提供通用服务和功能的组件则可称为「中间件」,这些中间件也是存在多种形式,可以是链上协议,也可以是链下平台,或链下组织,包括中心化的企业或去中心化自治组织 DAO。下面就来聊聊这一层具体都有哪些中间件。

先来聊聊安全审计,这是非常核心的中间件,因为 Web3 里的区块链和应用大多都是开源的,且很多都是跟金融强相关,因此,安全性就成为了重中之重,安全审计自然也变成了刚需。安全审计的服务大多由一些安全审计公司所提供,比较知名的审计公司包括:CertiK、OpenZeppelin、ConsenSys、Hacken、Quantstamp,以及国内主要有慢雾、链安、派盾等。另外,还有不少知名度不高的小审计公司。

除了审计公司,还有一些提供 Bug Bounty 的平台,一般就是在这些平台上发布任务,让白帽黑客们来找 Bug,找到的 Bug 安全漏洞等级越高则可获得的赏金越高。目前,全球最大的 Bug Bounty 平台是 Immunefi。

接着,再来聊聊预言机(Oracle Machine,简称 Oracle),在 Web3 生态里也是扮演着非常重要的角色,是区块链系统与外部数据源之间沟通的桥梁,主要实现智能合约与链下真实世界的数据互通。因为区块链网络本身对状态一致性的限制,需要保证每个节点在给定相同输入的情况下必须获得相同的结果,所以区块链被设计成一个封闭系统,只能获取到链内的数据,而无法主动获取外部系统的数据。但很多应用场景中是需要用到外部数据的,这些外部数据就由预言机来提供,这也是目前区块链与外部数据实现互通的唯一途径。

根据预言机所提供的具体功能,目前对预言机的分类大致有:DeFi 预言机、NFT 预言机、SocialFi 预言机、跨链预言机、隐私预言机、信用预言机、去中心化预言机网络。具体的预言机项目有 CreDA、Privy、UMA、Banksea、DOS、NEST、Chainlink 等,其中,Chainlink 为预言机的龙头,其定位为去中心化预言机网络,推出了 Data Feeds、VRF、Keepers、Proof of Reserve、CCIP 等一系列产品和服务。

然后,索引查询服务也是很关键的中间件,解决了链上数据的复杂查询问题。比如要查询 Uniswap 上某一天的总交易量,如果直接在链上查询是很麻烦的。所以就有了对索引查询服务的需求,这块的主要代表为 The Graph 和 Covalent。The Graph 的实现方案主要是可定制化监听链上数据并映射成自定义的数据进行存储,从而方便查询。而 Covalent 则是将很多通用、广泛使用的数据封装成统一的 API 服务,供用户查询。

提到 API 服务,除了 Covalent,还存在解决其他不同需求的 API 提供商,比如:NFTScan,是聚焦于提供 NFT API 数据服务的;Infura 和 Alchemy,则主要提供区块链网络节点服务;API3,旨在打造去中心化 API 服务。

不管是索引查询服务还是 API 服务,都是链上数据相关的服务,数据分析也是数据相关的服务,这一版块的成员主要有 Dune Analytics、Flipside Crypto、DeBank、Chainalysis 等。

数据存储中间件则和底层几个专门做存储的区块链容易混淆,也有人将底层的 Filecoin、Arweave、Storj 等划分到这一层,但我觉得这些本质上还是底层区块链,所以我将其划入到区块链网络层。而中间件层的数据存储,目前主要就是 IPFS。IPFS 全称为 InterPlanetary File System,中文名为星际文件系统,是一个基于内容寻址、分布式、点对点的新型超媒体传输协议,其旨在取代 HTTP 协议。IPFS 与区块链网络很相似,但其实并不属于区块链网络,基于 IPFS 的 Filecoin 才是区块链网络。

接下来,看看有哪些中间件是提供基本金融服务的。这块的代表性组件主要包括 Uniswap、Curve、Compound、Aave 等,Uniswap 和 Curve 提供了链上交易功能,而 Compound 和 Aave 则是链上借贷平台。这几个本质上都是应用层的链上协议,但因为这些协议都逐渐被越来越多其他应用所依赖,类似于成为了乐高积木,可以用来组合搭建出不同的应用,于是就变成了通用性的应用协议,即下沉为了中间件的角色。

其实,任何具有可组合性的组件,不管是链上应用协议,还是链下提供不同服务的中心化实体,或者是 DAO,只要其提供的服务和功能是大部分应用都需要的,就可以划入「中间件层」。不同的中间件就和不同的乐高积木一样,通过组装不同的积木就可以创建出不同的应用。包括数字身份、DAO 治理的工具等,其实也都是同样道理。