1. 程式人生 > >智慧合約開發2019年新趨勢

智慧合約開發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/


學習交流QQ群:
在這裡插入圖片描述


原文連結:智慧合約開發新趨勢2019 - 匯智網