以太坊與 Tezos 都是智能合約平臺,但在治理、共識算法與智能合約語言方面進行了差異化探索。

原文標題:《Tezos VS Ethererum: [ 終極比較指南]》
撰文:Rajarshi Mitra
翻譯:SHOU

Ethereum 和 Tezos 是兩個值得研究的令人興奮的項目。它們都是智能合約平臺,旨在通過吸引儘可能多的開發人員來創建高質量的 DApp 來豐富 DApp 生態系統。 因此,在 Tezos VS Ethererum 中,我們更深入地研究了這兩個平臺,尤其是它們之間的差異。

Ethereum 概覽

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

主要亮點

  • 2013 年 11 月:Vitalik Buterin 發佈以太坊白皮書。
  • 2014 年 1 月:以太坊平臺開發公告。最初的以太坊開發團隊由 Vitalik Buterin、Mihai Alisie、Anthony Di Iorio 和 Charles Hoskinson 組成。
  • 2014 年 8 月:以太坊結束其 ICO ,募集 1840 萬美元。
  • 2015 年 5 月:「 Olympic 」 以太坊測試網發佈。
  • 2015 年 7 月 30 日:以太坊發展的第一階段 「 Frontier 」 發佈。
  • 2016 年 3 月 14 日:Homestead,第一個 「穩定的」 以太坊版本,在 1150000 塊高度發佈。
  • 2016 年 6 月:發生了 DAO 黑客事件涉及價值 5000 萬美元的 Ether ,佔當時流通 Ether 總量的 15%。
  • 2016 年 10 月 25 日: Ethereum Classic 分叉原來的以太坊協議。
  • 2017 年 10 月 16 日: Metropolis Byzantium 硬分叉更新。
  • 2019 年 2 月 28 日: Metropolis Constantinople 硬分叉更新。

Tezos 概覽

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

主要亮點

  • 2014 年:Arthur Breitman 發佈了兩份白皮書,指出比特幣的缺陷並概述了 Tezos。
  • 2015 年 8 月:Arthur 和 Kathleen Breitman 在特拉華州註冊了一家名爲 Dynamic Ledger Solutions,Inc (DLS)的公司,負責 Tezos 的源代碼。
  • 2016:Tezos 基金會成立,南非企業家 Johann Gevers 成爲基金會主席。
  • 2017 年 7 月 1 日:Tezos ICO 啓動並持續 13 天,募集資金 2.32 億美元。
  • ICO 後 :Gevers 和 Breitmans 之間的關係惡化了。
  • 2018 年 9 月:經過漫長的等待,Tezos 測試版發佈。

Tezos VS Ethereum : 比較

我們將重點關注以下差異:

  • 治理
  • 共識算法
  • 智能合約語言

1 Tezos VS Etheruum: 治理 – 鏈下 vs 鏈上

Ethereum – 鏈下治理

以太坊通過以太坊改進提案(EIP)實施鏈下治理。EIP 是在鏈下運作的以太坊區塊鏈的改進提案。它們通常是詳細的設計文檔,爲改進以太坊區塊鏈提供建議。這些過程不會在區塊鏈上呈現、記錄、通過或投票。

根據以太坊指南,在進行 EIP 時需要牢記以下幾點:

  • EIP 必須有技術知識和規範的支持。
  • EIP 作者需要有影響力或獲得足夠的支持,以使 EIP 在不引起社區分裂的情況下獲得通過。
  • 該過程中最重要的部分是要求所有觀點都必須得到傾聽和考慮。
  • 您可以查看 EIP 文檔和圍繞它的所有討論,以全面瞭解進展情況。

EIPs 也可以來自 Ethereum 的評論請求(ERCs)。在這種情況下,也遵循同樣的程序。

什麼是 ERCs?

ERC 是通過以太坊提交供同行評審的改進提案。ERC-20 代幣標準是 ERC 的結果。一旦 ERC 顯示出改善以太坊生態系統的足夠希望,他們將在社區內進一步討論,並隨後轉變爲 EIPs 。

