Search

Search work, writing, and fragments.

project / 2026

Protocol tooling / correctness and verification work

SP-DIFFER

A correctness harness for BIP 352 Silent Payments implementations, with differential adapters, replayable regressions, and release-verification lanes.

  • built with C++ / Python / Rust adapters / Go adapter integration / Make / Spec-driven docs
  • source View source ↗

notes on the build

Snapshot

SP-DIFFER compares independent BIP 352 Silent Payments implementations against a shared semantic contract and reference-oracle behavior, then turns divergence into replayable evidence.

It is still evolving, but the core harness is already in place: a native runner, comparator, CLI, and reporter, plus semantic adapters, worker paths, regression fixtures, fuzz lanes, and release-verification tooling.

Why it matters

Protocol bugs are hard precisely because vague mismatches are easy to argue about and hard to pin down. This project pushes in the other direction: normalize the inputs, compare implementations through the same contract, and keep the failures as artifacts that can be replayed, inspected, and discussed.

That already proved useful in practice. The harness surfaced a small cluster of upstream Silent Payments edge cases around order-dependent intermediate sums. The bug class was explicitly acknowledged in spdk#123 and bdk-sp#55, also reported in BlueWallet/SilentPayments#30, and later reproduced in libnunchuk#33, where the maintainers replied that it had been fixed. One reduced case was also captured in the merged BIP-352 test vector PR #2142.

on this page

SnapshotWhy it matters

what mattered

  • Native runner, CLI, and reporter implemented around explicit semantic contracts.
  • Deterministic regressions, fuzzing, benchmarking, and release-verification lanes wired through Make.
  • Differential adapter coverage across reference, Rust, Go, and bdk-sp implementation paths.
  • Minimized upstream bug reports filed from harness findings across the Go and Rust implementation paths.

next project

TestLoom ↗