點擊上方“Unitimes”
可以訂閱哦!

unitimes.io

全球視角,獨到見解

Ivy-lang、Plutus、Solidity、Scrypto、Michelson、Hoon、Rust……還有哪些?

這麼多語言,我何時纔有時間去探索 ? 它們中的絕大多數都很少被使用,這使得采用它們變得非常困難。Solidity 在其中處於領先地位,儘管它並不是一門容易入門的語言。本文將對以下平臺進行評測並給出新的見解:Ethereum、Hyperledger
Fabric、NEM、Stellar、iOlite、Neblio 和 Lisk。

首先,以下是所有現有的智能合約平臺的概述:

尋找合適的智能合約平臺

下來我將介紹一些現有的智能合約平臺和一些即將推出的平臺,我是根據成熟程度、靈活性和它們給我們的生態系統帶來的創新程度等維度選擇到它們的。

Ethereum—古老而寶貴

Ethereum (以太坊)一直是一個可靠的選項。Ethereum 是智能合約領域的黃金標準,在其它平臺中擁有最大的擁戴。大多數代幣都是使用 ERC-20 代幣標準,並在 Ethereum 平臺上進行銷售的。

然而,這個標準有一些嚴重的缺陷,已經導致了行業的重大損失。我來解釋一下。

ERC-20 標準假設的有兩種執行代幣交易的方式 :

1、transfer(): 將代幣發送到某人的地址。
2、approve() + transferFrom(): 將代幣存入智能合約。

但是,如果您意外地使用 transfer() 將代幣發送到智能合約,會發生什麼情況呢 ? 答案是該交易將成功,但接收方合同將不承認該交易。

例如,如果您將代幣發送到去中心化的交換合約,那麼交換合約將接收您的代幣,但不會將這些代幣貸記到您的交換代幣餘額中。此外,如果去中心化交換合約沒有實現緊急大筆提取功能,那麼無論如何都不可能取回代幣,從而導致代幣永久丟失。由於這個漏洞,Ethereum 生態系統已經損失了數百萬美元。

此信息由 Reddit 用戶 u/Dexaran(源文章) 提供,他是 ERC223 標準的創建者。Dexaran 是第一個通知 Ethereum 社區關於上述錯誤的開發者。爲此,他創建了 ERC223 標準。

大多數開發人員都不知道這個 ERC223 和 ERC77 標準。現在我對這兩種標準做一個簡短的比較 :

ERC223:這個改進的標準解決了 ERC20 關鍵錯誤,方法是讓 transfer() 函數在無效的傳輸上拋出一個錯誤,並取消事務,這樣就不會損失任何資金。→關注安全。

ERC777:解決 ERC20 的問題,例如缺乏交易處理機制。→關注主流應用。

正如大家所看到的,在採用更好更安全的代幣標準方面,社區仍然需要努力。

NEM

可擴展性是 NEM 去中心化應用程序中最關鍵的一點。ETH 每秒最多處理 15 個事務,而 NEM 每秒處理數百個事務。NEM 基金會優先考慮安全性和可用性,因此企業家要處理其他問題,而不是技術難題。

雖然 NEM 據說是更快、更安全、更容易的技術,但是 Ethereum 提供了一個創建定製 DApps 的更廣泛基礎,這裏的主要區別在於 ETH 是在區塊鏈上應用它的智能合約,而 NEM 使用的是區塊鏈之外的代碼。只一點儘管可能會使 NEM 不那麼去中心化,但是該方法確實有它的優點,例如更安全、更易更新、更快執以及更輕的代碼。

Reddit 用戶 Nemario 告訴我,合約代碼可以隨時更新,而完全不需要與鏈進行任何交互,不會執行反向事務。這使得 NEM 在某種程度上不是那麼去中心化,但是像多重簽名和智能資產這樣的鏈上安全特性減輕了這個“問題”。

