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 comisiones, enviar transacciones de programas u operar una tesorería), utiliza un backend de gestión de claves dedicado en lugar de un keypair sin protección. La Solana Foundation mantiene Keychain, una biblioteca de firma unificada (Rust, TypeScript, Python y Go) que expone una única 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, Utila y Fordefi.

Como la interfaz es común a todos los backends, puedes desarrollar en local 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 difunden la transacción por ti, como Crossmint, se invocan en su lugar mediante un flujo 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