In this chapter, we will have a brief overview of the voting process. We will also see different commands that allow a delegate to make a proposal and vote.
Tezos is a self-amending blockchain network that can improve itself over time. It uses a formalized process to upgrade its protocol without hard forks. In practice, it is similar to the structure of a corporation, where shareholders get to vote on the future direction.
Five periods split the self-amendment process:
- Proposal Period: Delegates can submit protocol amendment proposals using the "proposal" operation.
- Exploration Vote Period: Delegates can cast one vote to pursue the voting process or not with the winning proposal using the "ballot" operation.
- Cooldown Period: Elapsed time before the promotion period.
- Promotion Vote Period: Delegates can cast one vote to promote or not the proposal using the "ballot" operation.
- Adoption Period: At the end of this period, the proposal is activated as the new protocol and the system goes back to the first period.
Each of these five periods lasts five baking cycles (i.e. 20,480 blocks or roughly 14 days), taking almost two months from the first period to activation.
There are two operations used by the delegates: proposal and ballot.
- A proposal operation can only be submitted during a proposal period.
- A ballot operation can only be submitted during one of the voting periods (Exploration Vote Period or Promotion Vote Period), and only once per period.
Tezos’ client provides a command to show the status of a voting period. It displays different information for different kind of periods:
Proposal is a request for addition, adjustment, or removal of a protocol feature.
During a proposal period, the list of proposals can be submitted with:
Bakers get to vote either "Yay", "Nay", or "Pass" on a specific proposal. "Pass" means to abstain from voting for or against a proposal but still allowing a delegate to reach the Quorum.
During a voting period (being an Exploration or a Promotion vote period**), ballots can be submitted once with: