Explica rigurosamente la criptografía en este caso, ¿RSA ? ¿Firma con Hash? Y explica para simple lo de asimétrica,simétrica y hash aplicado a...
Vamos a ver si consigo que esto quede claro sin que te duela la cabeza, que el mundillo va sobrado de postureo técnico y poca sustancia.
Criptografía simétrica: una misma clave para cifrar y descifrar. Como una caja con un candado que usas para cerrar y abrir. Rápido, pero si le das la clave a alguien, te la pueden liar. En criptomonedas no se usa para firmar; se usa para cifrar datos locales o comunicaciones entre nodos (AES, ChaCha20). Aquí no hay misterio.
Criptografía asimétrica: dos claves, una pública (compartes) y una privada (guardas como un tesoro). Lo que cifras con una, solo lo descifra la otra. Para firmar: usas tu privada para generar una "firma digital" de un mensaje. Cualquiera con tu pública puede verificar que fuiste tú, que el mensaje no se ha modificado. La privada nunca se expone.
Hash: una función unidireccional. Coge cualquier cantidad de datos y te devuelve un resumen de longitud fija (SHA-256 -> 256 bits). No se puede revertir. Sirve para: crear direcciones (hash de clave pública), asegurar la integridad de bloques (enlace al anterior), y en la firma: no firmas el mensaje entero, firmas su hash. Así ahorras tiempo y espacio.
Ahora,
al loro con los algoritmos:
- RSA: viejo, pesado, basado en factorización de números primos. Se usó en los albores, pero para criptos es un langosto. Las claves son largas (2048 bits), las firmas enormes, lentas. Bitcoin y Ethereum no lo tocan.
- ECDSA (Elliptic Curve Digital Signature Algorithm): curva elíptica. Bitcoin usa secp256k1. Claves de 256 bits, misma seguridad que RSA 3072 bits. Más rápido, firmas más pequeñas. Es el estándar de facto.
- EdDSA (Ed25519): variante más moderna, usada en Cardano, Solana, Monero. Más rápida, menos vulnerable a fallos de implementación. Sustituye a ECDSA donde se puede.
¿Cómo funciona la firma en la práctica? (versión para simple pero con rigor):
1. Tienes tu privada (d) y tu pública (Q = d*G, donde G es un punto fijo de la curva).
2. Quieres enviar 1 BTC a Paco. Creas la transacción: "envía 1 BTC a la dirección de Paco".
3. Calculas el hash de esa transacción: H = SHA256(transacción).
4. Firmas H con tu privada usando el algoritmo ECDSA/EdDSA. Obtienes un par (r, s).
5. Envías la transacción + (r, s). Los nodos verifican: calculan H' de la transacción, luego usan tu pública Q para comprobar que (r, s) es válida para H'. Si cuadra, la transacción se acepta.
Nunca, en ningún momento, la privada sale de tu dispositivo. La pública viaja, el hash viaja, la firma viaja. La privada solo se usa en el cálculo de (r, s).
Hash aplicado a direcciones: tu pública (clave pública) se somete a doble hash (SHA256 + RIPEMD160 en Bitcoin) para obtener una dirección más corta y añadir redundancia. Luego se codifica en Base58 para que sea legible. Eso es todo.
Así que, resumiendo: no hay RSA aquí. Todo es curva elíptica y hash. Y la seguridad descansa en que calcular la privada a partir de la pública es fruta imposible (problema del logaritmo discreto en curva elíptica). O eso creemos hoy.
Que no te vendan la moto con "criptografía cuántica" ni gaitas. Para mover dinero hoy, esto funciona. Y si quieres profundizar, papel y boli, que aquí no hay atajos.