El algoritmo para lograr el consenso es una parte esencial del blockchain. Debe ser eficiente y seguro, garantizar la exactitud de la información registrada así como proteger los datos. Le contamos qué son los algoritmos para lograr el consenso, cómo funcionan y en qué criptomonedas son utilizados.
Uno de los aspectos más importantes de un proyecto de criptomonedas descentralizado es el algoritmo de consenso que utiliza. Un algoritmo de consenso es crucial para la implementación de una moneda digital, ya que evita el doble problema del gasto, un reto que históricamente ha limitado el desarrollo de las monedas digitales hasta el reciente desarrollo y adopción del método del libro mayor blockchain.
Puesto que las criptomonedas son implementadas como libros de contabilidad públicos y descentralizados a los que solo se puede añadir información, estos deben emplear un algoritmo de consenso que permita verificar que "existe una versión de la verdad" y que la red no puede verse afectada por estafadores.
¿Qué es un algoritmo para alcanzar el consenso?
Tal y como explica TechTarget: "Un algoritmo de consenso es un proceso informático utilizado para lograr un acuerdo sobre un único valor de datos entre procesos o sistemas distribuidos. Los algoritmos de consenso están diseñados para alcanzar la fiabilidad en una red que incluye múltiples nodos poco fiables. Resolver este problema, conocido como el problema del consenso, es importante en los sistemas de computación distribuida y multiagente. Para acomodar esta realidad, los algoritmos de consenso necesariamente asumen que algunos procesos y sistemas no estarán disponibles y que algunas comunicaciones se perderán. Como resultado, los algoritmos de consenso deben ser tolerantes a los fallos. Estos suelen asumir, por ejemplo, que tan solo una porción de los nodos responderá, pero requieren una respuesta de esa porción, un 51% como mínimo".
En lo que respecta a las criptomonedas, los algoritmos de consenso están diseñados para asegurar que las transacciones sean válidas y distribuidas entre una gran cantidad de participantes para así verificar la exactitud y la resistencia a través de la redundancia.
En los proyectos actuales podemos encontrarnos con cuatro algoritmos de consenso diferentes, cada con sus ventajas y desventajas:
Proof-of-Work (PoW)
El Proof-of-Work (PoW) fue el primer algoritmo de consenso descentralizado del blockchain que tuvo éxito. El PoW sigue siendo utilizado por el bitcoin y otras criptomonedas, como el ethereum (el ethereum planea pasarse al Proof-of-Stake), el litecoin, ZCash, Monero, y muchas más.
El PoW requiere que los participantes realicen un trabajo intensivo desde el punto de vista computacional pero fácil de verificar por otros miembros en la red. En el caso del bitcoin, los "mineros" compiten por añadir un conjunto de transacciones, conocido como bloque, al blockchain global mantenido por la red. Para hacer esto, un minero debe ser el primero en descifrar correctamente el "nonce", un número añadido al final de una cadena para crear un hash que comienza con un número requerido de ceros.
El aspecto positivo más significativo del PoW es que ha demostrado ser útil durante muchos años, algo que no puede decirse de otros algoritmos de consenso. Sin embargo, el PoW no está exento de deficiencias, que incluyen un alto consumo de energía por parte del proceso de minería y un bajo rendimiento de las transacciones.
Proof-of-Stake (PoS)
Existen diferentes versiones del Proof-of-Stake (PoS). En todas ellas, el PoS requiere que los participantes "apuesten" una parte de las monedas que mantienen en la red para verificar las transacciones.
En lugar de "minar" completando problemas computacionalmente difíciles para verificar las transacciones, los "mineros" apuestan sus monedas en las transacciones. El acuñador seleccionado para completar el bloque suele ser seleccionado en proporción al valor que ha apostado en la red en comparación con el valor total de la red, cuánto tiempo han estado bloqueadas las monedas, o alguna otra medida para asegurar que el acuñador comparte el interés a largo plazo de la red.
Mientras que el Proof-of-Work disuade el mal comportamiento haciéndolo computacionalmente agotador y no rentable, el Proof-of-Stake disuade el mal comportamiento cambiando la verificación a aquellos que tienen el mayor valor agrupado en la red y, por lo tanto, tienen el mayor interés en verla tener éxito. Los mineros que apuestan sus monedas a cadenas que poseen transacciones fraudulentas verán reducidas sus apuestas.
El Proof-of-Stake es actualmente utilizado por Peercoin, Decred, y pronto por el ethereum. Las ventajas del PoS son que es más eficiente energéticamente y posiblemente mejor en la prevención de ataques que el PoW, pero aún no se ha demostrado que sea efectivo o que se haya implementado en un proyecto de gran envergadura.
Delegated Proof-of-Stake (DPoS)
Aunque el nombre del Delegated Proof-of-Stake (DPoS) es parecido al del Proof-of-Stake, los detalles de su implementación son significativamente diferentes. En el DPoS, en lugar de apostar monedas para validar transacciones, los propietarios de tokens votan por un grupo selecto para que cumpla la función de validar transacciones.
El DPoS permanece "descentralizado" en el sentido de que todos los participantes de la red participan en la selección de los nodos que validan las transacciones, pero centralizado en el sentido de que un grupo más pequeño toma decisiones que aumentan la velocidad y la verificación de las transacciones.
Las implementaciones del DPoS mantienen una reputación, un proceso de votación continuo y un sistema de reorganización que mantiene a los validadores electos responsables y honestos.
Las ventajas del DPoS son que es escalable y proporciona una rápida verificación de las transacciones, pero la desventaja es que está parcialmente centralizado y el modelo de gobernanza no ha demostrado ser eficaz en un proyecto de gran envergadura. El DPoS es empleado por Steemit, EOS y BitShares.
Byzantine Fault Tolerance (BFT)
En general, los algoritmos de consenso BFT empleados por los proyectos de criptomonedas permiten a los generales (validadores) gestionar el estado de una cadena y compartir mensajes entre sí para llegar al registro de transacciones correcto y asegurar la honestidad.
El BFT es implementado principalmente por Ripple (donde los validadores son preseleccionados por la fundación Ripple) y Stellar (donde cualquiera puede ser validador y la confianza es establecida por la comunidad).
Unas de las ventajas del BFT es que permite la escalabilidad y las comisiones de las transacciones son muy bajas, sin embargo, DPoS introduce un componente de centralización.
Algoritmos de consenso emergentes
Los Decentralized acyclic graphs (DAGs) están recibiendo actualmente mucha atención y presentan una solución prometedora para la escalabilidad. Hashgraph, Tangle, y Block-lattice son tres implementaciones que han recibido atención significativa recientemente.
Conclusión
De momento, los algoritmos de consenso deben hacer concesiones entre la escalabilidad y el grado en que están centralizados (aunque las redes de segunda capa pueden cambiar la porción de escalabilidad de la ecuación).
Será fascinante ver cuáles son los mecanismos más capaces de incentivar la participación a gran escala y la gobernanza estable, así como la forma en la que los protocolos y las comunidades se adaptan para incorporar los avances tecnológicos.