ERC-8183: Agentic Commerce

Hi agenttech, thanks for bringing this here, i think it’s worth discussing at the 8183 layer.

The root of the problem is clear : evaluator != provider as an address check is enforceable on chain. evaluator != provider as an actor check is not. Two addresses funded from the same wallet are structurally indistinguishable from two genuinely independent parties at the contract level. The state machine can enforce structural separation, not behavioral independence. That boundary is real and worth naming explicitly in the spec rationale as you suggest

One design choice that meaningfully changes the threat model is the auto-assignment. When the evaluator is drawn pseudo-randomly from a pool of staked participants rather than designated by the client, Case B (client = evaluator) is closed structurally and the client simply has no influence over who evaluates their job. Case A (provider = evaluator) becomes probabilistic rather than trivial. The malicious actor needs to stake, pass a warmup period, and then get randomly selected on the specific job they’re also the provider for. Thats not a complete solution but the attack surface is materially different from a model where the client picks the evaluator freely.

The auto-assignment path does raise its own open question worth documenting here : if the random draw lands on the provider’s address, what is the correct behavior ? Revert is auditable but penalizes the client for a collision they didn’t cause. Re-draw preserves liveness but adds complexity and a potential loop in small pools. We haven’t seen this discussed yet but it feels like something every auto-assignment implementation will eventually hit, and a recommendation in the rationale would help.

On the deeper problem, about same actor, two addresses, the assessIndependence() direction Pablo raised is the correct complement. Not a replacement for on-chain enforcement, but the layer that on-chain enforcement structurally cannot reach. The contract enforces structure. An independence oracle evaluates behavior. Both are needed.

2 Likes