Structure of Flash Loans and opportunities for profit based on them
- Abstract
- Вступление
- Проблемы обычного кредитования
- Самые частые способы использования flash loans
- Обзор AAVE
- Overcollateralized loans
- Leveraged Lending
- Детальное рассмотрение рисков
- 2. Front Running
- Flash Loans attack and platforms
- Как можно использовать флеш лоан для заработка
- Flash Loan vs Flash Swap
- Flash Loan Arbitrage using Hard Hat
- What are Liquidity Pools
- Выводы:
Abstract
Цели данной статьи заключаются в том, чтобы разобрать историю flash loan, их подробное фундаментально устройство, а также разобрать гайд как их можно использовать сейчас чтобы зарабатывать. Также мы должны разобрать проекты и платформы которые помогают использовать flash loan в различных целях, а также как они формировались.
Remark: Не существует целевой аудитории для этой статьи, поэтому данная статья затрагивает все пункты от самых фундаментальных вещей, до малоизвестных моментов и материалов. Мы хотим, чтобы новички узнали про новые концепции в DeFi, а ребята с опытом нашли полезные способы применения этой информации, поэтому статья будет затрагивать углубляться все дальше и дальше с временем прочтения статьи.
Вступление
Flash Loan - разновидность беззалогового кредитования в DeFi. Иными словами, любой пользователь может занять безграничное количество денег, не оставляя ничего как залог. Одним из нюансов является комиссия от платформ с помощью которых вы можете брать такой вид кредита, а также время на которые вы его можете брать. Например, если мы рассмотрим платформу AAVE то комиссия составил 0.09%, а деньги вы должны будете вернуть в течении одного блока в эфириуме или 13 секунд.
Перед тем как перейти к подробному углублению в flash loan, гайду как на этом можно зарабатывать, а также к устройству платформ и проектов, нам стоит фундаментально рассмотреть как зародилась данная идея и вместе с ней платформы которые предоставляют такую возможность.
*** Углубленное и фундаментально рассмотрение концепций всегда поможет правильнее использовать те или инструменты и допустить меньше ошибок. Также, такое поможет фаундерам и билдерам проектов, которые смогут даже развить свой продукт на основе концепций. Иными словами, если не хотите, получать опыт in hard way, стоит понимать фундамент и не спешить.
Проблемы обычного кредитования
Давайте рассмотрим проблемы обычного кредитования даже в пределах web3, чтобы лучше понять как flash loan помогает их решить:
- Залог: Традиционные кредитные платформы требуют от заемщиков предоставления залога для обеспечения своих кредитов, что является барьером. Например, если вы хотите занять 300к$, вам нужно будет оставить в залог свой дом или любую другу собственность такой же стоимости.
- Скорость: Обработка заявок на кредит на традиционных платформах может занять несколько дней или даже недель. Это может быть проблематично для заемщиков, которым срочно нужны деньги.
- Доступность: Традиционные кредитные платформы часто доступны не всем. Например, плохая кредитная история, или ограничение по геолокации, или по объему средств могут стать причинами отказа от кредита.
- Прозрачность: Традиционные кредитные платформы часто непрозрачны и сложны. Заемщикам может быть трудно понять условия своих кредитов, и они могут столкнуться со скрытыми комиссиями и сборами.
- Безопасность: Традиционные кредитные платформы часто уязвимы для мошенничества и взлома.
Но, откуда же происходят данные проблемы? Все дело в том, что данные виды кредитов рассматриваются во-первых людьми, из-за того, что есть огромное количество условий, которые работники рассматривают вручную, а также потому что система возврата денег не совершенна.
Беря же сферу web3, мы имеем замечательную вещь как смарт контракт, которая решает данные проблемы. Простыми словами, смарт контракт - это программа в которую заранее уже заложены все условия, в том числе по возврату денег. Все, что может произойти, уже прописано в смарт контракте.
Самые частые способы использования flash loans
Представьте, что у вас есть возможность купить токен HBAR по цене 0.05 на бирже ByBit, а продать тот же токен за 0.052 на бирже KuCoin. Таким образом, купив на 1000$ токены, а потом продав их на другой бирже, вы сможете заработать 4% или как в данном примере - 40$. Конкретно данный пример подходит под такое понятие как межбиржевой арбитраж.
Позже в статье мы еще рассмотрим простые и не только связки по меж биржевому арбитражу, но ситуация с flash loan идентичная. Только, вы сможете покупать и продавать не на биржах, а на децентрализованных свапалках - Uniswap, Curve, DYDX, SushiSwap, Balancer и тд.
А теперь представьте, что вы занимаете 10 миллионов долларов на AAVE и делаете тот же арбитраж с такими же ценами и таким же спредом. Ваша прибыль за вычетом комиссий будет составлять 400к$ - а после комиссий 391k$. Конечно, всегда и везде есть свои подводные камни, которые мы рассмотрим чуть позже.
Представьте ситуацию, где у вас есть 500к$ в эфириуме и вы хотите обменять его на неопределенный срок в другую монете по причине того, что вы верите, что цена эфириума еще упадет. Вы можете обменять на стейбл коины, потом купить другую монету и потерять достаточно много на комиссии. Но, с помощью flash loan, вы можете поменять свои эфириумы абсолютно на другой коин(collateral в данном случае) и заплатить намного меньше в комиссии.
Более того, если например у вас 1000$ в USDC, вы можете занять примерно 800$ в FRAX, например. Дальше, вы можете на основе 800$ в FRAX занять примерно 640$ в другой монете. Потом, можете занять еще 512$ и т.д. Благодаря тому, что вам нужно иметь примерно 10-20% от своих займов в данной части(не берем всю концепцию flash loan), мы можем как бы дойти до 5 или до 10 плеча, но при просадке монет, наши займы будут ликвидированы относительно плеч и залогов.
Представьте что вы заняли DAI под залог эфириума на платформе Compound. Цена эфириума падает, а это значит что денежный эквивалент вашего залога падает в том числе. При достижении определенной цены эфириума, ваш залог будет ликвидирован. Но, вы не хотите вносить больше эфириума в ваш залог. Таким образом, вы можете использовать flash loan.
Таким образом, вы сможете избежать ликвидации, а значит вам не нужно будет платить достаточно большой liquidity fee платформе.
Перед тем как мы перейдем подробно к каждому пункту, то есть как на этом можно зарабатывать и использовать в своих проектах, нам обязательно стоит рассмотреть риски и конкретный пример(в данном случае это будет AAVE)
Обзор AAVE
AAVE - платформа на которой люди могут брать и давать взаймы(borrowing and lending platform.) Также, у AAVE есть свой алгоритм который определяет автоматически ставки по своеобразному кредиту.
Все началось с того, что в 2017 годы разработчики сегодняшнего AAVE создали MVP(minimum valuable product) ETHLend который позволял сводить заемщиков и кредиторов. Уже в 2020 годы они переименовались и стали использовать смарт контракты. Но, алгоритм работы поменялся полностью.
Если в 2017 году, заемщику и кредитору нужно было полностью сходиться на условиях и объеме сделки, что затрудняло все концепцию, то уже сейчас, кредиторы могут положить свои деньги в пул и получать процент, а заемщики могут одалживать средства внося определенный залог или как мы будем говорить в будущем collateral. Все это происходит на двух разных смарт контрактах.
Overcollateralized loans
Если мы возьмем стандартную ситуацию где человек берет кредит под застройку дома, то он может внести 80% от стоимости дома. Если он не сможет платить, то банк просто заберет дом. Но если мы рассматриваем кредитование в DeFi, то чтобы например занять 1000$, вам может понадобиться 1200$.
Достаточно абсурдная ситуация, но давайте представим, что вы отдали 1000$ в эфириуме, чтобы получить 800$ в USDT. С течением времени, цена эфириума выросла в два раза, и вам должны уже вернуть 2000$ в эфириуме. Это можно расценивать даже как лонг позицию.
В этом случае мало того, что вы не блокируете свои деньги, вы получаете еще стейбл коинов. Но, это ситуация имеет две стороны так как цена может и упасть. Именно поэтому у AAVE есть такое понятие как liquidation threshold. Если вы оставили под залог X эфириума, и получили 0.8X в USDT, то если ваш эфириум упадет на 82.5%, то вся сделка ликвидируется и вы получите автоматически обратно эфириум и отдадите USDT.
Leveraged Lending
Возьмем прошлую ситуацию, которую мы слегка затронули. У вас есть 1000$ в эфириуме и вы одалживаете себе 800$ в USDC. Дальше, вы меняете свои USDC опять на эфириум и можете себе одолжить еще 640$ в USDC.
Таким образом вы одалживаете себе намного больше денег относительно вашего залога. Это и есть в буквально смысле плечо. Хоть, многие люди на таком сколотили свое состояние на бычьем рынке, это имеет огромный риск. Если в начальной ситуации, уровень ликвидации равняется просадке на 82.5%, то в конечной ситуации это будет просадка на 8%.
Всю ситуацию с инструментами в AAVE можно сравнить с маржинальной торговлей. Абсолютно те же риски и возсожности. Даже те же типы комиссий или уровень здоровья позиции/кредита.
Детальное рассмотрение рисков
Рассматривая риски, мы можем поделить их очевидные и дополнительные.
- К очевидным относятся компоненты которые мы можем контролировать. Например, комиссии. При любых операция с провайдерами ликвидности и вашими задумками, стоит рассчитывать риски не только комиссия ликвидити провайдера, но также комиссии сети или децентрализованной биржи. Многие не замечают данные комиссии при обычных взаимодействиях, но как бы это банально не звучало, используя флеш лоан, вы можете увеличить торговый объем в тысячи раз вместе с размером за комиссию или ликвидэшн фи, которые могут в секунду превратить ваш объем в ноль.
Также стоим обращать внимание на price slippage. Представьте, что в пуле всего 1000 монет, и вы хотите купить купить одну. Цена не сильно поменяется. Но, а что если вы хотите разом купить 900 монет. Вы создаете огромнейший спрос с ограниченным предложением и автоматически увеличиваете цену покупки в разы. Это как никогда актуально при использовании флеш лоанов.
Простыми словами, это можно сравнить с ордерной книжкой - есть 5 человек, каждый из которых готов продать 5 монет, но первый 1$, второй за 3$, третий за 5$ и тд. Если вы захотите в секунду купить 1 монету и не дожидаться лучших цен, то вы купите по 1 доллару, а если сразу 20 монет купите, то ваша средняя цена покупки будет 4 доллара.
2. Front Running
Remark: Front Running - действие, при котором злоумышленники наблюдают за ожидающей транзакцией в сети и быстро размещают свою собственную транзакцию с более высокой комиссией за газ, чтобы она была обработана в первую очередь. Но, в контексте флеш лоунов и в границах этой статьи мы будем рассматривать фронт раннинг ситуацию, в которой возможность арбитража известна другим участникам и таким образом, из всех людей, заметивших возможность заработать, заработают или несколько людей или один человек.
Допустим, вы заметили возможность купить монету на одном DEX и продать на втором дороже. Но, вместе в вами, такую возможность нашли еще несколько людей. И они, в отличие от вас, заплатили выше комиссию и успели купить дешевле, а продать дороже.
Но вы, которые действовали в тоже время купили по хуже цене и ушли в минус. Это нельзя предсказать. Но вы всегда должны мыслить вероятностями(какой шанс что произойдет X; какой итог будет; как я поведу дальше), а также рассчитывать свои риски.
Flash Loans attack and platforms
Перед тем как рассмотреть как работают атаки, вот список основных проектов которые предоставляют flash loan и их комиссии
Если рассматривать проекты со стороны конкурентного анализа - расписывание функций которые одни проекты обладают, а другие - нет - то мы поймем, что одни платформы предлагают огромное количество монет, а другие предлагают относительно объемов и других алгоритмов оценивания рисков.
Флеш лоан может использоваться для эксплойта - взлома смарт контракта, зачастую через операцию, которая не была прописана внутри смарт контракта. В таком случае программа ведет себя неожиданно, так как в ней не было этого запрограммировано.
Иными словами, если не вдаваться в подробности устройств и разновидностей эксплойтов, можно сказать, что делая нестандартную операцию, за которой стоит использование бага, хакеры могут максимизировать эксплойт благодаря флеш лоан.
Так случилось с проектом pancakebunny. Эскплойтеры заняли 700 миллионов долларов, а также из-за бага напечатали себе 7 миллионов pancakebunny токенов, которые продали за 45 миллионов себе, а изначальные 700 миллионов вернули в той же транзакции.
Также, как хороший пример флеш лоан атаки можно привести взлом биржи fulcrum в начале 2020 года. Обще мы уже знаем как работает эксплойт, давате подробно разберемся с дизайном атаки.
1. Хакер взял через flash loan 7500 эфира в долг
2. 3518 ETH перевернул в sUSD через Synthetix. sUSD = стейблкоин, то есть должен стоит 1 доллар
3. Раскидал на децентрализованной бирже Kyber ордеров на 900 ETH, увеличив цену sUSD на 2 доллара, то есть сделал анпег стейбл коина, потому что он всегда должен быть равен одному доллару.
4. Закинул 1099841 sUSD в протокол bzx, чтобы сделать займ эфириума.
5. bzx, который используют оракулом биржу Kyber, выдала ему в долг 6796 ETH, хотя при цене 1 sUSD = 1 USD должна была выдать 4080 эфириума.
6. Таким образом из-за анпега и неправильного алгоритма в смарт контракте хакер вытащил 6796 – 4080 = 2716 эфира. Часть из которых пошли на погашение долгов. Чистый профит хакера составил - 2378 eth, а чистый убыток биржи составил - 2716 eth.
И все это было оформлено одной транзакцией. То есть эксплойтер сначала все придумали и прописали, а потом запустили процесс. Действий внутри одной транзакции безумно много, что за 10 минут даже не разберешься.
Никто не призывает вас искать подобные баги и потенциальные эксплойты бирж или ликвидити пулов, но разбор взломов и их транзакций поможет понять фундаментально как это работает.
Как можно использовать флеш лоан для заработка
Конечно, из трех пунктов, нам интересен только первый - арбитраж. Остальные пункты помогают нам не потерять деньги из-за дополнительных комиссий, сохранить свои займ, а также использовать займы как плечи. Если два первых пункта в априори не помогут заработать, а только сохранить, то последний пункт является, как уже было сказано раньше, аналогом маржинальной торговли.
Арбитраж. Существует межбиржевой арбитраж, который делится на
- Direct - покупка одной монеты на одной бирже и продажа на второй
- Triangular - покупка одной монеты на одной бирже, свап в другую монету, продажа на третьей бирже
- Loop - покупка одной монеты на одной бирже, свап в другую монету на второй бирже, перевод на первую и ее продажа
- Intra-exchange - покупка и продажа на одной бирже но с разной пары - например покупка за USDT, а продажа за BTC
- Intra-Loop - тоже самое, что и 4 пункт с нюансами по свапу
В межбиржевом арбитраже, есть такие сервисы как KoinKnight, CoinArbtrageBot, NewsCrypto. На них, вы можете(на первой и последнем нужна подписка) отслеживать спреды и сигналы на арбитраж. И у многих появится идея - можно купить подписку, сделать бота которой автоматически будет покупать и продавать на разных биржах и все. Но если вы займетесь этим на практике, то поймете, что таких умников слишком много. И действительно зарабатывает, только тот у кого самый лучший и быстрый бот - это и есть пример фронтраннинг. Пример, с межбиржевым арбитражем тут не просто так.
Такие же сервисы есть которые подходят и под флеш лоан. Например FlashLoanETH. В этом канале, вы сможете увидеть монеты которые слишком сильно упали в цене, сформировав возможность купить и позже продать на другой децентрализованной бирже или ликвидити пуле в разы, а иногда даже в десятки, сотни раз больше. Но, тут опять же решает ваша скорость. Поэтому, если вы решите пользоваться открытыми источниками, даже в которых есть подписка, вам стоит брать во внимание фронтраннинг и способности вашего бота. В тоже время, мы советуем вам искать возможности для арбитража самостоятельно. Таким образом, вы уменьшите вероятность потери возможностей из-за других таких же любителей арбитража и flash loans.
Flash Loan vs Flash Swap
Чтобы дальше углубиться в то как можно использовать флеш лоан, чтобы на нем заработать, стоит разобрать разницу между Flash Loan и Flash Swap
Flash Loan требует минимум три операции. Например
2) обменять на децентрализованной бирже
3) арбитражный обмен на другой децентрализованной бирже. Флеш лоанс должны быть погашены тем же активом, который вы взяли в долг.
Флэш-свопы позволяют участникам получать активы и использовать их в другом месте, прежде чем платить (или возвращать) их позже в транзакции. Флэш-свопы, как это делается на Uniswap, не имеют фиксированной комиссии, а скорее взимают комиссию за своп. Это можно рассматривать как «бесплатный» кредит по сравнению с флеш лоун, поскольку комиссия за своп вычитается из торгового ордера — нам не нужно делать отдельный платеж. Последнее отличие: мы можем погасить флэш-свопы любым активом, который обмениваем.
Как флеш лоунс, так и флеш свапс используют метод, называемый оптимистическим трансфером. Это замечательное нововведение DeFi позволяет пользователю брать необеспеченные кредиты или свопы и совершать сделку при условии, что пользователь вернет услугу к концу сделки. Чтобы лучше понять эту головоломку, давайте взглянем на код.
Flash Loan Arbitrage using Hard Hat
Рассмотрим конкретный пример, флеш лоан арбитража с билдом смарт контракта.
В этой статье вы сможете посмотреть как строится техническая част смарт контракта для нашего арбитража с помощью Hard Hat. По сути, вы можете рассмотреть структуры логики, но основной dex.sol контракт состоит из
- <<<Dex Contract: The main contract defines storage variables for the owner, DAI and USDC addresses, and instances of IERC20 for DAI and USDC.
- Token Deposits: depositUSDC and depositDAI functions allow users to deposit USDC and DAI tokens, updating their balances.
- Token Exchange: buy DAI and sell DAI functions simulate token exchanges, buying DAI with USDC and selling DAI for USDC based on exchange rates.
- Balance Tracking: The contract tracks individual user balances for DAI and USDC with mappings.
- Token Withdrawal: The withdraw function enables the contract owner to withdraw tokens from the contract. >>>
После этого происходит деплой и потом уже тест смарт контракта.
Перевести 1000 USDC из контракта AAVE LendingPool в FlashLoan Arbitrage,
Внесите 1000 USDC из FlashLoanArbitrage в контракт DexContract,
Покупка DAI от DexContract к контракту FlashLoanArbitrage,
Депозит DAI в контракт DexContract,
Перевести 1 111,1111 USDC из контракта DexContract в FlashLoanArbitrage
Оплатить 1000 USDC + 0,05% комиссии за флешлоун (1000,5 USDC)
Мы уже говорили про FlashLoan ETH бот в телеграмме, которые показывает резкие изменения в цене и проверяет ту или иную монету на скам. Обычно, легитимные сигналы строятся на миграции ликвидности или на раге самой монеты как это было с GALA. но все таки ГАЛА не относится к флеш лоан кейсу, так как люди покупали на дексе, а продавали на цексе. Да. Конечно некоторые узнали с помощью ботов и использовали ботов для арбитража, с помощью чего заработали намного больше. Но флеш лоан больше относится или арбитражу как мы увидели даже стейбл коинов, а иногда к миграции ликвидности, основными причинами которого являются:
- To improve liquidity: A project may migrate liquidity to a more popular DEX or protocol in order to improve liquidity and trading volume. This can be beneficial for both traders and the project itself.
- To take advantage of better fees: Some DEXes and protocols offer lower fees than others. A project may migrate liquidity to a lower-fee DEX or protocol in order to save money on transaction fees.
- To gain access to new features: Some DEXes and protocols offer features that others do not. For example, some DEXes offer margin trading or perpetual contracts. A project may migrate liquidity to a DEX or protocol that offers these features in order to attract new users.
- To comply with regulations: In some cases, a project may be required to migrate liquidity to a regulated DEX or protocol in order to comply with regulations.
Еще можно рассмотреть такой случай на менее известных платформа на которых либо маленькая комиссия с ограниченными объемами, либо не оптимизированная схема комиссий. В таком случае мы можем создать три смарт контракта A.deposit(), A.transfer(B), B.collectFees(), B.transfer(C), C.collectFees(). Такую можель уже использовали в аттаке которую мы рассмотрим в картинке ниже.
В эксплойте этот хак инициализируется с этого адреса злоумышленника (расположенного по адресу 0xf9e3) и работает следующим образом:
Шаг 1: Flashloan 30M USDT, 13K WETH, 1.4KBTC, 30M USDC, 3M DAI and 200K UNI от Aave. И атаковать восемь пулов PLP. Ниже в качестве примера мы возьмем пул USDT-WETH.
Чтобы легче в дальнейшем понимать подобные схемы остается только разобрать ликвидити пулы
What are Liquidity Pools
В своей базовой форме пул ликвидности содержит 2 токена, и каждый пул создает новый рынок для этой конкретной пары токенов. DAI/ETH может быть хорошим примером популярного пула ликвидности на Uniswap.
При создании нового пула первым поставщиком ликвидности является тот, кто устанавливает начальную цену активов в пуле. Поставщик ликвидности заинтересован в предоставлении пулу одинаковой стоимости обоих токенов.
Если первоначальная цена токенов в пуле отличается от текущей мировой рыночной цены, это создает мгновенную возможность арбитража, которая может привести к потере капитала для поставщика ликвидности. Эта концепция предоставления токенов в правильном соотношении остается неизменной для всех других поставщиков ликвидности, которые готовы добавить больше средств в пул позже.
Когда ликвидность поступает в пул, поставщик ликвидности (LP) получает специальные токены, называемые токенами LP, пропорционально объему ликвидности, который он предоставил в пул. Когда сделка осуществляется пулом, комиссия в размере 0,3% пропорционально распределяется между всеми держателями токенов LP. Если поставщик ликвидности хочет вернуть свою базовую ликвидность, а также любые начисленные комиссии, он должен сжечь свои токены LP.
Каждый обмен токенов, осуществляемый пулом ликвидности, приводит к корректировке цены в соответствии с детерминированным алгоритмом ценообразования. Этот механизм также называется автоматическим маркет-мейкером (AMM), и пулы ликвидности в разных протоколах могут использовать немного другой алгоритм.
Базовые пулы ликвидности, такие как те, что используются Uniswap, используют алгоритм маркет-мейкера постоянного продукта, который гарантирует, что произведение количеств двух поставляемых токенов всегда остается неизменным.
Кроме того, благодаря алгоритму пул всегда может обеспечить ликвидность, независимо от размера сделки. Основная причина этого заключается в том, что алгоритм асимптотически увеличивает цену токена по мере увеличения желаемого количества. Математика, лежащая в основе постоянного маркет-мейкера продукта, довольно интересна, но чтобы эта статья не была слишком длинной, я оставлю ее на другой раз.
Основной вывод здесь заключается в том, что соотношение токенов в пуле определяет цену, поэтому, если кто-то, скажем, покупает ETH из пула DAI/ETH, он уменьшает предложение ETH и добавляет предложение DAI, что приводит к увеличению. в цене ETH и снижении цены DAI.
Насколько изменится цена, зависит от размера сделки, пропорционально размеру пула. Чем больше пул по сравнению со сделкой, тем меньшее влияние на цену происходит, то есть проскальзывание, поэтому большие пулы могут размещать более крупные сделки, не слишком сильно перемещая цену.
Выводы:
- Flash Loan и алгоритм в смарт контракте решает все проблемы традиционного кредитования, благодаря внедренным в алгоритм всеми возсожными кейсами и условиями
- Flash Loan чаще всего используется для арбитража, смены фундаментального залога и уход ит комиссий ликвидации, а аткже для рефинансирования позиции
- AAVE, Compound, dydx и другие проекты развили сферу кредитования благодаря использованию двух смарт контрактов, в которых и заемщик и кредитор получают выгоду
- Система кредитования отличается от традиционной, но ее понимание и примера как можно получить в долг 100$, только отдав 120$ помогает понять устройство
- Front Running, комиссии бирж и платформ, а также изменения стоимости collateral больше несут в себе самые основаные риски
- Флеш лоан использовался много раз для эксплойта смарт контрактов и максимизации профита. Они были совершенны одной транзакциейи ее понимание дает полное представление работы такого виде кредита
- Межбиржевой арбитраж как и арбитраж с использованием флешлоан несет в себе огромное количество сервисов которые показывает сигналы и спреды, но риск фронтраннинга или его аналога увеличивается до максимума, поэтому целеобразнее использовать своих ботов которые ищут спреды.
- Используя просчет в комиссиях не малознакомых платформах и используя меньше объемы, можно раскрыть новую схему флеш лоан арбитража с большими процентами.
- Соотношений токенов в пуле ликвидности, а также вторичные коэффиценты помогут поянть возможности для арбитража на постоянной основе.
Researcher: idksincerely