Duplicate Block Proposal Without Storing Multiple Versions of Slots#7652
Duplicate Block Proposal Without Storing Multiple Versions of Slots#7652carllin wants to merge 11 commits intosolana-labs:masterfrom
Conversation
6ff90ca to
5d6c3a8
Compare
|
|
||
| * Contains a bank hash `H(B)` for some bank `B` such that `Confirmed(B).slot < S'.slot` (if a supermajority confirmed `S'`, then such a set must exist because there must have been some initial set of validators that voted on `S'` before it was confrmed). This can be confirmed for each vote if the prover provides `state_hash(B)`, `Confirmed(B).slot`, `bank_hash(parent(B))`, `parent(B).slot` such that `H(B) == hash(Confirmed(B).slot, state_hash(B), bank_hash(parent(B)), parent(B).slot)`. | ||
|
|
||
| * Show that `V.slot` is descended from `S'` by proving the bank hash `H(B)` can be derived from the bank hash and slot of `S'`. This is done by providing the trail of bank hashes and parent slots to |
There was a problem hiding this comment.
How does a validator receiving the proof determine the weights of the votes?
There was a problem hiding this comment.
I was thinking we just use the epoch stakes?
c46ac60 to
49a0965
Compare
02c7041 to
969b3fb
Compare
969b3fb to
c206453
Compare
|
@aeyakovenko @sakridge, I've pushed the design I'm currently implementing. I think it is an appropriate fix for v1 as it does not require slashing, and provides optimal safety without requiring any massive rewrites of existing modules. |
c206453 to
f8eeef5
Compare
|
How do you match a shred to a given approved_blockhash in the slot? |
|
@sakridge you mean how do we verify a shred is for a particular |
|
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
|
This stale pull request has been automatically closed. Thank you for your contributions. |
Problem
The approach off storing multiple versions of a slot to handle duplicate slots is very messy.
Summary of Changes
There were discussions about alternative approaches to this problem. In an attempt to get more eyes on this problem before we commit to a large change, I've outlined another approach below.
Pros: Introduce a proposal where storing only one version of a slot is sufficient, unless 33% of validators get slashed.
Cons: Proofs are very large, but maybe can be optimized? @rob-solana
Fixes #