メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
Raydiumのコア製品は価格設定に外部オラクルに依存していません。プール状態そのものがオラクルです。ただしAPIとSDKはユーザーに表示されるUSD価格設定に外部オラクルを使用し、Token-2022ミントはSPL Tokenよりも豊かなコントロール機能をもたらします。その中にはプールの信頼モデルを根本的に変えるものもあります。このページではこれら両方について説明しています。

Raydiumのオラクル

内部:プールはオラクルである

AMM v4、CPMM、CLMMの場合、プロトコルの「現在価格」の定義はプール状態のみから派生します:
  • AMM v4 / CPMM: price = vaultB_balance / vaultA_balance(小数点以下を考慮)。
  • CLMM: price = (sqrtPriceX64 / 2^64)^2 × 10^(decimalsA - decimalsB)
スワップ、デポジット、ウィズドロアルの際に外部オラクルは参照されません。これはAMM設計の「トラストレス」な部分です。プール数学が正しければ、価格フィードの外部操作によるプール破損はありません。

CLMM ObservationStateをTWAPオラクルとして

CLMMプールは過去のsqrt_priceスナップショットを記録するObservationStateアカウントを保持します。他のプログラムはこれに対して構成することで、操作耐性のある時間加重平均価格を導出できます:
// 簡略化されたTWAP: (現在, Nスロット前)の平均。
let obs_now  = load_observation(pool, Clock::slot());
let obs_past = load_observation(pool, Clock::slot() - 300);  // ~2分前
let twap = (obs_now.price_cumulative - obs_past.price_cumulative)
         / (obs_now.slot - obs_past.slot);
これはUniswap V3が使用するのと同じパターンです。短期的な価格操作(クジラがプールを一時的に押し上げる)はTWAPが数百スロットにわたって平均化されるため、TWAPを破損させません。 CLMMミントのより安全な価格フィード(清算オラクル、オプション価格設定など)が必要なプログラムは、即座価格ではなくObservationState TWAPを使用すべきです。 即座CLMMMPrices をコンポーザビリティに使用しないでください。 単一の大きなスワップは浅いプール上で即座価格を10%以上押し上げることができます。TWAPはこれを減衰させます。データレイアウトについてはproducts/clmm/accounts#observation-stateを参照してください。

外部:フロントエンド/APIのUSD価格設定

Raydiumのフロントエンドとapi-v3.raydium.ioはUSD値(TVL、フィーAPR、$ボリューム)を表示します。これらは以下から取得されます:
  • メジャーミントの主要オラクルとしてPyth
  • フォールバックとしてJupiterのアグリゲータ価格
  • 外部オラクルカバレッジのないロングテールミント向けのプール導出価格
USD表示は完全に見た目的なものです。オンチェーン操作がPythを読むことはなく、プール数学がUSDを使用することもありません。Pythがミント向けのデータ提供を停止した場合、UIは「—」を表示します。プールは機能し続けます。

Raydiumプールに適用されないオラクル操作

プール状態がオラクルであるため、バグバウンティ文献で意味するような「オラクル攻撃」は存在しません。攻撃者が破損できる外部で操作可能なデータソースはありません。プール状態に対する経済的攻撃(フラッシュローン型操作)はsecurity/attack-vectorsでカバーされます。

Token-2022拡張機能リスク

SPL Token-2022(別称「Token Extensions」)は拡張機能を介してミントに設定可能な動作を追加します。いくつかの拡張機能はそれらを含むプールの信頼特性を変更します。Raydiumプログラムは自動的にいくつかを処理し、他は要ユーザー警告として表示します。

トランスファーフィー

それは何か: すべてのトランスファーでミント権限に送信者から支払われた設定可能なフィー(パーセンテージ、絶対用語のmaximum_feeキャップまで)。 リスク: フィーはミントのフィー設定権限によって変更可能です。デポジット時にフィーが1%である場合、権限がそれを50%に引き上げると、その後のスワップは予想より大幅に少ないリターンを返します。 Raydiumでの軽減: プールはスワップ時に現在のtransferFeeConfigを読み取り、数学を調整します。プール自体は破損しませんが、ユーザーはより悪いアウトプットを見ます。フィー権限は遅延フィー変更もスケジュールできます。Raydiumが迫ったフィー変更のあるプールにフラグを立てます。 残存リスク: 悪意のあるフィー権限がインフライトスワップ中にフィーを変更した場合、minimumAmountOutはダウンサイドを保護します。トランザクションは戻ります。ミント発行者を信頼する場合、これは大丈夫です。信頼しない場合は、LPに入るべきではありません。

トランスファーフック

それは何か: トランスファーはカスタム検証またはサイドエフェクトを実行するために別のプログラム(「フック」)を呼び出します。 リスク: フックはスワップ中のプールの内部トランスファーを含むあらゆるトランスファーをブロックできます。アップグレード可能なフックは後で悪意のあるものになる可能性があります。デポジット時に安全であったものはウィズドロアル時に交換不可になる可能性があります。 Raydiumでの軽減: Raydiumはプール状態でフックプログラムIDをリストアップします。統合はユーザーにフックプログラムIDを表示し、期待されている(非アップグレード可能、監査済みの)プログラムであることを確認できるようにすべきです。 残存リスク: フックがアップグレード可能で、その権限が敵対的になった場合、プールはフリーズされます。Raydiumはトランスファーフック付きプールをブロックしませんが、フラグを立てます。トランスファーフックプールへのLPは、フックが安全であると検証された場合のみ行ってください。

