Coinversation 的選擇!一文了解 Polkadot 生態中的智慧合約

2020-09-20 11:01:05

在這裡插入圖片描述

Coinversation 的選擇!一文了解 Polkadot 生態中的智慧合約

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 模組

基於 Runtime 模組開發的目的是產生高效快速的節點,它提供了對整條區塊鏈的底層存取介面,可以完全控制區塊鏈的底層邏輯,可以存取所有模組中的任何儲存項,並對其進行修改和控制。

但是,Runtime 模組對開發人員有很高的門檻,低水平的開發者可能會用不正確的邏輯或糟糕的錯誤處理構建一條區塊鏈。同時,它不提供交易還原保護,也沒有向節點執行的計算引入收費系統。在進行 Runtime 模組開發時,必須正確評估 Runtime 邏輯的各個部分並對其計算費用,避免被破壞者濫用而損害整個區塊鏈網路。

智慧合約

Substrate 智慧合約允許使用者在區塊鏈核心邏輯的基礎上增加業務邏輯,同時建立了防範破壞者的保護機制。

智慧合約對於區塊鏈本質上說更安全,因為智慧合約不能直接修改區塊鏈或其他智慧合約的儲存狀態,它的能力僅限於修改自身的狀態以及對其他智慧合約或 Runtime 函數進行外部呼叫。執行智慧合約過程中的計算和儲存狀態都將被強制收取費用,這確保了區塊鏈資源不會被濫用和無限儲存。因各種因素導致智慧合約執行失敗時,智慧合約不會更新狀態,同時會交易回滾。當然,這些管理開銷會降低智慧合約執行的效率,並增加執行的成本。

Coinversation 的選擇

Substrate Runtime 模組和 Substrate 智慧合約都是解決問題的工具,至於選擇哪種工具來解決問題,取決於問題本身的需求,以及開發、部署和維護所要付出的成本。

在這裡插入圖片描述

Coinversation 的選擇!一文了解 Polkadot 生態中的智慧合約

Coinversation Protocol 是一個合成資產發行協定與合約交易平臺,整個系統主要的功能模組有:用抵押鑄造合成資產、去中心化合約交易所、抵押池、費用池、預言機、流動性挖礦。其中,Coinpro.MintC (鑄造和銷燬 cUSD 的鑄幣中心)和 Coinpro.Exchange (交易合成資產的去中心化交易所)是系統的核心產品。考慮到核心產品需要有嚴格的資源控制機制,以及交易回滾的保護機制,因此決定採用 Substrate 智慧合約的方式來開發。