LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 星云小课堂-第一期-Wasm能否让EVM成为历史?

星云小课堂-第一期-Wasm能否让EVM成为历史?

2021-07-05 星云商学院 来源:区块链网络

讲这篇文章之前,简单的说下Wasm和EVM是什么。它们两者都是虚拟机,以太坊用POW模式以显卡的实体方式搭建出庞大的全球分布式EVM虚拟机的建设。而最近兴起的Wasm虚拟机则普遍采用NPOS模式搭建。在这里星云学院参考了许多底层基于EVM的波卡项目,比如Clover,Palsm等。

目前在智能合约领域,以太坊还是龙头,这是不争的事实。用基于EVM编写的?Solidity 语言开发过合约的朋友对这门语言自然不陌生。但是Solidity有着非常多的局限性。比方说大家都知道的Gas费用,在编写设计合约运行原理的过程越复杂,Gas费用就越高。用户使用成本增加,开发者部署合约成本越来越大,就会慢慢形成恶性循环。总的来说有好有坏,肯定有很多人对支持智能合约 Solidity 以外的语言很感兴趣,但与此同时,失去对 Solidiy 的支持也不是一种选择。为了支持 EVM 中的其他语言,需要一些新功能;另一种选择是用迄今为止尚未实现的 WASM 进行替换。

图片素材由Patract团队提供

上图可以看出目前EVM整个生态系统非常庞大,而且在链模型层,还包括 BSC(币安链)\Heco(火币链) 这样 EVM 兼容独立链(也叫以太坊分叉链),以及 Acala(阿卡拉)、Moonbeam(月光网络) 这样的 EVM 兼容平行链。但他们的本质都是基于 EVM 虚拟机,是波卡创始人在 2014 年设计以太坊时,由于找不到一个确定性的执行环境,临时创建的一套新技术。目前以太坊2.0也开始由POW慢慢转向Npos,把原本采用的EVM转移到Wasm上,所以以太坊2.0已经在Wasm基础上开发了eWasm的链模型。

首先在语言层他们为EVM建立了 Solidity 这门语言,在上面我们说了Solidite的局限性非常多,比方说在solidity模型中,合约的创建是通过字节码完成的;实际上,新合约是由字节码本身创建的。这意味着合约字节码必须包含在字节码中。

因此,创建新合约的合约(例如`A = new A()`)在其字节码中包含合约 A 的字节码。这意味着以下情况是不可能的:

编译器无法处理这个问题,因为 A 需要合约 B 的副本,而B 需要合约 B的副本。这意味着它无法知道合约 A的大小,直到它知道 B 的大小为止。它说:

这可能是一个极端情况。还有一个问题:有可能创建棘手的合约,每次创建不同的合约,很难对其进行静态分析。因此,通过完全禁止这一点,确实是避免了,但是开发者无法自动验证的一整类错误的合约。还有EVM现在最大的问题就是扩容问题。?Layer1 的运行能力填满,大概 10TPS 左右。之后需求外溢为需要用到这几个月都听到的 Layer2 来解决扩容问题。

图片素材由Patract团队提供

我们再来看看 Wasm 生态这边。首先 Wasm 是发展于下一代的浏览器技术,由谷歌、微软、苹果、火狐、W3C这类超级大厂共同研发多年的产物,才是真正的沙盒环境虚拟机迭代的极限,同时也天然适合区块链行业。然后我们发现这些年竞争性的新链纷纷把最底层的虚拟机换成了 Wasm。

在语言层,Wasm 天然支持很多成熟的高级语言,还可以很方便地发明新语言。所以只要链模型是优秀的,并且突破了工具层,任何 EVM 的应用都可以转化为 Wasm 写,Clover(三叶草)就在做这件事。而有些 Wasm 写出来的新应用 EVM 永远也写不出来。很多人寄希望于以太坊的 Layer2,但 Layer2 的技术也都是可以迁移的。所以你是想要 1*100,还是 100*100。

图片素材由Patract团队提供

所以 Wasm 相对于 EVM 的优势具体是什么呢?

