今天,我们就来对比波卡上的四个智能合约(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:专门为智能合约链优化的区块链浏览器,集成比统一的链浏览器更丰富的合约数据信息展示,增强统计和自定义的查询功能。
Patract Hub 工具一览
使用 DOT 和 KSM 作为本地代币
Patract 也将运行一系列的智能合约平行链 Patract Network。
比较特别的一点是,Patract Network 不准备发行代币,而是争取成为波卡和 Kusama 的系统平行链,直接使用 DOT/KSM 作为 Patract 合约平台的代币。系统平行链就是指对于一些对波卡网络很有用,有利于网络公共利益的链,不需要再参与平行链竞拍,而是可以直接作为系统级平行链接入波卡。
如果这一点真的实现了的话,那么对于用户来说,可以直接使用 DOT/KSM 支付合约手续费,操作比较方便。对于 Patract 来说,等于直接导入了拥有 DOT/KSM 的用户群。
总结
总的来说,这四条波卡生态的智能合约链各有千秋。
EVM 合约Wasm 合约开发者激励计划优势Moonbeam支持未公布4.5% 代币作为开发者激励完全兼容以太坊Plasm支持支持50% 代币作为 Staking 奖励支持 Layer2 + 创新的激励机制Acala支持未公布未公布兼容以太坊的同时增加了 Substrate 的创新Patract不支持支持未公布完全针对波卡 Wasm的合约
Moonbeam 注重对以太坊的全面兼容,让开发者能够以最少的更改,将现有的 Solidity 智能合约和 DApp 部署到 Moonbeam。
Plasm 在兼容以太坊的同时,通过 Layer 2 的方案提高可扩展性,并且在 Layer 2 上支持智能合约。同时 Plasm 还通过 DApp 奖励计划来吸引合约开发者。
而 Acala 专注于 DeFi 场景,在兼容以太坊的同时进行了一些优化,还设置了一定的准入门槛,更适合部署金融领域的智能合约。
Patract 则是为 Wasm 合约开发者提供良好的开发环境和完善的工具,并且直接使用 DOT/KSM 作为原生代币,让开发者的体验更加顺滑。
这些 “后浪” 能否发展壮大,带动新一轮的创新,将智能合约和 DApp 生态推向新的高度呢?让我们拭目以待吧。