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.
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
kaspadandrusty-kaspanodes. It preserves the original proof path and adds checkpointutxos.gzcommitment verification before reporting the checkpoint total.
Build:
cargo build --releaseRun:
./target/release/genesis-proofRun 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/datadir2Non-interactive run with JSON output:
./target/release/genesis-proof --no-input --json-out ./kaspa-proof-report.jsonIf 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.
Default mode uses embedded verification data:
- embedded
resources/checkpoint_data.json - embedded canonical
kaspad v0.11.5-2utxos.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.gzCanonical checkpoint dump source:
https://raw.githubusercontent.com/kaspanet/kaspad/v0.11.5-2/domain/consensus/processes/blockprocessor/resources/utxos.gz
- active genesis header hash
- hardwired genesis coinbase hash, Bitcoin reference, and checkpoint reference
- current tip to active genesis hash chain
- checkpoint header hash and UTXO commitment match against hardwired genesis
- checkpoint chain back to the original genesis, plus original genesis coinbase and empty UTXO commitment
- checkpoint
utxos.gzMuHash 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,171sompi984,222,544.04487171KAS
Prebuilt artifacts are published by the release workflow for:
- Linux x86_64
- macOS aarch64
- Windows x86_64