EIP 討論階段

在這一階段,以太坊的開發人員將舉行詳盡的討論和會議,討論有關的 EIP 是否足夠可靠能夠實現。這些開發人員深入參與了以太坊的開發。GitHub 有一個完整的會議室專門用於 GitHub 上的以太坊治理和開發,他們在那裏進行實時討論。如果開發人員覺得代碼升級會對生態系統產生積極影響,代碼才能實現。

更重要的是,對於大多數 EIP 來說,討論階段往往會被終結。開發人員不願意實現任何可能有點過於極端的更改,以避免遭遇像以太坊經典硬分叉那樣的事情。

這個過程既有缺點也有優點。當然,最大的障礙是這個過程需要很長時間。它的主要優點是每個 EIP 都經過了深入的研究,以至於通過的 EIP 常常會給生態系統帶來積極的變化。

以下摘自 Unblock 的流程圖應該能讓您瞭解整個流程是如何工作的。

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

Tezos – 鏈上治理

Tezos 通過自我修正和鏈上治理緩解了有爭議的硬分叉。自我修正有助於在無需進行硬分叉的情況下升級區塊鏈。鏈上治理僅僅意味着在平臺上對擬議的修正案進行投票。結合鏈上治理和自我修正,投票過程可以根據需要修改。系統的利益相關者(我們稍後將討論)負責投票。這個系統的設計可以讓區塊鏈平穩發展,而不必硬分叉。

所以,它到底是如何工作的呢 ?

  • 開發人員獨立提交協議升級提案和工作補償請求。
  • 補償要求確保開發者有強烈的經濟動機爲生態系統做出貢獻
  • 該提案經過一個測試期,在這個測試期內,社區對該方案進行了測試,並對其提出可能的改進。
  • 經過反覆測試,Tezos 代幣持有者可以投票決定是否應該批准這個提案。
  • 一旦確定了合法的升級,協議上就會發生 「 hot swap 」,從而啓動協議的新版本。

由於該系統的存在,協議以去中心化的方式被動升級。每個協議升級都要經過多個測試階段,並從社區獲得相關反饋。這確保了無論發生什麼改進,都會得到大多數社區的認可。這就避免了任何社區硬分叉的機會。

2 Tezos VS Ethereum- 共識機制

接下來是共識機制。 以太坊目前正在使用 Proof-of-Work(PoW) ,不過他們下一步將轉向 PoS。Tezos 正在使用 LPoS。

Ethereum – Proof-of-Work 和 Proof-of-Stake

PoW 的概念是讓礦工們利用他們的計算能力來解決加密難題。解決問題的礦工,在區塊鏈中添加新區塊,並獲得區塊獎勵。這個過程是這樣的:

  • 名爲 「 nonce」 的隨機字符串會附加到上一個塊的哈希中。
  • 將結果字符串進行哈希處理,然後根據網絡難度進行檢查。
  • 如果哈希滿足條件,則將該塊添加到鏈中。
  • 如果不是,則重複該過程直到獲得期望的結果。

關於 PoW,有兩點需要注意:

  • 獲得所需結果以滿足條件的過程非常困難,費時且需要大量資源。
  • 檢查礦工是否能夠成功開採一塊的過程應該很容易。

不久之後,礦工們發現,通過聯合起來並通過並行處理形成礦池,他們可以成倍地增加採礦能力。

在並行處理中,程序指令被分配給多個處理器。通過這樣做,程序的運行時間減少了,這基本上就是礦池正在做的事情。

PoW 機制的最大好處是它爲系統帶來的安全性。由於挖礦成本太高,因此礦工沒有任何動機去破壞該系統,而在任何平行鏈上進行的挖礦只是無緣無故地浪費自己的錢。

但是,PoW 鏈確實有很多缺陷:

  • 他們很慢。
  • 它們傾向於集中化。
  • 他們浪費很多資源。

