Introducción
Un algoritmo de consenso es un mecanismo que permite a los usuarios o máquinas coordinarse en un entorno distribuido. Garantiza que todos los agentes del sistema estén de acuerdo en una única fuente de verdad, incluso si algunos agentes fallan. Es decir, el sistema debe ser tolerante a fallos (ver también: Explicación de la tolerancia a fallos bizantinos).
En un sistema centralizado, una sola entidad alimenta y controla la red. En la mayoría de los casos, la entidad puede realizar los cambios que considere oportunos: no existe un sistema de gobernanza complejo para que varios directores lleguen a un consenso.
En un sistema descentralizado, la historia es completamente diferente. Digamos que estamos trabajando con una base de datos distribuida: ¿cómo acordamos qué datos agregar?
Superar este desafío en un entorno donde los participantes no confían entre sí fue quizás el avance más crucial que allanó el camino para las cadenas de bloques. En este artículo veremos por qué los algoritmos de consenso son esenciales para el funcionamiento de las criptomonedas y los libros de contabilidad distribuidos.
Algoritmos de consenso y criptomonedas
En las criptomonedas, los saldos de los usuarios se registran en una base de datos: la cadena de bloques. Es esencial que todos (cada nodo para ser precisos) mantengan una copia idéntica de la base de datos. De lo contrario, puede surgir información contradictoria que dañe toda la red.
La criptografía de clave pública garantiza que los usuarios no puedan gastar las monedas de los demás. Sin embargo, todavía debe haber una única fuente de verdad en la que los participantes de la red se basen para determinar si los fondos ya se han gastado.
Satoshi Nakamoto, el creador de Bitcoin, propuso el sistema Prueba de Trabajo para coordinar a los participantes. Veremos en breve cómo funciona PoW; por ahora, identifiquemos algunos rasgos comunes entre muchos algoritmos de consenso existentes.
Primero, les pedimos a los usuarios que quieran agregar bloques (los llamaremos validadores) que proporcionen una participación. La apuesta es un valor que un validador debe prometer para disuadirlo de actuar de manera maliciosa. Si hacen trampa, perderán su apuesta. Por ejemplo, la potencia informática, las criptomonedas o su reputación.
¿Por qué arriesgarían sus propios recursos? Simplemente porque hay una recompensa en juego. Generalmente se trata de una criptomoneda nativa del protocolo que se basa en las tarifas pagadas por los usuarios, en criptomonedas recién creadas o en ambas.
Lo último que necesitamos es transparencia. Necesitamos poder saber cuándo alguien está haciendo trampa. Idealmente, debería resultarles caro producir bloques, pero barato para cualquiera validarlos. Esto garantiza que los validadores también estén controlados por usuarios normales.
Tipos de algoritmos de consenso
Prueba de trabajo (PoW)
La prueba de trabajo (PoW) es el padrino de los algoritmos de consenso de blockchain. Se implementó por primera vez con Bitcoin, aunque el concepto existe desde hace mucho tiempo. En Prueba de trabajo, los validadores (llamados mineros) procesan los datos que desean agregar hasta que producen una solución específica.
Un hash es una cadena aleatoria de letras y números creada al ejecutar una función hash. Pero si los datos de entrada son los mismos, los resultados de salida serán los mismos. Sin embargo, el más mínimo cambio generará un hash completamente diferente.
Los datos de salida no nos permiten determinar los datos de entrada. Por lo tanto, se trata de una función muy eficaz para demostrar que conoce un dato durante un determinado período de tiempo. Puedes darle a alguien su hash y cuando revelas los datos, esa persona puede ejecutarlos a través de la función para asegurarse de que el resultado sea el mismo.
En Prueba de trabajo, el protocolo define las condiciones que hacen que un bloque sea válido. Esto podría decir, por ejemplo, que sólo un bloque cuyo hash comience con 00 es válido. La única forma que tiene un minero de crear un bloque válido es mediante la fuerza bruta. Para producir un resultado diferente hasta encontrar el correcto, los mineros pueden modificar un parámetro en sus datos.
Para las cadenas de bloques más grandes, el nivel es muy, muy alto. Para competir con otros mineros, es necesario tener un almacén lleno de ASIC, hardware diseñado específicamente para aumentar las posibilidades de producir un bloque válido.
Su participación, en la minería, corresponde a los costes de estas máquinas y a la electricidad necesaria para hacerlas funcionar. Los ASIC están diseñados con el único propósito de minar, por lo que no tienen usos fuera de la minería de criptomonedas. La única forma de recuperar su inversión inicial es extraer y ganar recompensas agregando con éxito un nuevo bloque a la cadena de bloques.
Es muy fácil para la red verificar que haya creado el bloque correcto. Una sola ejecución con la función le permite verificar los resultados de sus numerosas pruebas. Si tus datos producen un hash válido, será aceptado y recibirás una recompensa. De lo contrario, la red lo invalidará y habrás perdido tiempo y electricidad para nada.
Prueba de participación (PoS)
La prueba de participación (PoS) se propuso en los primeros días de Bitcoin como una alternativa a la prueba de trabajo. En PoS no existen los conceptos de mineros, hardware especializado y consumo masivo de energía. Todo lo que necesitas es una computadora.
Y una cosita... Hay que meter una moneda en la máquina. En PoS, en lugar de utilizar un recurso externo (máquinas y electricidad), utilizarás un recurso interno (una criptomoneda). Las reglas difieren según el protocolo, pero generalmente necesitarás tener una cantidad mínima para participar en la apuesta.
Luego deberás guardar tus fondos en una billetera (no se pueden mover cuando apuestas). Generalmente acordará con los otros validadores qué transacciones pasarán al siguiente bloque. En cierto sentido, usted apuesta qué bloque será seleccionado y el protocolo decide el resto.
Si se selecciona su bloque, recibirá una parte de las tarifas de transacción, proporcional a su apuesta. Cuantos más fondos bloquees, más posibilidades tendrás de ganar. Pero si intenta hacer trampa ofreciendo operaciones no válidas, perderá parte (o la totalidad) de su apuesta. Por lo tanto, tenemos un mecanismo similar al PoW: actuar honestamente es más rentable que actuar de manera deshonesta.
En general, las monedas recién creadas no forman parte de las recompensas del validador. Por lo tanto, la moneda blockchain nativa debe emitirse de otra manera. Esto se puede hacer mediante una distribución inicial (por ejemplo: una ICO o una IEO) o mediante el uso de PoW al comienzo del protocolo antes de su transición a PoS.
Hasta la fecha, la prueba de participación pura solo la utilizan pequeñas criptomonedas. Por lo tanto, no está claro si puede servir como una alternativa viable al PoW. Aunque esto parece teóricamente válido, en la práctica será bastante diferente.
Una vez que PoS se implementa en una red con una gran cantidad de información, el sistema se convierte en un caldo de cultivo perfecto para incentivos financieros y teoría de juegos. Cualquiera que tenga el conocimiento para “hackear” un sistema PoS solo lo hará si es posible aprovecharlo, razón por la cual la única manera de saber si es posible es intentarlo directamente en la red.
Pronto veremos pruebas a gran escala de PoS: Casper se implementará como parte de una serie de actualizaciones de la red Ethereum (también conocida como Ethereum 2.0).
Tipos de algoritmos de consenso
La prueba de trabajo y la prueba de participación son los algoritmos de consenso más comunes. Pero evidentemente hay muchos otros, con todas sus ventajas y desventajas. Consulte los siguientes artículos:
Explicación de la prueba de trabajo retrasada
Explicación de la prueba de participación arrendada por consenso
Explicación de la prueba de autoridad
Prueba de quemadura
Explicación de la prueba de participación delegada
El consenso híbrido PoW/PoS explicado
Para concluir
Los mecanismos para lograr el consenso son vitales para el funcionamiento de los sistemas distribuidos. Muchos creen que la mayor innovación de Bitcoin es el uso de Prueba de trabajo para permitir a los usuarios ponerse de acuerdo sobre un conjunto compartido de hechos.
Hoy en día, los algoritmos de consenso sustentan no solo los sistemas de moneda digital, sino también las cadenas de bloques, que permiten a los desarrolladores ejecutar código a través de una red distribuida. Constituyen una piedra angular de la tecnología blockchain y son esenciales para la viabilidad a largo plazo de las distintas redes existentes.
De todos los algoritmos de consenso, la Prueba de trabajo sigue siendo el más utilizado. De hecho, todavía no se ha propuesto una alternativa más fiable y segura. Dicho esto, se está realizando una enorme cantidad de investigación y desarrollo para reemplazar PoW y es muy probable que veamos surgir más consenso en los próximos años.