Explicación de Bitcoin que tu madre pueda entender
¿Cómo funciona Bitcoin exactamente? esa es una de las preguntas que muchos nos habremos hecho en algún momento y que por tratarse de un tema de software y redes puede ser difícil de explicar si no se aborda correctamente. En este artículo lo explicaré de una forma que tu abuela pueda entenderlo.
Libro contable compartido con todos
La idea detrás de Bitcoin es que todo el mundo tenga una copia de un libro contable donde se escriban todas las transacciones de bitcoin de todas las personas alrededor del mundo. Por tanto cada persona sabe cuánto dinero tiene cada uno. Esto se llama descentralización, ya que esta información no la tiene una sola persona (como en un banco) sino que la tienen todos.
¿Cómo se realiza una transacción?
Así como un billete de 1 dólar es un papel firmado por una Autoridad, una transacción en bitcoin puede verse como un papel firmado por quien desea enviar dinero a otra persona:
"Yo Juan, envío $10 a Pedro. Y para dar constancia firmo este documento"
Hay que tener en cuenta que la firma en términos informáticos es algo imposible de falsificar, y de igual forma el documento también es imposible de modificar (el documento se conserva tal cual como se envía). Otra analogía de esto lo podemos ver en los mensajes que se enviaban en la antigüedad, donde una carta se doblaba y se le ponía un sello de cera. El sello representaba la autenticidad del remitente y el documento no se podía modificar ya que para ello primero habría romper el sello. De igual forma sucede con bitcoin, cada uno tiene un sello diferente que lo identifica (llamado llave privada o secreto) y con el que firma los mensajes.
Este mensaje es repartido a todo el mundo a través de la red. Cada persona lo recibe, verifica la firma del remitente, comprueba que tiene fondos suficientes y finalmente lo registra en su libro contable. Y es como si todos dijeran:
"Bien, Juan tenía $120, ahora tiene $110. Y Pedro tenía $250, ahora tiene $260"
¿Qué pasa si Juan firma un mensaje poniendo una cantidad que no posee? Será rechazada por todos. Como dije anteriormente, todos comprueban la firma y revisan que tenga los fondos suficientes. Por tanto en este caso todas las personas dirían algo como:
"Lo siento Juan, mis cuentas me dicen que no tienes fondos suficientes, por tanto esta transacción NO la escribo"
Tratando de engañar al sistema
Los bitcoin son similares a los dólares en el sentido que tienen un número de serie. Así, cuando cada se hace un envío de dinero también es necesario anotar los números de serie de los bitcoins que se están gastando. Siguiendo con los ejemplos, ¿Qué sucede si Juan firma 2 documentos, donde en uno de ellos envía $10 a Pedro, y en el otro se envía a sí mismo $10? todo esto usando los mismos números de serie. Esto es lo que se llama un intento de doble gasto. En principio, la red debería aceptar SOLO UNA de las 2 transacciones.
Pero ¿y si Juan envía los dos documentos al mismo tiempo? a un grupo de personas le envía una transacción y a otro grupo le envía la otra. Aquí entramos en un problema porque toda la red intentará replicar y difundir dicha información entre todos y llegaremos a un punto en el que los libros contables de todas las personas empezarán a ser diferentes. ¿Cómo se soluciona? con los minadores.
Minadores: Creando consenso
Cualquiera en la red puede ser un minador. Ellos son los encargados de generar un consenso en la red de forma que todos tengan escrito el MISMO libro contable y no existan diferencias.
¿Cómo se logra esto? Ahora imagina que cada transacción en una ficha de tetris. Cada minador debe coger un puñado de transacciones y ordenarlas de forma que todas encajen perfectamente en una caja (o bloque como se le llama en bitcoin). Es un trabajo difícil de realizar. El que lo logre resolver primero lo difunde en la red, y cada usuario en la red verifica la validez de las fichas incluidas en el tetris (verificar cada una de las transacciones) y verifica que encajen correctamente.
¿Qué se logra con esto? Como vimos anteriormente, difundir una transacción en la red es muy sencillo y la congestión de transacciones fraudulentas puede crear diferentes libros contables. Sin embargo, resolver un bloque (un puñado de transacciones en un tetris) es más difícil y por tanto no hay mucha congestión de estos bloques en la red. Esto hace que el proceso sea un poco más lento, pero permite que todos reciban todas las transacciones de una forma más limpia y segura.
Volviendo al ejemplo de Juan ¿Qué sucede cuando envía 2 documentos intentando gastar el mismo billete? Un grupo de mineros intentarán meter una transacción en un bloque, y otros (tal vez Juan incluído) intentarán meter la otra transacción. Quien lo resuelva primero difundirá su bloque y ese será el aceptado por todos en la red. Esto implica que solo 1 de las 2 transacciones será aceptada por la red, y todos en la red conservarán el mismo libro contable.
Comisiones y Confirmaciones
Los minadores ponen su capacidad computacional, por tanto, como recompensa a su trabajo cada transacción incluye una comisión destinada a ellos. El minador que resuelve un bloque tiene derecho a llevarse las comisiones y adicional a ello tiene derecho imprimir una nueva cantidad de billetes que también se los lleva él. Todo esto igualmente es regulado y verificado por todos en la red (si el minero no lo hace correctamente simplemente su bloque será rechazado por todos).
Cuando una transacción queda incluida en un bloque se dice que tiene "1 confirmación", un minero se ha tomado el trabajo de incluirlo en el tetris. La dificultad de los bloques hace que cada uno pueda ser resuelto en 10 min aproximadamente, y cada vez que uno es resuelto se adjunta al anterior formando una cadena. Por esto, al libro contable se le llama cadena de bloques o blockchain.
Una transacción tendrá más "confirmaciones" según el número de bloques que se hayan añadido a la cadena desde el momento de la transacción en adelante.
Por otro lado, para resolver conflictos entre bloques, como regla general la red de usuarios aceptará la cadena de bloques más larga. Esto quiere decir que si un grupo de minadores empieza a crear una cadena y otro grupo de minadores crea otra (con otras transacciones), la red aceptará la cadena más larga de las 2, es decir, el que haya resuelto más bloques. Por eso a este tipo de consenso se le llama "prueba de trabajo" (PoW por sus siglas en inglés).
Tratando de engañar al sistema... por segunda vez
Hay que tener en cuenta que si Juan intenta estafar a Pedro podría hacer lo siguiente:
- Envía un documento firmado a la red indicando que le transfiere $10 a Pedro.
- Internamente crea otra transacción donde se envía esas mismas monedas a sí mismo, pero no difunde el mensaje.
- Juan es también minero y su capacidad computacional le permite resolver rápidamente el bloque. Entonces Juan pone en un bloque la transacción fraudulenta junto con otro puñado de transacciones de la red y lo resuelve. Sin embargo, aun no difunde su resultado en la red.
- Por otro lado, Pedro ve que un minero de la red resolvió un bloque donde se incluye su transacción. Ya recibió 1 confirmación y confía en que la transacción ya se ha realizado correctamente.
- Sin embargo, Juan coge otro puñado de nuevas transacciones y las pone en un bloque, y lo resuelve rápidamente. Luego publica sus últimos 2 bloques antes que el resto de la red.
¿Qué sucede en este caso? Como la cadena de bloques de Juan es más larga que todas las demás, los usuarios de la red la aceptarán como la correcta (recordemos que la "prueba de trabajo" o PoW es la forma de consenso). Y como sabemos, en esos bloques no está incluida la transacción a Pedro sino la fraudulenta. Por tanto Juan habrá engañado a Pedro.
¿Y qué se puede hacer para evitar estos engaños? como norma general, si confías en Juan podrías confiar en que la transacción fue realizada incluso estando en "pendiente por confirmar". Sin embargo, si Juan es un desconocido lo mejor es esperar a que la transacción tenga 6 confirmaciones, ya que en este punto es casi imposible que Juan tenga la capacidad computacional de ganarle a los demás minadores (de hecho, hay muchos que consideran que consideran que con 2 o 3 confirmaciones ya es suficiente viendo la dificultad que conlleva).
Preguntas frecuentes
* Dónde están los bitcoins? en qué están respaldados?
Los bitcoins no tienen un respaldo como tal, es fiduciario, todo se basa en la confianza que las personas del sistema. Por ejemplo, el dólar es fiduciario, la Reserva Federal de EEUU imprime billetes los cuales son distribuidos. Las personas CONFÍAN que al prestar un servicio y recibir 1 dólar a cambio, pueden usar este billete para comprar otra cosa, ya que todos confían en este sistema.
Otro ejemplo serían los semáforos: Cuando un semáforo está en rojo yo detengo mi auto porque confío en el sistema. Quisiera seguir avanzando, sin embargo, sé que así como yo sigo las reglas los demás las seguirán también y el SISTEMA en general hará que todo funcione correctamente. Los semáforos son simplemente unas luces, sin embargo, crean un orden en medio del desorden. Así mismo funciona bitcoin, cuando yo presto un servicio y recibo a cambio "1 bitcoin", confío en el sistema, porque sé que los demás confían en el sistema y en un futuro podré usar "ese bitcoin" para recibir un favor a cambio. Todo es fiduciario, todo es confianza, ya que el SISTEMA se ha creado con unas normas concretas que permiten que todos seamos tratados por igual.
* Quién define el precio del bitcoin?
Los mercados, a través de la oferta y la demanda. El precio del bitcoin se calcula de la misma forma que el precio del euro o del dólar. Si muchas personas quieren conseguir euros su precio aumenta, si muchas personas quieren deshacerse de sus euros y venderlos su precio baja.
Visto de otra forma, mientras hayan más establecimientos aceptando el pago con bitcoins habrá más CONFIANZA en el sistema y muchas personas querrán comprarlos para gozar de sus beneficios. Si Juan tiene muchos bitcoins, decidirá venderlos al mejor postor y los venderá más caros. Por el contrario, si alguien encuentra un fallo crítico de seguridad o un gobierno decide prohibir su uso, el sistema en general perderá CONFIANZA y muchos querrán vender sus bitcoins, y para poderlos vender más fácil bajarán el precio.
Por mi parte, esto sería todo. Espero que sea de ayuda para muchos. Nos vemos en el siguiente post.
Genial explicación. Las ilustraciones caseras, muy curradas... Le voy a dejar a mi abuela esto impreso (porque no lee de la pantalla) con letras grandes... y que ella juzgue...
Gracias @teseo. Jejeje, sería interesante ver el resultado
Fabuloso post
JAJAJJA con ese titulo atraes a cualquier. Excelente post. Una vez intente explicarle esto a mi mama, es mas difícil de lo que suena. Un saludo desde Venezuela.
thanks for the help - very informative information
Mi hermano, te felicito por tan buena explicación.
Gracias Luis