Bitcoin, lo que siempre quisiste saber y nunca te atreviste a preguntar

bitcoin

En los últimos tiempos Bitcoin está de moda, no cabe duda, pero… ¿realmente entendemos cómo funciona este sistema? En mi caso llevo tiempo investigando al respecto y no he sido capaz de encontrar ninguna referencia que lo describa a “bajo nivel” pero sin llegar a ser ininteligible.

Por eso me he decidido a escribir este artículo, como continuación de mi último post en el que hablaba de forma más general sobre el estado del arte de Bitcoin, para tratar de explicar con detalle, pero de la forma más sencilla posible, en qué consiste el sistema inventado por Satoshi Nakamoto (aviso: contiene jerga relacionada con la criptografía, alérgicos abstenerse).

Todo usuario nuevo que quiere empezar a utilizar bitcoins tiene que descargar una aplicación (wallet) donde almacenar y gestionar sus monedas virtuales. Esta aplicación le asignará un identificativo (bitcoin address) al que se asocia una clave pública (que todo el mundo conocerá) y una clave privada (que sólo conoce el propio usuario, y que se almacena en el wallet protegida mediante una contraseña que éste define).

El intercambio de bitcoins o fracciones de bitcoin (denominadas satoshi en honor a su creador) se realiza directamente entre dos usuarios, sin intermediario alguno. Supongamos que el usuario A ha comprado previamente una moneda en el mercado (por ejemplo, en Mt Gox) y quiere pagar al usuario B algo por valor de 0,10 BTC. Lo que hará el usuario A será “firmar” la transacción con su clave privada, de forma que el usuario B pueda verificar con la clave pública de A su procedencia. Más en detalle, el usuario A remitirá al usuario B los datos de la transacción (su bitcoin address, el importe, un timestamp para fijar el momento del tiempo en que se realiza, etc), incluyendo un hash de la misma (un resumen), y cifrando ese hash con su clave privada.

El usuario B que recibe los datos de la transacción es el único que puede leer los datos (ya que el usuario A ha cifrado el mensaje con la clave pública de B antes de enviarlo). Una vez recibido, B descifrará el contenido con su clave privada y podrá utilizarlo (la base de la PKI es la propiedad inversa de las funciones privada y pública, de forma que lo cifrado con una sólo puede descifrarse con la otra, y viceversa).

El usuario B generará su propio hash a partir de la información recibida (usando la misma función de hash que ha utilizado A). Descifrará el que ha enviado el usuario A previamente cifrado con su clave privada, usando para ellos la clave pública de A. Si tras comparar ambos éstos coinciden, la transacción no ha sido manipulada (cualquier cambio en un bit del mensaje resultaría en un hash completamente distinto), y se verifica también que ha sido generada necesariamente por el usuario A (ya que es el único que puede utilizar su clave privada para firmar el hash).

Pero sólo esto no basta para que el sistema sea seguro, falta un aspecto clave del modelo, garantizar el “no repudio” de las transacciones. Y a diferencia de las monedas que conocemos, no hay una autoridad que lo haga, sino que se realiza de forma distribuida. Todos los usuarios conocen las transacciones que se han generado desde el inicio (lo que se denomina block chain), y a medida que se generan nuevas operaciones son validadas en tiempo real por el ecosistema de Bitcoin garantizando que no se incluyen transacciones fraudulentas (por ejemplo, utilizando el mismo BTC para realizar varios pagos).

El usuario B podrá por tanto verificar que el usuario A no ha gastado ya ese 0,10 BTC en una transacción anterior, porque su wallet tiene constancia de todas las operaciones que se han realizado. Y una vez generada, notificará a todos los demás una nueva operación, de forma que el usuario A no pueda negar el pago realizado (ya que lo ha firmado con su clave privada, que sólo él conoce), y garantizando que sólo dispone de 0,90 BTC que gastar a partir de ese momento.

La siguiente infografía resume el flujo general de una transacción mediante Bitcoin, y el proceso de validación del block chain por parte del sistema, de forma distribuída.

Bitcoin infographic

Este proceso de verificación de toda la cadena de operaciones es extremadamente costoso, puesto que implica comprobar la criptografía de todas y cada una de las transacciones realizando las operaciones de cifrado/descifrado/hash con las claves de cada usuario involucrado. Y a medida que se van generando más y más transacciones, se hace más complejo.

Entonces, ¿por qué gastan su tiempo los usuarios validando las transacciones, que ganan con ello?  No es altruista… el usuario que en un momento dado haya conseguido verificar la cadena más larga de transacciones, gana un bitcoin.

Es lo que se conoce como “minería” en Bitcoin, y de esta forma, el sistema se controla a sí mismo y pervive gracias al esfuerzo de cada individuo. Como en Matrix, o algo similar.

Imagen: bitdataboom distribuida con licencia Creative Commons CC BY 2.0

 

POSTS RELACIONADOS

Enlazados en

Comentarios (5)

  1. Muy buen articulo!

    • Gracias, Daniel. Es complicado encontrar el equilibrio para ser capaz de explicar el detalle sin entrar en un amasijo de tecnicismos, me alegro de que te haya gustado.

  2. Muy interesante Jorge, como de costumbre :)

    Aquí un comprador de bitcoins que se sale de la norma, ya que compré via bitcoin-central pasando del control de Mt.gox ;)

    Personalmente estoy muy ilusionado con este proyecto, que desde un punto de vista crítico, es un claro paradigma de ultraliberalismo económico, acaso “anarcoliberalismo”. Poder hacer pagos inmediatos de un lado del mundo al otro, disfrutar de absoluta anonimidad durante todo el proceso, y encima no pagar tasas a nadie por ello, me parece simplemente sublime. Si además añadimos que es una moneda que cae fuera de los tentáculos de la Fed y el BCE, y que por lo tanto no es manejada por intereses nacionales de ningún tipo, no hay más que pedir.

    ¿Qué hay que sentarse a leer detenidamente el funcionamiento y mantener ciertas precauciones como el uso de “cold wallets” para evitar robos? Sí, por supuesto, encantado.

    • Me alegro de que te haya gustado, más aún siendo un usuario real de Bitcoin (y además, concienciado con la seguridad). Yo reconozco que no acabé por animarme en su momento… llegué a instalarme el wallet en mi PC de casa con la intención de probar, pero tenía limitado el espacio en disco y la descarga del block chain me llenó el espacio disponible. Tan tonto como eso, pero cortado el intento inicial, no lo retomé… :-( Ahora que está cayendo con fuerza y está cruzando ya los 60 a la baja (ojo a tu inversión, el volumen de venta es muy alto) http://bitcoincharts.com/charts/mtgoxUSD#rg90zigDailyztgSzm1g30zm2g25zv Si sigue así, a lo mejor me animo de nuevo.

  3. José Luis S.R. -

    Muy interesante el artículo, Jorge.
    Muy clara la descripción del sistema de transacciones y su seguridad.

    • Gracias Jose Luis, espero que no haya sido demasiado enrevesada la explicación… los conceptos de PKI son algo ásperos si no se tienen ya asumidos de partida.

Deja un comentario