Understanding Nominated Proof of Stake (NPoS)

NPOS is a Proof-of-Stake system where nominators use their own stake to back the validators they think will do the best job. Nominators are subject to loss of stake if they nominate a bad validator. In other words, if you pick a validator that acts against the system, that validator will be slashed (will lose coin) and so will you! You can be a nominator and/or a validator and earn token rewards from the system for your effort. 

You can also get involved in the governance process by putting in proposals, doing work to help the network, voting on all kinds of things and even being a Council Member…

How The Treasury & Treasury Proposals Work

The Geode Treasury is a pot of on-chain GEODE coin from transaction fees, slashing, minting, etc. The funds held in the treasury can be spent on Treasury Spending Proposals. In fact, if the Treasury funds are not spent in a timely manner, a percentage of the treasury funds (currently 20%) will be burned. Anyone can put in a proposal for how those funds should be spent. If you have an idea for something you can do to help the Geode community, put in a proposal for a chance to receive treasury funds to do it. What would be helpful? Helpful projects might include setting up in person meetups for Geode users, coding new applications, fixing or updating existing applications, updating the documentation, or other ways of growing the community and adding value.  

Tips

Did you notice someone doing something awesome in the Geode Ecosystem? Tips are paid out for awesome things that have already happened. Anyone can nominate anyone else for any reason to receive a tip. The Council members will then endorse or not endorse the tip. The final value of the tip is decided based on the median of all tips recommended in each council member endorsement. When a simple majority of the Council has endorsed the tip, other Council members can still endorse it, but they do not have to. When the window for tip endorsements closes, anyone can make the tip pay out closing it. Doing that is a bit technical, so be sure the tips you are involved with get paid out by communicating with someone on the Council, or a technically minded friend to call the appropriate close_tip extrinsic for that tip. 

There are two types of tips: 

  • Public-initiated: Put in by someone who is not on the Council. A small bond is required to place them. This bond depends on the tip reason length, and a fixed bond constant defined on chain, currently 1 GEODE. Public tips carry a finder’s fee of 20% for the person who submitted the tip proposal. That finder’s fee is paid out from the total tip amount. 
  • Council-initiated: Tips that a Council member posts do not have a finder’s fee or a bond.

Bounties

A Bounty is a reward, planned ahead of time, for a specified set of work – or specified set of objectives – that needs to be done for a predefined treasury amount to be paid out. Bounties are typically for bug repairs, vulnerability repairs, and other critical coding tasks, but you can propose a bounty for anything from attending conferences to other community building activities. In a bounty, you may not know who should do the work yet, or who should oversee the work. You just know that the work needs to be done and how many GEODE coin should be paid for that work. 

Anyone can submit a Bounty Proposal. The Council votes on the Bounty Proposal. If it passes, then the Council appoints a Curator who is an expert in that subject and acts as a Project Manager for that bounty. The Curator finds someone to do the work, oversees the work, and determines when the work is done. The Curator pays a deposit up front to take on the role. This deposit will be slashed if the Curator acts maliciously. However, if they are successful in their task of getting someone to complete the bounty work, they will receive their deposit back AND part of the bounty reward as a fee. When submitting the value of the bounty, the proposer includes a reward for curators willing to invest their time and expertise in the task. This amount is included in the total value of the bounty. Bounties have 90 days to complete the work, but the Curator can extend that if warranted. When the work is done and the Curator closes out the bounty, there is a delayed payout to both the Curator and the person who did the work. The delay allows the Council to act if any issues arise.

Bounties don’t contain much information on the chain. So when you submit a bounty spending proposal, you will want to explain the proposal in detail somewhere off the chain, such as in the Geode Discord, in a Google Doc, or a blog post at your own site, or some other place online.  

What The Council Does

The Council is a set of 13 users who care A LOT about the success of the network. Council members have two main tasks: proposing referenda for the community to vote on, and cancelling malicious or spammy referenda. In these ways, the Council can act as a representative for “passive” (non-voting) community members. 

What The Technical Committee Does

