生产环境中的签名

只有携带所有必要签名者有效 签名的交易才能执行。在本地开发阶段,您通常将密钥保存为 Keypair 并直接签名。而在生产环境中,关键问题则截然不同:私钥存储在哪里,谁有权使用它授权签名?

切勿将私钥嵌入客户端代码、打包进前端,或提交至源代码管理系统。任何获取密钥的人都将完全控制该账户的资金。

签名方式

方式密钥存储位置签名者适用场景
本地 keypair机器上的文件或环境变量您的代码,直接签名本地开发、测试、CI
浏览器钱包终端用户的钱包(如 Phantom、Solflare)终端用户,逐笔交易签名用户自行签署交易的前端 dApp
云端 KMS / HSM硬件支撑的密钥服务(AWS KMS、GCP KMS、Vault)您的后端向服务请求签名后端服务、资金库操作、受监管环境
托管 / MPC 钱包在提供商基础设施中分散或托管提供商根据您的策略共同签名嵌入式钱包、审批工作流、机构托管

本地 keypair 是唯一一种将原始密钥材料置于应用程序内部的方式。每种生产环境方式都将密钥保存在专用基础设施中,并由该基础设施代您完成签名。

后端签名

当服务器需要签名时(支付费用、发送程序交易或 管理资金库),请使用专用的密钥管理后端,而不是原始的 keypair。Solana 基金会维护着 Keychain,这是一个 统一的签名库(支持 Rust、TypeScript、Python 和 Go),它为上表中的每个后端提供同一个 SolanaSigner 接口:Memory、 HashiCorp Vault、AWS KMS、GCP KMS、Fireblocks、Privy、Turnkey、CDP、Crossmint、 Dfns、Para、Openfort、Utila 和 Fordefi。

由于各后端共用同一接口,您可以在本地使用 内存密钥进行开发,然后通过配置切换到生产环境后端,而无需 重写应用代码(像 Crossmint 这类代为广播交易的后端, 则改为通过签名并发送的路径调用)。Keychain 兼容 @solana/kit、 Rust SDK、solders(Python)以及 solana-go v2 (Go)。

完整的生产环境检查清单——包括密钥管理、RPC 安全性和监控——请参阅 生产就绪。

Is this page helpful?

Table of Contents

Edit Page
©️ 2026 Solana 基金会版权所有