第一:基于EVM开发的Solidity语言限制非常多,但 Wasm 支持多种更加成熟的高级语言,表现力更强,支持编写更加复杂的业务逻辑,这将孵化出新的产品形态。

第二:Wasm 的执行效率接近 CPU 的原生性能,高于 EVM 两个数量级,用户可以用更低的成本跟链交互。所以这就有了基于波卡生态Substrate的Phala项目的诞生(phala需采用实体CPU矿机挖矿,星云商学院有售卖,联系客服咨询)

第三:Wasm 的可扩展性强,这也是为什么会出现这么多不一样的链模型和合约语言,也就代表更大的创新空间。

所以接下来是灵魂拷问的时间。EVM 是不是已经大而不倒,作为历史的一层,永远固化下来了?对于一个生态来讲,竞争对手只是好一点是没有用的,需要好多少才会有翻盘的机会?这么多项目都在开发 Wasm 合约,到底谁能最终跑出来?

从第一性原理上来讲,趋势是明确的,就像电动车一定会代替汽油车,世界一定会向可持续能源转变一样。接下来就是事在人为的问题,如果大家都不去选择开拓这个新方向,都以兼容 EVM 为短期更容易实现的目标,那历史会被 EVM 越拖越远。

图片素材由Patract团队提供

我们觉得这个转变大概率会发生在波卡生态内。

首先 Gavin Wood 强调波卡不是智能合约平台,而是链创新的平台,合约只是众多 Pallet 中的一种。所以波卡可以在 Layer1.5 同时,(比方说Moonbeam?月光网络)容纳多种智能合约技术,形成最丰富的技术多样性,达到异构多链的状态。

这样就可以吸收已有的生态,同时低成本开展新的创新,这也是波卡对以太坊等同构单链的根本性优势。但其他的合约模型都是隔了一层的翻译,只有他这个新的 Pallet-Contracts 才是最原生的 Wasm 合约,才能发挥虚拟机最直接的效能。

图片素材由Patract团队提供

那在波卡生态内,为什么不直接用 Pallet 这种 Layer1 的技术开发,而要用 Contract 这种 Layer 1.5 的技术开发呢?原因很简单。如果直接用 Pallet 开发应用,那一条链只能容纳一个开发团队,平行链的资源也是独占的。但如果添加了 Contract 模块,就可以接纳社区上百万的开发者,他们不再需要拍槽,应用的部署成本也极低。

平行链插槽的拍卖大概半年轮换一次,而 Contract 模块能够把一条平行链的资源按照 Gas 价格,以每个块的粒度实时拍卖出去。两者之间在可以支持的技术先进性上没有本质区别,就是一种资源分配模型的不同。

图片素材由Patract团队提供

但现在的波卡原生 Wasm 合约模型以及基于 Rust 的这个 ink! 语言框架,还不是很成熟。目前虽然已经有多家平行链在尝试集成,但我们也发现了模型和语言设计上的一些问题,Patract团队正在跟 Parity 沟通解决。

图片素材由Patract团队提供

为了联合最广泛的力量共建 Wasm 合约生态,Patract成立了 Patract Open Platform(简称 POP),现在已经有接近20家合作伙伴。patract作为基础设施提供方,帮助社区平行链集成 Wasm 合约功能,并根据他们的自身特性进行定制,同时帮助 DApp 开发者使用 Wasm 合约,积极推广这一技术路线、吸收社区反馈、同时成为社区跟 Parity 沟通的桥梁。

图片素材由Patract团队提供

由于波卡生态基于 Substrate 的强大扩展性,Wasm 合约技术只是一个大的方向,并不是一个确定性的技术方案,还有非常多的工程上的优化空间,包括并发和异步带来的可扩展性、丰富和高速的存储、跨链执行带来的可交互性、更简洁的语言、以及更加集成的开发环境等,还可以无限探索下去。让我们拭目以待!

星云商学院不定期发布课堂小知识,欢迎志同道合的朋友加入我们。

—-

编译者/作者:星云商学院

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...