我还没有看到 Web3 堆栈的实际图解,所以做了一次尝试。考虑到 Web3 生态系统的扩展程度,我敢说,以下图示肯定不完整,而且可能有一些不准确之处。
我将重点讲讲我从该图中提炼出的一些最有趣的观察结果。
链闻深度:Web3 堆栈全景剖析
核心堆栈 核心开发堆栈到底需要为 DApp 开发人员提供什么?
它必须为有序且有效的交易提供单一、规范的分类账。
P2P、共识和状态转换机器层共同提供这些功能。今天,以太坊和比特币都只执行这些功能,尽管核心的以太坊协议最终将扩展至包括分片。
相对于图表右侧「可选组件」的团队数量,图表左侧这些组件的团队数量较少。从堆栈底部向上,包含了可选组件,不包括互联网协议:
- Oasis Labs 正在构建 Ekiden,这是一个中立平台,允许许多链支持基于可信执行环境 TEE 的非公开链下计算。
- Handshake 正在构建去中心化 DNS。鉴于 DNS 的操作系统默认设置,获得采用将非常困难。
- Monero 正在构建 Kovri,以在节点之间实现保护隐私的数据包路由,从而保证 IP 等级的隐私包括。Kovri 正在建设中,以支持多个多个区块链。
- BloxRoute 正致力于开发一种可以跨各种区块链的区块交付网络。
- 以太坊基金会 创建了 DevP2P,Protocol Labs 创建了 LibP2P。大多数新链在采用这两个框架中的一个,甚至出现了关于以太坊转向 LibP2P 的谣言。
- 以太坊 和 Polkadot 正在开发全状态分片。
有十几个团队在共识层进行实验:
基于领导者的区块链共识
- 比特币和比特币现金 ——ASIC 优化的 PoW
- 以太坊 1.0、门罗币、Zcash、其他 ——抵御 ASIC 的 PoW
- Kadena ——braided POW
- Chia ——空间和时间证明 PoST 和经过时间证明 PoET
- Filecoin ——含有用数据的 PoST
- 以太坊 2.0 ——Casper TFG 权益证明 POS
- 迅雷 ——带有 PoW 的 PoS
- Decred ——混合 PoW/PoS
- Polkadot ——Honeybadger POS
- EOS ——委托股权证明 DPoS
- Tezos ——另一种 DPoS 变体
- Tendermint ——另一种 DPoS 变体
- Solana ——历史证明 PoH
- Dfinity ——阈值中继+概率插槽共识
- Algorand ——与领导人选举签订的拜占庭协议 BA⋆
- 无领导 的区块链共识
- Ripple 共识协议
- Stellar 共识议定书
- Avalanche 共识协议
- 有向无环图 DAG
- Byteball ——Byteball 主链共识
- Hashgraph ——哈希图共识议定
- DAGlabs ——Spectre
- Blink ——Blink 共识协议
- Spacemesh ——委员会选择的 PoST,然后是一种「快速+慢速」结合的共识
一些主要的状态转换机:
- 以太坊虚拟机 EVM——以太坊 1.0、Ethermint、Hashgraph、WANchain 等
- 网络装配虚拟机 WASM—— Dfinity、EOS、Polkadot、Ethereum 2.0
- 直接 LLVM 曝光 ——Cardano、Solana
- 自定义状态转换机
- Kadena
- Tezos
- Rchain
- Coda
这个列表提出了一个问题:相对于核心堆栈的其他层,为什么有那么多团队在共识层上工作?
显而易见的答案是,因为那儿有钱。
这自然会引出又一个问题:为什么所有的价值都在共识层产生?
共识层是区块链中最大的瓶颈,共识方案受到基本权衡的限制。此外,共识方案是互斥的:单一链条不能同时采用两种共识方案。世界领先的协议设计师认识到比特币 PoW 的局限性,并看到了建立庞大的全球数字储备资产的机会,因此可以在一个价值数万亿的市场中理性竞争。
到目前为止,可以顺理成章地得出结论:鉴于可扩展性三难动态,没有人能建立一个提供基本帕累托改进的共识算法。大多数在共识层进行创新的团队基本上都是押注他们为某些用例子集选择了最佳权衡集。
如果一个团队确实提出了代表帕累托改进的机制,我们何以知道呢?一个简单的回答是,对去中心化区块的出产量进行量化。Dfinity、Algorand、Solana 和其他团队认为这是可能的,不过 Vitalik 并不是这么认为。
共识算法是可以复制的。不过,虽然这在技术上是可管理的参见 Cosmos,它支持 EVM,执行 Tendermint 协议,但在政治上可能无法实现,因为很难改变现有链上的共识算法,尤其是在具有紧密耦合的链式治理的系统中。链式治理越紧密联系,就越难以说服根深蒂固的利益改变(你试试说服 21 个 EOS 代表中的任何一个放弃其令人垂涎的地盘,以期建立更加去中心化、且性能不变的体系。这正是以太坊可以放弃 PoW 转向 PoS)的原因,而原生 PoS 链不太可能愿意做出类似规模的变化。
我们正在对核心堆栈的另一层,即状态转换机器层,进行大量实验。没有建立在 WASM 上的团队,往往会对区块链状态转换机器应该做什么、不应该做什么,存在非常针锋相对的看法:
- Kadena 认为智能合约必须是人类可读的。
- Tezos 认为所有智能合约必须经过正式验证。
- Rchain 认为智能合约应该在 DApp 链中同时运行并得到正式验证。
- Coda 认为一切都必须贯穿 SNARK,确保即使很小的节点也可以验证链的完整性,从而在最大限度上保持永久去中心化的可能性。
对状态转换机器层进行观察,最有趣的结果是:
- 许多主要项目已就应用 WASM 达成共识,尽管事实上 WASM 从来无意于被区块链使用;
- Kadena、Tezos、Rchain 和 Coda 正在进行押宝的特质。
因为加密货币中的所有内容都是开源的,所以可以考虑堆栈的每一层的网络效应。例如,EVM 已达到临界量,考虑到为 EVM 构建的工具、开发人员教育、库等,现在它还具有网络效应。这正是为什么许多其他项目,包括 Hashgraph、Cosmos Ethermint、Wanchain、RSK、Blink 等,决定采用 EVM 的原因,尽管以太坊自身倒是很想摆脱 EVM。
在实践中,我对状态转换机器可跨链移植的观点持怀疑态度。就以 EVM 为例,甚至连以太坊基金会都不想保留它。我的感觉是,开发人员通常不喜欢用 Solidity 写代码,他们这么做,只是因为 Solidity 是关于区块生产和开源软件开发的去中心化的以太坊理论。如果我的假设没错,那么采用 EVM 的非以太坊区块链将不会受益于「EVM 的网络效应」。
而 WASM 的情况可能会有所不同。因为大多数主要的加密团队都希望站在构建和维护 WASM 的巨头的肩膀上,可以猜想,或许存在着一种便携式的跨链网络效应,它围绕 WASM 为区块链构建状态转换机。
如果围绕 WASM 的这种网络效应显现出来,那么开发独家状态转换机的团队将难以保持长期竞争力。
扩展的核心堆栈
有一些元素不是、也不应该是底层链的一部分,并且尚未被认为对 DApp 的开发必不可少,但我相信它们将成为开发堆栈的核心组件:
- 许多团队正在建造侧链。比特币中最值得注意的是 Drivechains 和 Liquid 。在以太坊体系中,最重要的是 Plasma 框架内的 SKALE ,以及作为主权 DApp 链的 Cosmos Ethermint 。
- 有许多团队为比特币开发支付通道和状态通道网络,最着名的是 Lightning Labs 和 Blockstream 。在以太坊生态系统中,则有 Raiden 和 Celer 。许多人,尤其是比特币社区内 的人,都认为这是唯一的扩容方法。
- Interledger Protocol ILP 于几个月前完成。相当多的团队正在使用它来实现跨链互操作性。直到最近,包括我在内的大多数开发人员和投资者都没有对 ILP 给予足够的重视。然而,完全可以推测,ILP 将成为 Web3 堆栈中最重要的层。
- 据我所知, The Graph 是唯一一个为以太坊构建去中心化查询层的团队。以前,在以太坊上构建 DApp 的每个团队都必须构建一个专有的索引基础架构。
- BigchainDB、OrbitDB 和 Bluezelle 等许多团队正在构建不可变的结构化数据库 见 Web3 图的右下角 作为去许可的独立链。鉴于使用结构化数据库可以提升性能,观察下开发人员是否会选择原生地使用这些系统,或者像 SKALE 这样的团队是否会将这些开源系统作为 Plasma 链,会很有意思。
- 通常,扩展的核心堆栈相比核心堆栈更加不成熟。基本上这些组件中没有一个以任何有意义的规模生产。因此,DApp 开发人员暂时无法使用这些组件。
随着扩展核心堆栈趋于成熟,我预计 DApp 开发速度将大幅提升。DApp 开发人员原本不应该考虑这些组件旨在解决的任何问题,但是鉴于堆栈的当前状态,他们只能硬着头皮构建自己的堆栈组件,说的好听点,这种做法是低效的。
可选组件 现在存在着各种各样的云 API,从发送电子邮件 Sendgrid 到短信 Twilio 再到地图(谷歌地图),大量「去中心化库」以可选去中心化组件的形式存在。其中每个都可以执行 DApp 开发人员能够选择的一组独特功能。
在这些可选组件服务中,只有少数服务架设在主网上。其中一些例子包括:
Livepeer、0x、Kyber、Storj、Sia、Oraclize 和 Civic 。但是,构建这些组件的大多数团队尚未发布已生产就绪的工具。
这至少部分解释了 DApp 匮乏的现状:没有有用的库,就很难构建有用的 DApp。没有可用的库,每个 DApp 都必须从头构建。
同样有趣的是,大家认识到这些组件中的绝大部分都是为以太坊生态系统而构建的。一些团队,例如 Keep 和 Truebit ,已经公开讨论过支持 Dfinity 作为跨链服务。但是,今天加密生态系统中正在开发的绝大多数基础设施最少会支持 EVM,更宽泛一些的会支持以太坊生态系统。
在接下来的一年里,随着 EOS、Tezos、Kadena、Dfinity、Solana、Tari、Hashgraph 和其他公司推出并打磨他们的区块链,他们要争取赢得建立 DApp 基础设施组件团队的注意力。如今无缝支持跨链开发所需的工具并不存在,因此构建核心链的团队需要竞争,来让这些 DApp 基础设施提供商支持各自的区块链。
如上所述,像 WASM 这样的状态转换机的网络效应可能很大程度上可以跨链进行移植,如果没有任何开发人员的努力,它们不太可能 100% 实现便携。底层链团队是否可以实现基础设施跨链移植,以吸引构建以太坊生态的第一批基础设施开发人员,这一点值得拭目以待。
堆栈的顶部 在大多数堆栈图中,应用程序是堆栈的顶部。但基本上所有加密开发都是以后端为重点,而不是前端。因此,有一些元素存在于 Web3 堆栈中的 DApp 之上。
有趣的是,加密货币圈里几乎没有人在谈论去中心化应用程序的托管。这一点特别让人好奇,因为今天的每一个 DApp 上,这一层都中心化的,要么是因为托管应用程序的网络服务器是中心化的,要以是因为有一个下载链接来下载应用程序并将其安装在客户端设备上,这将生态系统推回到带围墙的花园 walled-garden 模型,该模型是中心化的。在理想的世界中,应用程序主机可以既能去中心化、又能实现实时传递。