Add ERC: AI Inference Proof Verification Interfaces#1771
Conversation
File
|
…input-trust rationale
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
… implementations (SP1 zkML, multisig/oracle), add ERC-8183/ERC-8004 composition examples, revise rationale and security considerations
|
This is a clean v0.1. The four-parameter verify() with explicit metadata separation is the right call — keeps proof bytes opaque while giving backends a stable channel for model identifier, agent ID, and registry context. |
… anchoring clarification)
|
Hey Jimmy — found the CI errors in erc-8274.md. Four fixes and you're green.
**1. Line 186 — remove external GitHub URL (markdown-rel-links)**
Change:
[ERC draft](https://github.com/TMerlini/wyriwe/blob/main/ERC-draft.md)
To:
[ERC draft](
https://ethereum-magicians.org/t/wyriwe-what-you-read-is-what-you-execute-input-provenance-for-verifiable-ai-inference/28655
)
**2. Line 262 — remove external gist URL (markdown-rel-links)**
Change:
(https://gist.github.com/TMerlini/bf3abd30c332cccb257d0e5bdff1ff95)
To: just remove the URL entirely and keep the prose description.
**3. Line 194 — first mention of ERC-8263 must be a relative link
(markdown-link-first)**
Change:
ERC-8263 (Onchain Proof Layer for AI Agents)
To:
[ERC-8263](./erc-8263.md) (Onchain Proof Layer for AI Agents)
**4. Lines 196 & 395 — same rule, ERC-8004 and ERC-8263 mentioned as plain
text after first occurrence**
Any subsequent plain-text mention after the first linked instance is fine —
just make sure the very first appearance of each ERC number in the doc is a
relative link.
That's it. No structural changes needed — the spec itself is clean.
Damon
…On Thu, May 28, 2026 at 7:07 PM github-actions[bot] < ***@***.***> wrote:
*github-actions[bot]* left a comment (ethereum/ERCs#1771)
<#1771 (comment)>
The commit 1a0d796
<1a0d796>
(as a parent of 7374898
<7374898>)
contains errors.
Please inspect the Run Summary
<https://github.com/ethereum/ercs/1771/files> for details.
—
Reply to this email directly, view it on GitHub
<#1771?email_source=notifications&email_token=B7CMJECMKJ7XOZDUTBTIXPL45DWGXA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJWHE4DMMBYGQ3KM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-4569860846>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/B7CMJEA3MUVOPTBD2IUH3ET45DWGXAVCNFSM6AAAAACZNI2HKCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DKNRZHA3DAOBUGY>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/B7CMJEE2D35XGU3PDNI2VGL45DWGXA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJWHE4DMMBYGQ3KM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJKTGN5XXIZLSL5UW64Y>
and Android
<https://github.com/notifications/mobile/android/B7CMJEEBAEFYJJYG7XOJQYL45DWGXA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJWHE4DMMBYGQ3KM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLTGN5XXIZLSL5QW4ZDSN5UWI>.
Download it today!
You are receiving this because you commented.Message ID:
***@***.***>
|
|
Hey Jimmy — almost there, down to 2 errors.
**Fix 1 — Line 186**
The Ethereum Magicians discussion link is still triggering
markdown-rel-links. Remove it entirely from inline text:
Change:
ERC draft, [discussion](
https://ethereum-magicians.org/t/wyriwe-what-you-read-is-what-you-execute-input-provenance-for-verifiable-ai-inference/28655
)
To:
ERC draft
**Fix 2 — Line 395**
ERC-8004 is still plain text here. First mention must be a relative link:
Change:
ERC-8004 assigns each agent a `uint256 agentId`...
To:
[ERC-8004](./erc-8004.md) assigns each agent a `uint256 agentId`...
That's it — next push should go green.
…On Thu, May 28, 2026 at 7:36 PM github-actions[bot] < ***@***.***> wrote:
*github-actions[bot]* left a comment (ethereum/ERCs#1771)
<#1771 (comment)>
The commit 61d925f
<61d925f>
(as a parent of 3504efa
<3504efa>)
contains errors.
Please inspect the Run Summary
<https://github.com/ethereum/ercs/1771/files> for details.
—
Reply to this email directly, view it on GitHub
<#1771?email_source=notifications&email_token=B7CMJEEA6UG4S3CGGDRNXPT45DZSFA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJWHE4TQMRYG4ZKM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-4569982872>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/B7CMJEATN5DV7YQY5NYHPNL45DZSFAVCNFSM6AAAAACZNI2HKCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DKNRZHE4DEOBXGI>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/B7CMJEF2HKQFZGVCPE6VHID45DZSFA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJWHE4TQMRYG4ZKM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJKTGN5XXIZLSL5UW64Y>
and Android
<https://github.com/notifications/mobile/android/B7CMJECVYWOZLSTOUWCP57L45DZSFA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJWHE4TQMRYG4ZKM4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLTGN5XXIZLSL5QW4ZDSN5UWI>.
Download it today!
You are receiving this because you commented.Message ID:
***@***.***>
|
|
Jimmy — one last error, you're basically there.
HTMLProofer is failing because you're linking to ./eip-8263.md but that
file doesn't exist in the repo yet (ERC-8263 is still in PR #1748, not
merged).
Fix: strip the relative link and leave it as plain text.
Change:
[ERC-8263](./eip-8263.md)
To:
ERC-8263
This is consistent with what you and Vincent already agreed — the
cross-reference is deferred until ERC-8263 v0.3 lands. Just remove the link
for now.
That's it. CI should go green after this push.
…On Thu, May 28, 2026 at 8:13 PM github-actions[bot] < ***@***.***> wrote:
*github-actions[bot]* left a comment (ethereum/ERCs#1771)
<#1771 (comment)>
The commit 6017635
<6017635>
(as a parent of ba1028d
<ba1028d>)
contains errors.
Please inspect the Run Summary
<https://github.com/ethereum/ercs/1771/files> for details.
—
Reply to this email directly, view it on GitHub
<#1771?email_source=notifications&email_token=B7CMJECEZTHDKAA5OPFBCWL45D53ZA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJXGAYTEMJRHA42M4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#issuecomment-4570121189>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/B7CMJEBCILLZVYM467OQEBT45D53ZAVCNFSM6AAAAACZNI2HKCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DKNZQGEZDCMJYHE>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/B7CMJECOR2UZWRWHWZSWXED45D53ZA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJXGAYTEMJRHA42M4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJKTGN5XXIZLSL5UW64Y>
and Android
<https://github.com/notifications/mobile/android/B7CMJECKARIPW62UNYNZQYT45D53ZA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTINJXGAYTEMJRHA42M4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLTGN5XXIZLSL5QW4ZDSN5UWI>.
Download it today!
You are receiving this because you commented.Message ID:
***@***.***>
|
|
The commit b37acd7 (as a parent of 2b2037d) contains errors. |
…dings - Remove ERC-8263 number pattern from On-Chain Proof Anchoring section to resolve eipw markdown-link-first conflict with HTMLProofer (ERC-8263 PR ethereum#1748 not yet merged; cross-reference deferred to v0.2) - Rename Rationale subsections to Primitive/Design/Query/Result pattern for symmetric coverage framing
|
@damonzwicker all check passed |
|
@abcoathup Hi editor, the ERC draft is fully prepared and ready for the official review and merging process. Thank you for your assistance with the next steps—your support is much appreciated! |
ERC-8274 v0.1 — Initial draft
This PR introduces ERC-8274, defining two minimal abstract interfaces for on-chain AI inference proof verification.
What this ERC defines
IProofVerifier— implemented by proof backends (zkML, opML, TEE, oracle, multisig). Exposes a uniform stateless entry point:metadatacarries backend-specific context (model identifier, agent ID, signing registry, etc.).proofcarries the cryptographic material (ZK proof, EIP-712 signature, TEE attestation, multisig aggregate).proofProfile()returns a collision-resistant identifier SHOULD derived fromkeccak256(abi.encodePacked(name(), version())), with implementations MAY including additional factors (e.g. a circuit commitment hash) for finer-grained collision resistance.IVerificationMethod— implemented by consuming contracts to declare which verifier they use and emitVerifierUpdatedon any change.Key design decisions
recompute → compare → confirm inclusionprimitive satisfied by all five paradigms.verify()does not guarantee input trustworthiness. Consumers that require it are RECOMMENDED to adopt the WYRIWE three-commitment scheme (TMerlini/wyriwe) alongsideverify().verify()provides no temporal guarantee. Consumers that require proof binding are RECOMMENDED to verify an ERC-8263 anchor alongsideverify().Reference implementations included
SP1InferenceVerifier) — decodesprogramVKeyandpublicValuesfrommetadata;proofProfile()includesVERIFIER_HASHto distinguish across SP1 verifier versions.MultisigInferenceVerifier) — EIP-712InferenceAttestationover(inputHash, outputHash, registry, timestamp); proof is concatenated 65-byte signatures; passes when valid signature count reachesTHRESHOLD. Derived from TMerlini's BountySettlement proof-of-concept (https://gist.github.com/TMerlini/bf3abd30c332cccb257d0e5bdff1ff95).ProofEvaluatorimplementsIVerificationMethodand gatesACP.complete()/ACP.reject()onverify()result.agentIdfrommetadataasbytes32(uint256(erc8004AgentId))and resolves viaIErc8004IdentityRegistry.getAgentWallet().Pre-submission alignment
recompute → compare → confirm inclusionframing are applied with his input from the Ethereum Magicians thread.Out of scope (deferred)
Discussion
Ethereum Magicians thread: https://ethereum-magicians.org/t/draft-erc-universal-ai-inference-verification-registry/28083