Skip to content

Repository files navigation

Privacy-Preserving Financial Surveillance: An Architectural Framework for CBDC Implementation

Murad Farzulla — Farzulla ResearchORCID

Andrew Maksakov — Dissensus AI (Section 5.4, PET-AML stack)

Preprint DOI: 10.5281/zenodo.17917938

Abstract

This paper challenges the assumption that comprehensive transaction surveillance is necessary for CBDC financial stability and crime prevention. It proposes an alternative architecture built on anonymized pattern detection, transaction-level intervention, and opt-in deanonymization, and argues that the surveillance–privacy trade-off is weaker than CBDC design documents assume.

Status (August 2026)

main.tex on this branch is now the corrected manuscript. The February version it replaces reported §4.5 "validation" at AUC = 1.000 with watchlist access adding zero marginal value. That was a data-generating artifact — launderers were defined to hold 3–6 wallets against 1–2, so num_wallets separated the classes by construction, and a saturated denominator made both the "87–95% of surveillance-based effectiveness" figure and the "zero marginal improvement" result arithmetically forced rather than measured. Neither claim is supported and neither should be cited. detection/ is the honest replacement harness.

What replaced them, on 8,000 entities and 388 illicit: the marginal value of identity-linked auxiliary information is model- and metric-dependent. Average precision moves +0.0044 for the boosted model (90% CI [−0.0008, +0.0102]) and +0.0625 for the linear one (CI [+0.0478, +0.0781]), which the equivalence test reads as surveillance-superior. Withholding identity is not free; what it costs depends on the detector.

Also corrected: the degeneracy audit is pre-specified, not "pre-registered" (no public timestamped registration exists); H.R. 1919 is described as having passed the House per Congress.gov, not as enacted legislation.

The 21 July positioning pass stands — the §2.4 gap claim was falsified against a 30-year cryptographic-compliance lineage (trustee e-cash → Compact E-Cash → GGM16 → Platypus/PEReDi → Privacy Pools) plus BIS Aurora/Hertha, and the paper repositioned around what survives. Item-by-item log in CHANGES-FOR-ANDREW.md, bibliography rationale in FORWARD_NOTE.md, both on jul2026-working.

Target venue: Frontiers in Blockchain, Research Topic on institutional DLT.

Repository structure

main.tex             # LaTeX source — canonical, corrected August 2026
references.bib       # bibliography — corrected July 2026, see below
pet_aml_sim.py       # PET-AML stack simulation (Section 5.4)
detection/           # Section 4.5 detection-validation pipeline

detection/ — Section 4.5 validation pipeline

Self-contained, seeded, and gated. Four evidence tiers (T1 structure-only on unlinked pseudonyms → T2 + pseudonymous linkage → T3 + identity attributes → T4 + watchlist), with entity-disjoint cross-validation, entity-clustered bootstrap CIs, a label-permutation negative control, and a TOST equivalence test for the T2 vs T4 contrast.

A pre-specified degeneracy audit runs before any headline number and hard-fails if any single feature reaches entity-level AUC > 0.95. Run it against the original DGP and it fails on num_wallets at 1.000; on the shipped DGP the worst feature sits ≈ 0.84–0.92.

cd detection/
python3 run_all.py                  # seed 20260707, 8000 entities, δ = 0.03
python3 run_all.py --seed 42        # every number regenerates from the one seed
python3 test_pipeline.py            # regression tests

detection/confirmatory/ holds the prospective pipeline for the operational endpoint — missed illicit entities at a fixed alert budget, on independently generated train and test populations — with the freeze enforced in code. See its README; note that the alert budget originally proposed sits in a saturated regime where the test cannot fail, which is why it was not adopted.

Requires Python 3.11+ with numpy, scipy, scikit-learn, pandas (developed on 3.14 / numpy 2.3.5 / scipy 1.16.3 / sklearn 1.8.0 / pandas 2.3.3). The committed results/ were regenerated byte-identically on a clean checkout — if your run differs, the environment differs, and that's worth knowing before we quote anything.

Reference numbers, real-data adapters (AMLworld, Elliptic) and the honest read of what these synthetic results do and do not license: detection/README.md.

pet_aml_sim.py — Section 5.4 PET-AML stack

PSI watchlist screening, ZK policy proof generation/verification, secure MPC risk propagation, queueing delays. Pure Python 3, no dependencies.

python3 pet_aml_sim.py --days 2 --tx-per-day 20000 --psps 8 --seed 7

Note: the copy of pet_aml_sim.py on this branch (main) still has the escalation-ordering bug described below — it has been fixed, but only on jul2026-working, alongside the manuscript update that depends on it. Use that branch if you want the corrected simulator; this one is kept as-is because main.tex here (the stale February version) still quotes the old "zero escalations" result, and updating the code without updating the text would make the two contradict each other on the same branch.

git checkout jul2026-working   # corrected pet_aml_sim.py + matching manuscript

Original issue, for reference: risk_tier was read inside the transaction loop (travel-rule check and escalation, ~lines 468/475) but only assigned by run_batch risk propagation after the loop completed — so tier-based escalation could never fire, and the "zero escalations" result was guaranteed by construction rather than by the architecture. Fixed on jul2026-working by running risk propagation once per simulated day instead of once at the end; a reseeded rerun there now reports a real (small) escalation count.

References

references.bib was corrected in July 2026. Five entries in the February version carried fabricated author sets (OfflineCBDC2024, ZKPSurvey2025, UFLaw2024, OxfordCBDCSurvey2025, Koti2024Graphiti); all are now verified against Crossref / IACR ePrint / publisher records, along with fixes to Campanelli2019 (was Campanelli2017), Wang2025UnbalancedPSI, choi2025cbdcprivacy, and the ECBConsultation2021 note. Eight entries were appended for the positioning pass. Rationale per entry: FORWARD_NOTE.md on jul2026-working.

Building the paper

Plain article class, no local .cls and no external graphics — main.tex and references.bib are all you need.

pdflatex main && bibtex main && pdflatex main && pdflatex main

License

Citation

@misc{FarzullaMaksakov2026CBDC,
  author = {Farzulla, Murad and Maksakov, Andrew},
  title  = {Privacy-Preserving Financial Surveillance: An Architectural
            Framework for {CBDC} Implementation},
  year   = {2026},
  doi    = {10.5281/zenodo.17917938},
  note   = {Preprint}
}

About

Privacy-Preserving Financial Surveillance: An Architectural Framework for CBDC Implementation

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages