Historia de los protocolos de consenso, un breve resumen

AVA Labs Español
Avalanche en español
3 min readJan 4, 2020

En la década de 1970, científicos de la computación como Leslie Lamport y Bárbara Liskova se hicieron la siguiente pregunta: “¿Cómo podríamos alcanzar un acuerdo en un conjunto de máquinas?”

Este simple cuestionamiento generó un gran y complejo problema conocido como “consenso”, el cual es parte integral del estudio de los sistemas distribuidos.

Por varias décadas, sólo se conoció una familia de protocolos de consenso, conocida como “protocolos de consenso clásico”. Los protocolos que pertenecen a esta familia pueden ser fácilmente reconocidos por una propiedad: todos los involucrados participan en la votación.

Estos protocolos alcanzan acuerdos por medio de un procedimiento similar al de una votación de una nueva propuesta de ley en el congreso: cuando una transacción (propuesta de ley) es emitida, cada validador (senador) vota, ya sea para “aceptar” o “rechazar” esa transacción.

Todos los votos son recogidos por todos los validadores, teniendo complejas y tediosas interacciones de mensajes. En particular, esos protocolos necesariamente requieren un reducido conjunto de O (n²) mensajes, donde ’n’ es el número de validadores.

O(n²)

Mientras los protocolos de consenso clásico pueden confirmar transacciones rápidamente, en cuestión de segundos, esto está condicionado a que la red sea pequeña, típicamente menor a unos cientos de validadores.

De hecho, estos protocolos necesariamente requieren conocer a todos los participantes, incrementando su dificultad para un despliegue en ambientes amplios, como los requeridos para una moneda digital, global y abierta.

Estos protocolos fueron el estándar de-facto hasta 2008, cuando Satoshi introdujo la segunda familia de protocolos, conocidos como Nakamoto, o protocolos consenso de cadena más larga.

Esta familia tuvo una propiedad revolucionaria comparado con el protocolo clásico: opera a la misma velocidad sin importar el número de participantes.

Esto también implica que son aptos para ambientes abiertos, donde es difícil mantener un registro de los participantes que se incorporan o abandonan la red (i.e. participación dinámica).

Desafortunadamente, estos protocolos también tiene una gran desventaja: son lentos por diseño, sólo pueden procesar algunas transacciones por segundo y confirmar transacciones en periodos de varios minutos. De igual forma, requieren de un alto consumo energético.

Las variaciones de los protocolos de consenso clásico y Nakamoto, con amplia variedad de optimizaciones, continúan apareciendo sin solventar de manera definitiva sus deficiencias.

Sin embargo, en 2018, fue introducida otra familia de protocolos de consenso, llamada familia Snow, por un grupo de investigadores de sistemas distribuidos. El protocolo Avalanche fue el primer miembro de esta familia.

Estos algoritmos usan un nuevo mecanismo para alcanzar acuerdo: en lugar de votaciones generales, estos protocolos seleccionan de manera aleatoria una muestra de participantes y se les cuestiona por el estado del sistema. ¿Que hace innovadores a estos protocolos?

Ellos fusionan los mejor del protocolo clásico y Nakamoto: confirman transacciones en pocos segundos y operan con millares de transacciones por segundo, a la vez que permiten millares o millones de participantes, haciéndolos adecuados en condiciones abiertas y sin permiso donde los validadores pueden incorporarse y/o abandonarle sin restricciones.

Suscríbete a nuestro Newsletter (Inglés)

Ligas útiles:
Página web: https://avalabs.org/
Whitepaper: https://avalabs.org/snow-avalanche.pdf
Twitter Español: https://twitter.com/AvaLatam
Telegram Español: https://t.me/AVA_espanol
Canal global de anuncios Telegram : https://t.me/AVA_announcements
Linkedin: https://www.linkedin.com/company/ava-labs
Discord: https://discord.gg/99XZqMH
Reddit: https://www.reddit.com/r/ava
Medium: https://medium.com/ava-espanol
Facebook: https://www.facebook.com/AVALatinoamerica
Youtube: http://www.youtube.com/c/AVAofficial

--

--

AVA Labs Español
Avalanche en español

Difusión de noticias e información sobre @avalabs en español