Skip to main content
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
すべてのRaydiumプログラムには、少なくとも1つの特権ロール(プログラムをアップグレードしたり、新しい設定を作成したり、プロトコル手数料を引き出したりできるキー)があります。これらのロールが実行できることを最小化し、遅延を伴うマルチシグの背後に配置することが、侵害された管理者に対する主要な防御です。このページでは、ロールとそれらが実際にどのように保護されているかをカタログ化しています。

プログラム別のロール

AMM v4

CPMM

クリエイター手数料の収集は特権ロールを導入しません。CollectCreatorFeePermissionlessは任意のペイヤーを受け入れ、受取人所有者をPoolState.pool_creatorに制限し、両方の宛先をそのクリエイターの正規ATAに制限します。呼び出し元は不足しているATAに資金を提供し、スイープをトリガーできますが、手数料をリダイレクトすることはできません。

CLMM

Permission PDAを保有する権限はCreatePermissionedPoolを呼び出すことができます — すでに正規プールを持つペアの追加プールを作成し、各プールは異なるseed_index派生アドレスにあります。権限はプール作成のみにスコープされます。資金を移動したり、手数料を変更したり、既存のプールに触れることはできません。それを取り消す(ClosePermissionPda)と、権限がさらなるプール作成を停止しますが、すでに作成されたプールは変わりません。 limit_order_adminは意図的に狭い運用ロールです。オフチェーンキーパーが注文の所有者がオンラインである必要なく、満たされたオーダーをスイープできるようにするために存在します。キーパーキーはホット(キーパーVM上に存在)であり、上記のマルチシグとは独立して回転します。具体的には、キーパー権限は以下に限定されます:
  • SettleLimitOrder — 満たされたオーダーの出力を所有者の ATAにオーダーのリミット価格で押し出します。
  • CloseLimitOrder — 完全に決済されたオーダーのアカウントをクローズしてレントを回収します(レントはオーダー所有者に行きます)。
OpenLimitOrder、IncreaseLimitOrder、DecreaseLimitOrderを呼び出したり、プールフィールドを変更したり、他の命令に署名することはできません — これらのチェックはオンチェーンで命令のAccounts構造体のシードとhas_one制約によって強制されます。侵害されたキーパーは最悪の場合、利用不可(オーダーは所有者が自分で決済するまで駐車されたまま)であるか、正当に満たされたオーダーを順序外で決済できます。ユーザー資金を所有者がすでに認可した場所以外に移動することはできません。

Farm v6

個別のファームにはプロトコル管理者がいません — 各ファームの作成者はそのファームのみを制御し、作成者の権限は制限されています(ユーザーステークを没収できず、ステーキングミントを変更できません)。

LaunchLab

プラットフォーム管理者の許可リストは自己制限的です。そのプラットフォーム下のローンチが使用できるGlobalConfigアカウントを制限します。他のプラットフォームまたは既存のローンチ資金に対する権限を付与しません。正規の委譲権限アドレスはreference/program-addressesに存在します。

プログラムアップグレード権限

Raydiumのプログラムは標準的なSolana BPF Loader v3アップグレードメカニズムを使用します。すべてのプログラムのアップグレード権限は3/4 Squadsマルチシグです。 なぜ3/4か:単一の侵害が不十分なほど十分なサイナー、正当なアップグレードの調整が扱いやすいほど十分に少ないサイナー。4つの権限は独立した、エアギャップされたコールドデバイスサイナーであり、コアチームメンバーによって保有されています。順序付きサイニングは同じトランザクションでの並列承認を防ぎます。トランザクションは固定の有効期限ウィンドウを持ちます。マルチシグ操作は**Solanaの STRIDE Program(Asymmetric Research)**とのパートナーシップで定期的にレビューされます。

アップグレード権限の削除

Raydiumはプログラムのアップグレード権限をnullに設定していません。プロトコルはプログラムがアップグレード可能である必要があるという原則の下で動作します(バグをパッチ適用し、Token-2022のような拡張機能を追加し、統合ドリフトを修正するため)。トレードオフ:ユーザーは3/4マルチシグが十分にレビューされたアップグレードのみをデプロイすることを信頼します。 Raydiumプログラムは現在、不変の代替案として扱われるほど凍結または低速移動していません — 歴史的に最も静的なAMM v4でさえ、2026-07-22に再デプロイされました。すべてのプログラムの最後にデプロイされたスロットは公開されています。それらのいずれかが休止していると仮定する前に読んでください: (各プログラムのProgramDataアカウントから;solana program show <PROGRAM_ID>は同じスロットを報告します。)

AmmConfig権限

新しいAmmConfig作成はすべて許可されています — 3/5 treasury マルチシグが新しい手数料ティアとティック間隔を認可します。既存のプールはPDAでAmmConfigを参照します。プールの手数料ティアはAmmConfigが言うことです。 管理者は既存のAmmConfigを変更できますか? はい、技術的には可能です。updateAmmConfigは管理者が呼び出すことができます。実際には、デプロイされたAmmConfigへの変更は避けられます。なぜなら、そのコンフィグを使用するすべてのプールの経済学を静かに変更するからです。プロトコルポリシーは、変更のために新しいAmmConfigを作成し、移行することです。 管理者はコンフィグを介してプロトコル手数料を盗むことができますか? いいえ — AmmConfigには手数料パラメータが含まれていますが、プロトコル手数料受取人は含まれていません。それはプールごとの別の不変アドレスです。

