Introducción

Un algoritmo de consenso es un mecanismo que permite a los usuarios o máquinas coordinarse en un entorno distribuido. Debe garantizar que todos los agentes del sistema puedan ponerse de acuerdo sobre una única fuente de verdad, incluso si algunos agentes fallan. En otras palabras, el sistema debe ser tolerante a fallos (ver también: Explicación de la tolerancia a fallos bizantinos).

En una configuración centralizada, una única entidad tiene poder sobre el sistema. En la mayoría de los casos, pueden hacer los cambios que quieran; no existe un sistema de gobernanza complejo para llegar a un consenso entre muchos administradores. 

Pero en una configuración descentralizada, la historia es completamente diferente. Digamos que estamos trabajando con una base de datos distribuida: ¿cómo llegamos a un acuerdo sobre qué entradas se agregan?

Superar este desafío en un entorno donde los extraños 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 cómo los algoritmos de consenso son vitales 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 (o más exactamente, cada nodo) mantengan una copia idéntica de la base de datos. De lo contrario, pronto terminaría con información contradictoria, socavando todo el propósito de la red de criptomonedas.

La criptografía de clave pública garantiza que los usuarios no puedan gastar las monedas de los demás. Pero todavía es necesario que haya una única fuente de verdad en la que confíen los participantes de la red, para poder determinar si los fondos ya se han gastado.

Satoshi Nakamoto, el creador de Bitcoin, propuso un sistema de Prueba de Trabajo para coordinar a los participantes. En breve veremos cómo funciona PoW; por ahora, identificaremos algunos de los rasgos comunes de los muchos algoritmos de consenso que existen.

En primer lugar, requerimos que los usuarios que quieran agregar bloques (los llamaremos validadores) proporcionen una participación. Lo que está en juego es algún tipo de valor que un validador debe presentar, lo que lo disuade de actuar de manera deshonesta. Si hacen trampa, perderán su apuesta. Los ejemplos incluyen potencia informática, criptomonedas o incluso reputación. 

¿Por qué se molestarían en arriesgar sus propios recursos? Bueno, también hay una recompensa disponible. Por lo general, consiste en la criptomoneda nativa del protocolo y se compone de tarifas pagadas por otros usuarios, unidades de criptomonedas recién generadas o ambas.

Lo último que necesitamos es transparencia. Necesitamos ser capaces de detectar cuando alguien está haciendo trampa. Idealmente, debería resultarles costoso producir bloques, pero barato para cualquiera validarlos. Esto garantiza que los usuarios habituales mantengan a los validadores bajo control.

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 en Bitcoin, pero el concepto real existe desde hace algún tiempo. En Prueba de trabajo, los validadores (denominados mineros) procesan los datos que desean agregar hasta que producen una solución específica.

Un hash es una cadena aparentemente aleatoria de letras y números que se crea cuando ejecuta datos a través de una función hash. Pero, si vuelve a ejecutar los mismos datos, siempre obtendrá el mismo resultado. Sin embargo, cambia incluso un detalle y tu hash será completamente diferente.

Al observar el resultado, no es posible saber qué información se introdujo en la función. Por lo tanto, son útiles para demostrar que conocía un dato antes de un momento determinado. Puedes darle a alguien su hash y, cuando más tarde reveles 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 establece las condiciones que hacen que un bloque sea válido. Podría decir, por ejemplo, que sólo será válido un bloque cuyo hash comience con 00. La única forma que tiene el minero de crear uno que coincida con esa combinación es mediante entradas de fuerza bruta. Pueden modificar un parámetro en sus datos para producir un resultado diferente para cada suposición hasta obtener el hash correcto. 

Con las principales cadenas de bloques, el listón está increíblemente alto. Para competir con otros mineros, necesitaría un almacén lleno de hardware de hash especial (ASIC) para tener la posibilidad de producir un bloque válido.

Lo que está en juego, al minar, es el coste de estas máquinas y la electricidad necesaria para hacerlas funcionar. Los ASIC están diseñados para un propósito, por lo que no tienen uso en aplicaciones fuera de la minería de criptomonedas. Su única forma de recuperar su inversión inicial es minar, lo que genera una recompensa significativa si agrega con éxito un nuevo bloque a la cadena de bloques.

