Criptografia bitcoin ¿qué es y como funciona?

Cómo funciona el cifrado Bitcoin

Cuando nos enfrentamos a la palabra criptografía o criptomoneda usualmente pensamos en algo oscuro, oculto o que se usa para fines misteriosos y poco claros. Esa idea está bastante alejada de la realidad porque aunque cripto significa oculto sus objetivos son fundamentalmente los de proteger la información haciéndola segura, inmodificable e infalsificable.

No es algo tan distinto a lo que se hace con, por ejemplo, el dinero físico, tanto en papel como en forma metálica o monedas.

Cualquier entidad emisora de dinero tiene como misión más importante dificultar al máximo la falsificación de la moneda. Es por esto y no por otra cosa que los billetes de banco son tan enrevesados y tienen tantos detalles. En ese caso los elementos con los que se trabaja son:

  • El propio papel, que es de una calidad especial casi siempre fabricada exclusivamente para la entidad emisora.
  • Elementos de seguridad como marcas de agua, tinta invisible, hologramas, etc

En el caso de las monedas:

  • Aleaciones de metal que proporcionan una densidad y peso muy concretos
  • Grabados complejos que dificultan su copia aunque, hoy en día, ya no es tan complicado pero, tal vez, poco interesante para potenciales falsificadores por el escaso valor de las monedas.

Lo que está claro es que el dinero debe ser lo más infalsificable posible. De otra forma podría circular papel moneda en una cantidad tal que el sistema no pudiera sostenerse o provocaría una importante caida de su credibilidad y, por tanto, de su valor.

Las criptomonedas son datos que viajan por la red

En realidad, en Internet todo viaja de aquí para allá saltando de unos ordenadores a otros hasta llegar a su destino. Podríamos preguntarnos si todo cuanto enviamos podría ser leído o escuchado por otras personas y la respuesta es sí, no sería nada complicado en tanto y en cuanto los datos viajen como simples datos de texto plano. Ahí es dónde empezamos a comprender lo interesante que sería hacer ilegible lo que no nos interese que sea leido por alguien más que la persona que debe recibirlo. Y claro, aquí es dónde tenemos que hablar de criptografía.

Sabemos que la conversaciones telefónicas pueden ser escuchadas. Las películas de espías nos han familiarizado con el concepto de “pinchar un teléfono”. Esto también es sencillo porque la mayoría de las telecomunicaciones habituales se difunden sin cifrar (o encriptar, que es otro término aceptado por la RAE). Igualmente los SMS se transmiten como texto legible y pueden ser fácilmente interceptados y leídos por terceras partes.

Pero cuando se trata de dinero electrónico, la preocupación es la misma que con el dinero físico. En este caso debe existir la seguridad de que el dinero enviado o transmitido sea legítimo y también que no pueda ser interceptado y usado por personas a las que no les pertenezca ese dinero. Afortunadamente, las criptomonedas resuelven elegantemente esos problemas.

¿Qué es la criptografía?

Criptografía es una disciplina que se ocupa de alterar los mensajes de tal forma que no puedan entenderlos personas no autorizadas. ɐḷɟɐɹƃoʇdıɹɔ ǝp ǝΙdɯıs ǝʇuǝɯɐpɐɯǝɹʇxǝ ɐɯɹoɟ ɐun ɐḷɹǝs oʇxǝʇ un ɹɐǝʇΙoʌ. Obviamente, a partir de ahí, los seres humanos hemos ideado formas cada vez más complejas y seguras para cifrar mensajes.

Este es un texto que ha sido traducido a código binario.
01000111 01110101 01100001 01110010 01100100 01100001 00100000 01000011 01110010 01101001 01110000 01110100 01101111 01101100 01101111 01100111 00101110 01100011 01101111 01101101 00100000 01100101 01101110 00100000 01110100 01110101 01110011 00100000 01100110 01100001 01110110 01101111 01110010 01101001 01110100 01101111 01110011 00101110
Puedes descifrarlo copiándolo y pegándolo aquí (encontrarás también otros métodos de cifrado algo más sofisticados)

El texto binario anterior también es una forma débil de proteger la información ya que cualquiera podría darse cuenta que es una simple translación a números binarios. Así que no ofrece más que una sutil protección, interesante para cosas poco serias.

“Hay dos clases de criptografía: la criptografía que impedirá que tu hermana pequeña lea tus archivos y la criptografía que impedirá a los principales gobiernos del mundo leer tus archivos”  Bruce Schneier

Para ir llegando a algo más interesante podríamos cifrar un texto con una clave. Esto haría que cualquiera que interceptase ese texto no pudiera leerlo al no tener la clave que permite descifrarlo. Y, desde luego, si la clave es suficientemente compleja también haría muy difícil intentar averiguarla a base de fuerza bruta, o sea, ir probando combinaciones hasta dar con algo que hiciese legible el mensaje.

Pero incluso aquí hay un punto débil. Para que el receptor pueda leer el mensaje tiene que conocer la clave. O sea que tendremos que comunicársela de alguna manera con lo cual hay algunas probabilidades de que alguien indeseable pueda hacerse con el mensaje y la contraseña. A esta manera de cifrar mensajes la llamamos criptografía simétrica porque el receptor y el transmisor usan la misma clave o contraseña.