フリーズ権限

それは何か: ミントのフリーズ権限はそのミントを保有するあらゆるトークンアカウントをフリーズでき、すべてのトランスファーを防止できます。 リスク: プールのボールトアカウントをフリーズできるフリーズ権限を持つ権限は効果的にプールをシャットダウンします。ユーザーはウィズドロアルできず、トレーダーはスワップできません。これはSPL Tokenおよび Token-2022に適用されます。Token-2022では新しくありませんが、それでもリスクです。 Raydiumでの軽減: プログラムレベルではなし。SPL Tokenのフリーズはプールに対して不透明です。Raydiumが非透過的なミントのプールに警告を表示します。デポジットするユーザーはフリーズ権限がnullであるか、信頼できるマルチシグであることを確認すべきです(USDCはフリーズ権限を持っています。発行者のCircleです)。 残存リスク: フリーズ可能なミントがフリーズされる可能性があることを受け入れます。メジャーミント(USDC、USDT、USDY)はフリーズ権限を発行者が保有し、規制遵守のみに使用されます。これは通常、受け入れ可能です。

パーマネントデリゲート

それは何か: Token-2022拡張機能で、パーマネントデリゲートがあらゆるホルダーから承認なしでトークンをトランスファーできることを指定します。 リスク: パーマネントデリゲートはいつでもプールのボールトをドレインできます。 Raydiumでの軽減: CPMM と CLMM はパーマネントデリゲート付きミントでプール作成を拒否します。初期化は戻ります。実行中のRaydiumプールにはパーマネントデリゲートミントはありません。 残存リスク: ゼロ(チェックが正しい限り、両方の監査が検証しました)。

非トランスファー可能

それは何か: ホルダーによってトランスファーされることができないミント。 リスク: プールはホルダーATA とプールボールト間でトークンを移動するためのトランスファー可能性に依存します。非トランスファー可能ミントはプールを簡単に破壊します。 Raydiumでの軽減: プール作成は非トランスファー可能ミントで戻ります。ファームも非トランスファー可能なステーキングミントを拒否します。

デフォルトフリーズ / クローズ権限 / 利息付き

Raydiumが処理する影響が小さい拡張機能:
  • デフォルトフリーズ: 新しいトークンアカウントは使用前にオーザーされる必要があります。Raydium は ATA 作成で透過的にこれを処理します。
  • クローズ権限: 指定された権限がトークンアカウントをクローズできます。プールボールトはプール派生権限で所有されるため、ミントでのクローズ権限はボールトに適用されません。
  • 利息付き: 表示余額は利息を償却します。amountは固定のままですがuiAmountは増加します。Raydiumプール数学は利息償却ではなくamountを使用します。表示が別途調整されます。

ミント権限

Token-2022固有のリスクではありませんが、注目する価値があります。ミントがミント権限を保持する場合、ホルダーはいつでも供給を膨張させることができます。起動されたトークンの場合、これはプールの現在の価格でLPを希薄化します。LaunchLabはミント権限がnullでない限り起動の作成を拒否します。

UIでのリスクラベル

Raydiumのフロントエンドは適用可能なリスクタグを各プールでラベル付けします:
  • TRANSFER_FEE — ゼロでないトランスファーフィー。
  • TRANSFER_HOOK — トランスファーフック拡張機能がアクティブ。
  • FREEZE — ミントがフリーズ権限を持っています。
  • MINT — ミントがミント権限を持っています(供給は膨張可能)。
  • CLOSE — ミントがクローズ権限を持っています。
Raydium APIを消費するアグリゲーターはこれらのラベルをユーザーに表示すべきです。

インテグレータチェックリスト

Raydiumプールと構成する前に:
  • getMint(mint, TOKEN_2022_PROGRAM_ID)を介して各ミントの拡張機能を確認します。
  • あらゆるミントがpermanent_delegateまたはnon_transferableを持つプールをスキップします(これらはRaydiumに存在するべきではありませんが、防衛的に)。
  • 両方のミントのフリーズ権限を確認します。nullまたは信頼できる権限のみ。
  • トランスファーフックプール向けに、フックプログラムIDをホワイトリストに対して確認します。
  • トランスファーフィーシナリオに対してエクスポージャーをサイズします(フィーが最大に上がった場合)。
  • 派生価格設定にはCLMM TWAP(ObservationState)ではなく即座価格を使用します。

残存リスク受け入れステートメント

Raydiumのプログラムはプログラムレベルで施行できるものを施行します:
  • プール作成はパーマネントデリゲート/非トランスファー可能ミントを拒否します。
  • スワップ数学は現在のトランスファーフィーに対して正しく調整されます。
  • ObservationStateは操作耐性のあるオラクルを提供します。
ユーザーが受け入れる必要がある残存リスク:
  • ミントのフリーズ権限はプールをフリーズできます。
  • ミントのフィー権限はいつでもトランスファーフィー(maximum_feeキャップまで)を引き上げることができます。
  • トランスファーフックプログラムは悪意のあるコードにアップグレードされる可能性があります。
  • 利息付きミントの償却率は変更される可能性があります。
適切な防衛はLP前のデューデリジェンスです。信頼できない集中化権限を持つミントのプールにデポジットしないでください。Raydiumがその信頼を決定することはできません。関連する事実を表示することしかできません。

ポインタ

ソース: