Firma en Producción

Una transacción solo se ejecuta si contiene una firma válida de cada firmante requerido. Durante el desarrollo local, generalmente se guarda esa clave como un Keypair y se firma directamente. En producción, la pregunta importante es diferente: ¿dónde reside la clave privada y quién está autorizado a firmar con ella?

Nunca incorpores claves privadas en código del lado del cliente, las incluyas en un frontend ni las subas al control de versiones. Cualquiera que obtenga una clave tendrá control total de los fondos de esa cuenta.

Enfoques de firma

EnfoqueDónde reside la claveQuién firmaIdeal para
keypair localUn archivo o variable de entorno en la máquinaTu código, directamenteDesarrollo local, pruebas, CI
Wallet de navegadorLa wallet del usuario final (p. ej. Phantom, Solflare)El usuario final, por transaccióndApps frontend donde los usuarios firman sus propias transacciones
KMS / HSM en la nubeUn servicio de claves respaldado por hardware (AWS KMS, GCP KMS, Vault)Tu backend solicita una firma al servicioServicios backend, operaciones de tesorería, entornos regulados
Wallets administradas / MPCDistribuidas o en custodia en la infraestructura del proveedorEl proveedor co-firma según tu políticaWallets integradas, flujos de aprobación, custodia institucional

El keypair local es el único enfoque que coloca el material de clave sin procesar dentro de tu aplicación. Todos los enfoques de producción mantienen la clave en una infraestructura dedicada y le solicitan a esa infraestructura que firme en tu nombre.

Firma en el backend

Cuando un servidor necesita firmar — pagar comisiones, enviar transacciones de programa u operar una tesorería — utiliza un backend de gestión de claves dedicado en lugar de un keypair sin procesar. La Solana Foundation mantiene Keychain, una biblioteca de firma unificada (Rust y TypeScript) que expone una interfaz SolanaSigner en todos los backends de la tabla anterior: Memory, HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint, Dfns, Para, Openfort y Utila.

Dado que la interfaz es idéntica en todos los backends, puedes desarrollar localmente con una clave en memoria y cambiar a un backend de producción mediante configuración, sin necesidad de reescribir el código de la aplicación. Keychain es compatible con @solana/kit y el SDK de Rust.

Para la lista de verificación completa de producción — gestión de claves, seguridad de RPC y monitoreo — consulta Preparación para producción.

Is this page helpful?

Tabla de Contenidos

Editar Página