- Each mining node need to hold certain amount of NKN tokens in order to participate in the mining reward
- Definition of staking in this particular proposal: the miner has full control of the staking wallet which is the same as the mining wallet. When a particular node is chosen as the block proposer per NKN’s consensus algorithm, it will take into account whether the node wallet has sufficient NKN tokens balance. If yes, a block of mining reward is deposited, otherwise the system will look for the next block proposer, and so forth.
Reasons support staking:
- Increase security: increase cost and difficulty for adversaries to launch large scale attacks.
- This will also mitigate security risks with IPv6 address, since IPv6 address is not scarce and attackers can launch much larger amounts of attack nodes.
- Potentially improve token price by significantly reducing circulation supply. From intuition, the stakes tokens need to be at least 10% of circulation supply to make material impact. [TBD: add simulation results here]
- Better fairness: effective mining cost will be increased by the opportunity cost of the staked token, which is the same for everyone (unlike node and traffic cost), making mining cost more fair for different miners.
- Better decentralization: with increased cost fairness, large miners will likely to reduce their node count, and miners who left due to higher mining cost might join the network again, leading to a more decentralized network (measured by the number of miners).
Reasons against staking:
- With increased effective mining cost, network size will be reduced. Higher staking requirements will lead to a smaller network.
- Significantly increase barrier for new miners: not only they need technical know-how, but also how to acquire NKN Mainnet token (complicated 3 steps: own ETH/BTC/USDT, purchase NKN ERC-20 tokens, swap to NKN mainnet tokens)
- Will token holders, via staking, earn some reward? E.g. similar to interest payment?
- It might not solve the centralization problem if the current cloud node owners are willing to purchase tokens (or use their existing tokens) and put them in node wallets. On the contrary, massive cloud node owners might be even more willing to do it than regular users because their profit is more stable and they do it for business.
Details for discussion:
- How much NKN per mining node?
- How long NKN needs to be staked?
- While mining
- Fixed term: e.g. 3 months, 6 months, 12 months
- How to manage all the wallets for each mining node, esp for larger miners?
- Local wallet is not important in current implementation
- With Beneficiary address, one wallet can manage any number of nodes
- Do Miners and Staker have to be the same person or entity?
- If separate, how to divide mining rewards?
- What about other income like nCDN and nConnect?
Feasibility and implementation costs
- The technical complexity depends on the mechanism we decide to use.
- For the simplest mechanism where staking has no lock period (i.e. just need to hold at the time of mining) and mining reward does not depend on staking amount, the implementation should be relatively simple and should take no more than a few weeks to implement and thoroughly test.
- Staking lock period might require a significant amount of work in the ledger module as the current ledger model does not support such a feature.
- If mining reward depends on staking amount, the token economics model might need rework to ensure the total mining output is stable and predictable.
Advanced considerations for future
- Instead of a binary relationship, e.g. proportional yield to NKN tokens staked. The more you stake, the more you mine.