
Недостаток ликвидности: гипотеза о коротких бассейнах для EVM
16 июля 2025 г.Новый рыночный цикл действительно чувствует себя по -другому. В то время как в 2017 году был отмечен бум ICO и 2021 год быстрым ростом сектора DEFI и NFT, в текущем цикле токены мемов берут на себя инициативу. Общественные деятели вышли на сцену, в том числе президенты и даже лидеры крупных стран.
В январе 2024 года на блокчейне Solana Project Pump.fun был запущен, что позволило пользователям создавать токены как можно быстрее и дешево.
Тем не менее, большинство токенов мемов испытывают быстрый рост, за которым следует еще более быстрое снижение. Иногда все заканчивается простой натяжкой коврика.
При передаче ликвидности с начальной панели в DEX, и по мере роста сообщества развитие цен, как правило, следует следовать этой модели:
Но на самом деле оказывается так:
На мой взгляд, это связано с тем, что рынок работает по принципу игры с нулевой суммой. Однако с использованием пулов ликвидности на DEXS и возможности продавать без соответствующего противодействия порядку, баланс между спросом и предложением искажается.
Идеи о том, как это можно улучшить, пришли ко мне после проанализирования алгоритмических стаблеков, особенно Terra Luna. Для тех, кто не знаком с этим проектом, вот краткое объяснение того, как он работает:
В случае, когда цена UST упала ниже 1 доллара, был вызван алгоритм дебаса, что позволило трейдерам обмениваться 1 UST на 1 Луну. Во время этого процесса UST был сожжен, в то время как New Luna была четена.
Когда цена UST выросла выше 1 доллара, активированный алгоритм Rebase, где Луна была сгорела и, наоборот, New UST был чокнут.
Тем не менее, вся экосистема столкнулась с так называемой «Спиралью смерти», укоренившейся в эндогенной (цепь) природе ее коллатерального. Несмотря на различия в алгоритмах, такие проекты, как базис, и пустой набор доллара, повторяли ту же ошибку - полагаться на внутренний залог привели их к аналогичным вопросам и возможным краху.
Напротив, пример DAI показывает, что экзогенный (вне цепь) также может быть уязвим: когда ETH разбился почти на 50% за один день, система была подвергнута риску. Тем не менее, именно использование внешнего обеспечения позволило стабилизировать ситуацию впоследствии - посредством чрезвычайной эмиссии токена MKR и вмешательства сообществом.
На цепочке | Вне цепочки | |
---|---|---|
Тип залога | Алгоритмическое выпуск | Коллатерал крипто -активов |
Корректировка обменного курса | Арбитражный обмен | Динамическая плата за стабильность |
Риск | Спираль Смерти | Ликвидация залога |
После сравнения двух типов обеспечения я пришел к выводу, что для поддержки цены необходимо создать отдельный пул с короткой ликвидностью, независимым от длинного пула.
Это может работать следующим образом: наряду с передачей ликвидности в DEX, ликвидность также добавляется в протокол специально для открытия коротких позиций.
Оттуда возможно несколько сценариев:
Оба бассейна растут - что означает, что кто -то открывает короткую позицию. Именно здесь становится очевидным первое преимущество идеи: повышенная прозрачность рынка.
Если спрос превышает предложение, это естественная ситуация на рынке.
Точно так же, когда предложение превышает спрос, оно также является частью обычной динамики рынка.
В случае резкого изменения в длинном бассейне - настолько радикальном, что даже этикетка не подходит - может быть активирован алгоритм перебалансировки. В результате цена возвращается в равновесие благодаря участию короткого пула без продавца.
Для функционирования алгоритма перебалансировки требуется следующее:
- Определение того, какой процент изменения цен за определенный период времени будет считаться «ненормальным» колебанием рынка;
- Настройка непрерывного мониторинга цен;
- Когда указанные условия выполняются, выполняют перебалансировку, ограничивая его размер до одного цикла до определенного процента, чтобы защитить систему от манипуляций.
В этой статье я подробнее рассмотрю один из ключевых компонентов этого механизма-создание короткого пула ликвидности для EVM-совместимых блокчейнов с использованием прочности.
Подготовка
Протокол будет обрабатывать средства пользователей, мы импортируем Openzeppelin'sOwnable
иReentrancyGuard
Контракты, а также контракт на получение цен на активы из Che Chainlink.
Для простоты мы будем использовать токены WBTC и Weth на Mainnet Ethereum, хотя в идеале список доступных токенов следует определять при развертывании смарт -контракта.
Чтобы сделать контракт более расширяемым, мы добавимmapping
Для подтвержденных токенов, где ключом является адрес токена, а значение - адрес соответствующего контракта на подачу цены.
Давайте также реализуем функцию утилиты для добавления значений вmapping
Полем Чтобы повысить безопасность, мы предотвратим обновление адреса контракта Oracle для токена, который уже был добавлен.
Чтобы хранить позиции, мы будем использоватьmapping
где ключ является адресом пользователя, а значение - это массив структур, содержащих:
- Токен адрес
- Открытие и закрытие цен
- Размер позиции
- Состояние тока (открыто, закрыто или ликвидировано)
Открытие позиции
В этом протоколе цены будут деноминированы в долларах США, поэтому нам понадобится внутренняя функция для нормализации стоимости.
Чтобы получить цену открытия в долларах США, мы сначала запрашиваем Oracle для текущей цены ETH и цены токена, нормализуют оба значения, а затем рассчитываем размер позиции. Если все проверки проходят, мы добавляем позицию вmapping
и излучать событие, используяemit
Полем
Закрытие позиции
Чтобы объединить логику для закрытия и ликвидации позиций, мы создадим модификатор, который проверяет текущее состояние позиции.
Мы также создадим вспомогательную функцию для вычисления суммы снятия и цены закрытия.
Далее, при закрытии позиции есть два возможных сценария:
Если пользователь имеет право на получение средств обратно, мы устанавливаем цену закрытия и снимаем средства пользователю.
Если положение должно быть ликвидировано (например, из -за недостаточного обеспечения), положение помечено как ликвидация без перевода средств.
В качестве заполнителя по цене закрытия в случае ликвидации, максимумuint256
значение может быть использовано.
Эта реализация упрощена, поэтому было бы лучше добавить автоматизацию с помощью цепочки или мороженого для периодической проверки цен и автоматической ликвидации при необходимости.
Чтобы поддержать это, функция ликвидации должна принять адрес пользователя в качестве параметра, чтобы указать, какая позиция должна быть ликвидирована.
Заключение
В этой статье я поделился гипотезой о короткой пуле ликвидности и предложил базовую реализацию в солизности для блокчейна Ethereum. Если кто -то найдет эту идею интересной, я был бы рад видеть, что она станет частью более крупного проекта!
Полный код доступен наGitHubПолем
Оригинал