This topic is to develop a community driven voting system for validators. We all know that every validator have a voting power but that was never used. The idea is to build a system that allow validators to vote according to their staked amount weight. Lets say that we want to set minimum fee to 5%. We can vote it and if majority of the validators accepts it we can implement it and update it. This project will be driven by the validator community. If you want to be part of this please lets set up the constraints and implement something useful for us. Any help is appreciated. Let me walk you through what I have in my mind for starters:
Registration
- We will let users create account using register and cspr.click.
Claiming Ownership
- Only a single account can claim each public key.
- Claiming validator can be done by signing a message with wallet extension.
- For security reasons validators can claim their account with their verified account known public keys.
Voting
- Any validator can create a vote.
- Vote can be created under these settings:
– Length of the vote can be 5 minute to 30 days.(urgent reasons might require very low timeframe)
– Vote threshold: Thresholds are set upon creation of the vote(e.g., Voting power, active validator set)
Absolute Majority: More than 66% of all validators, regardless of participation.
Quorum-based Majority: A minimum percentage of total validators must participate for the vote to be valid (e.g., 66% participation is required for the vote to pass).
Supermajority: A higher percentage, such as 75%, to pass more critical decisions.
– Predefined options for vote: Accept, Reject, Pass
– Voting Weight Customization: Staked Weight, Per Public Key, or any other activity/metrics.
– Vote Visibility: Public(All validators can see ongoing results) or private(Results are only revealed after the voting period ends.)
– Voter Visibility: Anonymous vs. Transparent Voting:
Let validators vote anonymously (with the weight of their vote revealed but their identity hidden) or openly (where everyone can see who voted and how).
– Time Extension Mechanism:
For certain votes, the creator can set an option to extend the voting period if the quorum is not met.
– Title
– Description
Voting Details
-
Penalty for Non-Participation
Inactivity Penalties: Validators who consistently do not participate in votes could face some penalties, such as a reduction in voting power or testnet? rewards. This would ensure active community participation. -
Delegated Voting:
Validators can delegate their voting rights to another trusted validator if they are unavailable to vote. This helps maintain quorum. -
Notification and Reminder System
Automated Notifications:
Notify validators when a new vote starts, when the voting period is nearing an end, and when the vote is close to passing but needs more participation.
Pre-scheduled Reminders:
Optional reminders that can be set by the vote creator to encourage participation close to the deadline. -
Proposal Repetition/Lockout
Lockout Period:
Once a vote is rejected or passed, the same or a similar proposal cannot be brought up again for a certain period (e.g., 30 days) to prevent spamming the voting system. -
Incentive/Reward System for Voting
Voting Incentives:
Validators who consistently participate in votes could receive small rewards or points that accumulate over time, incentivizing active participation in governance.
Constants
- Any constants can be changed upon voting. For example: Absolute Majority is set to 75%. Community can vote and change it to 80%.