Tezos is a third generation cryptocurrency which offers all the benefits of first and second generation cryptocurrencies, plus Proof of Stake minting and on-chain governance.
In this post we discuss decentralized governance and how it’s implemented in Tezos.
First, let’s take a look at some basic concepts.
What is understood by governance in the cryptocurrency context?
Cryptocurrencies are decentralized. There is no single institution behind truly decentralized projects.
Therefore, in the context of decentralized finance (DeFi), governance does not mean the same as it does in traditional businesses.
Cryptocurrencies are coded once and left to run on their own, based on the rules established by the original software implementation. Source code, then, establishes what is valid and what isn’t.
Source Code is the Law
In Bitcoin culture, it is said that source code is the law.
When users ask how Bitcoin can govern itself without a legal framework, the answer is: all the rules are coded into the Bitcoin Core reference implementation.
After code is released, nobody controls what happens anymore. Source code should govern itself and guide implementers of related products to follow the same rules.
To us, governance means how we create, alter and revoke the rules (our laws) encoded in the cryptocurrency source code.
Akin to Bitcoin, Tezos’ law is in the source code.
With one important difference: Tezos is a self amending system.
Tezos’ governance is, therefore, not executed by a group of developers who detain administrative rights over a Git repository. That’s how Bitcoin and other similar projects are managed – but not Tezos.
Every aspect of Tezos is governed on the blockchain instead!
How does on-chain governance work? How can development decisions be made on a blockchain that doesn’t store source code?
Tezos developed a rather clever solution, that leverages several aspects of decentralized system architectures combined with a bit of game theory.
First design choice was to delegate decision power to those who actually hold Tezos tokens. This is different from Bitcoin, where development decisions can be made by someone who owns zero BTC.
The way this works is by counting votes proportionately to how much XTZ anyone owns. If someone owns 1 million XTZ they have 10x more voting power than another investor who owns 100 thousand XTZ.
Another design choice was to store a hash of the software logic on the blockchain. This way, the blockchain becomes an oracle for off-chain software. The OCaml code is written and compiled anywhere. A SHA256 hash of the resulting code is then stored on the blockchain. Only the code that results on the same SHA256 hash will run on Tezos clients. Although the blockchain does not contain that OCaml code, it contains the hash, which makes it impossible for any other code to execute on Tezos clients.
These two design choices make it possible for the system’s source code development to be connected with the blockchain.
The way the source code can be changed and new logic be accepted in the Tezos system is called the amendment process.
There’s a well defined rite that must be followed in order to change the Tezos business logic.
It’s called the Tezos amendment process.
Check out our main Tezos amendment article for details on this process. Here I’ll provide a short summary about how amendment works.
There are 4 periods in an amendment, each made up of 8 cycles:
- Promotion Vote
A cycle is approximately 3 days (2 days and 20+ hours on average), so each phase takes approximately 24 days. We move onto the last periods only if the previous period is approved by bakers’ wide majority (80%) of votes.
During the proposal period, users can submit tarballs (UNIX term for a package of files). Every user can download the proposals and analyze the code during 8 cycles. Bakers then vote on a proposal. The one with most votes moves onto the exploration phase.
During exploration, bakers vote on the proposal. It’s a filter phase, as the process only continues if 80% of the vote is reached.
During the testing period the system automatically forks and naturally creates a testnet. Everyone can use this testnet and explore the system. This is the only phase without a vote. After 8 cycles the system moves onto the last step: promotion vote.
In the promotion vote period, bakers vote once more. If at the end of the 8 cycles the proposal reaches 80% again, the testnet is promoted to the new mainnet. The old mainnet is retired and the system moves forward using the new logic.
The Tezos amendment procedure is fully decentralized and voted on by the stakeholders themselves. Since source code is the law, when you amend the source code for the system logic, the system itself changes.
Source code is submitted, hashed and tracked on the blockchain itself, though it is never actually stored there.
There is no predetermined storage location, such as a Git repo, that anyone controls. Whoever gains access to the tarball can verify it against the hash stored on the blockchain. Nobody controls the source code.
The acceptance of the proposed source code is voted on by bakers. Developers do not have special privileges, unlike centralized software projects based on Git and other control version systems.
The Tezos system forks itself and automatically migrates to the new blockchain, without a manual hard fork or other primitive signaling systems. Bakers don’t have to signal their migration to the new system, since everything has been decided on-chain.