O protocolo Gossip é um protocolo que permite projetar sistemas de comunicação distribuída (P2P) altamente eficientes, seguros e de baixa latência. A inspiração para seu desenho foi tirada de estudos sobre expansão epidêmica e algoritmos daí resultantes.
Cquando falamos sobre Protocolo de Fofoca, falamos sobre um protocolo de comunicação usado por dispositivos digitais para propagar informações em uma rede ponto a ponto (P2P). Em redes blockchain, este protocolo é usado por nós de rede para compartilhar e disseminar informações de forma rápida e confiável entre si.
O nome Gossip para este protocolo deriva da forma como a informação é disseminada nas redes sociais. Fofoca em espanhol significa fofoca ou boato; Portanto, o Gossip Protocol é inspirado por essa forma de divulgação de informações que ocorre muito rapidamente nessas redes. Atualmente, existem muitas variações deste protocolo de comunicação. Muitos são aplicados de acordo com as necessidades ou requisitos de cada usuário ou de cada uma das redes que os utiliza.
Origem do protocolo Gossip
A origem deste protocolo está relacionada aos algoritmos de replicação epidêmica descritos por Demers Alan, Greene Dan, Hauser Carl, Irish Wes, Larson John, Shenker Scott, Sturgis Howard, Swinehart Danm e Terry Doug em seu estudo. "Algoritmos epidêmicos para manutenção de banco de dados replicado" de 1987.
Desde o início deste estudo, a propagação da epidemia despertou grande interesse na computação. Isso porque seu sistema operacional é perfeito para grandes redes com altos níveis de descentralização. Na verdade, os primeiros usos práticos de protocolos do tipo Gossip podem ser vistos nos sistemas de roteamento das primeiras redes que foram o preâmbulo da Internet que temos hoje.
Como funciona o protocolo Gossip?
Os protocolos de fofoca funcionam muito facilmente. Isso ocorre porque eles se baseiam em um conceito muito básico de distribuição e propagação de informações em uma rede. Nesses protocolos, para um nó distribuir informações, ele só precisa ser emparelhado com outros nós aleatoriamente. Uma vez que isso aconteça, basta trocar as informações recebidas com os referidos nós, que por sua vez distribuirão as informações com outros nós aos quais também estão emparelhados. Formar uma cadeia de distribuição para divulgar informações em toda a rede de maneira oportuna e eficiente.
Por sua vez, a forma como a informação é propagada dentro de uma rede ponto a ponto através do protocolo Gossip ocorre de forma rápida e segura, desde que os nós envolvidos possam garantir a propagação e divulgação de informações sem discriminar ou excluir qualquer das partes na sua própria rede.
Gossip Protocol baseia-se na distribuição probabilística de informações selecionando pares, a quem os nós irão distribuir as informações. Isso para não repetir ou duplicar informações para um nó que já as conhece. Por exemplo, no caso de uma equipe de trabalho que se reúne constantemente para se manter atualizada com tudo o que acontece dentro do escritório, aplicando o protocolo Gossip cada um dos membros da equipe deve ser emparelhado com outro membro com quem irão compartilhar o em formação. Este membro da equipe, por sua vez, será emparelhado com outro a quem também deverá distribuir as mesmas informações e assim por diante, para que todos sejam mantidos informados.
Quando se diz que os protocolos Gossip são baseados na probabilidade de distribuir informações, é porque um nó deve escolher aleatoriamente com qual outro nó deseja compartilhar essa informação. Além disso, esse protocolo de comunicação é escalonável, pois os nós apenas compartilham ou distribuem uma quantidade fixa de informações, independentemente de outro nó falhar em seu trabalho. Os nós operacionais sempre estarão compartilhando a quantidade correspondente de informações com sua rede peer.
Para ver mais facilmente como o protocolo funciona, consulte o exemplo a seguir no controle deslizante de imagem.
Objetivo de um protocolo de fofoca
O principal objetivo de um protocolo Gossip é disseminar informações da maneira mais rápida possível em uma vasta rede de nós distribuídos. Para tanto, esses tipos de protocolos baseiam-se na ideia básica de que os processos que se comunicam periodicamente com seus pares. Durante essa comunicação, eles são capazes de trocar informações, criando alta frequência e fluxo de dados pela rede. E tudo isso em um padrão de dispersão que permite que as informações sejam distribuídas o mais rápido possível em toda a rede.
Um exemplo disso pode ser visto por exemplo na Usenet e IRC. Ambos os sistemas, apesar de centralizados, distribuíam notícias muito rapidamente pela rede por meio de “sussurros”. Mas talvez o melhor exemplo dessa operação possa ser visto no sistema de roteamento que torna a Internet possível. Esses protocolos de roteamento permitem que os roteadores troquem informações com roteadores vizinhos, melhorando assim as tabelas de roteamento para toda a rede. No final das contas, a rede sempre busca construir uma versão mais ótima de si mesma por meio do roteamento mais curto entre todas as suas partes.
Esta situação é muito útil na construção de uma rede blockchain. Uma vez que uma rede amplamente distribuída se beneficiaria muito com este tipo de operação. Assim, os recursos que o integram são utilizados ao máximo. O resultado é que uma transação em uma rede com Gossip Protocol, viajaria rapidamente por todos os nós da rede, reduzindo os ataques no meio de sua dispersão.
E pensar que toda essa funcionalidade é projetada em torno de estudos de dispersão de pandemia e um provérbio simples:
"Qualquer um pode começar uma fofoca, mas ninguém pode impedir."
Tipos de protocolo Gossip
Protocolo de transmissão
Os protocolos de disseminação ou propagação de informação são aqueles que operam sob comunicação de grupo ou multicast para a disseminação de mensagens. No primeiro caso, em comunicação de grupo, os nós da rede peer estão sempre em comunicação constante. Assim, as informações podem ser distribuídas para a rede de forma rápida e confiável. Embora possa ser o caso de que, no momento da propagação da informação, ela já tenha mudado e esteja um pouco desatualizada. No entanto, geralmente isso não é uma preocupação ou problema para a rede.
No segundo caso, sob multicast, a informação é distribuída na rede peer ocasionalmente. Portanto, um evento não aciona imediatamente a propagação de informações. Nesse caso, o estado latente da informação pode ser preocupante, devido ao tempo que decorre desde a criação da informação até a sua disseminação na rede.
Protocolo de agregação
Em protocolos de agregação, os nós da rede ponto a ponto recebem e processam informações para enviar um resumo delas aos outros nós conectados à rede. Este mecanismo de distribuição de informações mantém um registro de todos os dados processados. Este processo é conhecido como mineração de dados distribuída, que é amplamente utilizado na tecnologia de razão distribuída.
Vantagens e desvantagens do protocolo de fofoca
Vantagens
- Escalabilidade: Os protocolos de fofoca são altamente escaláveis. Isso se deve ao fato de ser possível distribuir as informações com um nível de desempenho bastante eficiente. Nestes protocolos, os nós distribuem uma quantidade fixa de mensagens aos nós com os quais estão relacionados.
- Robustez: No protocolo Gossip, todos os nós operam da mesma maneira e não desempenham uma função especial ou diferente uns dos outros. Portanto, se ocorrer uma falha em um ou mais nós, isso não afetará ou interromperá a funcionalidade dos outros nós da rede para a distribuição de informações. Da mesma forma, os nós podem entrar ou sair da rede ponto a ponto sem restrições e sem afetar seu funcionamento.
- Tolerância ao erro: Como os nós têm a capacidade de compartilhar e distribuir informações com vários nós na rede de mesmo nível, esses protocolos têm a capacidade de operar corretamente. Mesmo em situações difíceis onde a conectividade de alguns nós é afetada. Se um determinado nó se desconectar por qualquer motivo, as informações serão distribuídas da mesma forma pelos outros nós que já receberam a mensagem.
- Descentralização: Os protocolos de gossip distribuem informações de uma forma completamente descentralizada e autônoma.
Desvantagens
- Embora os protocolos Gossip ofereçam robustez ao sistema, permitindo que os nós continuem operando sem interrupção no caso de falhas, pode ser que a informação ou a mensagem distribuída seja afetada. Por exemplo, se um nó se torna malicioso, ele pode modificar as informações de uma maneira muito sutil para que a mensagem permaneça legível, mas ao mesmo tempo contenha informações falsas ou errôneas. E da mesma forma os outros nós, que funcionarão sem interrupções, distribuirão essas informações.
Aplicativos de protocolo Gossip
Muitas redes de distribuição hoje usam os Gossip Protocols como um meio pelo qual podem distribuir informações de maneira precisa e oportuna. Por exemplo, Bitcoin usa os protocolos Gossip para distribuir os valores de nonce entre cada um de seus nós de mineração. Da mesma forma, a rede distribuída HashGraph também se baseia nesses protocolos para a transferência e disseminação de informações em sua rede.
Por outro lado, o software Apache Cassandra usa esses protocolos para estabelecer comunicação por meio da qual todos os seus nós podem receber informações e descobrir pares, que auxiliam na propagação de metadados na rede. Da mesma forma, o banco de dados Riak Ele também implementa os protocolos Gossip para compartilhar o estado e as propriedades de seus anéis. Processo que os nós realizam constantemente para manter os demais nós informados e atualizados das atualizações que ocorrem no banco de dados.
Por sua parte, o dínamo usa um protocolo Gossip para rastrear as adesões, o que ajuda a descobrir novos membros participando do programa, bem como detectar quaisquer falhas. Os protocolos de gossip têm funcionalidade semelhante na rede de utilitários Cônsul. Utiliza estes protocolos tanto para a detecção de novos membros, como para a detecção de falhas ou possíveis falhas na rede. Da mesma forma, a rede Consul usa protocolos Gossip para transmitir informações sobre novos serviços e eventos de forma confiável e eficiente dentro da rede.
No entanto, embora a principal aplicação desses protocolos seja a disseminação de informações, os Gossip Protocols têm muito mais aplicações nas redes de distribuição de informações. Por exemplo, eles podem ser usados para resolver problemas complicados em redes muito grandes. Além disso, podem ser usados para replicar bancos de dados completos e muito mais.