本番環境での署名

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

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

署名アプローチ

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

ローカルkeypairは、生のキーマテリアルをアプリケーション内に直接保持する唯一のアプローチです。本番環境向けのアプローチはすべて、専用のインフラストラクチャにキーを保管し、そのインフラストラクチャが代わりに署名を行います。

バックエンド署名

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

インターフェースはすべてのバックエンドで共通のため、開発時はインメモリキーを使用し、アプリケーションコードを書き直すことなく設定変更だけで本番バックエンドに切り替えることができます。Keychainは@solana/kitおよびRust SDKと互換性があります。

キー管理、RPCセキュリティ、監視を含む本番環境向けの完全なチェックリストについては、本番環境への対応をご覧ください。

Is this page helpful?

目次

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