SSZ Execution Blocks (EIP-7807) for Geth
Duration: NaN:NaN:NaN
Speaker: Vivek Singh Solanki
Type: CLS - EPF Talk
Expertise: Some familiarity with the topic
Event: Devcon
Date: Nov 2026
Geth has three disconnected SSZ mechanisms and no shared implementation: fastssz in one file, zrnt behind the light client, and two hand-rolled merkleizers in beacon/types with TODOs from 2023 asking for an SSZ encoder. None of them can compute a progressive root. EIP-7688 is scheduled for Glamsterdam and converts the types Geth's light client roots through zrnt, dormant since February 2025.
My EPF project is core/ssz: encoding, strict decoding, classic and progressive merkleization per EIP-7495 and EIP-7916, and Merkle proof generation, with the EIP-7807 block on top.
The talk walks through the design: hand-written per-type methods rather than reflection, batched hashing through gohashtree, a zero-hash table derived at startup, and a decoder that latches errors instead of returning them per field. Each choice is compared against how Erigon and Nimbus made it. Everything is checked against the official ssz_generic vectors, and the work is landing upstream as small PRs.