Back to home

Note

Replay resistance belongs on the server, not in the client.

Client-side hints are useful, but replay resistance only becomes real once the server can verify freshness.

Context

A client can be instrumented, cloned, or replayed. If the backend accepts a claim without binding it to freshness and context, the trust signal is only advisory.

The safer pattern is to verify nonce binding, reject stale envelopes, and make the acceptance window obvious in logs and metrics.

That keeps the server in charge of the decision, which is where the trust boundary already lives.

Takeaways

01

Nonce binding should be server-verifiable.

02

Stale evidence should fail closed.

03

A trust signal is not a trust decision until the backend says so.

Entry

Static note detail page for short technical writing.

[email protected]