Problem: AssumeUTXO verifies imported UTXOs against a hash we bake into the binary. Every node reconstructs the same UTXO set during ordinary IBD, but does not check its hash against the existing AssumeUTXO commitment.
Fix: During ordinary block validation, verify the provided AssumeUTXO hash when block connection reaches the corresponding block, stopping the node on a mismatch. Flush pending changes to disk before hashing the UTXO set and comparing the result with the commitment.
Keep only the latest AssumeUTXO commitment per network to limit the extra hashing work during IBD, and update the release process to replace it.
Users who need older snapshots for research or other purposes can use a compatible older release or restore the corresponding commitment as m_assumeutxo_data and recompile.