Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ZeroSync/ZeroSync

A STARK proof to sync a Bitcoin full node in an instant.
https://github.com/ZeroSync/ZeroSync

bitcoin starks zkproof

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        


ZeroSync




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




Report a Bug
|
Request a Feature
| Ask a Question



![GitHub Workflow Status](https://github.com/ZeroSync/ZeroSync/actions/workflows/CI.yml/badge.svg)
[![Project license](https://img.shields.io/github/license/ZeroSync/ZeroSync.svg)](LICENSE)
[![Pull Requests welcome](https://img.shields.io/badge/PRs-welcome-ff69b4.svg?)](https://github.com/ZeroSync/ZeroSync/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
![GitHub Repo stars](https://img.shields.io/github/stars/ZeroSync/ZeroSync?style=social)
[![Twitter Follow](https://img.shields.io/twitter/follow/ZeroSync_?style=social)](https://twitter.com/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 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](docs/roadmap.md).

WARNING: THIS CODE IS STILL FULL OF CRITICAL SECURITY BUGS!

## Requirements
- Python 3.9 (Activate environment: `source ~/cairo_venv/bin/activate`)
- Cairo. [Installation Guide](https://www.cairo-lang.org/docs/quickstart.html) (Programming language for provable programs)
- [Protostar](https://docs.swmansion.com/protostar/docs/tutorials/installation) (Automated testing)
- [Giza](https://github.com/zerosync/giza) (Required for prover. Not necessary for development and testing)
- [EJS](https://ejs.co/) (Required for compiling)

## Install as library
To access the Cairo code in the `src` directory from within another Cairo project install the zerosync package:

```sh
pip install zerosync

```

Find a short Cairo example at [`docs/import_example.cairo`](https://github.com/ZeroSync/ZeroSync/blob/main/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.

```sh
make bridge_node
```

## Run all unit tests
```sh
make unit_test
```

## Run all integration tests
```sh
make integration_test
```

## Run the chain prover
```sh
make chain_proof
```

## List TODOs
```sh
./docs/todos
```

## Roadmap
The roadmap is available [here](docs/roadmap.md).