The verification model
Written for auditors, evaluators and security reviewers. GOVP relies on well-understood, widely-reviewed primitives. There is nothing proprietary in the math — the value is in how the evidence is structured, fixed and verified.
Standard, reviewable cryptography
Each record is reduced to a content fingerprint and bound to a signature and a time anchor. No exotic constructions; an evaluator can reproduce every step with standard tools.
| Content fingerprint | SHA-256 over the canonical byte representation of the record. |
| Signature scheme | Ed25519 over the domain-separated canonical signing input. |
| Issued time | The issuer asserts a Generated-At timestamp inside the signed record. A bare record does not independently anchor it (see Threat model). |
| Independent anchoring | Optional layer. An RFC 3161 / eIDAS qualified timestamp or an append-only transparency log can anchor the fixation time so that even the issuer cannot move it. |
| Domain binding | The Canonical field binds the record to its issuing domain. |
| Encoding | Deterministic, self-describing GOVP-1 text record (UTF-8). |
One record, one fingerprint
Before signing, the record's fields are normalized to a single canonical form so that semantically identical inputs always produce the identical signing input — independent of field ordering or whitespace. Each non-empty field becomes a lowercased key: value line; the lines are sorted alphabetically and prefixed with a domain separator. Verification recomputes this exact byte string.
DOMAIN = "GOVP::record.v1\0"
lines = sort([ f"{k.lower()}: {v}\n" for k,v in fields if k != "signature" ])
msg = DOMAIN + "".join(lines)
sig = Ed25519_sign(issuer_sk, msg)
# verification — by anyone, offline
assert Ed25519_verify(issuer_pk, sig, msg)
assert govp_id == "GOVP-" + TYPECODE[type] + "-" + SHA256(type|id|hash)[:12]
A portable, self-describing receipt
A GOVP-1 record is a small, human-readable text file that carries its own public key and signature. It is self-contained: a verifier needs nothing but the record itself, and optionally the declared asset to confirm its hash. It can be stored anywhere — published at a .well-known URL or kept entirely apart.
Version: govp-1
Canonical: https://issuer.example/.well-known/govp.txt
Publisher: Aceros del Norte, S.A.
Asset-Type: document
Asset-ID: LOT-78432
Asset-SHA256: 2fc9e815…48f4353b
Generated-At: 2026-06-01T08:14:22Z
GOVP-ID: GOVP-DOC-e167a7517c13
Public-Key: Rz9MRNTSpG…TQLeJQd0=
Signature: /6i0nddzaW…2y2UCA==
This exact record verifies in the online verifier — try the “Load a real sample” button.
No server, no issuer, no network
Verification is a pure function of the record and the proof. It does not call GOVP, the issuer, or any third party. The same check that runs in the online verifier runs in GOVP Studio with networking disabled, and can be reimplemented from the published specification in a few lines of code.
What an adversary cannot do
GOVP assumes the issuer itself may later become adversarial — that is the point. The model protects a third party against silent, retroactive alteration of a fixed record.
A third party alters a fixed record and presents it as the original.
The Ed25519 signature no longer verifies; the check fails for anyone, anywhere.
The issuer backdates a new record, asserting an earlier Generated-At.
Only with the optional anchor. A bare record's time is issuer-asserted, so an issuer can backdate it. An RFC 3161 / qualified timestamp or transparency-log anchor is what makes the fixation time independently provable. GOVP is explicit about this rather than implying a guarantee it does not provide.
Forge a record that was never signed by the issuer.
The Ed25519 signature cannot be produced without the issuer's secret key.
Substitute a different record that collides with the same fingerprint.
SHA-256 collision resistance makes this computationally infeasible.
What the model deliberately excludes
GOVP proves integrity and authorship of a declaration — and, when an independent time anchor is added, its ordering in time. It does not, and cannot, attest to the truth of a statement, the accuracy of a measurement, or the correctness of the process that produced the record. A precise tool earns trust by being explicit about its limits — see what GOVP proves and does not prove.