I would propose that another EIP for the verifier be implemented too. This EIP hides two standards.
- The interface for a zkml erc721 contract
- The interface for the verifier contract
Making a generic verifier contract specification might be valuable as similar computations might be used in other applications beyond the ERC721 extension.
Just my two cents. I think we have three major components here:
- Verifier that gates minting NFTs
- AI model inference proof via textual data
- ERC-721 extension which creates hard dependency to the parent model which produced the child - result of inference
I think 1 is a general zkp verifier code so I believe just a function serves its purpose. 3 is the point of this EIP. However 2 can be very generic which may encompass cover all model inferences and AIGC NFT covers text-to-image generation pattern which is a subset of a generic model inference. I feel like we do need a separate the model inference to new EIP and this EIP should use the subset of generic model inference verifier contract (in this case, text-to-image generation).
I am not an expert in best practices of solidity and ERC standards, though I am thinking purely in principles of separation of concerns. I’d be happy to hear about your thoughts.