以太坊作為目前最大的智能合約平臺,其網路易擁堵、手續費高昂、交易速度慢等問題一直困擾著開發者和用戶,在冉冉升起的波卡生態中,也有一些項目在開發新的智能合約平臺,它們是否能解決以太坊現存的問題,將智能合約和 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:專門為智能合約鏈優化的區塊鏈瀏覽器,集成比統一的鏈瀏覽器更豐富的合約數據資訊展示,增強統計和自定義的查詢功能。
Patract Hub 工具一覽
使用 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 生態推向新的高度呢?讓我們拭目以待吧。