Hoy en día, parece impensable poder enviar valor al otro lado del mundo, sin que un empleado o un algoritmo de una entidad centralizada valide que tiene los fondos en su cuenta bancaria antes de transferirlos. ¿Cómo permite la blockchain, gracias a los procesos matemáticos, informáticos y algorítmicos, evitar esta necesidad de centralización? Y, sobre todo, evitar el fraude por doble gasto. 

¿Es posible copiar el oro o reproducirlo? No. ¿Es posible copiar un billete de dólar? Sí, pero necesitará un equipo específico y un tipo de papel adecuado. Entonces será imposible dar un billete de 10 euros a un comerciante, y luego reutilizar esos mismos 10 euros en otro comerciante (a menos que seas un gran negociador). 

Sin embargo, este no es el caso de los activos digitales. Un activo digital es un conjunto de códigos que pueden copiarse y enviarse a múltiples destinatarios. Si este fuera el caso, los activos digitales en el contexto transaccional podrían considerarse un gran engaño. Especialmente si no hay ningún intermediario financiero entre dos individuos para controlar las transacciones. Afortunadamente, la cadena de bloques proporciona la solución a este problema de doble gasto.

El doble de gasto con la blockchain

Conceptualmente, se trata de impedir que un individuo afirme tener más dinero del que realmente tiene, y especialmente que gaste más dinero del que tiene. En el contexto de una blockchain, es necesario entonces un proceso de verificación que permita anular la necesidad de verificación por parte de un banco centralizado. Aquí, la idea es que la red (las entidades conectadas con sus ordenadores) decida por mayoría si una transacción es válida o no. El objetivo es el mismo: la transacción será autorizada o no. Sin embargo, la diferencia radica en la fuente de legitimación. Es la mayoría de la red la que, al sustituir a la institución bancaria centralizada, valida la transacción en función de la cantidad (+50% de los nodos, es decir, de los ordenadores conectados a la red están de acuerdo en que la transacción es legítima) y no de la calidad de la autoridad (un banco). 

Sistema centralizado vs. descentralizado
Fuente: Forbes México

Aquí vemos surgir el valor de la noción de "descentralización". Cuantos más actores estén presentes en todo el mundo en la red para verificar las transacciones, cuantos más validadores haya para legitimar los bloques que incluyen las transacciones, más "segura" se vuelve la red. Con casi 15.000 nodos validadores en la red Bitcoin hoy en día, si una docena falla, miles más pueden tomar el relevo sin problema (ya que cada nodo tiene el mismo historial de transacciones que todos los demás). A diferencia de una entidad centralizada que puede ser corrompida, un sistema descentralizado a gran escala es difícil de corromper. 

En los sistemas de moneda digital, garantizar que los fondos no se dupliquen es de suma importancia. Los sistemas blockchain no funcionan si X recibe diez unidades y las copia/pega diez veces para crear un total de 100 unidades. Los sistemas de cadena de bloques tampoco funcionan si X envía las mismas diez unidades a Y y Z simultáneamente. En otras palabras, debe haber un mecanismo que garantice que los fondos del sistema no se gasten dos veces.

Esquema del doble gasto
Fuente: Digitemis.com

En esta lógica, es necesario que cada propietario sea identificable y que las transacciones sean públicas para que puedan ser verificadas. En otras palabras, es necesario poder registrar la primera transacción de un individuo en la blockchain (en definitiva, un registro público que puede ser consultado por todos en cualquier momento). Ejemplo: Etienne compra 10 bitcoins por primera vez en su vida. Etienne entrará en el historial de Bitcoin tan pronto como adquiera su BTC para que sus próximos movimientos puedan ser verificados y rastreados. Si Etienne envía 4 bitcoins a otro individuo, toda la red puede rastrear la transacción. Mediante protocolos criptográficos, la comunidad podrá saber si Etienne tiene derecho a enviar 10, 20 o 100 bitcoins a otra persona de la red (el concepto de doble gasto). En el caso de la cadena de bloques de Bitcoin, nuestra información personal está encriptada para que no se nos pueda identificar directamente con nuestro nombre. Esta noción será objeto de todo un episodio.

Sistema del doble gasto
Fuente: Bitpanda

Entendemos que será difícil mentir ya que todo es visible y rastreable en el libro de contabilidad pública. Cada transacción es también irreversible. Lo que está grabado en la blockchain es definitivo e infalsificable. 

Bitcoin, el límite de tiempo. 

Supongamos que un usuario quiere utilizar su bitcoin para hacer varias compras en diferentes comercios simultáneamente. Por término medio, un bloque se verifica y valida cada 10 minutos en Bitcoin, lo que permite a un defraudador utilizar su bitcoin a tantos comerciantes como quiera hasta que la red valide la primera transacción. Como recordatorio, un bloque contiene unas 4000 transacciones con un peso de 1MB.

Por lo tanto, nuestro ladrón tiene 1 bitcoin. Sabe que puede utilizar su bitcoin simultáneamente en varios comerciantes (principio del doble gasto). Los mineros tardarán X minutos en validar la primera transacción realizada con su bitcoin, mientras que las demás serán rechazadas por la red. Los comerciantes tendrán que esperar a que la transacción sea verificada y validada por los mineros para evitar una estafa.

Esquema de transacciones en espera
Fuente: oulasri.github.io/

