SIMD-0180
Vote Account Address Keyed Leader Schedule
TL;DR
The epoch leader schedule for block production will be migrated from being keyed by validator identity addresses to being keyed by vote account addresses. The expected block signer for a given slot will be determined by the vote account's designated validator identity.
Summary
The epoch leader schedule for block production will be migrated from being keyed by validator identity addresses to being keyed by vote account addresses. The expected block signer for a given slot will be determined by the vote account's designated validator identity.
Motivation
Using validator identity addresses in the leader schedule means there is no straightforward way to map a block producer to a particular vote account and its delegated stake. This is because the same validator identity could be designated by multiple vote accounts. By migrating the leader schedule to being keyed by vote account addresses, we know exactly what delegated stake led to a validator's leader schedule slot allocation. This will make certain protocol improvements much easier to design like how to distribute block rewards and how to slash validators that produce duplicate blocks.
Key Changes
- non-zero lamport balance
- owned by the vote program (Vote111111111111111111111111111111111111111)
- data size of 3731 bytes and data[4..86] != [0; 82]
- data size of 3762 bytes and data[4..118] != [0; 114]
Impact
Negligible impact expected. There will be some extra overhead to looking up / caching the validator identity address for each vote account address.
Backwards Compatibility
*(Optional)* Feature gate will be required to enable this migration since leader schedule generation will be different.
Security Considerations
NA