What are the main differences between Tezos and Ethereum?

Arthur Breitman, Tezos lead Answered 16 Apr There are several commonalities between the two projects, but also important differences. First of all, both are decentralized ledgers and smart contract platforms implemented on top of a blockchain. In that respect they are very similar. Our differences fall in four categories: governance, smart-contracts, consensus, and general philosophy.

Governance

Ethereum demarked itself from Bitcoin by its low reluctance to hardfork in order to upgrade its network or correct perceived issues with its operations. Tezos shares Ethereum’s point of view on the importance of keeping the protocol dynamic and evolving but we take a different approach. In Tezos, protocol upgrades are formally proposed on the blockchain and voted upon by the stakeholders according to preset governance rules. If the proposal is adopted, the proposal is compiled and automatically moves on to the Tezos testnet. After a period of testing, a confirmation vote is held and if successful the testnet is automatically promoted to the main network. This lets us upgrade without having to hard fork. Ethereum considers that it is important to give users the discretion to follow the upgrade or not. We think it’s problematic for several reason. Most notably: In such a discretionary choice, users’ interest is in following what they perceive as the “legitimate” choice, not the one they necessarily deem best. This gives, de facto, enormous power to the core development team and the Ethereum foundation. This dynamic is known as a “Keynesian beauty contest”. As these systems grow, users tend to become more passive members of their community. This makes it harder and harder to muster the amount of coordination required by a hard fork. This creates a bias towards stagnation which may be suboptimal. Some amount of bias towards conservativism in protocol upgrade is desirable, but we would rather have stakeholders chose it explicitly than having it be imposed by external circumstances. Smart-contracts

Like Ethereum, Tezos possesses a rich, Turing complete, smart contract language which can create covenants around its tokens. Ethereum’s approach was to build a very low level virtual machine, the EVM, and then to develop high level languages on top of it, the most successful of which is Solidity. We take a different approach. Our base language, Michelson, has both aspects of a low level language: it manipulates a stack, like Bitcoin and doesn’t use variables or named functions and aspects of high level language: it is statically typed, purely functional, and offers maps, sets, lists, cryptographic primitives, and arbitrary precision integers out of the box.

Ethereum’s EVM attempts to be as neutral and efficient as possible. It is designed to be, as its name implies, a “virtual machine”. This comes at a cost. The contracts on the Ethereum blockchain are stored as EVM code, which makes them extremely hard to analyze due to the complexity of reasoning about such a low level language. While it is possible to attach Solidity sources, it is not always possible to make sure that the two source code describe exactly the same contract. This is because the Solidity compiler isn’t certified. This type of subtleties can create potentially devastating bugs like this one.

We took the view that most smart contracts only need to implement very simple business logic. It is far more important for them to be correct than to be extremely efficient. Even if a contract does involve heavy computations, those computations can typically be performed off-chain, leaving the smart-contract to deal only with the relatively lightweight transaction logic.

There are efforts underway to use formal verification to prove properties of Ethereum contracts, but such efforts typically need to overcome large constraints inherent in the design of the EVM or Solidity. Michelson was designed from day 1 to be an easy target for formal verification. Consensus

Tezos is launching with a pure proof-of-stake consensus protocol while Ethereum relies on proof-of-work. While Ethereum does plan to move to proof-of-stake, the two algorithms are qualitatively different.

Ethereum’s proposed proof-of-stake algorithm relies on a set of bonded validators to create blocks. These validators earn rewards for the function they perform for the network. These rewards eventually dilute the holdings of other participants.

Tezos’ proof-of-stake algorithm is designed so that stakeholders are called upon to create blocks and receive rewards randomly and in proportion to their holdings. This means that even a very small holder can have a chance to create a block and receive a reward. This means that only users who do not participate in the consensus algorithm become diluted, as opposed to almost everyone. General philosophy

Tezos has a few philosophical differences in how it approaches its design. Thin vs Fat protocol, appcoins

Ethereum aims to be a thin protocol layer. A consensus mechanism to power the EVM upon which real applications are built. These applications are then generally expected to issue their own tokens, or “appcoins”. In contrast, Tezos aims to be a fat protocol layer with many features.

While Tezos does support the creation of appcoins, we do not put any emphasis on them. While these applications can create demand for the underlying token in order to power smart-contract, they also end up diluting it. In many cases, the token is being shoehorned into an application that does not need a separate token nor benefits from one. We do not think this is a sustainable model.

The preferred way for Tezos to gain features is by protocol amendments. For instance, native support of prediction markets can be done at the protocol level. A developer could propose an amendment introducing such support and attach an invoice to the amendment in order to get rewarded if the amendment is selected. Developer community

Ethereum designed Solidity to be similar to JavaScript in order to appeal to a large number of developers. We do not think this approach is a good fit for smart contracts. Smart contracts need to be developed with great care, and their failure can taint the reputation of the platform. It is better to appeal to a moderate number of highly talented programmer than to go for breadth. Many useful applications can be built on top of these ledgers without using smart contracts, and for those applications we have a convenient JSON API.

Overall, one gets the impression that Ethereum tends to see developers as their users, while Tezos is more focused on the end users themselves.

/r/tezos Thread Parent