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

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のプログラムは複数ラウンドの監査を受けており、このページではそれらを列挙し、各監査が実際に何を検証したかについて説明します。

プログラムごとの監査表

プログラム監査企業日付報告書
Order-book AMMKudelski SecurityQ2 2021表示
集中流動性(CLMM)OtterSecQ3 2022表示
更新されたOrder-book AMMOtterSecQ3 2022表示
ステーキングOtterSecQ3 2022表示
Order-book AMM および OpenBook マイグレーションMadShieldQ2 2023表示
定数積 AMM(CPMM)MadShieldQ1 2024表示
Burn & Earn(流動性ロッカー)HalbornQ4 2024表示
LaunchLabHalbornQ2 2025表示
CPMM(更新)Sec3Q3 2025表示
CLMM 更新 — Limit Order、Dynamic Fee、Single Asset FeeSec3Q2 2026表示
Neodyme チームのメンバーは、バグバウンティ契約を通じて広範なレビューも実施しています。 Raydium プログラムの全ての監査報告書は github.com/raydium-io/raydium-docs/audit/ に複製されています。各監査企業は自身のサイトでも公開しています。

監査の対象範囲

典型的なRaydium監査(3~6週間、2人の監査人)では以下を対象とします:
  • アクセス制御 — すべての特別な操作が正しく制御されているか?
  • 算術 — オーバーフロー、アンダーフロー、丸め方向、固定小数点精度。
  • アカウント検証 — すべてのアカウントが正しいオーナー、ミント、オーソリティを持っているか?
  • Reentrancy 類似パターン — 状態が CPI の前後どちらで更新されるか?
  • PDA 導出 — シードがすべてのサイトで一貫しているか?
  • エラーコードとメッセージ — エラー条件がきれいにリバートするか?
  • コード品質 — Rust の慣例的な書き方、不要コード、到達不可能なブランチ。

監査の対象外範囲

  • 経済ゲーム理論 — 例:「無料で 1000 個のプールを作成できる場合、ルーターを妨害できるか?」
  • MEV / 順序付け — サンドイッチ攻撃、バリデーター共謀によるフロントラン。
  • オフチェーン基盤インフラ — RPC の信頼性、インデクサーの正確性、フロントエンド。
  • 他のプログラムとの統合 — 特定の貸出、オプション、またはアグリゲーター契約との構成でのみ発生するバグ。
  • 時間経過による創発的な振る舞い — 1000 万ポジションが経過した後はどうなるか?監査は小規模なテストケースを見ています。
これが監査 ≠ 安全保証である理由です。Raydium は監査をバグバウンティ、モニタリング、防御的エンジニアリングで補完しています。

検出結果の解決ステータス

すべての監査は検出結果リスト(Critical / High / Medium / Low / Informational)を生成し、重要度別の集計と検出結果ごとのステータス(Fixed / Acknowledged / Won’t fix)を持ちます。検出結果ごとの内訳は複製されません — 上記の表から各報告書を直接読んでください。

大きな変更後の再監査

プログラムが重大なアップグレード(新しい命令、新しいアカウントフィールド、新しいエクステンションサポート)を展開する場合、Raydium は再監査を発注します。上記の表に記載されている Sec3 Q3 2025 の CPMM レビューと Sec3 Q2 2026 の CLMM レビュー(Limit Order、Dynamic Fee、Single Asset Fee)はどちらもこの種の再監査です。 再監査の対象範囲はより狭い(差分のみ)ですが、それは本当の再監査です — コードレビューではありません。再監査のレポートは主要な監査報告書に追加されています。

オンチェーン検証

デプロイされたプログラムハッシュは監査されたコードハッシュと一致する必要があります。誰でも検証できます:
# デプロイされたプログラムバイトコードを取得します。
solana program dump <PROGRAM_ID> program.so

# 監査されたコミットでリポジトリをビルドします。
git clone https://github.com/raydium-io/raydium-cp-swap
cd raydium-cp-swap
git checkout <audited_commit_hash>
anchor build --verifiable

# 比較します。
sha256sum program.so target/deploy/raydium_cp_swap.so
Anchor の検証可能なビルドは決定論的なバイトコードを生成します。ハッシュは完全に一致する必要があります。一致しない場合、デプロイされたプログラムは監査されたものではありません — エスカレートしてください。 Raydium は repo のリリースセクションでデプロイごとの期待されるハッシュを公開しています。

監査報告書の読み方

非監査人向けの簡単なガイド:
  1. 検出結果サマリーをスキップします — 重要度別の集計表。「Critical」の集計が 0 より大きく、「Open」ステータスが表示されている場合は掘り下げます。
  2. 各検出結果の説明とステータスを読みます。 「Fixed in commit XYZ」は解決を意味します。「Acknowledged」はチームがリスクを受け入れたことを意味します。「Partially fixed」はより詳しく見る価値があります。
  3. 対象範囲セクションをスキャンします。 監査が関心のある命令またはアカウントをカバーしていない場合、そこでの検出結果がない = 安全である証拠ではありません。
  4. 監査人の推奨事項セクションをざっと読みます。 検出結果より有用なことが多い — 「正式には証明できませんが、不安です」というメモが表示されます。

バグバウンティ統合

監査はデプロイ前に実行されます。バグバウンティはデプロイ後に継続的に実行されます。Raydium のバウンティプログラム(security/disclosure)は監査が対象とするすべてのもの、さらに以下をカバーしています:
  • 監査がカバーしない経済攻撃。
  • 新しい統合で検出されたバグ。
  • SDK やオフチェーンコンポーネントの実装バグ。
ホワイトハット検出結果はバグバウンティプログラムで通常、次の監査サイクルを待つより高速に支払われます。インセンティブは急速に開示するように調整されています。アクティブなプログラムは Immunefi でホストされています:immunefi.com/bug-bounty/raydium/information

歴史的インシデント

Raydium のプログラムは 2 つの注目すべき実際のインシデントを経験しました:

プール管理者の悪用(2022 年 12 月)

内容: AMM v4 プール管理者の秘密鍵が侵害され、攻撃者が複数のプールを排出することができました。 対象範囲: 運用上のキー管理であり、プログラムのバグではありません。コードが正しかったため、監査はコードにフラグを立てていませんでした。キー管理プロセスが失敗しました。 修正: マルチシグ移行(すべてのオーソリティロールを Squads マルチシグに移動)。追加の運用上のコントロール。 教訓: 監査はキー管理をカバーしません。security/admin-and-multisig を参照してください。

OpenBook 統合フリーズ(2023 年 1 月)

内容: OpenBook プログラム更新がアカウントセマンティクスを変更しました。AMM v4 の MonitorStep クランは、AMM v4 パッチが出荷されるまで PnL を決済できませんでした。 対象範囲: 統合バグ — どちらのプログラムも単独では間違っていません。 修正: AMM v4 パッチと調整されたデプロイ。 教訓: プログラム A の監査は、プログラム A のプログラム B との統合でのバグをキャッチしません。適切なツールは統合テスト + ステージロールアウトです。

ポインター

ソース: