어제 저녁(2024.2.23) 가격이 7US$에서 11달러로 즉시 올랐고 유니는 순식간에 상승세로 돌아섰습니다. 7달러에서 달러 11달러로 순식간에 올랐습니다.
이 대출 계약을 통해 사용자는 다른 코인(예: usdc)을 담보로 유니를 빌릴 수 있으며, 이 유니가 일시적으로 상승한 지 얼마 지나지 않아 com파운드가격이 적시에 업데이트되지 않았고, 그 결과 낮은 유니 가치를 담보로 대출을 받을 수 있는 계약이 체결되어 유니를 빌릴 수 있게 되었습니다.
이것은 USDC를 담보로 다량의 USDC를 빌린 후 USDC에 매도하여 담보한 것보다 더 많은 USDC를 받고 있다는 사실을 알게 된 몇몇 사람들에 의해 발견되었습니다. span>컴파운드 금액.
https://bad-debt.riskdao.org/ 의 데이터를 사용하여 대출 계약에 대한 이 공격을 진지하게 분석해 보겠습니다.
이 공격은 다음 네 개의 주소에서 이익을 얻었습니다
0x6980a47bee930a4584b09ee79ebe46484fbdbdd0
0x5968ada261a84e19a6c85830e655647752585ed4
0x49bc3cec1fb7978746f742a4e485d0d601831cea
0x2f99fb66ea797e7fa2d07262402ab38bd5e53b12
이제 은행으로 이동하여 이 네 주소의 잔액을 살펴보면 이 계약에서 네 개의 주소는 모두 부채가 있지만 다음과 같이 담보가 거의 없습니다.
이 스크린샷은 이 주소 0x2f99fb66ea797e7fa2d07262402ab38bd5e53b12에 1.1503Dai와 0.051715usdc를 복합적으로 저당했지만 28702.7973uni 를 빌린 것을 보여줍니다.
담보는 거의 0이지만 차입한 유로값이 330,000유로까지 높습니다. 이 경우 이 주소로는 이 유니 부채를 갚을 수 없습니다.
다른 세 주소는 모두 100,000유로 이상의 유니코인을 빌리는 데 거의 아무런 담보도 사용하지 않은 동일한 주소였습니다.
이 네 주소는 누적 55,565.9001유니를 빌렸으며, 현재 개당 12유로 환산하면 총 55,565.9*12=666,790.8유로, 66만유의 손실이 발생했습니다.
어떻게 수십만 개의 유니 코인을 거의 0담보로 빌리고 팔 수 있게 된 것일까요! ?
공격의 전체 로직은 다음과 같습니다 :
1.가정해 보겠습니다. T0시점이고 유니시장에서가격이있다고 가정합니다. span lang="en-US">7U/uni,compoundonthepair ofuni. US">uni피드는 정상이며 7U/uni
2.<. 그런 다음 T1시점에서,uni가격이 갑자기 폭발적으로 상승하여 순식간에 11U/uni까지 올랐습니다. 그러나 컴파운드 피드에 오류가 발생하여 여전히 11U/uni에 머물고 있습니다. span>7U/uni.
3.그리고 누군가 컴파운드를 발견했습니다. 유니에게 잘못된 가격을 제시하고 즉시 20을 저당 잡혔습니다. -US">백만달러를컴파운드에 담보로 제공하고 이에 대해 차용한 것. away유니코인을 com파운드피드백 가격()에 차용합니다. 7유로/유로, 차입 금리의 85%)의 경우 20*0.85=170,000유로/유로를 차입할 수 있습니다. 170000/7=24285.7143유니, 즉 24,000유니를 빌릴 수 있습니다.
4.그런 다음 2.4백만유니시장(예: uniswap v3)에 판매할 경우 시장 가격이 11U/uni이므로 담보보다 많은 2.4*11=26.4wUsdc에 판매할 수 있으므로 수익인 64,000 Usdc를 얻을 수 있습니다.
다음 거래 https://etherscan.io/tx/ 0xaee0f8d1235584a3212f233b655f87b89f22f1d4890782447c4ef742b37af58d 위의 논리를 매우 명확하게 볼 수 있습니다
193020usdc를 저당하고 19748uni를 빌려주고 유니를 ETH로, ETH를 usdc로 판매하여 궁극적으로는 195461usdc, 즉 담보보다 195461-193020=2441usdc 더 많이 받았습니다.
5.기타. lang="en-US">컴파운드정확한유니코인 가격을 계약에 입력하면 해당 채무는 청산이 아니라 청산될 것입니다. 청산인이 모든 담보를 가져가더라도 여전히 많은 유니 부채가 남아있을 것입니다. 이는 불량 부채입니다.
컴파운드왜uni? 가격 피드 오류가 발생했나요?
현재컴파운드이 문제에 대한 수정 작업을 시작했습니다bug투표하세요.
Because 콤파운드온더. lang="en-US">uni코인의 가격은 이중 보험을 사용하여 설정되며, 하나는 체인링크의를 사용하여 설정됩니다. 오라클피더 가격, 유니스왑 TWAP(시간 가중 평균 가격)을 추가했습니다. 하지만 두 피더 간의 장단점을 정확히 찾아보지 못했습니다. 하지만 지금 결과를 보면 둘 다 동시에 정상이어야 하며, 가격이 제대로 공급되려면 컴파운드가 필요합니다.
유니 가격이 순식간에 폭등했을 때 체인링크의 피드는 정상이었지만 유니스왑TWAP의 가격에 결함이 있었고, 컴파운드의 프로토콜이 잘못된 가격을 제공한 것입니다.