Technology

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.

Primitives

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 fingerprintSHA-256 over the canonical byte representation of the record.
Signature schemeEd25519 over the domain-separated canonical signing input.
Issued timeThe issuer asserts a Generated-At timestamp inside the signed record. A bare record does not independently anchor it (see Threat model).
Independent anchoringOptional 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 bindingThe Canonical field binds the record to its issuing domain.
EncodingDeterministic, self-describing GOVP-1 text record (UTF-8).
Canonicalization

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.

# GOVP-1 signing input (domain-separated, sorted)
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]
Proof structure

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.

# GOVP-1 public verification record
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.

Offline verification

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.

Inputs
The self-contained GOVP-1 record (optionally the declared asset).
Computation
Rebuild the signing input, verify Ed25519, derive GOVP-ID.
Output
Deterministic pass / fail. Same for everyone.
Threat model

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.

Attack

A third party alters a fixed record and presents it as the original.

Defense

The Ed25519 signature no longer verifies; the check fails for anyone, anywhere.

Attack

The issuer backdates a new record, asserting an earlier Generated-At.

Defense

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.

Attack

Forge a record that was never signed by the issuer.

Defense

The Ed25519 signature cannot be produced without the issuer's secret key.

Attack

Substitute a different record that collides with the same fingerprint.

Defense

SHA-256 collision resistance makes this computationally infeasible.

Boundaries

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.

← GOVP