
Polkadot 是基於Substrate 區塊鏈開發框架開發的異構多鏈系統,Substrate 為開發區塊鏈提供了必要的基礎功能模塊,開發者可以使用Substrate 為特定業務搭建平行鏈。
Polkadot 作為中繼鏈,雖然本身不支持智能合約,但Substrate 為智能合約功能加到平行鏈上提供了解決方案,其合約模塊支持Wasm 智能合約。
智能合約語言ink!
Polkadot 生態中的智能合約平台以Wasm 虛擬機為主,從EVM 到WebAssembly 是智能合約虛擬機發展的趨勢,ETH 2.0 也將會支持Wasm 虛擬機。
ink! 是一種嵌入式領域專用語言(Embedded domain specific language,簡稱eDSL),是為基於Substrate 區塊鏈開發框架開發的區塊鏈,提供編寫Wasm 智能合約的解決方案。 ink! 建立在Rust 語言之上,遵循Rust 語言的規則和語法,它設計的目標是友好、簡潔和高效。
ink! 語言由三個抽象層組成,其中Core 層包含了實現智能合約的核心功能,Lang 層基於Core 和Model 層之上,大部分開發者只需用到Lang 層就可以編寫智能合約代碼了。
智能合約vs Runtime 模塊
使用Substrate 構建去中心化應用程序有兩種不同的方法:Substrate Runtime 模塊和Substrate 智能合約。
Runtime 模塊
智能合約
智能合約
智能合約
Substrate 智能合約允許用戶在區塊鏈核心邏輯的基礎上增加業務邏輯,同時建立了防範破壞者的保護機制。
智能合約對於區塊鏈本質上說更安全,因為智能合約不能直接修改區塊鍊或其他智能合約的存儲狀態,它的能力僅限於修改自身的狀態以及對其他智能合約或Runtime 函數進行外部調用。執行智能合約過程中的計算和存儲狀態都將被強制收取費用,這確保了區塊鏈資源不會被濫用和無限存儲。因各種因素導致智能合約執行失敗時,智能合約不會更新狀態,同時會交易回滾。當然,這些管理開銷會降低智能合約執行的效率,並增加運行的成本。
Coinversation 的選擇
Substrate Runtime 模塊和Substrate 智能合約都是解決問題的工具,至於選擇哪種工具來解決問題,取決於問題本身的需求,以及開發、部署和維護所要付出的成本。
Coinversation Protocol 是一個合成資產發行協議與合約交易平台,整個系統主要的功能模塊有:用抵押鑄造合成資產、去中心化合約交易所、抵押池、費用池、預言機、流動性挖礦。其中,Coinpro.MintC (鑄造和銷毀cUSD 的鑄幣中心)和Coinpro.Exchange (交易合成資產的去中心化交易所)是系統的核心產品。考慮到核心產品需要有嚴格的資源控制機制,以及交易回滾的保護機制,因此決定採用Substrate 智能合約的方式來開發。