NEM 有定製的數據管理應用程序,稱爲智能資產,通過只需點擊幾下,你就可以創建代幣、數據記錄、投票系統等。Ethereum 是針對哪些打算在未來 5 到 10 年內重建內部網絡的公司,NEM 針對的是那些尋求快速、安全、準備好使用當前解決方案的公司。看看有哪些構建在 Ethereum 之上而採用 NEM 的公司將是一件有趣的事情,這部分部分來源:www.cryptosumer.com

NEM 提供了幾個 sdk,在其下你可以找到一個傳輸事務的 NodeJS 片段。

Hyperledger Fabric (HLF)

恆星智能合約 (SSC) 與 Ethereum 智能合約有很大區別。它們不是圖靈完備的,而是作爲多方之間的協議來實現,並通過交易來執行的。下面你可以看到恆星和 Ethereum 之間的對比。注意在成本和確認時間上的巨大差異:在 Stellar 網絡上,單筆交易僅需 0.0000002 美元 !

SSCs 可以用恆星社區提供的任何語言編寫 (JavaScript、Python、Golang、PHP…)。在 PHP 中可以找到一個智能合約示例。

SSC 表示爲使用各種約束連接和執行的交易的組合。以下是在創建 SSCs(來自 Stellar 文檔) 時可以考慮和實現的約束示例 :

多重簽名——授權某個操作需要什麼密鑰 ? 爲了執行這些步驟,哪些各方需要就某個情況達成一致 ?

多重簽名 (Multisignature) 是一種概念,它要求多方簽名,以簽署源於賬戶的交易。通過簽名權值和閾值,創建了簽名中權力的表示。

批處理或原子性——哪些操作必須同時發生或失敗 ? 爲了迫使它失敗或通過,必鬚髮生什麼 ?

批處理是在一個交易中包含多個操作的概念。原子性是指給定一系列操作,如果一個操作失敗,在提交給網絡時,交易中的所有操作都會失敗。

順序——應該以什麼順序處理一系列交易 ? 限制和依賴是什麼 ?

序列的概念是通過序號在恆星網絡上表示的。利用交易操作中的序號,可以保證在提交替代交易時,特定交易不會成功。

時間限制——什麼時候可以處理交易 ?

時間界限是對交易有效的時間段的限制。使用時間界限可以在 SSC 中表示時間週期。

建設中的平臺

我們不能忘記正在開發有前途的智能合約產品的平臺。讓我們來看看我們的未來選擇。

iOlite — 用自然語言開發智能合約

iOlite 是一款專注於大量採用智能合約技術的產品,它提供了一個易於使用的引擎,能夠理解自然語言,並被編譯成智能合約代碼。如果你不想花時間去學習,只想開發智能合約,iOlite 是理想的解決方案。

iOlite 基於斯坦福大學的研究。他們發明了 FAE(快速適應引擎),它能夠將自然語言或任何其他需要的編程語言轉換成智能合約代碼。FAE 不僅僅是將輸入直接翻譯成代碼。FAE 依賴於能夠定義包含語言表達式的結構的貢獻者 (智能合約)。此外,這些結構與他們編寫的智能合約代碼綁定在一起。這允許引擎瀏覽上述結構以找到正確的表達式,以便編譯所需的智能合約。無論何時使用結構,貢獻者都會獲得 iOlite 代幣的獎勵。

如你所見,iOlite 依靠他們的社區使 FAE 成功。FAE 通過機器學習技術幫助社區成員更容易地學習和採用新的結構。

iOlite 實驗室目前正專注於 Solidity 語言的以太網智能合約,這方面的需求量很大。

來自 iOlite 團隊的 Travis
Byrne 解釋了哪些語言可以用來創建智能合約。這意味着,不僅程序員 (在 Python、C、JavaScript 等正式語言中) 可以立即使用他們現有的技能來編寫智能合約,即使沒有任何編程知識的普通人也可以輕鬆地開始使用英語等自然語言進行智能合約開發。iOlite 正在爲創建智能合約消除現有的技術學習邊界。

Neblio — 商用區塊鏈

