ERC-4626이 나오기 전, 이더리움의 수익 볼트는 저마다 다른 사투리를 썼습니다. 어떤 볼트는 함수 이름을 이렇게, 다른 볼트는 저렇게 지었고, 지분 가치를 계산하는 방식도 제각각이었습니다. 이 볼트들을 지원하려는 대출 시장이나 애그리게이터는 볼트마다 새 코드를 짜고 감사를 받아야 했습니다. 2022년에 확정된 ERC-4626은 볼트들에게 공통 언어를 주었습니다.
표준이 정의하는 것
ERC-4626 볼트는 달러 토큰 같은 기초 자산 하나를 보유하고, 그 자체로 ERC-20 토큰인 지분을 발행합니다. 표준은 모든 볼트가 갖춰야 할 함수를 정해 둡니다.
- deposit과 mint: 자산을 넣고 지분을 받습니다
- withdraw와 redeem: 지분을 소각하고 자산을 꺼냅니다
- totalAssets: 볼트가 보유하거나 받을 권리가 있는 모든 자산을 보고합니다
- convertToShares와 convertToAssets: 현재 비율로 지분과 자산을 서로 환산합니다
- preview 계열과 max 계열 함수: 거래를 보내기 전에 그 거래가 어떤 결과를 낳는지, 얼마까지 가능한지 보여 줍니다
지분 가치가 커지는 방식
교환 비율은 총자산을 총지분으로 나눈 값입니다. 어떤 볼트가 달러 토큰 1,000,000개를 보유하고 지분 1,000,000개를 발행했다면, 지분 하나의 가치는 토큰 하나입니다. 볼트의 전략이 토큰 20,000개를 벌었다고 해 보겠습니다. 지분 수는 그대로인데 총자산은 1,020,000개로 늘어나므로, 이제 지분 하나는 토큰 1.02개의 가치를 가집니다. 새로 토큰 1,020개를 넣는 사람은 지분 1,000개를 받습니다. 누구의 지분 잔고도 바뀌지 않았지만, 수익이 나기 전부터 지분을 보유한 사람은 모두 이득을 봅니다. 대부분의 볼트 토큰이 쓰는 논리베이스 방식이 바로 이것입니다.
표준이 중요한 이유
표준을 따르는 볼트는 모두 같은 질문에 같은 방식으로 답하기 때문에, 한 번의 연동으로 모든 볼트를 지원할 수 있습니다. 대출 시장은 convertToAssets를 읽어 볼트 지분을 담보로 받을 수 있고, 수익 토큰화 프로토콜은 지분을 원금 부분과 수익 부분으로 나눌 수 있으며, 지갑은 보유자의 가치를 기초 자산 기준으로 보여 줄 수 있습니다. 이것이 실제로 작동하는 컴포저빌리티입니다. 표준 하나가 한 상품을 다른 상품의 구성 요소로 바꿔 놓습니다. 많은 수익형 달러 토큰이 이 표준 위에 만들어져 있습니다.
위험과 한계
표준 인터페이스는 볼트가 자산으로 무엇을 하는지에 대해서는 아무것도 말해 주지 않습니다. 지갑에서는 똑같아 보이는 ERC-4626 볼트 두 개가 전혀 다른 위험을 안고 있을 수 있습니다. 알려진 함정은 다음과 같습니다.
- 지분 가격 조작. 새로 만들어져 거의 비어 있는 볼트에서는 공격자가 자산을 기부해 지분 가격을 부풀리고, 다음 사용자의 지분이 반올림으로 거의 0이 되게 만들 수 있습니다. 이른바 인플레이션 공격입니다. 신중한 볼트는 가상 지분이나 초기 시드 자금으로 이를 막습니다.
- 반올림. 표준은 볼트에 유리한 쪽으로 반올림하도록 요구합니다. 기존 보유자를 보호하지만, 연동하는 쪽에서는 예상하지 못한 결과가 나올 수 있습니다.
- 지분 가치를 가격으로 읽는 문제. 한 트랜잭션 안에서 볼트의 총자산을 움직일 수 있다면, convertToAssets를 그대로 믿는 대출 시장은 공격당할 수 있습니다. 견고한 오라클을 쓰는 편이 더 안전합니다.
- 출금 한도. 볼트는 출금 규모를 제한하거나 늦출 수 있으며, max 계열 함수가 그 한도를 알려 줍니다.
볼트 코드에 대한 감사는 인터페이스 준수 여부보다 더 많은 것을 알려 줍니다. 둘 다 확인하고, 볼트가 실제로 무엇을 보유하고 있는지도 읽어 보십시오.
자주 묻는 질문
ERC-20과 ERC-4626은 무엇이 다릅니까?
ERC-20은 대체 가능한 토큰의 기본 표준으로, 잔고와 전송을 다룹니다. ERC-4626은 그 위에 볼트를 위한 기능을 얹은 표준입니다. 지분은 ERC-20 토큰이며, 표준은 여기에 자산을 넣고 꺼내고 지분과 자산을 서로 환산하는 함수를 더합니다.
ERC-4626 볼트에서 수익은 어떻게 나타납니까?
교환 비율로 나타납니다. 볼트가 수익을 내면 지분 수는 그대로인 채 총자산이 늘어나므로, 지분 하나가 더 많은 기초 자산으로 환산됩니다. 내 지분 잔고는 바뀌지 않습니다.
ERC-4626을 따르면 볼트가 안전합니까?
아닙니다. ERC-4626이 표준화하는 것은 인터페이스이지, 전략이나 코드의 품질이 아닙니다. 표준을 따르는 볼트 두 개가 전혀 다른 위험을 안고 있을 수 있으므로, 전략, 감사, 그리고 지분 가격 조작에 대한 볼트의 방어 장치는 여전히 따로 확인해야 합니다.
관련 용어
볼트 토큰
볼트 토큰은 스마트 컨트랙트가 운용하는 자산 풀에 대한 지분입니다. 볼트가 수익을 내면 보유자의 잔고는 그대로인 채 지분 하나가 나타내는 기초 자산이 늘어나며, 그래서 다른 프로토콜이 보유하고 추적하기 쉽습니다.
디파이 컴포저빌리티
컴포저빌리티(조합성)는 디파이 프로토콜이 레고 블록처럼 서로 맞물리는 성질로, 한 프로토콜의 토큰이 누구의 허락 없이도 다른 프로토콜에서 담보, 유동성, 수익원으로 쓰일 수 있다는 뜻입니다. 토큰의 쓰임새를 몇 배로 늘리지만, 프로토콜들의 위험도 서로 엮어 놓습니다.
수익형 달러 토큰
수익형 달러 토큰은 기초 전략의 수익을 보유자에게 돌려주는 달러 표시 토큰으로, 보통 시간이 지나며 토큰 가치가 커지는 방식을 씁니다. 수익은 국채, 대출, 트레이딩 전략 등에서 나올 수 있으며, 변동합니다.
수익 토큰화
수익 토큰화는 수익형 토큰을 두 부분으로 나눕니다. 정해진 만기에 기초 자산으로 교환할 수 있는 원금 토큰과, 그때까지 발생하는 변동 수익을 모으는 수익 토큰입니다. 둘을 거래하면 한쪽은 고정 수익률을 확보하고, 다른 쪽은 미래 수익을 떠안을 수 있습니다.
출처
- EIP-4626: Tokenized Vaultseips.ethereum.org
- ethereum.org: ERC-4626 tokenized vault standardethereum.org
- EIP-20: Token Standardeips.ethereum.org
Tori Finance (토리 파이낸스) 팀이 작성한 글이며, 투자 권유가 아닙니다. 수익은 변동하며 원금 손실이 발생할 수 있습니다.