Skip to content
Back
// Protocol Journal · Essay I
// Cryptographic Architecture 7 min read

Why signatures are not enough

A system is only trustworthy when proof can survive time, movement, and changing assumptions without relying on the system that created it.

Blockchain gives you one useful thing very cheaply.

It can prove that something was anchored at a given time.

That matters. But it is not the same thing as proving that the thing anchored was true.

Anyone can post anything. Any system can emit a hash. Any actor can claim that an anchor settles a fact.

It does not.

An anchor can strengthen ordering. It can strengthen permanence. It can strengthen public visibility.

It cannot, on its own, establish truth of origin, truth of authority, truth of evidence, or truth of fact.

That is the missing layer.

The real question is not whether something was anchored. The real question is what structure sits behind the anchor, and whether that structure can still be checked later by another system, under different assumptions, without trusting the application that created it.

That is where most systems fail.

Hash posted 0x7a3f...9c21
Timestamp 2024-05-21 09:23 UTC
Chain reference Block 14,291,003

An anchor proves that something was posted. It does not prove that the thing posted was true.

A signature is not proof

This is where many systems stop too early.

They store a signature. Or they store a boolean that says verified: true. Or they keep the current state and assume that is enough.

It is not enough.

A signature without context is fragile. A verification result without preserved proof is weaker still.

What matters is not that verification succeeded once. What matters is whether another verifier can check the claim again later, outside the original system, with enough preserved context to understand what was actually being proven.

That means proof is not a signature. Proof is the package of context that makes the signature meaningful.

Actor.
Key.
Algorithm.
Bound content.
Unique challenge or nonce.
Timestamp.
Authority context.
Evidence links.
Optional public anchor.

Without that, the system may remember that verification happened. It will not be able to explain why the claim should still be trusted.

Verification Result

Verified true
Signature [bytes]
Timestamp 2024-05-21 09:23

Stored result — cannot re-verify independently

Proof Package

Select a layer to see what breaks without it

Nine layers. A proof is not a yes/no result — it is preserved context that lets verification happen again later.

Hover or tap any layer above to see what breaks when that element is missing.

A proof is not a yes or no result. It is a preserved context that lets verification happen again later.

Proof of origin requires context binding

A valid signature is still not enough if it is not bound to a specific action.

This is where unique challenges, nonces, or single-use context binding matter.

Without that binding, a valid proof from one context can be reattached to another. The bytes may still verify. The fact claim may still be false.

That is a serious failure.

Proof of origin means more than proving that a key once signed something. It means proving that this actor signed this exact content for this exact action in this exact context.

That is what prevents replay at the proof layer.

Context binding

Without: None — reusable

With: Nonce bound — single use

Replay protection

Without: Vulnerable

With: Protected

Without context binding, a valid proof from one action can be reused against another.

Key custody changes what a signature proves

A system may say an actor signed something. That claim depends on who controlled the key.

If the actor controlled the key, the signature may support proof of actor origin. If the platform controlled the key, the signature proves something weaker: that the platform asserted something on the actor's behalf.

That is a meaningful difference.

In multi-actor systems, the difference between self-custody, delegated custody, institutional custody, and platform custody changes the strength of the proof.

This is not just a security detail. It is a truth-of-fact detail.

If the wrong custody assumption is hidden, the system may overstate what its signatures actually prove.

Self-custody

The actor held the key. The signature is attributable to them directly. This is the strongest proof of individual origin, but requires the actor to manage key security.

A signature proves less than people think when the custody model is hidden.

Truth is often formed by many actors, not one

Serious systems rarely produce truth from one final signature.

They produce it cumulatively. One actor submits. Another adds evidence. A reviewer verifies. An authority approves. A public network anchors ordering. A later actor may revoke, supersede, or countersign.

If the system only preserves the final state or final signature, most of the truth formation process has already been flattened.

That is why multi-actor proof chains matter. Not because every actor must sign everything. But because systems should preserve the structured chain of who asserted what, at what stage, under which proof conditions.

Full proof chain — truth reconstructable from origin to anchor

