How I Learned to Stop Hashing and
Love the Accumulator (from Roberto)
Friday, Oct 24th, 2025, RobertoFest, Brown University
"Spooky action advising at a distance"
What a great honor to be here!
🙏 🙏
🎉 Authenticated data structures are eating the world!
Blockchains
Privacy & ZKPs
Transparency logs
Others
*This talk will most certainly miss very important works. Some of these works may be yours. My apologies in advance: I'm no longer a diligent PhD student.
Theme: structured commitment schemes ⇒ versatile ADSs
Accumulation trees (a.k.a. V(ery short M)erkle trees) [PTT08, Kusz18]
Generalized hash trees (a.k.a. H(omorphic M)erkle trees) [PSTY13, TCZ+20, CPZ18, SCP+22]
RSA-based authenticated dictionaries [GTH02, AR20, TXN20]
Append-only authenticated dictionaries [TBP+19, HSBB25]
Aggregatable-and-maintainable vector commitments [SCP+22, WUP22, LJGK25]
Structure-preserving vector commitments [KMS24]
My favorite Roberto contributions pertain to this ADS renaissance.
I'll tell you about three of them.
🙏
Outline
Part 1: PST commitments [PST13]
Part 2: Accumulation trees [PTT08]
Part 3: Generalized hash trees [PSTY13]
LLLh1 + LLRh2 + LRLh3 + LRRh4 +
RLLh5 + RLRh6 + RRLh7 + RRRh8
+ LLRδ2
z
y1
y2
y3
y4
y5
y6
y7
y8
πy,1
πy,2
πy,3
πy,4
πy,5
πy,6
πy,7
πy,8
Acc.Commit({y1, y2, …, y8})
Part 1: PST multivariate polynomial commitment scheme (PCS)
Commit
Note: Let G be a generator of 𝔾1 and let [a]1 = a · G
(Additive group notation)
When d = 1 (i.e., MLEs):
1. CK is of size n = 2ℓ
2. size-n 𝔾1 MSM to commit
∈ 𝔾1
∈ 𝔾1
Commitment key (CK)
AFAIK, the 1st multivariate (and thus MLE) PCS.
The elegant PST decomposition lemma ⇒ PCS opening proofs
Commit
Proof size: ℓ𝔾1 elements
Verification time: 1 𝔾1× + ℓ 𝔾2× + ℙℓ+1
Many uses of PST
MLE PCS for sumcheck-based SNARKs [CMT12, GKR08, CBBZ22, …]
vSQL [ZGK+17]
vRAM [ZGK+18]
Aggregatable and maintainable vector commitments [SCP+22]
Data availability sampling (DAS) [BNNP25]
Range proofs [BDF+25]
< ??? > (I'm sure I missed some)
Since [PST13], there's been a zoo of other MLE PCSs
Knowledge-sound PST [ZGK+17, ZGK+18]
Hyrax [WTS+18]
Dory [Lee21]
Gemini [BCHO22]
HyperKZG? [CBBZ22]
Testudo [CGG+23]
Zeromorph [KT23]
Boomy [LL23]
Shplemini [GK25]
KZH [KZHB25]
Samaritan [GPS25]
Mercury [EG25]
Plus, many other hash-based schemes:
Basefold, Blaze, PolyFRIM, WHIR
Showcases how important
the MLE PCS primitive is.
Plus, a few more I missed: https://x.com/alinush/status/1990524159525339474
Part 2: Accumulation trees [PTT08] → Verkle trees [Kusz18]
It started as a theoretical question about accumulators (in the 2/3-party setting):
If we hold proof size & verification time O(1), can we both:
1. answer queries in O(1) time
2. update all proofs in o(n)? (Or vice versa?)
How it ended?
Reduce Merkle tree proof size from log2n to logkn! [Kusz18]
⇒ Ethereum community interest1 and deployment2.
[1]: Verkle trees, by Vitalik Buterin, https://vitalik.ca/general/2021/06/18/verkle.html
[2]: Ethereum roadmap / Verkle trees, https://ethereum.org/roadmap/verkle-trees/
k-ary Merkle
(k = 8)
z
y1
y2
y3
y4
y5
y6
y7
y8
= H(y1, y2, …, y8)
logkn depth versus log2n ⇒ faster to Merkelize!
k-ary Merkle
(k = 8) bad?
h1
h2
h3
h5
h6
h7
h8
w1
w2
w4
w5
w6
w7
w8
y1
y2
y3
y4
y5
y7
y8
h4
H(h1, h2, …, h8)
H(w1, w2, …, w8)
H(y1, y2, …, y8)
(k-1)logkn-sized proof
[PTT08]
Accumulation trees
(k = 8)
z
y1
y2
y3
y4
y5
y6
y7
y8
= Acc.Commit({y1, y2, …, y8})
[PTT08]
Accumulation trees
(k = 8)
z
y1
y2
y3
y4
y5
y6
y7
y8
πy,1
πy,2
πy,3
πy,4
πy,5
πy,6
πy,7
πy,8
Extra n (log2k)2 time for proofs
(πy,1, …, πy,8) = Acc.ProveAll({y1, y2, …, y8})
[PTT08]
Accumulation trees
(k = 8)
z
y1
y2
y3
y4
y5
y6
y7
y8
πy,1
πy,2
πy,3
πy,4
πy,5
πy,6
πy,7
πy,8
Extra n (log2k)2 time for proofs
(πy,1, …, πy,8) = Acc.ProveAll({y1, y2, …, y8})
= Acc.Commit({y1, y2, …, y8})
Notice something? Verkle [Kusz18] only changes three things:
[PTT08]
Accumulation tree
proofs
h4
Acc.Verify(w3, h4, πh,4)
Acc.Verify(y6, w3, πw,3)
z
y6
w3
Acc.Verify(z, y6, πy,6)
2logk(n)-sized proof vs (k-1) logk(n)
πw,3
πy,6
πh,4
[Kusz18, Feis21]
Accumulation tree
proofs
h4
Acc.CrossVerify(
[w3, y6, z ],
[h4, w3, y6],
π
)
z
y6
w3
π
Proofs can be cross-aggregated!
[GRWZ20, Feis21]
2logk(n)-sized proof vs (k-1) logk(n)
(1 + logk(n))-sized
The impact of accumulation trees (a.k.a. Verkle)
Ethereum wants to validate blocks statelessly w.r.t. root of Merkle trie over the state.
Challenge: Currently, proofs for 1000 locations would be ~3.5 MB.
Solution: Reduce proof sizes via accumulation/Verkle trees to ~150 kB
⇒ "Verkle tree testnets are already up and running"
Part 3: Generalized hash trees [PSTY13]
Research question: Can we design a Merkle tree such that, given:� 1. the Merkle root r,
2. a leaf index i (or any node i),
3. the amount δi it changed by
…anyone can compute the updated r' = r + Upd(i, δi)?
Initial motivation:
Authenticate data with "streaming" updates [PSTY13]
Evolving motivation:
More efficient stateless validation (e.g., TXN from A to B) [TCZ+20, SCP+22]
[PSTY13]
h1
h2
h3
h4
h5
h6
h7
h8
Lh1 + Rh2
Lh3 + Rh4
Lh5 + Rh6
Lh7 + Rh8
LLh1+ LRh2 + RLh3 + RRh4
LLh5+ LRh6+ RLh7 + RRh8
LLLh1 + LLRh2 + LRLh3 + LRRh4 +
RLLh5 + RLRh6 + RRLh7 + RRRh8
[PSTY13]
h1
Lh1 + Rh2
h3
h4
h5
h6
h7
h8
Lh3 + Rh4
Lh5 + Rh6
Lh7 + Rh8
LLh1+ LRh2 + RLh3 + RRh4
LLh5+ LRh6+ RLh7 + RRh8
LLLh1 + LLRh2 + LRLh3 + LRRh4 +
RLLh5 + RLRh6 + RRLh7 + RRRh8
+ Rδ2
+ LRδ2
+ LLRδ2
h2 + δ2
The future impact of generalized hash trees (a.k.a. Herkle)
Conclusion
Grazie Roberto for these amazing contributions:
References
Roberto (cited)
[AGT01] Persistent Authenticated Dictionaries and Their Applications; by Anagnostopoulos, Aris and Goodrich, Michael T. and Tamassia, Roberto; in Information Security'01
[GOP+15] Zero-Knowledge Accumulators and Set Operations; by Esha Ghosh and Olga Ohrimenko and Dimitrios Papadopoulos and Roberto Tamassia and Nikos Triandopoulos; 2015;
[GPTT08] Athos: Efficient Authentication of Outsourced File Systems; by Goodrich, Michael T. and Papamanthou, Charalampos and Tamassia, Roberto and Triandopoulos, Nikos; in Information Security; 2008
[PST13], Signatures of Correct Computation; by Papamanthou, Charalampos and Shi, Elaine and Tamassia, Roberto, in TCC'13
[PSTY13] Streaming Authenticated Data Structures; by Papamanthou, Charalampos and Shi, Elaine and Tamassia, Roberto and Yi, Ke; in EUROCRYPT'13
[PTT08] Authenticated hash tables; by Charalampos Papamanthou and Roberto Tamassia and Nikos Triandopoulos; in CCS'08
Roberto (uncited)
[GPT07] On the Cost of Persistence and Authentication in Skip Lists; by Goodrich, Michael T. and Papamanthou, Charalampos and Tamassia, Roberto; in Experimental Algorithms; 2007
[GTH02] An Efficient Dynamic and Distributed Cryptographic Accumulator; by Goodrich, Michael T. and Tamassia, Roberto and Hasic, Jasminka; in ICIS' 2002
[GTS01] Implementation of an authenticated dictionary with skip lists and commutative hashing; by Goodrich, M.T. and Tamassia, R. and Schwerin, A.; in DISCEX'01
[PTT11] Optimal Verification of Operations on Dynamic Sets; by Papamanthou, Charalampos and Tamassia, Roberto and Triandopoulos, Nikos; in CRYPTO 2011
[PTT10] Optimal Authenticated Data Structures with Multilinear Forms; by Papamanthou, Charalampos and Tamassia, Roberto and Triandopoulos, Nikos; in Pairing-Based Cryptography 2010
[PTT15] Authenticated Hash Tables Based on Cryptographic Accumulators; by Papamanthou, Charalampos and Tamassia, Roberto and Triandopoulos, Nikos; in Algorithmica'16
PCS references
[BCHO22] Gemini: Elastic SNARKs for Diverse Environments; by Bootle, Jonathan and Chiesa, Alessandro and Hu, Yuncong and Orrú, Michele; in EUROCRYPT 2022
[BNNP25] Data Availability Sampling with Repair; by Dan Boneh and Joachim Neu and Valeria Nikolaenko and Aditi Partap; 2025;
[CBBZ22] HyperPlonk: Plonk with Linear-Time Prover and High-Degree Custom Gates; by Binyi Chen and Benedikt Bünz and Dan Boneh and Zhenfei Zhang; 2022;
[CGG+23] Testudo: Linear Time Prover SNARKs with Constant Size Proofs and Square Root Size Universal Setup; by Matteo Campanelli and Nicolas Gailly and Rosario Gennaro and Philipp Jovanovic and Mara Mihali and Justin Thaler; 2023;
[EG25] MERCURY: A multilinear Polynomial Commitment Scheme with constant proof size and no prover FFTs; by Liam Eagen and Ariel Gabizon; 2025;
[GK25] A note on the soundness of an optimized $\mathsf{gemini}$ variant; by Ariel Gabizon and Nishat Koti; 2025
[GPS25] Samaritan: Linear-time Prover SNARK from New Multilinear Polynomial Commitments; by Chaya Ganesh and Sikhar Patranabis and Nitin Singh; 2025
[KT23] Zeromorph: Zero-Knowledge Multilinear-Evaluation Proofs from Homomorphic Univariate Commitments; by Tohru Kohrita and Patrick Towa; 2023
[KZHB25] KZH-Fold: Accountable Voting from Sublinear Accumulation; by George Kadianakis and Arantxa Zapico and Hossein Hafezi and Benedikt Bünz; 2025;
[Lee21] Dory: Efficient, Transparent Arguments for Generalised Inner Products and Polynomial Commitments; by Lee, Jonathan; in Theory of Cryptography; 2021
[LL23] Boomy: Batch Opening Of Multivariate polYnomial commitment; by Thomas Lavaur and Jérôme Lacan; 2023;
[WTS+18] Doubly-Efficient zkSNARKs Without Trusted Setup; by R. S. Wahby and I. Tzialla and A. Shelat and J. Thaler and M. Walfish; in SP'18
Structured ADSs references
[AR20] KVaC: Key-Value Commitments for Blockchains and Beyond; by Shashank Agrawal and Srinivasan Raghuraman; 2020
[CPZ18] Edrax: A Cryptocurrency with Stateless Transaction Validation; by Alexander Chepurnoy and Charalampos Papamanthou and Yupeng Zhang; 2018;
[Feis21] Verkle trie for Eth1 state, by Dankrad Feist
[GRWZ20] Pointproofs: Aggregating Proofs for Multiple Vector Commitments; by Gorbunov, Sergey and Reyzin, Leonid and Wee, Hoeteck and Zhang, Zhenfei; in CCS'20
[HSBB25] IronDict: Transparent Dictionaries from Polynomial Commitments; by Hossein Hafezi and Alireza Shirzad and Benedikt Bünz and Joseph Bonneau; 2025;
[LJGK25] Cauchyproofs: Batch-Updatable Vector Commitment with Easy Aggregation and Application to Stateless Blockchains; by Zhongtang Luo and Yanxue Jia and Alejandra Victoria Ospina Gracia and Aniket Kate
[LNWX17] Lattice-Based Group Signatures: Achieving Full Dynamicity with Ease; by San Ling and Khoa Nguyen and Huaxiong Wang and Yanhong Xu; 2017
[LY10] Concise Mercurial Vector Commitments and Independent Zero-Knowledge Sets with Short Proofs; by Libert, Benoît and Yung, Moti; in TCC'10; 2010
[Kusz18] Verkle Trees: V(ery short M)erkle Trees; by John Kuszmaul; in MIT PRIMES Conference '18; 2018
[KMS24] Structure-Preserving Compressing Primitives: Vector Commitments, Accumulators and Applications; by Stephan Krenn and Omid Mir and Daniel Slamanig; 2024;
[PPS21] Vector and Functional Commitments from Lattices; by Chris Peikert and Zachary Pepin and Chad Sharp; 2021
[SCP+22] Hyperproofs: Aggregating and Maintaining Proofs in Vector Commitments; by Shravan Srinivasan and Alexander Chepurnoy and Charalampos Papamanthou and Alin Tomescu and Yupeng Zhang; in USENIX Security'22
[TBP+19] Transparency Logs via Append-Only Authenticated Dictionaries; by Tomescu, Alin and Bhupatiraju, Vivek and Papadopoulos, Dimitrios and Papamanthou, Charalampos and Triandopoulos, Nikos and Devadas, Srinivas; in ACM CCS'19
[TCZ+20] Towards Scalable Threshold Cryptosystems; by Alin Tomescu and Robert Chen and Yiming Zheng and Ittai Abraham and Benny Pinkas and Guy Golan Gueta and Srinivas Devadas; in IEEE S&P'20
[WUP22] BalanceProofs: Maintainable Vector Commitments with Fast Aggregation; by Weijie Wang and Annie Ulichney and Charalampos Papamanthou; 2022
Other references
[BDF+25e] DekartProof: Efficient Vector Range Proofs and Their Applications; by Dan Boneh and Trisha Datta and Rex Fernando and Kamilla Nazirkhanova and Alin Tomescu; 2025
[CH22] Curve Trees: Practical and Transparent Zero-Knowledge Accumulators; by Matteo Campanelli and Mathias Hall-Andersen; 2022;
[CMT12] Practical Verified Computation with Streaming Interactive Proofs; by Cormode, Graham and Mitzenmacher, Michael and Thaler, Justin; in TCC 2012
[DBB+15] Provisions: Privacy-preserving Proofs of Solvency for Bitcoin Exchanges; by Gaby G. Dagher and Benedikt Bünz and Joseph Bonneau and Jeremy Clark and Dan Boneh; in CCS'15
[Dryj19] Utreexo: A dynamic hash-based accumulator optimized for the Bitcoin UTXO set; by Thaddeus Dryja; 2019
[GKR08] Delegating Computation: Interactive Proofs for Muggles; by Goldwasser, Shafi and Kalai, Yael Tauman and Rothblum, Guy N.; in STOC'08;
[Merk87] A Digital Signature Based on a Conventional Encryption Function; by Merkle, Ralph C.; in CRYPTO '87; 1988
[RMCI17] Improving Authenticated Dynamic Dictionaries, with Applications to Cryptocurrencies; by Reyzin, Leonid and Meshkov, Dmitry and Chepurnoy, Alexander and Ivanov, Sasha; in FC'17
[TKPS22] Transparency Dictionaries with Succinct Proofs of Correct Operation; by Tzialla, Ioanna and Kothapalli, Abhiram and Parno, Bryan and Setty, Srinath; in NDSS 2022
[ZGK+17] vSQL: Verifying Arbitrary SQL Queries over Dynamic Outsourced Databases; by Y. Zhang and D. Genkin and J. Katz and D. Papadopoulos and C. Papamanthou; in IEEE SP'17
[ZGK+18] vRAM: Faster Verifiable RAM with Program-Independent Preprocessing; by Y. Zhang and D. Genkin and J. Katz and D. Papadopoulos and C. Papamanthou; in IEEE SP'18
[ZKP15] IntegriDB; by Yupeng Zhang and Jonathan Katz and Charalampos Papamanthou; in CCS'15;
Uncited but relevant
[CFM08] Zero-Knowledge Sets with Short Proofs; by Catalano, Dario and Fiore, Dario and Messina, Mariagrazia; in EUROCRYPT'08; 2008
Appendix
Stateless validation
Validation in cryptocurrencies requires storing large state
33
new block
A ➝ B, 5
C ➝ D, 10
A ➝ C, 5
previous state
A: 20 ETH
B: 55 ETH
C: 30 ETH
new
state
A: 10 ETH
B: 60 ETH
C: 25 ETH
D: 10 ETH
Grows over time
Slows down sharding
High storage & download cost
Stateless validation only requires digest of the state
34
new block
A ➝ B, 5 πA
C ➝ D, 10 πB
A ➝ C, 5 πA
new
state
previous
state
A: 20 ETH
B: 55 ETH
C: 30 ETH
A: 10 ETH
B: 60 ETH
C: 25 ETH
D: 10 ETH
digest of
digest of
Not the complete picture! (Q&A)
state = vector
digest = vector commitment (VC)
Grows over time
Slows down sharding
High storage & download cost
Proof-serving node
(PSN)
πA
πB
πC
Accumulation trees
[PTT08]
Accumulation trees
(k = 8)
36
z
y1
y2
y3
y4
y5
y6
y7
y8
w1
w2
w3
w4
w5
w6
w7
w8
h1
h2
h3
h4
h5
h6
h7
h8
logkn depth
= Acc.Commit({y1, y2, …, y8})
[PTT08]
Accumulation trees
(k = 8)
37
z
y1
y2
y3
y4
y5
y6
y7
y8
w1
w2
w3
w4
w5
w6
w7
w8
h1
h2
h3
h4
h5
h6
h7
h8
πy,1
πy,2
πy,3
πy,4
πy,5
πy,6
πy,7
πy,8
Extra n (log2k)2 time for proofs
e.g., (πy,1, …, πy,8) = Acc.ProveAll({y1, y2, …, y8})
πw,1
πw,2
πw,3
πw,4
πw,5
πw,6
πw,7
πw,8
πh,1
πh,2
πh,3
πh,4
πh,5
πh,6
πh,7
πh,8
Generalized hash trees
Lattice-based VCs
[PSTY13]
39
H(h1, h2) = Lh1 + Rh2
Key ingredient: Algebraic hash functions
Over-simplification: Co-domain ≠ domain
[PSTY13]
h1
h2
h3
h4
h5
h6
h7
h8
Lh1 + Rh2
Lh3 + Rh4
Lh5 + Rh6
Lh7 + Rh8
[PSTY13]
h1
Lh1 + Rh2
h2
h3
h4
h5
h6
h7
h8
Lh3 + Rh4
Lh5 + Rh6
Lh7 + Rh8
L(Lh1+ Rh2) + R(Lh3 + Rh4)
[PSTY13]
h1
Lh1 + Rh2
h2
h3
h4
h5
h6
h7
h8
Lh3 + Rh4
Lh5 + Rh6
Lh7 + Rh8
LLh1+ LRh2 + RLh3 + RRh4
[PSTY13]
h1
Lh1 + Rh2
h2
h3
h4
h5
h6
h7
h8
Lh3 + Rh4
Lh5 + Rh6
Lh7 + Rh8
LLh1+ LRh2 + RLh3 + RRh4
LLh5+ LRh6 + RLh7 + RRh8
[PSTY13]
h1
Lh1 + Rh2
h2
h3
h4
h5
h6
h7
h8
Lh3 + Rh4
Lh5 + Rh6
Lh7 + Rh8
LLh1+ LRh2 + RLh3 + RRh4
LLh5+ LRh6 + RLh7 + RRh8
L(LLh1 + LRh2 + RLh3 + RRh4) +
R(LLh5 + LRh6 + RLh7 + RRh8)
[PSTY13]
h1
Lh1 + Rh2
h2
h3
h4
h5
h6
h7
h8
Lh3 + Rh4
Lh5 + Rh6
Lh7 + Rh8
LLh1+ LRh2 + RLh3 + RRh4
LLh5+ LRh6 + RLh7 + RRh8
LLLh1 + LLRh2 + LRLh3 + LRRh4 +
RLLh5 + RLRh6 + RRLh7 + RRRh8
Recall oversimplification!
[PSTY13]
Lh1 + Rh2
h3
h4
Lh3 + Rh4
LLLh1 + LLRh2 + LRLh3 + LRRh4 +
RLLh5 + RLRh6 + RRLh7 + RRRh8
LLh1+ LRh2 + RLh3 + RRh4
LLh5+ LRh6 + RLh7 + RRh8
2 log n-sized proof
(Why? A bit more going on than is depicted in the slide: i.e., a projection function)
Other thoughts
Things I did not touch upon
FRI
PADs
Some folks want post-quantum Verkle: Perkle?
Can we get Herkle+Verkle and make it post-quantum? Pherkle? [PPS21]
3-party model of authenticated data structures in blockchains
Source: The "blockchain" (i.e., the BFT replicated state machine)
Server: Any full node in the network
Clients: Users, wallets, other full nodes