🐘

Verkle Trees for Statelessness

šŸ’”
Verkle Trees = Vector Commitments + Merkle Trees

Contents

  • 1Ā Ā Introduction
  • 2Ā Ā FAQ
  • 3 Dashboard
  • Open questions
  • 4Ā Ā Testnets
  • 5Ā Ā Resources
  • šŸ“ŠĀ Latest Verkle Metrics šŸ“Š
  • EIPs/Specs/Related Docs
  • 6Ā  Client Implementations
  • Updates shared in Verkle Implementers Calls…
  • Latest summary here
  • Cryptography and other
  • Execution Layer
  • Consensus Layer

Site maintained by @rudolf6, @ignaciohagopian, and @gballet (ping with any questions)

Last updated: Jan 30, 2025

1Ā Ā Introduction

šŸ’¬Ā Join the Eth R&D discord server for discussion (#verkle-trie-migration channel)

✨
Tl;dr: Verkle Trees and statelessness bring many benefits to Ethereum
  • Smaller proof sizes allow proofs to be passed over the network, which will unlock many new types of functionality in addition to stateless clients
  • Lower hardware requirements to run a node, which improves decentralization
  • New nodes can join the network right away with faster sync
  • Potential scaling benefits in that it could allow for higher gas limits
  • More compatible with a zk-EVM future
‣
What are Verkle Trees?
‣
Why?
‣
How?
‣
Want to help?
‣
What’s up with the elephant?

This is the latest and most up-to-date talk about Verkle Trees:

EthCC 2023

You can also see the Verkle Trees 101 presentation given for the Ethereum Protocol Fellowship Study Group:

2Ā Ā FAQ

Updated: December 11, 2024

‣
Why does Verkle require gas cost changes?
‣
Could these gas cost changes break some fundamental assumptions for dapps/L2s/etc?
‣
What are stateless clients?
‣
When will Verkle Trees be available on mainnet?
‣
Regarding the Overlay Tree migration, how many key-values are migrated per block?

3 Dashboard

Updated: Jan 30, 2025

All progress is shared in the Stateless Implementers Call, which anyone can join.

‣

Open questions

Completed tasks

4Ā Ā Testnets

Updated: Apr 08, 2024

Kaustinen

icon
https://kaustinen-testnet.ethpandaops.io/
  • Updated EIP-4762 implementations
  • Updated EIP-2935 with a ring buffer of size 8192

See the following tutorial to know how to join the testnet.

5Ā Ā Resources

Updated: Apr 04, 2024

šŸ“ŠĀ Latest Verkle Metrics šŸ“Š

šŸ’”

Bringing Verkle into Ethereum involves many changes in the protocol:

  • A new data structure to save the state of the network
  • A new gas accounting model
  • A strategy to migrate the existing state from the MPT to the VKT
  • A new set of cryptography primitives
  • New fields at the block level

EIPs/Specs/Related Docs

šŸ“
EIPs:
  • EIP-6800: Ethereum state using a unified verkle tree (draft)
  • EIP-4762: Statelessness gas cost change (draft)
  • EIP-7545: Verkle proof verification precompile (draft)
  • EIP-2935: Save historical block hashes in state (draft)

Spec PRs:

  • The Verge consensus spec (draft PR)

Transition:

  • Migration Strategies

Archive and other related docs:

  • Verkle serialization format in SSZ
  • Vitalik’s draft EIP (old)

Overview

  • Overview of tree structure
  • Overview of cryptography used in Verkle
  • Anatomy of a Verkle proof

šŸ“˜Ā Learn More

Videos

  • Verkle Trees 101 - Guillaume Ballet, Ignacio Hagopian, Josh Rudolf, April 2024
  • The Verge: Converting the Ethereum State to Verkle Trees - Guillaume Ballet, July 2023
  • Ava Labs Systems Seminar : Verkle trees for statelessness - Guillaume Ballet, October 2023
  • DevCon: How Verkle Trees Make Ethereum Lean and Mean - Guillaume Ballet, Oct 2022
  • The Verkle Tree Upgrade - Guillaume Ballet, June 2022
  • Verkle Tries for Ethereum State - Dankrad Feist, Sept 2021

Writeups

  • Document playing out how the overlay transition works - Guillaume Ballet, November 2023
  • Gas costs writeup - Guillaume Ballet, 2023
  • Verkle Tree EIP - Vitalik, 2022
  • Verkle Tree Structure - Guillaume Ballet & Dankrad Feist, Dec 2021
  • Verkle trie for Eth1 state - Dankrad Feist, June 2021
  • Verkle Trees - Vitalik, June 2021
  • Witness Gas Costs - Vitalik, June 2021
  • State expiry and statelessness roadmap - Vitalik, June 2021
  • Pragmatic destruction of selfdestruct - Vitalik, Feb 2021
  • Why Stateless - Dankrad Feist, Feb 2021
  • A Theory of Ethereum State Size Management - Vitalik, Feb 2021
  • Verkle Trees (original paper) - John Kuszmaul, 2018

6Ā  Client Implementations

Updated: December 11, 2024

Updates shared in Verkle Implementers Calls…

Latest summary here

Cryptography and other

  • Rust (rust-ipa)
  • Go (go-ipa)
  • Nim
  • C#
  • python ref
  • rust-verkle
    • rust analogue to go-ethereum, but not currently used by any clients

Execution Layer

  • Geth
    • go-ethereum
    • VKT data-structure library
  • Nethermind
    • Stateless client experiment
    • Rust Wrapper (old)
  • Besu
    • Standalone Java library
    • Interface for Bonsai
    • Pedersen hash and commitments
  • EthJS
    • Stateless execution
    • (typescript) verkle tree structure
  • Nimbus
    • Verkle tree implementation
  • Erigon
    • tbd

Consensus Layer

  • Lighthouse
    • Custom version used in Kaustinen
    • Tracking issue
    • Current working branch
  • Lodestar
    • Working branch
    • Placeholder PR
  • Prysm, Teku, Nimbus
    • tbd

EL Status

Client
Implementation
Testnet
Besu
WIP
šŸ”§ In progress
Erigon
WIP
EthJS
WIP
āœ… Kaustinen
Geth
WIP
āœ… Kaustinen
Nethermind
WIP
āœ… Kaustinen
Nimbus
WIP
Reth
—

CL Status

Client
Implementation
Testnet
Lighthouse
WIP
āœ… Kaustinen
Lodestar
WIP
āœ… Kaustinen
Nimbus
WIP
šŸ”§ In progress
Prysm
—
Teku
WIP
āœ… Kaustinen
šŸ’»Client Updates (old)
šŸŒ”ļøVerkle measurements