Es trivial para la red verificar que efectivamente haya creado el bloque correcto. Incluso si ha probado billones de combinaciones para obtener el hash correcto, solo necesitan ejecutar sus datos a través de una función una vez. Si sus datos producen un hash válido, serán aceptados y obtendrá una recompensa. De lo contrario, la red lo rechazará 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 un sistema PoS, no existe el concepto de mineros, hardware especializado o consumo masivo de energía. Todo lo que necesitas es una PC normal.

Bueno, no todos. Todavía necesitas poner algo de piel en el juego. En PoS, no se utiliza un recurso externo (como electricidad o hardware), sino uno interno: la criptomoneda. Las reglas difieren con cada protocolo, pero generalmente hay una cantidad mínima de fondos que debe tener para ser elegible para apostar.

A partir de ahí, guardas tus fondos en una billetera (no se pueden mover mientras estás apostando). Por lo general, acordará con otros validadores qué transacciones se incluirán en el siguiente bloque. En cierto sentido, estás apostando por el bloque que será seleccionado y el protocolo elegirá uno.

Si se selecciona su bloque, recibirá una proporción de las tarifas de transacción, dependiendo de su apuesta. Cuantos más fondos haya bloqueado, más podrá ganar. Pero si intenta hacer trampa proponiendo transacciones no válidas, perderá una 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.

Generalmente, no hay monedas recién creadas como parte de la recompensa para los validadores. Por lo tanto, la moneda nativa de blockchain debe emitirse de alguna otra manera. Esto se puede hacer mediante una distribución inicial (es decir, una ICO o IEO) o iniciando el protocolo con PoW antes de realizar la transición posterior a PoS.

Hasta la fecha, la prueba de participación pura solo se ha implementado en criptomonedas más pequeñas. Por lo tanto, no está claro si puede servir como una alternativa viable a PoW. Si bien en teoría parece sólido, en la práctica será muy diferente. 

Una vez que PoS se implementa en una red con una gran cantidad de valor, el sistema se convierte en un campo de juego para la teoría de juegos y los incentivos financieros. Cualquier persona con el conocimiento para "piratear" un sistema PoS probablemente solo lo haría si pudiera beneficiarse de él; por lo tanto, la única forma de averiguar si es factible es en una red activa.

Pronto veremos PoS probado a gran escala: Casper se implementará como parte de una serie de actualizaciones de la red Ethereum (conocida colectivamente como Ethereum 2.0).

Otros algoritmos de consenso

La prueba de trabajo y la prueba de participación son los algoritmos de consenso más discutidos. Pero hay una gran variedad de otros, todos con sus propias ventajas y desventajas. Consulte los siguientes artículos:

  • Prueba de trabajo retrasada explicada

  • Explicación del consenso de prueba de participación arrendada

  • Prueba de autoridad

  • Prueba de quemadura

  • Prueba de participación delegada explicada

  • Explicación del consenso híbrido PoW/PoS

Pensamientos finales

Los mecanismos para lograr el consenso son vitales para el funcionamiento de los sistemas distribuidos. Muchos creen que la mayor innovación en Bitcoin fue el uso de Prueba de Trabajo para permitir a los usuarios ponerse de acuerdo sobre un conjunto compartido de hechos.

Los algoritmos de consenso hoy sustentan no solo los sistemas de dinero digital, sino también las cadenas de bloques que permiten a los desarrolladores ejecutar código a través de una red distribuida. Ahora son una piedra angular de la tecnología blockchain y son fundamentales para la viabilidad a largo plazo de las distintas redes existentes.

De todos los algoritmos de consenso, la Prueba de Trabajo sigue siendo la oferta dominante. Aún no se ha propuesto una alternativa que sea más confiable y segura. Dicho esto, hay una enorme cantidad de investigación y desarrollo para reemplazar PoW, y es probable que veamos surgir más en los próximos años.