Лендинг-протколы.Часть 3. Займы на миллион
*Данная статья является больше теоретичсекой, нежели практической. Вряд ли вы вообще когда либо будете использовать предложенные механизмы. Тем не менее - знать как это работает очень важно для понимания глубокой сути вещей.
Итак, сегодня на повестке дня такая интересная тема, как быстрые кредиты (или флеш лоаны).
Flash loan- набор транзакций, который создает кредит в криптовалюте без залога.
Здесь вы можете взять кредит хоть на 100 миллионов долларов без залога, но загвоздка заключается в том, что вы должны их вернуть практически мгновенно - в пределах одной транзакции.
У вас очевидно возникает вполне логичный вопрос, а зачем нужен этот быстрый кредит, если у меня так мало времени?
Рассмотрим на достаточно простом примере, условно вы могли бы найти ошибку в каком-либо протоколе и ваш баланс составляет 4000$, и если вы решите заработать на ошибке этого протокола, то получите 4500$. Скорее всего разработчики достаточно быстро заметят данный фэйл и лавочка прикроется. Но, благодаря флэшзайму вы можете взять в кредит, например, 100.000.000$ и тогда вы получите 12.500.000. Согласитесь, звучит неплохо.
Что значит в пределах одной транзакции?
- Здесь стоит осознать, что в EVM транзакция представляет собой запись о действии или ряде действий, которые должны быть выполнены. В контексте же флеш кредитов это означает, что займ и его возврат происходят в рамках одного и того же действия. То есть это работает следующим образом:
1. Заёмщик начинает транзакцию, запрашивая кредит из Aave, Compound
2. Тут же использует эти средства для каких-либо финансовых операций
3. В той же транзакции заемщик возвращает кредит вместе с небольшой комиссией.
4. Если заемщик не возвращает кредит до завершения транзакции, будет считаться, что она фактически не состоялась и кредит не был выдан. (то есть - ничего и не произойдет, транзакция просто не будет зарегистрирована в блокчейне)
Например, все эти действия были выполнены в рамках одной транзакции.
Как можно использовать Flash Loans?
Например, вы положили 500.000$ в эфире под проценты и взяли под залог ETH DAI на 400.000$, затем вы захотели поменять ETH на любой другой токен, например LINK, и вместо того, чтобы совершать огромное количество действий, вы можете взять быстрый займ, погасить задолженность в DAI, поменять ETH на LINK, и положить его обратно в обеспечение. Аналогично работает и со сменой заемного актива.
Допустим год назад ETH стоил 200 долларов, а вы положили 100 ETH под проценты, с оптимистичным настроем, что он вырастет, но у вас возникла потребность в оплате счетов и поэтому под залог эфира вы заняли 16000$ и вывели. Но через год ETH вырос до 1000$, следовательно, у вас есть 200000$, но, чтобы получить к ним доступ вам необходимо оплатить долг в 16.000$, поэтому вы можете взять Flash Loan, оплатить долг, затем перевести ETH в TUSD и выплатить кредит. Следовательно, ваша прибыль составит 184.000$.
Наиболее подходящим примером является взлом протокола Yearn. В результате атаки которой было украдено более 2,5M$.
Порядок действий в флеш-лоан транзакции был таков:
1. Флеш лоаны в протоколах AAVE и dYdX в размере 116k ETH и 99k ETH.
2. Через Compound под залоговое обеспечение были взяты 134M USDC и 129M DAI.
3. Добавление в пул 3crv 134M USDC и 36M DAI.
4. Изъятие (Withdraw) 165М USDT из пула 3crv Curve pool.
5. Главная часть флеш лоан схемы:
- Депозит 93M DAI в yDAI хранилище
- Добавление 165M USDT в 3crv pool
- Вывод 92M DAI из yDAI хранилища
- Вывод 165M USDT из 3crv pool Операция повторялась 5 раз.
6. В последний раз вывод 39M DAI и 134M USDC.
7. Выплата Compound задолженности 8 Выплата флеш лоана.
Каждый раз злоумышленник получал больше 3crv токенов, которые он обменял на стейблы. Сущность данной флеш-лоан атаки была в разбалансировке пула, состоящего из 3 видов стейблкоинов: USDC, USDT, DAI. Совокупные потери составили: $2.8М - прибыль злоумышленника, $3.5M - доход поставщиков ликвидности в пуле 3crv, $3.5M - доход владельцам токенов veCRV.
Звучит довольно сложно, согласитесь. Однако, подкупает в этой истории то, что злоумыщленник не взламывал смарт-контракты с технической стороны. Он лишь нашел финансовую уязвимость в работе протоколов. Это говорит о том, что фактически каждый, кто обладает должным финансовым мышлением - может провернуть подобное.
Как это использовать на практике?
Для начала, конечно же, не советую лезть в создание сложных транзакций собственноручно. Для старта попробуйте использовать платформу Furucombo
На ней вы сможете обьединить множество действий в одну транзакцию без понимания кода вообще. Также это актуально, например, если вы хотите обменять токены, а потом закинуть их в стейкинг
Ваша транзакция будет выглядеть примерно вот так. Это позволит вам сильно сэкономить на комиссиях в сети Эфира. Затем уже можете переходить к чему-то более сложному
promoted by код де Голль x AllChain