Voting on referendum and time locking

Polkassembly
5 min readSep 12, 2022

Participate in Democracy

The public referenda chamber is one of the three bodies of on-chain governance as it’s instantiated in Polkadot and Kusama. The other two bodies are the council and the technical committee.

  • Public referenda can be proposed and voted on by any token holder in the system as long as they provide a bond.
  • After a proposal is made, others can agree with it by endorsing it and putting up tokens equal to the original bond.
  • Every launch period, the most endorsed proposal will be moved to the public referenda table where it can be voted upon. Voters who are willing to lock up their tokens for a greater duration of time can do so and get their vote amplified.

Referenda

Referenda are simple, inclusive, stake-based voting schemes. Each referendum has a specific proposal associated with it that takes the form of a privileged function call in the runtime (that includes the most powerful call: set_code, which can switch out the entire code of the runtime, achieving what would otherwise require a "hard fork").

Referenda are discrete events, have a fixed period where voting happens, and then are tallied and the function call is made if the vote is approved. Referenda are always binary; your only options in voting are “aye”, “nay”, or abstaining entirely.

How do you start a Referenda?

Referenda can be started in one of several ways:

  • Publicly submitted proposals;
  • Proposals submitted by the council, either through a majority or unanimously;
  • Proposals submitted as part of the enactment of a prior referendum;
  • Emergency proposals submitted by the Technical Committee and approved by the Council.

All referenda have an enactment delay associated with them. This is the period between the referendum ending and, assuming the proposal was approved, the changes being enacted.

Baked & Unbaked

Referenda is considered baked if it is closed and tallied. Again, assuming the proposal was approved, it would be scheduled for enactment. Referenda is considered unbaked if it is pending an outcome, i.e. being voted on.

How do you propose a Referendum?

Public Referenda

Anyone can propose a referendum by depositing the minimum amount of tokens for a certain period (number of blocks). If someone agrees with the proposal, they may deposit the same amount of tokens to support it — this action is called endorsing. The proposal with the highest amount of bonded support will be selected to be a referendum in the next voting cycle.

Note that this may be different from the absolute number of endorsements; for instance, three accounts bonding 20 DOT each would “outweigh” ten accounts bonding a single DOT each

The bonded tokens will be released once the proposal is tabled (that is, brought to a vote).

There can be a maximum of 100 public proposals in the proposal queue.

Council Referenda

Unanimous Council — When all members of the council agree on a proposal, it can be moved to a referendum. This referendum will have a negative turnout bias (that is, the smaller the amount of stake voting, the smaller the amount necessary for it to pass — Adaptive Quorum Biasing).

Majority Council — When agreement from only a simple majority of council members occurs, the referendum can also be voted upon, but it will be majority-carries (51% wins).

There can only be one active referendum at any given time, except when there is also an emergency referendum in progress.

Voting Timetable

Every 28 days, a new referendum will come up for a vote, assuming there is at least one proposal in one of the queues. There is a queue for Council-approved proposals and a queue for publicly submitted proposals. The referendum to be voted upon alternates between the top proposal in the two queues.

The “top” proposal is determined by the amount of stake bonded behind it. If the given queue whose turn it is to create a referendum that has no proposals (is empty), and proposals are waiting in the other queue, the top proposal in the other queue will become a referendum.

NoteMultiple referenda cannot be voted upon in the same period, excluding emergency referenda. An emergency referendum occurring at the same time as a regular referendum (either public- or council-proposed) is the only time that multiple referenda will be able to be voted on at once.

Voting on a referendum & Time-Locking

To vote, a voter generally must lock their tokens up for at least the enactment delay period beyond the end of the referendum. This is in order to ensure that some minimal economic buy-in to the result is needed and to dissuade vote selling.

It is possible to vote without locking at all, but your vote is worth a small fraction of a normal vote, given your stake. At the same time, holding only a small amount of tokens does not mean that the holder cannot influence the referendum result, thanks to time-locking.

Time Locking

Polkadot utilizes an idea called Voluntary locking that allows token holders to increase their voting power by declaring how long they are willing to lock up their tokens, hence, the number of votes for each token holder will be calculated by the following formula:

votes = tokens * conviction_multiplier

The conviction multiplier increases the vote multiplier by one every time the number of lock periods double.

The maximum number of “doublings” of the lock period is set to 6 (and thus 32 lock periods in total), and one lock period equals 28 days.

Some important points to note -

  • The maximum number of “doublings” of the lock period is set to 6 (and thus 32 lock periods in total)
  • One lock period equals 28 days.
  • Only doublings are allowed; one cannot lock for, say, 24 periods and increase your conviction by 5.5.

While a token is locked, you can still use it for voting and staking; you are only prohibited from transferring these tokens to another account.

Votes are still “counted” at the same time (at the end of the voting period), no matter for how long the tokens are locked.

Let’s look at an example:

Kiran: Votes No with 20 DOT for a 128 week lock period => 20 x 6 = 120 Votes

Luke: Votes Yes with 30 DOT for a 4 week lock period => 30 x 1 = 30 Votes

Shubh: Votes Yes with 12 DOT for a 8 week lock period => 12 x 2 = 24 Votes

Even though combined both Luke and Shubh vote with more DOT than Kiran, the lock period for both of them is less than Kiran, leading to their voting power counting as less.

An old video on how voting works on Polkadot using Polkassembly.

Lets go Vote on active referenda on Polkadot, Kusama and other chains!

--

--

Polkassembly

Polkassembly is a governance explorer and forum for @polkadotnetwork & @kusamanetwork . We enable open discussions for effective governance.