Skip to content

Add support to Staking contract to separate operational from financial capabilities  #358

Open
@peterargue

Description

@peterargue

Issue To Be Solved

Currently, a single capability is used by node operators to interact with the Staking contract for all updates, including updating the node's hostname, staking/unstaking, and removing funds. This works fine for small or individual operators, but adds risk for larger operators that may have a team/automations that help manage their nodes.

Suggest A Solution

Instead of a single capability, create 2 or more separate capabilities that handle each of the types of accesses. For example, it could be broken down in the following way

  1. Operational access - used to update the node's hostname and any other strictly operational changes. Operators could give access to this to an automated system or a team of operators
  2. Staking/unstaking - used to commit new tokens, unstake tokens, or restake rewards, etc. All financial operations that don't involve withdrawing funds. This could be granted to a small number of highly trusted individuals to allow managing their fleet.
  3. Withdrawing funds - used to withdraw unstaked funds. This would be kept securely in an HSM or cold storage with very restricted access.

By default, all 3 capabilities would be added to the node's staking account, but the operator would have the option to move/delegate them to different accounts.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

🧊 Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions