以太坊与 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