¡Arbitrum Orbit estamos listos! Obtené más información sobre ser parte acá.

Blockchain: conceptos generales

19 de enero de 2024

La dificultad a la hora de comprender a qué nos referimos cuando hablamos de blockchain, puede que radique en nuestra idea acerca de qué es lo que queremos o debemos entender acerca de esta tecnología. Muchas veces complejizamos las cosas más de lo que se requiere, y esto no esta mal: es posible profundizar el conocimiento de blockchain y llegar a altos niveles de complejidad; sin embargo, esto no es necesario si lo que nos proponemos es entender, sencillamente, qué es, para qué sirve y cómo funciona la blockchain. Vayamos, pues, a ello.

Puede que la mejor manera de comprender qué es la tecnología blockchain sea imaginarla según lo que su nombre indica: como una sucesión de bloques encadenados uno con el otro. Estos bloques conforman, entonces, una red. Los denominados bloques son unidades que pueden almacenar distinto tipo de información. Probablemente, el uso de blockchain que sueles escuchar sea el referido a las criptomonedas, pero no solo se limita a esto.

De esta forma, podemos preguntarnos acerca de la utilidad de las blockchains. La dificultad a la hora de visualizar su utilidad puede darse por el concepto poco amplio que tenemos de la palabra "información", pero pensemos lo siguiente:

  • Información es lo que contiene tu documento de identidad y su versión online.
  • Información es la cantidad de dinero que tienes en tu cuenta bancaria y que visualizas en la aplicación de tu teléfono o en el cajero automático.
  • Información es tu título universitario o escolar subido a una página del Estado.
  • Información es el contrato de alquiler de tu departamento.
  • Información es el derecho de autor que un músico tramita para proteger su obra.

La lista podría extenderse mucho más. Lo importante es entender que todos estos datos (que, por otro lado, se mueven y modifican –-pensemos, por ejemplo, en tus movimientos bancarios–-) certifican y dan información sobre algún aspecto de la realidad y, además, deben almacenarse en algún sitio. La mayoría de ellos se encuentran almacenados en servidores y computadores de entidades privadas o gubernamentales (bancos, dependencias del gobierno, distintas instituciones, empresas, etcétera).

Todo esto no es un problema en sí, pero puede presentar algunos incovenientes. Por ejemplo:

  • Desconocemos cuánto se respeta nuestro derecho a la privacidad, más allá de que podamos confiar en la buena fe de aquellos que tienen acceso a nuestros datos.
  • Al estar alojada en un servidor centralizado, la información es susceptible de ser alterada, borrada o robada en caso de hacking.
  • Muchas veces, los servidores pueden presentar problemas o fallas técnicas y provocar inconvenientes de distinta gravedad.
  • Es prácticamente imposible elegir cierto nivel de anonimato para la mayor parte de nuestra información.
  • Puede suceder, también, que tengamos conflictos éticos para con aquellos sitios que, sin embargo, disponen de nuestra información.

En definitiva, lo que tenemos aquí es una estructura centralizada, con sus ventajas y sus contras. Y es entendiendo esto, que podemos comenzar a comprender la utilidad que tendría una estructura capaz de albergar y manejar dicha informacion pero que, por el contrario, se presente como descentralizada. Justamente, la tecnología blockchain se coloca como la mejor opción en ese sentido.

Volvamos, entonces, a nuestros bloques.

Como dijimos, esas unidades de información interconectadas pueden almacenar distintos datos. Podemos tomar un ejemplo –-ya clásico–- relacionado con las criptomonedas:

Supongamos que Javier, en Chile, tiene 5 ETH y quiere enviarle 1 ETH a Laura, en Venezuela, que tiene únicamente 2 ETH en su cuenta. Javier va a abrir su billetera virtual utilizando su clave de seguridad, seleccionará la cantidad a enviar y, luego, colocará la dirección de la cuenta de destino (en este caso, la de Laura). Pagará, luego, un extra (denominado "gas") en concepto de transferencia y el dinero viajará hacia la billetera virtual de Laura.

