El origen de los bitcoins. Explicación completa para principiantes

stats con chris
2022-03-23
0

...

La cadena de bloques

Un resumen de la tercera parte con algunos datos extras aparece en el siguiente video:

Quiero que pienses en cualquier juego que hayas jugado, desde Mario Bros hasta Mario Party, desde Candy Crush hasta Angry Birds, desde Pokemon Go hasta Fortnite. En todos los juegos siempre encontraremos ítems que nos ayudarán a pasar el nivel. Ten presente que estas no son las recompensas, son los ítems que nos ayudarán a obtenerlas. En el juego de los bitcoins un ítem es el par (m, f) generado, es decir, los datos de una transferencia. Si existen muchas transferencias, entonces existirán muchos ítems en el juego. Podemos entenderlo mejor haciendo la analogía con Fortnite, en dicho juego los ítems son las armas y municiones, uno las colecta hasta alcanzar un límite permitido y luego las almacena, similarmente en el juego de los bitcoins cada jugador colecta pares (m, f) hasta alcanzar un límite permitido, hecho esto los almacena en un bloque. Como podrás notar, en este juego hay dos tipos de jugadores, aquellos que generan transferencias (pasivos) y aquellos que colectan transferencias (activos), estos últimos son llamados "mineros". Enfoquémonos en ellos porque son los más importantes. Ten presente que son muchos, por tanto cada uno de ellos irá agrupando distintas transferencias hasta generar sus propios bloques. En la Fig. 5 representamos este evento, donde los bloques generados por cada jugador (minero) orbitan alrededor de la cuenta comunitaria. La pregunta es, ¿cuál de estos bloques se transcribe a dicha cuenta? ¿Cuál tiene prioridad? ¿Y qué ocurre con los otros bloques? Piensa en Fortnite, dos jugadores con sus respectivas armas y municiones, solo uno puede ganar y en este juego gana quien mata al otro, y si has jugado Fortnite sabrás que cuando matas a tu rival, sus ítems regresan al juego para que tú u otros los puedan reutilizar. En el juego de los bitcoins es similar, gana quien destruye a los demás, quien destruye los otros bloques implicando que esas transacciones regresarán al juego para que otros las puedan reutilizar, ¿pero cómo se logra esto? En este caso no hablamos de matar con un arma a tu rival, sino más bien se considera un reto y quien lo resuelve primero tiene el privilegio de escribir su bloque en la cuenta comunitaria. Para el reto se considera la función hash criptográfica SHA-256, la cual es una función que transforma cualquier texto dado (o cualquier bloque) en un único valor de longitud fija, el hash. Por ejemplo, si al título de este artículo, "El origen de los bitcoins. Explicación completa para principiantes" le aplicas la función SHA-256 te botará lo siguiente:

D5B8357EC2BE3A27C55C0CE5F6B9B1AC53AD70365CA62E11E5D9EF8B1CB1D530.

Pero si retiras la tilde a la "o", en "explicación", i.e., "El origen de los bitcoins. Explicacion completa para principiantes" y vuelves a aplicar la función, obtendrás un resultado diferente:

366948640CB43CC9F372EAD71BBDAA70830562121C411C7A921B10C56571B9C4.

Como puedes apreciar, un ligero cambio provoca una gran transformación. ¿Y para qué sirve? Digamos que Alice quiere enviar un documento digital a Tom, primero obtendrá el hash del documento y luego lo enviará. Al recibir Tom el documento generará su propio hash. Si los hashes son idénticos significa que nadie ha alterado la información, ni siquiera quitándole una tilde a una "o", pero si el hash ha cambiado implica que un tercero lo ha modificado. Consecuentemente, los hashes se utilizan para cerciorarse que nadie ha alterado la información, y es por eso que en el juego de los bitcoins Satoshi los implementó. Para comprenderlo mejor enfoquémonos en un bloque.

Fig. 5: Explicación gráfica de los bloques que generan la blockchain.

