ERC-4626 뜻, 예치한 USDC가 쉐어 토큰으로 보이는 이유
페이지 정보
본문
ERC-4626이라는 이름은 개발 표준처럼 보이지만, DeFi 예치 화면을 보는 사람에게는 꽤 실용적인 질문으로 다가옵니다. USDC를 넣었는데 잔고에는 다른 토큰이 생기고, 예치 수익률은 표시되지만 나중에 정확히 무엇을 돌려받는지는 한눈에 들어오지 않을 때가 있습니다. 이때 ERC-4626은 "이 vault가 예치 자산과 지분 토큰을 어떤 공통 방식으로 계산하겠다는 약속인가"를 보는 기준입니다.
핵심은 assets와 shares를 나눠 보는 것입니다. 내가 넣는 USDC 같은 원래 토큰은 asset이고, vault가 내게 발행하는 지분 토큰은 share입니다. share는 단순한 원금 보장 영수증이 아니라, vault가 관리하는 underlying asset 중 내 몫을 계산하는 단위에 가깝습니다.
vault가 나누는 두 단위
EIP-4626 공식 문서는 tokenized vault가 하나의 underlying EIP-20 토큰을 기준으로 shares를 나타내는 표준 API라고 설명합니다. 여기서 asset은 vault가 관리하고 예치·출금에 쓰는 원래 토큰이고, share는 vault의 토큰입니다. 지갑이나 앱에서 보이는 숫자가 둘 중 어느 쪽인지 모르면 예치 잔고를 쉽게 잘못 읽게 됩니다.
예를 들어 USDC를 vault에 넣는다고 해서, 화면에 계속 USDC 잔고만 남는 것은 아닙니다. vault는 내 예치분을 shares로 바꿔 줄 수 있습니다. 나중에 출금할 때도 "내가 shares를 얼마나 갖고 있는가"와 "그 shares가 지금 underlying asset으로 얼마나 바뀌는가"를 다시 계산해야 합니다.
이 차이를 모르고 APY만 보면, 예치 상품이 단순 예금처럼 느껴집니다. 하지만 ERC-4626에서 중요한 질문은 수익률 숫자 하나가 아닙니다. 내가 들고 있는 단위가 asset인지 share인지, share 가격이 어떻게 바뀌는지, 출금할 때 같은 단위로 돌아오는지부터 봐야 합니다.
deposit과 redeem 사이
ERC-4626에는 deposit, mint, withdraw, redeem처럼 예치와 출금을 표현하는 함수 이름이 정리되어 있습니다. deposit은 asset을 넣고 shares를 받는 흐름에 가깝고, redeem은 shares를 태워 underlying asset을 돌려받는 흐름에 가깝습니다. 이름은 기술적으로 보이지만, 독자가 확인할 구조는 단순합니다. 넣을 때의 단위와 뺄 때의 단위가 다릅니다.
OpenZeppelin의 ERC4626 문서는 vault에 assets를 넣으면 shares를 받고, 나중에 이 shares를 태워 underlying assets를 되찾는다고 설명합니다. 같은 vault라도 assets와 shares의 교환 비율은 달라질 수 있습니다. 그래서 "100 USDC를 넣었으니 언제나 100개 단위로 그대로 보인다"는 식으로 읽으면 안 됩니다.
예치 수익이 생기면 vault의 totalAssets가 늘 수 있고, 그러면 같은 shares가 가리키는 asset의 양도 달라질 수 있습니다. 반대로 수수료, 전략 손실, 출금 제한, slippage 조건이 있으면 기대한 숫자와 실제 결과가 어긋날 수 있습니다. ERC-4626은 이런 계산을 완전히 없애는 표준이 아니라, 서로 다른 vault가 비슷한 이름과 방식으로 계산을 드러내게 만드는 표준입니다.
preview 숫자의 역할
ERC-4626을 볼 때 convertToShares나 convertToAssets 같은 이름도 자주 나옵니다. 이 함수들은 asset을 shares로, shares를 asset으로 바꿨을 때의 기준 계산을 보여 줍니다. 다만 공식 문서는 convert 계열이 수수료나 특정 실행 조건을 모두 반영하는 숫자가 아니라는 점도 분리합니다.
그래서 예치나 출금 직전에는 previewDeposit, previewRedeem 같은 숫자가 더 가까운 힌트가 됩니다. EIP-4626은 previewDeposit이 현재 블록 조건에서 deposit을 실행했을 때 받을 shares에 가깝게, previewRedeem은 shares를 redeem했을 때 받을 assets에 가깝게 보여 주는 함수라고 정리합니다. 이 숫자는 "지금 넣거나 빼면 대략 어떤 단위가 오가는가"를 보는 데 쓰입니다.
다만 preview도 마법의 보장은 아닙니다. vault의 한도, 사용자의 승인 부족, 출금 제한, 실제 거래 시점의 조건, 수수료, slippage가 끼면 결과가 달라질 수 있습니다. 그래서 좋은 화면이라면 APY 옆에 deposit 가능 한도, redeem 가능 수량, 예상 shares, 예상 assets, 수수료나 지연 조건을 같이 보여 줘야 합니다.
APY보다 먼저 볼 것
StableEarning에서 디파이 예치 이율 변동을 볼 때도 같은 기준이 필요합니다. 같은 USDC라도 어디에 예치했는지, 어떤 vault shares를 받는지, 어떤 전략에서 수익이 나오는지에 따라 숫자가 움직입니다. ERC-4626은 그중에서도 "이 상품이 예치 자산과 지분 토큰을 어떻게 표현하는가"를 읽는 언어입니다.
이 말은 ERC-4626이라고 쓰여 있으면 안전하다는 뜻이 아닙니다. 표준은 인터페이스를 맞춰 줄 뿐, vault의 전략 위험, 관리자 권한, 수수료, 출금 지연, underlying asset 위험을 대신 없애 주지 않습니다. Aave 헬스팩터처럼 DeFi 화면의 숫자는 언제나 "무엇을 기준으로 계산한 숫자인가"를 함께 봐야 합니다.
예치 전에는 이렇게 묻는 편이 좋습니다.
- 내가 넣는 원래 자산은 무엇인가
- 내가 받는 토큰은 shares인가, 다른 영수증성 토큰인가
- previewDeposit은 얼마의 shares를 보여 주는가
- previewRedeem은 shares를 어떤 asset 수량으로 돌려주는가
- maxDeposit, maxWithdraw, maxRedeem 같은 한도나 일시 중단 조건이 있는가
- 수수료, slippage, 출금 대기 시간이 별도로 표시되는가
쉐어 토큰을 잔고로 읽을 때
ethereum.org의 ERC-4626 설명도 이 표준을 tokenized vault와 연결해 소개합니다. 독자 입장에서는 "vault shares가 내 지갑에 들어왔다"는 사실만으로 끝내지 않는 것이 중요합니다. 그 shares가 어떤 underlying asset을 가리키는지, 그 비율이 어떻게 계산되는지, redeem할 때 제한이 있는지를 봐야 합니다.
특히 수익형 vault에서는 share 수량이 그대로 있어도 share당 asset 가치가 바뀔 수 있습니다. 어떤 화면은 shares 수량을 보여 주고, 어떤 화면은 이를 asset 가치로 환산해 보여 줄 수 있습니다. 두 화면을 같은 잔고처럼 비교하면 수익이 늘었는지, 단위만 바뀐 것인지, 출금 가능 금액이 실제로 얼마인지 헷갈리게 됩니다.
그래서 ERC-4626 뜻은 "DeFi 예치 표준"이라는 한 줄보다, assets와 shares를 분리해서 읽는 습관으로 이해하는 편이 낫습니다. USDC를 넣었는데 쉐어 토큰이 보인다면, 그것은 단순히 이상한 토큰이 생긴 것이 아니라 vault가 내 몫을 계산하는 단위가 바뀐 것입니다. 다음 판단은 APY가 아니라 preview, 한도, 수수료, redeem 조건에서 시작해야 합니다.
StableEarning의 글과 데이터는 스테이블코인 금리, 스테이킹, RWA 수익률, 거래소 이용 정보를 이해하기 위한 참고 자료입니다. 수익률, 수수료, 입출금, 상품 제공 여부는 거래소와 발행사 정책, 네트워크 상태, 거주지와 계정 조건에 따라 달라질 수 있으며 원금 손실, 가격 변동, 출금 지연, 스마트컨트랙트와 커스터디 위험이 있을 수 있습니다. 이 글은 정보 제공용이며 특정 자산 매수, 예치, 스테이킹, 전송, 투자 실행을 권유하지 않습니다. 실제 실행 전에는 공식 공지와 본인 계정 조건을 다시 확인해야 합니다.