這就是爲什麼以太坊將放棄 PoW 協議並轉向 PoS 的原因。

Ethereum 未來 – Proof of Stake (PoS)

以太坊計劃通過 Casper 協議使用 PoS。PoS 將使整個挖礦過程虛擬化,並用驗證者取代礦工。

這就是工作的流程:

  • 驗證者必須鎖定他們的代幣去 stake。
  • 之後,他們將開始驗證塊。也就是說,當他們發現一個他們認爲可以添加到鏈中的區塊時,他們會通過對其下注來驗證它。
  • 如果塊被確認,那麼驗證者將獲得與其下注成比例的獎勵。

正如您所看到的,PoS 協議比 PoW 更節約資源。在 PoW 中,您需要浪費大量資源來配合協議。

Casper 是以太坊選擇採用的 PoS 協議。Casper 是一個利用 PoS 和懲罰機制的協議。讓我們看看 Casper 下的 PoS 是如何工作的:

  • 驗證器拿一部分以太去 stake。
  • 之後,他們將開始驗證塊。也就是說,當他們發現一個他們認爲可以添加到鏈中的區塊時,他們會通過對其下注來驗證它。
  • 如果塊被確認,那麼驗證者將獲得與其下注成比例的獎勵。
  • 然而,如果驗證器惡意行事,他們將立即受到譴責,並削減他們的整個 stake。

如您所見,Casper 被設計爲在一個不可信任的系統中工作,並且更具有拜占庭式的容錯性。

任何以惡意行事的人都將立即受到削減其 stake 的懲罰。這就是它不同於大多數其他 PoS 協議的地方。惡意的人會損失一些東西,因此不可能無風險作惡。

如果以太坊計劃擴大規模,完美地實現 Casper 和 PoS 將是至關重要的。

Tezos – 流動 PoS

在深入研究 LPoS 之前,讓我們瞭解一下流動民主的含義。

流動民主是如何運作的?

流動民主是在直接民主和代議制民主之間流暢過渡的制度。

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

該過程具有以下特點:

  • 人們可以直接對政策進行投票。
  • 人們可以將他們的投票責任委託給一個可以爲他們投票的代表。
  • 代表們自己可以將他們的投票責任委託給另一個可以代表他們投票的代表。代表可以指定自己的委託這種屬性稱爲傳遞性。
  • 如果委託投票的人不喜歡他們的代表所選擇的投票,那麼他們就可以收回他們的投票,自己對政策進行投票。

那麼,流動民主有什麼好處呢?

  • 每個人的意見都是重要的,並在最終的政策制定中發揮作用。
  • 爲了成爲一名代表,需要做的就是贏得人們的信任。他們不需要在昂貴的競選活動上花費數百萬美元。因此,進入壁壘相對較低。
  • 由於可以在直接民主和授權民主之間切換,因此可以更公平地代表少數羣體。
  • 最後,它有一個可擴展的模型。任何沒有時間對自己的政策進行投票的人,都可以簡單地委託他們的投票責任。

什麼是流動 PoS?

Tezos 是一個流動的 PoS 系統,需要一個人 stake 一定數量的 Tezos 代幣才能參與區塊鏈上的共識。將 Tezos 代幣(XTZ) staking 的過程稱爲烘焙。

代幣持有人(又稱 「麪包師」)可以將其驗證權委託給其他代幣持有人,而無需轉讓代幣所有權。這個想法與以太坊(Ethereum)大不相同,以太坊的整個網絡都參與共識機制,而 EOS 則將投票權委託給少數成員。

烘焙區塊

你可以通過一個叫做 「烘焙」 的過程來向 Tezos 區塊鏈添加塊。它是這樣工作的:

  • 麪包師根據他們的 stake 獲得區塊出塊權。
  • 每個區塊都是由一個隨機麪包師烘焙,然後由 32 個其他隨機麪包師公證。
  • 如果區塊可以確認,則區塊將被添加到區塊鏈中。
  • 成功的麪包師可以獲得一個區塊獎勵,並且可以收取區塊內所有交易的費用。