Tal como aprecias en la Fig. 5, el recuadro rojo representa un bloque y está formado por tres partes: una cabecera, un cuerpo y un pie de página, en la cabecera está el hash del bloque anterior, en el cuerpo están todas las transacciones recolectadas, y en el pie de página el jugador podrá escribir un número aleatorio que desee. Lo que tiene que hacer el jugador para ganar es definir el hash de su bloque pero bajo una condición: "Este nuevo hash debe empezar con una cantidad definida de ceros". Y para lograrlo justamente usa el pie de página porque es ahí que podrá aleatoriamente generar un número que cumpla esta regla. Curiosamente conseguirlo es muy difícil, tanto como si te dijesen que debes lanzar 10 dados juntos y obtener como mínimo en 5 de ellos el valor 1 para ganar. Para lograrlo vas a tener que repetir la experiencia innumerables veces hasta acertar, demanda mucho esfuerzo y al mismo tiempo hay suerte. Como dije, gana quien genera el hash, pero sobre todo, quien obtiene la validación de los demás. ¿Y qué es lo que gana? Ya dijimos al inicio que se ganan recompensas y en el caso de este juego son los bitcoins, el sistema te los regala al transcribir tu bloque a la cuenta comunitaria y como puedes apreciar en la Fig. 5, esta cuenta comunitaria alberga muchos bloques ganadores, en secuencia, enlazados por el hash en sus respectivas cabeceras y es por eso que la llaman la cadena de bloques o blockchain en inglés.

Hasta este punto debes tener presente lo siguiente. La cuenta comunitaria es la blockchain y contiene el historial de todas las transacciones de los bitcoins, por tanto es posible saber cuántos bitcoins tiene cada usuario en su poder, no sabemos exactamente quiénes son estos usuarios pero eso no nos interesa. Gracias a la encriptación ECDSA, las transferencias personales son anónimas y están protegidas de suplantaciones, no obstante, cabe preguntarse si la blockchain permite la protección de este historial de transacciones. Veamos un ejemplo, consideremos que Bob intenta cambiar algún dato en un bloque que está escrito en la cuenta comunitaria, inmediatamente al hacerlo estará alterando el hash de ese bloque y al alterarlo inmediatamente estará cambiando el hash del bloque posterior. ¿Por qué? Porque todos los bloques guardan en sus cabeceras el hash del bloque anterior, y si te das cuenta este efecto continúa hasta el último bloque registrado como efecto dominó, por ende, todos los hashes a partir del primer bloque cambiarán y será muy fácil darse cuenta que alguien ha alterado algún dato. Posiblemente tengas dudas y te digas: "Pero si borra algún dato y cambia el hash, lo cambia todo y ya no podemos regresar atrás. Es como tener un papel con transacciones escritas en él, sin percatarnos alguien podría derramar un líquido y ya no hay forma de recuperar la información". Tienes razón y es por eso que recién aquí te quiero contar verdaderamente cómo funciona esta cuenta comunitaria. En la Fig. 6 te muestro dos representaciones de la cuenta comunitaria donde la segunda (derecha) es la forma más correcta de observarla.

Fig. 6: Representación de la cuenta comunitaria. Forma elemental (izquierda). Forma real (derecha).

Como puedes ver, en realidad todos tienen su propia copia de la cuenta comunitaria, ya dijimos que un programa Peer to Peer permite transferencias de PC a PC, por tanto, en el universo de los bitcoins, se transfieren estas cuentas comunitarias, o mejor dicho, se transfieren los bloques de dichas cuentas, y la elección de cual aceptar en tu PC estará sujeta a cual consideras que tiene mayor validez. Por ejemplo, si Bob altera su cuenta comunitaria, cambiará el hash de sus bloques, y si tú observas que hay otras 1000 personas que tienen un hash distinto al de Bob y son iguales, entonces necesariamente estarás convencido que la cuenta comunitaria de Bob es incorrecta y no le prestarás atención. Bob, solo depende de que alguien acepte copiar su cuenta, lamentablemente nunca tendrá éxito a menos que más del 50% de jugadores sean sus amigos, algo que será imposible de alcanzar por la cantidad de jugadores en línea que hay. Por esta razón, el historial de transacciones está protegido gracias al concepto de la blockchain.

