Tezos 和以太坊的不同点


编译自 Tezos 创始人 Arthur Breitman 于 Quora 的回答

这两个项目有几个共性,但也有重要区别。首先,两者都是执行于区块链基础上的去中心化账本和智能合约平台。在这方面他们非常相似。不同在于四个方面:治理,智能合约,共识,整体理念。

治理

以太坊为了升级其网络或纠正运行问题,对硬分叉保持较低的抵触(low reluctance),以此与比特币相区分。对于保持协议活力和进化的重要性,Tezos 与以太坊观点相同,但采取了不同的方式。在Tezos,协议升级是根据预设的治理规则,经由区块链上的正式提议,由持币者进行投票。如果提议得到采用,该提议编译过后,自动移到Tezos 测试网。经过一段时间的测试,举行投票确认,如果成功通过投票,将自动由测试网移到主网。这使我们不必须硬分叉就可升级。

以太坊认为,给予用户“是否跟随升级”的自由裁量权是很重要的。我们认为这是有问题的,出于几个原因,尤其是:

  1. 在这种自由裁量的选择中,用户的兴趣在于跟随他们认为“合理”的选择,而不是他们必定认为最好的选择。这事实上,给予了核心开发团队和以太坊基金会以巨大权力。众所周知,此即“凯恩斯选美大赛”(“Keynesian beauty contest”)。
  2. 随着这些系统的发展,用户趋向成为社区中更被动的成员。这使得硬分叉所需协调量的召集变得难上加难。这创造了停滞倾向,这倾向可能不是最优的。一些对协议升级的保守倾向是可取的,但我们宁愿让持币者进行明确选择,而不愿由外部形势强加其上。

智能合约

如以太坊一样,Tezos 具有一个丰富,图灵完备的智能合约语言,能够围绕其代币创建契约。

以太坊的方式是,建立一个非常低级的虚拟机,EVM,然后在其上开发高级语言,其中最成功的是Solidity 。我们采取不同的方式。我们的基础语言,Michelson,同时拥有低级语言和高级语言的一些方面:低级语言方面,它控制一个堆栈,如比特币,以及不使用变量(variables)或指定的应变量(named functions);高级语言方面,它是静态类型,纯函数式,并提供地图(maps)、集合(sets)、列表(lists)、加密原语(cryptographic primitives),和创造性的任意精度的整数(arbitrary precision integers )。

以太坊的EVM试图尽可能中性和高效。其设计,顾名思义,是一个“虚拟机”。这需要付出一些代价。以太坊区块链上的合约存储为EVM 代码,因为推导这样一种低级语言是件复杂的事,这使得这些合约非常难以分析。尽管可以附上 Solidity 源码,但并不总是能够确保这两个源码描述的是完全相同的合约。这是因为Solidity 编译程序不是(以太坊区块链原生)认可的(certified)。这种细微差别会产生潜在的破坏性bugs,如这个

我们认为,大多数智能合约只需实现非常简单的业务逻辑。正确远比极度高效更为重要。即使一个合约确实涉及大量计算,这些计算通常可以于链下执行,使智能合约只需处理相对轻量级的交易逻辑。

还有正在进行的尝试是,使用形式化证明来证明以太坊合约的特性(properties),但这样的尝试通常需要克服EVM或Solidity设计中的大量固有限制。Michelson 从第一天开始,就是设计成为简易的形式化证明对象(Michelson was designed from day 1 to be an easy target for formal verification)。

共识

Tezos 使用纯粹的 PoS 共识协议,而以太坊依赖PoW。尽管以太坊计划转向PoS,但两种PoS算法仍有质的不同。

以太坊提出的PoS 算法依赖于一系列联结的验证人(a set of bonded validators )来创建区块。这些验证者因自身对网络所执行的功能,而获得奖励。这些奖励最终稀释了其他参与者的持有量。

Tezos PoS 算法的设计,鼓励持币者创建区块,持币者随机(randomly)接收奖励,与其持币量成比例。这意味着,甚至持有币量非常少的人,都有创建一个区块并获得奖励的机会。这意味着,只有不参与这个共识算法的用户才会被稀释,而不是几乎每个人。

整体理念

Tezos 在如何达成其设计上,有一些理念上的不同。

瘦协议 vs 肥协议(Thin vs Fat protocol),应用币

以太坊旨在成为一个瘦协议层(thin protocol layer)。一个共识机制驱动 EVM,实际应用建于EVM之上。这些应用通常都会发布自己的代币,或“应用币”。相比之下,Tezos的目标是成为一个具备许多功能的肥协议层(fat protocol layer)。

尽管 Tezos 也支持创建应用币,但我们不强调这点。虽然这些应用可以为了驱动智能合约,为这些基础代币创造需求,但最终他们也会稀释它。许多情况下,代币是被硬塞入一个“不需要一个单独代币,或单独代币于其无益”的应用。我们不认为这是一个可持续模式。

Tezos 获得功能的首选方式是通过协议修改。比如,预测市场的本地支持可在协议级别完成。开发者可提出一个修改提案,引入该支持,并在提案上附上费用清单(invoice),如果这个提案通过,则获得奖励。

开发者社区

为了吸引大量开发者,以太坊上的Solidity 类似JavaScript 。我们不认为这种方法非常适合智能合约。智能合约需要精心开发,他们如果失败,会玷污所在平台的声誉。相比追求广度,吸引适度数量的优秀程序员是更好的选择。许多有用的应用可建于无使用智能合约的账本之上,对于这些应用,我们有一个方便的JSON API可供使用。

总体而言,以太坊给人的印象是,倾向将开发者作为其用户,Tezos则更关注终端用户。

原文:https://www.quora.com/How-is-Tezos-different-from-Ethereum
作者:Arthur Breitman (Tezos 创始人,项目负责人)
编译:泛舟 @ 币未来 biweilai.com

仅供参考。

相关阅读:

Tezos 白皮书 中文版

Tezos 社区QQ群 :109149807