Skip to content

A STARK proof to sync a Bitcoin full node in an instant.

License

Notifications You must be signed in to change notification settings

Olexandr88/ZeroSync

This branch is up to date with ZeroSync/ZeroSync:bitcoin_api.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f039352 · May 11, 2023
Apr 3, 2023
May 7, 2023
May 4, 2023
Apr 15, 2023
May 11, 2023
May 4, 2023
Mar 2, 2023
Dec 22, 2022
Mar 27, 2023
Jan 2, 2023
Oct 6, 2022
Dec 8, 2022
May 11, 2023
Feb 8, 2023
Dec 8, 2022
Dec 31, 2022
Dec 15, 2022
Dec 8, 2022
Mar 29, 2023

Repository files navigation


GitHub Workflow Status Project license Pull Requests welcome GitHub Repo stars Twitter Follow

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!

Requirements

  • Python 3.9 (Activate environment: source ~/cairo_venv/bin/activate)
  • Cairo. Installation Guide (Programming language for provable programs)
  • Protostar (Automated testing)
  • Giza (Required for prover. Not necessary for development and testing)
  • EJS (Required for compiling)

Install as library

To access the Cairo code in the src directory from within another Cairo project install the zerosync package:

pip install zerosync

Find a short Cairo example at docs/import_example.cairo on how to import the desired function.

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.

make bridge_node

Run all unit tests

make unit_test

Run all integration tests

make integration_test

Run the chain prover

make chain_proof

List TODOs

 ./docs/todos

Roadmap

The roadmap is available here.

About

A STARK proof to sync a Bitcoin full node in an instant.

Resources

License

Citation

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Cairo 78.9%
  • Python 10.5%
  • Rust 8.2%
  • Makefile 1.3%
  • EJS 1.1%