Introducción al consenso en Internet Computer

Rapido, seguro y de mayor rendimiento, descubriendo las características innovadoras del protocolo Threshold Relay

Ya sabemos que Internet Computer es el futuro de la internet descentralizada (si es tu primera vez, cliquea acá para ver algo de la historia de IC con más detalle) y que como tal innova en sus componentes y en la filosofía con la que va evolucionando. 

Podríamos pensar a IC como la web 3.0, basada en blockchain, buscando la descentralización, con un ecosistema consensuado por sus integrantes. Todo esto sin depender de servidores externos para asegurarnos que nuestra información no se pierda o sea robada. Aplicaciones funcionando en un entorno controlado por sus usuarios, DAOs por aquí y DAOs por allá. Y es hermoso dicho en esas palabras. Pero cómo controlamos que nada de esto salga mal?

Cómo evitamos que ninguno de nuestros nodos (servidores) se rompa o peor aún, que algún usuario malintencionado pretenda alterar el funcionamiento para su propio beneficio?

¿Cómo hacemos para qué una red como esta pueda escalar a un tamaño global sin morir en el intento?

Para algunas de esas respuestas en una red blockchain se desarrollan mecanismos de consenso, algoritmos que se encargan de controlar el mantenimiento y crecimiento de la red. Estos funcionan según sus propias reglas establecidas, para lograr que la información esté dispersa simultáneamente en diversos servidores y se mantenga estable. Para otras, Dfinity ideó el camino para que una web así sea posible. En ambos casos, lo más importante es que la seguridad, velocidad y la confiabilidad del sistema sean aspectos claves en su desarrollo y funcionamiento.

Antes de meternos de lleno en cómo son los protocolos de consenso de Internet Computer, hagamos un repaso en los métodos ya existentes.

Proof of work: blockchain origins

En primer lugar -varios años antes de que la figura fantasmagórica de Satoshi Nakamoto hiciera público el lanzamiento de su protocolo Bitcoin- surgió en los laboratorios de IBM la base para el protocolo PoW. El motivo en 1992 era para combatir el spam. De esta forma quien quisiera mandar un mail debía realizar un pequeño trabajo (una operación matemática) que le llevaba cierto tiempo, haciendo necesaria mucha capacidad de procesamiento para que el spam cumpla su objetivo a gran escala.

El mismo mecanismo, años después se usa en blockchain (actualizado a consenso Nakamoto) y se encarga de que el servidor que quiera minar (crear) un bloque nuevo a la blockchain deba realizar una operación matemática para encontrar el valor de un código hash.

Esta operación requiere mucha capacidad de procesamiento y de un tiempo de trabajo de 10 minutos. De esta forma uno prueba que invirtió trabajo para la red y por esta dificultad se asegura que no haya dos servidores que minen un nuevo bloque en simultáneo. No termina ahí, el consenso es propiamente una validación. Varios servidores confirman que dicho código es válido y que no hay una propuesta malintencionada o el nodo está funcionando mal.

¿Por qué confiamos en el resto? Porque es una competencia entre todos los mineros, nadie va a aceptar la trampa por qué todos quieren ser quienes se lleven la recompensa de anotar un bloque nuevo.

La recompensa cuál es? Jugosos tokens recién horneados

pero a medida que la red crece esa recompensa va cambiando y es mucho menor a la que había originalmente.

Este mecanismo, más allá de ser el que movió la rueda en un principio, tiene algunas desventajas:

  1. El impacto ambiental: Si todavía no lo hicieron, googleen granja de Bitcoin. Desde hace mucho se fueron montando grandes espacios donde alojar servidores que resolvían estas operaciones. La cantidad de energía utilizada es inmensa, incluso se comparó que en 2019 la PoW usaba la misma cantidad de energía que toda Suiza (emoji de sorpresa)
  2. Escalabilidad: es un sistema que no puede crecer infinitamente, ya que el costo de las transacciones empieza a subir conforme crece la red, haciéndose cada vez menos conveniente realizar dicha transacción. Por eso tiene un tamaño limitado
  3. No hay penalizaciones. Por más que se asusten los papis que mandan a sus hijos a escuelas Montesori, en un sistema como estos la penalización ayuda a que haya cada vez menos intenciones de piratear o de querer controlar la red por grandes grupos. Una pena (spoiler alert, IC te saca de la red si haces las cosas mal)

Proof of Stake: la eco-alternativa

Este mecanismo desarrollado por Sunny King para la moneda PPCoin, resuelve algunos problemas de la PoW, sobre todo el del consumo energético y el de la escalabilidad.

La base que lo cambia todo es que para minar (en este caso se llama validar) nuevos bloques no se pide un costo de procesamiento alto (grandes computadoras, granjas de minado), sino una cantidad de tokens bloqueados como primera medida. Luego, la elección del nodo validador es aleatoria, aunque se da mayores oportunidades a quienes posean mayor tenencia. 

En este caso también se valida un código hash, pero no se tiene que demostrar con tiempo de trabajo sino con tener un capital bloqueado. Y cómo este capital bloqueado es capital de la misma red nos incentiva a tener tokens y alinea los objetivos entre los participantes, ya que cualquier ataque malicioso a la red influiría en lo que poseemos. Sería como dispararse en el pie.

