Background
The current model of collecting priority fees, with 50% being burnt and 50% rewarded, does not fully align with validator incentives and inadvertently encourages side deals. For example, consider a scenario where a transaction submitter wishes to prioritize their transaction. Under the existing model, they might opt to directly pay the block producer a 75% priority fee to ensure their transaction is processed promptly, rather than paying 100% priority fee where the block producer only receives 50%. This creates an imbalance where the incentives of validators are not adequately aligned with the networkâs overall health and security.
To rectify this issue, itâs proposed to adjust the priority fee structure to reward validators with 100% of the fees collected. This ensures that validators are appropriately incentivized to prioritize network security and efficiency, rather than being incentivized to engage in potentially detrimental side deals.
This proposal, outlined in Solana Improvement Document number 96 (SIMD-0096), has been fully implemented with the feature:
- Feature Gate 3opE3EzAKnUftUDURkzMgwpNgimBAypW1mNDYH4x4Zg7 : Reward full priority fee to validators #34731: This feature ensures that 100% of the priority fee is awarded to the validator.
The implementation of this proposal requires the use of a feature gate. While there will be no change to the payment structure for transaction submitters, the software incorporating this proposal will allocate a larger portion of fees to the validator compared to previous versions. Thus, a feature gate is essential to ensure a smooth transition for all validators to the new functionality at the epoch boundary, thereby maintaining consensus.
This feature is currently available in the Master of Agave repo (minimum version 2.0) and can only be activated on mainnet-beta after the release of a sufficient quorum of stake, following normal feature enabling rules. Additionally, itâs recommended to activate this feature after the implementation of Feature BtVN7YjDzNE6Dk7kTT7YTDgMNUZTNgiSJgsdzAeTg2jF to address potential rounding errors.
Testing
The following tests have been conducted to ensure the functionality of the proposed feature:
- Unit tests added to the Agave repo demonstrate the featureâs functionality in various scenarios.
test_total_fee_rounding
test_filter_program_errors_and_collect_fee_details
test_check_execution_status_and_charge_fee
test_distribute_transaction_fee_details_normal
test_distribute_transaction_fee_details_zero
test_distribute_transaction_fee_details_burn_all
test_distribute_transaction_fee_details_overflow_failure
- Testing performed on a local test cluster with the feature enabled, observed slots advance and bank capitalization change.
Proposal
It is proposed that the Reward Full Priority Fee to Validator feature, as described in Solana Improvement Document 96 (SIMD-0096), be enabled on the Solana Mainnet-beta cluster according to the following steps:
-
Ensure Feature BtVN7YjDzNE6Dk7kTT7YTDgMNUZTNgiSJgsdzAeTg2jF is enabled to address potential rounding errors.
-
Enable Feature 3opE3EzAKnUftUDURkzMgwpNgimBAypW1mNDYH4x4Zg7 on the Solana Mainnet-beta cluster.
After these steps, validators will receive 100% of the priority fee as part of their reward.
Voting Process
The voting process will proceed as follows:
-
Discussion period: Validators are encouraged to participate in discussions to address any concerns.
-
Stake weight collection period: Stake weights will be captured and published for voting. Validators will have the opportunity to verify these weights.
-
Vote token distribution will require validators to utilize the Jito Merkle Distributor tool (available at https://github.com/jito-foundation/distributor) to claim the vote tokens corresponding to their stake weights.
-
Three token destination accounts will be created for voting choices: Yes, No, and Abstain.
-
Validators will have a designated period to vote by sending their tokens to the respective addresses.
-
After the voting period, if the sum of Yes votes is equal to or greater than 2/3 of the total sum of Yes + No votes, the proposal will pass.
All announcements regarding this process will be made in the Governance category of the Solana Developer Forums.
Timeline
Epoch 612 - 615: Discussion period
Epoch 616: Stake weights captured and published, discussion/confirmation of stake weights
Epoch 617: Voting token distribution, vote addresses created, voting begins
Epochs 618 - 620: Voting continues and completes
Epoch 621: Voting is finished, and the resulting tally determines the outcome
Discussion
Active participation in discussions about this proposal is crucial. Discussions may also take place on the Solana Developer Forums or on Discord Governance channel. Itâs encouraged to consolidate discussions to ensure broad participation and minimize redundancy.
References
Feature Gate: Reward full priority fee to validators #34731: https://github.com/solana-labs/solana/issues/34731