BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

한 기사에서 ERC-4626 이해하기: DeFi 토큰화된 볼트의 새로운 표준

深潮TechFlow
特邀专栏作者
2023-06-14 09:20
이 기사는 약 2936자로, 전체를 읽는 데 약 5분이 소요됩니다
ERC-4626은 단일 기본 ERC-20 토큰의 공유를 나타내는 Yield Vault용 표준 API를 제공하여 Yield Vault의 기술적 매개변수를 개선하는 표준입니다.
AI 요약
펼치기
ERC-4626은 단일 기본 ERC-20 토큰의 공유를 나타내는 Yield Vault용 표준 API를 제공하여 Yield Vault의 기술적 매개변수를 개선하는 표준입니다.

원문 편집: Deep Tide TechFlow

원문 편집: Deep Tide TechFlow

TLDR: ERC-4626은 토큰화된 볼트의 표준입니다.

ERC-4626이 도입되기 전에 각 볼트에는 자체 사양 및 구현 세부 정보가 있었습니다. 이로 인해 통합이 어렵고 오류가 발생하기 쉬우며 리소스가 낭비됩니다.

첫 번째 레벨 제목

ERC-4626이란 무엇입니까?

ERC-4626은 Yield Vault의 기술적 매개변수를 개선하는 표준입니다. 단일 기본 ERC-20 토큰의 지분을 나타내는 수익률 저장소용 표준 API를 제공합니다.

토큰화된 볼트는 DeFi에서 매우 일반적인 모델이 되었습니다. 수익 수집기, 대출 시장, 스테이킹 파생 상품 및 기타 많은 dApp은 토큰화된 금고를 활용하고 이에 의존합니다. 토큰화된 금고의 예로는 Yearn과 Balancer가 있습니다. Yield Aggregator로서 Yearn Vault를 사용하면 사용자가 디지털 자산을 예치하고 수익을 얻을 수 있습니다. Balancer는 비즈니스 로직의 핵심인 저장소에 의존하는 자동화된 포트폴리오 관리자 및 유동성 공급자입니다. 이러한 볼트는 다양한 풀에서 토큰을 관리합니다. 동시에 풀 자체의 논리에서 토큰 관리를 분리합니다.

프로토콜은 볼트를 토큰화하여 유동성과 유연성을 향상시킵니다. 토큰화된 볼트를 사용하면 DeFi 플랫폼에서 자산을 쉽게 거래하고 사용할 수 있습니다. 또한 다양하고 상호 연결된 금융 상품을 만들 수 있습니다. 업계는 종종 "머니 레고"라고 불리는 이 패러다임을 옹호해 왔습니다.

그러나 적절한 적응성 또는 표준화가 없는 구성 가능성은 문제를 제시합니다. 개발자가 ERC-20과 같은 산업 표준을 준수하기 어려울 뿐만 아니라 새로운 개발자를 혼란스럽게 할 수도 있습니다. 적절한 적응이나 표준화 없이는 새로운 변경 사항을 검토하고 통합 구현 세부 사항을 확인하기 어렵습니다.

첫 번째 레벨 제목

ERC-4626으로 방지할 수 있는 보안 문제는 무엇입니까?

통합 표준을 제공함으로써 ERC-4626은 교차 프로토콜 통합 구축을 가속화합니다. 친숙하고 일관된 표준은 또한 개발자가 이해하기 쉬워 코딩 오류의 가능성을 줄입니다. 이는 구성 가능성 문제를 방지하는 데 도움이 됩니다. 표준화는 또한 커뮤니티가 각 프로토콜에 대해 개별적으로가 아니라 볼트를 한 번만 설계하면 되므로 중복 작업을 방지합니다. 이러한 설계 노력은 오류가 발생하기 쉬운 경우가 많기 때문에 확립되었지만 널리 퍼진 설계 결함이 복제되는 것을 방지하는 데 도움이 됩니다.

보조 제목

라리 캐피탈 이벤트

Rari Capital 이더리움 풀의 모든 사용자 자금의 60%에 해당하는 약 1,100만 달러 상당의 토큰이 Rari Capital에서 도난당했습니다.

