Skip to content

elldeeone/kaspa-genesis-proof

Repository files navigation

Kaspa Genesis Proof

Tools for cryptographically verifying the integrity of the Kaspa blockchain on both Go-based kaspad and Rust-based rusty-kaspa nodes. The proof shows that the current UTXO set naturally evolved from an empty UTXO set and that there was no premine.

Trusted Source Reference

Based on the original genesis proof by Shai Wyborski and Michael Sutton:

  • Original Source: https://github.com/kaspagang/kaspad-py-explorer/blob/main/src/genesis_proof.ipynb
  • Authors: Shai Wyborski, Michael Sutton
  • This repository adapts that proof flow into a maintained CLI for both kaspad and rusty-kaspa nodes. It preserves the original proof path and adds checkpoint utxos.gz commitment verification before reporting the checkpoint total.

Quick Start

Build:

cargo build --release

Run:

./target/release/genesis-proof

Run with an explicit datadir:

# rusty-kaspa
./target/release/genesis-proof --node-type rust --datadir ~/.rusty-kaspa/kaspa-mainnet/datadir

# kaspad
./target/release/genesis-proof --node-type go --datadir ~/.kaspad/kaspa-mainnet/datadir2

Non-interactive run with JSON output:

./target/release/genesis-proof --no-input --json-out ./kaspa-proof-report.json

If you downloaded and extracted a release archive, the launcher scripts are at the archive root:

  • macOS/Linux: run ./run-verifier.sh
  • Windows: run run-verifier.bat

In this source repository, those launcher scripts live under dist/ and are copied into the release archive during packaging.

Independent Verification Inputs

Default mode uses embedded verification data:

  • embedded resources/checkpoint_data.json
  • embedded canonical kaspad v0.11.5-2 utxos.gz

If you want to supply your own inputs, use:

./target/release/genesis-proof \
  --pre-checkpoint-datadir /path/to/datadir2 \
  --checkpoint-utxos-gz /path/to/utxos.gz

Canonical checkpoint dump source:

https://raw.githubusercontent.com/kaspanet/kaspad/v0.11.5-2/domain/consensus/processes/blockprocessor/resources/utxos.gz

What It Verifies

  1. active genesis header hash
  2. hardwired genesis coinbase hash, Bitcoin reference, and checkpoint reference
  3. current tip to active genesis hash chain
  4. checkpoint header hash and UTXO commitment match against hardwired genesis
  5. checkpoint chain back to the original genesis, plus original genesis coinbase and empty UTXO commitment
  6. checkpoint utxos.gz MuHash matches the hardwired checkpoint commitment, and the checkpoint total is summed from that verified dump

The checkpoint total reported by the verifier is:

  • 98,422,254,404,487,171 sompi
  • 984,222,544.04487171 KAS

Releases

Prebuilt artifacts are published by the release workflow for:

  • Linux x86_64
  • macOS aarch64
  • Windows x86_64

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages