Skip to content
This repository has been archived by the owner on May 22, 2023. It is now read-only.

ETH-only delegating contracts #271

Closed
pdyraga opened this issue Mar 3, 2020 · 3 comments
Closed

ETH-only delegating contracts #271

pdyraga opened this issue Mar 3, 2020 · 3 comments
Labels

Comments

@pdyraga
Copy link
Member

pdyraga commented Mar 3, 2020

Requirements:

  • ETH owner should be able to delegate their ETH, run client, and participate in keeps as a signer.
  • One keep should not have mixed KEEP operators and ETH operators.
  • For ETH-only option, we should define the same roles as for KEEP staking: owner, operator, authorizer. We should also expect the owner to authorize operator contract.

Implementation:

  • We add a separate fully-backed sortition pool selecting signers based on their bond weight.
  • We add a separate ETH-only ECDSA keep factory.
  • We add a separate ETH-only bonding contract.
  • tBTC decides on which factory to use.
  • The ETH-only bonding contract defines owner-operator-authorizer roles and implements operator contract authorization mechanism.
  • Ban malicious players
@pdyraga
Copy link
Member Author

pdyraga commented Sep 22, 2020

Notes on the existing implementation based on our recent conversations:

  • We do not require over-bonding from ETH-only operators. They will need to supply the same bond as KEEP operators.
  • It would be nice if we could remove and ban operator from a sortition pool on a proven misbehavior.
  • We should have some kind of lock/undelegation period for ETH-only bonds to elimate the possibility of griefing (e.g. miner sees a delegation to operator X, they put their own delegation transaction to X, and unbond tokens immediatelly)

@nkuba
Copy link
Member

nkuba commented Sep 26, 2020

We should have some kind of lock/undelegation period for ETH-only bonds to elimate the possibility of griefing (e.g. miner sees a delegation to operator X, they put their own delegation transaction to X, and unbond tokens immediatelly)

We may require ETH to be passed along with the delegation. The ETH will be deposited as unbonded value in bonding contract. Additionally we can lock unbonded value withdraw for a specific period of time since the delegation. What values would be appropirate for minimum amount of ETH passed on delegation and the lock period before withdraw?

@pdyraga pdyraga added this to the solidity/v1.3.0 milestone Oct 12, 2020
@pdyraga pdyraga changed the title ETH-only delegating ETH-only delegating contracts Nov 13, 2020
@pdyraga
Copy link
Member Author

pdyraga commented Feb 15, 2021

We decided to not implement this natively in the protocol but instead introduce a KEEP-only pool. At the same time, there are efforts in Keep community to implement community staking pools.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

5 participants