一文读懂Polkadot背后的划时代发明:Substrate框架
背景
提到 Polkadot,大家立马就会想到跨链,觉得跨链是继以太坊的智能合约平台功能后,新的刚需。诚然,跨链对于整个区块链来说都意义非凡,但其实这仅仅是 Polkadot 其中的一部分,也就是互操性,而 Polkadot 还有另一个很重要的意义,就是可扩展性。
因为中继链+平行链的结构让 Polkadot 有了相较于其他区块链项目所未有的可扩展性,也为我们带来了更多的可能。
互操性和扩展性的结合才让Polkadot变得更加完备,而但当我们深挖 Polkadot 背后的技术架构时,我们不得不提到其背后的一个划时代发明—— Substrate 框架。
如果说 Polkadot 是一栋万丈高楼,那么 Substrate 可谓是这栋楼的钢筋混凝土框架,它的出现才让 Polkadot 能够顺利完成摩天大楼的建设,因此了解 Substrate 的诞生与发展显得意义非凡。
Substrate 的诞生
在 2018 年举办的 Web3 峰会上,Polkadot 创始人 Gavin 博士通过一台原装出厂的 Mac 电脑,在 15 分钟内就开发出了一条全新的区块链,在当时可谓震惊全场,一时间该信息传遍了整个区块链圈子,而其用到的开发工具正是被 Parity 公司称为 Substrate 的一种全新的区块链技术框架。
这可能是又一次让区块链圈子的人感受到了什么叫“技术的力量”,毕竟 2018 年前,那些叫嚣着要开发一条公链的区块链项目还对外声称难度实在太高了,需要几个月甚至好几年的时间来完成,结果被一个名为 Substrate 的框架 15 分钟 KO。
时间倒退到 2016 年,当时 Gavin 博士对 Polkadot 已经有了一点初步构想,大方向基本沿着分片的思路在思考,让不同链的功能通过“某个中间桥”链接起来,从而提高区块链网络的扩展性,沿着这一重要的构想,我们看到了后来的平行链和中继链。
借着 Gavin 博士在开发以太坊的经验,Parity 开发团队发现他们正在重复之前在以太坊和比特币客户端上做过的同样的工作 —— 构建区块链的一些基础代码,例如账户、智能合约、治理等功能本质上是一个类似的逻辑结构,于是他们设想能不能开发一个类似于“模块”一样的东西来简化区块链的基础开发,既解放开发者,也能够让区块链的开发门槛降低一些。
于是,他们又沿着这一思路构建出了我们现在看到的 Substrate,只是他们没想到这一框架的威力远超他们想象。
Substrate 是什么及功能介绍
前面我们用通俗的语言为大家讲解了 Substrate 的诞生,其实从这个过程里我们大概已经可以看出 Substrate 究竟扮演了怎样的角色。用 Polkadot 联合创始人 Robert Habermeier 的话来说,“Substrate 是一组用于处理编写区块链时所有烦人事情的库。”
那么究竟 Substrate 的创新点和优势体现在哪些地方呢,我们尝试从逻辑上和技术本身来为大家进一步剖析。
模块化让开发周期变短
从开发者的角度来说,Substrate 极大的简化了参与区块链开发者的工作量,这意味着原来的区块链开发从底层框架搭建起来至少需要另一个庞大的团队来提供技术支持,但 Substrate 将诸如核心模块(数据库、公/私钥生成、RPC 等 )、基本逻辑(数据结构、结算、时间戳 )、P2P 网络和共识机制, 甚至链上治理这样的功能镶嵌到 Substrate 中,成为可调取的模块,因此大大节省了开发周期和开发流程。
并且 Substrate 是一个完全免费且开源的框架,这意味着全世界有需求的开发者都可以*使用该框架,并且它通过 Rust 的编程语言来搭建,该语言能够帮助开发者快速、安全的完成软件开发。
正如 Substrate 的英文全称释义:A substance or layer that underlies something, or on which some process occurs.(在某些事物的下面,或者可以基于它之上创建一些事物的物质或层),大概它很好的满足了这一点。
多选择可满足不同需求
当然,也许会有人有质疑 Substrate 的模块化会不会很死板?其实不然,Substrate 是多层架构的,可以让开发人员在开发的方便性和技术的*之间进行选择,具体的三层结构分别是 Substrate Core(具有 Polkadot-Core 集成)、Substrate SRML 和 Substrate Node。
具体来说,如图所示,从上到下,技术*递减、抽象度递减、依附性递增。Substrate Core 是用于构建区块链最小框架的模块,也是 Substrate 框架中最基础的一层,可以提供像存储、共识、交易队列和区块生产机制和低级 JavaScript 的实用程序等模块。而往下的 SRML 层则更简单,开发者要做的就是从模块中选择自己需要的组别建进行参数设置即可。最后是 Substrate Node,可以说是该框架中的小白应用层,只需提供 JSON 配置文件即可获得完整的智能合约区块链。
而如果你需要从头构建完全属于自己的区块链,只需要从最上层的 Polkadot Core 板块开始。因此,Substrate 并不是完全的模块化,其实它的*度依然很高,可以满足开发者的各种需求,完美印证了那句“想你所想,行你所行,听从你心"的状态。
无分叉的 Runtime 更新
我们知道区块链世界少不了“分叉”现象的出现,而传统分叉带来的不仅是对区块链网络本身力量的削弱,甚至可能因为分叉不到位给一些项目带来灭顶之灾。而 Substrate 带来的另一个最令人兴奋的特性之一,就是无分叉的 Runtime 升级。
正如我们在之前的文章所介绍的一样,基于 Substrate 的链中,链本身存储着一个叫作 WebAssembly Blob 或 WASM Blob 的东西。此 Blob 包含链构建新区块所需的所有逻辑,链本身的 Runtime 包含在此 WASM Blob 中,如果需要修改区块链的相关信息,只需要结合链上治理公投,倘若票数通过,即可完成相应的升级,从而减少了硬分叉带来的影响。
因此基于 Substrate 开发的区块链(像 Polkadot)天然解决了硬分叉带来的问题,所以在8月15日,Parity工程师Bastian发推称,Polkadot的平行链测试网 Rococo 首次进行了无分叉的Runtime升级,完美践行了该方案。
关于 Substrate 的一些事实
Substrate 就是 Polkadot?
Polkadot 是基于 Substrate 框架构建的区块链项目,而 Substrate 框架,更贴切的来说,是一个可以定制化构建区块链的一个工具。但是Substrate本质上,相当于是 Polkadot 精简之后的一个通用区块链模板。
Substrate 做的链就是 Polkadot 的平行链吗?
Polkadot 的平行链,与 Substrate 生成的链是各自可以独立存在的,当然也可以用 Substrate 框架直接构建 Polkadot 的平行链,两者的关系可以用下图阐明。
Substrate 发的链会取代其他区块链?
许多朋友一直在担心 Polkadot 与以太坊 2.0 是否属于竞争关系。实际上,Substrate 框架和Polkadot 并不打算取代现有的基础设施。他们的出发点是不一样的,Substrate 框架和 Polkadot的愿景是做链的生态,与单条区块链不是竞争关系,相反是起到连接各条链的作用,填补了工程可能性的空白。
平行链由于是连接上 Polkadot 的区块链,它的安全性由 Polkadot 的中继链保护,因此无法选择自己的共识机制。如果一个区块链想要使用自己的共识机制,或者已经有成熟的但是与 Polkadot 是属于不同共识机制的区块链,比如比特币和以太坊,那它们可以通过一条平行链作为 “桥”的作用去连接 Polkadot,这就是 Polkadot 中的转接桥。
Substrate 只能用作公链开发?
也许会有人认为 Substrate 只能用于公链开发,但其实不然,Substrate本身是一个开发框架,并未限制是否只能用作公链开发,恰恰相反,正因为其技术上的创新,Substrate 将会是公链、生态和联盟链之间的重要桥梁。
例如 Polkadot 的中继链在设计上能够让平行链通过区块验证节点与其进行认证交互,而同样,每个平行链也可以作为其它外围平行链的中继链存在,无限扩展,但至于这个平行链是联盟链还是公链其实都不重要,只要能够连接起来便可完成交互。
Substrate的划时代意义
当 Substrate 在 2018 年以耀眼的姿态出现时,人们除了惊叹其“发链”的速度,更多的可能是对未来的无限期许,而如今,随着 Polkadot 生态的发展,Substrate 似乎走地越来越稳,我们也从中看到了一些不一样的东西,而这些东西或许将会让 Substrate 走的更远。
一键发链开启区块链下一阶段
2017 年是区块链生态大爆发的一年,随着以太坊技术逐渐成熟,并被越来越多人认可,许多开发者意识到,他们可以基于以太坊发行自己设想的区块链项目。
通常的做法是,项目创始团队先根据区块链与某个行业的结合,设计出一个区块链应用,拥有或者设计一条更先进的公有链,然后基于ETH一键发币的功能,进行融资,并根据每个人融资的比例分发相应数量的这个应用或者这个公有链的Token,而后有了资金再慢慢烧钱做这个应用的专有链或者公有链。等到这条链做出来了,再通过一对一映射的方式,把币转到后面一条链上,这才完成了一条链的开发流程。
然而,理想很丰满,现实却不买账。因为在以太坊上发行数字资产倒是容易,可要做一条公链这个难度就上升了好几个层次。以太坊上发行数字资产,只需学习一下智能合约,然后几行代码就能做出来,正因为如此方便快捷,才说以太坊是一键发币。
但是要做一条公链,尤其是需要从底层逻辑开始重构的区块链,是难上加难。对技术人才的要求,包括懂知名区块链的代码和原理,如比特币,以太坊等,理解各类主流的共识算法,还需要懂智能合约,除此之外,技术团队中必须要有密码学、分布式系统、网络安全的专业人才,甚至专家。其中最难的就在密码学,有的公链甚至是计算机里的诺贝尔奖——图灵奖获得者牵头发起的。
所以,区块链人才是一将难求,曾经有人希望招募一个资深区块链架构师做他们公链的 CTO,年薪开出百万以上都招不到人。毕竟,有这实力的人都自己做项目去了。
这还只是公链人力成本高的问题,另一个问题是,公链的研发难度高,研发周期长,稍微复杂一点的项目,研发就需要一年半载的,难一点的需要好几年,比如知名的 Filecoin 项目,光是延期时间就从 2018 年 6 月份延期到了 2020 年的 10 月份,可见一斑。
如此看来,做一个公链的项目,是一个费钱又耗时的巨大工程。然而,这一困扰区块链领域多年的问题,却被 Substrate 框架轻松化解,只需一人,花 15 分钟就可以做出一条拥有定制化功能的区块链。Substrate 框架把一键发币的便捷提升到了“一键发链”级别,看似轻描淡写的只是降低了成本和研发周期,实际上却是划时代的一步。
为什么划时代,这相当于在当年只有巨型计算机的时候,突然微型计算机横空出世,让计算机不在是个别机构的专属,而是人人都能轻松用上的电子设备,由此才有了后面互联网的诞生,以及如今发达的互联网生态。同样,Substrate 框架也迈出了如当年计算机变革那般化繁为简的重要一步。
区块链应用得以快速成熟
在 Substrate 框架出现以前,对于想要做区块链应用的团队来说,相当于在互联网时期做一个 App,还得花 90% 的时间和金钱把安卓系统也一并做出来,现在有了 Substrate 的一键发链,可以像拎包入住一般轻松地进行开发,把主要的时间和精力用于完善应用本身的业务层面。
但是传统的区块链应用还有另一个问题,系统会制约应用的发展,为了引入新的特性或改变现有的规则,往往会通过更改底层协议的规则进行系统升级。但是传统区块链的系统升级需要通过硬分叉的方式来升级,这大大增加了工作难度。
设想一下,如果苹果手机的系统每次升级都要一半以上的人升级,才能算是升级成功,这对于系统的容错性来说要求很高。如果在升级过程中出现问题,可能导致用户的数字资产受到损失,用户分裂为两个生态都有可能。
但这对于 Substrate 框架来说,都不是问题。Substrate 框架允许系统无需硬分叉就可以升级,营造了一个稳健安全,又可快速更迭的系统,这对于区块链应用来说就无后顾之忧了。
此外,Substrate 框架有众多功能模块,使得制作一条高定制化的区块链也十分容易,又或者后期因为项目的需求,想要调整一些功能,也能随意增减,十分的灵活*。Substrate 的出现就像互联网中 Linux 系统的诞生,将会为后续行业的发展提供重要的基础。有了 Linux,才有安卓,才有华为,小米,三星手机,同样的道理,有了 Substrate ,今后区块链行业会涌现特别多优秀的相关应用和项目。
Substrate 框架解决了区块链应用研发中最花钱和时间的构建主链问题,又保障了应用的运行系统与时俱进,同时丰富的功能模块库又满足了区块链项目的各类功能需求,大幅缩短了区块链应用从早期走向成熟的周期,也加速了项目迭代进化的速度。可以预见到,一个属于区块链应用开发的黄金时期即将到来。
区块链生态发展将加速绽放
在 Substrate 框架的一键发链以前,一个项目从募资到上线主网,开始接受落地性的考验,整个流程需要以年来计,而 Substrate 框架将这个时间可以缩小到以月来计,既加速了单个项目的迭代时间,也意味着区块链生态的进化速度像八倍速一样快进起来。
回望近几年区块链项目,许多项目是自从发行数字资产,直到两三年后才上线主网,开始接受落地性的考验,整个流程需要以年来计,许多项目因为运营问题,项目设计问题,经济模型等问题,上线后就一直阴跌,导致慢性死亡,更有一些项目方,以研发难度高为由,迟迟不肯上线主网,就怕一上线市场就夭折。
这样的现象,其实是必然会发生的,正如当年互联网开始崛起,倒腾各类门户网站的人也是蜂拥而去,最后却是一地鸡毛。移动互联网兴起,各类 O2O 的应用层出不穷,看得让人眼花缭乱,但现在剩下的又有几何?一将功成万骨枯,一个行业的成熟,必定会经过野蛮生长,而最后,大浪淘沙,留下的才是真正实用的有价值的项目。
区块链行业也是如此,各类公链、DApp、defi 等项目,何止上万,真正有价值的还活下来的不过百,多少资本随着前两年的起落化作了新技术探索的成本。尽管如此,这片新开拓出来的蓝海,如同漩涡一般,仍然会吸引更多前赴后继的人才、资本投入,直到挖掘出区块链真正的价值。
而 Substrate 框架,无疑是给整个区块链生态发展,按下了快进键。项目迭代速度加快,参与的人和资本也越来越多,死亡的项目也会更多,而找到区块链真正价值的项目也会离我们越来越近。
火花出现,引线已经点燃,区块链的生态将如璀璨的烟花在黎明前绽放开来,即将迎接晴朗的一天。
如何使用Substrate?
前面我们提到了很多关于 Substrate 的优势和其独特的便捷性,那么究竟该如何上手呢?我们将去年 PolkaWorld 发布的一篇名为《Substrate 一键发链极简教程》
原文链接:
www.polkaworld.org/articles/substrate-simple-tutorial
的文章分享给诸位,感兴趣的读者可以小试牛刀,或许会有意想不到的收获。
后记
Substrate2.0 版本在今年 9 月底上线,新版本带来了新的功能——链下工作机(off-chain workers)以及 70 多个可组合模块。链下工作机可将数据安全地集成到区块链上,非常适合物联网(IoT)设备或通过预言机(Oracle)进行的实际数据输入。
这也再次体现了 Substrate 和 Polkadot 优秀的可扩展性,哪怕当下没有涉及到的功能模块,也可以在未来加入进来,真正做到了与时俱进。
11 月初,平行链 V1 版本已推出,平行链上线呼之欲出,如果该功能顺利推出,意味着 PolkaDOT 将开启真正的跨链,而 Substrate 也即将迎来更大的舞台。
从时代的发展来看,作为身处时代洪流的我们而言,很难真正去评判一个事物的核心发展路径,但透过那面历史的镜子我们可以窥见更多的可能,而 Substrate 的诞生或许在未来的某一刻会被后人称为是区块链领域发展重要的转折点,犹如多年前的“智能合约”一般,如此,便是最好的故