Ключевые возможности
1️⃣ Singleton
В PancakeSwap v3 каждый пул ликвидности имел собственный контракт, что делало создание пулов и обмен между несколькими пулами более дорогостоящим.
Infinity решает эту проблему с помощью модели Singleton. Теперь все пулы находятся внутри единого контракта, называемого PoolManager. Это изменение снижает затраты на газ при создании пулов до 99% и делает мультихоп-обмены (обмены, проходящие через несколько пулов) значительно дешевле за счёт устранения ненужных переводов токенов.
⚙️ Как это работает:
Данные каждого пула хранятся в общем контракте с использованием уникального идентификатора пула.
Создание нового пула теперь — это просто обновление состояния, а не полное развёртывание контракта.
Обмен между пулами выполняется быстрее и потребляет меньше газа.
Подход Singleton, наряду с другими оптимизациями, такими как Flash Accounting и ERC-6909, делает PancakeSwap Infinity одной из наиболее газоэффективных DEX-платформ, доступных сегодня.
⚡️ Flash Accounting
Flash Accounting — это мощная оптимизация в PancakeSwap Infinity, которая помогает снизить комиссии за газ при сложных транзакциях, таких как мультихоп-обмены и изменения ликвидности.
В старых версиях (например, v3) токены перемещались внутрь и наружу каждого пула на каждом шаге транзакции. Это приводило к высоким затратам на газ, особенно при мультихоп-обменах.
С Flash Accounting это больше не нужно. Вместо перемещения токенов после каждого шага PancakeSwap Infinity отслеживает все перемещения токенов внутренне и выполняет только один финальный перевод в конце всей транзакции. Это значительно экономит газ.
⚙️ Как это работает:
При взаимодействии с Infinity (например, при обмене или добавлении ликвидности) система рассчитывает чистый баланс токенов, которые ты должен или получишь.
Эти чистые балансы токенов временно хранятся с использованием Transient Storage — новой функции, введённой в рамках обновления Ethereum Cancun (EIP-1153).
Transient Storage дешевле традиционного хранилища, поскольку существует только в течение транзакции — постоянная запись или чтение не требуются.
🪙 Поддержка нативных токенов
С введением архитектуры Singleton и Flash Accounting PancakeSwap Infinity теперь поддерживает нативные газовые токены (например, BNB, ETH) непосредственно в пулах ликвидности — больше не нужно оборачивать и разворачивать токены.
✅ Ключевые преимущества
Прямые пулы с нативными токенами: Теперь можно создавать пулы, такие как ETH/USDC, BNB/CAKE, без необходимости использования WETH или WBNB.
Газовая эффективность: Переводы нативных токенов примерно на 50% дешевле переводов токенов ERC-20, что снижает затраты на газ при обменах и операциях с ликвидностью.
Ранее отсутствовала, теперь возвращена: Поддержка нативных токенов отсутствовала в более ранних версиях из-за сложности реализации и фрагментации ликвидности.
📈 Пользовательские ценовые кривые
PancakeSwap Infinity даёт разработчикам возможность создавать пользовательские ценовые модели для пулов — выходя за рамки традиционной модели, используемой в большинстве AMM.
Разработчики могут создавать совершенно новые варианты поведения при обмене и модели ликвидности, адаптированные к конкретным типам активов или торговым стратегиям.
🔧 Что такое пользовательские ценовые кривые?
Пользовательские ценовые кривые позволяют разработчикам:
Обходить нативную логику менеджера пула, создавая пулы с пользовательским поведением обмена.
Изменять способ расчёта количества токенов при обменах или изменениях ликвидности.
Внедрять пользовательскую механику комиссий, например:
Комиссии за вывод ликвидности
Скидки или штрафы на основе стратегии
Всё это стало возможным благодаря хук-колбэкам до/после обмена, которые могут динамически перехватывать и изменять параметры обмена.
🛠 Примеры использования
Кривые StableSwap: Проектирование более пологих кривых вокруг соотношения цен 1:1, снижающих влияние на цену между активами, такими как USDC и USDT.
RWA: Создание пользовательского поведения для различных типов активов с динамическим предложением.
Комиссии на уровне хука: Взимание уникальных комиссий, отличных от комиссий на уровне пула, например, комиссий разработчика.
Пользовательские модели риска: Корректировка ценообразования с учётом волатильности, данных оракулов или внешних показателей.
В предыдущих версиях AMM (например, PancakeSwap v2/v3) логика ценообразования была жёстко закодирована. Архитектура PancakeSwap Infinity открывает возможность создания более капиталоэффективных и адаптированных пулов.
🔍 Гибкость для разработчиков
Разработчики могут развёртывать пользовательские хук-контракты для переопределения логики ценообразования.
Хук-колбэки, такие как beforeSwap и afterSwap, обеспечивают полный контроль над тем, как рассчитываются и применяются дельты токенов.
🧮 ERC-6909: Эффективный учёт нескольких токенов
PancakeSwap Infinity принимает ERC-6909 — лёгкий и газоэффективный стандарт токенов, разработанный для внутреннего учёта нескольких токенов в рамках единого контракта. Он заменяет многие традиционные операции ERC-20 примитивами mint и burn — что приводит к значительной экономии газа и упрощению потоков транзакций.
⚙️ Как это работает
Вместо перемещения токенов внутрь и наружу протокола при каждом взаимодействии токены ERC-6909 представляют внутренние балансы:
Mint (чеканка): Когда пользователи вносят токены или совершают сделку, они могут выбрать получение токенов ERC-6909 в качестве требований.
Burn (сжигание): Позже, вместо повторного перевода токенов ERC-20, пользователи могут просто сжечь эти токены ERC-6909 для погашения балансов или финансирования новых операций.
Эта модель значительно снижает необходимость во внешних переводах токенов, которые, как правило, влекут более высокие затраты на газ и взаимодействуют со сторонней логикой (например, проверками чёрного списка USDC).
🪙 Преимущества ERC-6909
✅ Требования на внутренний баланс
Нет необходимости многократно переводить токены между пользователем и контрактом
✅ Газоэффективные Mint/Burn
Постоянные накладные расходы независимо от токена, без вызовов внешних контрактов
✅ Проще, чем ERC-1155
Меньший размер кода, без колбэков, без требований к пакетным переводам
✅ Поддержка нескольких токенов
Один контракт может отслеживать несколько типов токенов с изолированными балансами
✅ Бесшовная интеграция с PoolManager
Устраняет избыточные одобрения и переводы ERC-20
🚀 Варианты использования
Высокочастотные трейдеры: Избегай газозатратных переводов и взаимодействуй напрямую с использованием внутренних балансов.
Менеджеры ликвидности: Открывай и закрывай позиции более эффективно без избыточных перемещений токенов.
💡 Ключевые замечания
Пользователи самостоятельно включают поток ERC-6909, когда не нуждаются в немедленном расчёте переводов токенов.
Внутренние балансы могут быть консолидированы и нетто-погашены позже, предоставляя опытным пользователям больший контроль и гибкость.
💸 Метод Donate
Метод donate() позволяет пользователям напрямую стимулировать поставщиков ликвидности, находящихся в диапазоне цен внутри пула, путём пожертвования токенов. Этот метод опирается на систему учёта комиссий пула для проведения выплат, обеспечивая поддержку только токенов пула.
🔹 Ключевые функции:
Прямые выплаты поставщикам ликвидности: Пожертвования передаются непосредственно поставщикам ликвидности, вознаграждая тех, кто поддерживает ликвидность в активном диапазоне пула.
Поддержка только токенов пула: Метод
donate()поддерживает только пожертвования в токенах пула, поскольку использует систему учёта комиссий для обеспечения надлежащего распределения.Доступен всем пользователям: Любой пользователь может вызвать метод
donate(), что позволяет каждому стимулировать активное предоставление ликвидности.
Хотя метод donate() является мощным инструментом для стимулирования поставщиков ликвидности, жертвователи должны знать, что их пожертвования могут быть подвержены фронтраннингу со стороны других пользователей. Это может произойти, когда пользователь быстро добавляет ликвидность в пул непосредственно перед пожертвованием, получая часть пожертвованных средств.
Чтобы предотвратить фронтраннинг, жертвователям, возможно, потребуется рассмотреть дополнительные стратегии при разработке механизмов пожертвований, например:
Обеспечение того, чтобы пожертвования происходили таким образом, чтобы минимизировать возможности для оппортунистического фронтраннинга.
Добавление временных задержек или специальных условий (с использованием хук-колбэков до/после пожертвования), обеспечивающих защиту от эксплуатации таким образом.
Last updated
Was this helpful?