¿Qué esta sucediendo por debajo de la intuitiva aplicación que ambos utilizan? Se esta generando, pues, información nueva en el sistema, y la información de dicha transacción se almacena en un bloque, que incluirá:

  • Los datos de la transferencia: quién le ha enviado a quién 1 ETH
  • La cantidad de dinero que ha quedado en la cuenta de Javier una vez enviado 1 ETH a Laura (en este caso, 4 ETH; pues Javier tenía 5 y ha enviado 1)
  • La cantidad de dinero que tiene ahora Laura: es decir, 3 ETH: los 2 que poseía antes de recibir la transferencia, y el ETH que le ha enviado Javier.

Además, dicho bloque tendrá un código que, a grosso modo, serviría como una huella digital: lo hace único entre todos los demás bloques. Este código será una larga sucesión de números y letras y es conocido como hash. Si ese bloque modificase sus datos internos, el hash cambiaría, lo cuál permite conocer el "historial" de dicho bloque. Digamos que el hash es 14tz.

Por último, dicho bloque contendrá también el hash del bloque anterior a él; y, del mismo modo, el hash de nuestro bloque –-14tz–- figurará en el siguiente bloque creado: es decir, estará ahora encadenado a toda la inmensa red de bloques que conforman la blockchain.

¿Y qué pasaría si alguien quisiese hackear el bloque en cuestión y modificar su información? Esto, como hemos dicho, haría que cambie su hash: dejaría de ser 14tz. Esto crearía un conflicto con el bloque siguiente a nuestro bloque, en donde estaba registrado que nuestro bloque era el 14tz; esta incongruencia se transmitiría a toda la secuencia de bloques posteriores al nuestro, y haría saltar las alarmas de que algo se ha modificado.

Además, los bloques poseen medidas extras de seguridad conocidas con el nombre de Proof of Work. Explicado de manera muy sencilla, son mecanismos basados en criptografía que requieren ser resueltos para la creación o modificación de un bloque. Esto significa que, incluso si un hacker pudiese utilizar una computadora para calcular todos los cambios necesarios en la cadena de hash desde el bloque que ha alterado en adelante, aún así necesitaría resolver problemas criptográficos en cada uno de los bloques modificados para que su ataque pase desapercibido.

Y quizás nos preguntemos: ¿cuál es el servidor o la empresa que operaliza y certifica todo este movimiento? La respuesta, evidentemente, es que ninguna empresa o entidad centralizada se encarga de esto. Toda la red de bloques con su información esta a la vista de todos aquellos que participan en la blockchain. Es decir: es como si todos los usuarios del Banco X tuviesen acceso al libro de cuentas general del banco, en donde se registra cada movimiento de la masa total de dinero. Los beneficios de este mecanismo de exposición son varios:

  • El sistema no depende de un servidor centralizado, y por lo tanto es mucho más resistente a ataques maliciosos. Simplemente, no puede atacarse a un solo sitio para romper el sistema.
  • La transparencia y horizontalidad es total, ya que no existe ninguna entidad o persona que pueda "jugar" con los números (como si puede suceder en cualquier entidad centralizada y verticalista) y modificarlos según sus intereses o bien por error.
  • La aceptación de un nuevo bloque (que tiene su complejidad, y sobre la cual puedes indagar en profundidad aquí) se realiza por consenso entre muchísimas computadoras alredor del mundo –-denominadas también nodos–- que forman parte de la blockchain y que tienen que validar la transparencia de cualquier nuevo bloque con al menos una mayoría del 51%.

En definitiva: si alguien quisiese atacar la blockchain, debería:

  • Modificar un bloque, con lo cual cambiaría su hash.
  • Recalcular todos los hash de los bloques siguientes para mantener la aparente "normalidad" del sistema.
  • Sobrepasar el mecanismo de Proof of Work en cada uno de esos bloques.
  • Lograr un consenso de más del 50% de todos los nodos verificadores de la blockchain.

Como ves, la tecnología blockchain es, por lo tanto:

  • Descentralizada
  • Segura
  • De muy difícil corrupción
  • Auditable