Discussion topic for [Idea/Draft] ERC: Unclonable Agent Execution Credentials via Zero-Knowledge Nullifiers
Author: Muhammad Zidan Fatonie (@mzf11125)
Update Log
- 2026-08-05: Initial idea draft opened for discussion on this thread.
External Reviews
- 2026-08-05: Review noting that unclonability and authorization soundness are orthogonal properties, and raising prior art on redundant independent mirrors for verifying signed artifacts, forum comment.
Outstanding Issues
-
2026-08-05: Cross-chain nullifier synchronization. If a capability token bridges across domains, the nullifier registry must resolve before a cloned agent can attempt execution on a secondary chain. Current leaning is to bind each token to a home domain and require an explicit burn and reissue, rather than mirroring a globally consistent registry. A capability deliberately issued as spendable on either of two chains with no designated home needs real consensus on spentness, and may be out of scope for a first draft.
-
2026-08-05: Proof generation latency. Creating the ZK proof sits in the execution path, introducing a delay an attacker might exploit if they have already cloned the agent memory. I am evaluating whether a secondary time lock is required.
-
2026-08-05: Nullifier derivation edge cases. Confirming that no legitimate recurring agent action can be bricked by an unintended nullifier collision, particularly where an orchestrator reissues capabilities on a schedule.
Summary
Agent authorization on Ethereum typically relies on function-scoped boundaries or static permissions. Both assume the credential holder is the party the credential was issued to.
That assumption breaks in multi-agent swarms. When building the LadingLogic autonomous trade finance network, we hit a security wall: when an orchestrator delegates a high-stakes task to a specialized off-chain agent, it issues an authorization credential, and a compromised agent can be cloned. A bad actor copies the memory state and replays that authorization to drain funds or duplicate actions. Nothing in a scoped permission distinguishes the original agent from its clone, because both present the same valid credential for the same permitted call.
The property needed is that an execution capability fundamentally breaks after one use. By adapting the unconditional unclonable encryption proofs detailed in arXiv 2607.21551, this draft brings quantum-inspired unclonability to classical EVM environments through zero-knowledge nullifiers.
How It Works
-
The orchestrator issues an encrypted capability token bound to the agent identity and a hidden cryptographic salt.
-
The agent decrypts the payload and generates a zero-knowledge proof of its internal logic. This proof generation forces the exposure of a nullifier derived from the salt.
-
A Guard contract on chain verifies the proof and permanently logs the nullifier.
-
If a cloned credential attempts to execute, it produces the identical nullifier. The Guard sees the duplicate and rejects the transaction.
The standard defines only the capability envelope, the nullifier derivation, and the verification interface. It does not define the proving system, the capability transport, or the policy that decided the capability should be issued.
Two Choices Worth Surfacing Early
Nullifiers derive from a hidden salt, not the transaction payload. If the nullifier were bound only to the payload, an identical legitimate subsequent task would be blocked, which breaks any recurring agent action. Binding to a unique cryptographic salt ensures intentional duplicate tasks receive unique capability tokens, while cloned tokens produce colliding nullifiers.
Unclonability moves from the storage layer to the execution layer. The original arXiv 2607.21551 result relies on quantum states. EVM environments are classical and data is infinitely replicable, so no property of the credential at rest can be made unclonable. This draft relocates the unclonable property to the proof of execution, where the collision is detectable on chain.
Scope of the Security Claim
This standard guarantees execution integrity and exactly-once execution. It is not an access control framework. The verifier learns that a specific single-use capability was consumed, and the Guard ensures no identical capability can ever execute again.
It hides nothing. A permitted action executes on a public chain and is public. The claim is about how many times a credential can be spent, not about what the credential authorizes or who can see it.
Relationship to Neighbouring Standards
| Standard | Layer | Relationship |
|---|---|---|
| Function-scoped delegation drafts | Boundary | Define what an agent may ever be authorized to touch. This proposal solves a different attack vector. Scoped delegation defines what an agent can reach, and this draft guarantees that a specific authorized payload executes exactly once. |
| ERC-8354 Confidential Agent Policy Verdicts | Soundness | Defines how a particular authorization decision was reached, while keeping the ruleset confidential. A domain could plausibly use both, keeping the policy secret via ERC-8354 while ensuring the resulting credential cannot be replayed using this draft. Neither requires the other to function. |
| This draft | Consumption | Guarantees the resulting credential is spent exactly once. |
| ERC-8004 | Identity | Supplies the agent identity the capability token binds to. |
| ERC-7579, ERC-6900 | Integration surface | The Guard operates as a pre-execution hook or validation module. |
Unclonability and authorization soundness are orthogonal. This standard guarantees that a specific authorized payload executes at most once. It makes no claim about whether that payload should have been authorized in the first place. A replayed credential from a compromised agent and a correctly issued credential encoding a genuinely bad decision are indistinguishable to the Guard, because both present a valid, previously unseen nullifier. A deployment needs boundary, soundness, and consumption independently, and none of the three substitutes for another.
Feedback I Am Specifically Looking For
-
Are there edge cases in the nullifier derivation path that could unintentionally brick legitimate recurring agent actions?
-
Does this unclonable approach cleanly stack with existing capability architectures, or does it introduce friction for developers?
-
For anyone working on cross-chain agent execution, how would you handle nullifier registry mirroring, particularly where a capability is deliberately issued without a designated home domain?
-
Is binding unclonability to the proof of execution rather than the credential itself the right relocation, or is there a construction that gets closer to the original quantum property in a classical setting?
