«A STARK proof to sync a Bitcoin full node in an instant»
Report a Bug | Request a Feature | Ask a Question
Don't trust. Verify. ZeroSync allows to verify Bitcoin's chain state in an instant. No need to download hundreds of gigabytes of blocks. A compact cryptographic proof suffices to validate the entire history of transactions and everyone's current balances.
Our first application is to zerosync Bitcoin Core in pruned mode. The long-term vision for ZeroSync is to become a tool box for custom Bitcoin proofs. STARK proofs enable you to transform the blockchain data, enhance it, filter it, index it for efficient queries, and optimise it for your individual use case.
This is an early stage project. Expect frequent breaking changes. Here is the project roadmap.
WARNING: THIS CODE IS STILL FULL OF CRITICAL SECURITY BUGS!
- Python 3.9
- Cairo. Installation Guide (Programming language for provable programs)
- Protostar (Automated testing)
- Giza (Required for prover. Not necessary for development and testing)
The Utreexo bridge node is required to pass the tests for block verification. It provides the inclusion proofs for the coins spent in a block.
source ~/cairo_venv/bin/activate
python src/utreexo/bridge_node.py
protostar test --cairo-path=./src target src
cd src/stark_verifier/parser/
cargo +nightly build
cd ../../..
protostar test --cairo-path=./src tests
Run some tests with the Rust verifier to derive a detailed ground truth:
cargo +nightly test -- --show-output
Note that you have to build the parser first, as described above.
source ~/cairo_venv/bin/activate
python3 src/chain_proof/main.py
./docs/todos
The roadmap is available here.