プロトコル手数料請求

スワップ手数料の一部(通常、設定に応じて25 bpsスワップ手数料の3~12 bps)がプロトコル手数料ボルトに発生します。マルチシグはこれらの発生した手数料を引き出すことができます。ユーザーはこれからLP残高の変化を見ることはありません — これはプロトコルの事前割り当てシェアであり、LPマネーではありません。

ファーム作成者権限

Farms v6は作成者に以下の権限を与えます:
  • リワードボルトに資金を提供(トークンを追加)。
  • スケジュールを延長(終了時刻を後に押す)。
  • 終了時刻後にwithdrawRewardを呼び出して、未使用のボルト残高を回収。
ファーム作成者はできません:
  • ステークされたユーザーLPを引き出す。
  • ステーキングミントを変更。
  • 排出率を遡及的に変更(setRewardsを介した前向きのみ)。
  • ユーザーハーベストをフリーズ。
悪意のあるファーム作成者は最悪の場合、ボルトに資金を不足させてファームが枯渇する可能性があります。ユーザーのプリンシパルステークは常に安全です。

Squadsマルチシグ設定

Raydiumは異なるリスク表面のために2つの別々のSquadsマルチシグを操作します。どちらもSquads Protocol UIを介してオンチェーンで検査できます。 アップグレードマルチシグの運用プロパティ:
  • 24時間タイムロック任意のトランザクション上。今日承認されたアップグレードは24時間以前に実行されず、ユーザーが応答する時間を与えます。
  • エアギャップされたコールドデバイスサイニング。 コールドデバイスはネットワークカードが物理的に削除されています。ハードウェアウォレットにのみ接続し、別のホットデバイスからQRコード経由でトランザクションデータを読み取ります。
  • 順序付きサイニング。 1つのコールドデバイスがトランザクションを生成して署名した後にのみ、次のコールドデバイスがそのサイニングプロセスを開始できます — 同じトランザクションでの競合または並列署名を防ぎます。
  • トランザクション有効期限。 すべてのトランザクションは固定の有効期限ウィンドウを持つため、古いトランザクションは自動的に無効になります。
  • TOTP +物理キー強制トランザクション開始とオンチェーン放送に使用されるホットデバイス上。
  • 公開トランザクションキュー。 誰でもSquads UIで保留中のアップグレードを監視できます。
Treasury マルチシグにはタイムロックがありません — そのスコープはより狭く、ルーチン操作(AmmConfigの作成、手数料のスイープ)は同日に着地する必要があります。Treasury マルチシグはまた、上記のプログラムごとのテーブルにリストされている限定的なプログラム管理者権限を保有しています。これは暫定的な取り決めであり、プロジェクトのセキュリティパートナーと定期的にレビューされます。

オンチェーンで権限を検証

プログラムの現在のアップグレード権限を検証する最も簡単な方法:
出力には以下が含まれます:
Authorityが予想されるSquadsマルチシグアドレスでない場合、何か問題があります。Raydiumは予想される権限アドレスをreference/program-addressesで公開しています。 AmmConfig / プール管理者ロールの場合、オンチェーンアカウントをフェッチしてデコード:
AmmConfigにはadminフィールドがありません — プログラム管理者はプログラムにコンパイルされた公開鍵(crate::admin::ID)であり、設定ごとの運用権限はprotocolOwner / fundOwnerです。BPFアップグレード権限は別のローダーレベルの懸念です。solana program showで読んでください。

歴史的な権限変更

ユーザー側の考慮事項

ユーザー/LP/インテグレーターとしてあなたは何をすべきですか?
  1. 大きな割り当ての前にアップグレード権限を確認。 ドキュメント化されたマルチシグと一致することを確認。
  2. マルチシグアクティビティを監視。 Squads UIは保留中のトランザクションを表示します。スケジュールされたアップグレードは、変更に同意しない場合、アンワインドする24時間を与えます。
  3. タイムロック対応の償却戦略。 オートコンパウンダーを実行している場合、変更されている命令を必要としないアンワインドパスがあることを確認。
  4. プログラムの不変性を仮定しないでください。 すべてのRaydiumプログラムはアップグレード可能です。それに対して計画してください。

インテグレーターの落とし穴

1. 権限アドレスのキャッシング

コードにアップグレード権限または管理者マルチシグアドレスをハードコードし、後で回転する場合、検証が失敗します。reference/program-addressesから実行時にフェッチするか、定期的にリフレッシュしてください。

2. AmmConfigが安定していると仮定

新しいAmmConfigはいつでも作成できます。アグリゲーター/ルーターは定期的に(1時間ごとで問題ありません)完全な設定リストを再フェッチする必要があります。

3. ファーム作成者の悲しみベクトル

低い評判のファームに預金している場合、作成者はファームを早期に終了し、リワードボルトを回収できます(ユーザーがまだステークしていないと仮定)。ユーザーがステークすると、プロ・ラタの権利はプログラムによって強制されます。回収は合理的な終了後の残りのみを取得します。

ポインタ

ソース: