Mis familiares y amigos que saben de mi interés por Bitcoin y viendo la rápida apreciación de la moneda, me han empezado a preguntar ¿Cómo funciona Bitcoin? Como buen ingeniero empiezo a explicarles cómo funcionan los algoritmos de hashing, la relación entre la llave pública y privada, la criptografía de curva elíptica, proof-of-work, la “gossip network”, los wallets, etc. Desafortunadamente la mayoría de ellos no trabajan en tecnología y las explicaciones técnicas no son efectivas. En lugar de ayudarlos a entender los termino confundiendo aún más.
Uno de mis espacios favoritos en reddit es “eli5” (explain me like I’m 5) en donde cualquier persona puede hacer preguntas de temas complicados como ¿Cómo funcionan las plantas nucleares? y las personas que quieran responder deben hacerlo como si le estuvieran tratando de explicar el tema a un niño de 5 años. Inspirado por esta idea, intentaré explicar el funcionamiento de Bitcoin como si estuviese hablándole a un niño, sin hacer referencia a computadoras ni usar términos técnicos. Desafortunadamente no he logrado una forma de simplificar el tema al nivel de un niño de 5 años pues tengo que asumir que el niño sabe leer, escribir, sumar y restar y no tengo idea de si un niño a esa edad tiene esas habilidades. Asumo que no. Por dicha razón decidí incrementar la edad del niño ficticio a 10 años. Bienvenidos a “eli10”.
Antes de empezar debo hacer una aclaración. Voy a hacer enormes simplificaciones y haré analogías que no son 100% representativas del funcionamiento de Bitcoin. A lo largo de la historia, insertaré comentarios que relacionan la analogía con términos y funciones reales de la criptomoneda. Mi objetivo es ayudar a las personas completamente nuevas en el área a entender a grandes rasgos cómo funciona Bitcoin sin entrar en ningún detalle. Si en lugar de una idea general estás buscando conocimiento técnico profundo, te recomiendo leer el libro “Grokking Bitcoin”.
Finalmente, cuando haga referencia a la tecnología o al sistema en general usaré el término Bitcoin con “B” mayúscula. Cuando me refiera a la moneda que se tranza sobre esa plataforma, usaré el término bitcoin con “b” minúscula o el acrónimo BTC. Sin más preámbulo empezaré mi narrativa.
DragonCoins y el Reino del Dragón
Imaginemos 3 niños de 10 años, Juan, Pablo y Jorge, que durante uno de los recesos del colegio se les ocurre la idea de crear un “reino” sólo para ellos, el “Reino del Dragón”. Como primer paso, los 3 amigos deciden crear una moneda que solo ellos, los únicos habitantes del Reino del Dragón, podrían utilizar: DragonCoin. El propósito de la moneda no es más que intercambiar cosas entre ellos: golosinas, pegatinas, lápices de colores, etc.
Entre los 3 deciden que en total habrá 120 DragonCoins. Normalmente buscarían usar algo que se asemeje a billetes o monedas para representar los 120 DragonCoins del reino pero no tienen a la mano 120 “cosas” iguales que sirvan como representación de la moneda. En lugar de eso, los niños deciden simplemente llevar la cuenta de las monedas en un cuaderno.
Nota del autor: Al igual que DragonCoin, Bitcoin no es una moneda física, no existen monedas o billetes. Bitcoin existe solo de forma digital almacenada en una base de datos distribuida. El cuaderno en este caso es una analogía de una base de datos.
El primer paso lógico sería repartir los 120 DragonCoins a partes iguales entre los 3, 40 para cada uno. Jorge no está de acuerdo con esta decisión, obtener dinero sin trabajar no es creíble, los habitantes del Reino del Dragón deben trabajar para ganarse el dinero tal como sus padres lo hacen en el mundo real. Como Jorge siempre carga una baraja de naipes consigo debido a su afición por los trucos de magia, se le ocurre un juego similar a “adivina mi carta” como mecanismo para simular “trabajar” y ganar DragonCoins.
Nota del autor: En Bitcoin, nuevas “monedas” son creadas por mineros a través de un mecanismo llamado “proof-of-work” que requiere del uso de potentes computadoras. Las computadoras “trabajan” para generar nuevos bitcoins.
Del mazo de naipes, Jorge selecciona solo las cartas que corresponden al palo de tréboles y corazones. Como cada palo contiene 13 cartas (desde el “as” hasta la letra K), en total usarían 26 cartas. Jorge baraja las cartas, las extiende boca abajo y le pide a Pablo que seleccione una al azar. Pablo puede ver la carta pero no se la puede mostrar a nadie más. Jorge dice que va a tratar de adivinar qué carta seleccionó Pablo y que con cada intento Pablo sólo puede responder “Sí” o “No”. El premio por adivinar la carta correcta es 10 DragonCoins. Jorge puede adivinar cuantas veces quiera, si tiene suerte puede ser que adivine la carta al primer intento pero si tiene mala suerte puede ser que le tome hasta 26 intentos (hay sólo 26 cartas en total).
Nota del autor: El algoritmo de “proof of work” requiere que las computadoras adivinen un número dentro de un rango. La única forma conocida de “adivinar” el número es probando todas las combinaciones hasta encontrar un número dentro del rango solicitado. A diferencia del ejemplo con 26 cartas, el rango que usa “proof of work” es tan enorme que tu laptop o smartphone tardaría cientos o miles de años en encontrar un valor correcto. Por esta razón, los mineros en Bitcoin usan super computadoras especializadas exclusivamente en la tarea de adivinar este número.
Juan no está seguro del juego, tener un número infinitos de intentos y siempre ganar al final no suena muy divertido que digamos. Jorge interviene y opina que el objetivo de adivinar la carta no es jugar sino simular “trabajo”. Si tienes suerte trabajas menos, si tienes mala suerte trabajas más. Igual que sus padres en sus profesiones. A regañadientes Juan acepta y los niños empiezan “jugar” entre ellos para ganar DragonCoins.
Nota del autor: Dos computadoras de minería con el mismo poder de cómputo pueden resolver el algoritmo de “proof of work” en menos o más tiempo dependiendo de su buena o mala suerte. Esta suerte es aleatoria y a lo largo del tiempo no afecta la cantidad de monedas que ambas computadoras pueden crear en promedio.
Al final del día en la escuela y luego de jugar a “trabajar” para ganar DragonCoins por un rato, el cuaderno de Juan refleja que éste ha acumulado 30 DragonCoins, Pablo 10 y Jorge 10. Juan nota que Jorge trajo en su merienda su galleta favorita y le propone un intercambio. “Si me das la galleta yo te doy 20 de mis DragonCoins”. Jorge acepta, le entrega la galleta y Juan añade la transacción en su cuaderno. La escuela termina y los tres niños se van a casa.
Una vez en casa, Juan piensa en cómo ganar DragonCoins más rápido. El primer día tuvo suerte y logró adivinar la carta en menos tiempo que sus amigos pero mañana podría no ser así. Juan abre el cuerno con las transacciones y se le ocurre que si añade una transacción en donde él ha ganado otros 10 DragonCoins podría comprar nuevamente la merienda de Jorge apenas llegue a la escuela. Juan está casi seguro que mañana sus amigos no recordarán cuánto dinero tenía cada uno pues las transacciones están escritas solo en su cuaderno. Además, es su cuaderno, él puede escribir ahí lo que quiera.
Al día siguiente los 3 amigos se encuentran durante el receso y Juan le propone a Jorge nuevamente comprar su merienda. Jorge acepta pues con esos 20 DragonCoins adicionales él sería el niño más rico del Reino del Dragón con 50 monedas! Eso es mucho más que las 10 monedas de Pablo y las… un momento, Juan ayer solo tenía 10 monedas ¿Cómo puede ser que tenga ahora 20? Jorge le pide a Juan ver el cuaderno de transacciones para verificar cuánto dinero tiene cada uno. Juan sabe que Jorge sospecha de él y trata de buscar excusas para no mostrarle el cuaderno. Jorge y Pablo reclaman, saben que Juan está ocultando algo. Finalmente, Juan con una sonrisa pícara confiesa que añadió dinero para él mientras ellos no veían y promete borrar la transacción falsa.
Jorge y Pablo están furiosos, Juan siempre trata de tomar ventaja de ellos pues se cree más listo. Jorge le exige a Juan que le entregue el cuaderno y que de ahora en adelante él será quien anote las transacciones. Juan se niega, él promete que no lo volverá a hacer y le pide que confíen en él. Jorge y Pablo saben que no pueden confiar en Juan. Además, cualquiera de ellos puede cometer un error honesto como olvidar anotar una transacción o escribir el número de DragonCoins equivocado. Esta vez fue fácil descubrir el problema porque habían muy pocas transacciones y todos las recordaban. ¿Qué pasaría en dos semanas cuando hubiesen muchas más transacciones en el cuaderno? ¿Sería alguien capaz de reconocer la inconsistencia?
Nota del autor: En Bitcoin las computadoras de la red no confían la una con la otra pues eso abre la puerta a actores maliciosos que podrían tratar sacar ventaja del sistema. Bitcoin se conoce como una red “trustless”.
Los niños discuten por un rato y acuerdan que la mejor forma de evitar que alguien hiciese trampa (o verificar si alguien cometió un error), sería que cada uno de ellos mantenga una copia de todas las transacciones en sus respectivos cuadernos. Al final del día los niños compararían las transacciones en sus cuadernos para verificar que fuesen exactamente iguales. Si durante esta comparación de notas los niños encuentran por ejemplo que en un cuaderno existe una transacción que no existe en los otros dos, sabrán que el dueño del cuaderno hizo trampa. Eso debería ser suficiente para evitar que Juan haga trampa otra vez. Si lo intenta, sería descubierto fácilmente.
Nota del autor: La red de Bitcoin se compone de miles de computadoras conectadas entre sí a través de Internet. Cada uno de estos computadores contiene una copia de todas las transacciones realizadas en la red. Cada vez que se realiza una nueva transacción, cada computador la verifica de forma independiente para detectar irregularidades. De detectarse un computador que trata de hacer trampa el resto de los computadores lo aislaría de la red.
Al cabo de un par de semanas de jugar a trabajar y de intercambiar cosas entre ellos a cambio de DragonCoins, los niños han acumulado cientos de monedas. Poco a poco se empiezan a percatarse que el costo de las cosas que intercambian empieza a aumentar. Por ejemplo, la galleta que Jorge lleva de merienda que tanto le gusta a Juan, ahora también es codiciada por Pablo. Cuando Juan ofrece nuevamente 20 DragonCoins por la golosina, Pablo ofrece 30. Juan no se da por vencido y esta vez ofrece 40 DragonCoins. Pablo desiste de seguir compitiendo y Juan logra comprar su galleta preferida, esta vez al doble del valor original. Los 3 amigos observan el mismo fenómeno con las pegatinas que vende Pablo y los dulces que vende Juan.
Nota del autor: Bitcoin es un curioso caso económico puesto que aunque 18 millones de monedas se han creado hasta el momento, el costo de productos y servicios denominadas en Bitcoin han bajado, no subido. Por ejemplo, la primera transacción pública en donde se usó Bitcoin para comprar un producto ocurrió en 2010. En ese momento se pagaron 10.000 BTC por dos pizzas. En 2020, las mismas 2 pizzas costarían apenas 0.001 BTC. Una explicación para este fenómeno es que la impresión de dinero “real” por parte de los bancos supera ampliamente la creación de nuevos Bitcoins.
Para los niños esta situación es inconveniente pues ahora se ven en la necesidad de constantemente ajustar los precios. Idealmente ellos quisieran que el costo de las cosas siempre se mantuviera igual pues así intercambiar golosinas, galletas y pegatinas sería mucho más sencillo. ¿Cómo pueden lograr evitar el aumento de precios? Inicialmente los niños tratan de fijar los precios de todas las cosas que intercambian. Galletas 40, pegatinas 60 y dulces 30. Este arreglo funciona bien por un tiempo pero la tentación es muy grande y eventualmente vuelven a competir uno con otro por la misma galleta, la misma pegatina y el mismo dulce. Los precios vuelven a subir y los niños comprenden que fijar el precio no funciona.
Nota del autor: Países como la Unión Soviética, Cuba y Venezuela intentaron por años controlar la inflación a través de un esquema de fijación de precios. Al final todos estos intentos han fracasado y estos países se han visto forzados a abandonar dicha política económica.
Ante esta disyuntiva y viendo que no logran encontrar una solución al problema, los niños piden ayuda a su profesor al final de la clase. El profesor escucha atentamente y emite un diagnóstico. El Reino del Dragón está sufriendo de inflación y la cura es aumentar el número de galletas, golosinas, etc. que los niños están dispuestos a intercambiar o dejar de producir nuevas monedas a través del juego “adivina la carta”. Como los niños no pueden ir a una tienda a comprar más golosinas o cosas para intercambiar, pues la cantina del colegio no acepta DragonCoins, deciden entonces por la segunda opción: dejar de crear nuevas monedas.
Valentina y Luis han mostrado interés por unirse al Reino del Dragón. Juan, Pablo y Jorge deciden no detener inmediatamente la producción de nuevas monedas pues no sería justo con Valentina y Luis cuando decidan empezar a jugar. Ellos estarían en desventaja pues no tendrían la posibilidad de jugar a adivinar la carta para obtener sus primeros DragonCoins. En su lugar, los niños deciden disminuir progresivamente la cantidad de DragonCoins que se otorga al adivinar la carta. En lugar de otorgarse 10 DragonCoins, esta semana el juego solo otorgaría 9. La semana siguiente 8, la próxima 7, etc. Eventualmente la recompensa será 0, los niños dejarían de jugar a adivinar la carta, no nuevos DragonCoins serían creados y los precios finalmente se estabilizarían.
Nota del autor: El código de Bitcoin estipula que cada 4 años (en promedio) la cantidad de nuevos bitcoins que serían generados por resolver correctamente el desafío de proof-of-work se reducirá a la mitad. Esto trae como consecuencia que en algún punto en el futuro no nuevos bitcoins serán creados y la cantidad total de monedas en circulación se limitará a 21 millones de BTC.
De Vuelta a la Realidad
La historia de Juan, Pablo y Jorge nos ayuda a comprender conceptos fundamentales sobre el funcionamiento técnico de Bitcoin y de su economía. Por supuesto muchas cosas que existen en Bitcoin se han dejado de lado en la historia debido a que la complejidad técnica dificulta incluirlos en una simple narrativa.
La gran revolución técnica de Bitcoin es lograr que diferentes nodos de la red (las computadoras) logren colaborar entre sí incluso cuando uno o varios nodos fallan y dejan de responder, o cuando uno o varios nodos tratan de hacer trampa para robar dinero. La gran revolución económica de Bitcoin es su habilidad de limitar la cantidad de dinero que se pueda crear en el sistema a 21 millones de monedas. Ni siquiera el oro tiene esa propiedad pues siempre habrán empresas de minería extrayendo más metal precioso de las entrañas de la tierra.
Incluso luego de 10 años de haberse creado, Bitcoin está aún en su fase inicial si se le compara con cualquier otra moneda o con metales preciosos como el oro y la plata. Bitcoin ha demostrado con creces la solidez de su tecnología pues nunca ha sido hackeada a pesar de haber 500 mil millones de dólares en juego. 2021 podría ser entonces el momento en que la solidez de la política económica de Bitcoin se ponga a prueba. Su futuro depende de ello.
Excelente. Me comentaste que el bitcoin ya no se usaba para “trasferir” porque el costo de esa operación ha aumentado. Entiendo ahora que su principal función es ser una moneda de “ahorro” para cubrirse de la depreciacion del dolar o no? Y además se está valorizando. Para además del bitcoin te he oído hablar de “blokchain”. Que es? Cuál es su uso?
El costo de transferir dinero cambia según qué tan congestionada esté la red de Bitcoin. Ahora mismo el costo es bajo ($5 USD) porque la gente esta guardando los bitcoins a largo plazo y hay menos intercambio de manos. Este costo aumenta rápidamente cuando hay picos positivos o negativos de valor de la moneda en donde muchas personas tratan de vender o comprar simultáneamente. Y sí, hoy en día personas e instituciones están comprando bitcoin como una forma de protegerse ante la depreciación del dólar debido a la impresión de dinero de la FED. En términos generales, blockchain un tipo particular de “base de datos” que usa Bitcoin, Ethereum y otras criptomonedas, para almacenar las transacciones hechas en sus redes. Con el tiempo el término “blockchain” se empezó a usar no solo para referirse a la base de datos pero a todo el conjunto de tecnologías que hacen posible una criptomoneda (base de datos, red de comunicación, algoritmo de consenso, etc.)
David. Muy bueno, me llevo esa comunidad de reddit para probar. Abrazos!