Polkad ot 生态研究院出品,必属精品
(文章很长,建议先收藏再阅读)
本文由 Patract Labs 与 Polkadot 生态研究院联合出品,本文会涉及一些技术用语,不过我们会用通俗易懂地方式再阐述一下,大家可酌情看重要解释即可。
背景
如果时光倒退到 2017 年,人们还会记得那一年区块链领域发生的事,尤其是公链领域的爆发,那一年号称要做公链的项目用数以万计来形容也不足为过,但后来的故事告诉我们,能真正倘过历史大河的公链其实屈指可数。于是,公链的竞争似乎由“万箭齐发”变成了“九九归一”,只剩下了以太坊扛起公链的生态大旗。
而 4 年后的今天,我们把时间拨回到 2021 年初,彼时公链生态已经没有了所谓的“以太坊杀手”,大家把注意力都放在了以太坊身上,不管是 DeFi 还是 NFT,都从以太坊生态中所衍生。然而以太坊生态项目的火爆,也把以太坊的性能压榨完了,以太坊的转账慢,gas 费高等老问题又再一次出现。
于是,一些新的解决方案逐渐浮出水面,最先脱颖而出的是币安智能链 BSC,通过兼容 EVM,快速将以太坊成熟的应用复刻到 BSC 上,并在币安交易所的支持下迅速壮大,成为如今第二大锁仓体量的公链。接着便是定位为 Layer2 聚合器的 Polygon 和高性能公链 Solana 相继在 4 月开始发力,公链兴起的概率越来越高。
而刚刚过去的 8 月,我们再一次见证了公链潮的爆发,Avalanche、Fantom、Celo 等公链相继迎来了巨大的增长。
这些公链突然振奋起来的原因,除了市场的炒热以及公链的激励机制,还源于他们几乎都采用或兼容了 EVM(Ethereum Virtual Machine)“以太坊虚拟机”(Solana 除外),从而能够快速用上智能合约,并实现有效的兼容,使得生态能够快速扩张起来,因此 EVM 奠定了一些公链爆发的基础。
尽管 EVM 目前算是区块链领域较为完备的机制,但它的局限性和时效性随着区块链发展也显得有些“落伍”,而作为 EVM 合约升级版的 Wasm 合约开始受到了众人关注。
我们也看到,以太坊创始人“V 神”早就表示以太坊 2.0 将会升级为 Wasm 合约(eWASM),以满足更多开发需求。而如今,Wasm 合约的发展已经有了一定雏形,尤其是在波卡生态,开始有了更多接受者和采用者,他们似乎看到了遥远的未来……
快速了解 EVM 和 Wasm
EVM 和 Wasm VM 是两种区块链常用的虚拟机,现在许多大火的区块链几乎都会或多或少的兼容 EVM,但是也有许多新兴公链会采用 Wasm 技术,这背后会是怎样的一种变化呢?要了解清楚这些,我们需要先简单了解些 EVM 和 Wasm。
1
EVM 是什么?
按照比较标准的定义,EVM 是专门为以太坊客户端开发的虚拟机,主要用于在以太坊网络上运行智能合约代码,其本质上是虚拟机(VM),只不过更轻量。虚拟机,可以简单理解为它就是一台虚拟的计算机,于是我们可以在这台计算机上编写程序,运行程序。
而将该虚拟机(VM)应用到以太坊上,便有了我们熟知的 EVM (以太坊虚拟机,Ethereum Virtual Machine),其主要作用是支持以太坊调用智能合约,从而完成合约的主动生效和自动执行。同时,借助以太坊的智能合约功能,我们才能在区块链网络上顺利完成各种模块化的任务。
通俗来说,借助以太坊的虚拟机我们可以将现实世界的合同或者合约映射到区块链上,从而当需求(或条件)发生时,自动完成交易或者转账,避免了合约的违规,可以说有了虚拟机的以太坊才有了以太坊后续的发展,也才给区块链带来了更多的应用,不管是 DeFi、NFT 还是其他联盟链功能。
2
Wasm 是什么?
Wasm 全称 WebAssembly,一种在基于栈的虚拟机上运行的二进制的指令格式,这些代码可以是 C、C++或 Rust 等,它们会被编译进你的浏览器,在你的 CPU 上以接近原生的速度运行,而这些代码的形式是二进制文件。Wasm 的开发团队分别来自 Mozilla、Google、Microsoft、Apple 等公司,标准由 W3C 组织制定。
Wasm 原本是为浏览器设计的虚拟机,但是越来越多开发者使用 Wasm 之后,便逐渐拓展了 Wasm 的使用场景,使得 Wasm 成为了目前最通用的格式之一。
在区块链领域,它的主机独立性、安全沙盒和整体简洁性等特性,使其成为智能合约的理想运行时(Runtime)。此外,它还允许使用多种现代编程语言(Rust、C++、JavaScript 等)开发合约。以太坊团队一直在试用一个基于 Wasm 的合约引擎 eWasm,并计划在 2021 年的某个时候正式发布它。
为什么说 EVM 会范式转换到 Wasm 上
1
范式转换是什么?
范式转换 (Paradigm Shift),又称“范式转移”,由美国著名科学哲学家托马斯·库恩 (Thomas S.Kuhn) 最早提出,他认为“范式”是指特定的科学共同体从事某一类科学活动所必须遵循的公认的模式,它包括共有的世界观、基本理论、范例、方法、手段、标准等等与科学研究有关的所有东西。而这个概念还可以衍生到其他层面,比如经济层面,企业管理层面,商业层面等等。
而范式转换也就是长期遵循的公认的模式 A 转换到另一种模式 B 的过程。比如,bp 寻呼机的使用转换到手机的使用,短信转换到微信,DVD 转换到流媒体等等。
反馈到现在的人类科学进程来看,我们的每一次巨大的科技进步都不是一种偶然,甚至可以说是一种必然,这些科技的指向性就向托马斯所描述的,“科学的发展是由一系列新理论取代旧理论的过程”,对于区块链来说,同样如此。
EVM 自以太坊诞生以来,已经走过了 7 个年头,和当年的区块链世界相比,目前已经有了巨大的飞跃。按照范式转移的路径,以太坊即将迈入 2.0 时刻,那么 EVM 同样亟需更新迭代,EVM 还是几年前的设计,但是新技术却在飞速发展,EVM 似乎正在转向 Wasm,也是范式转移的结果。
2
Wasm 对于 EVM 有什么优势?
以太坊基金会在 Devcon 上多次说明了自己打算将 EVM 过渡到 Wasm 的想法,但已经上线的庞大合约体量无法支持深层次的变革,生态也在这一临时方案上越走越远。选用 Wasm 作为智能合约的虚拟机的优势有以下几点:
1. 完胜 EVM 虚拟机 。相比 EVM 需要开发者预编译,较高的编程成本,Wasm 虚拟机的结构、指令完备性及执行效率远胜于 EVM 虚拟机,将成为合约开发的新引擎。
2. 执行速度快 。Wasm 有一套完整的语义,且具有紧凑的二进制格式,体积很小,这使得 Wasm 字节码运行时的效率可以接近于本地机器码的效率,比 EVM 的性能高 1 到 2 个数量级,后期还会升级为更快 JIT 虚拟机。
3. 交易费用低 。更快的 Wasm 虚拟机,致使交易吞吐量大幅提升,那么合约部署和交易成本也能大幅降低。可以说 Wasm 合约很好的解决了现在以太坊上交易费用高和交易拥堵的问题。
4. 合约语言广 。Wasm 扩展了智能合同开发者可用的语言系列,支持使用任何 Wasm 的高级语言(如 Rust、C++、JavaScript 等)开发编写复杂业务逻辑,这意味着你可以用你熟悉的任何语言编写智能合约,包括最成熟的基于 Rust 的 ink!,或基于 AssemblyScript 的 Ask! 等。
3
EVM 会范式转换到 Wasm 的原因
尽管刚刚我们已经简述了 Wasm 在技术层面上比 EVM 有众多优势,但是 EVM 会范式转换到 Wasm 的原因绝不仅仅只是这一方面。
作为 EVM 的发明者同时也是波卡创始人 Gavin 博士,对这个问题拥有足够的话语权。在做波卡的时候,Gavin 并没有沿用自己发明的 EVM,而是选择 Wasm,这背后的原因就能很好的解答这个问题。
尽管现在看来以太坊的 EVM 已经有六七年的历史了,并且许多公链都在采用或者兼容 EVM,但是 EVM 并不一定会是最终的答案。
在当初 Gavin 博士选择离开以太坊,准备做新项目时,他有非常多的选择。但是对于 Gavin 博士来说,如果只是做一个别的项目的 “山寨版”,或者只是稍微地迭代一下,增加一下交易吞吐量,或者创造一种稍有改进的语言的话,是无法满足十分喜欢创新的他的。
于是,Gavin 没有想过去走老路,他选择了一条没有人走过的路,创新的做一个比公链更底层的基础设施项目,而这就是波卡。
在做波卡时,选择 Wasm 的理由,也可以从他对 EVM 的态度可以看出:“很多人已经在使用 EVM,所以支持这些遗留协议和遗留语言是非常重要的”,但同时也不能只靠着老技术吃饭,还要放眼新未来,“开始思考下一代工具是什么,而对我来说那就是使用 WebAssembly 作为智能合约”。
事实上,Wasm 本身的许多优势还与波卡十分匹配。比如,区块链需要确定性,以便在点对点网络中的所有节点上进行可靠的状态转换更新,而不强制每个节点运行完全相同的硬件。Wasm 就非常适合用于可能不同的机器集之间的可靠性。Wasm 既高效又快速,这种效率意味着它可以作为一团代码上传到链上,而不会造成太多的状态膨胀,同时保持其以接近本机速度执行的能力。Wasm 还支持了波卡的无分叉升级,也为波卡提供了另一大利器。
最懂 EVM 的 Gavin 都是如此选择 Wasm 的,对于其他公链来说也是如此。毕竟 EVM 的诞生也是有时代背景的,一个是当时的互联网发展还比较早,可以选用的优质技术并不多,Wasm 在当时还未诞生(2015 年 6 月 Wasm 才算诞生),所以当初 Gavin 博士还在以太坊担任 CTO 时,在设计以太坊的时候,他们试图不偏离世界当时所熟悉的东西太远,也就是比特币。EVM 的问题在于它是一种非常固执己见的设计,因为它源自一种已经非常固执的设计,也就是比特币的脚本设计。
由此也可以看出,EVM 算是时代的产物,也会受制于当时的时代背景和技术背景,并不是最优解。而随着 Wasm 在互联网领域做大做强逐渐完善,区块链领域的技术达人们也在尝试把这个更加优秀的技术运用到区块链上了。这也是为什么比较新兴的公链会更多的支持 Wasm,然后以兼容的形式对接 EVM 了。
EVM 可能以怎样的形式转换到 Wasm 上
1
对于以太坊等 EVM 生态来说会是怎么转换的?
首先我们看以太坊会如何从 EVM 迁移到 eWASM 上,而这绕不开的是讨论以太坊 2.0 的更新,按照以太坊开发团队公布的进程,随着以太坊 2.0 的实现,eWASM 将会布局到新的以太坊使用环境中,以获取更快速、更便捷和更具包容性的开发。
而较早前,eWASM 团队已经给出了其具体的设计目标:构建 EVM 转译器,以 eWASM 合约形式添加计量注入器,并发布明确详细的规范:以太坊接口、eWASM 合约语义以及为 solc 编译器构建一个 eWASM 后端,同时提供 C 语言和 Rust 语言的相应指令和库,以支持智能合约编写。
当然,像 EOS 这样的生态早已进入了 Wasm 的怀抱,而像 Tron 和 Cardano 这样的公链也在走向 Wasm 的路上。
2
对于 EVM 和 Wasm 都支持的波卡来说是怎么转换的?
波卡原生支持 Wasm 技术,随后原本就十分熟悉以太坊的他们自然也明白 EVM 还是有许多优点的,比如已经形成网络效应的 EVM 生态拥有众多开发者和应用,这些都是宝贵的资源,必须妥善运用起来。
在 2020 年,Parity 开发了兼容以太坊 EVM 的 Substrate 模块以及兼容层 Frontier,从而允许 EVM 智能合约与 Substrate 其他的模块进行交互。用户也可以直接在 Substrate 上部署 Solidity 智能合约,同时使用 Web3 RPC 的工具(如 Metamask 和 Truffle)与链上应用进行交互。
所以,波卡上基于 Substrate 的链可以同时拥有两个模块,一个是 EVM-Contracts 模块(用于执行原始 Solidity/EVM 代码),另一个是 Substrate-Contracts 模块(用于执行 Solidity/Wasm 或 Ink! Wasm 代码)。两者之间可以互操作,甚至可以将消息发布到桥接过来的单独的 Parity-Ethereum 链上,或者如果部署为平行链,则可以传播到包括以太坊主网在内的更广阔的波卡社区。
兼容并且可以交互,便可以让波卡顺利完成 EVM 到 Wasm 的过渡和迭代。
3
Patract 如何加速 EVM 转换到 Wasm
Parity 是波卡的主要开发团队之一,他们的主要工作在于 Substrate 和 Polkadot,因此在智能合约的部分工作相对而言没有很多。而在 Wasm 合约部分,尽管波卡已经选择了一个更优质的 Wasm 技术,但是 Wasm 合约开发者距离合约平台之间仍然有较大的鸿沟,因此 Patract Labs 便致力于成为连接合约开发者与合约平台之间的桥梁。
Patract Labs ( https://patract.io/zh )是专注于波卡 Wasm 合约技术的实验室,目前受到波卡议会和国库的支持,先后为开发者推出数十款应用性强、技术超前的免费全套 Wasm 合约开发工具和服务,包括合约测试链、AS 合约语言、合约开发脚手架、合约运行沙盒、波卡 API 服务、零知识证明支持、合约库、监控台、SDK、IDE 等。
并联合 Parity 和社区平行链改进合约模型、合约语言和开发工具等,推动成立 Wasm 合约开放平台——Patract Open Platform ( https://open.patract.io )。通过这个平台将波卡生态内有意愿加入到 Wasm 合约生态的优秀的平行链或应用团队汇聚一起,展示其 Wasm 合约的具体实践和技术创新,提供市场和技术支持。
Patract Open Platform 的成立不仅仅是提供底层设施和技术支持,Patract Labs 还将通过 Wasm 合约技术,进一步探索波卡生态在未来产生的无限可能性。例如,以太坊合约采用 EVM 虚拟机和 Solidity 语言,导致无法低成本开发复杂合约,如果执行高频复杂度高的合约,交易成本将大幅上升,执行效率低下,对于像 DeFi 这样的领域就有非常大的局限性。对此,Patract Open Platfrom 将从合约模型、合约标准(类似 ERC20 业务标准)、Runtime 接口定制三个方向进行探索。
为什么说波卡会是公链的常青树
1
波卡独特的功能奠定其位置
波卡的角色决定了它不是与一般公链做竞争,而是更好地为各个公链做跨链交互的底层支撑。如当下知名的公链比特币、以太坊、BSC、Cosmos、Near 等等,都是可以通过转接桥或平行链等形式接入波卡。
而这些项目分别代表了不同时期,不同技术代表的公链,这已经验证了波卡是一个可以作为能伴随区块链技术更迭的长期存在的基础设施。
如今,各公链百家争鸣,也有一些如 Terra 这样基于 Cosmos 的应用链也大放异彩,我们已经可以明确区块链的未来一定是多链的,那么注定未来的发展一定会是“铁打的波卡,流水的公链”。
2
波卡天然优势
波卡的创新设计,使得它获得了在升级和迭代底层技术方面其他公链所不具有的特性。
众所周知,公链进行升级必须要通过硬分叉来实现,而波卡由于在设计之初就定位为更底层的元协议,因此波卡升级无需硬分叉。这就使得波卡在迭代升级上就非常的容易,也更利于波卡自身的进化。
另外,波卡背后有一个划时代的发明——可以一键发链的 Substrate 框架,基于这个框架可以迅速构建一条区块链,而在这个框架中你可以将许多现成的功能模块添加到自己所构建的区块链中,就像组装电脑一样简单。这其中就有支持 EVM 的模块,那么同理可得,如果有更新的技术需要迭代,波卡也可以通过将这样的技术整合到 Substrate 框架中,从而让自己的生态也能兼容新技术。
这边是让波卡能够时刻保持最前沿技术的原因之一,也是为什么我们说波卡会是常青树的理由之一。
3
波卡会有迭代技术的经验
波卡兼容 EVM 又支持 Wasm,波卡的许多生态项目也是两者皆有。目前,波卡已经有一套完整的方案,用于 EVM 切换到 Wasm 上,意味着波卡已经探索出一条能够成功从老技术 EVM 迭代到新技术 Wasm 的路径。那么,当未来如果出现比 Wasm 更先进的技术,波卡可以复刻 EVM 到 Wasm 的范式转换,从而让 Wasm 再转换到新技术上。
用一个不是那么准确但又神似的比喻来形容这个过程,好比是我们有一个多卡多待的手机,可以同时插一个支持 3G 的电话卡和一个支持 4G 的电话卡,我们的手机可以享受两个卡的功能,并且可以互相兼容。但是有新技术出现时,波卡的迭代就很容易,可以把支持新技术 5G 的电话卡插入手机中,我们可以兼顾以前的老技术的同时享受新技术,而随着时间的推移,老技术的 3G 不怎么用了,变成长期用 4G 和 5G,这样就做到了平滑的技术更迭。
有如此强大的可扩展性,波卡便有了不断迭代进化的可能性,不用担心波卡的技术会落后,也无需担心波卡升级很困难,这些都是支持波卡常青的原因。
后记
波卡虽然作为常青树,不用太担心技术迭代的问题,但是波卡生态非常巨大,光靠波卡官方肯定是不够的。所以,许多围绕着波卡生态在做努力建设的一些组织,正在用自己的方式加速波卡生态的发展。
比如,为了让波卡有更多平行链项目诞生,一个专为开发者准备的最基本的节点环境是必不可少的,Patract 就启动了一条 Jupiter 平行链测试网,并于 8 月上线了平行链跨链转账,能够将 Westend (波卡测试网)与 Jupiter 的代币互相转换,以便更好的让开发者进行测试。
另外,Patract 还开发完成了基于 JavaScript 的自动化测试环境 Redspot 开发脚手架。Europa 合约沙盒环境已经式进入生产可用阶段,与 Redspot 一致进入长期维护。Elara API 服务的官网已经开发完成,Elara v1.0 对于平行链节点已支持 Statemine,Karura,MoonRiver,Bifrost。开发者可基于 Metis 合约标准库构建常规 DAPP。Ask! 合约语言已经可以用于实验性质的环境下,通过 AssemblyScript 编写 ERC20、ERC721 这类复杂合约。
而为什么 Patract 以及我们 Polkadot 生态研究院等组织愿意深耕波卡生态,也离不开对波卡创始人 Gavin 的初心的认同——未来一定是多链的。
而波卡的技术创新与稳扎稳打也确实在逐步实现这个愿景,波卡确实值得我们托付梦想。所以,波卡虽然发展慢,但足够稳,稳到可以见证和陪伴许多公链的兴衰,我们不妨坐上这趟观光车,静看区块链技术的前行。
*Polkadot 生态研究院所提供的信息不代表任何投资暗示,所发布文章仅代表个人观点,仅供参考学习,鉴于国内尚未出台数字资产相关政策及法规,请中国大陆用户谨慎关注 Crypto 的发展。
往期推荐
以太坊“伦敦升级”会给波卡生态发展带来怎样的影响?
在元宇宙领域中,波卡将扮演什么样的角色?
波卡生态起步在即,哪五大发展方向值得关注?
鉴于波卡生态项目层出不穷,但其中劣质项目,骗局项目充斥其中,值得警惕,而另一方面只在波卡项目方的群又很难了解到波卡整个生态发展的全貌,错失许多机会。所以,我们决定 建立一个波卡生态群,可以开放式地讨论所有波卡生态项目,大家可以客观的分享对各个项目的观点,了解波卡各个项目的发展情况,又可以互通信息共同把握机会 。