Tezos 与 Ethereum 的区别

这两个项目之间有许多共同性, 但同样有一些重要的差异。首先,两者都是在区块链技术上实现的去中心化的分类帐本及智能平台。在这方面他们非常相似,但两者的不同主要建立在以下四个方面: 治理方式、智能合约、大众共识和哲学层面。

1. 治理方式
比特币会为了升级网络或者为了纠正预知到的问题而分叉,Ethereum不想走这条路。Tezos同意Ethereum将关注点着重放在让协议保持动态不断发展这个理念,但是Tezos有自己不一样的发展方式。在Tezos里,协议升级的请求会提议在区块链上,同时依据现有的治理方法让XTZ持有者进行投票。如果这个提议被采纳,那么这个提议会被编译并自动转移到Tezos的测试链中进行测试。经过一段时间的测试,即会举行确认投票。如果投票也成功,那么这个测试会自动晋升为主要网络的一部分。
这种方式让我们的升级很好的避免了硬分叉。
Ethereum认为用户跟随协议升级很重要,而我们认为这种方式是有问题的,原因如下:
a.一个开放的自由选择,用户会选择他们所认为的“合理合法”的选项,而不是他们认为最好的那个选项。事实上,这给了开发团队和Ethereum基金会巨大的核心集中权力。这种动态称为一个“凯恩斯的选美比赛”

b.随着系统的成熟, 用户会逐渐变成被动的社区成员。这样会导致分叉的协调会越来越难。这样的偏见会导致一些趋向停滞的负面影响。一定数量的偏见会导致需要保守的协议升级,但是我们宁可让利益相关者作出精确的升级选择也比它被外部环境强迫选择升级的好。

2. 智能合约
类似于Ethereum,Tezos也拥有一个丰富的,图灵完备的智能合约语言,可以围绕智能合约发布令牌(token)。Ethereum的实现方式是建立一个非常低等级的虚拟计算机,EVM,然后在上面建立高等级的语言,其中最成功的是Solidity。
Tezos采取了不同的方法。我们的基本语言,Michelson,拥有两方面的低等级语言:它操控一个协议栈,类似比特币但同时不使用变量或指名功能还有高级语言的各个方面:它是静态类型,纯粹的功能,并可以提供发展路线,集合,列表,加密的原语,框架外的任意精度整数等特点。

Ethereum的虚拟计算机是尝试协议可能的中立和有效。它就是被设计成这样,顾名思义,一个“可视化机器”。而这是有代价的。基于Ethereum区块链的合约都存为EVM代码,由于对这种低水平的语言推理的复杂性使得代码很难被分析。虽然有可能附加solidity源代码,这不能保证每次两个源代码都准确的描述一个完全相同的合约。因为solidity不能进行认证。这样的话,任何细小错误都会导致创建出来的合约带有潜在性的灾难错误,例如:https://blog.golemproject.net/how-to-find-10m-by-just-reading-blockchain-6ae9d39fcd95

我们认为最聪明的合同只需要实现非常简单的业务逻辑extremely efficient
。合约的正确性远远比合约的高效性重要。即使合约需要大量计算,这些计算可以在线下执行,从而让智能合约去处理相对较轻的事务逻辑。

有人正努力试图用形式验证法去证实Ethereum合约的性质,但这样的努力需要克服EVM或者Solidity的巨大约束。而Michelson从一开始就设计好了形式验证的目标。

3. 大众共识

当Ethereum还在用POW(工作量证明)共识机制的时候,Tezos已经开始纯POS(持有量证明)共识机制了。尽管Ethereum正计划逐渐向POS共识机制转移,但其实这两种算法还是有很大不同。

Ethereum提出的pos算法设计依赖与一组绑在一起的验证程序去创建区块。这些验证程序依据他们执行的网络功能获得相应收益。这些收益最终会稀释其他的参与者持有币的价值。

Tezos的pos算法已经设计好了,所有XTZ币持有者会被要求去创建区块和依据持币比例随机接受收益。这意味着即使你拥有非常少的币也有机会去创建区块从而获益。这同时也意味着只有不参与共识算法的人的币的价值会被稀释,而不会影响所有人的币的价值。

4. 哲学层面

Tezos由一些哲学层面不同的方式设计

a. 精瘦协议 VS. 胖协议,代币
Ethereum目标是成为一个“精瘦的”协议层。用一个共识机制去激励EVM是为了开发真正的应用程序。这些应用程序通常会发行自己的令牌,或“XX币”。相比之下,Tezos致力于成为一个带有许多特性的“胖”协议层

虽然Tezos确实支持各种“币”的创建,但我们的重心不在这里。虽然这些应用程序可以创建一些令牌去激励智能合约创建,但他们也最终会稀释它的价值。在许多情况下,令牌会被硬塞进一个应用程序,而该应用程序其实不需要发行自己的令牌亦或这样也没有什么好处。我们不认为这是一个可持续的发展模式。

Tezos更倾向于通过协议的修正案去增加特性。例如,预测市场的本地支持可以被实现在协议层。一个开发者可以提出一项修正案来说明这种支持和附加一个发票在修正案上。如果修正案被采纳那么开发者将获得奖励。

b. 开发者社区

Ethereum设计的solidity类似于JavaScript,是为了吸引大量的开发人员的加入。我们不认为对智能合约来说这是一个适合的方法。智能合约需要小心仔细的发展,因为开发者的失误将影响整个平台的声誉。Tezos认为吸引适当数量的高级程序员来开发会更好。很多在用的应用程序可以直接在这些分类账本上创建合约而不需要利用智能合约去创建,为了这些应用程序方便使用,我们有一个JSON API。

总的来说, 以太坊给人们的印象是倾向于将开发人员视为他们的用户,而Tezos更关注于终端用户本身。

Arthur Breitman, Tezos lead
Apr 17 2017
翻译:Tezos中文社区/Nancy