Skip to content

Repository files navigation

Bitcoin PIR Whitepaper

This repository contains the LaTeX source for:

Private Information Retrieval for Bitcoin Light Clients

Build

The local build uses XeLaTeX and BibTeX:

./build.sh

The generated paper is main.pdf.

For a headless, deterministic build, pin the source-date environment and disable the local PDF viewer:

SOURCE_DATE_EPOCH=0 TZ=UTC OPEN_PDF=0 ./build.sh

CI builds the paper twice from clean source copies and requires byte-identical PDF output. The tracked main.pdf is regenerated with the same command.

Benchmark Tables

The evaluation section includes generated artifact-size and DPF communication tables. Regenerate them from the local Bitcoin PIR artifact root with:

./benchmarks/collect_artifact_metrics.py
./benchmarks/benchmark_scan_latency.py --trials 30 --warmups 1
./benchmarks/benchmark_dpf_round_latency.py --trials 30 --warmups 1
./benchmarks/benchmark_harmony_hint_latency.py --trials 3 --warmups 1
./benchmarks/benchmark_harmony_online_latency.py --trials 30 --warmups 1
./benchmarks/benchmark_merkle_latency.py --trials 30 --warmups 1
./benchmarks/benchmark_onionpir_synthetic.py
./build.sh

The benchmark matrix and promotion criteria are tracked in benchmarks/BENCHMARK_PROTOCOL.md.

The DPF round benchmark builds a small Rust runner against /Users/cusgadmin/BitcoinPIR/pir-runtime-core and records local warm-cache key generation, two-server-share evaluation, and client verification timings. The HarmonyPIR benchmark builds a small Rust runner against /Users/cusgadmin/BitcoinPIR/harmonypir-wasm and records local warm-cache offline hint-generation and online-query timings for HMR12 and FastPRP. The Merkle benchmark builds a Rust runner against the real bucket-Merkle sibling tables and records local DPF sibling retrieval plus client hash verification timings. It also checks that the bucket-Merkle roots match the current cuckoo table bytes; regenerate bucket-Merkle artifacts from the current BitcoinPIR builder if this benchmark reports verification failures. The OnionPIR benchmark calls the runtime implementation in /Users/cusgadmin/BitcoinPIR and records a synthetic-capacity phase timing. It is not a real-artifact end-to-end latency benchmark.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages