피드로 돌아가기
Dev.toSecurity
원문 읽기
ZK-Commitment 기반 소유권 은닉을 통한 Private NFT 마켓플레이스 구현
Building Private NFT Marketplaces on Midnight: Hidden Ownership, Anonymous Trading
AI 요약
Context
EVM 기반 NFT의 tokenId ↔ owner_address 매핑 구조로 인한 소유자 신원 및 자산 내역의 완전 노출 문제 발생. 공개 원장의 투명성이 고액 수집가의 프라이버시 침해와 경제적 프로파일링의 도구로 악용되는 한계 직면.
Technical Solution
- 소유권 모델의 반전: 공개 매핑 대신 hash(token_id, owner_pubkey, secret) 형태의 Commitment를 Merkle Tree에 저장하는 구조 설계
- ZK-Proof 기반 소유권 증명: Preimage를 공개하지 않고 Merkle Tree 내 특정 Commitment의 존재 여부만 증명하여 소유권 검증
- Nullifier 패턴 도입: 전송 시 기존 소유권 Commitment를 무효화하고 신규 Commitment를 생성하여 Double Spending 방지 및 거래 익명성 확보
- Circuit 기반 로열티 강제: 플랫폼 정책이 아닌 ZK-Circuit 내 로직으로 로열티 지급을 강제하여 우회 불가능한 보상 체계 구축
- Two-phase Handshake: Recipient Secret의 사전 공유를 통해 전송 완료 전 수신자의 소유권 획득을 보장하는 오프체인 협업 프로세스 적용
실천 포인트
1. 데이터의 '내용'보다 '소유 주체'의 은닉이 필요한 경우 Commitment 기반 설계 검토
2. ZK-Proof 도입 시 Proof Replay 방지를 위한 Nullifier 메커니즘 설계 여부 확인
3. 트랜잭션 규모에 따른 Merkle Tree Depth 산정 및 State 관리 오버헤드 분석
4. 비즈니스 규칙(로열티 등)을 코드 레벨이 아닌 Circuit 레벨에서 강제하는 방안 검토