Dissecting the First Tezos Amendment Proposals

In preparation for Nomadic Labs’ announcement on their plans to submit the first protocol upgrade proposals, aiming at end of February 2019, at Cryptium Labs we wish to provide as much information from different perspectives as possible about the potential implications of the upcoming and future upgrade proposals.

Dissecting the First Tezos Amendment Protoposals is the beginning of the series Dissecting Tezos Upgrade Proposals. Thus, should future proposals be submitted, we will release an article accordingly. To make reading time effective, all the articles in the series will have this structure for every change that proposals include:

  1. Definition and Current State
  2. Proposed Change
  3. Potential Implications for Bakers
  4. Potential Implications for Delegators and Other Users
  5. Potential Implications for Developers
  6. Summary
Dissassembling Watches — by Instructables

A Dissection of the Increase of the Current Gas Limit

What is Gas Limit and Its Current State?

A baker sets the minimum fee they want per unit of computation, which is the minimum amount of XTZ they will charge per unit of computation. In Tezos there are two gas limits: gas limit per block and gas limit per operation. The first one represents how much computation can be done in a single block, whereas the second one refers to the computation per operation. The current gas limit values are 4,000,000 gas for blocks and 400,000 gas per operation.

The following code block is a breakdown on what uses gas and how much each operation consumes in gas. Generally speaking, these are allocation, write and reading operations:

# in gas_limit_repr.ml
type error += Block_quota_exceeded (* `Temporary *)
type error += Operation_quota_exceeded (* `Temporary *)

let allocation_weight = Z.of_int 2
let step_weight = Z.of_int 1
let read_base_weight = Z.of_int 50
let write_base_weight = Z.of_int 80
let byte_read_weight = Z.of_int 10
let byte_written_weight = Z.of_int 15

Proposed Gas Limit

It will be higher than the existing limits of 4,000,000 gas per block and 400,000 gas per operation. Nomadic Labs will release more information in the upcoming weeks. Stay tuned by following their Twitter or checking their blog.

Potential Implications for Bakers

If the gas limit is increased, it would enable more computation in blocks and operations, meaning that not only the maximum of transactions per block could increase, but also the complexity of the transactions with Michelson smart contracts.

Conceptually speaking, bakers would be able to include more computation into each block. This would increase the amount of CPU cycles any baker spends to execute the transactions, because there could potentially be more transactions and they could be more complex.

Considering the current gas limits, even having full blocks has little impact on the bakers’ hardware. With an increase of the gas limit and having full blocks is unlikely to change that. On the other hand, it increases the maximum amount of fees every baker would earn in the event of full blocks.

Potential Implications for Delegators and Other Users

Considering that currently the amount of transactions included in each block is not limited by either gas limits or block sizes (full blocks are at the moment rare), the only potential impact we foresee on delegators or Tezos users is that per every individual transaction, they could be more complex.

Potential Implications for Developers

An increase of possible computation per operation means that it is possible to write and execute more complex Michelson smart contracts than with the current gas limits. This could pave the way for more interesting Michelson smart contract logic.

A Dissection of the Decrease of Roll Size

What is Roll Size and Its Current State

In the Tezos Protocol, a roll is the representation of a certain amount of XTZ delegated to a baker. Currently, the roll size is 10,000 XTZ.

Under the hood, every roll has an identifier or serial code, which every full node keeps track of, for example, to know the latest rolls distribution. At the time of writing, considering the total supply of XTZ in circulation of ~782,801,626 XTZ, the maximum amount of rolls would be 78,248 rolls. However, as only staked tokens compose rolls (security deposits or delegations), the number is 49,382 rolls at cycle 76.

In Liquid Proof-of-Stake, every entity who wishes to become a baker must have at least 1 roll (10,000 XTZ) in their TZ1 address. The amount of rolls has an influence in the assignment of baking and endorsing slots: the more rolls a baker has in respect to the global amount of rolls, the higher the likelihood of being assigned slots at every cycle. In other words, a baker that has 10% of rolls will bake and endorse more blocks on average in the long run than a baker that has 1% of rolls.

Proposed Roll Size

It will be lower than the existing limit of 10,000 XTZ per roll and it will not be an arbitrary value, but a benchmarked value. Nomadic Labs will release more information in the upcoming weeks. Stay tuned by following their Twitter or checking their blog.

Potential Implications for Bakers

A decrease of the roll size could potentially impact bakers in the following ways:

  1. At a technical level, an increase in roll storage requirement: Bakers are tracking who owns which roll. Should the size of rolls decrease, there would be a % increase of the rolls that bakers will have to track, resulting in an increase in storage requirements. How much this increase would be will depend on exactly what the new size of rolls is. However, the increase will be linear. For example, should the new roll size be 8,000 XTZ, roll storage (not equivalent to general storage) will increase by 20%.
  2. At a social level, it could enable more token holders to start solo-baking: For public bakers, who accept delegations, depending on the characteristics of their delegator set, this change might or might not have an impact. Let’s say that the new roll size is X. In very broad strokes, should a large portion of a baker’s delegators have the value of X XTZ, technically speaking, these delegators could switch to solo-baking instead of continuing the delegation. However, this would assume that the majority of the delegators actually wished to solo-bake but did not only due to the roll size, and not due to other reasons such as lack of time, lack of technical expertise or economics.

Potential Implications for Delegators and Other Users

With a decrease of the roll size to X XTZ per roll, Tezos token holders or delegators who own at least X XTZ per roll would also be eligible to become bakers.

Potential Implications for Developers

At the moment, we do not foresee any potential implications for developers.

In Summary

In this first article of Dissecting Tezos Upgrade Proposals, we explore two changes that the Nomadic Labs team wishes to submit via two upcoming proposals. One change is about increasing the existing gas limits (both block and operation gas limits), whereas the other change aims to decrease the roll size.

Although the exact new values are yet to be public (stay tuned by following their Twitter or checking their blog), in this article we review the definition and current values of block gas limit, operation gas limit, and roll size. For each of the proposed changes, we take the perspective of bakers, delegators or users, and developers, and explore how these changes could potentially impact each of the stakeholers.

Grosso modo, most implications are at a technical level and the expected impact is very low to most stakeholders. Regardless, as Nomadic Labs stated in their article, the team will not only release more detailed information on the matter, but also submit two competing protocol upgrades: 1) Increase of Gas Limits and 2) Increase of Gas Limits and Decrease of Roll Size. With the current on-chain governance system in mind, bakers have the choice to vote for the most compelling proposal.

Upcoming Articles on Tezos On-Chain Governance

  • Cryptium Labs’ Voting Policy on Tezos On-Chain Governance
  • How to Vote for Tezos Protocol Upgrades?