Proposed by Francesco and Luca in [[Recent latest message driven ghost Balancing dynamic availability with asynchrony resilience]] mentioned in [[A Simple Single Slot Finality Protocol Paper]]
Middle ground between LMD-GHOST, an asynchrony resilient but not dynamically available protocol, and Goldfish, a dynamically available but not asynchrony resilient protocol
Combines vote expiry with LMD fork choice
[[ebb-and-flow]] - Validators can join and leave, and there's a finalized chain that is always safe and live after everyone is alive and sending messages as long as 1/3 or less of the validators are malicious
Generalized [[sleepy model]]
[[propose-vote-merge]] class along with [[LMD-GHOST]] and [[Goldfish]]
Synchronous
Dynamically available
Does not lose safety during *bounded* periods of asynchrony
- Resilient *up to a vote expiry period*
[[Reorg resilience]]
Forced to do without subsampling (to not use committees, contrary to what happens in Ethereum today), in order to have a secure protocol
**Key property:** Supports fast confirmations (proposals confirmed during their slot) when at least 2/3 honest validators are online
Crucial for SSF as fast confirmed honest proposals can be immediately justified and finalized.
Filter function $FIL_{rmld}(V, t)$ removes all but the latest messages within the expiry period \[t-η, t] for slot t from non-equivocating validators $FIL_{rlmd}$ = $FIL_{lmd}$ ◦ $FIL_{η-exp}$ ◦ $FIL_{eq}$.
*Non-equivocating validators* are those that have not been caught sending conflicting messages
η is the length of the expiry period
The *filter function* works as follows: FILlmd (which keeps only the latest messages), FILη-exp (which removes messages outside the expiry period), and FILeq (which removes messages from equivocating validators). The symbol ◦ represents function composition, which means applying one function to the result of another.
![[Pasted image 20230721121716.png]]
GHOST Function explained:
1. Start at the genesis block
2. From the current block, look at its children blocks
3. Choose the child block with the heaviest subtree. Weight of subtree determined by votes (previously most computation done upon it)
4. Repeat steps 2-3 with the chosen child block as the current block until you reach a block that has no children. This block is the head of the chain.
RLMD-GHOST is $\eta$-reorg-resilient and $\eta$-dynamically-available and can support fast confirmation of honest proposals optimistically when honest participation is high
Resilient to reorganizations of the blockchain that are η slots deep. In other words, if an adversary tries to create a fork that would cause a reorganization of the blockchain, they would need to create a fork that is at least η slots deep to succeed.
Validators can join and leave the network, as long as the number of validators that go offline at any given time is less than or equal to η times the number of adversarial validators.