ERC-7007 검증 가능한 AI 생성 콘텐츠 토큰 (Verifiable AI-Generated Content Token)

Final · NFT·멀티토큰 · 2023-05-10 작성

AI가 만든 그림이나 영상 같은 콘텐츠가 특정 모델과 특정 입력(프롬프트)으로 생성됐다는 사실을 블록체인 위에서 검증할 수 있게 하는 ERC-721 확장 표준입니다.

왜 필요한가

AI가 만든 콘텐츠를 NFT로 팔 때, 그 콘텐츠가 정말 주장하는 모델과 프롬프트로 생성됐는지 확인할 방법이 없으면 문제가 생깁니다. 누구나 비슷한 결과물을 들고 와서 자기 것이라고 주장할 여지가 있고, 같은 프롬프트로 만든 콘텐츠가 중복으로 발행될 수도 있습니다. 또 AI 모델을 만든 저자는 모델을 공개하는 순간 아무나 가져다 쓸 수 있어 금전적 가치가 사라질까 걱정하게 됩니다. 이 표준은 영지식 머신러닝(zkML)이나 낙관적 머신러닝(opML) 기법으로 콘텐츠의 생성 과정을 온체인에서 검증하게 해, 모든 프롬프트와 결과물의 짝이 안전하게 확인되도록 합니다. 원문은 이를 통해 AI 생성 콘텐츠 NFT 판매에 수익 공유 구조를 만들 수 있고, 모델 저자가 가치 하락 걱정 없이 모델을 공유할 수 있게 된다고 설명합니다.

구현해야 하는 것

심층 설명

필수 인터페이스와 tokenId 설계

규격을 따르는 컨트랙트는 IERC7007, ERC-721, ERC-165 인터페이스를 모두 구현해야 합니다(MUST). IERC7007의 ERC-165 식별자는 0x702c55a6입니다. 이 표준에서 tokenId는 프롬프트로 색인되며, 구체적으로는 해당 프롬프트의 해시를 tokenId로 씁니다. 같은 프롬프트는 같은 모델 시드에서 같은 콘텐츠에 대응하므로, 이 설계로 같은 프롬프트가 두 번 발행되는 일을 막고 각 NFT의 고유성을 지킵니다.

addAigcData의 동작과 zkML·opML 차이

addAigcData는 프롬프트와 aigcData를 tokenId에 묶는 함수로, 다양한 발행(민팅) 구현을 허용하도록 인자를 일반적으로 설계했습니다. zkML에서는 addAigcData 시점에 verify가 true를 돌려주는지 확인해야 합니다. 반면 opML에서는 확정(finalization) 전에 호출할 수 있습니다. 원문은 그 이유로, 증명 생성이 어려운 zkML은 보통 단순한 모델 추론을 다뤄 수용 가능한 시간 안에 증명을 낼 수 있지만, opML은 큰 모델 추론을 다루는 대신 비슷한 보안 수준을 얻기까지 확인 시간이 길어, 확정까지 발행을 미루는 것이 최선이 아닐 수 있다는 점을 듭니다.

verify의 의미와 반환 조건

verify는 aigcData의 올바름을 강제하는 인터페이스로, 가스 비용을 줄이기 위해 view 함수로 정의했습니다. zkML과 opML 모두에서 aigcData가 확정된 경우에만 true를 돌려줘야 합니다. zkML에서는 전달된 proof(영지식 증명)를 검증해야 하고, opML에서는 챌린지 기간이 끝났는지와 aigcData가 확정 이후 갱신된 최신 상태인지를 확인해야 합니다. opML에서는 proof가 비어 있을 수 있습니다.

열거 확장과 갱신 확장

두 확장은 모두 선택(OPTIONAL)입니다. 열거 확장 IERC7007Enumerable(ERC-165 식별자 0xfa1a557a)은 tokenId와 프롬프트 사이의 전체 매핑을 공개해 탐색할 수 있게 합니다. 갱신 확장 IERC7007Updatable(식별자 0x3f37dce2)은 opML에서 챌린지 기간 동안 aigcData 내용이 바뀔 수 있는 경우를 위해 update 함수와 Update 이벤트를 제공합니다. 이름을 finalize가 아니라 update로 정한 이유는 실제로 챌린지가 성공하는 일이 드물기 때문으로, 모든 tokenId마다 호출하지 않아도 되어 가스를 아낄 수 있습니다.

메타데이터 JSON 스키마

참고용 메타데이터 스키마는 기존 NFT 메타데이터의 name, description, image에 더해 네 가지 필드를 정의합니다. prompt는 이 NFT를 생성한 프롬프트를, aigc_type은 image, video, audio 같은 콘텐츠 종류를, aigc_data는 생성된 자산을 가리키는 URI를, proof_type은 증명 방식이 validity(zkML)인지 fraud(opML)인지를 나타냅니다.

모델 공개와 커밋 검증 권장 사항

이 표준은 머신러닝 모델을 공개하는 단계 자체는 규정하지 않지만, 실제 addAigcData를 호출하기 전에 모델의 커밋(commitment)을 이더리움에 별도로 공개할 것을 권장합니다. 커밋 스키마의 선택은 AIGC NFT 프로젝트 발행 주체의 몫이며, verify 함수 구현 안에서 이 커밋을 확인해야 합니다. 표준은 ERC-721을 새 인터페이스로 확장하는 방식이므로 기존 ERC-721과 하위 호환됩니다.

쓸 때 주의할 점

ERC 원문 · ← ERCs