Neblio 的目標是通過 8 種最常用的編程語言中易於使用的 api,將區塊鏈集成到已有的企業中,爲現有業務提供一個易於使用的區塊鏈。開發人員而不是區塊鏈專家應該能夠使用 Neblio 區塊鏈技術。Neblio 提供了一個樹莓派的錢包來賭你的硬幣。下載源代碼後,只需一個命令就可以設置錢包本身。通過放置代幣和運行節點,您可以通過 POW 方式來幫助維護錢包,作爲回報,您可以獲得在放置代幣量的 10% 的收益。

你沒有義務日日夜夜地播放你的樹莓派。Neblio 讓你總共有 7 天的停機時間。在此期間,當你的樹莓派被關閉,但你的帶幣仍然會生息,不過你不能發現區塊 (因此會得到獎勵)。錢包本身消耗的能量非常少,這使得持有 Neblio 硬幣以獲得更穩定的硬幣價格的具備巨大動力。本部分來源 :Reddit。

你可能會問自己 : 你的樹莓派 (Raspberry
Pi) 怎麼能一直保持更新狀態呢 ? 如果你用一個 Ethereum 節點來做這個,你將不得不連續數小時同步下載新數據。

這得益於 Neblio 想出的一個叫做 quicksync 的很酷的功能,它可以在不到一分鐘的時間內同步你的節點。現在,每晚午夜時分,Neblio 區塊鏈的新版本都會被上傳到 Github。樹莓 Pi 默認情況下會在第一次安裝時從 Github 下載區塊鏈數據,或者在關閉節點幾天後將其解壓縮到 Neblio 數據目錄,然後同步剩下的幾個小時。這將導致近乎即時的同步。這部分來源 :Reddit。
那麼快速同步的安全性如何呢 ? 錢包仍將驗證所有交易。如果有任何錯誤的交易,它將無法同步到最新的塊。因此,快速同步下載區塊鏈同樣安全。

Lisk — 定製區塊鏈

**
**

Lisk 從事的不是智能合約業務。Lisk 打算通過虛擬機集成來實現與智能合約系統 (如 Ethereum) 的接口。更清楚地解釋是:Lisk 不是一個智能合約系統,它是一個定製的區塊鏈系統。Lisk 已經建立了自己的商業模式,圍繞着如何創建一個簡化的用戶體驗和平臺來輕鬆地爲任何人實現定製的區塊鏈,客戶從個人、小企業到大銀行都能覆蓋。

Lisk 在一個完全獨立的側鏈上運行每個應用程序,獨立的側鏈對自己負責。如果側鏈失敗了,責任和責任就完全落在了運行側鏈的開發人員的肩上。

Lisk 的另一個好處是它的共識算法。他們使用 DPOS,這比 POS 更快,更安全,消耗的能源更少。你可以在 這裏瞭解更多。

最後一點目前還存在爭議,可能是個人偏好的問題:Lisk 正試圖利用幾十萬強大的 JavaScript 開發人員社區,使用 JavaScript 來構建整個生態系統。這使得傳統 web 應用程序開發人員很容易構建與 Lisk 定製區塊鏈的接口。他們不需要學習一門新語言,JavaScript 已經經過了徹底的測試,不過它的問題也已經得到了足夠的證明 (JavaScript 還遠遠不夠完美)。

總結

很難對所有平臺進行比較,因爲這取決於您的需求。最好從多方面看看每個平臺的成熟度,包括 SDK、構建工具、是否有適當的文檔等,因爲這是一個很好的指標。當你想要快速原型化智能合約時,iOlite 也是一個不錯的選擇。在我看來,就低成本和快速區塊鏈確認時間而言,Stellar 是即將到來的強勁對手。

作者:Michiel Mulders

原文網址:

https://hackernoon.com/comparison-of-smart-contract-platforms-2796e34673b7
翻譯:花未容

來源:蟲洞社區

【文章版權歸原作者所有,其內容與觀點不代表 Unitimes 立場。轉載文章僅爲傳播更有價值的信息,合作或授權聯繫請發郵件至 [email protected] 或添加微信 unitimes2017】