¿Qué es el Protocolo Gossip?

Cuando hablamos de Gossip Protocol, hablamos de un protocolo de comunicación que utilizan los dispositivos digitales para propagar una información en una red entre pares (P2P). En las redes blockchains, este protocolo es utilizado por los nodos de la red para compartir y divulgar información de forma rápida y confiable entre sí.

El nombre de Gossip para este protocolo deriva de la forma en que se propaga la información a través de las redes sociales. Gossip en español quiere decir chisme o rumor; por lo que el protocolo Gossip Protocol está inspirado en esta forma de divulgación de información que ocurre de manera muy rápida y veloz en estas redes. En la actualidad, son muchas las variaciones que existen de este protocolo de comunicación. Muchas se aplican según las necesidades o requerimientos de cada usuario o de cada una de las redes que lo emplee.

Origen del protocolo Gossip

El origen de este protocolo está relacionado con los algoritmos de replicación epidémica descrito por  Demers Alan, Greene Dan, Hauser Carl, Irish Wes, Larson John, Shenker Scott, Sturgis Howard, Swinehart Danm y Terry Doug en su estudio “Epidemic Algorithms for Replicated Database Maintenance” de 1987.

Desde la aparición de este estudio, la propagación epidémica ha despertado un gran interés en informática. Esto debido a que sus sistema de funcionamiento es perfecto para redes de gran tamaño con altos niveles de descentralización. De hecho, los primeros usos prácticos de protocolos del tipo Gossip lo podemos ver en los sistemas de enrutamiento de las primeras redes que fueron el preámbulo del Internet que gozamos hoy en día.

¿Cómo funciona el Gossip Protocol?

Los protocolos de Gossip funcionan de forma muy sencilla. Esto se debe a que están basados en un concepto muy básico para distribuir y propagar información a través de una red. En estos protocolos, para que un nodo distribuya una información, sólo debe emparejarse con otros nodos de forma aleatoria. Una vez ocurre esto sólo debe intercambiar la información recibida con dichos nodos, quienes a su vez distribuirán la información con otros nodos a los que también están emparejados. Formando una cadena de distribución para propagar la información por toda la red de forma oportuna y eficaz.

Por su parte, la forma en que se propaga la información dentro de una red entre pares a través del Gossip Protocol ocurre de forma rápida y segura siempre y cuando los nodos involucrados puedan garantizar la propagación y divulgación de la información sin discriminar o excluir a ninguna de las partes en su propia red.

Gossip Protocol se basa en la distribución probabilística de la información seleccionando pares, a quienes los nodos les distribuirán la información. Esto con la finalidad de que no se repita o duplique una información a un nodo que ya la conoce. Por ejemplo, en el caso de un equipo de trabajo que se reúne constantemente para mantenerse actualizado con todo lo que ocurre dentro de la oficina, aplicando el protocolo de Gossip cada uno de los miembros del equipo debe estar emparejado con otro miembro con quien compartirán la información. Este miembro del equipo a su vez estará emparejado con otro a quien también tendrá que distribuirle la misma información y así sucesivamente para que todos se mantengan informados.

Cuando se habla de que los protocolos de Gossip se basan en la probabilidad para distribuir la información, es porque un nodo debe elegir de forma aleatoria con que otro nodo quiere compartir esa información. Además, este protocolo de comunicación es escalable, debido a que los nodos sólo comparten o distribuyen una cantidad fija de información, sin importar que otro nodo falle en su labor. Los nodos operativos siempre estarán compartiendo la cantidad de información correspondiente con su red de pares.

Para ver de forma más sencilla como funciona el protoclo, observa el siguiente ejemplo en el slider de imagenes.

Objetivo de un Gossip Protocol

El objetivo principal de un Gossip Protocol es difusión de información de la forma más rápida posible por una vasta red de nodos distribuidos. Para lograrlo, este tipo de protocolos parten de la idea básica de que los procesos que se comunican periódicamente con sus pares. Durante esta comunicación son capaces de intercambiar informa ción creando una alta frecuencia y flujo de datos por la red. Y todo esto en un patrón de dispersión que ayuda a que la información se distribuya lo más rápidamente por toda la red.

Ejemplo de estos lo podemos ver por ejemplo en Usenet e IRC. Ambos sistemas pese a ser centralizados distribuían noticias de forma muy rápida por la red usando “susurros”. Pero quizás el mejor ejemplo de este funcionamiento lo veamos en el sistema de enrutamiento que hace posible el funcionamiento de Internet. Dichos protocolos de enrutamiento permiten que los enrutadores intercambien información con enrutadores  vecinos, mejorando así las tablas de enrutamiento de toda la red. Al final, la red siempre busca construir una versión más óptima de sí misma por medio del enrutamiento más corto entre todas sus partes.

Esta situación resulta muy útil en la construcción de una red blockchain. Puesto que una red ampliamente distribuida se beneficiaría enormemente de este tipo de funcionamiento. Asi se aprovecha al máximo los recursos que forman parte de la misma. El resultado, es que una transacción en una red co Gossip Protocol, viajaría rápidamente por todos los nodos de la red, disminuyendo ataques en medio de su dispersión.

Y pensar que toda esta funcionalidad está pensada alrededor de estudios de dispersión de pandemias y un simple proverbio:

“Cualquier puede empezar un chisme, pero nadie puede detenerlo”.

Tipos de Gossip Protocol

Protocolo de difusión

Los protocolos de difusión o propagación de información son aquellos que operan bajo la comunicación grupal o multidifusión para la divulgación de los mensajes. En el primer caso, bajo la comunicación grupal, los nodos de la red de pares están siempre en constante comunicación. Por lo que la información se puede distribuir a la red de forma rápida y confiable. Aunque puede darse el caso de que al momento de propagar una información, ésta ya haya variado y se encuentre ligeramente obsoleta. Aunque, por lo general, esto no representa una preocupación ni un problema para la red.

En el segundo caso, bajo la multidifusión, la información es repartida en la red de pares de forma ocasional. Por lo que un evento no desencadena de forma inmediata la propagación de la información. En este caso, el estado latente de la información sí puede significar una preocupación, debido al tiempo que transcurre desde que la información es creada hasta que es difundida por la red.

Protocolo de agregación

En los protocolos de agregación, los nodos de la red de pares reciben y procesan una información, para enviar un resumen de ésta a los demás nodos conectados a la red. Este mecanismo de distribución de información mantiene un registro de todos los datos procesados. Este proceso se conoce como minería de datos distribuida, que es ampliamente utilizada en la tecnología de libro mayor distribuido.