Y lo que quizás más nos importa para los objetivos de Internet Computer es que el PoS tiene mayor escalabilidad y menos costo energético ya que no precisa de equipos apilados en un galpón resolviendo operaciones matemáticas complejas. Imaginen un mecanismo así, como el PoW, para mantener la internet global. Imposible. Cada vez que se crea un bloque nuevo se precisan 10 minutos. Lo que significa que las operaciones a la escala de la internet como la conocemos serían lentisimas. Y ni hablar del costo energético que ya mencionamos. Inviable. El PoS es un consenso más veloz y de mayor rendimiento. 

Queres saber más de como ser parte de la gobernanza de IC? Hacé click acá y enterate como hacer stakings de $ICP

No obstante hay diferencias en los distintos tipos de consenso. Así como en Bitcoin el tipo de PoW era Consenso Nakamoto, por supuesto que en PoS hay diferentes formas de manejar el consenso. Y el equipo de Dfinity creó un mecanismo que nos permite soñar con una red tan escalable y veloz como la misma internet 2.0 y basada en smart contracts y criptografía avanzada.

Threshold Relay: Un protocolo a medida de nuestras necesidades

Este mecanismo se basa en nodos, cada uno responsable de crear nuevos bloques y de alojar la información descentralizadamente. Para lograr esta descentralización, replican la información en varios nodos alojados en una subred (una mini-blockchain dentro de la blockchain). De ahí que podemos hablar de ellos como réplicas, pero en un sentido estricto, réplicas refiere a la instancia del software de Internet Computer que corre en el nodo.

Estos nodos son los encargados de agrandar la red, pero como vimos antes, no hay que demostrar una cantidad de trabajo para esto, sino validar que tengan tokens ICP bloqueados (que confíen en la red en la que están trabajando), y que ofrezcan poder de procesamiento a la red. No se recompensa a quien primero resuelva una operación, por lo tanto es un protocolo que no se basa en la competencia. Aunque como dijimos antes, sí es un protocolo que penaliza a quienes actúan maliciosamente. Osea que, te recompensan por tu power de procesamiento, pero dentro del protocolo, obvio. 

Antes de ver cómo funciona este protocolo de consenso, hay que advertir que IC se basa en la idea de generar subredes donde agrupar réplicas y aplicar este protocolo. De esta forma una aplicación (Dapp) puede estar alojada en IC y que varias de estas réplicas sean las responsables de hacer cambios que se propongan. Un protocolo para esto, requiere que ante el mal funcionamiento de alguna de ellas, la red siga creciendo y funcionando estable y ágilmente. 

Por esta razón la solución para esto fue crear un protocolo que se basa en la posibilidad de mantener estable la red, aún si entre las réplicas de una subred alguna no funciona como corresponde.El mismo se divide en cuatro componentes que aseguran fiabilidad y rapidez:

  1. Creación de bloques. Una réplica propone un nuevo bloque para agregar.  
  2. Notarización: Es un proceso que garantiza que se identifiquen bloques válidos, mediante firmas múltiples, el descubrimiento clave de la criptografía chain key (en breve subimos una explicación detallada de cómo funciona este mecanismo innovador).
  3. Random Beacon (Baliza aleatoria): Es un número aleatorio que se genera para clasificar a los creadores de bloques y reducir la cantidad de bloques notariados en el paso anterior en cada ronda. De esta forma no todas las réplicas resuelven las mismas tareas.
  4. Finalización: Es el mecanismo asíncrono para saber que se llegó a un acuerdo para agregar el bloque sin necesidad de hacer suposiciones de trabajo. 
Manu Drijvers, un especialista sobre Consenso

Quizás una de las mayores innovaciones es la Random Beacon, que permite una distribución más descentralizada de la extensión de la red. 

Y algo que no dijimos (importantísimo) es que el estado de la red puede ser visualizado y descargado por un bloque de forma parcial, solo hace falta que vea el último estado del algoritmo de consenso y puede empezar a trabajar en la creación de bloques.  De modo que no es necesario que se descargue la red entera para asegurarnos de que nadie va a modificarla para su propio beneficio. No tener que hacer este gasto de almacenamiento y procesamiento nos brinda una velocidad que en este momento equivale a no más de 3 segundos por cada bloque nuevo. No hace falta decir mucho más, esto estabiliza el estado de la red en todo momento y agiliza estos procesos en comparación con los protocolos existentes. 

Superando el poder innovador que tuvo el PoW, pero que requiere mucho costo de procesamiento y que promueve la competición entre los usuarios de la red. Optimizando el PoS, que ya mejora el gasto energético del anterior, se basa en tener tokens de la red para poder mantenerla y nos propone un camino hacia la descentralización. El Threshold relay evoluciona la forma de crear nuevos bloques introduciendo nuevas tecnologías de encriptación descentralizada que pueden resolver los requerimientos de una red global blockchain en la misma velocidad que la Web 2.0

Esto no solo es prometedor sino que es la base de la escalabilidad que no supondrá límites a la web 3.0 gracias a la seguridad, rapidez, capacidad de modificación y validez que provee.

Mundo IC