Ahora pasemos a discutir dos escenarios interesantes en los cuales Bob intentará corromper el sistema. Esto nos permitirá entender aún más el concepto de la cadena de bloques y su completa fiabilidad.

1. Crear un bloque con una transacción falsa

Ya sabemos que Bob no puede alterar el pasado de la cuenta comunitaria porque está protegida por los hashes. Ahora intentará alterar el futuro. Para esto, jugará el juego de los bitcoins convirtiéndose en minero. Empezará recolectando pares (m,f) para definir su propio bloque; no obstante, en él incluirá una transacción falsa con el fin de ocultarla. Procederá a obtener el hash y convertirse en el bloque ganador, si lo logra, en teoría, su bloque pasaría a formar parte de la cuenta comunitaria. Lamentablemente para él, esto no será posible aún ganando el juego porque una vez conseguido el hash, los demás jugadores van a tener que validar su bloque, es decir, verificar las transacciones en él usando la función booleana especial "v", la cual fue descrita en la segunda parte de este artículo. Adicionalmente, van a corroborar que el hash obtenido es el correcto. En este caso, ciertamente los demás jugadores descubrirán que Bob ha cometido un error y no será aceptado como ganador. Como puedes notar esto es un consenso, no necesariamente basta ser el primero en resolver el hash sino también es fundamental obtener la validación de los demás, y los demás buscarán actuar correctamente porque hay una recompensa de por medio.

2. Intentar el doble gasto

En la segunda parte del artículo dijimos que la encriptación ECDSA evita la suplantación del doble gasto, es decir, Bob no podría replicar las transacciones hechas por otros usuarios; no obstante, esta encriptación no puede evitar el doble gasto sin suplantación. Me explico, Bob entiende que las transacciones falsas no lo llevarán a ningún lado, por tanto buscará usar transacciones verdaderas. Digamos que Bob en su cuenta personal "Z" tiene 10 BTC, es decir, el historial de transacciones (la cuenta comunitaria) sabe que la cuenta "Z" posee 10 BTC a la fecha. Si Bob transfiere esos bitcoins a otra cuenta, la encriptación ECDSA la validará como correcta. Bob usará esto a su favor y hará las siguientes transferencias:

Transferencia #1 escrita por Bob:
"Z envía a L 10 BTC". Firma: 9443RTSSGx.
Transferencia #2 escrita por Bob:
"Z envía a M 10 BTC".  Firma: 923fDRGER.