전반적으로 Rari Capital은 안전하지 않은 교차 ​​프로토콜 구현으로 인해 해킹당했습니다. 이더리움 풀은 출력 전략으로 ETH를 Alpha Finance의 ibETH 토큰 계약으로 가져갑니다. 이 특정 전략은 특정 계약 및 공식(특히, ibETH.totalETH / ibETH.totalSupply 함수)을 통해 ibETH/ETH 환율의 가치를 추적하며, 예를 들어 ibETH.work를 호출할 때 이 공격 시나리오에서 잘못된 출력을 가질 수 있습니다. ( ) 기능, 부채 가치를 인위적으로 부풀릴 수 있습니다.

공격자는 RariFundManager 계약에서 입출금 기능을 반복적으로 호출하여 Rari Fund Manager를 소진시킬 수 있습니다. 입금 및 출금 기능은 호출자에게 발행할 REPT 토큰의 수 또는 호출자에게 발행할 ETH의 양을 계산하기 위해 풀의 잔액을 확보해야 합니다.이 작업은 Alpha 풀의 getBalance 기능을 호출합니다. , ibETH 계약 및 그것의 totalETH 기능을 호출합니다. Rari는 이 기능을 조작할 가능성을 인식하지 못합니다.

ibETH 계약에는 ibETH.work라는 또 다른 기능이 있습니다. 이 함수는 사용자가 지정한 모든 계약을 호출할 수 있습니다. 이를 통해 Rari의 입금 및 출금 기능을 재진입하고 여러 번 호출할 수 있습니다.

work function은 payable function으로 사용자가 work function을 통해 ibETH 컨트랙트에 있는 ETH의 양을 조절할 수 있어 totalETH function이 반환하는 값을 변경할 수 있습니다. 설상가상으로 작업 기능은 RariFundManager와 같은 다른 계약 호출도 지원합니다.

이 기능을 통해 공격자는 ETH를 다시 ​​보내고 ibETH 계약에서 총 ETH 금액을 늘릴 수 있으며 동시에 RariFundManager 계약에서 철회를 호출하여 더 많은 자산을 상환할 수 있습니다.

보조 제목

크림파이낸스 이벤트

Cream Finance는 플랫폼의 두 가지 근본적인 약점인 조작된 믹싱 오라클과 무제한 토큰 공급을 악용한 정교한 공격을 받았습니다. 공격의 핵심 부분은 yUSD 토큰의 인식된 가치에 영향을 미치는 혼합 오라클의 조작이었습니다. 공격자가 대량의 Yearn 4-Curve 토큰을 yUSD 금고로 보냈을 때 금고에서 보고한 환율을 변경하여 오라클에 대한 yUSD 토큰의 인식 가치에도 영향을 미쳤습니다.

여기서 핵심 교훈은 견고하고 조작할 수 없는 가격 오라클이 DeFi 프로토콜의 안정성에 매우 중요하다는 것입니다. TWAP(시간 가중 평균 가격) 오라클은 갑작스러운 가격 조작에 더 탄력적이기 때문에 이러한 해킹을 방지하는 데 도움이 될 수 있습니다.

첫 번째 레벨 제목

ERC-4626의 잠재적인 보안 위험

새로운 프로토콜을 사용하는 데는 항상 약간의 장단점이 있습니다. 토큰화된 볼트의 경우 특별한 주의가 필요한 스마트 계약에 통합하는 데 잠재적인 문제가 있을 수 있습니다.

feeOnTransfer 토큰 관리

금고가 feeOnTransfer 토큰을 지원하도록 설계된 경우 자산을 이체할 때 금고의 금액과 지분이 예상 범위 내에 있는지 확인하십시오.

십진수 변수를 적절하게 사용하십시오.

convertTo 함수는 EIP-4626 볼트의 십진수 변수를 사용할 필요가 없지만 가능한 경우 기본 토큰의 십진수를 미러링하는 것이 좋습니다. 이 관행은 잠재적 혼란의 원인을 제거하고 다양한 프런트 엔드 및 오프 체인 사용자를 위한 통합을 단순화하는 데 도움이 됩니다.

반올림

사양에 따르면 볼트 구현자는 계산 중에 사용자보다 볼트 자체의 우선 순위를 지정하는 것이 더 안전하기 때문에 다양한 변경 가능 및 보기 방법에 특정 반대 반올림 방향이 필요하다는 것을 알고 있어야 합니다.

  • 제공하는 일부 기본 토큰의 양에 대해 사용자에게 발행할 주식 수를 계산하거나 기본 토큰의 특정 공유를 사용자에게 전송하도록 작동하는 경우 내림해야 합니다.

  • 특정 양의 기본 토큰을 얻기 위해 사용자가 제공해야 하는 공유 수를 계산하거나 사용자가 특정 수의 공유를 얻기 위해 기본 토큰의 공유를 제공해야 하는 양을 계산하는 경우 반올림해야 합니다.

