Subscribe to okx wallet login
Subscribe to okx wallet login
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
Verkle Trees represent a critical upgrade in ETH 2.0, offering significant improvements in proof size compared to traditional Merkle Trees. For a dataset of 1 billion entries:
Merkle Tree Proof: ~1 kB
Verkle Tree Proof: ≤150 bytes
First conceptualized in 2018, Verkle Trees leverage advanced cryptographic techniques to optimize blockchain scalability. Sin7Y's 23rd technical review explores their underlying principles.
Before examining Verkle Trees, understanding Merkle Trees is essential. A Merkle Tree is an accumulator that verifies the inclusion of an element (e.g., a (key:value) pair) via a proof containing all "red-marked" nodes in the hierarchy.
Challenges:
Proof size grows with tree depth/width (log₂(n) for branched-2 trees; (k−1)logₖ(n) for branched-k trees).
Verifiers must perform extensive hash computations, increasing workload exponentially.
Simply increasing tree width reduces depth but not proof size, as each layer requires (k−1) additional nodes. John Kuszmaul's Verkle Tree paper introduces a solution to reduce proof complexity to logₖ(n). For k=1024, proofs shrink 10x compared to binary trees.
Each Verkle Tree node contains:
A value
An existence proof (π)
Example:
(H(k,v), π₀₃) proves H(k,v) exists under commitment C₀.
(C₀, π₀) proves C₀ exists under root commitment C_Root.
Verkle Trees use vector commitments to achieve:
Proof size: O(1)
Trade-offs: Construction (O(n²)), updates (O(n))
The K-ary Verkle Tree balances these:
Proof construction: O(kn)
Updates: O(k logₖ n)
Proof size: O(logₖ n)
👉 Discover how Verkle Trees revolutionize Ethereum scaling
Instead of vector commitments, Verkle Trees employ polynomial commitments (e.g., KZG10 or IPA). Given points (c₀, y₀), ..., (cₙ, yₙ), a polynomial P(x) is constructed (via Lagrange interpolation) where P(cᵢ) = yᵢ, then committed.
Advantages:
Constant proof size (e.g., 48 bytes with BLS12-381 curves).
Efficient verification.
To prove P(z) = y for polynomial P(x):
Compute quotient polynomial Q(x) = (P(x) − y)/(x − z).
Generate commitment [Q(s)]₁.
Verifier checks: e([P(s)]₁ − [y]₁, [1]₂) = e([Q(s)]₁, [s − z]₂).
For points (z₀, ..., zₖ₋₁) and values (y₀, ..., yₖ₋₁):
Define interpolating polynomial I(x) and zero polynomial V(x) = ∏(x − zᵢ).
Prove V(x) divides P(x) − I(x) via quotient Q(x).
Commitments [P(s)]₁, [Q(s)]₁ are verified with one pairing check.
Leaf Nodes: Store key-value pairs.
Inner Nodes: 16-wide (hexadecimal paths).
Root: Commitments compress proofs.
Example Proof Path:To prove (0101 0111 1010 1111 → 1213):
Node B’s commitment includes hash(0101...1111, 1213) at index 1010.
Node A’s commitment includes hash(cm_B) at index 0111.
Root’s commitment includes hash(cm_A) at index 0101.
👉 Explore Ethereum's roadmap with Verkle Trees
To optimize verification:
Combine quotient polynomials qᵢ(x) using random scalars rᵢ into g(x) = ∑ rᵢ⋅qᵢ(x).
Prover commits to g(x) and sends [g(s)]₁.
Verifier checks consistency via a single pairing.
Proof Size: Constant regardless of points verified.
Implicit Values: yᵢ derived from child-layer hashes.
Key-Based Indexing: xᵢ inferred from path keys.
Public Data: Only key-value pairs and commitments are exposed.
They reduce proof sizes by ~90%, enabling lighter clients and faster sync times.
Yes, but existing Merkle Patricia Tress will coexist during transition.
They replace Merkle proofs with constant-sized cryptographic proofs.
Security relies on elliptic curve cryptography (e.g., BLS12-381) and Schwartz-Zippel lemma.
Post-Merge upgrades (likely 2023–2024) will phase them in.
Dankrad Feist, PCS Multiproofs via Random Evaluation (2021).
Vitalik Buterin, Verkle Trees (2021).
John Kuszmaul, Verkle Trees (2018).
Verkle Trees represent a critical upgrade in ETH 2.0, offering significant improvements in proof size compared to traditional Merkle Trees. For a dataset of 1 billion entries:
Merkle Tree Proof: ~1 kB
Verkle Tree Proof: ≤150 bytes
First conceptualized in 2018, Verkle Trees leverage advanced cryptographic techniques to optimize blockchain scalability. Sin7Y's 23rd technical review explores their underlying principles.
Before examining Verkle Trees, understanding Merkle Trees is essential. A Merkle Tree is an accumulator that verifies the inclusion of an element (e.g., a (key:value) pair) via a proof containing all "red-marked" nodes in the hierarchy.
Challenges:
Proof size grows with tree depth/width (log₂(n) for branched-2 trees; (k−1)logₖ(n) for branched-k trees).
Verifiers must perform extensive hash computations, increasing workload exponentially.
Simply increasing tree width reduces depth but not proof size, as each layer requires (k−1) additional nodes. John Kuszmaul's Verkle Tree paper introduces a solution to reduce proof complexity to logₖ(n). For k=1024, proofs shrink 10x compared to binary trees.
Each Verkle Tree node contains:
A value
An existence proof (π)
Example:
(H(k,v), π₀₃) proves H(k,v) exists under commitment C₀.
(C₀, π₀) proves C₀ exists under root commitment C_Root.
Verkle Trees use vector commitments to achieve:
Proof size: O(1)
Trade-offs: Construction (O(n²)), updates (O(n))
The K-ary Verkle Tree balances these:
Proof construction: O(kn)
Updates: O(k logₖ n)
Proof size: O(logₖ n)
👉 Discover how Verkle Trees revolutionize Ethereum scaling
Instead of vector commitments, Verkle Trees employ polynomial commitments (e.g., KZG10 or IPA). Given points (c₀, y₀), ..., (cₙ, yₙ), a polynomial P(x) is constructed (via Lagrange interpolation) where P(cᵢ) = yᵢ, then committed.
Advantages:
Constant proof size (e.g., 48 bytes with BLS12-381 curves).
Efficient verification.
To prove P(z) = y for polynomial P(x):
Compute quotient polynomial Q(x) = (P(x) − y)/(x − z).
Generate commitment [Q(s)]₁.
Verifier checks: e([P(s)]₁ − [y]₁, [1]₂) = e([Q(s)]₁, [s − z]₂).
For points (z₀, ..., zₖ₋₁) and values (y₀, ..., yₖ₋₁):
Define interpolating polynomial I(x) and zero polynomial V(x) = ∏(x − zᵢ).
Prove V(x) divides P(x) − I(x) via quotient Q(x).
Commitments [P(s)]₁, [Q(s)]₁ are verified with one pairing check.
Leaf Nodes: Store key-value pairs.
Inner Nodes: 16-wide (hexadecimal paths).
Root: Commitments compress proofs.
Example Proof Path:To prove (0101 0111 1010 1111 → 1213):
Node B’s commitment includes hash(0101...1111, 1213) at index 1010.
Node A’s commitment includes hash(cm_B) at index 0111.
Root’s commitment includes hash(cm_A) at index 0101.
👉 Explore Ethereum's roadmap with Verkle Trees
To optimize verification:
Combine quotient polynomials qᵢ(x) using random scalars rᵢ into g(x) = ∑ rᵢ⋅qᵢ(x).
Prover commits to g(x) and sends [g(s)]₁.
Verifier checks consistency via a single pairing.
Proof Size: Constant regardless of points verified.
Implicit Values: yᵢ derived from child-layer hashes.
Key-Based Indexing: xᵢ inferred from path keys.
Public Data: Only key-value pairs and commitments are exposed.
They reduce proof sizes by ~90%, enabling lighter clients and faster sync times.
Yes, but existing Merkle Patricia Tress will coexist during transition.
They replace Merkle proofs with constant-sized cryptographic proofs.
Security relies on elliptic curve cryptography (e.g., BLS12-381) and Schwartz-Zippel lemma.
Post-Merge upgrades (likely 2023–2024) will phase them in.
Dankrad Feist, PCS Multiproofs via Random Evaluation (2021).
Vitalik Buterin, Verkle Trees (2021).
John Kuszmaul, Verkle Trees (2018).
No activity yet