In Utreexo, how is it guaranteed that the validator has the same accumulator state as the proof-generator?
In Utreexo a validator node (fully validating Utreexo light node), when validating transactions, uses the proofs supplied by the proof-generator (a Utreexo-aware full node, bridge node). As far as I understand, for proof validation to succeed, the validator has to have the same accumulator state (same root hashes) as the state used when creating the proof. I wonder how can this be ensured in the different use cases.
For the newly confirmed blocks/transactions, I see no problem, as the confirmed blocks and transactions have a well-defined ordering, and it is safe to assume to base the proof on the accumulator state as after the previous block.
But what about a long-confirmed but still unspent UTXO? Relative to what state can it be proved/verified? Does a new current proof have to be created with the current block height? Or it's not possible in Utreexo?
Also, what about mempool transactions? Their arrival time can differ in nodes, so there is no clear block height or block state.
from Recent Questions - Bitcoin Stack Exchange https://ift.tt/Wz3loe9
via IFTTT