Skip to content

celestiaorg/recursive-sync-tia

Repository files navigation

recursive-sync-tia

Verify the entire blockchain's consensus history, from genesis to network head, with one succinct proof.

Use Cases:

  • Data bridging
    • validate Celestia blob inclusion for rollups on any blockchain, even ones without Blobstream.
  • Fast-sync light clients
    • augment light nodes to instantly find a trustworthy network head to start backwards syncing.

Scraper Tool

This repo includes a tool that will download the minimum number of blocks to verify an entire chain's consensus history, using Tendermint Skipping Verification. It performs a binary search to minimize RPC queries while finding the shortest path.

How to use the scraper tool:

# create a directory somewhere to save the headers as files
mkdir ~/.crs
cargo run -p scraper --bin scraper -- --output-path ~/.crs --rpc-url https://YOUR-CELESTIA-TENDERMINT-RPC-URL.com/

On Celestia mainnet, we found that only 53 blocks are needed to verify the enetire chain from genesis to 8144463

Accumulating Versioned Verification Keys

SP1 recursion has been known to break on upgrade boundaries (e.g, a new version of SP1 verifying a proof from an older version). As a fix, this repo supports using the groth16 verifier as an intermediary; SP1 might evolve over time, but groth16 is always groth16.

We accumulate a history of changes as proof-carrying data to the groth16 verification key in the public inputs of the proof, so anyone can verify all changes to the long-running chain of proofs.

About

Succinct proofs of complete blockchain consensus history, via recursive proofs.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages