以太坊与 Tezos 都是智能合约平台,但在治理、共识算法与智能合约语言方面进行了差异化探索。 原文标题:《Tezos VS Ethererum: [ 终极比较指南]》 Ethereum 和 Tezos 是两个值得研究的令人兴奋的项目。它们都是智能合约平台,旨在通过吸引尽可能多的开发人员来创建高质量的 DApp 来丰富 DApp 生态系统。 因此,在 Tezos VS Ethererum 中,我们更深入地研究了这两个平台,尤其是它们之间的差异。 Ethereum 概览主要亮点
Tezos 概览主要亮点
Tezos VS Ethereum : 比较我们将重点关注以下差异:
1 Tezos VS Etheruum: 治理 – 链下 vs 链上Ethereum – 链下治理以太坊通过以太坊改进提案(EIP)实施链下治理。EIP 是在链下运作的以太坊区块链的改进提案。它们通常是详细的设计文档,为改进以太坊区块链提供建议。这些过程不会在区块链上呈现、记录、通过或投票。 根据以太坊指南,在进行 EIP 时需要牢记以下几点:
EIPs 也可以来自 Ethereum 的评论请求(ERCs)。在这种情况下,也遵循同样的程序。 什么是 ERCs?ERC 是通过以太坊提交供同行评审的改进提案。ERC-20 代币标准是 ERC 的结果。一旦 ERC 显示出改善以太坊生态系统的足够希望,他们将在社区内进一步讨论,并随后转变为 EIPs 。 EIP 讨论阶段在这一阶段,以太坊的开发人员将举行详尽的讨论和会议,讨论有关的 EIP 是否足够可靠能够实现。这些开发人员深入参与了以太坊的开发。GitHub 有一个完整的会议室专门用于 GitHub 上的以太坊治理和开发,他们在那里进行实时讨论。如果开发人员觉得代码升级会对生态系统产生积极影响,代码才能实现。 更重要的是,对于大多数 EIP 来说,讨论阶段往往会被终结。开发人员不愿意实现任何可能有点过于极端的更改,以避免遭遇像以太坊经典硬分叉那样的事情。 这个过程既有缺点也有优点。当然,最大的障碍是这个过程需要很长时间。它的主要优点是每个 EIP 都经过了深入的研究,以至于通过的 EIP 常常会给生态系统带来积极的变化。 以下摘自 Unblock 的流程图应该能让您了解整个流程是如何工作的。 Tezos – 链上治理Tezos 通过自我修正和链上治理缓解了有争议的硬分叉。自我修正有助于在无需进行硬分叉的情况下升级区块链。链上治理仅仅意味着在平台上对拟议的修正案进行投票。结合链上治理和自我修正,投票过程可以根据需要修改。系统的利益相关者(我们稍后将讨论)负责投票。这个系统的设计可以让区块链平稳发展,而不必硬分叉。 所以,它到底是如何工作的呢 ?
由于该系统的存在,协议以去中心化的方式被动升级。每个协议升级都要经过多个测试阶段,并从社区获得相关反馈。这确保了无论发生什么改进,都会得到大多数社区的认可。这就避免了任何社区硬分叉的机会。 2 Tezos VS Ethereum- 共识机制接下来是共识机制。 以太坊目前正在使用 Proof-of-Work(PoW) ,不过他们下一步将转向 PoS。Tezos 正在使用 LPoS。 Ethereum – Proof-of-Work 和 Proof-of-StakePoW 的概念是让矿工们利用他们的计算能力来解决加密难题。解决问题的矿工,在区块链中添加新区块,并获得区块奖励。这个过程是这样的:
关于 PoW,有两点需要注意:
不久之后,矿工们发现,通过联合起来并通过并行处理形成矿池,他们可以成倍地增加采矿能力。 在并行处理中,程序指令被分配给多个处理器。通过这样做,程序的运行时间减少了,这基本上就是矿池正在做的事情。 PoW 机制的最大好处是它为系统带来的安全性。由于挖矿成本太高,因此矿工没有任何动机去破坏该系统,而在任何平行链上进行的挖矿只是无缘无故地浪费自己的钱。 但是,PoW 链确实有很多缺陷:
这就是为什么以太坊将放弃 PoW 协议并转向 PoS 的原因。 Ethereum 未来 – Proof of Stake (PoS)以太坊计划通过 Casper 协议使用 PoS。PoS 将使整个挖矿过程虚拟化,并用验证者取代矿工。 这就是工作的流程:
正如您所看到的,PoS 协议比 PoW 更节约资源。在 PoW 中,您需要浪费大量资源来配合协议。 Casper 是以太坊选择采用的 PoS 协议。Casper 是一个利用 PoS 和惩罚机制的协议。让我们看看 Casper 下的 PoS 是如何工作的:
如您所见,Casper 被设计为在一个不可信任的系统中工作,并且更具有拜占庭式的容错性。 任何以恶意行事的人都将立即受到削减其 stake 的惩罚。这就是它不同于大多数其他 PoS 协议的地方。恶意的人会损失一些东西,因此不可能无风险作恶。 如果以太坊计划扩大规模,完美地实现 Casper 和 PoS 将是至关重要的。 Tezos – 流动 PoS在深入研究 LPoS 之前,让我们了解一下流动民主的含义。 流动民主是如何运作的?流动民主是在直接民主和代议制民主之间流畅过渡的制度。 该过程具有以下特点:
那么,流动民主有什么好处呢?
什么是流动 PoS?Tezos 是一个流动的 PoS 系统,需要一个人 stake 一定数量的 Tezos 代币才能参与区块链上的共识。将 Tezos 代币(XTZ) staking 的过程称为烘焙。 代币持有人(又称 「面包师」)可以将其验证权委托给其他代币持有人,而无需转让代币所有权。这个想法与以太坊(Ethereum)大不相同,以太坊的整个网络都参与共识机制,而 EOS 则将投票权委托给少数成员。 烘焙区块你可以通过一个叫做 「烘焙」 的过程来向 Tezos 区块链添加块。它是这样工作的:
如前所述,代币持有人可以选择将其烘焙权委托给其他持有人,而不放弃其代币的所有权。烘焙过程完成后,面包师将与其他委托人分享他们的奖励。 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; 因此,如您所见,加法过程需要多个步骤,每个步骤都在不断地改变程序的状态,因为它们都是依次单独执行的。 添加过程分为四个步骤:
函数式编程语言第二类编程语言是函数式语言。创建这种编程风格是为了建立一种解决问题的实用方法。这种方法称为声明式编程。 那么,函数式编程如何工作? 假设我们要使用一个函数 f (x)来计算函数 g (x),然后我们想用它来计算一个函数 h (x)。无需按顺序解决所有问题,只需将它们组合在一个函数中,如下所示: h(g(f(x))) 这使得函数方法更容易进行数学推理。这就是为什么函数程序被认为是创建智能合约的一种更安全的方法。这也有助于简化形式验证,并且在很大程度上意味着更容易在数学上证明程序的功能及其执行方式。 让我们举一个现实生活中的例子,看看为什么它在某些情况下变得极为关键,甚至可以挽救生命。 假设我们正在编写一个控制空中交通的程序。 可以想象,对这样的系统进行编码需要很高的精度和准确性。当人们的生命受到威胁时,我们不能盲目地编写代码,希望一切顺利。在这种情况下,我们需要可以证明在数学上具有高度确定性的代码。 这就是为什么函数式方法如此理想的原因。这就是 Tezos 使用 OCaml 以及他们的智能合约使用 Michelson 的原因。 下表将命令式方法与函数式方法进行了比较。 资料来源 : Docs.Microsoft.com Ethereum – SoliditySolidity 是由 Gavin Wood、Christian Reitwiessner、Alex Beregszaszi、Yoichi Hirai 和几位前以太坊核心贡献者开发的,它能够在 Ethereum 等区块链平台上编写智能合约。 Solidity 是一种有目的地精简、松散类型的语言,其语法与 JavaScript 非常相似。您可以在这里查看 Solidity 文档。 使用 Solidity,您将编写在以太坊虚拟机(又称 EVM)中执行的智能合约 。以太坊开发人员提到了分配给他们合同一定数量的 gas 。合同的每一行都需要一定量的 gas 。 gas 应足以使合同完全履行。 由于以下两个原因,对 JavaScript 有一些基础知识对于学习 solidity 可能很有用:
如果你想了解更多关于 Solidity 的知识,那么你可以在这里和这里查看我们的指南。 Tezos – MichelsonTezos 是用 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 做一些统计比较。我们的数据集中在 2019 年 6 月 9 日至 13 日之间。 Tezos VS Ethereum: 每天区块数量以太坊每天的区块数量 在数据区间内,以太坊每天在成功产生了 6,365 左右个区块。 最多在 6 月 10 日产生了 6,447 个区块,最少在 6 月 9 日产生了 6,368 个区块。 Tezos 每天区块数量 Tezos 在我们的数据区间中每天至少生产 1,360 个区块,6 月 9 日最多生产 1,402 个区块,6 月 12 日最少生产 1,360 个区块。 以太坊每天产生 4-5 倍的区块,因为它每 15 秒产生一个区块,而 Tezos 每分钟产生一个区块。 Tezos VS Ethereum: 每天收取的总费用Ethereum 总收取费用 (in ETH) 以太坊用户在 6 月 10 日收取了惊人的 767.52 ETH,在 6 月 9 日低点收取了 350.75 ETH。 这是有道理的,因为以太坊在 6 月 9 日开采的区块最少,而在 6 月 10 日开采的区块最多(在我们的数据区间中)。 Tezos 收取的总费用 (in XTZ) Tezos 在 6 月 11 日最少收取了 3 XTZ,在 6 月 10 日和 13 日收取了 15 XTZ。 Tezos VS Ethereum: 结论以太坊和 Tezos 都是令人兴奋的智能合约平台。 尽管 Etheruem 是该领域的典范,但 Tezos 引入了一个有趣的平台在运行时不断进行改进和提升。 看两者在不久的将来会如何增长将会很有趣。 (责任编辑:admin) |