今天,我們就來對比波卡上的四個智能合約(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 生態推向新的高度呢?讓我們拭目以待吧。