如前所述,代幣持有人可以選擇將其烘焙權委託給其他持有人,而不放棄其代幣的所有權。烘焙過程完成後,麪包師將與其他委託人分享他們的獎勵。

3 Tezos VS Ethereum – 智能合約語言

由於這兩個平臺都是智能合約平臺,現在讓我們討論一下您需要學習在其上進行編碼的語言。以太坊使用 Solidity 是命令使語言,而 Tezos 使用 Michelson 是函數式語言。在繼續之前,讓我們瞭解命令式語言和函數式語言之間的區別。

命令式語言 vs 函數式語言

在語言方面,它們屬於兩大類:

  • 命令
  • 函數

命令式編程語言

在命令式的方法中,編碼者需要把計算機爲達到目標而需要採取的所有步驟都寫下來。我們所有的傳統編程語言,如 C++,java,甚至 Solidity 都是命令式編程語言。這種編程方法也稱爲算法編程。

讓我們舉一個例子來說明我們的意思。比如 C++,假設我們要加 5 和 3。

int a = 5;

int b = 3;

int c;

c= a + b;

因此,如您所見,加法過程需要多個步驟,每個步驟都在不斷地改變程序的狀態,因爲它們都是依次單獨執行的。

添加過程分爲四個步驟:

  • 聲明一個整數 a 併爲其分配值 5。
  • 聲明一個整數 b 併爲其分配值 3。
  • 聲明一個整數 c。
  • 將 a 和 b 的值相加並存儲在 c 中。

函數式編程語言

第二類編程語言是函數式語言。創建這種編程風格是爲了建立一種解決問題的實用方法。這種方法稱爲聲明式編程。

那麼,函數式編程如何工作?

假設我們要使用一個函數 f (x)來計算函數 g (x),然後我們想用它來計算一個函數 h (x)。無需按順序解決所有問題,只需將它們組合在一個函數中,如下所示:

h(g(f(x)))

這使得函數方法更容易進行數學推理。這就是爲什麼函數程序被認爲是創建智能合約的一種更安全的方法。這也有助於簡化形式驗證,並且在很大程度上意味着更容易在數學上證明程序的功能及其執行方式。

讓我們舉一個現實生活中的例子,看看爲什麼它在某些情況下變得極爲關鍵,甚至可以挽救生命。

假設我們正在編寫一個控制空中交通的程序。

可以想象,對這樣的系統進行編碼需要很高的精度和準確性。當人們的生命受到威脅時,我們不能盲目地編寫代碼,希望一切順利。在這種情況下,我們需要可以證明在數學上具有高度確定性的代碼。

這就是爲什麼函數式方法如此理想的原因。這就是 Tezos 使用 OCaml 以及他們的智能合約使用 Michelson 的原因。

下表將命令式方法與函數式方法進行了比較。

三維度對比以太坊與 Tezos:治理、共識算法與開發語言資料來源 : Docs.Microsoft.com

Ethereum – Solidity

Solidity 是由 Gavin Wood、Christian Reitwiessner、Alex Beregszaszi、Yoichi Hirai 和幾位前以太坊核心貢獻者開發的,它能夠在 Ethereum 等區塊鏈平臺上編寫智能合約。

Solidity 是一種有目的地精簡、鬆散類型的語言,其語法與 JavaScript 非常相似。您可以在這裏查看 Solidity 文檔。

使用 Solidity,您將編寫在以太坊虛擬機(又稱 EVM)中執行的智能合約 。以太坊開發人員提到了分配給他們合同一定數量的 gas 。合同的每一行都需要一定量的 gas 。 gas 應足以使合同完全履行。

