🔍 AI Self-Audit Report

기와장터 (GIWA Village) — AI 페어 개발 워크플로우의 자체 감사 기록
← 기술 문서 Verified 컨트랙트 📓 개발일지

1. 방법론 — "개발한 AI가 감사자 모자를 쓴다"

이 프로젝트는 1인 + AI 에이전트 워크플로우로 개발된다. 기능 구현이 한 단락 끝날 때마다 같은 AI가 감사자 역할로 전환해 컨트랙트·클라이언트를 다시 읽고, 발견한 결함을 수정 → 재배포 → 소스 검증 → E2E 재통과까지 한 사이클로 닫는다. 아래는 실제로 발견·수정된 결함의 전체 기록이다 — 발견 못한 척하지 않고, 수정 커밋과 함께 공개한다.

2. 발견 및 수정 내역

심각도결함영향조치
높음 ERC-1155 스펙 위반 — supportsInterface가 1155를 주장하는데 balanceOfBatch/safeBatchTransferFrom 부재 지갑·인덱서가 쿠폰 토큰 연동 시 오동작 가능 배치 함수 복원 후 재배포·검증
높음 던전 settleRun 권한 결함 — 회차 입장자 검증 없음 길드원 누구나 타인의 원정 회차를 대신 정산 가능 입장자 기록(_runner)·본인 검증 추가
높음 클라이언트 nonce 경합 — 프레즌스 비컨과 사용자 tx(구매·입장·정산)가 같은 지갑에서 병렬 전송 사용자 tx가 간헐적으로 소실 (E2E에서 재입장 tx 소실 재현: 8건 중 2건 실패) 지갑 쓰기 직렬화 큐(queueTx) 도입 → E2E 8/8 재통과
중간 결정론적 문 결과의 오프라인 탐색 가능성 — 시드·회차가 확정되면 숙련 사용자는 무함정 경로를 미리 계산할 수 있다 던전 리스크(push-your-luck)가 스크립트 사용자에게 무력화 구조적 한계로 판단, 컨트랙트 주석·로드맵에 명시 (메인넷 수준에선 VRF 또는 커밋-리빌 필요)
낮음 비컨 좌표 무검증 — 악의적 비컨이 아바타를 월드 밖에 렌더 가능 시각적 교란 (자금 영향 없음) 수신 시 월드 반경·속도 클램프
회귀 자체 도입한 JSON-RPC 배칭이 GIWA 공개 RPC에서 403 거부됨 (실측) 배치에 묶인 모든 읽기가 동반 실패 배칭 롤백 + 금지 주석, 레이트리밋은 폴링 백오프로 대응

3. 검증 방법

4. 알려진 한계 (미해결 공개)

정직한 고지: 이 문서는 개발에 사용된 AI가 수행한 자체 감사 기록이며, 독립적인 외부 보안 감사를 대체하지 않는다. 메인넷 배포 전에는 외부 감사가 필요하다. 다만 "AI가 개발하고 AI가 감사하며 그 기록을 전부 공개한다"는 워크플로우 자체가 이 프로젝트의 개발 방법론이다.