У поточному стані індустрії Web3 продукти, пов'язані з DeFi, займають абсолютну частку ринку. А серед них AMM (Automated Market Maker, автоматизований маркет-мейкер) як ключовий елемент є потужним двигуном змін у фінансовій сфері Web3. У цій статті буде представлено кілька важливих реалізацій AMM в екосистемі Solana, сподіваючись, що це допоможе LP (Постачальнику ліквідності) у виборі власної інвестиційної стратегії.
СРММ
CPMM (Постійний продуктРинок творець) як найосновніше AMM реалізується у багатьох продуктах. Тут в прикладі використовується AMM на основі постійного добутку, випущений Raydium. Постійний добуток означає, що кількість двох токенів у пулі має фіксований добуток: X * Y = k.
Для постачальників ліквідності, коли будь-хто додає ліквідність (додає активи) у пул, CPMM автоматично створює асоційований рахунок для гаманця та випускає LP Token (для кожної торгової пари є свій LP Token Mint). Цей LP Token використовується для підтвердження того, що гаманець має частку в певному пулі, і буде знищений відповідний Token під час виведення ліквідності постачальником ліквідності.
Онлайн-програма CPMM розроблена за допомогою Anchor, код програми можна знайти на . Давайте коротко підтвердимо, як вона реалізує постійний добуток.
По-перше, під час використання користувачем CPMM для обміну токенів на Raydium буде викликано команди, пов'язані з обміном.
Наприклад (лише для ілюстрації, ця стаття не несе відповідальності за жодний токен): коли користувач хоче обміняти USDC на TRUMP, він може здійснити обмін через пул TRUMP-USDC.
Наприклад, ми розглядаємо цю угоду, для простоти нехай ми ігноруємо інші команди в угоді, а просто подивимося на частину Raydium. Знайдіть Raydium CPMM: swapBaseInput:
У Input Accounts ми можемо побачити, що вхідний токен - це USDC, а вихідний токен - TRUMP. У екосистемі Solana AMM LP Pair може бути просто представлений через Token Account, без необхідності створювати нову контрактну програму і розгортати її (наприклад, популярний у Ethereum фабричний контракт). Коли відбувається торгівля, взаємодіють безпосередньо з CPMM Program Raydium, програма Solana змінює стан відповідного Token Account, використовуючи передані адреси пулу, адреси токенів тощо, щоб виконати операцію swap.
Наприклад, вище наведена команда swapBaseInput, код можна знайти тут. Після серії попередніх перевірок, скільки саме цільових токенів можна обміняти, було розраховано за допомогою ConstantProductCurve.swap_base_input_without_fees:
Серед використаних формул:
Тобто, після зміни загальної кількості TokenX і TokenY їх добуток має залишатися незмінним. Ліва сторона формули - це добуток після зміни, права сторона - добуток до зміни.
Вищезгадане рівняння, після математичних перетворень, дозволяє отримати формулу перетворення Δy (тобто кількість токенів y, які ми можемо обміняти):
Також це частина коду delta_y = (delta_x * y) / (x + delta_x). Зверніть увагу, що у цьому обчисленні не враховується комісія, оскільки вона вже була вирахувана в попередній логіці swap_base_input.
CLMM
CLMM (Концентрований ринковий маркетмейкер ліквідності) також є AMM, випущеним Raydium, він подібний до Uniswap V3, кожна торговельна пара має кілька рівнів зборів, що дозволяє створювати відповідний пул для кожного рівня.
Оскільки реалізація CLMM базується на Uniswap V3, багато концепцій і способів реалізації можна вивчити, спираючись на реалізацію Uniswap. Вона також успадкувала концепції Uniswap, такі як tick, багато рівнів комісії, зосереджена ліквідність тощо. Більше інформації можна знайти в курсі розробки DEX, представленому ZAN: DEX Development Practice - Аналіз коду Uniswap - Як працює Uniswap - ZAN
Але слід звернути увагу, що, подібно до CPMM, завдяки особливостям мережі Solana, Raydium CLMM не потребує окремого розгортання контракту для кожного пулу, тому також немає концепції фабричного контракту. Це відрізняється від Uniswap.
CLMM дозволяє постачальникам ліквідності обирати ціновий діапазон під час внесення коштів, кошти будуть розподілені лише в межах обраного діапазону:
Для централізованих ліквідних пулів токени розміщуються з обох сторін поточної ціни. Обраний у верхньому зображенні діапазон цін охоплює поточну ціну, тому кошти будуть розподілені між двома токенами в пулі.
Ми також можемо ін'єктувати лише певний токен, щоб забезпечити так звану односторонню ліквідність (як показано на малюнку нижче). Це дещо нагадує обмежене замовлення в традиційних фінансових моделях, де кошти LP використовуються лише тоді, коли ціна токена досягає певного діапазону, хоча в цій моделі також потрібно враховувати більше ризиків.
Загалом, для пулів з невеликими коливаннями цін LP, як правило, намагаються вибрати менший діапазон; навпаки, для тих пулів, де коливання цін є дуже різкими, вони схильні вибирати більший діапазон. Така мета полягає в тому, щоб максимально уникнути виходу поточної ціни за межі обраного діапазону, що призводить до занадто великих непостійних втрат.
Слід зазначити, що концентрована ліквідність, хоча й може підвищити ефективність використання капіталу постачальників ліквідності, також висуває вищі вимоги до фінансової обізнаності постачальників ліквідності. Постачальники ліквідності повинні більш активно управляти своєю ліквідністю. Якщо постачальники ліквідності не впораються, то часті коливання на блокчейні можуть легко призвести до серйозних непостійних втрат.
DLMM
DLMM (Динамічний ринок ліквідності ) - це продукт AMM, розроблений Meteora, який також є різновидом Uniswap V3 і дуже схожий на згадуваний вище CLMM. DLMM також дозволяє постачальникам ліквідності концентрацію їхніх коштів у певному діапазоні поблизу поточної ціни. Проте DLMM має деякі відмінності у реалізації та пропонує ряд унікальних функцій.
DLMM пропонує концепцію Bin, де пул починається з базової ціни, а кожен невеликий крок Bin існує як Bin. Якщо торгівля відбувається в одному й тому ж Bin, трейдери отримують нульове ковзання. Це може значно збільшити обсяги торгівлі та ймовірність успіху торгівлі, теоретично LP може отримати більше торгових зборів.
Подібно до CLMM, токени в пулі також розподілені з обох боків від поточної ціни, і один токен лише потребує надання односторонньої ліквідності. Але згідно з концепцією Bin, активний Bin (який вказує на поточну ціну обміну) має два типи токенів. А саме:
Активний Bin: у ньому є дві монети, обмін монет у поточному Bin буде здійснюватися за фіксованою ціною, і з 0 сліпом;
Інші Bin: Розташовані з обох боків від активного Bin, існує лише один токен.
Коли обсяг токенів у активному біні змінюється, і якщо у однієї зі сторін токени зменшуються до 0, DLMM встановить активний бін на наступний бін зліва або справа, залежно від фактичної ситуації в пулі. Це сприятиме змінам ціни в пулі.
При наданні ліквідності LP, DLMM пропонує 3 стратегії: Spot, Curve та Bid Ask.
Серед них Spot є найбільш поширеним, практично всі ліквідні пули підійдуть, це вважається найпростішою стратегією ліквідності.
Curve більше підходить для тих пулів, де зміни цін дуже незначні, наприклад, пари стабільних монет. Ці пули мають дуже малу волатильність цін, як це показує їхня форма, зосереджуючи кошти LP у цьому діапазоні, що дозволяє максимально використовувати торгові збори.
Bid Ask більше підходить для пулів з дуже високими коливаннями цін. У таких пулах завжди є тенденція до більшої кількості арбітражу, де цінам може бути складно сконцентруватися в невеликому діапазоні. Ця стратегія зазвичай вимагає від LP частого коригування своїх позицій, щоб уникнути випадання ціни за межі встановленого діапазону фінансування. Це часто буває непросто через судження, пов'язане з ринком.
підсумок
AMM як важлива складова Web3 фінансів, завдяки своїм унікальним механізмам та інноваціям, сприяє поширенню та розвитку Децентралізованих фінансів. З постійним прогресом технологій та вдосконаленням екосистеми, AMM має можливість відігравати ще більшу роль у майбутньому, ще більше змінюючи традиційну фінансову структуру.
Контент має виключно довідковий характер і не є запрошенням до участі або пропозицією. Інвестиційні, податкові чи юридичні консультації не надаються. Перегляньте Відмову від відповідальності , щоб дізнатися більше про ризики.
Дослідження екосистеми AMM Solana: базовий код за високою Ліквідністю
У поточному стані індустрії Web3 продукти, пов'язані з DeFi, займають абсолютну частку ринку. А серед них AMM (Automated Market Maker, автоматизований маркет-мейкер) як ключовий елемент є потужним двигуном змін у фінансовій сфері Web3. У цій статті буде представлено кілька важливих реалізацій AMM в екосистемі Solana, сподіваючись, що це допоможе LP (Постачальнику ліквідності) у виборі власної інвестиційної стратегії.
СРММ
CPMM (Постійний продукт Ринок творець) як найосновніше AMM реалізується у багатьох продуктах. Тут в прикладі використовується AMM на основі постійного добутку, випущений Raydium. Постійний добуток означає, що кількість двох токенів у пулі має фіксований добуток: X * Y = k.
Для постачальників ліквідності, коли будь-хто додає ліквідність (додає активи) у пул, CPMM автоматично створює асоційований рахунок для гаманця та випускає LP Token (для кожної торгової пари є свій LP Token Mint). Цей LP Token використовується для підтвердження того, що гаманець має частку в певному пулі, і буде знищений відповідний Token під час виведення ліквідності постачальником ліквідності.
Онлайн-програма CPMM розроблена за допомогою Anchor, код програми можна знайти на . Давайте коротко підтвердимо, як вона реалізує постійний добуток.
По-перше, під час використання користувачем CPMM для обміну токенів на Raydium буде викликано команди, пов'язані з обміном.
Наприклад (лише для ілюстрації, ця стаття не несе відповідальності за жодний токен): коли користувач хоче обміняти USDC на TRUMP, він може здійснити обмін через пул TRUMP-USDC.
| | | | | --- | --- | --- | | Басейн | TRUMP | USDC | | 7XzVsjqTebULfkUofTDH5gDdZDmxacPmPuTfHa1n9kuh | 6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
Наприклад, ми розглядаємо цю угоду, для простоти нехай ми ігноруємо інші команди в угоді, а просто подивимося на частину Raydium. Знайдіть Raydium CPMM: swapBaseInput:
У Input Accounts ми можемо побачити, що вхідний токен - це USDC, а вихідний токен - TRUMP. У екосистемі Solana AMM LP Pair може бути просто представлений через Token Account, без необхідності створювати нову контрактну програму і розгортати її (наприклад, популярний у Ethereum фабричний контракт). Коли відбувається торгівля, взаємодіють безпосередньо з CPMM Program Raydium, програма Solana змінює стан відповідного Token Account, використовуючи передані адреси пулу, адреси токенів тощо, щоб виконати операцію swap.
Наприклад, вище наведена команда swapBaseInput, код можна знайти тут. Після серії попередніх перевірок, скільки саме цільових токенів можна обміняти, було розраховано за допомогою ConstantProductCurve.swap_base_input_without_fees:
Серед використаних формул:
Тобто, після зміни загальної кількості TokenX і TokenY їх добуток має залишатися незмінним. Ліва сторона формули - це добуток після зміни, права сторона - добуток до зміни.
Вищезгадане рівняння, після математичних перетворень, дозволяє отримати формулу перетворення Δy (тобто кількість токенів y, які ми можемо обміняти):
Також це частина коду delta_y = (delta_x * y) / (x + delta_x). Зверніть увагу, що у цьому обчисленні не враховується комісія, оскільки вона вже була вирахувана в попередній логіці swap_base_input.
CLMM
CLMM (Концентрований ринковий маркетмейкер ліквідності) також є AMM, випущеним Raydium, він подібний до Uniswap V3, кожна торговельна пара має кілька рівнів зборів, що дозволяє створювати відповідний пул для кожного рівня.
Оскільки реалізація CLMM базується на Uniswap V3, багато концепцій і способів реалізації можна вивчити, спираючись на реалізацію Uniswap. Вона також успадкувала концепції Uniswap, такі як tick, багато рівнів комісії, зосереджена ліквідність тощо. Більше інформації можна знайти в курсі розробки DEX, представленому ZAN: DEX Development Practice - Аналіз коду Uniswap - Як працює Uniswap - ZAN
Але слід звернути увагу, що, подібно до CPMM, завдяки особливостям мережі Solana, Raydium CLMM не потребує окремого розгортання контракту для кожного пулу, тому також немає концепції фабричного контракту. Це відрізняється від Uniswap.
CLMM дозволяє постачальникам ліквідності обирати ціновий діапазон під час внесення коштів, кошти будуть розподілені лише в межах обраного діапазону:
Для централізованих ліквідних пулів токени розміщуються з обох сторін поточної ціни. Обраний у верхньому зображенні діапазон цін охоплює поточну ціну, тому кошти будуть розподілені між двома токенами в пулі.
Ми також можемо ін'єктувати лише певний токен, щоб забезпечити так звану односторонню ліквідність (як показано на малюнку нижче). Це дещо нагадує обмежене замовлення в традиційних фінансових моделях, де кошти LP використовуються лише тоді, коли ціна токена досягає певного діапазону, хоча в цій моделі також потрібно враховувати більше ризиків.
Загалом, для пулів з невеликими коливаннями цін LP, як правило, намагаються вибрати менший діапазон; навпаки, для тих пулів, де коливання цін є дуже різкими, вони схильні вибирати більший діапазон. Така мета полягає в тому, щоб максимально уникнути виходу поточної ціни за межі обраного діапазону, що призводить до занадто великих непостійних втрат.
Слід зазначити, що концентрована ліквідність, хоча й може підвищити ефективність використання капіталу постачальників ліквідності, також висуває вищі вимоги до фінансової обізнаності постачальників ліквідності. Постачальники ліквідності повинні більш активно управляти своєю ліквідністю. Якщо постачальники ліквідності не впораються, то часті коливання на блокчейні можуть легко призвести до серйозних непостійних втрат.
DLMM
DLMM (Динамічний ринок ліквідності ) - це продукт AMM, розроблений Meteora, який також є різновидом Uniswap V3 і дуже схожий на згадуваний вище CLMM. DLMM також дозволяє постачальникам ліквідності концентрацію їхніх коштів у певному діапазоні поблизу поточної ціни. Проте DLMM має деякі відмінності у реалізації та пропонує ряд унікальних функцій.
DLMM пропонує концепцію Bin, де пул починається з базової ціни, а кожен невеликий крок Bin існує як Bin. Якщо торгівля відбувається в одному й тому ж Bin, трейдери отримують нульове ковзання. Це може значно збільшити обсяги торгівлі та ймовірність успіху торгівлі, теоретично LP може отримати більше торгових зборів.
Подібно до CLMM, токени в пулі також розподілені з обох боків від поточної ціни, і один токен лише потребує надання односторонньої ліквідності. Але згідно з концепцією Bin, активний Bin (який вказує на поточну ціну обміну) має два типи токенів. А саме:
Коли обсяг токенів у активному біні змінюється, і якщо у однієї зі сторін токени зменшуються до 0, DLMM встановить активний бін на наступний бін зліва або справа, залежно від фактичної ситуації в пулі. Це сприятиме змінам ціни в пулі.
При наданні ліквідності LP, DLMM пропонує 3 стратегії: Spot, Curve та Bid Ask.
підсумок
AMM як важлива складова Web3 фінансів, завдяки своїм унікальним механізмам та інноваціям, сприяє поширенню та розвитку Децентралізованих фінансів. З постійним прогресом технологій та вдосконаленням екосистеми, AMM має можливість відігравати ще більшу роль у майбутньому, ще більше змінюючи традиційну фінансову структуру.