認識以太坊、EOS和Hyperledger等不同的區塊鏈
不同的區塊鏈智慧合約和區塊鏈技術現在風靡一時。越來越多的人出於某種原因試圖進入這個神奇的世界。如果你是這項技術的新手並正在尋找基於區塊鏈的開發平臺的快速入門,那麼本指南非常適合你。我們將重點關注和比較的平臺是:
- Ethereum
- EOS
- Hyperledger
- Cosmos
- Cardano
那麼,為什麼我們決定關注這5個平臺?我們認為這幾個平臺提供了可用性和功能性的組合。是的,我們也知道其中一些專案並未完全上線,但我們仍然認為專案的潛力足以保證我們的名單上有它一個位置。我們將先介紹每個平臺,然後在最後比較它們。
以太坊
毫無疑問,以太坊是智慧合約平臺的老大。以太坊背後的主要人物是Vitalik Buterin。Buterin對比特幣非常著迷,但他意識到區塊鏈技術比僅僅作為支付協議的推動者有更多的用途。他意識到可以使用區塊鏈技術來建立去中心化的應用程式。於是他被啟發創造了以太坊。
像比特幣一樣,以太坊是一種加密貨幣,然而,也就是這個地方還有些相似性。因為雖然比特幣是“第一代”區塊鏈,但以太坊通過成為有史以來第一個第二代區塊鏈打破了局面。以太坊通過在區塊鏈上引入智慧合約,徹底改變了加密世界。
智慧合約首先由Nick Szabo概念化。這個想法很簡單,在雙方之間有一套自動執行指令,不需要由第三方監督或執行。這個想法似乎很簡單,對吧?然而,智慧合約使以太坊能夠建立一個環境,來自世界各地的開發人員可以建立自己的去中心化應用程式,即Dapps。
Dapps和智慧合約
Dapp的創造是以太坊最重要的特徵之一。除了去中心化之外,還有Dapp必須具備的某些其他功能:
- Dapp的原始碼應該對所有人開放。
- 應用程式必須有某種代幣來為自己提供支援。
- 應用程式必須能夠生成自己的代幣並具有內建的共識機制。
聽起來很棒吧!那麼,你究竟如何構建它們呢?你需要使用solidity對智慧合約進行編碼。
開發人員使用一種名為Solidity的程式語言,這種語言是一種有目的的簡潔,鬆散型別的語言,其語法與ECMAScript(Javascript)非常相似。
除了建立智慧合約外,你還必須擁有可以執行它的環境。但是,此執行環境必須具有一些屬性。這些屬性是:
- 確定性。
- 可終止。
- 隔離的。
1.確定性
如果程式每次都給予給定輸入有相同的輸出,則程式是確定性的。例如。如果3+1=4則3+1總是4(假設基數相同)。因此,當程式將相同的輸出提供給不同計算機中的同一組輸入時,該程式稱為確定性。環境必須確保智慧合約的執行始終是確定的。
2.可終止
在數學邏輯中,我們有一個稱為halting problem(終止問題)的錯誤。基本上,它表明無法知道給定程式是否可以在一定時限內執行其功能。1936年,Alan Turing(阿蘭·圖靈)使用Cantor的對角線問題推斷出,沒有辦法知道某個節目是否可以在一個時間限制內完成。
這顯然是智慧合約的問題,因為根據定義,合約必須能夠在給定的時間限制內終止。因此環境必須能夠停止智慧合約的運作。
3.隔離
在區塊鏈中,任何人和每個人都可以上傳智慧合約。然而,正因為如此,合約可能在知情和不知不覺中包含病毒和錯誤。
如果合約沒有被隔離,這可能會妨礙整個系統。因此,將合約保持隔離在沙箱中以保護整個環境免受任何負面影響至關重要。
以太坊使用名為以太坊虛擬機器(EVM)的虛擬機器執行其智慧合約。
人們必須瞭解的下一個核心以太坊概念是gas。
什麼是以太坊gas?
還記得智慧合約環境的“終止”屬性嗎?好吧,以太坊智慧合約通過利用gas來實現這一特性。在智慧合約中編碼的每一行都需要一定量的gas才能執行。因此,當開發人員提交智慧合約以供執行時,他們還會指定最大gas限制。
想想gas限制是你在開車前裝滿汽車的燃料,燃料耗盡的那一刻,汽車停止工作。智慧合約中的每一行都需要一定量的gas才能執行。一旦gas耗盡,智慧合約就會停止執行。
以太坊和ICO
之前我們已經詳細介紹了這個主題,因此我們將簡要介紹一下這個問題。以太坊最吸引人的功能之一是初始代幣產品或ICO。世界各地的開發人員可以使用以太坊的虛擬機器來支援他們的智慧合約,並使用該平臺相對輕鬆地在擁擠的銷售中籌集大量資金。由於這個特點被大量的採用以太坊似乎已經走到了盡頭。
以太坊挖礦
目前的以太坊使用的是工作量證明來挖掘,即和比特幣使用相同挖掘過程。基本上,礦工通過利用他們的處理能力來解決複雜的加密難題,從而競爭鏈中的下一個區塊。
以太坊最終將利用Casper協議轉向權益證明。POS比POW更環保,並且可擴充套件性更高。
主要問題
毫無疑問,以太坊對加密世界產生了巨大影響,但是,其效能存在一些重大問題。截至目前,以太坊在可擴充套件性方面都失敗了。他們每秒只能管理25筆交易,這對於想要主流採用的Dapps來說並不理想。最重要的是,以太坊對於開發人員來說可能是昂貴的。執行dapps的gas價格可以已經要飛上天了。
除此之外,還有一個問題會影響以太坊和其他加密貨幣。這個問題是互操作性。截至目前,如果Alice擁有比特幣並且Bob擁有以太坊,那麼兩者之間沒有簡單直接的方式互動。這是一個非常大的問題,因為在未來,可能會有數千個並行執行的區塊鏈,並且應該有一種方式讓它們彼此無縫互動。
旨在解決這種互操作性問題的一個專案是Cosmos。
Cosmos
代幣:ATOM
Cosmos旨在成為一個“區塊鏈網際網路”,它將一勞永逸地解決這些問題。Cosmos的架構由幾個獨立的區塊鏈組成,稱為“區域”,附加到稱為“Hub”的中央區塊鏈。
根據Cosmos的白皮書,“這些區域由Tendermint Core提供支援,它提供了一個高效能,一致,安全的PBFT共識引擎,其中嚴格的fork-accountability保證可以控制惡意行為者的行為。Tendermint Core的BFT一致性演算法非常適合擴充套件公共股權證明區塊鏈。“
該專案背後是執行長Jae Kwon和首席技術官Ethan Buchman以及Interchain Foundation團隊。
什麼是Tendermint?
Tendermint是PBFT的變體,即實際拜占庭容錯。拜占庭容錯(BFT)系統是一個成功應對拜占庭將軍問題的系統。我們在 這裡 詳細介紹了拜占庭將軍的問題。為了保持簡短,為了使去中心化的點對點系統以無信任的方式運作,他們必須找到拜占庭將軍問題的解決方案。
正如cosmos白皮書所述:
“Tendermint提供卓越的效能。在分佈在5大洲的7個數據中心的64個節點的基準測試中,在商品雲實例上,Tendermint共識可以每秒處理數千個交易,提交延遲大約為1到2秒。值得注意的是,即使在惡劣的壓力測試條件下,每秒一千次交易的表現仍然保持不變。“
下圖支援上述宣告:
Tendermint的好處
對於250位元組的交易,Tendermint可以以每秒10,000個交易的速率處理。而且擁有更好,更簡單的輕客戶端安全性,使其成為移動和物聯網用例的理想選擇。相比之下,比特幣輕客戶端需要更多的工作並且有很多需求,這使得它對於某些用例來說是不切實際的。
- Tendermint擁有fork-accountability,可以阻止諸如長期無關緊要的雙重花費和審查等攻擊。
- Tendermint是通過Tendermint核心實現的,這是一個“與應用程式無關的共識引擎”。它基本上可以將任何確定性黑盒應用程式轉換為分散式複製的區塊鏈。 = Tendermint Core通過應用程式區塊連結口(ABCI)連線到區塊鏈應用程式。
區塊間通訊
正如我們之前提到的,Cosmos的架構將遵循Hub和Zones方法。將有多個並行區塊鏈連線到一箇中央Hub區塊鏈。想想太陽和太陽系。
Cosmos中心是一個分散式分類帳,個人使用者或區域本身可以儲存其令牌。這些區域可以使用IBC或Inter Blockchain Communication通過Hub進行相互互動。
見上圖,這是兩個區域如何通過IBC相互通訊的簡化版本。
Cosmos用例
Cosmos實現的互操作性有一些非常有趣的用例:
- DEX:由於Cosmos將如此多的區塊鏈相互連線起來,不言而喻,它可以輕鬆地使不同的生態系統相互互動。這是去中心交換的完美環境。
- 交叉鏈交易:同樣,一個區域可以通過Cosmos中心利用另一個區域的服務。
- 以太坊縮放:這是更多用例之一。根據架構,任何基於EVM的連線到Cosmos Hub的區域都將由Tendermint共識系統提供支援。這將使這些區域更快地擴充套件。
Cardano
代幣:ADA
作為以太坊聯合創始人Charles Hoskinson的心血結晶,Cardano是一個智慧合約平臺,但Cardano通過分層架構提供可擴充套件性和安全性。Cardano的方法在空間本身是獨一無二的,因為它建立在科學哲學和同行評審的學術研究之上。
Cardano是第三代區塊鏈,專注於為區塊鏈空間帶來可擴充套件性和互操作性。有三個組織全職工作來開發和照顧Cardano:
- Cardano基金會。
- IOHK。
- Emurgo。
這三個組織協同工作,以確保Cardano的發展進展順利。
功能程式設計
與其他智慧合約平臺相比,有一種非常有趣的情況使Cardano獨一無二。大多數其他智慧合約平臺都是通過指令式程式設計語言編碼的。Cardano使用Haskell開發原始碼,這是一種函數語言程式設計語言。對於其智慧合約,Cardano使用Plutus,這也是一種函數語言程式設計語言。
讓我們以直截了當的方式解釋兩種語言之間的區別。
在指令式程式設計語言中,加法的工作方式如下:
int a = 5; int b = 3; int c; c = a+b;
如你所見,它需要很多步驟。現在,看看它將如何在函數語言程式設計語言中工作?
假設我們想要使用函式f(x)來計算函式g(x),然後我們想用它來處理函式h(x)。我們可以簡單地將所有這些組合在一起,如下所示:
h(g(f(x)))
這使得函式方法更容易在數學上推理。
函式程式語言有助於提高可伸縮性,它還有助於使程式更加精確。
可擴充套件性
Cardano使用名為Ouroboros的新的股權證明演算法,該演算法確定各個節點如何就網路達成共識。該協議由OHK首席科學家Aggelos Kiayias教授領導的團隊設計。
Ouroboros是第一個在數學上被證明具有可證明的安全性的股權協議證明,並且是第一個通過同行評審,是通過同行評審的第一個證明,這是在領先的加密會議Crypto 2017時發生的。
互動性
Cardano計劃執行互動操作的方式是實現側鏈。
Sidechain作為一個概念已經在加密圈子中存在了相當長的一段時間。這個想法很簡單;你有一條與主鏈一起執行的平行鏈條。側鏈將通過雙向掛鉤連線到主鏈。
Cardano將根據Kiayias,Miller和Zindros(KMZ)的研究支援側鏈,涉及“非互動式工作量證明”。
根據Hoskinson的說法,側鏈的概念來自兩件事:
- 獲取區塊鏈的壓縮版本。
- 建立鏈之間的互操作性。
EOS
代幣:EOS
EOS的目標是成為一個去中心化的作業系統,可以支援工業規模的去中心化應用。EOS是Dan Larimer(BitShares和Steemit的創造者)和Block.One建立的。EOS長達一年最近成為ICO的焦點,這個ICO籌集了創紀錄的40億美元。
這聽起來很神奇,但真正吸引公眾想象的是以下兩種說法:
- 他們聲稱有能力每秒進行數百萬筆交易。
- 他們計劃完全取消交易費用。
通過DPOS實現可擴充套件性
EOS通過利用委託的股權證明(DPOS)共識機制實現其可擴充套件性,這是傳統的股權證明的變體。理論上它每秒可以進行數百萬次交易。
那麼,DPOS與傳統POS有何不同?在POS中,整個網路必須處理共識,在DPOS中,所有EOS持有者將選出21個塊生產者,他們將負責處理共識和一般網路健康狀況。任何人都可以參加區塊生成者選舉,他們將有機會建立與他們收到的所有其他建立人的總票數成比例的區塊。
DPOS系統沒有經歷分叉,因為生產者不必競爭發現區塊,而是必須合作。如果是分叉,則共識會自動切換到最長鏈。
可以想象,這些區塊生產商的重要性絕對不容小覷。他們不僅會處理共識,還會關注整體網路健康狀況。這就是為什麼每一次投票都具有適當權重非常重要的原因。
這就是為什麼Larimer引入了投票衰減(Voter Decay)的想法,這將減少舊選票隨時間的權重。保持投票權的唯一方法是定期投票。
Voter Decay機制帶來兩大優勢:
- 首先,正如我們一次又一次看到的那樣,民選官員可能會在當選後變得腐敗並改變他們的曲調。投票衰減系統讓選民有機會每週重新考慮他們的投票。這使得區塊生產者對他們的選民負責。
- 其次,人們只是隨著時間而改變。也許今天有人擁有的政治信仰和意識形態與一年前完全不同。投票衰減系統將允許人們投票給那些與他們新進化的意識形態更加一致的人。
這有可能成為一個真正的革命性概念,並且可以永遠改變去中心化投票(甚至是投票本身)。
取消交易費用
EOS使用所有權模型,使用者擁有並有權使用與其股權成比例的資源,而不必為每筆交易付費。因此,從本質上講,如果你擁有EOS的N個代幣,那麼你有權獲得N*k個交易。實質上,這消除了交易費用。
在傳送EOS代幣時,你可以獲得某些計算資源。你會得到:
- 記憶體
- 網路頻寬
- 計算頻寬。
EOS代幣以及支付代幣也可用作獲取所有這些資源的費用。
Hyperledger
最後,我們來看看Hyperledger。
Hyperledger,與我們迄今為止談論的所有平臺截然不同。雖然以太坊和EOS都是合適的加密貨幣並擁有自己的區塊鏈,但Hyperledger不是加密貨幣,也沒有自己的區塊鏈。Hyperledger是Linux Foundation的一個開源專案。在他們的網站上,Hyperledger將自己描述為“為推動跨行業區塊鏈技術而開創的開源協作努力。這是由Linux基金會主辦的全球合作,包括金融,銀行,物聯網,供應鏈,製造和技術領域的領導者。“
需要許可的區塊鏈
像以太坊,EOS等平臺都是公共區塊鏈,這意味著任何人都可以選擇加入網路。但是,對於需要自己的區塊鏈基礎設施的大企業來說,這是非常不受歡迎的。
想想銀行集團的區塊鏈。
銀行需要每天處理敏感資料。從他們的內部交易記錄到KYC資料,有很多專案他們根本無法向公眾透露。此外,只有經過網路中其他銀行審查的銀行才能進入網路。
此外,正如我們之前已經介紹過的那樣,公共區塊鏈很慢並且存在效能問題,這對於大型公司來說也是一個很大的禁忌。
Hyperledger允許這些公司建立他們自己的高效能許可區塊鏈(也就是區塊鏈,其中每個節點必須在進入前進行審查)。
Hyperledger下的有趣專案
也許Hyperledger系列中最有趣的專案是IBM的Fabric。區塊鏈Fabric是開發基於區塊鏈的解決方案的基礎,具有模組化架構。
使用Fabric區塊鏈的不同元件,如共識和會員服務可以變得即插即用。Fabric旨在提供一個框架,企業可以將自己的獨立區塊鏈網路組合在一起,可以快速擴充套件到每秒超過1,000個交易。
除了Fabric,你還有:
- Sawtooth:由英特爾開發並使用經過驗證的時間共識機制。
- Iroha:由幾家日本公司開發的易於使用的區塊鏈框架。
- Burrow:沿著以太坊的規範建立一個需要許可的智慧合約機。
不同的區塊鏈:比較所有平臺
好吧,現在我們已經熟悉了這些平臺,讓我們比較所有這些平臺:
==================================================================
分享一些以太坊、EOS、比特幣等區塊鏈相關的互動式線上程式設計實戰教程:
- java以太坊開發教程,主要是針對java和android程式設計師進行區塊鏈以太坊開發的web3j詳解。
- python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
- php以太坊,主要是介紹使用php進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和交易等內容。
- 以太坊入門教程,主要介紹智慧合約與dapp應用開發,適合入門。
- 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
- C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括賬戶管理、狀態與交易、智慧合約開發與互動、過濾器和交易等。
- EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智慧合約開發與部署、使用程式碼與智慧合約互動等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
- java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Java程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
- php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Php程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
匯智網原創翻譯,轉載請標明出處。這裡是原文 認識以太坊、EOS和Hyperledger等不同的區塊鏈