Algoritmo de consenso

Un algoritmo de consenso es un proceso en ciencias de la computación utilizado para lograr un acuerdo sobre un valor de datos único entre procesos o sistemas distribuidos. Los algoritmos de consenso están diseñados para lograr confiabilidad en una red que involucra múltiples nodos no confiables. Resolver ese problema, conocido como el problema del consenso, es importante en la computación distribuida y los sistemas de múltiples agentes.

Para adaptarse a esta realidad, los algoritmos de consenso suponen necesariamente que algunos procesos y sistemas no estarán disponibles y que se perderán algunas comunicaciones. Como resultado, los algoritmos de consenso deben ser tolerantes a fallas. Por lo general, asumen, por ejemplo, que solo una parte de los nodos responderá, pero requieren una respuesta de esa parte, como el 51%, como mínimo.

Las aplicaciones de los algoritmos de consenso incluyen:

  • Decidir si confirmar una transacción distribuida en una base de datos.
  • Designación de nodo como líder para alguna tarea distribuida.
  • Sincronizar réplicas de máquinas de estado y garantizar la coherencia entre ellas.

Los algoritmos de consenso admiten muchos sistemas del mundo real, incluido el PageRank de Google, el equilibrio de carga, las redes inteligentes, la sincronización del reloj y el control de drones.

Blockchain, el libro mayor distribuido más comúnmente asociado con Bitcoin, también se basa en algoritmos de consenso para llegar a un acuerdo entre los nodos. Se puede pensar en una cadena de bloques como una base de datos descentralizada que es administrada por computadoras distribuidas en una red peer-to-peer (P2P). Cada par mantiene una copia del libro mayor para evitar un solo punto de falla (SPOF). Las actualizaciones y validaciones se reflejan en todas las copias simultáneamente.

Bitcoin utiliza el algoritmo de prueba de trabajo (PoW) para garantizar la seguridad en una red sin confianza, al incluir mecanismos que garantizan que el esfuerzo de la minería esté representado dentro del bloque enviado por el minero. El software en las computadoras de los mineros accede a su capacidad de procesamiento para resolver algoritmos relacionados con transacciones. El bloque es una prueba de trabajo hash cifrada que se crea en un proceso de cálculo intensivo. Aunque cualquier parte puede enviar una cadena de bloques al libro mayor, la cantidad de recursos informáticos necesarios para falsificar el consenso es demasiado grande para que valga la pena para una parte deshonesta.

Otros algoritmos de consenso comunes incluyen el práctico algoritmo de tolerancia a fallas bizantino (PBFT), el algoritmo de prueba de participación (PoS) y el algoritmo de prueba de participación delegada (DPoS).