ParaState浅谈: 以太坊在波卡上的进化
以太坊无疑是目前所有公链当中应用生态最丰富的公链。然而,在以太坊创建之初,创建人其中之一的 Gavin Wood 博士也承认,以太坊虚拟机是一个简单、死板、代码运行较慢的沙盒环境。这导致了我们今天在以太坊开发上遇到的问题,包括不安全的智能合约,有限的开发语言支持,缓慢的性能以及昂贵的 Gas 开销等等。
“The [Ethereum] platform itself is full of risk, as you would expect with a nascent technology. … It’s the price you pay for the ability to access this world-changing software in its days of inception.”
– Dr. Gavin Wood, commenting on Ethereum in an interview with Unitimes in 2019
ParaState 通过加入波卡平行链, 致力于为行业提供一个高度优化,可扩展的智能合约执行环境,并且维持对以太坊应用的兼容性。也通过波卡的跨链特性来集成生态中其他平行链的服务。
WebAssembly to the rescue WASM 作为主要的性能提升架构
升级区块链的虚拟机是解决上述问题的主要方案。WebAssembly 具有完善的行业标准,并且得到包括浏览器应用提供方、云计算服务商在内的广泛支持,因而在计算机硬件、操作系统以及开发语言方面都得到大厂的支持,性能上也有极大的优化。所以,包括 Polkadot, Cosmos(CosmWasm), NEAR, Oasis, Solana, EOS 等一众下一代公链均选择了 WebAssembly 作为虚拟机的架构。
然而,大部分的 WebAssembly 虚拟机并不兼容目前的 EVM 应用,这把绝大部分开发者挡在了新公链应用开发的门外。为了解决这些问题并为以太坊开发者提供有效的途径,以太坊基金会为 EVM 应用提出了 WebAssebly flavored Ethereum Virtual Machine (Ewasm). Ewasm 并不会在 bytecode 层面对 EVM 兼容,但是以 Solidity 写的软件可以通过重新编译直接运行在 Ewasm 上。Ewasm 与 EVM 共享同样的账户和数据结构,并为外部应用提供兼容的 web3 RPC 接口。
Second State WebAssembly VM (SSVM)是行业领先的 WebAssembly 执行环境。根据 IEEE 的测评,SSVM 是目前行业内性能最优的 WebAssembly VM。( https://www.computer.org/csdl/magazine/so/5555/01/09214403/1nHNGfu2Ypi )SSVM 能够支持标准的 WebAssembly 系统接口,以及大规模的内存执行。通过这样的架构扩展,SSVM 可以全面支持 Ewasm 的性能提升。
今年早期,作为 Ewasm 方面唯一受 Web3 基金会资助的团队( https://hackernoon.com/polkaDOT-to-get-webassembly-based-ethereum-virtual-machine-ewasm-from-second-state-mg9932ts ),我们把 SSVM 嵌入 Substrate 的生态,在 Substrate 的链上搭建 SSVM 平台环境,除了支持 Ewasm,平台还会在 source code 以及 bytecode 层面无缝兼容 EVM 智能合约,以使得在 ParaState 平行链上为以太坊开发者提供一站式友好的开发环境。
Ethereum on Polkadot 波卡上的以太坊
可支持 EVM 的公链我们称为以太坊兼容的公链,包括 Ethereum, Ethereum Classic, Oasis Ethereum ParaTime, RSK, CyberMiles, Athereum, Binance Smart Chain 等等。这些公链可以在 API 层面达成互操作性。
由于 SSVM 对 EVM 原生支持,所有目前运行在以太坊上的应用均可以运行在 ParaState 平行链上而无需对代码进行修改。一旦 ParaState 平行链拍卖成功,我们将会在主网上线伊始就支持目前以太坊上主流应用的嵌入,包括借贷协议如 MakerDao,Aave 和 DEX 如 Uniswap,Balancer 等,同时我们也会集成波卡生态的桥协议,以期让以太坊用户能体验波卡上应用的卓越性能提升。
Extend the developer ecosystem 扩展开发者生态
基于 WebAssembly 架构,开发者可以使用 LLVM 支持的超过 20 种语言进行智能合约的编写。由于 Solidity 的诸多限制,开发者会更倾向于使用 C/C++, Go, Rust, 甚至 Java 等更成熟的语言和有更多库(library)支持的语言来进行智能合约的开发。此外,随着区块链应用越来越细分,开发者也会使用 Domain specific languages (DSL)来进行特定应用的开发。例如,Facebook Libra’s MOVE 用作稳定币应用开发,Certik’s DeepSEA 用作形式化验证的应用,以及 Digital Asset Modeling Language (DAML)用作资产代币化等等。
Ewasm 能够支持定制式的开发语言特性。例如,我们和 Oasis Labs 共同提出了基于 Solidity 语言的扩展,以支持在智能合约中保密数据的划分。这样的语言扩展是可以类似 DSLs 一样在 WebAssembly-based 工具链上执行的。而这样的性能不可能在 Solc 编译器和 EVM 上得到扩充。SOLL 编译器是唯一 LLVM-based Solidity 和 YUL 语言编译器,支持目前以太坊智能合约的编译并运行到 Ewasm 上。
可以说 ParaState 平行链的 Ewasm 架构最有潜力融合更大的开发者社区在波卡生态中进行创新性的开发,并且能让智能合约运行的更高效更安全。
Performance beyond the TPS 超越 TPS 的性能
众所周知以太坊的交易性能还很低,目前仅仅支持大约 25TPS。作为对比,VISA 网络可以支持 2000TPS。波卡是共识和计算分离的异构分片设计,基于其平行链架构至少可以支持 10000TPS。每一条平行链,如 ParaState,可以支持至少 1000+TPS。因为大部分共识达成是由波卡 relaychain 验证者承担了。
然而,对于智能合约平台,TPS 并不是一个衡量性能的合适参数。我们需要评估的是链上的智能合约可以被多快的执行。而缺乏优化和编译设计的 EVM 在这方面是非常低效的。
WebAssembly 有成熟的生态和工具支持,使得即使是同样的 Solidity 代码运行在 Ewasm 上都比在 EVM 上高效许多。例如,Ewasm 可以 JIT (Just in Time) 和 AOT (Ahead of Time)编译器来进行优化,使得代码的编译和执行效率比 EVM 提高至少百倍。另外,由于 EVM 仅能支持 integer 的运算,在应用开发方面有太多局限。任何具有更复杂数学运算的 Web3 应用只能选择在 WebAssembly 的架构上进行开发。
SSVM 是效率最高的 WebAssembly VM 之一,其运用 AOT 在不同的 CPU 和操作系统架构之间进行优化。并且,其也是目前市场上唯一兼容 Ewasm 的虚拟机架构。ParaState 平行链将会以 SSVM 为 Ewasm 执行引擎,为所有 Ewasm 应用提升效率而服务。
综上所述,ParaState 平行链兼容以太坊 EVM 应用,并具备高效的下一代智能合约 EWasm 架构,是下一代 Web3 应用最优的一站式开发平台。我们致力把 LLVM、WebAssembly 开发者社区融入波卡生态,是 Substrate 开发框架上卓越的以太坊。欢迎关注 ParaState,共建开发者生态。
Scan QR code with WeChat