[ADD] Vault Nodes
Overview
Vault Nodes will provide a way for more users to participate in bonding RUNE into the network to support economic security and TVL. In this issue the current design is laid out for the purpose of review by the community. The current design is the result of conversations with main THORNode contributors, THORSec, and current node operators.
The idea for this feature originated from this issue, "Lite Nodes" #1012 (closed)
High-level Design of Vault Nodes
- Their minimum bond will be 10K RUNE
- Vault Nodes will manage a "Valkyrie Vault". This is a new type of Vault that will manage only one asset
- If a Valkyrie becomes insecure (due to a drop of RUNE price relative to their asset), the network will start recalling funds
- If no Yggdrasil Vault or Asgard Vault can serve an outbound request, a Valkyrie vault will
- Vault Nodes will verify validity of swaps by checking network solvency of the source asset
- They do not participate in consensus, and do not participate in TSS
- Vault nodes do not churn in. Once they have minimum bond the network sets them as active and sends them funds
- Vault Nodes' rewards will be relative to their bond
Infrastructure
For v1.0 running a Vault Node will require the same infrastructure as Validators except Midgard. The exhaustive list is:
- THORNode
- Bifrost
- Chain Daemons: (currently) BTC, ETH, BCH, LTC, BNB
Reasoning: Vault Nodes secure only one asset, but the swaps they serve can come from any other asset. As such, Vault Nodes will need to independently run chain daemons to verify solvency of the network of the source assets of the swaps they serve.
Another option would be to provide API keys to 3rd party RPC servers of each chain (blockchair, sochain, etherscan, etc). This would be cheaper for Vault Node Operators, but would introduce 3rd party dependencies, which THORChain's design has always tried to avoid. Additionally, this would cause complexity and uncertainty in dealing with API discrepancies, which could cause failure to serve outbound TXs, unexpected slashing, etc.
To reduce systemic complexity and limit new code surface area, the current thinking is Vault Nodes will run all chain daemons. In the future a data query layer may be introduced to have Vault nodes pull chain data from other Vault Nodes, but this will be a major feature.
Rewards
For each block block the Bond rewards will be split:
- 50% go to Validators, evenly
- 50% will be split between ALL vault managers (Validators and Vault Nodes) based on their amount of Bond
This breakdown is to ensure that it will always be more profitable to run a Validator node if possible.