波卡上的智能合约平台对比:Acala、Patract、Moonbeam 和 Plasm
以太坊作为目前最大的智能合约平台,其网络易拥堵、手续费高昂、交易速度慢等问题一直困扰着开发者和用户。在冉冉升起的波卡生态中,也有一些项目在开发新的智能合约平台,它们是否能解决以太坊现存的问题,将智能合约和 DApp 生态带向新的高度呢?
今天,我们就来对比波卡上的四个智能合约(DApp)平台: Acala 、Patract、Moonbeam 和 Plasm ,它们都计划成为波卡上的平行链,并且都具有部署智能合约的功能。
目前 Substrate 生态中可用的合约技术分为 EVM 和 Wasm 两类,将来可能还会产生其他的合约技术,下文提到的 Wasm 代指 Substrate 的 Contracts Pallet (合约模块),将来也可能产生使用Wasm的其他合约模块。
波卡上的智能合约链的机遇与挑战
由于波卡本身的特性,建立在波卡上的智能合约平台拥有一些天然的后发优势,比如合约手续费更低、速度更快、可以和其他链之间进行交互、支持跨链资产等。
但每一个新的智能合约平台,都会面临一个非常棘手的挑战,那就是 生态的建设 。其核心问题是 “如何吸引更多的开发者使用你的平台” ,因为只有更多的开发者源源不断地开发出好项目,才能吸引更多用户来使用你的平台,反过来又会吸引更多的开发者,形成网络价值不断增长的良性循环。
目前以太坊的生态已经发展了好几年,合约开发环境成熟、工具齐全、开发者多,已经有了一些高质量的 DApp,这些都是以太坊的优势,也是波卡上的智能合约平台急需赶上的。
而对于波卡生态来说,由于波卡中继链本身是不具有智能合约功能的,所以波卡也非常需要有智能合约平行链来补齐合约这一环。因为并不是所有的业务场景都需要去做一条平行链,智能合约开发更便捷、成本更低,而且已经有了不少较为成熟的应用,显然智能合约早已是区块链生态中不可或缺的部分了。
Moonbeam:兼容以太坊的合约平台
Moonbeam 的定位是兼容以太坊的波卡智能合约平台。想让开发者能够以最少的更改,将现有的 Solidity 智能合约和 DApp 部署到 Moonbeam。主要为那些已经在以太坊上进行了开发,想要多链发展的智能合约提供一个入口,来便捷地部署到波卡生态中,还可以使用以太坊上的各种工具。
最大程度兼容以太坊
Moonbeam 链对 以太坊 的兼容主要通过使用 Frontier 层 来实现。Frontier 由 Parity开发,Moonbeam也有一定的参与,它是 Substrate 上的以太坊兼容层,能让基于 Substrate 的链运行未经修改的以太坊合约。Frontier 目前还在开发中,主要包括以下几个模块:
-
Web3 RPC 模块:现有的工具和应用程序就是通过 Web3 RPC 与以太坊交互的,Moonbeam 部署了 Web3 RPC,就可以让现有的工具和应用连接到 Moonbeam,而对于这些工具和应用来说,就像只是连接到了另一个以太坊网络一样。举个例子,只需要对 MetaMask 进行简单的配置,就可以让 MetaMask 指向一个基于 Moonbeam 的节点,然后用户就可以正常地像平时一样使用 MetaMask,而对于 MetaMask 来说它只是在和 Moonbeam 上的 Web3 RPC 或 API 对话。
-
Ethereum 模块:模拟了以太坊如何工作,包括区块、收据、日志、能够订阅日志事件等。
-
完整的 EVM 实现:EVM 是以太坊的合约虚拟机,Moonbeam 集成了 EVM 模块,从而兼容以太坊上的 EVM。
Moonbeam 上的地址使用 H160 账户地址、用于签署交易的密钥使用 EDCSA。虽然这意味着用户可以使用原有的以太坊账户和密钥来和 Moonbeam 交互,但也同时意味着在波卡中使用的公私钥无法在 Moonbeam 上使用。
总的来说,Moonbeam 在尽可能兼容以太坊 Layer 1。这些措施可以让现有的以太坊合约只需要 很小的改变 ,就能很容易地部署到 Moonbeam 上。但同时,由于 Moonbeam 对以太坊选择了全盘继承,在一些 Substrate 本来已经做出优化的点上,Moonbeam 也只能继续 沿用以太坊的旧方案 ,这可能会让其上面的智能合约继续被以太坊的思路限制,比如过大的节点和不合理的 gas 机制等。
开发者激励
Moonbeam 计划推出两个网络,分别是部署在 Kusama 上的 Moonriver 和部署在波卡上的 Moonbeam,两个网络都将拿出占总量 4.5% 的代币作为 “开发者培养计划” ,用以激励早期采用其网络的开发者。
Plasm:Layer 2 可扩展 + 兼容以太坊的合约平台
支持 EVM + Wasm虚拟机
Plasm 同样也引入 Frontier 来兼容以太坊。与 Moonbeam 不同的是,Plasm 打算同时支持 EVM 和 Wasm虚拟机,让 Plasm 上既可以用 EVM 运行以太坊上已有的 Solidity 合约,也可以运行用 ink! 编写的Wasm合约。Plasm 还引入了 Solang,支持将 Solidity 编译为 Wasm 在 Wasm虚拟机上运行。
Layer 2 可扩展性
Plasm 还有一个特点就是在 Layer 1 和 Layer 2 上都支持智能合约功能,来进一步提升可扩展性。Plasm 引入了一种支持所有二层协议的虚拟机 OVM,支持了 Plasma、闪电网络等众多二层扩展方案,从而能在 Layer 2 进行代币的转账。再通过引入支持 Layer 2 智能合约的扩展方案 Rollups,来在 Layer 2 上也能使用智能合约。目前 Plasm 已经成功将 ZK Rollups 部署到了 Plasm 网络上。
创新点:DAppRewards机制
通过经济机制对开发者进行激励也是一个吸引开发者的办法。Plasm 设计了 DApprewards机制,将 Plasm 网络中的 50% 的 staking 奖励分配给 DApp(或智能合约)开发者。网络中的其他用户也可以通过提名来参与智能合约,DApp 提名人也可以获得和质押数量成正比奖励。
Acala:专注于 DeFi 的合约平台
Bodhi:在兼容以太坊的同时保留 Substrate 的优势
Acala 的定位是做波卡上的 DeFi Hub,由于现有的很多 DeFi 合约都部署在以太坊上,所以 Acala 也考虑了以太坊的兼容性。
Moonbeam 和 Plasm 都集成了当前的 Substrate EVM 兼容性解决方案,即用 Frontier 模拟以太坊的节点。它旨在实施全套以太坊 RPC 并模拟以太坊区块生产过程,从而让现有的以太坊工具(例如 Metamask 和 Remix )可以与启用了 Frontier 的节点无缝协作。
但 Acala 认为,像 Frontier 这种模拟以太坊节点,全盘继承以太坊优缺点的方式,可能并不是那些选择波卡生态的智能合约真正想要的。Acala 将 EVM 视为 Acala/Substrate/Polkadot 的一部分,希望让 Acala 网络提供与以太坊截然不同的体验。
因此,Acala 将采用一套自行开发的以太坊兼容方案 - Bodhi 。这套方案不兼容以太坊 RPC,而是做了一个 JavaScrpt SDK,模拟 Web3 provider,可以把 Polkadot Extension 包装成类似 MetaMask 的扩展。这样现成的以太坊 Dapp 也能用 Polkadot Extension 来和 Acala EVM 交互。
同时 Bodhi 避免了以太坊的一些遗留问题,在兼容以太坊的同时保留了 Substrate 的优势。比如让 Acala 拥有可定制的经济机制、允许用户使用任何支持的代币支付交易费、本地跨链功能、链上治理机制(不再有锁定的资金)、完全可升级(无需进行合约迁移)等。而这些创新是在以太坊上不可能实现的。
不过,这也意味着以太坊上的合约想要部署到 Acala 上,可能还需要对代码进行一些调整来兼容 Acala 的经济模型。
专注于 DeFi 场景
和通用的合约平台不同,Acala 更注重 DeFi 场景的优化。部署合约可能也会设置一点门槛,来避免类似 Uniswap 假币泛滥的情况。同时还会整合 Acala 的 DEX、稳定币、Idot 等。
Patract:专注于 Wasm 的合约平台
完善的开发者工具和开发环境
之前说过,在波卡上建立智能合约平行链,要面临的一个问题就是缺少好用的开发环境和工具。对此,Moonbeam、Plasm 和 Acala 的方案都是:既然以太坊已经有了成熟的开发工具,那我们就提供一个方法,让开发者可以方便地去用以太坊的现成工具。
而 Patract 则认为 Wasm 虚拟机才是未来 ,所以专注在 Wasm 合约上。他们的方案是在波卡生态里搭建一整套的开源开发工具套件和开发、测试、发布环境,让开发者可以愉快地开发 Wasm 合约。Wasm 是波卡智能合约模块采用的一项较新的技术,基于 Wasm 的智能合约已经被证明比基于 EVM 的具有更好的性能和可扩展性,也可以使用更高级的 AssemblyScript、Rust、C++ 等高级语言编写 更复杂的合约应用 。
Patract 做的东西,在 开发者端 包括:
-
Jupiter:独立的智能合约测试网,提供给合约开发者测试合约链的环境。
-
Ask!:AssemblyScript 版的 Ink!合约框架,吸引TS/JS的开发者,给不愿意使用rust的合约开发者另一个选择。
-
Redspot:Wasm合约开发工作流和脚手架:对标Ethereum生态中的Tuffle/Redhat,让合约开发项目化,自动化的工具。Redspot采用插件化设计,运行开发者添加自己设计的插件丰富Redspot的功能。
-
Europa:Runtime 和合约运行沙盒:对标Ethereum生态中的EthereumJS/Ganache,给合约开发者提供了丰富的调试信息,便于快速开发合约。
-
Elara:实时和可扩展的波卡 API:对标Ethereum中的Infura,给合约项目方提供节点的Endpoint,不用自行搭建节点获取数据。Elara采用了Substrate-archive导出状态数据,可以平行扩展接受千万级访问。
-
Megaclite:零知识证明的底层支持:在Jupiter/Patract链中提供零知识原语支持,可以允许项目方设计zkRollup或其他零知识相关合约。
-
Metis:Ink! 合约标准库:对标Ethereum中的openzeppelin-contracts,给合约开发者提供可复用的轮子,不必从零开始编写合约代码。
-
Himalia:多语言合约 SDK:对标Ethereum中的Web3J,Web3Py等SDK,给合约项目方提供不同语言的环境,丰富的接口与合约进行交互
-
Leda:合约监控台:对标Ethereum生态中各类合约监控设施,让合约项目方随时监控合约的存储情况,代币转移情况,合约调用情况等等。
-
Carpo:专注开发合约的智能WebIDE:对标Ethereum中的Remix,但其将会是对Patract以上合约开发工具的集大成者。Carpo将采用最新的WebIDE技术,使得云端开发无限贴近本地开发,同时完整的云端让开发者无需搭建任何开发环境即可进行开发,开箱即用的Patract工具链给合约开发者提供了一体化开发体验,让开发者的开发、调试、测试和部署的合约过程如丝般顺畅。
在 用户端 包括:
-
Patra Store:作为 Patract 平行链钱包和 DApp 生态的入口,在测试网阶段将集成一些示例应用和配套开发工具套件用法演示,帮助开发者快速开发 Wasm 合约和前端界面,帮助用户快速进入波卡新合约生态。
-
Patra Scan:专门为智能合约链优化的区块链浏览器,集成比统一的链浏览器更丰富的合约数据信息展示,增强统计和自定义的查询功能。
使用 DOT 和 KSM 作为本地代币
Patract 也将运行一系列的智能合约平行链 Patract Network。
比较特别的一点是,Patract Network 不准备发行代币,而是争取成为波卡和 Kusama 的系统平行链,直接使用 DOT/KSM 作为 Patract 合约平台的代币。系统平行链就是指对于一些对波卡网络很有用,有利于网络公共利益的链,不需要再参与平行链竞拍,而是可以直接作为系统级平行链接入波卡。
如果这一点真的实现了的话,那么对于用户来说,可以直接使用 DOT/KSM 支付合约手续费,操作比较方便。对于 Patract 来说,等于直接导入了拥有 DOT/KSM 的用户群。
总结
总的来说,这四条波卡生态的智能合约链各有千秋。
Moonbeam 注重对以太坊的全面兼容,让开发者能够以最少的更改,将现有的 Solidity 智能合约和 DApp 部署到 Moonbeam。
Plasm 在兼容以太坊的同时,通过 Layer 2 的方案提高可扩展性,并且在 Layer 2 上支持智能合约。同时 Plasm 还通过 DApp 奖励计划来吸引合约开发者。
而 Acala 专注于 DeFi 场景,在兼容以太坊的同时进行了一些优化,还设置了一定的准入门槛,更适合部署金融领域的智能合约。
Patract 则是为 Wasm 合约开发者提供良好的开发环境和完善的工具,并且直接使用 DOT/KSM 作为原生代币,让开发者的体验更加顺滑。
这些 “后浪” 能否发展壮大,带动新一轮的创新,将智能合约和 DApp 生态推向新的高度呢?让我们拭目以待吧。