La máquina Enigma  es una dispositivo mecánico de cifrado simétrico que se utilizó durante la segunda guerra mundial. Básicamente lo que hacía era sustituir las letras del texto que se tecleaba como en cualquier máquina de escribir por otras que venían determinadas por la clave que se hubiera configurado moviendo una serie de rotores. Sin conocer la clave que se había empleado era extremadamente difícil recuperar el mensaje original. Existen numerosos simuladores de máquina Enigma. Tenemos incluso un simulador de la máquina enigma para enviar mensajes cifrados por Telegram.

Hay una amplia variedad de tipos de criptografía  pero sin duda es con el desarrollo de los procesadores informáticos que hemos podido crear formas de cifrado realmente seguras (por el momento).

Las más utilizadas en telecomunicaciones son las formas de cifrado asimétrico o, más bien, una combinación de simétrico y asimétrico. En este caso el transmisor y el receptor poseen cada uno una clave privada y se intercambian una claves públicas derivadas de las respectivas claves privadas. De esta forma, solo el transmisor y el receptor pueden leer el mensaje. Este sistema se puede aplicar, por ejemplo, al envío de correos electrónicos. Así, no pueden ser leidos por nadie más que receptor y transmisor que han intercambiado sus claves públicas. Aunque la clave o claves públicas se deriven de la clave privada este proceso no es reversible; o sea, no es posible deducir la clave privada a partir de la clave pública.

Criptografía de Bitcoin

En general todas las criptomonedas utilizan sistemas de cifrado que las hacen virtualmente infalsificables. Cuando envías Bitcoin de una cartera a otra, al igual que un correo electrónico cifrado, se verifican dos casos

  1. Se asegura que el Bitcoin enviado es legítimo puesto que pertenecía a quien lo transmite.
  2. El Bitcoin solo puede ser usado por la persona que posee la clave privada de la dirección a la que se envió.

Veamos este proceso sin demasiadas florituras técnicas:

Las direcciones de tu monedero (la que se da para que te envíen Bitcoin) son tus claves públicas. Puede conocerlas cualquiera pues solo sirven para recibir, no para usar el Bitcoin. Esa clave pública o dirección se ha creado a partir de una clave privada bastante más compleja. La clave privada del transmisor se utiliza para firmar la transacción. La clave privada del receptor asegura que esa dirección (clave pública) le pertenece y por tanto podrá usar ese Bitcoin. Afortunadamente todo este proceso se realiza de una forma sencilla e intuitiva sin tener que pensar mucho en cómo se hace ya que se encarga de ello ese software especial que llamamos wallet o monedero. En general, el usuario solo tiene que ocuparse de poner la dirección Bitcoin (clave pública) a donde quiere mandar ese dinero, poner la cantidad y pulsar el botón “Enviar”.

Por supuesto, tu clave privada es algo que solo puedes conocer tú. Y, por otra parte, es fundamental guardar una copia de seguridad (cifrada además con una contraseña) para el caso de que el dispositivo que la tiene almacenada sufra algún percance irreversible. Aquí puedes consultar más información sobre wallets, monederos o carteras electrónicas.

¿Es realmente seguro este método de cifrado?

Por el momento lo es al 100% mientras no expongas tus claves privadas. La generación de claves públicas a partir de la clave privada puede realizarse mediante diferentes algoritmos. Pero Bitcoin usa el algoritmo que es, sin género de duda, el más seguro conocido, llamado Elliptic Curve Digital Signature Algorithm (ECDSA). Como su nombre indica el algoritmo se basa en la estructura algebraica de curvas elípticas sobre campos finitos. Una de sus características más importantes es que se consigue como mínimo el mismo nivel de seguridad que otros métodos probados pero con claves de menor tamaño y, por tanto, es mucho más rápido. Dicho de la forma que cualquier buen cuñado gustaría recitar de memoria: las transacciones Bitcoin se firman mediante el protocolo ECDSA basado en los parámetros secp256k1 en vez de los más ampliamente usados secp256r1. Esta tontería, decidida brillantemente por Satoshi Nakamoto es la que elimina cualquier sombra de duda acerca de si de alguna forma alguna agencia secreta del mundo (supongamos la NSA, que es la que desarrolló realmente los parámetros secp256r1) pudiera mediante algún portentoso esfuerzo informático llegar a crackear la clave mediante procedimientos de fuerza bruta. La parte que nos interesa: no hay el mínimo indicio de que el protocolo de cifrado de Bitcoin haya sido roto jamás. Pero ¿seguirá siendo así en el futuro? No es posible saberlo. Hablamos de computación cuántica, algo que teóricamente es posible aún cuando estamos relativamente lejos de conseguir un ordenador de estas características con el suficiente número de Qbits como para poner en peligro los algoritmos complejos de cifrado. Si eso sucediera, teóricamente nada sería seguro. Pero, por otra parte, la inteligencia colectiva también puede proponer nuevas soluciones y, recordemos, el código de Bitcoin es abierto; por tanto todo el mundo podemos verlo, analizarlo y mejorarlo si fuera preciso.

@sofocles