Síguenos:
Medios de Pago
17 de abril de 2013

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

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

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

Escrito por , 17/04/2013

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

 

Sobre el autor

Jorge Ordovás

Jorge Ordovás

Ingeniero Superior en Informática, llevo más de una década desarrollando Servicios de TI en múltiples áreas (Servicios Móviles, Medios de Pago, Seguridad, eHealth, ...). En la actualidad lidero el desarrollo de Servicios Financieros para Empresas en el área de Nuevos Negocios de Telefónica. Me interesa todo lo que tenga que ver con medios de pago, monedas virtuales y seguridad. Y en realidad, casi todo lo demás también.
Ver todos sus artículos »