生产环境中的签名

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

切勿将私钥嵌入客户端代码、将其打包进前端,或 将其提交到版本控制系统。任何获得密钥的人都将完全控制 该账户的资金。

签名方式

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

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

后端签名

当服务器需要进行签名操作时——例如支付费用、发送程序交易或管理资金库——应使用专用的密钥管理后端,而非原始 keypair。Solana 基金会维护着 Keychain,这是一个统一的签名库(支持 Rust 和 TypeScript),通过单一的 SolanaSigner 接口兼容上表中所有后端:Memory、HashiCorp Vault、AWS KMS、GCP KMS、Fireblocks、Privy、Turnkey、CDP、Crossmint、Dfns、Para、Openfort 和 Utila。

由于该接口在所有后端中保持一致,您可以在本地开发时使用内存密钥,并通过配置切换到生产后端,无需重写应用代码。Keychain 与 @solana/kitRust SDK 兼容。

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

Is this page helpful?

Table of Contents

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