You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: proposals/0301-remove-bank-hash-from-votes.md
+36-11Lines changed: 36 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -9,17 +9,27 @@ status: Draft
9
9
created: 2025-06-10
10
10
feature: (fill in with feature key and github tracking issues once accepted)
11
11
supersedes: (optional - fill this in if the SIMD supersedes a previous SIMD)
12
-
superseded-by: (optional - fill this in if the SIMD is superseded by a subsequent SIMD)
13
-
extends: (optional - fill this in if the SIMD extends the design of a previous SIMD)
12
+
superseded-by:
13
+
(optional - fill this in if the SIMD is superseded by a subsequent SIMD)
14
+
extends:
15
+
(optional - fill this in if the SIMD extends the design of a previous SIMD)
14
16
---
15
17
16
18
## Summary
17
19
18
-
This proposal would remove BankHash from votes on Solana to allow voting before replay is complete. If all the prerequisites are satisfied before Alpenglow is ready to rollout then it can be activated with Alpenglow. Otherwise it must be a feature flag.
20
+
This proposal would remove BankHash from votes on Solana to allow voting before
21
+
replay is complete. If all the prerequisites are satisfied before Alpenglow is
22
+
ready to rollout then it can be activated with Alpenglow. Otherwise it must be a
23
+
feature flag.
24
+
25
+
This is a very long line of text that should be wrapped by Prettier at eighty
26
+
characters if proseWrap is set to always and printWidth is set to eighty.
19
27
20
28
## Motivation
21
29
22
-
Currently, votes include the BankHash, which ties votes to a fully executed bank state. Removing BankHash from votes allows validators to vote before execution completes. This is also called Asynchronous Execution.
30
+
Currently, votes include the BankHash, which ties votes to a fully executed bank
31
+
state. Removing BankHash from votes allows validators to vote before execution
32
+
completes. This is also called Asynchronous Execution.
23
33
24
34
The synchronous confirmation flow after Alpenglow looks like this:
25
35
@@ -29,7 +39,8 @@ The synchronous confirmation flow after Alpenglow looks like this:
After this feature flag activates validators will be able to vote before they finish executing the block:
42
+
After this feature flag activates validators will be able to vote before they
43
+
finish executing the block:
33
44
34
45
```text
35
46
| ----- leader broadcasts the block through rotor -------|
@@ -41,7 +52,8 @@ After this feature flag activates validators will be able to vote before they fi
41
52
42
53
This proposal contains a single change:
43
54
44
-
1. Remove BankHash from votes. Validators will no longer include the BankHash in their vote messages. The vote structure and any related consensus logic will be updated accordingly.
55
+
1. Remove BankHash from votes. Validators will no longer include the BankHash in
56
+
their vote messages.
45
57
46
58
## Dependencies
47
59
@@ -57,16 +69,29 @@ This proposal contains a single change:
57
69
58
70
## Impact
59
71
60
-
This change is not expected to have any direct impact on app developers. It is a consensus-breaking change and will require all validators to update their software to the new vote structure. Validators running older versions will be unable to participate in consensus once the feature flag is activated.
72
+
This change is not expected to have any direct impact on app developers. It is a
73
+
consensus-breaking change and will require all validators to update their
74
+
software to the new vote structure. Validators running older versions will be
75
+
unable to participate in consensus once the feature flag is activated.
61
76
62
77
## Security Considerations
63
78
64
-
Removing BankHash from votes does not introduce new security risks by itself, but it is a foundational change for future protocol improvements. Care must be taken to ensure that consensus remains robust and that the transition is coordinated across the validator network.
79
+
Removing BankHash from votes does not introduce new security risks by itself
80
+
when coupled with SIMD-0298 which adds the BankHash of the parent to each block,
81
+
because the BankHash is still part of consensus.
65
82
66
83
## Drawbacks
67
84
68
-
This is a breaking change to the vote structure, requiring a coordinated upgrade across the network.
69
-
70
85
## Backwards Compatibility
71
86
72
-
This proposal requires a breaking change to the vote structure. All validators must implement the new vote format. The change will be gated behind a feature flag and activated in a coordinated manner. Validators running older versions will be unable to participate in consensus once the feature flag is activated.
87
+
Either the prerequisites are all satisfied by the time Alpenglow is ready, in
88
+
which case we can just launch alpenglow votes without the BankHash in them, or
89
+
we will need a feature flag.
90
+
91
+
This proposal requires a breaking change to the vote structure. All validators
92
+
must implement the new vote format. The change will be gated behind a feature
93
+
flag and activated in a coordinated manner. Validators running older versions
94
+
will be unable to participate in consensus once the feature flag is activated.
95
+
96
+
This is a very long line of text that should be wrapped by Prettier at eighty
97
+
characters if proseWrap is set to always and printWidth is set to eighty.
0 commit comments