Background & goal
- Via the proposal action “Transfer SNS Treasury funds” an SNS can vote on transferring funds from its treasury (for example to pay developers for work on code extensions).
- Currently there are no special restrictions in place on treasury proposals.
- Proposals are approved
- immediately if they reach more than 50% of the voting power.
- after the initial voting period + wait for quiet, if there are more yes than no votes and if the yes votes exceed MIN_NUMBER_VOTES_FOR_PROPOSAL_RATIO which is a constant set to 3%.
- The initial voting period (typically 4 days) and the wait for quiet increase (typically 1 days) are already configuration parameters which are set in the SNS init file.
- There is the risk that a malicious treasury transfer is approved because
- Voters might be overwhelmed with many proposals submitted in parallel.
- (Some) voters are not yet actively voting, in particular in the first days/weeks after SNS launch, where participants are still configuring their following set-up.
Suggested approach (short-term)
- Approve treasury transfer proposals only if they reach 50% approval. This would require a small adaption of the function “is_accepted” within sns/governance/src/proposal.rs
Ideas for further enhancements (mid-term)
- The mid-term approach should be reviewed after the community has gained further experiences with SNS launches and SNS Treasury management.
- Potential ideas
- Introduce configuration parameters for treasury transfer proposals which are set in the SNS init file. In particular the ability to set specifically for treasury transfer proposals the minimum number of votes and the initial voting period
- The minimum number of votes could decrease over time, for example starting at 50% and going down to 40% after 3 months. This would give the SNS treasury a higher protection directly after the SNS launch, and allow a lower threshold later on for operational reasons.
Next steps
- Syndication in the forum.
- Implementation and inclusion in one of the upcoming SNS releases.