목록 보기
ERC20, 165, 721 살펴보기
백엔드

ERC20, 165, 721 살펴보기

엘리시아
엘리시아
2021년 5월 20일

두줄요약

OpenZeppelin 코드 관점에서 ERC20·ERC165·ERC721의 구조와 확장 기능을 살펴봤습니다. ERC20 유실 위험과 ERC721 수신 검증, 전송 단위 제약을 설명합니다.

구조와 흐름

  • ERC20의 주소별 잔액 매핑과 transfer 기반 토큰 이동 구조
  • OpenZeppelin ERC20 확장 기능과 _beforeTokenTransfer 훅을 통한 기능 추가
  • ERC165 인터페이스 식별·검증과 ERC721의 수신 검증 결합

선택 이유

  • ERC20Snapshot·Pausable·Burnable·Capped를 통한 스냅샷, 일시 중지, 소각, 발행량 제한 지원
  • ERC165Checker를 통한 대상 컨트랙트의 인터페이스 구현 여부 확인
  • ERC721의 token ID·URI 기반 고유 자산 소유권 표현

장단점

  • ERC20의 단순성과 범용성, 수신 컨트랙트 검증 부재로 인한 토큰 유실 위험
  • ERC721 safeTransferFrom·safeMint의 Receiver 인터페이스 검증과 유실 방지
  • ERC721의 트랜잭션당 단일 NFT 전송 제약과 ERC1155 등장 배경

주의할 점

  • ERC20을 처리할 인터페이스가 없는 컨트랙트 주소로 전송 시 토큰 잠금 가능성
  • ERC721 수신 컨트랙트의 Receiver 인터페이스 미구현 시 전송 트랜잭션 revert
  • ERC721 인터페이스 ID 등록과 ERC165 기반 호환성 확인 필요

다음 읽기

#OpenZeppelin 주제를 이어서 읽기

Openzeppelin & Compound Governance Part 2

OpenZeppelin의 ERC20Votes와 Governor 모듈로 온체인 거버넌스를 구성하는 방식을 소개했습니다. 위임·정족수·타임락 설정과 Wizard 기반 컨트랙트 생성을 설명합니다.

엘리시아
엘리시아
아키텍처
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...