LMD GHOST
Background: GHOST
Resources
Paper: Combining GHOST and Casper (2020.3)
Eth2 Spec (FMD GHOST)
Implementations
Comparing LMD GHOST Implementations @ethresear.ch, by proto
Algorithm
1. Start at the justified block
2. Compare every child, to choose the best one
3. Comparison is based on scores
4. Scores are simple, but highly inefficient: We loop through every attestation, and then if the attestation has the child as an ancestor, it adds up to the total vote count for the child
5. The best child wins, and repeat 2 - 4 from there, until there is no children left.
6. Final winner is the head.
Optimizations
Bitwise LMD GHOST
The list of algorithms by protolambda
Reduced tree Python Rust (lighthouse) Slide
FMD GHOST
Background: Attacks on LMD GHOST
Decoy-flip-flop attack by nrryuya.icon, @ethresear.ch
ブロックチェーンフォークチョイスルールLMD GHOSTに対する攻撃手法 (Poster, Japanese) by nrryuya.icon
CSS'19
Solution: FMD GHOST
Saving strategy and FMD GHOST by nrryuya.icon, @ethresear.ch
Adopted in Eth2: validate_on_attestation in the spec
History
IMD GHOST
PoS fork choice rule desiderata
Immediate message-driven GHOST as FFG fork choice rule
Back to LMD
#Layer1