← Últimos artigos
💻 computer science

Hermes: Low Tail-Latency Via Prefix Consensus

Hermes é um protocolo BFT de líder rotativo de dois turnos para n=5f+1n=5f+1 processos que elimina paradas de latência de cauda causadas por líderes lentos ou que falharam ao utilizar consenso de prefixo para finalizar o prefixo comum mais pesado de quaisquer nfn-f votos, garantindo assim o progresso mesmo quando as visualizações expiram.

Autores originais: Alejandro Ranchal-Pedrosa, Dakai Kang, Neil Giridharan, Dahlia Malkhi, Mohammad Sadoghi, Ben Marsh

Publicado 2026-07-29
📖 7 min de leitura🧠 Leitura aprofundada

Autores originais: Alejandro Ranchal-Pedrosa, Dakai Kang, Neil Giridharan, Dahlia Malkhi, Mohammad Sadoghi, Ben Marsh

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine um grupo de amigos tentando decidir qual filme assistir, mas eles estão espalhados pelo mundo, alguns têm internet instável e alguns amigos travessos estão tentando sabotar a decisão enviando links falsos ou fingindo estar offline. Este é o mundo do consenso de Tolerância a Falhas Bizantinas (BFT). Na ciência da computação, é assim que uma rede de computadores entra em acordo sobre uma verdade única — como a ordem das transações em um blockchain — sem confiar em um único chefe central. O objetivo é chegar a um acordo rapidamente (baixa latência), mesmo quando alguns computadores travam ou agem de forma maliciosa.

Por anos, esses sistemas dependeram de um "líder" para propor o próximo passo. Se o líder for rápido e honesto, todos concordam rapidamente. Mas se o líder for lento ou travar, todo o grupo tem que esperar um temporizador acabar, desistir desse líder e escolher um novo. Isso cria um dilema doloroso: defina o temporizador longo e você esperará para sempre por um líder quebrado; defina-o curto e você perderá tempo abandonando líderes que estavam apenas um pouco lentos. Este "dilema do timeout" é o gargalo que atrasa a extremidade final do sistema, fazendo com que as solicitações mais lentas demorem uma eternidade para terminar.

Este artigo apresenta o Hermes, um novo protocolo projetado para resolver esse problema específico. Em vez de desistir quando um líder é lento, o Hermes permite que o grupo termine o trabalho sobre o qual eles podem concordar, mesmo que o líder falhe. Ele transforma um timeout desperdiçado em uma decisão produtiva, garantindo que, não importa o que aconteça, o sistema continue avançando sem perder o progresso que já realizou.

O Problema: A "Armadilha do Timeout"

Imagine uma corrida de revezamento onde o capitão da equipe (o líder) deve entregar o bastão para o próximo corredor. Se o capitão for rápido, a corrida corre suavemente. Mas se o capitão tropeçar ou derrubar o bastão, toda a equipe tem que parar e esperar pelo apito de um árbitro (o timeout) antes de poderem escolher um novo capitão e recomeçar.

Nos sistemas tradicionais, este apito é uma aposta. Se o árbitro apitar cedo demais, eles podem interromper um capitão que estava apenas correndo um pouco devagar, mas que conseguiria completar o percurso. Se esperarem demais, a equipe fica ociosa por eras enquanto um capitão quebrado tenta se recuperar. De qualquer forma, o tempo gasto esperando é "tempo morto" — nenhum progresso é feito e a corrida fica estagnada. Este é o problema da "latência de cauda": os piores cenários arrastam todo o sistema para baixo.

A Solução: Hermes e o "Terreno Comum"

O Hermes muda as regras do jogo. Em vez de tratar um líder lento como uma falha total, o Hermes trata o acordo parcial do grupo como uma vitória.

Veja como funciona com uma analogia criativa: Imagine que a equipe está tentando construir uma torre longa de blocos.

  • O Jeito Antigo: O líder coloca um bloco. Todos esperam. Se o líder parar, a equipe espera o timeout, então joga fora a torre inteira e começa a construir uma nova com um novo líder.
  • O Jeito Hermes: O líder começa a colocar blocos, mas todos também começam a colocar seus próprios blocos simultaneamente. Se o líder for rápido, a equipe constrói a torre do líder perfeitamente. Se o líder travar, a equipe não joga a torre fora. Em vez disso, eles olham para todos os blocos que todos colocaram, encontram a seção mais longa onde todos concordam com a ordem dos blocos e declaram que essa seção está "finalizada".

