Replies: 3 comments 4 replies
-
The single recursive proof to ensure that every block only uses utxos stored in the utreexo accumulator is already in zerosync and one of course could remove the other validation parts and postpone them to the verifier (the syncing node) again. The recursive proof would have to contain a list/accumulator that contains all blocks/transactions for which the proof holds, but that is no problem. Since a STARK has about the same size as the 250kb you mention you hardly gain anything by sending a STARK that proves that the utxos were present in the utreexo accumulator for each block. |
Beta Was this translation helpful? Give feedback.
-
Have the bridge node also provide the utreexo states for each block along with the STARK proof. The verifier can store these states and use them to verify the STARK proof, without needing to process all blocks. This does increase the data provided by the bridge node but still saves a lot of storage/bandwidth over utreexo proofs for each block. Have the STARK proof commit to a "compressed" version of the utreexo states, like a hash or accumulator of each state. The verifier would only need to store these compressed utreexo state representations to verify the STARK, without storing the full states. The STARK would need to prove the transitions between these compressed states are valid. This saves the verifier storage at the cost of a more complex STARK proof. Use "checkpoints" where the STARK proof only goes back to the last checkpoint, and the verifier is given the full utreexo state at each checkpoint. The verifier needs to fully process blocks and build the utreexo state up to each checkpoint in order to verify the STARK segments in between, but does not need to do this for the entire chain. This balances the storage/computation needs between the bridge node and verifier. |
Beta Was this translation helpful? Give feedback.
-
some ideas |
Beta Was this translation helpful? Give feedback.
-
Utreexo nodes need an inclusion proof for every block, which I think are about 250kb each. But my understanding of this project is that we can instead use STARKs to prove that an UTXO being spent is part of the UTXO set in its compact form.
Is it possible then to have a single recursive proof that each block is spending UTXOs included in the utreexo accumulator? The zerosync project aims to verify everything, including this, but my question is if it's possible to have a proof that covers only Utreexo.
I would like to know if this can be done, and how. It makes sense to have a single proof for each block because each one spends from a unique UTXO set. The drawback is increased bandwidth costs, and storage for bridge nodes. Perhaps STARKs can help here with recursive proofs?
Beta Was this translation helpful? Give feedback.
All reactions