이해하기 쉬운 5단계: DeFi 허점을 사용하여 미화 360,000달러의 수익을 창출하는 방법
최근 한 "해커"가 비용이 거의 들지 않는 Flash Loan을 사용했습니다. 자세한 내용은 참고 1 참조] 제공된 대출은 한 번의 거래로 미화 36만 달러를 벌어들였습니다. . 이번 '크래킹' 사건에 연루된 디파이 제품의 수를 고려할 때, 디파이에 대한 사전 지식만 있는 분들이 쉽게 이해할 수 있도록 관련 내용을 최대한 명확하게 설명해야 합니다. 이 기사에서는 독자에게 "크랙" 작업을 단계별로 안내하고 몇 가지 주요 단계에서 추가 설명을 제공합니다. "조금만 아는 것"이 아닌, 이 사건이 어떻게 일어났는지 더 깊이 이해하고 이해할 수 있도록.
텍스트
1단계: FlashLoan 대출: dydx에서 10,000 WETH를 빌립니다.
텍스트
텍스트
3단계: dZx 마진 레버리지 거래: dZx 계약으로 1300 WETH 충전, 숏으로 5배 레버리지. 구체적인 연산은 간단히 bZx에서 5637.623762 WETH를 빌려 KyberSwap을 통해 Uniswap에서 판매하고 판매하면 51.345576 WBTC가 되는 것으로 이해하면 됩니다.
이 단계는 실제로 Uniswap에서 WETH/WBTC의 가격을 돌파하는 것입니다.
당시 WETH/WBTC의 정상가는 0.025974 정도였는데, 이 매도 단계는 기본적으로 유니스왑에서 WETH/WBTC의 가격을 0.00910747로 떨어뜨렸습니다. 거의 세 번.
텍스트
4단계: Uniswap 트랜잭션: 2단계에서 Compound에서 빌린 112 BTC를 사용하여 Uniswap에서 ETH를 다시 구입하고 총 6871.4127388 ETH를 다시 구입합니다.
텍스트
5단계: FlashLoan 반환: FlashLoan이 빌려준 10000 WETH 중 사용하지 않은 3200 WETH와 4단계에서 112 WBTC로 환매한 6871 WETH, 총 10071.4127388 WETH가 있습니다. Flash Loan 반환을 위한 10000 WETH. 71.4127388개 남았습니다.
이 시점에서 전체 작업이 끝났습니다.
이러한 트랜잭션이 이더리움의 한 블록 시간 내에 발생하고 이더리움의 다음 블록에 의해 패키징 및 확인되는 한 이러한 트랜잭션은 시작 시간에 따라 실행됩니다. Key point : Flash Loan의 조건이 충족되어 하나의 블록 내에서 반환되기 때문에 전체 단계의 트랜잭션이 실현될 수 있습니다.
이제 Joe의 수입을 살펴보겠습니다.
이 5단계에서 Joe는 71.4127388 WETH만 얻은 것으로 보입니다.
하지만 잊지 마세요. Joe는 여전히 Compound와 bZx에서 두 가지 직책을 맡고 있습니다.
첫 번째는 Compound의 모기지 대출입니다. 5500 WETH를 저당하고 112 WBTC를 빌려주었습니다.
다른 하나는 bZx의 마진 레버리지 거래로, 1300 WETH가 담보로 5배 레버리지로 공매도됩니다. 51.345576 WBTC가 남아 있습니다.
bZx는 Uniswap의 WETH/WBTC 가격을 가격 피드로 사용하고 Uniswap의 WETH/WBTC 가격은 Joe가 조작하기 때문입니다. 따라서 기존의 이해에 따르면 bZx에서 Joe의 위치는 청산되어야 합니다. 그러나 실제 상황은 이 위치에 3단계 작업에서 얻은 51.345576 WBTC만 남아 있는 것입니다.
Joe는 분명히 이 입장을 무시하고 싶지 않았습니다. 나머지 51.345576 WBTC를 차감하더라도. (실제로 bZx는 51.345576 WBTC를 차감했습니다.)
컴파운드의 직책에 대해서는 Joe가 더 관심이 있습니다. 현재 ETH/BTC의 정상 가격은 약 0.025974이며 Joe는 112 WBTC를 구매하기 위해 시장에서 4300 WETH만 소비하면 됩니다. 그런 다음 이를 Compound에 반환하면 5500 WETH를 상환할 수 있습니다. 이것은 약 1200 WETH를 벌 수 있습니다.
따라서 이 작업에서 Joe의 이익은 다음과 같아야 합니다.
1200+ 71.4127388 = 1271.4127388 WETH。
보조 제목
그래서 문제가 무엇입니까?
위의 세부 단계를 기반으로 문제는 bZx의 마진 레버리지 거래 스마트 계약에 있습니다.
우선 bZx는 Uniswap의 WETH/WBTC 가격을 피드 가격으로 사용합니다. 그리고 Uniswap의 깊이가 충분하지 않습니다.
둘째, bZx의 마진 레버리지 거래는 롱 또는 숏에 관계없이 구매 또는 판매 시장도 Uniswap입니다. 즉, bZx 자체가 Uniswap의 가격에 영향을 미칩니다.
추신:
추신:
이 기사의 목적은 사건 이후 DeFi 제품의 취약점을 비판하거나 우리가 Joe라고 부르는 해커를 비판하는 것이 아닙니다.
이 기사의 목적은 암호화폐 분야의 더 많은 일반 참가자들이 DeFi 제품의 논리를 더 깊이 이해할 수 있도록 하기 위한 것이며 가능한 한 간단하고 이해하기 쉽습니다.
동시에 이 사건의 근본 원인이 무엇인지 모든 사람들이 알 수 있기를 바라며, 개발자들도 다른 DeFi 제품을 설계할 때 이를 통해 배우기를 바랍니다.
더욱 승화시키기 위해 이 사건은 실제로 DeFi 제품에 대한 소위 "관리자 권한"을 설정할지 여부에 대해 DeFi 분야에서 논의를 불러일으켰습니다. 이 기사는 소개 역할을 하며 앞으로도 Cortex 중국 커뮤니티와 이러한 종류의 콘텐츠를 계속 공유할 수 있습니다.
CortexLabs 참고 1: Flash Loan, 중국어 리터럴 번역 이름은 Flash Loan입니다. "플래시 론"은 하나의 블록 내에서 서로 다른 DeFi 대출 플랫폼에서 여러 거래를 시작하는 방법, 즉 서로 다른 자산과 부채 간에 재대출하는 방법입니다. "플래시론" 역시 이더리움의 동일한 블록에서 대출의 발행과 상환이 완료되어야만 담보가 필요하지 않은 대출 방식으로, 현재 이더리움의 블록 생성 속도에 따르면 약 13초가 소요된다.