由於以下兩個原因,對 JavaScript 有一些基礎知識對於學習 solidity 可能很有用:

  • 首先,就像 solidity 文檔狀態,它受 JavaScript 的影響。其次,正如許多人所指出的,在語法方面,solidity 與 JavaScript 非常相似。原因很簡單。
  • JavaScript 恰好是世界上需求量最大、最流行的語言之一。Ethereum 的創始人認爲,如果他們以 JavaScript 爲基礎來建模 solidity,開發人員將能夠更快地掌握它。

如果你想了解更多關於 Solidity 的知識,那麼你可以在這裏和這裏查看我們的指南。

Tezos – Michelson

Tezos 是用 OCaml 編碼的。將使用 Michelson 創建將在 Tezos 上運行的智能合約。那麼,這些語言有什麼特別之處呢?它們都是函數式語言。

Michelson 是一種強類型、基於堆棧的語言。

在以太坊中,智能合約是用 Solidity 或 Viper 編寫的,它們被編譯成 EVM 字節碼,然後在以太坊虛擬機(EVM)中執行。在 Tezos 中,沒有不必要的額外步驟,Michelson 代碼本身可以在 Tezos 虛擬機中運行。、

下面是 Michelson 合同的一個例子

parameter (pair (lambda int int) (list int));

return (list int);

storage unit;

code { DIP{NIL int};

   CAR;

   DUP;

   DIP{CAR; PAIR};     # Unpack data and setup accumulator

   CDR;

   LAMBDA (pair int (pair (lambda int int) (list int)))

      (pair (lambda int int) (list int))

      # Apply the lambda and add the new element to the list

      { DUP; CDAR;

       DIP{ DUP; DIP{CDAR}; DUP;

          CAR; DIP{CDDR; SWAP}; EXEC; CONS};

       PAIR};

   REDUCE; CDR; DIP{NIL int}; # First reduce

   LAMBDA (pair int (list int))

      (list int)

      {DUP; CAR; DIP{CDR}; CONS};

   REDUCE;         # Correct list order

   UNIT; SWAP; PAIR}    # Calling convention

函數方法的最大優點是它有助於創建高保證代碼,因爲它更容易證明代碼在數學上的行爲。

但缺點是函數式編程領域缺乏專家,因爲它並不那麼受歡迎。

Tezos VS Ethereum: Start Comparison

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

讓我們對以太坊和 Tezos 做一些統計比較。我們的數據集中在 2019 年 6 月 9 日至 13 日之間。

Tezos VS Ethereum: 每天區塊數量

以太坊每天的區塊數量

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

在數據區間內,以太坊每天在成功產生了 6,365 左右個區塊。 最多在 6 月 10 日產生了 6,447 個區塊,最少在 6 月 9 日產生了 6,368 個區塊。

Tezos 每天區塊數量

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

Tezos 在我們的數據區間中每天至少生產 1,360 個區塊,6 月 9 日最多生產 1,402 個區塊,6 月 12 日最少生產 1,360 個區塊。

以太坊每天產生 4-5 倍的區塊,因爲它每 15 秒產生一個區塊,而 Tezos 每分鐘產生一個區塊。

Tezos VS Ethereum: 每天收取的總費用

Ethereum 總收取費用 (in ETH)

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

以太坊用戶在 6 月 10 日收取了驚人的 767.52 ETH,在 6 月 9 日低點收取了 350.75 ETH。 這是有道理的,因爲以太坊在 6 月 9 日開採的區塊最少,而在 6 月 10 日開採的區塊最多(在我們的數據區間中)。

Tezos 收取的總費用 (in XTZ)

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

Tezos 在 6 月 11 日最少收取了 3 XTZ,在 6 月 10 日和 13 日收取了 15 XTZ。

Tezos VS Ethereum: 結論

三維度對比以太坊與 Tezos:治理、共識算法與開發語言

以太坊和 Tezos 都是令人興奮的智能合約平臺。 儘管 Etheruem 是該領域的典範,但 Tezos 引入了一個有趣的平臺在運行時不斷進行改進和提升。 看兩者在不久的將來會如何增長將會很有趣。

來源鏈接:blockgeeks.com