Skip to content

unbalancedparentheses/zerosync

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZeroSync

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 tiny cryptographic proof suffices to validate the entire history of transactions and everyone's current balances.

Furthermore, ZeroSync aims 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!

Requirements

  • Python 3.7
  • Cairo Installation Guide (Programming language for provable programs)
  • Protostar (Automated testing)
  • Giza (Required for prover. Not necessary for development and testing)

Run the Utreexo Bridge Node

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

Run all Tests

protostar test --cairo-path=./src target src

Run the Chain Prover

source ~/cairo_venv/bin/activate
python3 src/chain_proof/main.py
giza prove --trace=tmp/trace.bin --memory=tmp/memory.bin --program=tmp/program.json --output=tmp/proof.bin --num-outputs=50

List TODOs in Code

 ./docs/todos

About

Sync a Bitcoin full node using a STARK proof

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Cairo 96.7%
  • Python 3.3%