Introducción

Un algoritmo de consenso es un mecanismo que permite a los usuarios o máquinas coordinar relaciones en un entorno distribuido. Requiere garantizar que todos los agentes del sistema puedan en última instancia ponerse de acuerdo sobre una única fuente de verdad (incluso si algunos agentes no están de acuerdo). En otras palabras, el sistema debe tener una buena tolerancia a fallos (consulte también "Explicación de la tolerancia a fallos bizantinos").

En un entorno centralizado, una única entidad tiene control sobre todo el sistema. En la mayoría de los casos, estas entidades suelen ser capaces de cambiar el sistema a voluntad porque no crean un sistema de gobernanza bien definido que permita a muchos administradores llegar a un consenso.​

Pero si es en un entorno descentralizado, la historia es completamente diferente. Suponiendo que estamos utilizando una base de datos distribuida, ¿cómo acordamos qué entradas agregar?

Este entorno está lleno de extraños que no confían entre sí. Cómo superar este desafío puede ser la clave para resolver los problemas de desarrollo y allanar el camino para blockchain. En este artículo, veremos la importancia de los algoritmos de consenso para ejecutar criptomonedas y libros de contabilidad distribuidos.


Algoritmos de consenso y criptomonedas

En un entorno de criptomonedas, los saldos de los usuarios se registran en la base de datos de blockchain. Es fundamental que cada usuario (más precisamente, cada nodo) mantenga la misma copia de la base de datos. No hacerlo conducirá en última instancia a problemas de conflicto de información que socavarán todo el propósito de la red de criptomonedas.

La criptografía de clave pública garantiza que los usuarios no puedan gastar los tokens de otros usuarios. Pero debe haber una única fuente de verdad en la que los participantes de la red puedan confiar para saber si se han gastado los fondos.

El creador de Bitcoin, Satoshi Nakamoto, propuso un sistema de prueba de trabajo como forma de coordinar a los participantes. Más adelante entraremos en más detalles sobre cómo funciona la Prueba de trabajo. Ahora, primero comprendamos las características comunes de varios algoritmos de consenso existentes.

Primero, necesitamos la participación de los usuarios que quieran agregar bloques (también conocidos como validadores). Los validadores deben apostar capital de algún valor para evitar cometer fraude. Una vez que hagan trampa, perderán los derechos apostados. Por ejemplo, perder potencia informática y criptomonedas, o incluso perder su reputación.​

Entonces, ¿por qué arriesgarían sus propios recursos? Porque también existe un mecanismo de recompensa en este proceso. Las recompensas suelen ser la criptomoneda nativa del protocolo. Las recompensas también pueden ser tarifas pagadas por otros usuarios, unidades de criptomonedas recién generadas o ambas.

Por último, también debemos garantizar la transparencia. Necesitamos tener la capacidad de detectar las trampas de manera oportuna. En teoría, producir bloques cuesta mucho, pero verificar su autenticidad es bastante barato. A través de este mecanismo, los usuarios comunes pueden restringir fácilmente a los validadores.


Tipo de algoritmo de consenso

Prueba de trabajo (PoW)

La prueba de trabajo (PoW) se considera el padrino de los algoritmos de consenso de blockchain. Este mecanismo se utilizó por primera vez en el espacio Bitcoin, pero el concepto real existe desde hace mucho tiempo. En la prueba de trabajo, los validadores (llamados mineros) procesan los datos que desean agregar hasta que se produce una solución específica.

Un hash es una cadena aparentemente aleatoria de letras y números creada al ejecutar datos a través de una función hash. Ejecutar los mismos datos repetidamente siempre dará el mismo resultado. Sin embargo, si cambia incluso un pequeño detalle, el valor hash resultante será completamente diferente.

No hay forma de inferir qué información se incluyó en la función solo a partir del resultado. Por lo tanto, este método es eficaz para demostrar que conocía un determinado dato antes de un momento específico. Puede decirle a alguien el hash de antemano y, cuando revele los datos más tarde, esa persona puede simplemente ejecutar la función y ver que el resultado es el mismo.

En la prueba de trabajo, el protocolo especifica las condiciones que hacen que un bloque sea válido. Por ejemplo, podría estipular que sólo los hashes que comiencen con 00 sean bloques válidos. La única forma que tiene un minero de crear un bloque que coincida con esta combinación es forzando la entrada por fuerza bruta. Ajustan los parámetros de los datos y prueban cada suposición con resultados diferentes hasta que obtienen el valor hash correcto.​

Para las cadenas de bloques principales, el listón tiende a ser bastante alto. Para competir con otros mineros, es necesario preparar una gran cantidad de hardware de hash especial (circuitos integrados específicos de la aplicación) para crear las condiciones para producir bloques válidos.

