Blockchain/Nivel VIII · La era de los memecoins/8.2 Solana/Lección 2
Billeteras y firmas
La firma que gasta, la aprobación que la sobrevive y el riesgo de firmar lo que no puedes leer
MaterialesUna computadora con un navegador webUn explorador de bloques de Solana (p. ej., Solscan)Una billetera física o un dispositivo móvil con Phantom/Solflare instalado
Curiosidad
- ¿Por qué una transacción de Solana tiene una fecha de vencimiento?
- ¿Qué es exactamente lo que se aprueba cuando un usuario firma una transacción con versión?
- ¿Cómo puede una transacción hacer referencia a muchos más cuentas de los que enumera por completo?
Explorar
- Las claves de Solana son pares de claves ed25519. La mayoría de las billeteras las derivan a partir de una frase semilla BIP39 utilizando la ruta de derivación m/44’/501’/0’/0’. Este estándar permite a los usuarios recuperar toda su identidad en diferentes software compatibles, siempre y cuando conserven el mnemónico original de doce o veinticuatro palabras. La clave privada permanece local; la clave pública funciona en la cadena como la dirección de la cuenta.
- Una transacción enumera instrucciones específicas y las cuentas que afectan dichas instrucciones. Lo más importante es que incluye un hash de bloque reciente. Este hash funciona como mecanismo de vencimiento: si la transacción no se procesa en aproximadamente 150 bloques, es decir, en unos 60 a 90 segundos, el hash de bloque se vuelve obsoleto y la red rechaza la transacción. Los códigos únicos duraderos permiten a los usuarios firmar transacciones que permanecen válidas durante períodos más largos, utilizando un valor almacenado en una cuenta especial de códigos únicos en lugar de un hash de bloque reciente.
- Firmar aprueba todas las instrucciones contenidas en la transacción. Una carga útil maliciosa puede transferir cuentas de tokens o cambiar sus configuraciones de autoridad sin que el usuario sea consciente de esas subinstrucciones específicas. Billeteras como Phantom, Solflare y Backpack simulan estas transacciones para ofrecer vistas previas legibles por humanos. Sin embargo, los usuarios aún pueden aprobar instrucciones dañinas a través de la «firma ciega», en la que se aceptan los datos brutos sin verificar su intención.
- Las transacciones versionadas introducen tablas de búsqueda de direcciones, lo que permite que una sola transacción haga referencia a muchas cuentas mediante índices en lugar de listar todas las direcciones completas. Esta optimización reduce el tamaño en bytes de las operaciones complejas que involucran numerosas emisiones de tokens o posiciones. El compromiso es la complejidad; para comprender las direcciones resultantes es necesario decodificar los índices de la tabla según el estado actual de la cuenta a la que se hace referencia.
- Las billeteras de hardware ofrecen un entorno aislado para firmar, con conexión a través de USB o códigos QR, para proteger las claves del malware del sistema anfitrión. Sin embargo, la seguridad depende de la integridad de la aplicación anfitriona que genera y muestra los datos de la transacción. Si el sistema anfitrión es comprometido, puede mostrar información maliciosa mientras el usuario firma lo que parece legítimo. Verificar todos los parámetros directamente en la pantalla del dispositivo de hardware mitiga este vector de ataque específico.
- Para inspeccionar la estructura de una transacción, abra un explorador de bloques de Solana y seleccione cualquier transacción reciente que involucre una operación de múltiples pasos. Expanda la sección “Instrucciones” para ver cada llamada al programa por separado. Luego, examine la pestaña “Cuentas” para saber qué cuentas fueron leídas o escritas por cada instrucción. Compare esto con los datos brutos para comprender cómo la vista previa de la simulación se relaciona con los cambios reales en el estado.
Datos clave
- Las claves de Solana son pares ed25519 derivados de semillas BIP39 en la ruta m/44’/501’/0’/0’.
- Las transacciones incluyen un hash de bloque reciente que las vence después de aproximadamente 150 bloques (60-90 segundos).
- Firmar aprueba todas las instrucciones, lo que permite la firma ciega de cargas útiles maliciosas si se ignoran las vistas previas.
- Las transacciones versionadas utilizan tablas de búsqueda de direcciones para hacer referencia a múltiples cuentas de manera compacta.
- Las billeteras hardware aíslan las claves, pero dependen de aplicaciones anfitrionas para mostrar los datos de las transacciones.
- Las billeteras simulan transacciones para mostrar vistas previas legibles por humanos antes de solicitar una firma.
Ejercicio nueve, seis, tres, uno
9ReunirEnumera 9 interfaces o métodos de firma distintos para billeteras Solana. Indica su modelo de seguridad principal (software, hardware, MPC) y una característica específica que ofrecen para la inspección de transacciones.
6AgruparAgrupa los 9 en 6 categorías según la cantidad de datos de transacción visibles para el usuario antes de firmar: datos brutos completos, solo vista previa simulada, verificación en pantalla del hardware o ejecución opaca.
3DestilarReduce los 6 grupos a 3 compromisos fundamentales entre usabilidad y visibilidad de la seguridad en las billeteras de Solana.
1CristalizarEscribe una oración sobre qué autoriza realmente una firma en Solana en comparación con otras cadenas.
Verificación de hechos
Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.
- Solana Documentation: Transactions and Durable Nonces
- Phantom Developer Documentation: Signing and Simulation
- BIP39: Mnemonic Code for Generating Deterministic Keys
- Solana Documentation: Versioned Transactions and Address Lookup Tables