Proof package detail — click any node to inspect

Actor: alice@org.example
Key: ed25519:abc1...f4
Algorithm: Ed25519
Signed: submission manifest hash
Authority: Self-attested origin
Chain integrity: Complete
Truth of fact: Reconstructable

In serious systems, truth is often cumulative. The proof has to preserve the chain that formed it.

Algorithm agility is part of proof survival

This is often misunderstood.

The problem is not merely whether a signature verified at the time. The problem is whether it can still be interpreted correctly later.

That requires preserved algorithm context. Which algorithm was used. Which key type. Which verification assumptions applied. Whether dual signatures existed. Whether the proof package can survive a world where preferred algorithms have changed.

A system built only for today's verification assumptions is not really designed for long-lived trust. A record may need to be checked years later. The system may move across stacks. Cryptographic preferences may evolve. Post-quantum migration may become relevant. Verification may need to occur in contexts the original system never anticipated.

If the proof format is brittle, verification decays with time. If the proof format preserves enough context, verification can adapt without losing origin.

At creation

Verified

After migration

Uncertain — context lost

Long-lived proof requires preserved algorithm context, not just stored signature bytes.

Large signatures should not force re-architecture

If the system is designed correctly, larger post-quantum signatures should not require re-architecture later.

The system should treat signatures and proof artefacts as variable-length, algorithm-agnostic payloads inside a proof package.

Do not hard-code assumptions around signature size.
Do not hard-code one algorithm.
Do not require every proof to fit inside one narrow
transport or storage primitive.

Instead: store proof packages as detached, content-addressed artefacts. Allow variable-length signature blobs. Support chunking or segmented transport where needed. Anchor only the manifest root, content hash, or Merkle root publicly. Keep the proof package self-describing with algorithm identifier, key type, content hash, signature payload, and context metadata. Make verification routing depend on metadata, not on one fixed cryptographic stack.

Allow dual-signature periods during migration. Treat proof as an envelope that can carry different algorithms over time.

The correct answer to large post-quantum signatures is not a later redesign. It is a present design that never assumes proof artefacts will remain small.

Post-quantum ready

Requires redesign

Signature size

Hard-coded

Dual signature

Not supported

Large signatures should pressure storage and transport, not the architecture itself.

Proof has to survive boundaries

Most systems do not live in one place. They cross applications, storage layers, APIs, ledgers, downstream clients, and sometimes chains or trust domains.

If proof can only be verified inside the original system, the proof is weaker than it appears.

A stronger design preserves portable proof packages that can survive those boundaries. Not because every part is public. Not because every system must use the same chain. But because the proof remains interpretable outside the original application.

That is the difference between local verification and portable evidence.

Proof depends on original system

Survives system removal

No

Independent verification

Not possible

Cross-boundary audit

Requires original system

Proof becomes durable when it can be checked outside the system that created it.

Where this fits in the wider architecture

Authority needs proof that survives time. Workflow needs proof that survives state changes and collaboration. Containers need proof that survives movement. Replayability needs proof that survives system change.

The missing layer across all of them is preserved proof context.

Not the anchor. Not the signature. Not the verification result. The structured package behind all of them that lets another system, at another time, under different assumptions, still check whether the claim was valid.

That is the real frame.

In practice

Proof as operating requirement

In my own work, this shows up as a structural requirement: preserving signed proof of origin, handling multiple actors over time, keeping verification context rather than only a success result, and designing proof packages that can survive boundaries between applications, storage layers, and public anchors. The current state is useful, but never sufficient on its own.

See how DOVU OS models the workflow and evidence layer →

The anchor is not the fact. The signature is not the proof. The verification result is not the history.

Truth of fact requires more structure than people want to admit. It requires preserved origin, preserved context, preserved authority, preserved evidence, preserved algorithm information, preserved ordering, and preserved portability across systems and time.

Without that, the system can say something happened. It cannot still prove what happened when it matters.

That is the difference between truth of anchor and truth of fact.

Designing proof systems that need to survive time, movement, and dispute?

Continue the discussion