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 Protocol 是一个合成资产发行协议与合约交易平台,整个系统主要的功能模块有:用抵押铸造合成资产、去中心化合约交易所、抵押池、费用池、预言机、流动性挖矿。其中,Coinpro.MintC (铸造和销毁 cUSD 的铸币中心)和 Coinpro.Exchange (交易合成资产的去中心化交易所)是系统的核心产品。考虑到核心产品需要有严格的资源控制机制,以及交易回滚的保护机制,因此决定采用 Substrate 智能合约的方式来开发。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。