Web3業界の現状において、DeFiに関連する製品は絶対的な市場を占めています。その中でも、AMM(Automated Market Maker、自动做市商)は重要な一環として、Web3金融の変化を強力に推進しています。本稿では、ソラナエコシステム内のいくつかの重要なAMM実装について紹介し、LP(Liquidity Provider、流动性提供者)が自らの投資戦略を選択する際に役立つことを期待しています。CPMM ###**CPMM** (**一定の積** **マーケットメーカー**) は、最も基本的な AMM 実装として、多くのプロダクトに実装されています。ここでは、Raydium が提供する一定の積に基づく AMM を例に挙げます。一定の積とは、プール内の二種類のトークンの供給量が固定の積を持つことを意味します:X \* Y = k。流動性プロバイダーにとって、誰かがプールに流動性(資産を追加)を追加すると、CPMMは自動的にウォレットアドレスに関連付けられたアカウントを作成し、LPトークンを発行します(各トークンペアには独自のLPトークンミントがあります)。このLPトークンは、そのウォレットアドレスが特定のプールのシェアを保有していることを証明するために使用され、流動性プロバイダーが引き出す際には対応するトークンが破棄されます。CPMMのオンチェーンプログラムはAnchorを使用して開発されており、プログラムコードは見つけることができます。次に、恒定積がどのように実現されているかを簡単に確認しましょう。まず、ユーザーがRaydiumのCPMMを使用してトークンを交換する際、swap関連の指示がトリガーされます。例えば(状況を説明するためだけであり、この記事はどのトークンにも責任を負いません):ユーザーがUSDCを使ってTRUMPを交換したい場合、TRUMP-USDCのプールを通じて交換できます。| | | || --- | --- | --- || プール | トランプ | USDCの || 7XzVsjqTebULfkUofTDH5gDdZDmxacPmPuTfHa1n9kuh | 6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |例えば、この取引を見てみましょう。簡単のために、取引内の他の命令を無視し、Raydiumの部分だけを見てみましょう。Raydium CPMMを見つけます:swapBaseInput:! [SolanaエコシステムAMM研究:高流動性の背後にある基礎となるコード](https://img-cdn.gateio.im/social/moments-888d982f15ce3c27c6334c37dfa8fdd9)Input Accounts では、入力トークンが USDC、出力トークンが TRUMP であることがわかります。ソラナエコシステムの AMM では、LP Pair は Token Account を使用して簡単に表現でき、新しい契約プログラムを作成してデプロイする必要はありません(例えば、イーサリアムで一般的に使用されるファクトリーコントラクトのように)。取引が発生すると、直接 Raydium の CPMM Program と対話し、ソラナプログラムは渡されたプールアドレス、トークンアドレスなどを通じて該当する Token Account の状態を変更し、swap 操作を実行します。例えば上述の swapBaseInput 指令は、ここでコードを見つけることができます。一連の前提チェックを経て、具体的にどれだけの目標トークンに交換できるかは、ConstantProductCurve.swap_base_input_without_feesで計算されました。! [SolanaエコシステムAMM研究:高流動性の背後にある基礎となるコード](https://img-cdn.gateio.im/social/moments-0cd2b8ac94f0c770688a696d01aa3a14)その中で使用される公式は:! [SolanaエコシステムAMM研究:高流動性の背後にある基本的なコード](https://img-cdn.gateio.im/social/moments-2ec2653a014a540b670682d2caf3a00d)即 TokenX と TokenY の総量がそれぞれ変化した後、その積は保持されるべきです。公式の左側は変化後の積、右側は変化前の積です。! [Solana Ecosystem AMM Research: The Underlying Code Behind High Liquidity](https://img-cdn.gateio.im/social/moments-e37158b5b9adf9a88d817e837dcc7456)上述の数式は数学的変換を通じて、Δy(つまり私たちが交換できるyトークンの数量)の変換公式を得ることができます:! [SolanaエコシステムAMMリサーチ:高流動性の背後にある基礎となるコード](https://img-cdn.gateio.im/social/moments-2d7712d72d2c0895cbb3a5bc896a9781)つまり、コードの中の delta_y = (delta_x * y) / (x + delta_x)の部分です。ここでの計算には手数料は含まれておらず、すでに swap_base_inputの前置ロジックで引かれています。CLMM ###**CLMM (集中流動性マーケットメイカー)** 同様に、Raydiumが提供するAMMであり、Uniswap V3に似ており、各トークンペアには複数の手数料層があり、それぞれに対応する層のプールを作成できます。CLMMの実装はUniswap V3に基づいているため、学習する際に多くの概念と実装を参照できます。 また、ティック、マルチフィー層、中央集権的な流動性など、Uniswapの概念を継承しています。 その他のコンテンツは、ZAN の DEX 開発コース: DEX 開発プラクティス - Uniswap コード分析 - Uniswap の仕組み - ZAN にあります。しかし注意が必要なのは、CPMM に似て、ソラナ チェーンの特性により、Raydium CLMM は各プールごとに別々のコントラクトをデプロイする必要がなく、ファクトリーコントラクトの概念も存在しないということです。これは Uniswap とは異なります。CLMMは流動性プロバイダーが資金を注入する際に価格範囲を選択でき、資金は選択した範囲内にのみ分配されます。! [SolanaエコシステムAMMリサーチ:高流動性の背後にある基礎となるコード](https://img-cdn.gateio.im/social/moments-fef4e9886047f31e3328b34af69187d5)集中流動性プールでは、トークンは現在の価格の両側にそれぞれ存在します。上図で選択された価格範囲は現在の価格を含んでいるため、資金はプール内の2種類のトークンにそれぞれ配分されます。私たちは特定のトークンのみを注入して、いわゆる単辺流動性を提供することもできます(下の図参照)。これは、従来の金融モデルにおける指値注文に似ており、LPの資金はトークンの価格が特定の範囲に達したときにのみ利用されますが、このモデルには考慮すべきリスクポイントも多くなります。! [SolanaエコシステムAMM研究:高流動性の背後にある基礎となるコード](https://img-cdn.gateio.im/social/moments-bb11b6aeaa5618925c982930d7ba7895)一般的に、価格変動が小さいプールに対しては、LPは小さめの範囲を選ぶ傾向があります。一方、価格変動が非常に激しいプールに対しては、大きめの範囲を選ぶ傾向があります。これは、現在の価格が自身が選択した価格範囲から外れすぎないようにし、過度な無常損失を避けることを目的としています。注意が必要なのは、集中流動性はLPの資金の利用率を高めることができるが、同時にLPに対してより高い金融意識が求められることである。LPは自分の流動性をより積極的に管理する必要がある。もしLPが適切に対応できなければ、チェーン上で頻繁に発生する変動がLPに深刻な無常損失をもたらす可能性がある。DLMM ###DLMM (ダイナミック流動性マーケットメイカー)はMeteoraが提供するAMM製品であり、Uniswap V3の一種でもあります。また、前述のCLMMにも非常に似ています。DLMMは、流動性プロバイダーが自分の資金を現在の価格近くの一定範囲に集中させることを許可します。しかし、DLMMは具体的な実装においていくつか異なる点があり、いくつかの特徴的な機能も提供しています。DLMMではBinの概念が提供されており、プールは基礎価格から始まり、Bin stepごとに1つのBinとして存在します。同じBin内で取引が行われる場合、トレーダーはスリッページゼロの恩恵を受けます。これは取引量と取引成功率を大幅に増加させることができ、理論的には流動性プロバイダーがより多くの取引手数料を獲得できるようになります。! [SolanaエコシステムAMM研究:高流動性の背後にある基礎となるコード](https://img-cdn.gateio.im/social/moments-e993d4d3b41f519e823ea34dc4d04263)CLMMと同様に、プール内のトークンは現在の価格の両側に分布しており、1つのトークンだけで片側の流動性を提供する必要があります。しかし、Binの概念に基づくと、現在アクティブなBin(現在の交換価格を示す)には2種類のトークンがあります。つまり:* 現在アクティブなBin:ここには2つのトークンが存在し、現在のBin内でトークンを交換する際は固定価格で行われ、0スリッページです;* 他のBin:現在アクティブなBinの両側に分布し、それぞれ単一のトークンのみが存在します。現在アクティブなBin内のトークン量が変化した場合、いずれかの当事者のトークンが0に減少すると、DLMMは現在アクティブなBinをプール内の実際の状況に基づいて、左側または右側の次のBinに設定します。これにより、プール内の価格変動を促進します。LPが流動性を提供する際、DLMMは3つの戦略を提供しています。それぞれSpot、Curve、Bid Askです。* その中で、Spotは最も一般的で、基本的にすべての流動性プールが比較的適しており、最もシンプルな流動性戦略の一つと言えます。* Curveは、ステーブルコインペアなど、価格変動が非常に小さいプールに適しています。 これらのプールの価格変動は、その形状が示すように非常に小さく、この範囲内にLP資金が集中することで、取引手数料を最大化できます。* Bid Askは、価格変動が非常に大きいプールにより適しています。人々は常にこのようなプールでより多くのアービトラージ取引を行う傾向があり、価格は特定の狭い範囲に集中するのが難しい場合があります。この戦略は通常、流動性プロバイダーが自分のポジションを頻繁に調整する必要があり、設定した資金範囲から価格が逸脱するのを避けるために必要です。市場の判断力が必要なため、これは通常容易ではありません。###概要AMMはWeb3金融分野の重要な構成要素として、その独自のメカニズムと革新を通じて分散型金融の普及と発展を推進しています。技術の進歩とエコシステムの充実に伴い、AMMは今後さらに大きな役割を果たし、従来の金融の構造をさらに変えることが期待されています。
ソラナエコシステムAMM調査:高流動性の背後にある基盤コード
Web3業界の現状において、DeFiに関連する製品は絶対的な市場を占めています。その中でも、AMM(Automated Market Maker、自动做市商)は重要な一環として、Web3金融の変化を強力に推進しています。本稿では、ソラナエコシステム内のいくつかの重要なAMM実装について紹介し、LP(Liquidity Provider、流动性提供者)が自らの投資戦略を選択する際に役立つことを期待しています。
CPMM ###
CPMM (一定の積 マーケットメーカー) は、最も基本的な AMM 実装として、多くのプロダクトに実装されています。ここでは、Raydium が提供する一定の積に基づく AMM を例に挙げます。一定の積とは、プール内の二種類のトークンの供給量が固定の積を持つことを意味します:X * Y = k。
流動性プロバイダーにとって、誰かがプールに流動性(資産を追加)を追加すると、CPMMは自動的にウォレットアドレスに関連付けられたアカウントを作成し、LPトークンを発行します(各トークンペアには独自のLPトークンミントがあります)。このLPトークンは、そのウォレットアドレスが特定のプールのシェアを保有していることを証明するために使用され、流動性プロバイダーが引き出す際には対応するトークンが破棄されます。
CPMMのオンチェーンプログラムはAnchorを使用して開発されており、プログラムコードは見つけることができます。次に、恒定積がどのように実現されているかを簡単に確認しましょう。
まず、ユーザーがRaydiumのCPMMを使用してトークンを交換する際、swap関連の指示がトリガーされます。
例えば(状況を説明するためだけであり、この記事はどのトークンにも責任を負いません):ユーザーがUSDCを使ってTRUMPを交換したい場合、TRUMP-USDCのプールを通じて交換できます。
| | | | | --- | --- | --- | | プール | トランプ | USDCの | | 7XzVsjqTebULfkUofTDH5gDdZDmxacPmPuTfHa1n9kuh | 6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
例えば、この取引を見てみましょう。簡単のために、取引内の他の命令を無視し、Raydiumの部分だけを見てみましょう。Raydium CPMMを見つけます:swapBaseInput:
! SolanaエコシステムAMM研究:高流動性の背後にある基礎となるコード
Input Accounts では、入力トークンが USDC、出力トークンが TRUMP であることがわかります。ソラナエコシステムの AMM では、LP Pair は Token Account を使用して簡単に表現でき、新しい契約プログラムを作成してデプロイする必要はありません(例えば、イーサリアムで一般的に使用されるファクトリーコントラクトのように)。取引が発生すると、直接 Raydium の CPMM Program と対話し、ソラナプログラムは渡されたプールアドレス、トークンアドレスなどを通じて該当する Token Account の状態を変更し、swap 操作を実行します。
例えば上述の swapBaseInput 指令は、ここでコードを見つけることができます。一連の前提チェックを経て、具体的にどれだけの目標トークンに交換できるかは、ConstantProductCurve.swap_base_input_without_feesで計算されました。
! SolanaエコシステムAMM研究:高流動性の背後にある基礎となるコード
その中で使用される公式は:
! SolanaエコシステムAMM研究:高流動性の背後にある基本的なコード
即 TokenX と TokenY の総量がそれぞれ変化した後、その積は保持されるべきです。公式の左側は変化後の積、右側は変化前の積です。
! Solana Ecosystem AMM Research: The Underlying Code Behind High Liquidity
上述の数式は数学的変換を通じて、Δy(つまり私たちが交換できるyトークンの数量)の変換公式を得ることができます:
! SolanaエコシステムAMMリサーチ:高流動性の背後にある基礎となるコード
つまり、コードの中の delta_y = (delta_x * y) / (x + delta_x)の部分です。ここでの計算には手数料は含まれておらず、すでに swap_base_inputの前置ロジックで引かれています。
CLMM ###
CLMM (集中流動性マーケットメイカー) 同様に、Raydiumが提供するAMMであり、Uniswap V3に似ており、各トークンペアには複数の手数料層があり、それぞれに対応する層のプールを作成できます。
CLMMの実装はUniswap V3に基づいているため、学習する際に多くの概念と実装を参照できます。 また、ティック、マルチフィー層、中央集権的な流動性など、Uniswapの概念を継承しています。 その他のコンテンツは、ZAN の DEX 開発コース: DEX 開発プラクティス - Uniswap コード分析 - Uniswap の仕組み - ZAN にあります。
しかし注意が必要なのは、CPMM に似て、ソラナ チェーンの特性により、Raydium CLMM は各プールごとに別々のコントラクトをデプロイする必要がなく、ファクトリーコントラクトの概念も存在しないということです。これは Uniswap とは異なります。
CLMMは流動性プロバイダーが資金を注入する際に価格範囲を選択でき、資金は選択した範囲内にのみ分配されます。
! SolanaエコシステムAMMリサーチ:高流動性の背後にある基礎となるコード
集中流動性プールでは、トークンは現在の価格の両側にそれぞれ存在します。上図で選択された価格範囲は現在の価格を含んでいるため、資金はプール内の2種類のトークンにそれぞれ配分されます。
私たちは特定のトークンのみを注入して、いわゆる単辺流動性を提供することもできます(下の図参照)。これは、従来の金融モデルにおける指値注文に似ており、LPの資金はトークンの価格が特定の範囲に達したときにのみ利用されますが、このモデルには考慮すべきリスクポイントも多くなります。
! SolanaエコシステムAMM研究:高流動性の背後にある基礎となるコード
一般的に、価格変動が小さいプールに対しては、LPは小さめの範囲を選ぶ傾向があります。一方、価格変動が非常に激しいプールに対しては、大きめの範囲を選ぶ傾向があります。これは、現在の価格が自身が選択した価格範囲から外れすぎないようにし、過度な無常損失を避けることを目的としています。
注意が必要なのは、集中流動性はLPの資金の利用率を高めることができるが、同時にLPに対してより高い金融意識が求められることである。LPは自分の流動性をより積極的に管理する必要がある。もしLPが適切に対応できなければ、チェーン上で頻繁に発生する変動がLPに深刻な無常損失をもたらす可能性がある。
DLMM ###
DLMM (ダイナミック流動性マーケットメイカー)はMeteoraが提供するAMM製品であり、Uniswap V3の一種でもあります。また、前述のCLMMにも非常に似ています。DLMMは、流動性プロバイダーが自分の資金を現在の価格近くの一定範囲に集中させることを許可します。しかし、DLMMは具体的な実装においていくつか異なる点があり、いくつかの特徴的な機能も提供しています。
DLMMではBinの概念が提供されており、プールは基礎価格から始まり、Bin stepごとに1つのBinとして存在します。同じBin内で取引が行われる場合、トレーダーはスリッページゼロの恩恵を受けます。これは取引量と取引成功率を大幅に増加させることができ、理論的には流動性プロバイダーがより多くの取引手数料を獲得できるようになります。
! SolanaエコシステムAMM研究:高流動性の背後にある基礎となるコード
CLMMと同様に、プール内のトークンは現在の価格の両側に分布しており、1つのトークンだけで片側の流動性を提供する必要があります。しかし、Binの概念に基づくと、現在アクティブなBin(現在の交換価格を示す)には2種類のトークンがあります。つまり:
現在アクティブなBin内のトークン量が変化した場合、いずれかの当事者のトークンが0に減少すると、DLMMは現在アクティブなBinをプール内の実際の状況に基づいて、左側または右側の次のBinに設定します。これにより、プール内の価格変動を促進します。
LPが流動性を提供する際、DLMMは3つの戦略を提供しています。それぞれSpot、Curve、Bid Askです。
###概要
AMMはWeb3金融分野の重要な構成要素として、その独自のメカニズムと革新を通じて分散型金融の普及と発展を推進しています。技術の進歩とエコシステムの充実に伴い、AMMは今後さらに大きな役割を果たし、従来の金融の構造をさらに変えることが期待されています。