mfsig.com
Reproducibility · the deep dive

Every .mfsig is self-verifying — even offline, even five years from now.

We sign every file with Ed25519, hash every nested block with SHA-256, and embed the complete provenance lineage. The verification logic is open-source — anyone who has the file can prove its integrity, with or without internet, with or without us.

Four layers of audit

Cryptography · provenance · methodology · validation

A .mfsig is more than a σ-profile — it's a self-contained audit object. Four independent guarantees, each verifiable without network access.

layer 1

Cryptographic integrity (SHA-256 + Ed25519)

Every nested block of the file is SHA-256 hashed. The root checksum lives in audit_and_trust.sha256_checksum. The Ed25519 signature in audit_and_trust.ownership.molforge_signature seals the file against tampering. Public key at /.well-known/mfsig-keys.json.

SHIPPED
layer 2

Provenance lineage (git-for-σ-profile)

audit_and_trust.lineage.history is an append-only log: every derivation event (recipe change, tier upgrade, post-hoc enrichment) records parent_sha256 → new_sha256 with a timestamp and the tool that did it. Follow the chain to the root genesis event.

SHIPPED
layer 3

Methodology hash

The full recipe (functional, basis, radii, solvent model, post-hoc corrections, normalization conventions) is canonicalised and hashed to methodology_hash. Any deviation from the published registry is flagged.

SHIPPED
layer 4

Validation provenance

recipe.validation_at_compute embeds the exact anchor set, the SHA-256 of the anchor set file, the MAE measured at compute time, and the n_molecules used. The accuracy claim is auditable retrospectively.

SHIPPED
Verify offline

One command, one PASS or FAIL — no network needed

The open mfsig CLI checks all four layers in a single pass. Free, MIT-licensed, no API key.

# Install (Python 3.10+)
pip install molforge-sigma

# Verify a single file
mfsig verify ABJFBJGGLJVMAQ.mfsig.json
# → ✓ SHA-256 root checksum matches              (cryptographic integrity)
# → ✓ Ed25519 signature valid                    (authenticity)
# → ✓ vendor_tree_sha256 = expected              (binary provenance)
# → ✓ registry_recipe_sha256 matches             (recipe compliance)
# → ✓ image_patch_chain includes klamt-purity    (Klamt-free verification)
# → ✓ scf.converged = true, fallback_level = 0   (clean SCF)
# → ✓ sigma_moments re-derivable from raw arrays (machine ε)
# → PASS  ABJFBJGGLJVMAQ.mfsig.json  (mfsig/v0.91.1 · MFFactory · MF3)

# Verify a directory in batch
mfsig verify ./cohort/ --batch --report cohort_audit.txt
# → 84/84 PASS

# Verify against a specific public key (e.g. for archived files)
mfsig verify aspirin.mfsig.json --pubkey ./molforge-pubkey-2024.pem

The verifier is part of the open-source molforge_sigma Python package. The cryptographic implementation uses PyNaCl (libsodium) for Ed25519 and hashlib for SHA-256 — no proprietary crypto.

Regulatory readiness

21 CFR Part 11 — out-of-the-box

The audit_and_trust block was designed against FDA 21 CFR Part 11 requirements for electronic records and signatures. Pass it to your QA team as-is — no wrapping, no extra documentation.

§ 11.10(a) · accuracy

SHA-256 self-checksum and Ed25519 signature ensure record accuracy and detect any post-creation modification.

§ 11.10(c) · retention

.mfsig files are static JSON — preservable indefinitely, no database dependency, no vendor format obsolescence.

§ 11.10(e) · audit trail

audit_and_trust.lineage.history is an append-only chronological log of every modification, signed and hashed.

§ 11.50 · signature meaning

molforge_signature includes signer identity (signing_key_id), timestamp (issued_at_utc), and the recipe version that produced the record.

Open artefacts

What we publish openly

The trust model only works if the verifier and the schema are public. They are.

  • /.well-known/mfsig-keys.jsonall current and rotated public Ed25519 keys
  • molforge_sigma Python packageopen-source verifier + schema + reference implementation
  • refs/recipes.jsonversioned registry of every recipe with methodology hash
  • /changelogevery schema and recipe change, dated and explained
  • /benchmarksvalidation anchor sets and per-molecule MAE breakdown
Try it

Generate one .mfsig, verify it offline