🐘

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