智能合約開發新趨勢【2019】

智能合約開發語言已經被Solidity統治了一段時間,它用於開發可以在以太坊虛擬機EVM上運行的智能合約。不過Solidity有一些嚴重的問題,包括算術溢出、類型錯誤以及曾經凍結了3億美元的delegatecall漏洞。所有這些漏洞都是在開發語言層面存在的問題。換句話說,如果有一個好點的開發語言,本來應該可以創造更安全的智能合約。文本將列出在2019年值得關注的區塊鏈智能合約開發技術趨勢。

上匯智網,用互動方式學習以太坊、比特幣、EOS、tendermint等更多區塊鏈開發教程

2019年,Solidity的挑戰者終於來了。

Waves RIDE

Waves RIDE是一個圖靈不完備(沒有循環或遞歸)的、收Haskell啓發的函數式編程語言,
用於Waves區塊鏈。它的特點包括靜態類型、惰性評估、模式匹配和用於決定交易是否允許
完成的斷言表達式。目前圖靈完備的版本也在開發中。Wave的智能合約支持目前在主網上
已經激活。我們應當可以在2019年看到第一批Waves的dApp。

官方地址:https://docs.wavesplatform.com/en/technical-details/ride-language.html

Plutus (Cardano)

Plutus是另一個類Haskell的函數式編程語言,用於Cardano區塊鏈。Cardano計劃在2019年
有兩個大的發佈:Shelley提供完全去中心化和抵押功能,而Cardano-CL則是支持可編程智能合約
的虛擬機。

官方地址:https://cardanodocs.com/technical/plutus/introduction/

Scilla (Zilliqa)

Scilla是一個認證過的智能合約開發語言,它在設計時就考慮了分離計算過程與效果,這意味着
計算和狀態遷移的通信是嚴格隔離的,這使得Scilla智能合約更容易測試,並且可以靜態驗證
以最小化發生錯誤的機會。

Zilliqa的主網計劃在2019年1月底上線。

官方地址:https://scilla-lang.org/

ewasm (Ethereum)

ewasm不是一個智能合約開發語言,而是一個編譯器的生成目標,它允許以太坊開發者使用其他
語言(例如Rust、C++等)開發智能合約並編譯爲以太坊接受的WebAssembly。

ewasm是WebAssembly的一個安全子集,它是web平臺上相對新出現的編譯目標。方便的是,wams
(以及ewasm)模塊可以在任何JavaScript項目中使用。對於大多數區塊鏈代碼來說,通常75%
以上的代碼根本都不是智能合約 —— 而是使用JavaScript與智能合約進行通信的代碼。ewasm和
JavaScript使用同樣的綁定和模塊支持機制。

官方地址:https://github.com/ewasm/design

JavaScript (Lisk)

List是一個區塊鏈開發平臺,它支持開發者使用JavaScript爲特定應用開發並創建定製區塊鏈,
從而避免了以太坊的擴容問題。List允許開發者創建自己的側鏈來管理所有與特定應用的區塊鏈
操作,因此它不需要與其他應用競爭主鏈上的計算資源。目前List沒有開發自己的智能合約編程
語言或者VM,其交易能力類似於比特幣。

官方地址:https://lisk.io/

Rust (via ewasm, Cardano client)

Rust是一個類似C的底層開發語言,包含一些類似Haskel的安全特性,例如得到保證的常量引用以
避免意外修改、靜態阻止空指針異常、有狀態類型只允許訪問當前狀態下的有效操作、模式匹配分析
以保證函數完整性(一個不匹配的模式將導致編譯時錯誤)...基本上Rust類似於C++和Haskell的
純優點的繼承者。

Rust可以編譯爲ewasm,或者用於構建區塊鏈的客戶端代碼,例如Cardano。List的模塊也可以
使用Rust開發,然後編譯爲wasm導入到List項目中。

官方地址:https://www.rust-lang.org/


匯智網翻譯整理,轉載請標明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章