[블록미디어] 암호화폐가 세상에 나온 후 다양한 분야에서 혁신이 실험되고 있습니다. 가상 세계와 실물 세계를 연결하려는 시도도 그 중 하나입니다. 블록미디어는 실물자산 토큰화 프로젝트인 엘리시아 리서치팀과 공동으로 기획 시리즈 기사를 준비했습니다.
엘리시아와 블록미디어는 이번 시리즈에서 가상자산 기술이 실물 자산을 어떻게 토큰화할 수 있는지 실제 사례와 제도적인 문제들을 점검해봤습니다. 오늘은 시리즈 아홉 번째로RWA 토큰(실물자산 토큰)과 EIP입니다. 시리즈 순서는 다음과 같습니다.
# RWA 토큰 시리즈
1. 실물자산 토큰이란 무엇인가?
2. 실물자산 토큰의 과제 : 법/세금, 오라클 이슈, 어떤 문제를 고려해야 하는가?
3. 실물자산 토큰 시나리오 및 주요 사례
4. RWA 토큰과 DAO
5. RWA 토큰(실물자산 토큰)과 NFT
6. RWA 토큰(실물자산 토큰)과 DeFi (1)
7. RWA 토큰(실물자산 토큰)과 DeFi (2)
8. RWA 토큰(실물자산 토큰)과 전통금융시장
9. RWA 토큰(실물자산 토큰)과 EIP
10. RWA 토큰(실물자산 토큰)과 투자자
[블록미디어 엘리시아] 이번 글에서는 RWA 토큰과 관련 있는 EIP들을 살펴봅니다. 그리고 이더리움 커뮤니티에서 RWA 토큰 표준이 어디까지 논의되었는지 확인할 수 있습니다. 구체적인 EIP들을 소개 전에, EIP가 무엇인지 살펴봅시다.
# EIP란? “이더리움 개선 제안” 프로세스 개선 내용을 서술한 제안서
EIP는 “Ethereum Improvement Proposal”의 약자로, 뜻을 그대로 번역하면 “이더리움 개선 제안”입니다. 이더리움 커뮤니티에서 새로 도입하고 싶은 프로세스나 기능이 있을 경우 간략한 기술적 내용들을 서술한 제안서입니다.
개선 제안에는 이더리움의 핵심기술, 스마트 컨트랙트 표준 등이 있습니다. 거래소에서 토큰을 출금할 때 볼 수 있는 “ERC-20”, NFT의 표준으로 제시되는 “ERC-721” 등도 모두 EIP입니다. 즉 EIP-20과 ERC-20은 같은 말입니다. 이 글에서는 모두 EIP로 통일해서 사용하겠습니다.
ERC와 EIP의 차이는 ERC는 EIP의 카테고리 중 하나라는 점입니다. 그렇다면 ERC는 무엇일까요? ERC를 이해하기 위해선, RFC에 대한 이해가 필요합니다.
ERC는 Ethereum RFC이기 때문이죠. RFC는 “Request For comments”로, 의견을 요청하는 문서입니다. 인터넷 초창기에 인터넷을 공부하던 미국의 대학원생들이 토론한 것들에 대해 의견을 요청하는 의미로 RFC 문서를 작성했었고, 이때의 표현이 지금까지 사용되고 있습니다.
RFC 문서 중에 인정받은 것들은 표준으로 정의되어 국제 인터넷 표준화 기구에서 관리합니다. 우리가 인터넷 주소에서 흔히 볼 수 있는 “http”도 RFC 중 하나입니다. ERC는 이더리움에서 관리되는 기술 표준으로 볼 수 있습니다.
이 글에서는 기본적인 토큰의 EIP로부터 시작해서 RWA 토큰을 나타낼 수 있는 복잡한 EIP까지 EIP 개념을 확장해가면서 다양한 EIP 사례를 살펴보겠습니다.
# 가장 기본적인 토큰 표준들
토큰 구현을 이해하기 위해서는 그 표준을 이해해야 합니다. RWA 토큰 구현 시 기본적으로 이해가 필요한 토큰 표준들과, 가스비 또는 활용도를 개선하는 EIP들을 살펴봅시다.
EIP-20: 태초의 토큰 표준
가장 기본적인 EIP 표준은 토큰 표준인 EIP-20입니다. 우리가 쉽게 알고 있는 토큰을 어떻게 관리하고, 전송하는지에 대한 표준을 가지고 있습니다. 그리고 토큰의 상태와 행동에 대한 함수가 정의되어 있습니다.
- 토큰 상태: 총 발행량(totalSupply), 계정이 소유한 토큰 보유량(balanceOf)
- 행동: 전송 승인(approve), 토큰의 전송(transferFrom)
EIP-721: NFT의 시초
EIP-721, EIP-1155는 우리에게 친숙한 NFT를 다루는 표준입니다. NFT를 나타내는 만큼 각 토큰은 더 이상 분리가 불가능합니다. EIP-20과의 차이는 토큰의 전송을 나타내는 transferFrom 함수를 보면 쉽게 비교할 수 있습니다.
transfer를 위해서 EIP-20에서는 _value 를 필요로 합니다. 전송하는 토큰의 양에 대한 정보만을 필요로 하기 때문입니다. 반면 EIP-721에서는 토큰의 양이 아니라 _tokenId 를 인자로 받습니다. NFT는 고유한 토큰이기 때문에 이때 토큰의 양을 의미하는 value는 1이라고 생각하면 됩니다.
EIP-1155 : 여러 개로 나눌 수 있는 NFT
NFT의 활용이 늘어남에 따라 EIP-20, EIP-721만으로는 여러 가지 상황을 표현하는 데 있어서 그 한계가 나타났습니다.
예를 들어 게임에서 흔히 접할 수 있는 ‘체력 물약’ 아이템을 기존 EIP로 표현하려고 하는 경우를 생각해 보겠습니다. 체력 물약 100개를 위해선 100개 만큼의 EIP-721 토큰을 발행해야 하며, 50개의 물약을 거래할 경우 50번의 트랜잭션 호출이 필요합니다.
EIP-1155는 이를 개선한 표준입니다. 1155에서는 tokenId 에 대해 1개가 아닌 복수의 amount 값을 가질 수 있습니다. ‘체력 물약 100개, 마력 물약 50개’ 와 같은 상황을 표현한다고 했을 때 { id: ‘체력 물약’, value: 100 }, { id: ‘마력 물약’, value: 50 } 와 같이 효율적으로 표현 가능합니다. transferFrom 함수는 다음과 같습니다.
EIP-1155는 또한 batchTransfer 함수를 제공합니다. batchTransfer 는 단 하나의 트랜잭션으로 다수의 수신자에게 여러 개의 데이터를 보낼 수 있습니다. 기존 EIP-721을 이용하면 아이템 개수만큼 필요했던 트랜잭션이 단 1번의 호출로 가능합니다. 이를 통해 저장 공간, 처리용량을 크게 개선할 수 있습니다.
엘리시아에서는 부동산을 토큰화하기 위해 EIP-1155를 사용합니다. 위에서 소개한 것과 같이 EIP-1155를 이용하면 NFT의 형태를 유지하면서도 각 NFT가 여러 개의 수량을 가질 수 있기 때문입니다.
일반적으로 엘리시아에서는 상품이 되는 부동산을 토큰으로 만들고 약 100개의 수량을 갖도록 설정합니다. 그리고 투자자들에게 100개의 수량을 판매하여 부동산을 유동화합니다. 구체적인 컨트랙트의 내용은 BSC scan 에서 확인하실 수 있습니다.
EIP-721A: 가스비가 개선된 NFT
EIP-721은 민팅하는 개수에 비례해서 해당 트랜잭션이 사용하는 가스비가 증가합니다.
CNET에 따르면 올해 5월 BAYC로 유명한 유가랩스 메타버스 게임, Otherside 토지 NFT 민팅에 사람들이 대거 몰리면서 1.6 ETH를 내고도 트랜잭션이 실패하는 큰 혼선이 있었습니다. 이러한 민팅 가스비 문제 해결을 위해 아즈키팀은 EIP-721A를 내놓습니다.
EIP-721A는 한 트랜잭션에서 여러 개를 민팅하더라도 유저별 balance와 토큰별 소유주는 한 번만 업데이트해 가스비가 1개를 민팅할 때에 비해 크게 증가하지 않도록 최적화합니다.
소유주 정보를 담는 mapping(uint256 => uint256) private _packedOwnerships 의 변화를 따라가며 최적화 방법을 살펴봅시다.
- 맨 처음 EIP-721A 컨트랙트를 배포한 후에는 다음 발행될 토큰 아이디를 나타내는 _currentIndex = 0이고 _packedOwnership 매핑에 기록된 모든 owner 주소는 0입니다.
- _mint(userA, 1) 을 실행해서 userA가 1개를 민팅합니다. _currentIndex는 1 증가하고 토큰 0의 owner 주소는 userA로 기록됩니다.
- _mint(userB, 3) 을 실행해서 userB가 3개를 민팅합니다. _packedOwnerships 에는 첫번째 토큰, 즉 1번에만 userB의 주소를 기록해둡니다.
이제 ownerOf(2) 를 통해 2번 토큰의 주인을 조회하면 토큰 2를 시작으로 해서 0x0이 아닌 주소가 나올 때까지 왼쪽으로 가며 userB의 주소를 얻어냅니다. 모든 토큰에 소유주 주소를 기록하지 않더라도 소유주를 알아낼 수 있는 것입니다.
대신, 토큰 전송 시에는 경우에 따라 2배의 가스비가 필요할 수 있습니다. 예를 들어 _transferFrom(userB, userC, 3) 을 통해 userB가 갖고있던 세번째(2번) 토큰을 userC에게 전송하는 경우를 봅시다.
세번째(2번) 토큰에 userC의 주소를 기록하고 네번째(3번) 토큰에 원래 주인인 userB의 주소도 기록해줘야 합니다. 그렇지 않으면 앞서 보았던 ownerOf 함수의 구현에 따라 왼쪽 토큰 중 가장 첫 번째로 0x0이 아닌 userC가 주인으로 반환될 것입니다.
# RWA 토큰 관련 EIP
실물자산을 토큰으로 만들기 위해서는 단순히 EIP-20이나 EIP-721을 사용하기에는 부족할 수 있습니다.
토큰의 소유와 실물자산의 소유가 연동되어야 하고, 실물자산의 상태를 단순히 소유의 개념으로만 표시할 수 없는 경우도 있으며, EIP-1155와 같은 방식으로 소유권이 여러 개로 나뉘었을 때 발생할 수 있는 문제 등을 고려해야 하기 때문입니다.
EIP-5791: 칩과 연결된 NFT
토큰의 소유와 실물자산의 소유 연동에 관한 표준 중 하나는 EIP-5791 물리적 기반 토큰(Phsycal Backed Token, PBT)입니다.
PBT는 [엘리시아의 블록체인 이야기] RWA 토큰(실물자산 토큰)과 NFT에서 이미 다룬 주제로, 물건에 연결된 칩을 스캔해야만 소유권을 변경할 수 있는 특징을 가지고 있습니다.
EIP-5791 제안에서 칩은 4가지 요구사항이 있습니다.
- 칩은 안전하게 ECDSA secp256k1 비대칭 키를 저장 및 생성할 수 있어야 합니다. 이 알고리즘은 비트코인과 이더리움에서 사용하는 암호 알고리즘입니다.
- 칩은 미리 생성된 비대칭 키의 비밀키로 서명할 수 있어야 합니다.
- 칩은 공개키를 노출해야 합니다.
- 비밀키는 칩에서 추출될 수 없어야 합니다.
위 4가지 요구사항을 가지고 있는 칩은 각 EIP-721 기반 NFT 1개에 대응하게 됩니다. 이 칩을 사용하여 전송할 때 transferFrom 가 아닌 transferTokenWithChip 을 이용하게 됩니다.
이 함수에 필요한 인자는 스캔해서 얻을 수 있는 칩의 서명 값인 signatureFromChip 과 서명 값의 남용을 막기 위한 blockNumberUsedInSig 가 있습니다.
칩으로 서명할 때 현재 블록의 해시 값을 이용하는데, 이 해시 값에 해당하는 블록 번호가 blockNumberUsedInSig입니다. 이는 스캔 후 너무 늦게 트랜잭션이 생성되거나, 다른 블록체인의 블록을 참조하는 것을 방지합니다.
EIP-4519 : IOT와 연결된 NFT
EIP-5791과 유사하게 인증할 수 있는 수단이 실물자산에 연결된 경우입니다. EIP-5791은 소유권 연동에 초점을 맞추었다면, EIP-4519는 인증 후 Operating mode 라는 상태를 정의하여 기기 작동에 초점을 맞추었습니다.
EIP-4519에서는 권한이 소유자와 사용자로 나뉩니다. NFT를 처음 만들 때 소유자 인증이 필요하며, 서명을 통해 소유자 인증을 마치면 engagedWithOwner 의 상태가 됩니다. 이때부터 사용자가 인증하거나, 소유자가 소유권을 변경할 수 있습니다.
사용자가 인증을 하면, engagedWithUser 의 상태가 되며 NFT와 연결된 기기를 이용할 수 있게 됩니다. 단순히 소유권 인증뿐 아니라, 인증을 통해 NFT에 연결된 기기의 작동을 고려한 점이 흥미롭습니다.
이 기술을 활용하면 스마트 컨트랙트를 이용한 자판기가 만들어지고, 이더스캔에서 자판기 매출을 확인할 수 있는 날이 올 수도 있습니다.
EIP-2615: 부동산 담보 대출 또는 임대에 관한 표준
부동산 담보 대출 또는 임대에 관한 NFT 표준에 대한 논의로는 EIP-2615가 있습니다. 현재는 오랜 시간 활동이 없어 리뷰가 중단되었습니다.
이 제안의 기본적인 아이디어는 전송 금지 상태인 NFT 락업 상태의 도입입니다. 부동산에 해당하는 NFT로 담보대출을 하거나, 특정 사용자에게 임대해 줄 경우 NFT 소유자는 NFT를 다른 이에게 전송할 수 없게 됩니다.
담보대출 시에는 대출이 상환될 때, 임대 시에는 임대 계약이 끝날 때 NFT 락업이 끝나게 됩니다. EIP-721을 기반으로 락업을 이용하여 대출 상태와 임대 상태를 정의했다는 것은 인상적이나, NFT의 소유가 실제 부동산의 소유와 이어지는 연결 지점에 관한 논의는 포함하지 않아 아쉬운 제안이었습니다.
EIP-5505 : EIP-1155 소유권 분쟁
EIP-1155는 NFT가 여러 개로 나눌 수 있는 구조이므로, 하나의 token ID에 대해 소유권 문제가 발생할 수 있습니다.
예를 들어, N 개의 토큰이 발행되었을 때 N 개의 EIP-1155 토큰 모두를 가져야만 소유권을 주장할 수 있습니다. 이에 소량만을 가지고 있는 사람들이 더 비싸게 판매하거나, 몇 개의 조각이 해킹으로 인해 복구가 불가능할 때 소유권을 완전히 회복할 수 없는 등의 문제가 있습니다.
이런 문제를 해결하기 위해서 EIP-5505에서는 일정 비율 이상 소유한 사람이 강제로 판매하여 판매금액을 나눌 수 있도록 표준을 제안했습니다. 이 일정 비율은 NFT 프로젝트의 거버넌스나 선출된 위원회가 정하도록 제안했습니다.
# 이 글을 마치며
이더리움 상품 개발에 있어서 EIP는 일종의 규범 역할을 합니다. 상품이 특정 EIP를 따르기로 결정하면 그 EIP 내의 규칙을 준수하기 때문입니다.
그렇기에 상품을 잘 표현할 수 있는 적절한 EIP를 선택하는 것은 매우 중요합니다. 상품 개발에 앞서서 EIP가 무엇인지, 그리고 지금 개발하고 있는 상품에 어울리는 적절한 EIP가 무엇인지에 대해 고민해야 합니다.
한편, EIP는 그 이름에서 알 수 있듯 완성된 최종 답안이 아닙니다. 앞서 언급한 많은 사례에서 보았듯이 EIP는 개선, 제안을 통해 필드에서 필요한 형태로 발전합니다. 그렇기 때문에 적절한 EIP를 선택하기 위해 EIP에 관심을 두고, 변화하는 EIP를 지속 모니터링할 필요가 있습니다.
다음 글에서는 RWA 토큰에 대한 전반적인 내용을 정리하고 투자자로서 어떤 점을 유의해야 할지에 대해서 알아보려고 합니다. 마지막까지 많은 관심 및 피드백 부탁드립니다. 감사합니다.
# 엘리시아(ELYSIA) 리서치팀
엘리시아 리서치팀은 실물자산 토큰화를 주제로 2018년부터 연구를 계속해오고 있다.
엘리시아는 실물자산을 토큰으로 만들어 블록체인과 연결하는 프로젝트이며, 엘리파이는 실물자산을 기반으로 한 디파이 프로토콜이다.
엘리시아 프로젝트는 서울대학교 출신의 개발자들이 모여 시작되었다. 한국, 미국 부동산 시장을 중심으로 빠르게 성장, 현재는 빗썸, 고팍스, MEXC 등 글로벌 거래소에 상장한 대표적인 실물자산 토큰화 프로젝트가 되었다.