为什么区块链需要Web3.0
前言
在上一篇《为什么Web3.0需要区块链》中,我们探讨了为什么 Web3.0 应用/平台需要将区块链作为底层组件来构建和驱动的问题。而本篇我们将会辨析,区块链与区块链有所不同,不可能由一条链解决所有问题。
Web3.0 平台内的区块链,应特指面向应用的区块链——与以太坊这种公链有着巨大差异。
以太坊的发展路径
世界计算机
2017年左右,以太坊被认为是一台“世界计算机“——一台永不宕机,全世界每个人都可以写代码在上面运行的机器。
就其这两点来说,以太坊确实做到了(永不宕机,人人运行)。但大众通常理解的”计算机”,是一种能够做通用计算的工具。而以太坊的计算成本非常高昂,并不能用来做通用计算,更不能做大数据计算之类的事情。从这个定义来说,以太坊并不是一台通用计算机,其最多只能算作是专用的计算器。计算不考虑成本,就是耍流氓。在2021年的当前,已经无人提“世界计算机“这个概念,以太坊早已变换了其自身的定位,其作为“世界计算机“的理想,算是失败了。参见:《为什么我不再把以太坊解释为“世界电脑”》。
关于世界计算机,我们有一个很好的类比物——目前火热的后云原生的 Serverless 技术栈。Serverless 也具有“世界计算机“的特征:只关心业务功能实现,不关心系统资源分配和运维,不关心扩容问题,世界上每个人都可以写代码在上面运行等等。由于这种类比性,我们可以以 Serverless 领域发展过程中出现的一些问题来说明区块链如果作为世界计算机会存在哪些问题:
成本问题:Serverless 在专用领域的短平快服务上占优势,拿来做长期服务和通用计算,在成本上反而超过传统容器计算。参见:《Serverless is more expensive than you'd expect
》,《Serverless vs Docker Containers— what to choose in 2020? (updated)》
扩容问题:世界计算机的一个基本要求就是:自动扩容。对客户来说,世界计算机的计算能力和存储能力,应该是没有上限的(虽然每一次计算有限制,但是应该可以横向容纳几乎无限多的函数实例服务,并且不同的函数并行之间不会有明显资源竞争)。而扩容问题是区块链领域最难的问题,没有之一(参见:《区块链可扩展性概述[2020]》)。从这一点来看,区块链在这个方向上比较悲观。
平台绑定问题:目前 Serverless 还有一个极其严重的问题:平台绑定。你所开发的 serverless 程序被强绑定在某一个云平台上的(Amazon Lambda, Microsoft Azure 等),如果想切换平台,就得重新为新平台编写代码,重新经受验证,这个代价太高了。这也是很多客户,特别是企业级客户最重视的问题之一。即使基于区块链实现了世界计算机,这个问题也是必须要面对的一个问题。
最后,我们来一个灵魂发问:世界计算机,是否是另一种形式的中心化?
不管怎样,Dfinity(https://dfinity.org/) 在这个方向上仍然在积极地探索着。
DeFi 大爆发
世界计算机做不成了,以太坊的出路在哪?
早在2018年,《以太坊的故事结局不是“ 世界计算机 ”,而是“开放金融”》一文就认为以太坊最适合 DeFi,即开放金融。因为逐渐有丰富的金融类协议,在以太坊上建立起来了,其文中对这些金融类的应用进行了归类,看到了 DeFi 对传统金融体系发起挑战的可能性。
到了 2020 年,由于客观条件的成熟以及某些偶然性因素(比如流动性挖矿)的触发,以太坊迎来了 DeFi 大爆发,DeFi 正式成为以太坊上的杀手级应用。Compound, Maker, Aave, Synthetix, Curve Finance 等头部应用迎来了大量的用户增长。参见:《DeFi explosion pushes Ethereum price to 2020 high》。所有人都在欢呼,以太坊终于找到了自己的价值核心。
但是 DeFi 大爆发也引起以太坊平台上一些严重的问题:网络拥堵,手续费高涨,导致抵押规模和用户规模扩大受限。这是典型的负网络效应。
也就是说,现阶段的以太坊已经无法承载这么多的价值了。
价值溢出
由于现阶段以太坊如此拥堵,而 Eth 2.0 又遥遥无期,于是社区在扩容问题上进行了大量的讨论和创新,现在基本上达成了先建设二层网络的共识——通过二层网络来扩容。目前二层网络有多个方向同时在探索,Optimism Rollup,ZK Rollup, Arbitrum,Polygon 等等,不同的方向上竞争非常激烈。
其中 Polygon 目前风头最盛(参见:《DappRadar 二季度报告:DeFi 锁仓仍集中在以太坊,Polygon 生态增长迅猛》)。而目前 Polygon 的实现,严格来讲并不能算二层网络,它其实是一条侧链。侧链本身只是一个概念,并不能算是一种具体的扩容技术手段。侧链是一种相互关系,也就是说,通过一个桥连接的两条链,它们互为侧链。只是当前 Eth 基本一家独大,几乎所有的有价值资产都在 Eth 上,Eth 自身性能又弱,所以会让人感觉所有“搭了桥去 Eth“的链,都可以算是 Eth 的侧链(参见:《区块链扩容前史:状态通道、DPoS、大区块与侧链》)。从这一点来讲,Polygon 的方案其实可以跟 NEAR,BSC 这些公链对以太坊的扩容思路归入同一类。
打个比方,以太坊就像一个蓄水池,虽然想尽办法在给它挖宽挖深,但是始终赶不上水(价值)流入的速度,于是渐渐就容不下这么多价值了,于是就会(价值)溢出。这就是以太坊的价值溢出效应。
不仅是二层网络,包括各种公链(可归类于侧链网络)都想抓住机会,争夺这种溢出效应。如:BSC, Solana, NEAR,Polkadot 等等。参见:《解析 Layer 1 竞争格局:新公链的机会在哪里?》。
从这里,我们看到了一个现象,区块链世界,已经不可能是一条链独步天下了,未来一定(其实现在已经)是一个多链的世界。即使以太坊2.0成功上线,也不大可能解决以太坊1.0 DeFi 拥堵的问题,参见《以太坊 2.0 中的 DeFi:城市、郊区和农村》。
区块链的分层结构
如前所述,我们坚信未来是一个多链的世界。那么,这些链之间,是不是就是混沌的,杂乱无章的存在形式呢?
要研究一个系统的结构,应该找到一个基本量。从不同的基本量出发,可以给系统划分出不同的结构。而在这里,我们沿用上一节提到的基本量:价值捕获。
我们从价值捕获的角度来划分,可以将区块链世界划分为一个三层同心圆结构:
区块链宇宙层级结构图
对此层级结构图解释如下:
我们从最内核圈层 Circle0 或 C0 看起。处于最内圈层的是 Bitcoin 和 Ethereum,它们的总价值占据了目前区块链市场的大部分(本文成笔时,大概占 64%)。Bitcoin 通过在以太坊上封装质押而进入 DeFi 领域。以太坊是整个区块链宇宙价值的核心,也是价值输出的源头。
第二圈层 Circle1 或 C1,包含以太坊的各个二层网络,和各种侧链,以及其它所谓的 layer1 公链。它们捕获从以太坊溢出的价值,并共同参与组建 DeFi 大生态。值得注意的是,所有基于合约开发的 Dapp 应用都属于这一层。
第三圈层 Circle2 或 C2,是各种面向特定应用的区块链,Application-specific Blockchain, 简称 Appchain。这些 Appchain,用于承载各种与现实世界接轨的落地性应用,也即 Web3.0 App。笔者倾向于将这些应用与金融(DeFi)或资产(比如 NFT)属性相关的应用区分开。Web3.0 App 更多地对应于传统 Web2.0 世界的应用,或者一些新场景的应用。Appchain 是这些 Web3.0 App 的核心组件(参见《为什么Web3.0需要区块链》)。Web3.0 中的区块链,指的就是 Appchain。
三个圈层 C0, C1, C2,其中 C0, C1 主要用作资产和 DeFi 相关的应用,C2 主要面向具体的落地应用,即 Web3.0 应用。
那为什么 C2 不可以用作 DeFi 呢?其实也并不排除。但从总体上来说,C0, C1 已经能把 DeFi 问题解决好了,没必要让 C2 参与进来了。C2 层应该专心处理 Web3.0 的问题。
这里,我们提出的这套分层理论,有几个方面的意义:
第一个意义是,价值捕获的分层:一条链容纳不下所有价值,必然分配到多条链上去。
第二个意义是,安全性的分层:不是所有链都需要同样的安全级别,有些追求更高的安全性,有些追求更高的性能,有些追求更高的可扩展性。三个圈层由内及外,可以认为安全性需求逐渐减弱,性能需求逐渐提高。
第三个意义是,业务焦点的分层:DeFi 与 Web3.0 业务相互分开,各自将精力放在不同的关注点上,解决好各自的问题。同时,也需要研究出适当的机制,让两个部分可以交互协作。
简单说来,就是不同的区块链在不同的层上干不同的事情。
DeFi 与 Web3.0
回顾区块链的发展,会发现其最初就是围绕金融问题而做的一系列创新。也正是在这些大量的创新的积淀下,才有了 DeFi 的爆发。如前所述,我们将 DeFi 与 Web3.0 两者分开。DeFi 是去中心化金融(Decentralized Finance)的缩写,指那些建立在区块链网络之上的金融应用,而 我们定义 Web3.0 特指构建于开放协议之上的所有非金融应用。两者有清晰的边界。
那么,DeFi 和 Web3.0 之间的关系是怎样的?这是一个值得深入探讨的课题。
我们先从金融说起,金融是什么?刘俏教授曾在《如何重塑我们这个时代的中国金融》中总结:在现代经济体系下,金融是由实体经济、金融系统、政府宏观政策、国际资金流动、资产定价等模块交互形成的一个复杂生态系统。与此同时,他认为好的金融一定是中介成本最小化的金融。
在 Web2.0 互联网时代,谢平教授和邹传伟博士提出了互联网金融的概念。在《互联网金融的基础理论》文章中,他们认为互联网可以降低交易成本和信息不对称,提高风险定价和风险管理效率,拓展交易可能性边界,使资金供需双方可以直接交易,从而改变金融交易和组织形式。
理想情况下,在互联网时代,资本应该像信息一样无缝流通,交易成本应该是最小的。但是刘俏教授认为过去130年金融资产的平均成本基本未变,他将这种现象称为“金融发展之谜”,即金融不断演进,却没有带来金融中介成本的下降。
如何把金融中介成本降下来?这是构建 DeFi 的加密世界的工程师和创业者正在做的探索与试验。
DeFi 希望利用区块链技术创建一个更开放和透明的金融服务系统,其显著特点是无须许可的开放性和交易数据的透明性。同时其结算是即时的,其金融服务是全天候 7* 24 小时,而目前我们的全球金融体系只在朝九晚五的时间 (非周末和节假日) 内运作。
互联网金融/金融科技和去中心化金融 DeFi,两者的技术架构图对比如下:
图片来源:《加密资产不是洪水猛兽,读懂 DeFi 基础架构基本特质与变革潜力》
通过简单对比两者的架构图,DeFi 应用正在试图从基础层上重建金融服务,其运行成本会比传统金融低几个数量级。
目前的 DeFi 主要集中在金融的支付与清结算、资金融通等功能上,在金融风险评估,社会资源配置,尤其是金融合规可监管方面与金融科技的发展相去甚远。我们以传统借贷的例子对比来看,企业贷款做生意,产生价值收入还贷,银行收取利息。而 DeFi 大都是只在协议之间流转,资金没有进入社会领域,没形成有效的闭环,并未发挥金融对社会资源配置的功能。
因此,DeFi 只是在金融服务方面先行一步,MakerDAO,Compound,Uniswap,Synthetix 等代表性的项目引发了 DeFi 浪潮。但在经历了时长近一年的爆发式发展后,DeFi 的发展现状很“内卷”,各个赛道(以太坊,波卡等不同的区块链基础设施)挤满了同质化的项目。DeFi 迫切需要向外突围,寻找新的市场空间,寻找能与实体产业结合的真正的价值闭环。
传统金融与互联网的关系,可以用下图展示:
传统金融业与互联网
传统金融为互联网创业企业提供金融支持(天使,种子,贷款等形式),而互联网企业将产生的利润的一部分,作为本息还给金融机构,实现了金融与实体产业的闭环。
类似地,在 Web3.0 时代,我们认为 DeFi 与 Web3.0 的关系如下图所示:
去中心化金融与 Web3.0
上图中 DeFi 给 Web3.0 的应用项目(App)融资,Web3.0 的应用项目产生持久利润(类比Web2.0互联网应用的持久利润),并对投资方产生(返还,分配)利息收益,从而对 DeFi 实现真正的价值输入。
区块链发展到 DeFi 阶段,如果要真正长久地发挥区块链技术的价值,它需要依赖 Web3.0 的价值输入。Web3.0 是 DeFi 与现实世界的接口。
我们前面提到,每一个 Web3.0 App 中,都应包含一个 Appchain。然后,众多的 Web3.0 App(平台)一起,共同创造了 Web3.0。他们的关系呈现出来,便是下图:
Web3.0 Times
可以看到,相比于 Web2.0,在 Web3.0 时代,我们多了区块链(应用链)的内核。
Contract 与 Appchain
DeFi 基础设施层的区块链和 Web3.0 应用中的区块链,它们是有差别的。
再次回顾区块链的发展史,诞生区块链概念的比特币项目开启了挑战央行对货币和金融体系垄断的大门,从这个角度来讲,比特币是最初形态的 DeFi。随后由 Daniel Larimer(BM)创建的 Bitshares(中文名比特股 BTS )可以看作是第一个尝试 DeFi 的项目。但理想丰满现实骨感,BTS 的探索最终流产。后来 Vitalik Buterin 提出了以太坊,它建立了一个可编程的、图灵完备的智能合约区块链,期望成为去中心化应用开发平台。至此基于智能合约技术,全球加密开发者进行了各种积极的探索,开发了各种类型的去中心化项目(金融,游戏,社交媒体等)。根据当前Coingecko市值分类数据,我们会发现市值排名前三的是稳定币,交易类,DeFi,这些均为金融资产交易类的应用。从这个角度来讲,智能合约并不适用于开发所有领域的 DApp,而是更适合金融领域 DeFi 应用。
随着区块链技术的发展,出现了 Cosmos SDK,Substrate,Muta 等区块链开发框架,这为开发人员提供了一种完全不同于智能合约的方式来创建去中心化应用程序。合约是面向一个通用的虚拟机开发,受限于底层虚拟机的限制,可定制性较弱;而使用区块链开发框架,开发人员则可以选择框架中各种可用的模块(比如共识,治理等组件)或者构建自定义模块来快速定制和启动一条区块链,这样就大大提升了灵活性。比如:由于证券型通证(security tokens)需要基础设施层具有更多的功能来确保监管合规性和增强机构信心,Polymath 为此专门构建了一条区块链 Polymesh 来更好地实现证券型通证的创建、发行和管理。Compound 则专门构建了 Gateway 区块链来实现跨链利率市场。这些团队由于智能合约平台的某些限制转而选择构建应用链,一定程度上说明了应用链更适用于开发 Web3.0 的 App。
下面是 Smart Contract 与 Appchain 的区别。
从上表可以看出,Smart Contract 的可组合性强,有利于 DeFi 应用的创新。Appchain 自主可控,可定制性高,适合面向具体场景下的 Web3.0 应用。因此,当构建去中心化应用,需要面向具体业务场景做定制时,Appchain 明显具有更多的技术选项。
Appchain 相关研究
本文在前面章节定义了 Appchain,并对 Appchain 与智能合约做了详尽的对比。本节更进一步,对 Appchain 的普遍性质做一些研究。
Appchain 中的 Token
我们在上一篇《为什么Web3.0需要区块链》中分析过,Token是区块链中必不可少的组成部分。
但有一个严重的误解是:所有的 Token 都是加密货币(cryptocurrency)。实际上,并不是所有区块链上发行的 Token 都是货币(数字货币)。Token 较为笼统地可分成如下三类:
1.Currency Token:货币型 Token
2.Utility Token:功能型 Token
3.Security Token:证券(期权,股票等)型 Token
而 Untitled INC 更进一步,对目前市面上的 Token 给出更精细的五种分类维度:目的、用途、法律、底层价值、技术。参见《Token分类的五个维度》
本文不准备对 Token 的分类理论展开叙述,读者可查阅文末的参考资料进一步了解。
2017年6月 SEC(美国证监会)宣布 DAO Token 为证券(参见《SEC Issues Investigative Report Concluding DAO Tokens, a Digital Asset, Were Securities》),按证券相关法律进行监管。这是对区块链 Token 的一次重大定性。
而《证券型 Token 发行的监管范式转变》一文也认为 STO(Security Token Offering)发行的 Token 应该以证券形式被纳入监管框架。在有效保障国家金融稳定和维护市场秩序的前提下,应当为金融创新模式预留足够的创新空间,有条件地接受制度变革。其中,利润获取方式成为判定是否构成证券的关键因素。
而 Appchain 或 Web3.0 App 作为进入人们日常生活的落地型应用,自然应该积极拥抱监管。
基于以上背景信息,回到 Appchain,在 Web3.0 App 中,我们应该发行证券类 Token 和功能性 Token,而不应该在 Appchain 中发行 Currency Token。其实在整个区块链宇宙中,能归类于加密货币的 Token 非常少,货币作为一般等价物,是价值交换的媒介,只有极其有限的 Token(比如比特币)有潜力承担起这个角色。另外,应用层的 Token 如果不归类于证券型 Token 或功能型 Token,那么将会在监管层面遇到严重阻碍。
另一方面,证券/功能 Token 也需要进入市场流通。一旦涉及到资产流通,我们应该把相关的业务逻辑剥离到 DeFi 层去执行。在 Appchain 层,应尽量只处理具体应用业务相关的事务。
顺便提一句,Token 的中文翻译使用“通证“较”代币”准确,建议以后不要将 Token 误译为 “代币“。
Appchain 中的共识
一般来说,最适合 Appchain 的共识是 PoS 类共识。
首先,我们在 Appchain 中排除 PoW 共识,理由如下:
1.PoW 能源消耗巨大,全世界最终能容纳的 PoW 链有限,可能只有少数几条
2.PoW 链冷启动非常困难,在平台总算力达不到一个临界值的情况下,PoW 链的安全性非常脆弱
相比之下,PoS 链有如下基本特点:
1.能源消耗非常少(相比于 PoW),以太坊的评估是不到 PoW 耗能的 1%
2.PoS 链启动时,需要使用其它资产做抵押。其安全性从一开始就得到了保障,并且随着应用链价值的增长,其用于安全性的抵押也会相应增长,也即安全性也是一条正相关增长曲线
当然,PoS也有一些自己的问题,全世界无数聪明的大脑都在尝试各种创新去解决这些问题,并提出了各种改进型的 PoS 协议,比如 DPoS, NPoS, LPoS 等。关于 PoS 与 PoW 各自的优劣比较,不是本文的重点,可查阅相关资料深入研究。
从另一方面来说,PoS 类协议更像传统股份公司,只不过现在变成了社区化的公司(参见:《未来的公司:区块链技术 + Token 经济》)。基于 PoS 协议的 Appchain 或 Web3.0 App 创业团队,仍然需要像 Web2.0 时代的创业团队一样,靠团队自身的特质和努力,做出创新,推向市场,解决具体问题,生成价值反馈,发展状大,最后发展成一个由社区拥有的的平台级项目。
就经典 PoS 来说,它本身不太适合小团队直接使用,它有点像一只野马,难以驾驭。一个初创团队,很容易被 PoS 带进坑里。因为它不仅是一个技术问题,还是一个社会学问题。并且一旦在治理上出问题,往往就已经无法回头了。
一般来说,Appchain 的节点不会太多。开始可能只有几个,发展到成熟阶段可能也就只有几十个。过多的节点会影响业务系统的运行效率,Appchain 极其重视用户体验,项目需要在安全性、运行效率、用户体验上做一个平衡。
考虑到 Web3.0 App 作为真正影响人们生活的产品,未来它一定会拥抱监管。在有监管参与的情况下,Appchain 选择 PoS 更合适。因为理论上监管方可以直接作为一个节点加入网络,进行第一手的数据监管和分析。
Appchain 独立链的问题
Appchain 虽然有众多优点,但是其缺点也是明显的。本节详细分析一下 Appchain 作为独立链的缺点。
开发难度。以前,要从底层开发一条独立的区块链出来,是一件非常困难的事情。很多区块链项目,就是把比特币或以太坊的源代码克隆一份出来,改改参数,改改模块,就是一个新的区块链项目了。即使这样,开发难度仍然很高。要运维并上线一条独立的链,难度更高。但后来,Cosmos-sdk, Substrate, Muta 等框架出来后,启动一条新链变成了一件非常容易的事情,这些开发框架大大降低了区块链的研发成本。
启动难度和安全性。启动难度指的是成功启动一条链的难度,其与安全性密切相关。对于 PoS 链来说,其初始质押量、验证人节点数量、STO 分配的合理性及 Token 的发行机制等,都直接影响链的安全性。要考虑周全,对于一个创业团队来说,实属不易。独立链的启动还需要每个验证人启动自己的节点,这对验证人的技术能力和运维能力有一定要求。有一些三方托管节点代运营之类的辅助服务,可一定程度降低此类要求。
运维难度。验证人节点,需要运维自己独立的服务器。运维体现在几方面:
服务器的稳定运行。监控其CPU负载、内存负载、网络负载、存储空间等等,适时增加配置,防止由于硬件原因导致节点运行失败
防攻击。做好节点防护,防止外部黑客或不明来源攻击,对链的安全性造成冲击
链上代码版本的及时升级跟进。有些版本可以通过 wasm 之类的技术自动升级,有些版本却需要升级整个节点内容,需要手动或 DevOps 自动跟进
相比之下,合约平台上的合约开发者,不需要关心这么细节的运维内容。
跨链交互难度。如果所有的链都是独立的、互不交互的链,那么最终只会形成一个个的价值孤岛。链与链之间打通,增加价值的流动性,才能创造出更多价值。因此跨链交互是 Appchain 必须从一开始就考虑的问题。对以太坊来说,上面的合约不需要考虑这个问题:对内来说,以太坊资产共享同一个状态空间,不同合约资产之间是可以组合交互的。对外来说,只要以太坊与其它链做好跨链桥,就能方便地利用这些桥转移资产。但 Appchain 得自己面对这个问题,要么是自己实现与其它链的跨链桥,要么使用类似 Cosmos IBC 这样的跨链通信接口,要么加入类似 Polkadot, Octopus 这样的 Appchain 网络集群。
其中,自己实现与其它链的跨链桥基本不可行,因为在多链架构下,存在如此多的跨链桥,一个一个去实现得不偿失。
除了上述四个难度,其它还有比如治理难度:Appchain 通过 PoS 机制进行链上治理,合约通过 DAO 类设施进行链上治理,难度相当。PoS 本身如何运用好,是一个非技术性的问题,这是相当有难度的。Token 经济学设计难度:在 Token 经济学设计上,Appchain 能做的事情更多,更灵活,但是实现也更复杂,难度比合约大(或者说这是客观复杂性)。
综合以上这些因素,我们可以断定:创始小团队基本无力负担 Appchain 独立链的开发和运行。
Appchain 独立链的集群
为了解决以上这些 Appchain 独立链的问题,一些团队提出了方案。这些方案各有特色,解决问题的侧重点也不一样。
Cosmos
Cosmos 致力于解决不同的区块链之间跨链交互的问题,目标是组建区块链的互联网。
首先,Cosmos-sdk 用于快速开发并启动一条链,解决了开发难度大的问题。
然后,其设计了 IBC 协议,IBC是一个通用的方案。在实现了 IBC 协议的链之间,可以无障碍的跨链交互消息。使用 Cosmos-sdk 开发的独立链,能方便地集成 IBC 协议的实现。这样,基于 Cosmos-sdk 开发的链之间,就能无障碍的互通。
但是 Cosmos Appchain,仍然没解决链初始阶段的安全性启动问题,将安全性启动问题抛给了 Appchain 自己去解决。
Polkadot
Polkadot 目标是成为一个完美的区块链扩容方案。
Polkadot 的 Substrate 是区块链的快速开发框架,非常优秀。具体可参见笔者《为什么 Compound Gateway 使用 Substrate 进行独立链的开发》。
Polkadot 共享安全性,其质押安全性非常高,这点与合约平台做到了同级。
Polkadot 还支持平行链之间的跨链消息,让平行链之间可以无缝实现资产流通。
以上这三点,解决了前面描述的其中三个最大的问题,看起来 Polkadot 的方案完美无缺了。
但是它也带来了新的问题。Polkadot 中继链的安全等级很高,安全机制非常复杂,导致平行链插槽的竞拍质押成本非常高,进而带来了其平行链的年租金非常高,这给平行链的 Token 经济的设计和发行带来了不小的压力。从这一点来说,对平行链的发展不友好。由于这个特性,Polkadot 逐渐由开始面向 Appchain 的中继网络,变成了面向平台的平台(Platform of platform),也即 Gavin 自称的 layer0。Polkadot 的每个插槽,实际连接的是一个同构分片。而每个分片,就是一个平台。100 个插槽,就是 100 个分片。因此波卡可以连接 100 个平台,是一个 100 个分片的网络。而 Polkadot 网络中的应用的开发模式,则再次回到了在某一条平行链上进行合约开发部署的模式。从这个模式来讲,反倒与以太坊 2.0 殊途同归了。
Octopus
Octopus 目标是提供一个面向 Appchain 的完整基础协议。
Octopus 的设计:选择一条合约链平台作为主链,而不运行自己的主链或中继链,所有 Appchain 直接与主链进行交互。这样做的好处是降低了再独立运维一条中继链的成本,从而也降低了 Appchain 的接入成本(像 Polkadot 那样的中继链的运行成本会转嫁到 Appchain 的接入成本上来)。让 Appchain 赛道的创业成本更低,存活率更高。
另一方面,由于主链(合约链)的 DeFi 特征,Octopus 实际做了一个双边市场:一面是 DeFi 投资方,一面是 Appchain 创业团队方。资方对 Appchain 进行自愿 Staking(类似于传统的 Angel,不过更分散),成为这条 Appchain 的 Validator。当 Staking 量超过一个门槛后,Appchain 就进入启动的流水线。同时,Octopus 还提供一整套云平台自动化工具,让缺乏足够运维知识的资方也可以做 Validator。由于 Octopus 将 Staking 角色与 Validator 角色强绑定,于是在做启动抵押的过程中,就顺便解决了 Appchain 的安全性问题。也就是说 Appchain 的安全性是 Stakeholder 和 Staking 量的副产品。只不过这个安全性在开始启动的时候,数值较低,随着 Appchain 的发展,这个数值会逐渐提高。所以这种安全性被称为 leased security(租用安全性)。这种设计也比较符合传统互联网创业团队的估值增长曲线。
Octopus 的问题是,由于其主链为一条现有的合约链,其灵活性和可定制性会受到一些制约,不如完全自主的中继链那样灵活和可控。Octopus 的协议设计符合资本和金融的基本规则,但实际运行效果如何,还有待观察。
我们在本节分析了市面上典型的几个 Appchain 集群方案。可以看到,问题确实非常复杂,想要得到完美的解决方案,不是那么容易。创新有无限多可能性,核心在于妥协的艺术。未来不排除有更好的设计能较好地(折中地)解决 Appchain 的那些问题。
Appchain 开发框架简介
几乎每条区块链都有自己的SDK,但不是所有的 SDK 都是为 Appchain 开发设计的。我们这里主要介绍几种用于开发 Appchain 的开发框架。
Cosmos-sdk
https://tendermint.com/sdk/
《Cosmos SDK 开发者文档》对 Cosmos-sdk 描述如下:
Cosmos-sdk 是一个开源框架,用于构建类似 Cosmos Hub 等基于 PoS 共识算法的多元资产公有区块链,以及基于权威证明共识算法的许可链。使用Cosmos SDK构建的区块链通常被称为专用区块链(application-specific blockchains)。
Cosmos SDK的目标是让开发者可以快速地构建一条能与其他区块链以原生的方式进行互操作的可定制区块链。在他们的设想中,这套SDK就像Web应用框架一样,可以让开发者迅速构建出基于 Tendermint 算法的安全区块链应用程序。由Cosmos SDK开发的区块链由组合式模块构建,其中大部分模块都是开源的,且任何开发者均可使用。任何人都能为Cosmos SDK创建新的模块和集成已经构建的模块,就像将他们导入你的区块链应用程序一样简单。还有一点,Cosmos SDK是基于功能(capabilities)的系统,这允许开发者可以更好地考虑模块之间交互的安全性。
Substrate
https://substrate.dev
在开发 Polkadot 的过程中,Paritytech 公司将区块链的所有功能,拆解成抽象的设计,实现到一个开源的、通用的区块链框架中,并以此框架为工具,构建 Polkadot 产品。这个框架就是 Substrate。
Substrate是一个用Rust语言开发的以通用性为目标的区块链开发框架。它的设计元素,比如密码学算法、存储结构MPT树,账户体系等,大部分借鉴自有史以来最成功的以太坊的基础设施,(这个可以理解,Paritytech 最早就是做以太坊客户端起家的,Gavin Wood 也是以太坊的联合创始人之一)。一个框架,要做到通用,就需要高度抽象。而高度抽象的代价往往会显得结构复杂,不易于使用。所以 Substrate 也提供了很多 DSL(领域特定语言),方便新手学习使用。简单归纳一下,Substrate具有如下特点:
1.面向通用。其设计面向通用领域,而不是专为某一条链做开发的 SDK。每个团队都可以使用 Substrate 开发出一条完全独立的不依赖于任何既有网络的链出来(比如,使用Substrate 开发的区块链可以与 Polkadot 完全无关,这也是 Paritytech 的设计目标之一)
2.功能全面。能覆盖区块链几乎所有的场景,可以说是目前市面上功能最全面的区块链框架
3.Runtime 代码编译成 wasm 执行。Wasm是当今区块链业界主流的VM字节码选择
4.可定制性超强。Substrate 本身是一堆分散的组件,可以在一套规范约束下,自由替换组件,自由组合
作为目前为止最强的区块链开发框架之一,Substrate 受到了越来越多创新团队的欢迎。
Muta
https://docs.muta.dev
Muta 是 Nervos 团队开发的区块链 Appchain 开发框架。其文档这样描述:
Muta是一个多面的,高性能的区块链开发框架,让构建区块链变得简单灵活。区块链开发者可使用 Muta 快速构建他们自己的区块链,将焦点聚集在业务功能性上,从而消除了从头搭建底层网络和共识机制的巨量工作。
Muta提供的基本核心组件有:
一个新设计的共识算法 - Overlord,具有高吞吐量和低延迟
快速和稳定的存储
模块化 p2p 网络
高性能内存池
Muta 提供定制的部分有:
通过开发服务——包括治理机制、业务逻辑,甚至是连接到区块链的虚拟机等,开发者可方便地定制链的功能。
在 Muta 中,服务是一个抽象层,用于拓展 Muta 框架。每一个服务是相对独立的单元,维护其自己的存储和操作接口。这些服务共同形成了链的状态机部分,在与区块链的底层组件连接后,就成为一条属于你的独一无二的区块链。
其它还有很多区块链快速开发框架,本文就不一一列举了。
总结
本篇对当前的区块链宇宙从价值捕获的角度提出了一个 C0, C1, C2 分层的理论。并在此理论上分析了 DeFi 与 Web3.0 的区别和联系,论证了为什么区块链(DeFi部分)需要 Web3.0。然后详细对比了智能合约 Smart Contract 与应用链 Appchain 各自的优劣。最后对用于承载 Web3.0 App 的主体区块链——应用链,做了全面的研究,为未来基于应用链的实践创新,打下了理论基础。
Web3.0 由理想变成现实,需要无数的团队在各个领域充分实践。在实践中总结经验,修正理论,探索新的编程范式、产品范式、治理范式。在市场的拼杀中,获得用户的第一手反馈,改进产品形态,升级用户体验,最终踏出一条康庄大道。
曙光已经升起,只待勇敢前行。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场