Thoughts on utreexo?

From here: Utreexo: A dynamic hash-based accumulator optimized for the Bitcoin UTXO set — MIT Digital Currency Initiative

It seems like this is a protocol that enables a network to rid itself of all historical state while maintaining programmability, with the trade off that all nodes must maintain a proof for every UTXO they own. It looks specifically tailored to bitcoin, but I was wondering

  1. what sorts of thoughts do those of you more knowledgeable than I have on this work?

  2. is there some way to adapt this approach or similar to getting rid of transaction kernels while maintaining programmability and cut through the way MW does it, by merging transactions together?

1 Like

I just did a quick read. The idea is fun, but probably not compatible with mimvlewimble chains since you need all UTX0’s to prove non-inflation.

I am quite certain that if it ever will be needed some compaction of kernels for spend UTXO’s can and will be done, e.g. inclusion proofs. So Grin already deals nicely with spend UTXO’s and chain growth and can probably even further reduce the size of spend UTXO’s if needed. But I think Grin will always need to store the full UTXO set with range proofs. For now there is little need since Grin is already so minimal🙂.

A I thought I red about it before, utreexo was discussed in 2021:

1 Like

I’ve done some research years ago here Constant size fully validating node

The long story short is that it seems we already have utreexo-like equivalent just from our MMRs. The problem is that utreexo is not enough for Grin because the consensus not only checks if inputs are in the UTXO set, but also that created outputs are not (no duplicates rule). Utreexo is only dynamic accumulator meaning it supports inclusion proofs, addition and deletion, but it does not support exclusion proofs. We’d need a universal accumulator to be able to check this.


great idea

good for grin (only for research work)(who knows could be modified for grin)