Proposals of #11

Signaling proposal to make the governance quorums dynamic

passed
Expected result
Turnout / Quorum
30.59% / 25.00%
Voting start 2025.07.17 at 11:07:47
Voting end 2025.08.07 at 11:08:47
99.93%
14 524 217 atone
Yes
0.02%
2 392 atone
No
0%
atone
Veto
0.05%
7 138 atone
Abstain

Details

logo
Proposer
atone10jzj3jjd3frna0a...
Total deposit
512 atone
Submit time
2025.07.17 at 10:07:32
Deposit end time
2025.07.31 at 10:07:32

Description

Signaling proposal to make the governance quorums dynamic

This signaling proposal aims to gather community feedback on updating the x/gov module to include the Dynamic Quorum feature on the AtomOne chain. The Quorum is the minimum participation during a voting period required for the vote to be considered valid. Following the adoption of the Dynamic Quorum feature the Quorum will be dynamically adjusted after each proposal vote based on the actual participation.

The proposed mechanism is comparable to the quorum adjustment mechanism used in Tezos.

IMPORTANT NOTE: a Constitution Amendment that includes several improvements and upgrades to the Constitution, including changes to the Quorum to introduce the mechanism here presented will also be submitted on-chain before any attempt to upgrade the AtomOne chain software is made.

Motivation

At the time of writing, the x/gov module on AtomOne uses a Quorum parameter set to 0.25. Since AtomOne has removed delegation-based voting in favor of direct voting, lower participation with respect to the total voting power is to be expected.

One of the main reasons in favor of direct voting is that validators already have a very specific role, which is foundational for AtomOne, their participation in the consensus process. For this reason, the delegation of votes to validators determines a conflation of roles: consensus and governance.

The mechanism in this proposal allows to find the proper quorum threshold based on actual participation addressing the issue of low users participation.

Implementation

The Quorum parameter will be replaced with a variable that is adjusted dynamically based on previous voting participation. The dynamic quorum is adjusted after every voting period.

The participation Exponential Moving Average - pEMA - is updated according to the formula:

$$ pEMA_{t+1} = (0.8)pEMA_t + (0.2)p $$

Where:

  • $pEMA_{t+1}$ is the new participation exponential moving average value.
  • $pEMA_t$ is the current participation exponential moving average value.
  • $p$ is the participation observed during the previous voting period.

The quorum is then computed based on pEMA as follows:

$$ Q = Q_{min} + (Q_{max} - Q_{min}) \times pEMA $$

Where:

  • $Q$ is the resulting quorum value.
  • $Q_{min}$ is the minimum quorum value allowed.
  • $Q_{max}$ is the maximum quorum value allowed.
  • $pEMA$ is the updated participation exponential moving average.

Multiple dynamic quorums

The dynamic quorums of law and constitution amendment proposals are distinct from the other proposals. For each of these quorums there is one pEMA state variable that is updated independently. Consequently there are 3 different dynamic quorums, one for constitution amendment proposals, one for law proposals and one for all the other proposals.

The initial participation values for each quorum are initialized with migration code during the chain upgrade that introduces dynamic quorum feature, but for a new chain they can be set from the genesis file.

Key Module Changes

The following parameters are added to the x/gov module:

  • quorum_range : struct containing Min and Max quorum values required to pass a proposal.
  • law_quorum_range : struct containing Min and Max quorum values required to pass a law proposal.
  • constitution_amendment_quorum_range : struct containing Min and Max quorum values required to pass a constitution amendment proposal.

The following x/gov module parameters are deprecated, because the quorums are no longer a fixed value:

  • quorum

  • constitution_amendment_quorum

  • law_quorum

A new query endpoint will be available to fetch the current value of the quorums.

For retrocompability reason with clients like block explorer, when queried, the deprecated parameters will be set with the dynamic values.

Testing and Testnet

The Dynamic Quorum feature will be rigorously tested via unit and end-to-end tests.

Should this proposal pass, before submitting an upgrade proposal on mainnet including this new feature, the AtomOne public testnet will undergo a coordinated upgrade that will include the Dynamic Quorum feature, allowing more testing before mainnet deployment.

Potential risks

User Experience Challenges

Users will experience fluctuations in the quorum required for a proposal to pass. Moreover, higher than normal participation will increase the dynamic quorum and consequently increase the chances of failure of the successive proposal.

Audit

An audit covering the entire AtomOne codebase and the x/gov module including the Dynamic Quorum feature has been performed and almost reached completion, and the results will be made public before the software upgrade including the presented system is submitted on the mainnet.

Upgrade Process

An upgrade proposal including the dynamic quorum will be submitted for governance voting should this signaling proposal pass.

Constitution Amendment

As already stated at the time of writing the value for the Quorum parameter is set to 0.25 for regular proposals, laws and Constitution amendments. This already presents a source of conflict with the existing Constitution that states instead that the quorum shall be set to 40%. A Constitution amendment was already planned to fix this incosistency, but was ultimately delayed due to the intention of eventually making the quorum entirely dynamic to better respond to historic participation. Submitting multiple amendments to edit the same piece of text (alongside other changes) would have unnecessarily strained the AtomOne governance, and therefore a choice was made to submit only one amendment to directly include the dynamic quorum instead. While it is true that this signaling proposal has been submitted prior to the amendment - in order to gather sentiment from the AtomOne stakers about the intention of including the dynamic quorum in a future upgrade - the actual software upgrade will only be submitted after the submission of a Constitution amendment that includes the necessary changes to make this system consistent with the Constitution.

Should the amendment not pass even if this proposal passes the dynamic quorum system will be considered rejected by the AtomOne governance. A Constitution amendment to pass requires an approval rate of more than 90%.

Codebase

https://github.com/atomone-hub/atomone/blob/main/docs/architecture/adr-005-dynamic-quorum.md

https://github.com/atomone-hub/atomone/pull/135

Voting options

  • Yes: You are in favor of adding the Dynamic Quorum.
  • No: You are against having the Dynamic Quorum.
  • ABSTAIN - You wish to contribute to the quorum but you formally decline to vote either for or against the proposal.

Votes

Voter
Answer