区块链计算没有阶段进化 只有栈层区别

去年我写了一篇文章,《区块链计算的 4 个进化阶段》,将可组合性(Composibility)(即像乐高积木那样来搭建软件的属性)视为区块链的杀手锏。最近,我的想法又改变了,下面就是我理解这个生态的新角度。

与其划分出区块链计算的不同进化阶段,一个更好的角度是计算的栈层。这种角度强调了多样的架构趋向专业化并产生出动态、有用的栈层的历程。

这一模型借鉴自互联网栈层自身的演化:一种像多层蛋糕一样的协议和语言,迄今仍在不断发展(虽然现在演化速度很慢了),组成了文件传输、email、网站等等服务,并提供了真正让人惊叹、动态变化而又无缝转换的用户体验。

虽然 IP 是在一系列主观设想更多、功能也更丰富的协议中诞生的,但也有人认为,它之所以能够胜出,是胜在简洁性,以及 “它必定仍然可用” 的持存性。今天,IPv6 协议距初次发布已经过去 20 年了,还是只有 10% 的接受度!(编者注:人们主要在用的还是 IPv4 协议)

区块链计算没有阶段进化 只有栈层区别

那么这对我们思考区块链有何启发呢?来,请接着往下读。

在《区块链的四个时代》中,我说比特币是一台计算器(单用途计算机),ETH 则是一个通用的大型机,它代表了更具可扩展性的区块链,将带来属于“应用服务器”的新时代,最终变成一个高度可扩展的、可组合的、去中心化的“云服务”。

这个判断现在看来显然是不对的。最大的问题是,这个观点假定了区块链是一种线性变化的创新过程,并且潜意识里认为,区块链的每个新时代,都会在规模化和内部整合的维度上,蚕食掉上一个时代。

如果回顾下 2014 年,比特币当时最流行的一种看法是,比特币是互联网原生的支付方式。但很明显,比特币的吞吐量不足以支持互联网规模的支付需求。如果你当时坚信支付这个定位,一直等待比特币提高吞吐量的升级,那你很可能会错过后来比特币作为一种非主权化的价值存储和数字黄金的新角色。在这个新的定位里,比特币的吞吐量和可扩展性并不那么重要了。

类似地,以太坊的定位,早期流行的观点是“世界计算机”,这导致许多人认为:1)以太坊可以取代比特币,因为它有更好的可编程性;2)以太坊能否取得成功的标准在于能否被更多人接受,所以问题就变成了,以太坊的可扩展性和吞吐量能不能达到互联网规模的级别。

第二点其实是一个特别危险的假设,因为它很容易让人得出一个错误的观点,即:下一代的智能合约平台都是以太坊的杀手,仅仅因为这些新的公链提供了更高的可扩展性和吞吐量。

这也是不对的。就像以太坊没有杀死比特币一样,新一代的高性能的去中心化计算平台可能也无法杀死以太坊这个领跑者。今天以太坊最重要的效用不是计算,而是作为“世界会计系统”的清算。

DeFi 和 DAO 是新涌现出来的应用案例,它们充分利用了以太坊作为一台经过实战考验,速度慢、但是足够安全的计算机的优势,这些优势让以太坊特别适合开发“基于新的代币和新的资产”的应用,比如众筹,借贷,自组织和投票。

即使网络拥塞导致高额的 Gas 费用,需要等待数分钟甚至数小时的延迟,这些类型的应用也依然吊打了在传统世界里去找银行寻求贷款,召集股东投票,或者成立(or 解散)一家有限责任公司的用户体验。

区块链的下一步——也就是真正属于区块链计算的“应用服务器”和“云服务”时代——不太可能杀死以太坊,相反,它更有可能会去打开其他相邻的可能性,利用自己这条链的独特功能,去为另一堆不同属性的应用提供支持。

通过 Cosmos SDK 搭建的应用链(有点像在区块链时代里自己搭建的服务器),跟 Dfinity,Polkadot 和 ETH 2.0 这些链也不太一样,后者采用自上而下的设计,通过一条基础链来保证整个网络的安全性,更像是区块链时代里的云计算服务。

这些不同的架构和设计,最终可能每一个会服务于不同类型的应用。再往上加几层新的服务,比如隐私,存储,layer2 可扩展性,节点 SaaS,托管服务和钱包等等,我们就会慢慢开始拥有一个类似于互联网的丰富厚重的多层次、可组合的协议栈。

当然这个和互联网的类比一定是不完美的,但如果你寄希望于某一个区块链能够单独长出复杂的协议栈,全面扩展、杀出重围,那你很容易错过这些链在特定应用场景里的爆发潜力,这也等于忽略了“专业化分工”在一个不断发展的强大的技术堆栈中需要持续存在的意义。

在此之后,现阶段属于竞争关系的项目,以后可能会变成彼此具备可互操作性。

但这并不是说比特币或以太坊已经永远赢得了他们各自定位的胜利。还有很多问题需要解决或优化。但因为只有适度需要升级和维护的地方(比如解决 ETH 1.x 中的状态爆炸问题),因此比特币和以太坊已经有一条可以持续增长的途径了。而在它们更往上的层,反而有更多可以创新的空间。

更先进的新技术,并不一定会反噬在它之下的更底层的协议的用例,相反,它会在已有协议的基础上,产生更复杂的专用的协议栈。基于这些独立的不同技术,上面可以创新的空间,远比我们目前所知的要大得多。

对于开发者和 builder 们,你们需要考虑的问题是:你手头上的项目正确的用例是什么?它可以怎样和其他层协议的功能相结合、怎样和其他基础设施互补?

一句话总结,对公链而言,现阶段的链一定要根据自己的竞争优势,找准自己的定位;而对于应用开发者而言,也应该根据自己应用的特点,去找对适合自己的链和生态。