本番環境での署名

トランザクションは、すべての必須署名者から有効な 署名を受け取った場合にのみ実行されます。ローカル開発時は通常、 Keypairとして鍵を保持し、直接署名します。本番環境では、重要な問いは異なります:秘密鍵はどこに保管され、誰がその鍵で署名を承認できるのか?

秘密鍵をクライアントサイドのコードに埋め込んだり、フロントエンドにバンドルしたり、 ソース管理にコミットしたりしないでください。鍵を入手した者は誰でも、 そのアカウントの資金を完全に制御できます。

署名のアプローチ

アプローチ鍵の保管場所署名者最適な用途
ローカルkeypairマシン上のファイルまたは環境変数コードが直接署名ローカル開発、テスト、CI
ブラウザウォレットエンドユーザーのウォレット(例:Phantom、Solflare)エンドユーザーがトランザクションごとに署名ユーザーが自分のトランザクションに署名するフロントエンドdApp
クラウドKMS / HSMハードウェアバックの鍵サービス(AWS KMS、GCP KMS、Vault)バックエンドがサービスに署名を要求バックエンドサービス、トレジャリー運用、規制環境
マネージド / MPCウォレットプロバイダーのインフラ全体で分割または管理プロバイダーがポリシーに従って共同署名組み込みウォレット、承認ワークフロー、機関向けカストディ

ローカルkeypairは、生の鍵マテリアルをアプリケーション内に置く唯一のアプローチです。本番環境のすべてのアプローチでは、鍵を専用インフラに保管し、そのインフラに代わりに署名を依頼します。

バックエンド署名

サーバーが署名を行う必要がある場合(手数料の支払い、プログラムトランザクションの送信、またはトレジャリーの運用など)は、生の keypairではなく、専用の鍵管理バックエンドを使用してください。Solana Foundationは、Keychainを管理しています。これは、 統合署名ライブラリ(Rust、TypeScript、Python、Go対応)で、上記の表にあるすべてのバックエンド(Memory、 HashiCorp Vault、AWS KMS、GCP KMS、Fireblocks、Privy、Turnkey、CDP、Crossmint、 Dfns、Para、Openfort、Utila、Fordefi)に対して、単一のSolanaSignerインターフェースを提供します。

このインターフェースはバックエンド間で共通であるため、ローカルではインメモリキーを使って開発し、 アプリケーションコードを書き換えることなく、設定を変更するだけで本番用バックエンドに切り替えられます (Crossmintのように代わりにブロードキャストを行うバックエンドは、代わりに署名と送信を一括で行う方式で呼び出します)。Keychainは、 @solana/kit、 Rust SDK、solders(Python)、およびsolana-go v2 (Go)と互換性があります。

鍵管理、RPCセキュリティ、監視に関する完全な本番環境チェックリストについては、本番環境の準備を参照してください。

Is this page helpful?

目次

ページを編集
© 2026 Solana Foundation. 無断転載を禁じます。