Tezos Whitepaper
Abstract
We present Tezos, a generic and self-amending crypto-ledger. Tezos can instantiate any blockchain based ledger. The operations of a regular blockchain are implemented as a purely functional module abstracted into a shell responsible for network operations. Bitcoin, Ethereum, Cryptonote, etc. can all be represented within Tezos by implementing the proper interface to the network layer.
Most importantly, Tezos supports meta upgrades: the protocols can evolve by amending their own code. To achieve this, Tezos begins with a seed protocol defining a procedure for stakeholders to approve amendments to the protocol, including amendments to the voting procedure itself.
This is not unlike philosopher Peter Suber’s Nomic, a game built around a fully introspective set of rules. In addition, Tezos’s seed protocol is based on a pure proof-of-stake system and supports Turing complete smart contracts.
Tezos is implemented in OCaml, a powerful functional programming language offering speed, an unambiguous syntax and semantic, and an ecosystem making
Tezos a good candidate for formal proofs of correctness. Familiarity with the Bitcoin protocol and basic cryptographic primitives are assumed in the rest of this paper.
Introduction
In the first part of this paper, we will discuss the concept of abstract blockchains and the implementation of a self-amending crypto-ledger.
In the second part, we will describe our proposed seed protocol.
Self-amending cryptoledger
A blockchain protocol can be decomposed into three distinct protocols:
- The network protocol discovers blocks and broadcasts transactions.
- The transaction protocol specifies what makes a transaction valid.
- The consensus protocol forms consensus around a unique chain.
Tezos implements a generic network shell. This shell is agnostic to the transaction protocol and to the consensus protocol. We refer to the transaction protocol and the consensus protocol together as a “blockchain protocol”. We will first give a mathematical representation of a blockchain protocol and then describe some of the implementation choices in Tezos.