Threat Model

Understood adversarially.

Security is not a posture here — it is a set of checks with names. For every realistic attack on an agent identity, the defense lives at a specific enforcement point in the code, and a test pins the behavior. Each attack below, and the mechanism that defeats it.

Every attack has an address in the source — the exact function where it fails.

Attack

Forged anchor

The token points at a document the agent never authored.

Defeated by

Re-hash the bytes

Re-hash the fetched document and require equality with the committed hash. A wrong document fails at the pivotal gate, always.

Enforcement
verifyAgainstAnchor
Attack

Indexer tampering

An off-chain cache or indexer serves an altered record.

Defeated by

Indexers are never authoritative

Every fetched byte is re-hashed against the on-chain commitment before reliance. Convenience never becomes authority.

Enforcement
aidContentHash
Attack

History rewriting

A version claims a false predecessor to erase or alter its past.

Defeated by

Walk the chain to genesis

Each link is recomputed and the genesis-root constancy is checked. A broken or forged link stops the walk.

Enforcement
verifyChain
Attack

Controller theft

Authority seized by acquiring or stealing the token.

Defeated by

Soulbound, controller-vested

The token is non-transferable; authority vests in the recorded controller, never in whoever holds custody. Seizing the token seizes nothing.

Enforcement
FA2_TX_DENIED
Attack

Stale mandate

An identity outlives the authority that once justified it.

Defeated by

Lifecycle is first-class

Expiry, rotation, and offboarding are explicit; an offboarded-but-active identity is rejected at an explicit instant.

Enforcement
effectiveStatus
Attack

Assurance downgrade

A record silently weakens its key custody or assurance level to slip under a policy.

Defeated by

Floors are enforced

Assurance carries IAL/AAL/FAL plus key custody; a one-notch downgrade is rejected against a relying party's required floor.

Enforcement
strictVerify
The doctrine beneath the table

Three properties make every defense hold.

01

The gateway is never trusted

The token could point anywhere and a gateway could serve anything. So the bytes are always re-hashed against the on-chain commitment — transport is untrusted by construction.

02

Each layer checks the one below

Nothing is trusted transitively. Anchor confirms version; hash confirms bytes; signature confirms authorship; status confirms liveness. Break any link and the chain stops.

03

The decision is stateless

No score, no reputation, no balance to farm. The verdict is recomputed from scratch every time, from artifacts anyone can independently check.

Responsible Disclosure

Found a flaw? Report it — specification flaws included.

An under-specified reliance rule is an exploit waiting for an implementation. We treat specification ambiguities as vulnerabilities, not just code defects. Report privately and we will acknowledge, investigate, and credit disclosures that follow a coordinated timeline.

Contact
security@quantumfield.inc
Machine-readable
/.well-known/security.txt
Standard
RFC 9116

Don't take the defenses on faith. Attack one.

Tamper with a document The invariants The architecture