The Technical Committee is composed of Geode users that have successfully implemented a Geode Validator Node AND participated in Geode code development. Members are added or removed from the Technical Committee via a simple majority vote of the Council. The purpose of the Technical Committee is to safeguard against malicious referenda, implement bug fixes, reverse faulty runtime updates, or add new but battle-tested features. The Technical Committee has the power to fast-track proposals, and is the only type of user that is able to trigger the fast-tracking functionality. We can think of the Technical Committee as a group that cannot generate proposals, but are able to fast track existing proposals. Fast-tracked referenda are the only type of referenda that can be active alongside another active referendum. Thus, with fast-tracked referenda it is possible to have two active referendums at the same time (one on the fast track and one not). Voting on one does not prevent a user from voting on the other.

How To Vote For Or Run For A Seat On The Council

To run for a seat on the Council, register yourself as a candidate using the Geode interface. Then, tell your friends and ask them to vote for you. All community members are free to signal their approval of any of the registered candidates. And you can vote for more than one! We recommend voting for the set of council members that you think will do the best job of promoting the overall success of the Geode Network while maintaining the principles of our decentralized community. 

Council terms last for one weekYou can vote anytime and your vote is held that way until you change it. At the end of each term, the algorithm will choose the new councillors based on the vote configurations of all voters. The election algorithm will find a fair subset of the candidates that most closely matches the expressed indications of the community as a whole. The election also chooses a set number of runners up which is currently 7, that will remain in the queue with their votes intact.

The council has what’s called a prime member whose vote acts as the default for other members that fail to vote before the timeout. The prime member is chosen based on a Borda count. The purpose of having a prime member of the council is to ensure a quorum, even when several members abstain from a vote. Council members might be tempted to vote a “soft rejection” or a “soft approval” by not voting and letting the others vote. With the existence of a prime member, it forces councillors to be explicit in their votes or have their vote counted for whatever is voted on by the prime.

How Proposals Become Referenda And Are Voted On

Referenda start out as Referendum Proposals. Most referendum proposals include specialized code that changes the system, called a privileged function call, that makes changes in the network automatically if approved. We try not to have too many of those!

Here is how the process works:

(1) A Proposal Is Submitted To The System

This can happen four ways

  • Any user on the system can submit a proposal (these are Public Proposals)
  • The Council can submit a proposal (if a majority of them agree to do so. One single veto from any Council member will stop this.)
  • A previous referendum that passed might have automated code in it that would submit another proposal (that’s kind of rare, though)
  • or The Technical Committee can submit an Emergency Proposal (usually to fix a vulnerability or other critical problem)

Special Note on Public Proposals: Anyone can submit a proposal by bonding the minimum amount of tokens for a certain time period (number of blocks). If someone agrees with the proposal, they may bond the same amount of tokens to support it – this action is called endorsing. There can be at most 100 public proposals in the public proposal queue at one time.

(2) The Proposal Becomes A Referendum

Public Proposals: The proposal with the highest amount of bonded support will be selected to be a referendum in the next voting cycle. (Unless the proposal is deemed malicious or spammy, in which case the Council will remove it.)

Council Proposals: When all the members, or at least a majority, of the council agree on a proposal to begin with, it will become a referendum.

Technical Committee Emergency Proposals: These will be fast tracked to be voted on as a referendum so that fixes can happen quickly.

(3) Users Vote On The Referendum

Every 28 days, a new referendum will come up for a vote, assuming there is at least one proposal in the queue to vote on. There is a queue for Council-submitted proposals and a queue for publicly submitted proposals. The referendum to be voted upon alternates between the top proposal in those two queues.

Generally, only one referendum will be considered and voted on each 28 days. The only exception is when there is also an Emergency Referendum to be voted on at the same time. 

You can vote either AYE or NAY on a referendum, or you can abstain entirely. To vote, a voter generally must lock some tokens up for a short period of time (bonding). This minimizes people selling their votes. It is possible to vote without locking at all, but your vote will be worth a small fraction of a normal vote, given your stake. At the same time, holding only a small amount of tokens does not mean that you cannot influence the referendum result, thanks to time-locking. Time-Locking is also called Conviction Voting. If you feel very strongly about that referendum, you can volunteer to lock up your tokens for a longer period of time, as a show of how deeply you are convicted to this vote. That measure of your conviction multiplies your voting power. 

(4) Change Happens

Obviously, if a referendum does not pass, nothing happens. For successfully passed referenda, there is a delay between the vote and the changes being enacted, usually 28 days, but for emergency referenda it will be a lot shorter.