Skip to content

SIMD-0249: Delay commission updates #249

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions proposals/0249-delay-commission-updates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
simd: '0249'
title: Delay Commission Updates
authors: Justin Starry (Anza)
category: Standard
type: Core
status: Review
created: 2025-02-18
feature: (fill in with feature key and github tracking issues once accepted)
---

## Summary

Allow validators to update their commission values without restriction but delay
those commission changes for at least one full epoch.

## Motivation

Stake delegators should have time to re-delegate their stake in response to
validator commission rate changes.

## New Terminology

NA

## Detailed Design
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this going to be updated to include implementation details? this section is supposed to be sufficiently descriptive that someone can implement the feature/change from this document alone


- During inflation reward distribution for an epoch `E`, use the commission rate
set in the vote account state at the beginning of the epoch `E - 1` when
calculating validator commissions. This is the same vote account state used to
calculate the leader schedule for epoch `E` so it must already be available
in-protocol. The only exception is inflation reward distribution for epoch `E ==
0`. In that case, use the commission rate set by vote accounts in the genesis
config.

- Update the core vote program to no longer restrict commission updates in any way.

## Alternatives Considered

An alternative approach is to track recent commission values over the past few
epochs in the vote account state. This bookkeeping increases state size
requirements of the vote account for each type of commission set by a validator.

## Impact

- Validators will need to wait at least one full epoch before their commission
updates are applied.

- Stake delegators will have at least one full epoch to react to commission
updates.

## Security Considerations

NA

## Drawbacks *(Optional)*

Why should we not do this?

## Backwards Compatibility *(Optional)*

No backwards compatibility issues. Commission updates will be less restrictive.
Loading