-
Notifications
You must be signed in to change notification settings - Fork 109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AIP-6][Discussion] Delegation pool for node operators #20
Comments
AIP PR - #21 |
PR approved - AIP link: /~https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-6.md |
Hi there! I think making an immutable fee for a public pool is a kinda controversial idea in the long term. It can potentially limit flexibility for validators to reflect changing market conditions and staking revenues. For example, changing the fee to 0% can be a good option to compensate for a short-term weak performance/incident that led to a reward loss without the need to send and calculate rebates per user, imposing a legal risk of a custodial transfer. Curious if the decision to make an immutable fee is based on tech limitations, or are there other reasons for that? |
Given the nascency of delegation on aptos blockchain, I would suggest an immutable fee helps to protect the stakers by ensuring that the operator doesn't suddenly raise fees without notice / public announcements. This is important given that many stakers might leave their tokens in a pool and not pay attention for a long while. However, I agree that potentially allowing operators to have the ability to change fees based on market conditions might be a useful feature in the longer term. But I would class this as a P2? |
Great initiative and good work. I think this feature is highly needed. I don't think that commission modifications are a priority either, but as an idea to solve the issues you are mentioning, other networks implement a commission change cooldown, a max commission change per period, and a maximum commission. Thanks to this, users can be protected and you don't limit the flexibility of the pools too much. |
Thank you guys for putting effort into making it happen. It's something we all need. I am just curious to find out some details. Will there be a minimum delegate amount for a delegator? Thanks. |
hello @Rob-StakingCabin, to answer your questions:
|
Thank you @alexfilip2 for the answer. Looking forward to it. |
Finally! Looks ok to me, looking forward 👀 |
I think another risk to consider is that there is currently no slashing (only missed rewards). Curious to understand whether slashing is also in roadmap or what the considerations are for not having it. Intuitively, it seems like end users would action more quickly on switching validators when getting slashed rather than just missing out on rewards. |
Yes. This is needed. |
This would probably be sensible, although setting the bar would be tricky as the cost of minimum delegation would fluctuate with market conditions. RE:
From @wintertoro - other networks have solutions like setting a max change param for the operator which is the maximum % change allowed in one go. An operator also has to set a ceiling of %. I believe @iicc1 is also referring to the same mechanism. e.g. I could say my commission is 5%, my max commission threshold is 15% and my change is 2%. So delegators can expect what my bear market commission might be, as well as the max speed that commission could be changed. Agree it's a P2 though. Would say that the ceiling is the more useful thing, not sure your average delegator selects based on the change %, from what I've seen. Final thing on fees - 0% commission can become quite toxic, as it results in a "race to the bottom" for validators and defeats the object of the exercise, so it's good to set a sensible lower bound.
We've talked about this a lot on the validators podcast that we do, but slashing tends to overwhelmingly affect delegators rather than node operators unless the operator has a lot of tokens staked to their node. (see my first point). However, by increasing the stress involved in maintenance (risk of slash) the irony is probably that best practices sometimes are not followed. I guess the broad point I'm trying to make there is that the desired incentive that slashing represents has in practice been supplanted often by unintended side effects. Node operators seek to stay up because of rewards. Slashing often just seems to be an arbitrary penalty when it does happen. Final thing - on voting, there haven't been any controversial props on Aptos yet. There probably will one day, and in that scenario voters are going to want to override their validator's vote, or it will be a bloodbath. That's from direct experience in Cosmos, where the chain-level DAO democracy can get really quite wild (to put it mildly). Apologies for the brain dump! |
looks Good to me. |
I think it was necessary for a long time. to maintain decentralization it is essential to maintain a variety in the set. that seems fine to me. |
First of all, this work is a great initiative! Appreciate your work :)
Thank you :) |
I think having flexibility for immutable or mutable with multisig is good. As others mentioned, there could be times when a validator might want to change even to 0% for a short period of time. Would not recommend setting limits to changes in thresholds and would let just free market dynamics play out. For fees, same as a module, validators could choose mutable or immutable. Best practice could be to have a guarded launch that is mutable and then over time remove safety limits and make immutable. More flexibility in the standard allows for more use cases. |
AIP-6: Delegation pool for node operators
Summary
Currently, only token owners with 1M APT are able to stake their tokens and earn staking rewards. We want to enable everyone in the community to have access to staking rewards as well. We propose adding a delegation contract to the framework. This extension enables multiple token owners to contribute any amount of APT to the same permissionless delegation pool. As long as the total amount of APT in a delegation pool meets the minimum stake required for staking, the validator node on which it is set on will be able to join the active set and earn staking rewards.
Participants (delegators) would be rewarded proportionally to their deposited stake at the granularity of an epoch. Delegators will continue to have the same stake management controls (such as
add_stake
,unlock
,withdraw
etc.) in the delegation pool, similar to pool owners in the existing staking-contract implementation.For the P0, existing stake pools cannot be converted into a delegation stake pool. A new delegation stake pool would have to be created. However, this could be a future development.
Motivation
The current staking mechanism puts the community at a disadvantage, as it is less probable that a single individual has 1M APT tokens to start their own validator.
Given this functionality is enabled, the community can participate in staking activities and incentivize validators thus adding value to the ecosystem.
On the other hand, the entry stake requirement makes it difficult for some actors, possibly experienced in maintaining and securing blockchain validators, to join the network as node operators. With this new functionality, they can get support from the community to enter the active set.
In the current staking implementation, the activeness of a validator is influenced by a single entity's stake (stake-pool owner) which can leave the node unstaked at any time (actually on lockup period expiration). In the new implementation, this scenario is less likely to occur.
Rationale
This feature has the potential to increase the number of validators in the ecosystem leading to further decentralization and a higher amount of tokens staked on the protocol.
Specification
A detailed specification of the proposed solution can be found here.
To summarize, the following behavior would be supported:
The operator fee, previously configured by the owner, will be immutably set at pool's creation by the node operator itself. Therefore, delegators have the option to participate in pools of their choice with regard to commission fee.
Reference Implementation
There is a reference implementation, integrated directly into the framework, treating
aptos_framework::stake
module as a black box, at /~https://github.com/bwarelabs/aptos-core/tree/bwarelabs/shares_based_delegation_pool.Risks and Drawbacks
The staking API initially exposed would incur a higher gas cost (only for delegation pools) as additional resources have to be stored and maintained in order to keep track of individual delegators' stakes and rewards earned by pool's aggregated stakes.
Future Potential
We could uniformly enforce that a delegator cannot decrease the total stake on the pool below the active threshold or decide to fully unstake the delegation pool.
We could restrict the node operator to deposit a minimum stake amount in order to allow its pool to accept delegations.
Suggested implementation timeline
We hope to get it on the mainnet in Q1, but this is pending further technical scoping.
The text was updated successfully, but these errors were encountered: