El protocolo Gossip es un protocolo que deja diseñar sistemas de comunicaciones distribuidos (Peer to Peer) enormemente eficaces, seguros y de baja latencia. La inspiración para su diseño ha sido tomada de estudios sobre la expansión epidémica y algoritmos resultantes de exactamente la misma. 

Cuando charlamos de Gossip Protocol, charlamos de un protocolo de comunicación que usan los dispositivos digitales para extender una información en una red entre pares (Peer to Peer). En las redes blockchains, este protocolo es usado por los nodos de la red para compartir y difundir información de forma veloz y fiable entre sí.

El nombre de Gossip para este protocolo deriva de la manera en que se extiende la información por medio de las redes sociales. Gossip en castellano desea decir chisme o bien rumor; con lo que el protocolo Gossip Protocol está inspirado en esta forma de divulgación de información que ocurre de forma rapidísima y veloz en estas redes. Hoy día, muchas son las alteraciones que existen de este protocolo de comunicación. Muchas se aplican conforme las necesidades o bien requerimientos de cada usuario o bien 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 Base de datos Maintenance” de mil novecientos ochenta y siete.

Desde la aparición de este estudio, la propagación epidémica ha despertado un enorme interés en informática. Esto debido a que sus sistema de funcionamiento es idóneo para redes de importante tamaño con altos niveles de descentralización. En verdad, 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 disfrutamos actualmente.

¿De qué manera marcha el Gossip Protocol?

Los protocolos de Gossip marchan de forma sencillísima. Esto es debido a que están basados en un término muy básico para repartir y extender información mediante una red. En estos protocolos, a fin de que un nodo distribuya una información, solo debe emparejarse con otros nodos de forma azarosa. Una vez ocurre esto solo debe intercambiar la información recibida con dichos nodos, quienes por su parte distribuirán la información con otros nodos a los que asimismo están emparejados. Formando una cadena de distribución para extender la información por toda la red oportunamente y eficiente.

Por su parte, la manera en que se extiende la información en una red entre pares a través del Gossip Protocol ocurre de forma veloz y segura siempre que los nodos implicados puedan asegurar la propagación y divulgación de la información sin discriminar o bien excluir a ninguna de las partes en su red.

Gossip Protocol se fundamenta en la distribución probabilística de la información eligiendo pares, a quienes los nodos les distribuirán la información. Esto con la meta de que no se repita o bien duplique una información a un nodo que la conoce. Por poner un ejemplo, en el caso de un equipo de trabajo que se reúne continuamente para sostenerse actualizado con todo lo que sucede en la oficina, aplicando el protocolo de Gossip cada uno de ellos de los miembros del equipo ha de estar emparejado con otro miembro con quien compartirán la información. Este miembro del equipo por su parte va a estar emparejado con otro a quien asimismo deberá repartirle exactamente la misma información y de este modo consecutivamente a fin de que todos se sostengan informados.

Cuando se habla de que los protocolos de Gossip se fundamentan en la probabilidad para repartir la información, es pues un nodo debe seleccionar de forma azarosa con que otro nodo desea compartir esa información. Además de esto, este protocolo de comunicación es escalable, dado a que los nodos solo comparten o bien distribuyen una cantidad fija de información, sin importar lo más mínimo que otro nodo falle en su tarea. Los nodos operativos siempre y en toda circunstancia van a estar compartiendo la cantidad de información pertinente con su red de pares.

Para ver de forma más fácil como marcha el protoclo, observa el próximo ejemplo en el slider de imágenes.

Objetivo de un Gossip Protocol

El principal objetivo de un Gossip Protocol es difusión de información de la manera más veloz posible por una vasta red de nodos distribuidos. Para conseguirlo, este género de protocolos parten de la idea básica de que los procesos que se comunican periódicamente con sus pares. A lo largo de esta comunicación son capaces de intercambiar notifica 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 velozmente por toda la red.

Ejemplo de estos lo podemos ver por servirnos de un ejemplo en Usenet y también IRC. Los dos sistemas a pesar de ser centralizados distribuían noticias de forma rapidísima por la red utilizando “susurros”. Mas quizá el mejor ejemplo de este funcionamiento lo veamos en el sistema de enrutamiento que vuelve posible el funcionamiento de Internet. Dichos protocolos de enrutamiento dejan que los enrutadores intercambien información con enrutadores  vecinos, mejorando de esta manera las tablas de enrutamiento de toda la red. Al final, la red siempre y en toda circunstancia busca edificar una versión más perfecta de sí por medio del enrutamiento más corto entre sus partes.

Esta situación resulta realmente útil en la construcción de una red blockchain. Pues una red extensamente distribuida se favorecería enormemente de esta clase de funcionamiento. Así se aprovecha al límite los recursos que son parte de exactamente la misma. El resultado, es que una transacción en una red co Gossip Protocol, viajaría de forma rápida por todos y cada uno de los nodos de la red, reduciendo ataques en la mitad de su dispersión.

Y meditar que toda esta funcionalidad está pensada en torno a estudios de dispersión de pandemias y un simple proverbio:

“Cualquier puede comenzar un chisme, mas absolutamente nadie puede detenerlo”.

Tipos de Gossip Protocol

Protocolo de difusión

Los protocolos de difusión o bien propagación de información son aquellos que operan bajo la comunicación grupal o bien 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 y en toda circunstancia en incesante comunicación. Con lo que la información se puede repartir a la red de forma veloz y fiable. Si bien puede darse el en caso de que al instante de extender una información, esta ya haya variado y se halle tenuemente obsoleta. Si bien, por norma general, esto no representa una preocupación ni un inconveniente para la red.

En el segundo caso, bajo la multidifusión, la información es repartida en internet de pares de forma eventual. Con lo que un acontecimiento no desencadena de manera inmediata la propagación de la información. En un caso así, el estado latente de la información sí puede representar una preocupación, debido al paso que transcurre desde el instante en que la información es creada hasta el momento en 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 mandar un resumen de esta a el resto nodos conectados a la red. Este mecanismo de distribución de información sostiene un registro de todos y cada uno de los datos procesados. Este proceso se conoce como minería de datos distribuida, que es extensamente empleada en la tecnología de libro mayor distribuido.

  • Primera fase del protocolo Gossip
  • Fase secundaria del protocolo Gossip
  • Fase 3 del protocolo Gossip
  • Fase 4 del protocolo Gossip
  • Fase final del protocolo Gossip

¿Cuánto sabes, criptonauta?

¿El protocolo Gossip es utilizado en Bitcoin?

Ventajas y desventajas de Gossip Protocol

Ventajas

  • Escalabilidad: Los protocolos de Gossip son enormemente escalables. Esto merced a que es posible repartir la información con un nivel de desempeño muy eficaz. En estos protocolos los nodos distribuyen una cantidad de mensajes fija a los nodos con los que están vinculados.
  • Robustez: En Gossip Protocol todos y cada uno de los nodos operan de forma igual y no ejercitan una función singular ni diferente uno de otro. Con lo que si se presenta alguna falla en uno o bien múltiples nodos, esta no afectará ni interrumpirá la funcionalidad del resto nodos en internet para la distribución de la información. Del mismo modo, los nodos pueden entrar o bien salir de la red entre pares sin limitaciones y sin afectar el funcionamiento de exactamente la misma.
  • Tolerancia a las fallas: Como los nodos tienen la capacidad de compartir y repartir la información con múltiples nodos de la red de pares, estos protocolos tienen la capacidad de operar con corrección. Inclusive en situaciones bastante difíciles en las que se afecte la conectividad de ciertos nodos. Si un determinado nodo se desconecta por alguna razón, la información va a ser distribuida de igual forma por el resto nodos que han recibido el mensaje.
  • Descentralización: Los protocolos de Gossip distribuyen la información de forma absolutamente descentralizada y autónoma.

Desventajas

  • Aunque los protocolos de Gossip ofrecen solidez al sistema al dejar que los nodos puedan continuar operando sin interrupciones en el caso de presentarse fallas, si podría darse el en caso de que la información o bien el mensaje distribuido se vea perjudicado. Por servirnos de un ejemplo, si un nodo se vuelve malicioso, puede llegar a alterar una información de forma muy sutil a fin de que el mensaje prosiga siendo inteligible, mas al tiempo contener información falsa o bien equivocada. Así como el resto nodos, que operarán sin interrupciones, distribuirán esta información.

Aplicaciones de Gossip Protocol

Muchas redes de distribución en nuestros días usan los Gossip Protocol como un medio por el que pueden repartir información de forma precisa y oportuna. Por servirnos de un ejemplo, Bitcoin emplea los Gossip Protocol para repartir los valores nonce entre cada uno de ellos de sus nodos mineros. Igualmente, la red distribuida HashGraph también se fundamenta en estos protocolos para la trasferencia y difusión de información entre su red.

Por otro lado, el softwareApache Cassandra emplea estos protocolos para establecer una comunicación a través de la que sus nodos pueden percibir información y descubrir pares, que asistan a la propagación de metadatos en la red. Del mismo modo, la base de datos Riak también incorpora los protocolos de Gossip para compartir el estado y las propiedades de sus anillos. Un proceso que efectúan los nodos de manera constante para sostener informados y actualizados a el resto nodos de las actualizaciones que ocurren en la base de datos.

Por su parte, Dymano usa un protocolo de Gossip para llevar un registro de las membresías, que le ayuda a descubrir a nuevos miembros participantes del programa, como a la detección de alguna falla. Una funcionalidad afín tienen los protocolos Gossip en la red de servicios Consul. Que emplea estos protocolos del mismo modo para la detección de nuevos miembros, para la detección de fallas o bien posibles fallas en la red. Del mismo modo, la red Consul emplea los protocolos de Gossip para trasmitir la información de nuevos servicios y acontecimientos de forma fiable y eficaz en la red.

No obstante, si bien la primordial aplicación de estos protocolos es el de propagar la información, los Gossip Protocol tienen considerablemente más aplicaciones en las redes de distribución de información. Por poner un ejemplo, pueden ser empleados para la resolución de inconvenientes difíciles en redes demasiados extensas. Como pueden ser usados para contestar bases de datos completas y considerablemente más.