Skip to main content

Introduction

Every VeriSynth run produces a proof receipt — a small, cryptographically verifiable JSON file that records exactly how a synthetic dataset was generated. This proof enables reproducibility, auditability, and trust in the synthetic data lifecycle — without revealing the original data itself.

Why Proofs Matter

When working with sensitive datasets (e.g. healthcare, finance, clinical trials), you need to prove that:
  • No real individuals were exposed
  • The data wasn’t tampered with
  • The synthetic results can be verified independently
Traditional anonymization or “black-box” synthetic data tools can’t provide this level of assurance. VeriSynth changes that by generating verifiable cryptographic receipts with every run.

What’s in a Proof Receipt?

Each proof file (proof.json) contains key metadata about the synthesis process:

Core Components


1. File Hashing (SHA-256)

Each dataset (input and synthetic output) is hashed using SHA-256, producing a unique 64-character fingerprint. Example:
Even a one-character change in the file alters the hash entirely. This ensures data integrity — you can confirm that the file used to create synthetic data hasn’t changed.

2. Merkle Roots

VeriSynth combines all row-level hashes into a Merkle tree, creating a single compact fingerprint (Merkle root) representing the entire dataset. This allows independent verification without needing the full dataset.

How it works

  1. Each record (row) is hashed individually.
  2. Pairs of hashes are combined and re-hashed up the tree.
  3. The final root hash represents the entire dataset’s integrity.
This approach is inspired by blockchain data structures — but runs fully offline.

3. Statistical Metrics

Each proof includes quantitative fidelity and privacy diagnostics: These values help users balance realism vs. privacy, and are logged for auditability.

4. Deterministic Seeds

Each run uses a random seed that makes the entire synthesis process reproducible. Example:
Re-running with the same seed, input, and model produces identical output and identical proof.json — a strong guarantee for regulated environments.

5. Proof Verification (Coming Soon)

You’ll soon be able to verify proofs using:
This command will:
  • Re-hash your input and output files
  • Recompute Merkle roots
  • Compare against the proof receipt
  • Report if the dataset is unchanged and valid
Expected output:

6. Reproducibility in Action

Try running VeriSynth twice with the same parameters:
Then compare proofs:
If your proof system is working correctly, the files will be identical — down to the Merkle root.

7. Future Extensions

Planned features for the proof system:

Summary