I’m out of forest metaphors, so let’s just say Gremlin here is running a validator node.
In the previous staking post, we addressed the knowns and unknowns regarding staking returns on the OMG network. Today we will discuss some of the more technical aspects of how staking will work. Shamelessly repeating myself, I will stipulate that the network is still under construction, so there are elements that have yet to be fully formed. As always we want to give you information that is definitive and correct, so here again we will abstain from speculation and be clear about what is and isn’t decided.
Details below apply to the initial Honte implementation being deployed on Tendermint; not everything will hold true in the Plasma implementation (more about our multi-phase rollout here). In some cases the different protocols will call for different approaches.
The OMG network will use a Proof of Stake (PoS) system. Before we dive into the specific ways in which PoS will be employed by the OMG network, a very brief overview of basic concepts:
Staking? What is this?
Unlike Proof of Work (PoW), in which a miner (validator) has to expend an enormous amount of computing power in order to mine a block, PoS requires a validator to “stake” their tokens in order to validate. Essentially, validators put their tokens in a security deposit that is held in a smart contract. If they validate actively and honestly they are rewarded; if they behave dishonestly they lose tokens.
Both systems are designed to make faulty behavior cost more than it’s worth:
The brute computational strength needed to mine a block in PoW represents both a substantial investment in hardware and great energy consumption. The first miner to demonstrate correct PoW on a mined block receives a block reward as well as transaction fees associated with that block. That investment is a sunk cost regardless of the outcome; miners who misbehave (e.g. submitting incorrect proofs) will expend resources and see no returns, while honest ones have a chance of collecting block rewards that make them their money back and then some.
In PoS, we skip all the hardware and burned energy. Validators just put their investment (in the form of tokens) directly into the system, where they are rewarded in the form of transaction fees for non-faulty behavior and are penalized for faulty behavior. That penalty can take the form of either hard slashing (loss of all staked tokens) or soft slashing (loss of returns). OMG will use soft slashing in Honte.
Returns are distributed in proportion to the number of tokens staked. However, PoS still represents a more equitable system in that returns are directly proportional to your stake. In PoW, the more computing power you have, the cheaper it is to add more. Since computing power is what earns you mining rewards, this leads to people with lots of money collecting disproportionately larger returns — similar to regressive taxation. In PoS, on the other hand, a dollar is a dollar no matter how many of them you have.
Will there be minimum transaction fees?
We’re planning to build minimum fees into the protocol to prevent whales from setting unreasonably low fees in order to drive smaller validators out. Determining the minimum fees is a part of active research to ensure all validators receive the benefit they deserve for securing the OMG network.
Where do tokens go when they’re slashed?
Different protocols carry out slashing in different ways: it can mean redistributing tokens among remaining validators, awarding them to the reporter of the misbehavior, or removing them from circulation altogether (either via a mechanism that actually decreases the total supply, or by sending them to an unspendable address).
OMG’s Honte implementation will use soft slashing, in which returns (not the principal amount) are revoked; but the fate of the slashed tokens is not yet established.
What fancy equipment will be needed in order to run a validator node?
A validator node is designed to be light enough to run on modern computer, virtual private server, or cloud server. This is one of the most appealing things about a PoS system: PoW burns a ton of energy by design, and as the blockchain ecosystem grows this becomes increasingly wasteful and unsustainable.
Validators will need to satisfy security requirements and validation will require sufficient network connectivity, but compared to a PoW mining rig, the computing power required to run a PoS validator node is much lower.
OmiseGO validators will not need to stake ETH or act as Ethereum validators, but will need to run a full Ethereum node for root chain security reasons.
When I stake my tokens, will they go somewhere?
Staked tokens will be sent to a smart contract and frozen on the root chain. Each validator node will connect to a staking contract address that the network will be allowed to slash from or send returns to, according to the validator’s behavior.
What if I lose the keys to the address that I sent the tokens from?
Don’t do that. When you withdraw, the contract will return your tokens to the address from which they were sent. Smart contracts are intentionally designed to circumvent human intervention, so once one is triggered its instructions can’t be altered or reversed. This is a positive in that it is a tamper-proof mechanism, but it puts the responsibility on you to maintain control of your tokens and addresses.
Will I be able to hold my staked tokens in my MEW/Metamask/Ledger/Trezor/miscellaneous exchange wallet?
Not exactly: the tokens themselves will move from your wallet into the staking contract, where they will be safe in the warm arms of the root chain until you decide to withdraw them. Staked tokens are stored directly on the root chain and will be every bit as safe there as they would be on a hardware wallet — safer, really, because the root chain can’t be forgotten on a plane or eaten by a dog.
That said, a secure address owned by you from which to send and receive tokens is a must (see above). A hardware wallet, properly secured and backed up, remains one of the best ways to keep your keys secure and make sure your tokens have a safe place to come home to.
Don’t, don’t, don’t (did I mention don’t?) ever send tokens to any contract from a third-party exchange wallet, unless you are mad at those tokens and never want to see them again.
Will there be a minimum or maximum number of tokens I can stake?
Rather than setting a minimum or maximum number of tokens to be staked by validators, there will be a maximum number of validators allowed in Honte. The stakers with the highest number of tokens staked will be selected as validators. The maximum number of validators has not yet been determined.
Limiting the number of validators is necessary to keep the validator network from getting bogged down: although we want wide distribution, too many validators staking low amounts will slow things down since each block has to be validated by two thirds of the total stake. More validators requires more messages, slowing down consensus on the next block. So although we want to encourage wide base-layer adoption in the interest of a more secure and fair network, we also need to balance this with efficiency.
For those with smaller holdings, wide adoption is still possible via staking pools, wherein a validator assumes custody of tokens and stakes them on participants’ behalf, most likely in exchange for a percentage of the returns. More details on staking pools in a future post.
We are unlikely to cap the number of tokens allowed to be staked by a single validator; although we do not want to see whales hoarding tokens and taking control of the network, there is nothing to stop someone with massive holdings from simply splitting those holdings among multiple nodes. Given that there is a finite number of nodes allowed on the network at one time, this could actually negatively impact decentralization by shutting out other potential validators. In addition, a maximum amount would limit the potential size of staking pools, in effect limiting the number of non-whales who would be able to benefit from holding and staking.
Are staked tokens locked for a set period?
Staked tokens will be locked for a certain period, and will need to be re-staked after each period. There will also be an unbonding period once the staker decides to withdraw. The length of these periods has not been determined but will be long enough to strengthen the indirect alignment of incentives: if one cannot quickly sell the tokens during or after validation, one is more incentivised to ensure that the network is functioning properly.
The staking and unbonding periods also encourage stability, both in the pool of validators and in the token price. We want people to participate in the network long-term and be incentivised to contribute to its success, which doesn’t work if people are jumping in and out every time the price of the token changes by a penny.
What currency will be used for payouts?
People have speculated that payouts would be in OMG given that OMG is used for staking, but this would quickly create a liquidity issue since there are a finite number of OMG tokens in circulation. Validators may be able to accept fees in any token, including but not limited to OMG or ETH.
Do I have to run a validator node in order to stake?
The whole point of the PoS model is to have stakers run validator nodes. Staking tokens will not force you to validate, per se, but there will be no benefit to staking if you don’t validate. As outlined in the previous post on returns, fees will be rewarded when validators validate transactions. You will not collect fees simply by sending your OMG to a staking contract — you need to participate in validating in order to collect returns, and those returns will reflect your level of participation.
Those who stake via staking pools, as mentioned above, may participate more passively via an operator running a validator node.
I hope this helps clarify some of the practicalities of staking. We are hard at work and making great progress on Honte, which will deploy on Tendermint with a functioning PoS construction and give you the opportunity to see all of this in action.