To reach our common goal of creating a DAO, we need to agree on a robust and transparent governance mechanism to ensure that decisions are made in a fair, democratic, and efficient manner.
Ideally, every token holder would participate in governance by voting and pass their votes just after proposal creation. However, this is not a reality due to various reasons, including holders who do not care about governance processes, those who cannot be online 24/7, and actors who may want to hurt the DAO. Despite these challenges, DAO should be able to make their decisions in a reasonably short time.
Proposition
The system proposition is based on the ABAX PSP22 token and the Governor’s contract, which is the core of the governance system through which ABAX holders can perform and execute decisions together. The technical description of the Governor’s contract can be found here. The Governor contract allows ABAX holders to perform the following actions: stake
, initialize_unstake
, unstake
, propose
, vote
, finalize
, execute
, claim_reward
and slash_voter
.
The stake
allows depositing ABAX in the Governor’s contract, and it takes 21 days to unstake
them. To start unstaking, one calls start_unstake
; after 21 days, one can receive their tokens back by calling unstake
. One can only unstake all of one’s stake and during the unstaking period, one can not stake
more tokens.
Anyone with at least 0.1% of all staked tokens may propose
a transaction that the Governor’s contract should execute. To propose
, one needs to pay 1000AZERO to the contract. Whenever the proposal is finalized, the AZERO will be refunded unless the voters decide otherwise. Moreover, each proposal contains an Importance Parameter (IP), a number from 0 to 500 which is used to calculate the reward for voting participants. This number is capped based on the proposer’s stake:
The voting period for the \small{\texttt{proposal}} is 14 days and is divided into three periods: initial period, flat period and final period which takes 3, 7, and 4 days respectively. Depending on the period amount of the required votes varry, starting at 100% in initial period and falling to 0% at the end of the final period. During the whole 14 days voting period, anyone with staked tokens can vote
for the proposal. One staked token is one vote
for agree, disagree, or disagree with proposer slashing. The last option allows Dao to punish bad actor proposers by not refunding their deposit and slashing their stake. A voter should cast this type of vote if the voter is very sure that the proposer wants to hurt the DAO willingly.
For the \small{\texttt{proposal}} proposed at time t_0 the proposition may be finalized
with the accepted/rejected result at time t if at that the amount of agree or disagree + disagree with… votes is larger than:
If the proposal is accepted, anyone can execute
the transaction. Anyone who has voted can claim
the reward of \frac{IP}{100}% that will be added to their stake. If the proposal
is resolved in the final period then anyone who did not start the unstaking before the proposal proposition will have their stake slashed by 20%.
Moreover, if the number of votes for disagree with proposer slashing is greater than the agree + disagree then 100% of the proposer stake is slashed and his deposit of 1000AZERO is not refunded.
Please note that \small{\texttt{proposals}} will be eventually finalized, as the required number of votes to finalize
decreases over time to 0.
Discussion
The system is designed to distinguish between holders who wish to participate in governance processes and those who do not. It is important to note that staking tokens declare one’s active participation in the governance process by voting. Once one has staked it is their obligation to participate in voting until they start_unstake
. Those who stake and vote are rewarded, while those who do not vote are subject to a penalty (slashed). This motivates users to vote and enables efficient decision-making. Furthermore, the system is highly inclusive, as anyone who wishes to declare their active participation in voting may do so.
The AZERO refundable fee for proposals is intended to prevent proposal spamming.
The reward mechanism is to promote fast decision-making, in the face of an emergency, the IP may be set up to 500 rewarding everyone who votes with up to 5% of one’s stake. However, this mechanism could be exploited by spamming empty proposals and setting the IP as high as possible. To mitigate that and to deter bad actors even more, voters can choose to slash the proposer by voting for disagree with proposer slashing.
(edited on 19 April 2023) Renamed start_unstake
to initialize_unstake
. Introduced slash_voter
method that is used to slash inactive stakers. Introduced initial period, flat period, and final period.