Esta comprobación requiere complejos cálculos matemáticos para verificar estas transacciones. Aquí es donde entran los mineros (que utilizan ordenadores conectados a la red) para verificar las transacciones. Imagine que los ordenadores realizan constantemente cálculos para encontrar una solución matemática que permita validar el bloque, es decir, cerrarlo y pasar al siguiente. Pero para verificar estas transacciones, y por lo tanto la cantidad de energía involucrada, el mecanismo de "prueba de trabajo" prevé el pago de estos mineros. 

La prueba de trabajo es un mecanismo de consenso utilizado para confirmar que los participantes de la red, llamados mineros, están calculando códigos alfanuméricos válidos (llamados hashes) para verificar las transacciones de Bitcoin y añadir el siguiente bloque a la blockchain. Volveremos a hablar largo y tendido de la "prueba de trabajo" a lo largo de la saga. Aquí nos limitaremos al concepto de doble gasto que es una característica de esta "prueba de trabajo".

El problema de los generales bizantinos

El problema de los generales bizantinos es un problema informático formalizado por Leslie Lamport, Robert Shostak y Marshall Pease en 1982. Se trata de una metáfora que involucra a los generales que asedian una ciudad enemiga. Un problema revivido por el misterioso Satoshi Nakamoto como ejemplo de la solución de Bitcoin.

El problema de los generales bizantinos puede entenderse imaginando una ciudad que debe ser conquistada. No se puede conquistar simplemente atacando por un lado porque tiene una defensa adecuada para luchar por un lado. Sin embargo, si dos ejércitos atacaran desde ambos lados, la ciudad sería fácilmente derrotada. Sabiendo esto, los generales decidieron dividir su ejército en dos para que los ejércitos pudieran atacar la ciudad desde ambos lados a la vez. Sin embargo, la clave es que ambos conjuntos de ejércitos atacan la ciudad simultáneamente. Si no hubiera comunicación digital entre los dos generales, sería muy difícil que ambos ejércitos atacaran la ciudad al mismo tiempo. Incluso si los generales utilizaran un mensajero para coordinar los ataques, los generales podrían no confiar en el mensajero. Si la seguridad de la ciudad capturara al mensajero original y enviara uno falso al otro lado, por ejemplo, el ataque fracasaría. ¿Hay alguna forma de autentificar un mensaje sin confiar en el mensajero (tercero de confianza)?

El problema de los generales bizantinos
Fuente: Bitpanda

De los generales a Satoshi

La solución al problema de los generales bizantinos no es sencilla. Quizás algún tipo de encriptación ayudaría a los generales a compartir una frase secreta que descodifique y verifique la autenticidad del mensaje subyacente. En un mundo informatizado, descifrar algoritmos sencillos es muy fácil. Por esta razón, los algoritmos de hashing (función matemática) propuestos por Satoshi Nakamoto han sido extremadamente útiles para aumentar la complejidad de estos algoritmos.

En concreto, Satoshi Nakamoto propuso una estructura de datos conocida como blockchain en la que los participantes (nodos) ejecutan complejos algoritmos para resolver diversos problemas matemáticos. Una vez resuelto un problema matemático, se crea un bloque que se comunica a toda la red.

Del mismo modo, las transacciones iniciadas por los usuarios también son verificadas por estos nodos. De hecho, una transacción no se añade inmediatamente a la cadena de bloques. Sólo se añade a la cadena de bloques después de que un nodo haya creado un bloque utilizando la potencia de cálculo. A cambio, el nodo es recompensado con moneda digital. Y sí, como habrás comprendido, los cálculos matemáticos para verificar las transacciones requieren una gran cantidad de energía (electricidad), así que tuvimos que idear una forma de recompensar a estos nodos para animarlos a validar las transacciones. La recompensa en bitcoins fue entonces aportada. Volveremos a hablar de ello más adelante, ya que este tema requiere un artículo específico.

Además, las transacciones se comunican en la red en directo, lo que significa que todos los ordenadores de la red se enteran de cada transacción a medida que se produce. Si un intruso intenta comunicar una transacción falsa o gastar las mismas monedas dos veces en la red, será rechazado porque los demás nodos la invalidarán. La cadena de bloques mediante pruebas de trabajo es, por tanto, una forma práctica de evitar el problema del doble gasto y el problema de los generales bizantinos.


Diagrama de una Blockchain
Fuente: Masterthecrypto.com

La blockchain utiliza complejos algoritmos que impiden el fraude y animan a los participantes a actuar con honestidad. En términos sencillos, cuantos más participantes y bloques se añadan a la cadena, menos probable es que se pueda añadir un bloque falso a la cadena de bloques. O, en palabras del misterioso creador Satoshi Nakamoto, "la probabilidad de que un atacante lo alcance disminuye exponencialmente a medida que se añaden más bloques". Fuente: Libro Blanco: Bitcoin: A Peer-to-Peer Electronic Cash System).

Hay que decir que el Bitcoin ha demostrado ser a prueba de manipulaciones desde su creación hace más de trece años. El mecanismo de "prueba de trabajo" demuestra, por el momento, que es posible prescindir de un tercero de confianza para realizar una transacción en la blockchain. En los próximos episodios exploraremos cómo nos identificamos en la red (claves públicas y privadas) y las diferentes blockchains existentes (con permiso, privadas, públicas). Nos vemos pronto en las columnas de MarketScreener para el resto de la saga.

Episodios anteriores :