Firma en Producción

Una transacción solo se ejecuta si lleva una firma válida de cada firmante requerido. Durante el desarrollo local, normalmente se utiliza 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 confirmes en el 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
Billetera de navegadorLa billetera 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
Billeteras gestionadas / MPCDividida o en custodia en la infraestructura de un proveedorEl proveedor co-firma según tu políticaBilleteras 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. Cada enfoque de producción mantiene la clave en una infraestructura dedicada y solicita a dicha infraestructura que firme en tu nombre.

Firma en el backend

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

Dado que la interfaz es compartida por todos los backends, puedes desarrollar localmente con una clave en memoria y cambiar a un backend de producción mediante configuración, sin reescribir el código de la aplicación (los backends que transmiten las transacciones por ti, como Crossmint, se invocan en su lugar mediante una ruta de firma y envío). Keychain es compatible con @solana/kit, el SDK de Rust, solders (Python) y solana-go v2 (Go).

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