선호하는 반올림 방향이 모호한 곳은 convertTo 함수입니다. 모든 EIP-4626 저장소 구현에서 일관성을 보장하려면 이러한 기능이 항상 내림해야 함을 지정하십시오. 통합자는 예를 들어 결과에 Wei를 추가하여 반올림 버전 자체를 모방할 수 있습니다.

사용자가 볼트(previewRedeem)에서 지분을 상환하여 받는 기본 자산의 양은 동일한 양의 지분을 발행하기 위해 지불해야 하는 금액(previewMint)과 크게 다를 수 있습니다. 이러한 차이는 작거나(예: 반올림 오류로 인해) 클 수 있습니다(예: 금고에서 인출 또는 입금 수수료 구현). 따라서 통합자는 자신의 사용 사례에 가장 적합한 미리 보기 기능을 사용하도록 주의를 기울여야 하며 상호 교환 가능하다고 가정해서는 안 됩니다.

핵심 기능 재정의

의도한 기능을 구현하거나 확장하기 위해서는 핵심 기능을 변경하는 대신 기존 후크를 사용하는 것이 좋습니다. 이 방법은 효율적인 코드 테스트 및 감사를 위해 보다 관리하기 쉬운 추적을 보장합니다.

제로 쉐어

ERC-4626의 원래 사양에는 저장소에 공유가 없는 코너 케이스를 처리하는 방법과 저장소가 정상적으로 작동해야 하는지 또는 롤백해야 하는지에 대한 개요가 없습니다. 이것은 혼란과 오류의 잠재적 원인이 될 수 있습니다.

가격 오라클로서의 금고

오라클 가격 조작 공격의 위험과 관련하여 이러한 미리보기 방법으로 반환되는 값은 가능한 한 정확합니다. 따라서 그들은 온체인 조건을 변경하여 작동할 수 있으며 가격 오라클로 사용하기에 항상 안전한 것은 아닙니다. ERC-4626 사양에는 부정확성을 허용하는 변환 방법과 totalAssets 방법이 포함되어 있으므로 강력한 가격 오라클로 구현할 수 있습니다. 예를 들어 자산과 주식 간 전환 시 시간가중평균가격을 이용하여 전환방식을 구현하는 것이 맞다.

특정 구현 문제

인터페이스 사양을 준수하는 것처럼 보이지만 핵심 기능이 완전히 다른 디자인 사양으로 구성된 악의적인 구현이 있을 수 있으므로 통합자는 추가 통합 전에 토큰화된 볼트 구현을 검토해야 합니다.

EOA 직접 액세스

금고에 직접 액세스하려면 해당 구현에 미끄러짐 손실 또는 우발적인 입출금 한도를 수용하는 데 사용할 수 있는 기능이 있어야 합니다. EOA는 스마트 컨트랙트와 달리 트랜잭션 롤백을 위한 안전 장치가 없기 때문에 핵심 기능을 호출할 때 정확한 출력이 이루어지지 않으면 롤백할 방법이 없습니다.

확장 금고

더 많은 플레이어가 ERC-4626 표준을 채택하기 시작함에 따라 표준에 대해 더 많은 확장이 구현되는 것을 보게 될 것입니다. 예를 들어, Superform은 단일 Vault 계약 내에서 다양한 계산의 사용을 지원하는 실험적인 Multi Vault 확장을 개발했습니다. 당연히 구현이 원래 표준에서 더 많이 벗어날수록 새로운 취약점이 도입될 가능성이 높아집니다. 개발자와 감사자는 위험에 처한 실제 가치를 결정하기 위해 사용 사례를 기반으로 최선의 옵션을 찾을 수 있습니다.

치명적인 이벤트로 이어지는 것은 각 프로토콜의 가장 작은 추가가 아니라 통합되었을 때 그 합계라는 점에 유의하는 것이 중요합니다.

위에서 언급한 잠재적인 공격 벡터는 ERC-4626 표준과 관련하여 더 많이 논의된 문제 중 일부입니다. 채택이 증가함에 따라 더 많은 구현 사용 사례와 ERC-4626 볼트와의 통합을 위한 더 적합한 시나리오를 확실히 탐색할 것입니다.


DeFi
ETH
Odaily 공식 커뮤니티에 가입하세요