The process to elect Council members will evolve to be determined by the token holders. To become a Council member, a candidate registers and locks 100 tokens. Any token holder can vote for the candidate by locking tokens signaling its vote. A token holder can vote for multiple candidates simultaneously and can also remove any of their locked tokens from any candidates. The Council members are selected by Phragmen, which is the same algorithm used to select validators in NPoS. If a token holder votes for more than 1 candidate with their locked tokens, Phragmen distributes the locked tokens to maximize the total amount of locked tokens in the system and decrease the variance between each candidates' locked tokens. Once a candidate is selected to be a council member, they will serve their tenure of up to 2 years. If a member misbehaves and is deemed to be detrimental to the health of the network, the Association Board can vote to remove that member.
Changes to the network will be subject to a voting process. Each change (a function call with parameters) will require a token holder to make a proposal by locking tokens. The proposal must be binary (yes or no vote) and can be backed by other token holders who support it. A proposal can also be raised by the Council. Proposals by the Council and the general public will be kept in separate queues and every 30 days a proposal is picked from one of the queues and considered for voting. The proposal selection alternates between these queues. The proposal with the most votes will be chosen for a vote and will be entered into a referendum. In the referendum, the votes are tallied, and depending on the conditions, the proposal is accepted or rejected. If accepted, the proposal is executed after the enactment period which will always be slightly longer than the unbonding period so that token holders have an opportunity to leave the network if they disagree with a proposal.
Calculating a Vote
The value of a vote is proportional to the number of tokens and the duration for which the tokens are locked. There is a 'vote multiplier' which is multiplied by the amount of locked tokens when tallying the votes. The maximum value of the multiplier is 6 and it's achieved when tokens are locked for 6 epochs, locking for 2 epochs makes the multiplier 2, locking for 3 makes it 3, etc. Another factor while tallying the votes is the voter turnout. A proposal that is raised by the general public and has a low turnout requires a super-majority (over 2/3 of the turnout) of "yes" votes to be approved which is called positive turnout bias. On the other hand, a proposal raised and unanimously approved by the Council has a negative turnout bias where a super-majority of "no" votes is required to reject it. A proposal raised by the Council and not approved unanimously, but only by a simple majority of the Council, is determined by the simple-majority votes of the general public.