OKB.VN ZK & CryptographyZK Proof: 5 ứng dụng thực tế5 ứng dụng thực tế của ZK Proof: ZK Rollup, privacy coin, identity verification, voting và cross-chain bridge.
Cryptography — Ethereum Verge

Verkle Tree là gì?

Thay thế Merkle Patricia Trie — Vector Commitment, witness nhỏ hơn 10x và nền tảng Statelessness
⏱ 11 phút đọc📊 Advanced🔗 Cryptography

Tóm tắt nhanh

Verkle Tree là cấu trúc dữ liệu dùng Vector Commitment thay vì hash để chứng minh membership, tạo ra witness (proof) nhỏ hơn Merkle Tree khoảng 10 lần. Ethereum đang nghiên cứu thay thế Merkle Patricia Trie bằng Verkle Tree để triển khai Statelessness — cho phép node xác minh block mà không cần lưu toàn bộ state. Đây là một trong những thay đổi kỹ thuật phức tạp nhất trong lộ trình Verge của Ethereum.

01 Verkle Tree là gì?

Verkle Tree (Vector + Merkle = Verkle) là cấu trúc dữ liệu dạng cây xác thực (authenticated data structure) kết hợp ưu điểm của Merkle Tree với Vector Commitment để tạo ra proof (witness) nhỏ gọn hơn đáng kể.

Trong blockchain, "tree" được dùng để tổ chức và chứng minh state data — ví dụ: balance của một địa chỉ, storage của smart contract. Proof rằng một giá trị nhất định nằm trong state gọi là witness (hay Merkle proof). Kích thước witness quyết định xem node có thể sync và verify block nhanh không.

💡 Tên gọi "Verkle": Ghép từ "Vector commitment" và "Merkle". Thuật ngữ được đề xuất bởi John Kuszmaul trong paper 2018, sau đó được Ethereum Foundation adopts cho roadmap Verge.

02 Vấn đề với Merkle Patricia Trie hiện tại

Ethereum hiện dùng Merkle Patricia Trie (MPT) để lưu trữ state (accounts, storage, receipts). MPT hoạt động tốt nhưng có một vấn đề lớn: witness quá to.

Witness trong Merkle Tree

Để chứng minh giá trị của một leaf node trong Merkle Tree, cần cung cấp tất cả sibling node dọc theo path từ leaf đến root. Với branching factor 16 (MPT dùng hexary trie) và depth ~8, mỗi proof cần ~15 × 8 = 120 hash values = ~3.8 KB.

Nhân với số lượng state access mỗi block (~1000+ accesses), tổng witness size có thể đạt vài MB mỗi block — quá lớn để include trong block và gửi đến light client.

Tại sao điều này quan trọng?

Nếu witness quá lớn, stateless client không thể hoạt động hiệu quả. Stateless client cần nhận witness từ block để verify state transitions mà không lưu toàn bộ state. Với MPT witness hàng MB, điều này không thực tế.

03 Vector Commitment là gì?

Vector Commitment là primitive cryptographic cho phép commit vào một vector (danh sách) giá trị và sau đó prove bất kỳ phần tử nào tại vị trí i, chỉ với một proof nhỏ — bất kể vector dài bao nhiêu.

So sánh với Merkle Hash

Tính chấtMerkle HashVector Commitment
Commit cấu trúcHash của các hash conMột commitment đại diện toàn bộ vector
Proof sizeO(log n) hash valuesO(1) — constant size
Verify costRẻ (hash operations)Đắt hơn (pairing hay EC operations)
Ví dụSHA-256 treeKZG Commitment, IPA

Vector Commitment đánh đổi computation nặng hơn để lấy proof size nhỏ hơn nhiều. Với phần cứng hiện đại, computational cost là chấp nhận được — trong khi bandwidth và storage cost cho witness lớn là bottleneck thực sự.

04 Cấu trúc Verkle Tree

Verkle Tree là cây trong đó mỗi node không chứa hash của các node con mà chứa Vector Commitment của chúng.

Branching Factor cao hơn

Merkle Patricia Trie của Ethereum dùng branching factor 16 (hexary). Verkle Tree có thể dùng branching factor lên đến 256 — vì Vector Commitment handle nhiều children hiệu quả hơn hash. Branching factor cao hơn có nghĩa depth nhỏ hơn cho cùng một lượng data, càng ít levels cần prove.

Merkle Tree: depth = log_16(n) ≈ 8 levels cho 4 tỷ entries Verkle Tree: depth = log_256(n) ≈ 4 levels cho 4 tỷ entries → Ít levels hơn = proof ít hơn = witness nhỏ hơn

Ethereum Verkle Tree Design

Ethereum đề xuất dùng width-256 Verkle Tree với IPA (Inner Product Argument) commitment scheme. Mỗi leaf lưu trữ state value (account balance, storage slot, bytecode chunk). Structure này được thiết kế để tối ưu cho stateless verification.

05 Witness Nhỏ Hơn — Tại Sao Quan Trọng?

Đây là lợi ích cốt lõi của Verkle Tree. Với Ethereum Verkle Tree (width 256, depth 4, IPA commitment):

MetricMerkle Patricia TrieVerkle Tree
Proof per leaf~3.8 KB~150 bytes
Witness per block (~1000 accesses)~3.8 MB~150 KB
Ratio1x (baseline)~25x nhỏ hơn
Feasible for stateless?Không