Esta é a inovação central: Consenso de Prefixo. Nos tempos antigos, se duas pessoas votassem em torres ligeiramente diferentes, seus votos eram considerados uma discordância e descartados. O Hermes diz: "Espere, eles concordam com os 90% inferiores da torre! Vamos travar isso e seguir em frente."

Como o Hermes Funciona: A Dança de Duas Rodadas

O Hermes opera em "views" (visões/rodadas), cada uma com um líder designado. Ele utiliza uma dança inteligente de dois passos:

  1. Rodada 1 (A Proposta): Todos transmitem sua própria ideia de como deve ser a próxima parte da torre. A ideia do líder é apenas uma entre muitas.
  2. Rodada 2 (O Voto):
    • Se o líder for rápido: Todos veem a proposta do líder, concordam e votam nela. A torre cresce com o bloco total do líder em apenas dois atrasos de mensagem (2δ).
    • Se o líder for lento ou travar: O temporizador acaba. Em vez de votar para "cancelar" a rodada, todos votam no melhor acordo possível que conseguirem encontrar entre as propostas que receberam. Eles procuram pelo "Prefixo Comum Mais Pesado" (Heaviest Common Prefix - HCP) — a sequência mais longa de blocos que todos concordam, mesmo que suas propostas tenham divergido no final.

Isso significa que, mesmo que o líder falhe, o grupo não perde a visão. Eles finalizam a parte comum da torre e iniciam imediatamente a próxima rodada. O caminho do "timeout", que antes era um beco sem saída, agora produz um resultado.

A Magia dos "Prefixos" e "Skips"

Para fazer isso funcionar com múltiplas faixas de dados (como uma rodovia com muitas faixas de tráfego), o Hermes usa uma codificação especial chamada parent-relative delta tipcuts.

Pense nisso como um livro de "Escolha sua Própria Aventura", onde cada página faz referência à anterior. Se uma faixa de tráfego estiver faltando um carro (um bloco), o Hermes não diz "erro". Ele marca explicitamente aquele lugar como "pulado" (skipped) e avança para o próximo carro. Isso permite que o sistema compare diferentes propostas mesmo que lhes faltem peças diferentes. É como comparar duas histórias: mesmo que uma história pule um parágrafo e a outra o inclua, elas ainda podem concordar com o início e o fim, e o sistema trava esse acordo.

Os Resultados: Velocidade e Segurança

O artigo prova matematicamente que o Hermes é seguro (duas pessoas honestas nunca discordarão da parte finalizada) e vivo (o sistema sempre continuará se movendo).

  • O Caso Bom: Se o líder for honesto e rápido, o Hermes é tão rápido quanto os melhores sistemas existentes, finalizando em (dois atrasos de mensagem).
  • O Caso Ruim: Se o líder for lento ou travar, o Hermes finaliza o acordo comum em 2∆ + δ (onde ∆ é o timeout e δ é o atraso da rede). Crucialmente, isso é mais rápido do que o modo antigo de esperar por uma mudança completa de visão, porque pula o tempo "desperdiçado" de descartar a visão.

Os autores mostram que, ao usar erasure coding (uma forma de quebrar dados em pedaços para que possam ser reconstruídos mesmo se algumas partes forem perdidas), o Hermes mantém os custos de comunicação baixos, mesmo lidando com muitas faixas de dados.

Por Que Isso Importa

O Hermes resolve o "dilema do timeout" ao tornar o próprio timeout algo produtivo. Ele transforma um momento de falha em um momento de progresso. Em vez de perguntar, "O líder conseguiu chegar?" e esperar para ver, o Hermes pergunta: "No que todos nós concordamos?" e segue em frente.

Para um adolescente curioso, pense nisso como um grupo de chat onde todos estão tentando concordar com um plano. Se a pessoa que costuma sugerir o plano travar, o jeito antigo é esperar que ela responda ou iniciar um novo chat com um novo líder. O Hermes é como dizer: "Ok, eles não responderam, mas olhem todas as ideias que enviamos. Todos concordamos com os três primeiros passos. Vamos travar esses e começar a planejar o quarto passo." É uma maneira mais inteligente e resiliente de manter o grupo em movimento, não importa quem deixe a peteca cair.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →