> ## 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.

# オラクルとトークンのリスク

> Raydiumがオラクル入力をどのように処理するか、Token-2022拡張機能（フリーズ権限、トランスファーフック、永続デリゲート、デフォルトフリーズ）がもたらす具体的なリスク、プログラムが保護する内容、ユーザーが受け入れるべき内容について説明します。

<Info>
  **このページは AI による自動翻訳です。すべての内容は英語版を正とします。**

  [英語版を表示 →](/security/oracle-and-token-risks)
</Info>

<Info>
  Raydiumのコア製品は価格設定に外部オラクルに依存していません。プール状態そのものが「オラクル」です。ただし、APIとSDKはユーザーに表示されるUSD価格設定に外部オラクルを使用し、Token-2022ミントはSPL Tokenよりも豊富な制御機能をもたらします。その一部はプールの信頼モデルを根本的に変えます。このページでは両方をカタログ化しています。
</Info>

## 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` アカウントを保持します。他のプログラムはこれに対して構成し、操作耐性のある時間加重平均価格を導出できます：

```rust theme={null}
// 簡略化された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を破損させません。なぜなら、それは数百のスロットにわたって平均化されるからです。

CLMMミント用のより安全な価格フィードが必要なプログラム（清算オラクル、オプション価格設定など）は、即座の価格ではなくObservationState TWAPを使用すべきです。

**CLMMの即座の価格を相互運用性に使用しないでください。** 単一の大きなスワップは浅いプールでスポット価格を10%以上押すことができます。TWAPはこれを減衰させます。データレイアウトについては[`products/clmm/accounts#observation-state`](/ja/products/clmm/accounts)を参照してください。

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

Raydiumのフロントエンドと `api-v3.raydium.io` はUSD値（TVL、フィーAPR、\$ボリューム）を表示します。これらは以下から来ています：

* **Pyth** — 主要ミント用の主要オラクル。
* **Jupiterのアグリゲーター価格** — フォールバック。
* **プール導出価格** — 外部オラクルカバレッジのない長期ミント用。

USD表示は厳密に装飾的です。オンチェーン操作はPythを読み取ることはなく、プール数学はUSDを使用しません。Pythがミント用のデータ提供を停止した場合、UIは「—」を表示します。プールは機能し続けます。

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

プール状態がオラクルであるため、バグバウンティ文献が意味する意味での「オラクル攻撃」はありません。攻撃者が破損させることができる外部操作可能なデータソースはありません。プール状態への経済的攻撃（フラッシュローン形式の操作）は[`security/attack-vectors`](/ja/security/attack-vectors)でカバーされています。

## Token-2022拡張機能のリスク

SPL Token-2022（別名「Token Extensions」）は拡張機能を介してミントに設定可能な動作を追加します。一部の拡張機能はそれらを含むプールの信頼プロパティを変更します。Raydiumプログラムは一部を自動的に処理し、他はユーザー警告として表示します。

### トランスファーフィー

**それは何か：** 送信者からミント権限への各転送時に支払われる設定可能なフィー（転送の割合、絶対項で `maximum_fee` キャップまで）。

**リスク：** フィーはミントのフィー設定権限によって変更できます。フィーが1%の時にリクイディティをデポジットし、権限がそれを50%に引き上げた場合、その後のスワップは予想より大幅に少ない金額を返します。

**Raydiumでの軽減：** プールはスワップ時に現在の `transferFeeConfig` を読み取り、数学を調整します。プール自体は破損していませんが、ユーザーは出力が悪くなります。フィー権限は遅延フィー変更をスケジュールすることもできます。RaydiumのUIは差し迫ったフィー変更があるプールにフラグを立てます。

**残存リスク：** 悪意のあるフィー権限がインフライトスワップ中にフィーを変更した場合、`minimumAmountOut` はダウンサイドを保護します。トランザクションは戻ります。ミント発行者を信頼する場合、これは問題ありません。信頼しない場合は、LPしないでください。

### トランスファーフック

**それは何か：** トランスファーは別のプログラム（「フック」）を呼び出して、カスタム検証またはサイドエフェクトを実行します。

**リスク：** フックはスワップ中のプールの内部転送を含む任意の転送をブロックできます。アップグレード可能なフックは後で悪意のあるものになる可能性があります。デポジット時に安全だったものは、引き出し時にスワップ不可能になる可能性があります。

**Raydiumでの軽減：** Raydiumはプール状態にフックプログラムIDをリストします。統合はフックプログラムIDをユーザーに表示して、それが予想される（アップグレード不可能で監査済みの）プログラムであることを確認できるようにする必要があります。

**残存リスク：** フックがアップグレード可能で、その権限が敵対的になった場合、プールは凍結される可能性があります。Raydiumはトランスファーフック付きプールをブロックしませんが、フラグを立てます。トランスファーフックプールにLPするのは、フックが安全であることが確認された場合のみです。

### フリーズ権限

**それは何か：** ミントのフリーズ権限は、そのミントを保有するトークンアカウントをフリーズでき、すべての転送を防ぐことができます。

**リスク：** プールのボールトアカウントをフリーズできるフリーズ権限は、事実上プールをシャットダウンします。ユーザーは引き出せず、トレーダーはスワップできません。これはSPL Token *および* Token-2022に適用されます。Token-2022の新機能ではありませんが、それでもリスクです。

**Raydiumでの軽減：** プログラムレベルではありません。SPL Tokenのフリーズはプールに対して不透明です。RaydiumのUIはフリーズ可能なミント付きプールで警告します。デポジットするユーザーは、フリーズ権限がnullであるか、信頼できるマルチシグであることを確認する必要があります（USDCはフリーズ権限を持っています。発行者Circleです）。

**残存リスク：** フリーズ可能なミントはフリーズできることを受け入れてください。主要なミント（USDC、USDT、USDY）は発行者が保有するフリーズ権限を持ち、規制遵守にのみ使用されます。これは通常受け入れられます。

#### CLMMの制限付き発行者ポジションNFT

CLMMは選択されたKYC制限付き発行者フリーズ権限に対して追加の制御を適用します。プールミントのいずれかのフリーズ権限がプログラムのハードコードされたリストと一致する場合、`OpenPositionV2` または `OpenPositionWithToken22Nft` を通じて開かれた新しいポジションのNFTトークンアカウントは直ちにフリーズされます。対応するプールPDAはポジションNFTミントのフリーズ権限です。

これはポジションが未承認のウォレットに転送されたり、トークンアカウント所有者を変更したりするのを防ぎます。基礎となるトークン発行者にポジションNFTの制御を与えることはありません。CLMMプールPDAのみがポジションNFTフリーズ権限であり、プログラムはそれを使用して `ClosePosition` の一部として焼却前にのみ解凍します。リクイディティ管理とフィーまたは報酬収集はNFT所有者が必要です。

既存のポジションは凍結されたままです。統合者はトランスファービリティをポジション固有の状態として扱い、NFTトークンアカウントの `isFrozen` フラグを読み取る必要があります。

### 永続デリゲート

**それは何か：** 承認なしで任意の保有者からトークンを転送できる永続デリゲートを指定する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または信頼できる権限のみ。
* [ ] ポジション転送、エスクロー、またはBurn & Earnを提供する前に、CLMMポジションNFTトークンアカウントが凍結されていないことを確認します。
* [ ] トランスファーフックプールの場合、フックプログラムIDをホワイトリストに対して確認します。
* [ ] トランスファーフィーシナリオに対する露出をサイズします（フィーが最大に上がった場合はどうなりますか？）。
* [ ] スポット価格ではなくCLMM TWAP（ObservationState）をデリバティブ価格設定に使用します。

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

Raydiumのプログラムはプログラムレベルで実施できるものを実施します：

* プール作成は永続デリゲート / 非転送可能なミントを拒否します。
* スワップ数学は現在のトランスファーフィーに対して正しく調整されます。
* ObservationStateは操作耐性のあるオラクルを提供します。

ユーザーが受け入れるべき残存リスク：

* ミントのフリーズ権限はプールをフリーズできます。
* ミントのフィー権限は（`maximum_fee` キャップまで）トランスファーフィーをいつでも引き上げることができます。
* トランスファーフックプログラムは悪意のあるコードにアップグレードできます。
* 利息付きミントの発生率は変更できます。

正しい防御はLP前の勤勉さです。信頼しない集中権限を持つミント付きプールにデポジットしないでください。Raydiumはその信頼をあなたのために決定することはできません。関連する事実を表示することしかできません。

## ポインター

* [`algorithms/token-2022-transfer-fees`](/ja/algorithms/token-2022-transfer-fees) — トランスファーフィーミント用の数学調整。
* [`security/attack-vectors`](/ja/security/attack-vectors) — これらのリスクが具体的な攻撃としてどのように現れるか。
* [`integration-guides/wallet-integration`](/ja/integration-guides/wallet-integration) — Token-2022リスクラベルの表示。
* [`products/clmm/accounts`](/ja/products/clmm/accounts) — ObservationStateレイアウト。

ソース：

* [SPL Token-2022拡張機能ドキュメント](https://www.solana-program.com/docs/token-2022/extensions)。
* プール初期化検証ロジック：`src/raydium/cpmm/instrument.ts`、`src/raydium/clmm/instrument.ts`。
* [Pyth](https://pyth.network) — フロントエンドで使用される外部価格オラクル。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.