150 KB witness per block là con số có thể include trong block hoặc gửi kèm block header. Điều này mở ra khả năng stateless client — node không lưu state nhưng vẫn verify mọi block nhận được, chỉ cần nhận witness kèm theo.

06 Verkle Tree và Statelessness

Ethereum Statelessness là mục tiêu cho phép node tham gia mạng mà không cần sync và lưu trữ toàn bộ state (hiện ~1TB). Đây là điều kiện cần để Ethereum đạt được decentralization thực sự ở node level.

Weak Statelessness vs Strong Statelessness

  • Weak Statelessness: Chỉ block proposer cần giữ state; validator và các node khác có thể stateless (verify với witness). Đây là mục tiêu trước mắt của Ethereum, khả thi với Verkle Tree.
  • Strong Statelessness: Kể cả block proposer cũng không cần giữ state — cần thêm innovations về "state providers". Đây là mục tiêu dài hạn hơn.

Với Verkle Tree witness (~150KB/block), validator có thể verify block chỉ với witness đi kèm, không cần state database. Điều này giảm yêu cầu hardware để chạy validator node — một bước quan trọng cho việc decentralize validator set.

💡 Ý nghĩa thực tế: Hiện tại để chạy full Ethereum node cần ~1-2TB SSD. Với Verkle Tree và Statelessness, validator node trong tương lai có thể chạy trên máy tính thông thường, thậm chí điện thoại — tăng decentralization đáng kể.

07 KZG vs IPA — Hai loại Commitment

Có hai candidate chính cho Vector Commitment trong Verkle Tree của Ethereum:

KZG (Kate-Zaverucha-Goldberg) Commitment

  • Proof size: 48 bytes (constant)
  • Verify cost: 1 pairing operation (~1-2ms)
  • Trusted setup required: cần ceremony như Powers of Tau
  • Quantum resistance: Không (dùng elliptic curve pairings)
  • Đã dùng trong: EIP-4844 blob commitments

IPA (Inner Product Argument) Commitment

  • Proof size: ~640 bytes (logarithmic, larger than KZG)
  • Verify cost: nhiều EC scalar multiplications
  • Trusted setup: Không cần — transparent setup
  • Quantum resistance: Không (cũng dùng EC)
  • Đang dùng trong: Ethereum Verkle Tree research

Ethereum hiện đang nghiên cứu IPA cho Verkle Tree vì không cần trusted setup. Tuy nhiên, với sự phát triển của quantum computing trong tương lai xa, cả hai đều cần thay thế bằng post-quantum alternatives — một thách thức dài hạn khác của Ethereum roadmap.

08 Lộ trình Triển khai trên Ethereum

Verkle Tree là một phần của giai đoạn Verge trong Ethereum roadmap — một trong những upgrade phức tạp nhất từ trước đến nay.

Thách thức Migration

Thay thế MPT bằng Verkle Tree không phải chỉ thay đổi data structure từ block mới — cần migrate toàn bộ state hiện tại (~hàng trăm triệu accounts và storage slots) từ MPT sang Verkle Tree. Đây là "one-time conversion" tốn kém về computation và cần được thực hiện trong khi mạng vẫn chạy.

  • Overlay tree approach: State mới dùng Verkle Tree; state cũ (từ MPT) được convert dần khi được access
  • Full conversion: Dành một số block nhất định để convert toàn bộ state một lần — đơn giản hơn nhưng disruptive hơn

Timeline ước tính

Tính đến 2025, Verkle Tree đang trong phase testing trên Ethereum testnets. Mainnet deployment chưa có timeline cụ thể — EIP-6800 và EIP-4762 là các EIP liên quan đang được review. Đây vẫn là research-heavy work, dự kiến là một trong những upgrade lớn cuối cùng trước khi Ethereum đạt "endgame" design.

09 Câu hỏi thường gặp

Verkle Tree là cấu trúc dữ liệu dạng cây dùng Vector Commitment thay vì hash để kết nối node cha-con. Tạo ra witness (proof) nhỏ hơn Merkle Tree ~25x — khoảng 150 bytes thay vì vài KB — cho phép stateless client verify state mà không tải toàn bộ state.

Merkle Tree dùng hash — witness cần tất cả sibling nodes dọc path, size O(log n). Verkle Tree dùng Vector Commitment — một commitment đại diện nhiều giá trị, witness chỉ cần một proof nhỏ O(1). Verkle Tree cũng có branching factor lớn hơn (256 vs 16), giảm độ sâu của tree.

Ethereum cần Verkle Tree để triển khai Statelessness — node verify block không cần lưu toàn bộ state (~1TB). Merkle Patricia Trie witness quá lớn (vài MB/block). Verkle Tree giảm xuống ~150KB/block, đủ nhỏ để include trong block và gửi đến stateless validator.

Tính đến 2025, Verkle Tree đang trong giai đoạn nghiên cứu và testnet, chưa trên mainnet. Đây là một phần của giai đoạn Verge trong Ethereum roadmap. Migration từ MPT sang Verkle Tree là thách thức kỹ thuật lớn — cần convert hàng trăm triệu state entries.

📚 Khám phá thêm theo chủ đề
113 bài phân tích kỹ thuật — Blockchain Infrastructure từ nền tảng đến nâng cao
📋 Xem tất cả bài viết →