Durante el proceso de minería, la apuesta que usted apuesta incluye el costo de compra de la máquina y la electricidad necesaria para hacer funcionar la máquina. Los circuitos integrados de aplicaciones específicas (ASIC) están diseñados específicamente para la minería de criptomonedas y son inútiles para otras aplicaciones. La única forma de recuperar su inversión inicial es mediante la minería, y si agrega con éxito nuevos bloques a la cadena de bloques, puede obtener recompensas considerables.

La red puede verificar fácilmente la autenticidad de los bloques que crea. Es posible que tengas que probar billones de combinaciones para obtener el valor hash correcto, pero validar tus datos solo requiere un único cálculo de la función hash. Si sus datos producen un hash válido, la red lo aceptará y será recompensado por ello. De lo contrario, la red rechazará el valor y se desperdiciará todo su tiempo y energía.


Prueba de participación (PoS)

En los primeros días de Bitcoin, la Prueba de Participación (PoS) se consideraba una alternativa a la Prueba de Trabajo. En un sistema de prueba de participación, no existe el concepto de mineros, hardware especializado o consumo masivo de energía. Todo lo que necesitas es una computadora común y corriente.

Sin embargo, ese no es siempre el caso. También necesitas algo de capital. En un mecanismo de prueba de participación, si bien no es necesario consumir recursos externos (como electricidad o hardware), se deben proporcionar recursos internos, concretamente criptomonedas. Las reglas de cada protocolo son diferentes, pero generalmente existe un monto de inversión mínimo que debes cumplir para ser elegible para apostar.

Una vez hecho esto, los fondos en su billetera se bloquearán (los fondos no se pueden mover mientras se apuesta). En términos generales, debe acordar con otros validadores qué transacciones pasarán al siguiente bloque. En cierto sentido, esto equivale a apostar sobre qué bloque se seleccionará y el protocolo solo elegirá uno de los bloques.

Si el protocolo selecciona su bloque, recibirá tarifas de transacción proporcionales a la cantidad de apuesta que apueste. Cuantos más fondos bloquee, mayores serán sus beneficios. Si intenta hacer trampa y propone una transacción no válida, perderá parte (o la totalidad) de su apuesta. Por lo tanto, operamos un mecanismo similar a la prueba de participación, en el que la honestidad y la confiabilidad pueden obtener más beneficios que hacer trampa.

En términos generales, las recompensas del validador no se emitirán en forma de tokens recién acuñados. Por lo tanto, la moneda nativa de blockchain debe emitirse de alguna otra forma. Esto podría realizarse a través de una oferta inicial (es decir, ICO o IEO) o lanzando el protocolo con Prueba de trabajo y luego haciendo la transición a Prueba de participación.

Hasta ahora, 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 la prueba de trabajo. Si bien en teoría funciona, en la práctica no es nada de eso.​

Una vez que se implementa la prueba de participación en una red con una gran cantidad de valor, todo el sistema se convierte en un escenario lleno de teoría de juegos e incentivos económicos. Mientras haya ganancias, esos piratas informáticos expertos "piratearán" el sistema de prueba de participación. Por tanto, la única forma de determinar si es factible es aplicarlo a una red online.

Pronto, la Prueba de participación se probará a escala y la red Ethereum está a punto de implementar una serie de actualizaciones (conocidas colectivamente como Ethereum 2.0), incluida la implementación de Casper.


Otros algoritmos de consenso

La prueba de trabajo y la prueba de participación son actualmente los algoritmos de consenso más discutidos. Pero hay muchos otros algoritmos además de este, y cada uno tiene sus pros y sus contras. Lea el siguiente artículo para obtener más detalles:

  • "Explicación detallada de la prueba de carga de trabajo retrasada"

  • "Explicación detallada del consenso sobre prueba de interés de arrendamiento"

  • "Explicación detallada de la prueba autorizada"

  • "Explicación detallada del certificado de destrucción"

  • "Explicación detallada de la prueba de patrimonio delegada"

  • "Explicación detallada del consenso híbrido de prueba de trabajo/prueba de participación"


Resumir

Los mecanismos para llegar a un consenso son fundamentales para el funcionamiento de los sistemas distribuidos. Mucha gente cree que la mayor innovación de Bitcoin es el uso de prueba de trabajo, un mecanismo mediante el cual los usuarios a menudo pueden ponerse de acuerdo sobre un conjunto de hechos compartidos.

Hoy en día, los algoritmos de consenso se han convertido en la base de los sistemas de moneda digital y las cadenas de bloques, lo que permite a los desarrolladores ejecutar código en redes distribuidas. Los algoritmos de consenso ocupan una posición fundamental en la tecnología blockchain y desempeñan un papel vital en la viabilidad a largo plazo de varias redes existentes.

Entre todos los algoritmos de consenso, domina la prueba de trabajo. Nadie ha propuesto todavía una solución alternativa más fiable y segura. Dicho esto, los profesionales todavía están desarrollando una serie de productos para reemplazar la prueba de trabajo, y podemos esperar que surjan más soluciones alternativas en los próximos años.