ERC-4626 토큰화된 볼트 표준
페이지 마지막 업데이트됨: 2025년 10월 21일
소개
ERC-4626은 수익을 내는 볼트의 기술적 매개변수를 최적화하고 통합하기 위한 표준입니다. 단일 기본 ERC-20 토큰의 지분을 나타내는 토큰화된 수익 볼트를 위한 표준 API를 제공합니다. ERC-4626은 또한 ERC-20을 활용하는 토큰화된 볼트를 위한 선택적 확장의 개요를 설명하며, 토큰 예치, 인출 및 잔액 조회를 위한 기본 기능을 제공합니다.
수익을 내는 볼트에서 ERC-4626의 역할
대출 시장, 애그리게이터 및 내재적으로 이자가 발생하는 토큰은 다양한 전략을 실행하여 사용자가 자신의 암호화폐 토큰에 대한 최고의 수익률을 찾을 수 있도록 돕습니다. 이러한 전략은 약간의 변형을 거쳐 수행되며, 이로 인해 오류가 발생하기 쉽거나 개발 리소스가 낭비될 수 있습니다.
수익을 내는 볼트에서 ERC-4626은 보다 일관되고 강력한 구현 패턴을 만들어 개발자의 전문적인 노력을 거의 들이지 않고도 통합 노력을 줄이고 다양한 애플리케이션에서 수익에 대한 액세스를 열어줄 것입니다.
ERC-4626 토큰은 EIP-4626 (opens in a new tab)에 완전히 설명되어 있습니다.
비동기 볼트 확장(ERC-7540)
ERC-4626은 한도까지의 원자적 예치 및 상환에 최적화되어 있습니다. 한도에 도달하면 새로운 예치나 상환을 제출할 수 없습니다. 이러한 제한은 볼트와 인터페이스하기 위한 전제 조건으로 비동기 작업 또는 지연이 있는 모든 스마트 계약 시스템(예: 실물 자산 프로토콜, 담보 부족 대출 프로토콜, 교차 체인 대출 프로토콜, 유동 스테이킹 토큰 또는 보험 안전 모듈)에서는 잘 작동하지 않습니다.
ERC-7540은 비동기 사용 사례를 위해 ERC-4626 볼트의 유용성을 확장합니다. 기존 볼트 인터페이스(deposit/withdraw/mint/redeem)는 비동기 요청을 처리하기 위해 완전히 활용됩니다.
ERC-7540 확장은 ERC-7540 (opens in a new tab)에 완전히 설명되어 있습니다.
다중 자산 볼트 확장(ERC-7575)
ERC-4626에서 지원하지 않는 한 가지 누락된 사용 사례는 유동성 공급자(LP) 토큰과 같이 여러 자산 또는 진입점을 가진 볼트입니다. 이들은 일반적으로 ERC-4626 자체가 ERC-20이어야 한다는 요구사항으로 인해 다루기 어렵거나 규정을 준수하지 않습니다.
ERC-7575는 ERC-4626 구현에서 ERC-20 토큰 구현을 외부화하여 다중 자산을 가진 볼트에 대한 지원을 추가합니다.
ERC-7575 확장은 ERC-7575 (opens in a new tab)에 완전히 설명되어 있습니다.
필수 구성 요소
이 페이지를 더 잘 이해하려면 먼저 토큰 표준 및 ERC-20에 대해 읽어보시는 것을 추천합니다.
ERC-4626 기능 및 특징:
메서드
자산
1function asset() public view returns (address assetTokenAddress)이 함수는 회계, 예치, 인출을 위해 볼트에 사용되는 기본 토큰의 주소를 반환합니다.
총자산
1function totalAssets() public view returns (uint256)이 함수는 볼트가 보유한 기본 자산의 총액을 반환합니다.
지분으로 전환
1function convertToShares(uint256 assets) public view returns (uint256 shares)이 함수는 제공된 assets의 양에 대해 볼트가 교환할 shares의 양을 반환합니다.
자산으로 전환
1function convertToAssets(uint256 shares) public view returns (uint256 assets)이 함수는 제공된 shares의 양에 대해 볼트가 교환할 assets의 양을 반환합니다.
최대 예치
1function maxDeposit(address receiver) public view returns (uint256 maxAssets)이 함수는 단일 deposit 호출에서 예치할 수 있는 기본 자산의 최대 금액을 반환하며, 지분은 receiver를 위해 발행됩니다.
예치 미리보기
1function previewDeposit(uint256 assets) public view returns (uint256 shares)이 함수를 통해 사용자는 현재 블록에서 자신의 예치가 미치는 영향을 시뮬레이션할 수 있습니다.
예치
1function deposit(uint256 assets, address receiver) public returns (uint256 shares)이 함수는 기본 토큰의 assets를 볼트에 예치하고 shares의 소유권을 receiver에게 부여합니다.
최대 발행
1function maxMint(address receiver) public view returns (uint256 maxShares)이 함수는 단일 mint 호출에서 발행할 수 있는 최대 지분 금액을 반환하며, 지분은 receiver를 위해 발행됩니다.
발행 미리보기
1function previewMint(uint256 shares) public view returns (uint256 assets)이 함수를 통해 사용자는 현재 블록에서 자신의 발행이 미치는 영향을 시뮬레이션할 수 있습니다.
발행
1function mint(uint256 shares, address receiver) public returns (uint256 assets)이 함수는 기본 토큰의 assets를 예치하여 receiver에게 정확히 shares만큼의 볼트 지분을 발행합니다.
최대 인출
1function maxWithdraw(address owner) public view returns (uint256 maxAssets)이 함수는 단일 withdraw 호출로 owner의 잔액에서 인출할 수 있는 기본 자산의 최대 금액을 반환합니다.
인출 미리보기
1function previewWithdraw(uint256 assets) public view returns (uint256 shares)이 함수를 통해 사용자는 현재 블록에서 자신의 인출이 미치는 영향을 시뮬레이션할 수 있습니다.
인출
1function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares)이 함수는 owner로부터 shares를 소각하고 볼트에서 receiver에게 정확히 assets 토큰을 보냅니다.
최대 상환
1function maxRedeem(address owner) public view returns (uint256 maxShares)이 함수는 redeem 호출을 통해 owner의 잔액에서 상환할 수 있는 최대 지분 금액을 반환합니다.
상환 미리보기
1function previewRedeem(uint256 shares) public view returns (uint256 assets)이 함수를 통해 사용자는 현재 블록에서 자신의 상환이 미치는 영향을 시뮬레이션할 수 있습니다.
상환
1function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets)이 함수는 owner로부터 특정 수량의 shares를 상환하고 볼트에서 receiver에게 기본 토큰의 assets를 보냅니다.
총 공급량
1function totalSupply() public view returns (uint256)유통 중인 상환되지 않은 볼트 지분의 총 수량을 반환합니다.
잔액
1function balanceOf(address owner) public view returns (uint256)owner가 현재 보유하고 있는 볼트 지분의 총량을 반환합니다.
인터페이스 맵
이벤트
예치 이벤트
mint 및 deposit 메서드를 통해 토큰이 볼트에 예치될 때 반드시 방출되어야 합니다.
1event Deposit(2 address indexed sender,3 address indexed owner,4 uint256 assets,5 uint256 shares6)여기서 sender는 assets를 shares로 교환하고 해당 shares를 owner에게 전송한 사용자입니다.
인출 이벤트
redeem 또는 withdraw 메서드에서 예금자가 볼트에서 지분을 인출할 때 반드시 방출되어야 합니다.
1event Withdraw(2 address indexed sender,3 address indexed receiver,4 address indexed owner,5 uint256 assets,6 uint256 shares7)여기서 sender는 인출을 트리거하고 owner가 소유한 shares를 assets로 교환한 사용자입니다. receiver는 인출된 assets를 받은 사용자입니다.
