Proving UTXO set inclusion in zero-knowledge

As already pointed out, the utreexo accumulator is dynamic and needs to be computed from all blocks. Just as a heads-up, you can use utreexod or floresta if you want to get the current roots and prove a given utxo. Furthermore, the commitment scheme used in utreexo is a bit different (I keep pondering if I should add this to rustreexo or keep it as “we only have the accumulator algorithms”).

Thanks, I’ll update it to use the dynamic accumulator :slight_smile:

Pretty cool to see someone looking at this. I did start something similar, but never finished. My goal was to commit the private key by hashing it at the end, so it couldn’t be replayed. I also commit to the current accumulator, so you can know exactly up to which height it is valid.

I added the private key hash at the end as well, as an attempt to create a private identifier for the output: Use priv key hash as identifier · halseth/utxozkp@6fd00e2 · GitHub

This should work since we are checking that the private key used as a preimage to the hash function also gives us the public key that is proven to be in the UTXO set.