¿Cómo funciona Bitcoin?

Un poco de historia - Bitcoin fue inventada por un hombre (o un grupo) usando el seudónimo Satoshi Nakamoto permaneciendo anónimo. Satoshi Nakamoto lanzó su primer versión de Bitcoin en el 2008 y gradualmente dejó que otros contribuyeran al proyecto principalmente Gavin Andresen.Se fundó una asociación "oficial" en septiembre del 2012 y gestiona su desarrollo desde: La Fundación Bitcoin. Nadie ha tenido ningún tipo de contacto con Satoshi Nakamoto desde mediados del 2010.

Pre requisitos para entender - El protocolo Bitcoin esta basado principalmente en tecnologías disponibles y utilizadas antes de su aparición incluyendo:

Bitcoin es un tipo de divisa virtual, no tiene ninguna representación en el mundo real como algunas divisas que estaban representadas por reservas de oro (como el dolar antes de 1971). Su valor es determinado solo por el mercado que le da su valor para convertirlo en un medio de intercambio. Por lo tanto Bitcoin es similar al oro: de hecho excepto por unas cuantas propiedades (Eléctricas, estéticas...) el valor del oro es asignado por el mercado para hacerlo un medio para el intercambio escogido por sus propiedades: rareza, durabilidad y divisibilidad, propiedades que comparte con Bitcoin.

Bitcoin no puede ser creada por una entidad o estado y esta limitada a 21 millones de unidades llamadas bitcoins (Sin B mayúscula- cuando se escribe con B mayúscula se refiere a la tecnología). El número de bitcoins en circulación aumenta en una forma estable y predecible hasta alcanzar el final total de 21 millones en 2140 (La caída de la "producción" sera tal que el 99% de estos 21 millones estarán disponibles en el 2030 mientras que el 1% restante se pondrá en circulación entre el 2030 y el 2140 - vea oferta controlada en el wiki de Bitcoin). Cada bitcoin es divisible en 100 millones de unidades llamadas satoshis. Esto hace un total de 21 x 1014 de unidades indivisibles. ¿Por qué esta cantidad? Quizás por que es cercana al límite de la capacidad de almacenamiento de un número de 64 bits, usado comúnmente en IT, pero no tenemos que preocuparnos mucho por esta elección la cual importa poco gracias a la divisibilidad de Bitcoin.



Explicaremos como funciona Bitcoin paso a paso al presentar el problema detrás de la idea de una divisa descentralizada y las soluciones ofrecidas por Bitcoin. Esta explicación es una aproximación simple de los mecanismos detrás de Bitcoin y no constituye una explicación completa o rigurosa.

Problema – Con una divisa descentralizada, ¿Cómo identificar de forma segura a la persona que envía el dinero?

El protocolo usa el sistema de encriptación asimétrica. Bob quiere enviar 1 bitcoin a Alice así que usa su clave privada para firmar el mensaje "Yo Bob, envío 1 bitcoin a Alice" después utilizando su llave pública, cualquiera puede verificar que Bob fue quien envío este mensaje y él no puede negarlo.

Problema – ¿Cómo evitar que Bob duplique este mensaje y mande un número ilimitado de mensajes con esa bitcoin?

Le damos a esa bitcoin un número de serie por ejemplo 42001.El mensaje ahora sera "Yo Bob, estoy mandando la bitcoin Número 42001 a Alice." Por lo tanto esta bitcoin esta claramente identificada y este mensaje no puede ser duplicado.

Problema – ¿Cómo verificar que Bob en realidad tiene la bitcoin Número 42001 y no la ha gastado?

Todo usuario tiene un "libro de contabilidad" llamado blokchain el cual lista todas las transacciones y por lo tanto quien tiene cual bitcoin. Bob esta enviando el mensaje "Yo Bob le estoy enviando la bitcoin numero 42001 a Alice" pero esta vez Alice usa su copia de blockchain para verificar que este número le pertenece a Bob. Después le envía a todos el mensaje de Bob como una forma de indicarles a todos que acepta esta bitcoin y todo mundo actualiza su blockchain.

Problema – ¿Cómo estar seguros de que Bob no envía el mismo mensaje simultáneamente a dos personas que no han tenido tiempo de actualizar su blockchain y por lo tanto no saben que la bitcoin número 42001 ya ha sido enviada?

Aquí es donde entran los mineros de bitcoin. Alice por lo tanto verifica que Bob tenga la bitcoin Número 42001 pero antes de aceptarla transmite su mensaje a la red de mineros quienes en su turno verificaran que la transacción es valida y transmitirán el mensaje "Esta bien, Bob tiene la bitcoin Número 42001, esta puede ser enviada a Alice" Una vez que este mensaje es transmitido por suficientes mineros y que todos han actualizado su blockchain, se realiza la transacción.

Problema – Si Thomas es un minero de bitcoins, ¿Cómo evitar que transmita miles de veces los mensajes "Esta bien, Bob tiene la bitcoin Número 42001 esta puede ser enviada a Alice" y "Esta bien, Bob tiene la bitcoin Número 42001 esta puede ser enviada a Carol" y así manipular la red?

Para manejar este problema de manipulación de red, Bitcoin usa el sistema de "Prueba-de-trabajo." La operación de transmitir el mensaje "Esta bien, Bob tiene la bitcoin Número 42001 esta puede ser enviada a Alice" se hace artificialmente difícil para un minero al forzarlo a hacer cálculos complejos pero inútiles antes de transmitir el mensaje.

Como resultado si Thomas quiere que sus mensajes falsos sean aceptados debe tener más del 50% del poder de la red. Nuestra página de Cost of a 51% attack es una estimación de lo que costaría un menor de edad para estar en una situación de este tipo a base del número de mineros. La ganancia de este tipo de ataque es ridículo cara al costo.

Problema – ¿Qué motiva a los mineros a verificar las transacciones?

Los mineros son recompensados con bitcoins nuevas que son creadas a un ritmo firme y predecible, que alcanzará un final total de 21 millones en 2140. Después de esa fecha los mineros solo recibirán comisiones bajas ganadas por cada transacción validada.

Para saber más puede leer la publicación de Satoshi Nakamoto: Bitcoin: A Peer-to-Peer Electronic Cash System.