Como podrás notar, Bob solo tiene 10 BTC y está usándolos doblemente para enviar a dos cuentas distintas, L y M. Ten presente que esto es factible porque el historial de transacciones aún no tiene registrado ninguna nueva transferencia hecha por Bob, entonces estos pares (m, f) serán enviados a la cuenta comunitaria como transacciones correctas validadas por la encriptación ECDSA; no obstante, primero orbitarán alrededor de la cuenta comunitaria y serán los mineros quienes las agregarán a sus bloques respectivos para verificarlas y obtener los hashes. Consideremos que dos mineros almacenan cada una de las transferencias en sus bloques. Nuevamente, como el historial de transacciones solo tiene registrado que "Z" tiene 10 BTC en su poder, entonces ambas transferencias al ser verificadas por los mineros serán correctas; no obstante, en cada etapa de este juego solo hay un ganador, y de esos dos mineros que obtuvieron los hashes de sus respectivos bloques, solo uno puede ganar, es decir, una de las transferencias, y solo una, será escrita en la blockchain... la otra retornará al juego para que otros la puedan verificar y cuando este sea el caso ya no tendrá validez porque ya existirá una nueva transferencia hecha por "Z" en el historial. ¿Qué ocurre si ambos mineros obtienen sus hashes respectivos al mismo tiempo y se declaran ambos ganadores? En este caso debes recordar la Fig. 6 y tener presente que la blockchain, o cuenta comunitaria, solo existe porque todos la copian en su PC, es decir, la blockchain solo tiene validez una vez que todos la tengan en su PC. En el caso de dos mineros creando dos nuevos bloques, entonces necesariamente surgirán dos blockchains. Algunos jugadores optarán por copiar el bloque del primer minero y otros jugadores optarán por agregar el bloque del segundo minero, esto es aleatorio y el juego no se decide hasta el subsiguiente bloque, es decir, de esas 2 blockchains que han dividido el juego en dos bandos, solo triunfará y emergerá como única blockchain la que construya un subsiguiente bloque ganador. En palabras sencillas, siempre gana quien tenga la cadena de bloques más extensa porque implica un mayor esfuerzo computacional, y por consenso todos terminarán migrando a ella. En este sentido, lograr el doble gasto es imposible, y en general, corromper el sistema de los bitcoins es irrealizable, claro está, esto posiblemente pueda cambiar con la comercialización de las computadoras cuánticas, las cuales podrán decriptar información en un corto tiempo y generar bloques ganadores con suma facilidad. No obstante, cuando esta era llegue, los protocolos de los bitcoins cambiarán y es muy probable que empecemos a usar encriptaciones cuánticas. Un introducción respecto a ello lo publiqué en el artículo titulado: "El entrelazamiento cuántico y el fin de la ciberseguridad".

Para finalizar cabría pronosticarte el futuro. Si alguien logra hackear la blockchain en unos años es muy probable que el precio de los bitcoins caiga a cero, es decir, el hacker no obtendría beneficios económicos de ello. Por eso los hackers no están obsesionados con esto, más bien están interesados en robar bitcoins de las plataformas de intercambio, que son entes centrales que cumplen el propósito de cambiar bitcoins por dólares. Si hoy en día escuchas hablar de robos de bitcoins en internet, estos no tienen nada que ver con la blockchain, es exclusivo de terceras partes porque los hackers ya han demostrado en el corto tiempo que la aman y la van a proteger implementando protocolos. Por tanto, los únicos que pueden destruir a los bitcoins son los gobiernos del mundo y mientras eso no ocurra el precio de los bitcoins continuará creciendo. Por esto y por todo lo que acabo de explicar en este artículo es que tengo bitcoins en mi poder y créeme que no los pienso vender. Claro que posiblemente hay algo que Satoshi no pudo vislumbrar y es el hecho que los bitcoins están creando nuevos ricos, y estos ricos en un futuro probablemente tendrán el control del mundo. Por eso hoy en día, en las altas esferas económicas hay una guerra ideológica girando en torno a los bitcoins. Por un lado tenemos a los viejos hombres del ayer como Bill Gates y Warren Buffett, quienes consideran que los bitcoins no tienen futuro. Pero por el otro extremo tenemos a las nuevas mentes del mañana como Jack Dorsey o los hermanos Winklevoss gritando al mundo que los bitcoins llegarán a valer $100 000 en los próximos 5 años y un millón en los próximos 25 años... ¿Qué postura triunfará? Solo el futuro nos lo dirá...

En este artículo solo te he contado el origen, no te he hablado sobre su historia ni sobre aquel memorable día que el primer bitcoin se minó. Si deseas indagar en su historia te invito a leer el artículo: "El pasado y el futuro de los bitcoins. Historia matemática", en él, te doy más razones por las cuales creo firmemente en esta moneda digital.

Vistas: 1

stats con chris

Un escritor que aprendió a sumar

Un escritor que aprendió a sumar

Notificaciones

Recibe los nuevos artículos en tu correo electrónico

2022 © nepy

Un solo aliento

Configurar

Elige tu propio estilo

Color

Elige el modo que sea de tu agrado


Posición del Navegador

Elige el sistema de navegación


Estilo del Navegador

Elige el estilo del navegador vertical

Personalizar