onflow/flow-core-contracts

Require proof of possession of the staking private key from staking nodes

Opened this issue · 0 comments

Context

(based on the old private repo issue https://github.com/dapperlabs/flow-go/issues/6284)

Proof of possession of the staking private key (PoP) is a required info from all staking nodes, to prevent BLS rogue key attacks.
This issue is about updating the core contract node registration to require a valid PoP in all staking requests.

Definition of Done

  • Add a new proof of possession parameter to the registerNode method
  • Verify the PoP in the register method, if it doesn't verify properly, revert
  • Update LockedTokens and StakingCollection to use this new parameter also
  • Add tests for the transaction