Propose, approve, apply, sign.
Scroll through the four moments that turn a router change in the network core into evidence that someone outside the operator can check.
A change is declared before it is made.
An engineer, a script or an agent proposes a change to a core router: here, adding the X25519MLKEM768 group to a TLS policy. The proposal names the device, the intent and the change ticket, and fingerprints the configuration as it stands.
- Who proposed it: a person, a tool or an agent, each with its own key
- Target device recorded as a commitment, not a raw hostname
Held until two people sign.
Above the policy threshold the change waits. Two named approvers sign, and the approval is itself a receipt recording the policy version in force. Approvals are time-limited: they lapse rather than linger.
- Approval kind with scope and expiry, as in R+13
- A missing or expired approval is visible, not silent
Old and new run side by side.
The configuration is pushed. For a defined window both paths serve or shadow traffic, divergence is counted, and a downgrade check confirms peers are not falling back to the classical path. If it fails, the rollback is signed too.
- Configuration hash before and after the change
- Degraded handshakes receipted, not dropped
The receipt joins the chain.
The change closes with a receipt signed by Ed25519 and ML-DSA-65, linked to the change before it. An auditor holding the public key and the chain can replay the sequence offline and see any insertion, removal or edit.
- Both signatures must verify; there is no "mostly valid"
- Bundles stay labelled unanchored until the anchor proof lands