← Nieuwste papers
💻 computer science

Hermes: Low Tail-Latency Via Prefix Consensus

Hermes is een twee-ronde roterend-leider BFT-protocol voor n=5f+1n=5f+1 processen dat tail-latency stallings veroorzaakt door trage of gecrashte leiders elimineert door gebruik te maken van prefix-consensus om de zwaarste gemeenschappelijke prefix van elke nfn-f stemmen te finaliseren, waardoor progressie wordt gegarandeerd zelfs wanneer views verlopen.

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

Gepubliceerd 2026-07-29
📖 7 min leestijd🧠 Diepgaand

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

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je een groep vrienden voor die proberen te beslissen welke film ze gaan kijken, maar ze zijn verspreid over de hele wereld, sommigen hebben een slechte internetverbinding en een paar ondeugende vrienden proberen de beslissing te saboteren door valse links te sturen of te doen alsof ze offline zijn. Dit is de wereld van Byzantine Fault Tolerant (BFT) consensus. In de informatica is dit hoe een netwerk van computers instemt met één enkele waarheid—zoals de volgorde van transacties in een blockchain—zonder een centrale baas te vertrouwen. Het doel is om snel tot een overeenstemming te komen (lage latentie), zelfs wanneer sommige computers crashen of kwaadwillend handelen.

Jarenlang vertrouwden deze systemen op een "leider" die de volgende stap voorstelt. Als de leider snel en eerlijk is, stemt iedereen snel in. Maar als de leider traag is of crasht, moet de hele groep wachten tot een timer afloopt, de huidige leider opgeeft en een nieuwe kiest. Dit creëert een pijnlijke afweging: stel de timer lang in, en je wacht eeuwig op een defecte leider; stel hem kort in, en je verspilt tijd aan het opgeven van leiders die alleen maar een beetje traag waren. Deze "timeout-dilemma" is de bottleneck die de staart van het systeem vertraagt, waardoor de traagste verzoeken er eeuwig over doen om te voltooien.

Dit artikel introduceert Hermes, een nieuw protocol dat ontworpen is om dit specifieke hoofdpijndossier op te lossen. In plaats van op te geven wanneer een leider traag is, laat Hermes de groep de arbeid voltooien waarover zij wel al overeenstemming hebben bereikt, zelfs als de leider faalt. Het verandelt een verspilde timeout in een productieve beslissing, waardoor het systeem ervoor zorgt dat er vooruitgang wordt geboekt, ongeacht wat er gebeurt, zonder de reeds gemaakte progressie te verliezen.

Het Probleem: De "Timeout Trap"

Stel je een estafette voor waarbij de teamkapitein (de leider) de stok aan de volgende renner moet overhandigen. Als de kapitein snel is, verloopt de race soepel. Maar als de kapitein struikelt of de stok laat vallen, moet het hele team stoppen en wachten op een fluitje van de scheidsrechter (de timeout) voordat ze een nieuwe kapitein kunnen kiezen en opnieuw kunnen beginnen.

In traditionele systemen is dit fluitje een gok. Als de scheidsrechter te vroeg fluit, stoppen ze misschien een kapitein die alleen maar wat langzamer liep maar het wel zou redden. Als ze te lang wachten, zit het team eeuwenlang stil terwijl een defecte kapitein probeerde te herstellen. In beide gevallen is de tijd die wordt doorgebracht met wachten "dode tijd"—er wordt geen progressie gemaakt en de race ligt stil. Dit is het "tail latency"-probleem: de worst-case scenario's trekken het hele systeem omlaag.

De Oplossing: Hermes en de "Common Ground"

Hermes verandert de spelregels. In plaats van een trage leider als een totaal falen te behandien, beschouwt Hermes de gedeeltelijke overeenstemming van de groep als een overwinning.

Zo werkt het met een creatieve analogie: Stel je voor dat het team een lange toren probeert te bouwen van blokken.

  • De Oude Manier: De leider plaatst een blok. Iedereen wacht. Als de leider stopt, wacht het team op de timeout, gooit dan de hele toren weg en begint met een nieuwe toren met een nieuwe leider.
  • De Hermes-Manier: De leider begint blokken te plaatsen, maar iedereen begint ook gelijktijdig eigen blokken te plaatsen. Als de leider snel is, bouwt het team de toren van de leider perfect op. Als de leider vastloopt, gooit het team de toren niet weg. In plaats daarvan kijken ze naar alle blokken die iedereen heeft geplaatst, zoeken ze de langste sectie waar iedereen het eens is over de volgorde van de blokken, en verklaren die sectie "voltooid".

Dit is de kerninnovatie: Prefix Consensus. In de oude dagen, als twee mensen stemden voor licht verschillende torens, werden hun stemmen beschouwd als een onenigheid en weggegooid. Hermes zegt: "Wacht, ze zijn het eens over de onderste 90% van de toren! Laten we dat vastleggen en verdergaan."

Hoe Hermes Werkt: De Twee-Ronde Dans

Hermes werkt in "views" (rondes), elk met een aangewezen leider. Het gebruikt een slimme twee-staps dans:

  1. Ronde 1 (Het Voorstel): Iedereen zendt zijn eigen idee uit over hoe het volgende deel van de toren eruit zou moeten zien. Het idee van de leider is slechts één van de vele.
  2. Ronde 2 (De Stemronde):
    • Als de leider snel is: Iedereen ziet het voorstel van de leider, stemt ermee in en stemt ervoor. De toren groeit met het volledige blok van de leider in slechts twee berichtvertragingen (2δ).
    • Als de leider traag is of crasht: De timer loopt af. In plaats van te stemmen om de ronde te "annuleren", stemt iedereen voor de best mogende overeenstemming die ze kunnen vinden tussen de ontvangen voorstellen. Ze zoeken naar de "Heaviest Common Prefix" (HCP)—de langste reeks blokken waarover iedereen het eens is, zelfs als hun voorstellen aan het einde uiteenliepen.

Dit betekent dat zelfs als de leider faalt, de groep de view niet verliest. Ze voltooien het gemeenschappelijke deel van de toren en beginnen direct aan de volgende ronde. De "timeout"-route, die vroeger een doodlopende weg was, produceert nu een resultaat.

De Magie van "Prefixes" en "Skips"

Om dit werkbaar te maken met meerdere banen aan data (zoals een snelweg met veel rijstroken), gebruikt Hermes een speciale codering genaamd parent-relative delta tipcuts.

Denk aan het als een "Kies je eigen avontuur"-boek waarbij elke pagina naar de vorige verwijst. Als een rijstrook een auto (een blok) mist, zegt Hermes niet "fout". Het markeert die plek expliciet als "geskipt" en gaat door naar de volgende auto. Dit stelt het systeem in staat om verschillende voorstellen te vergelijken, zelfs als ze verschillende stukjes missen. Het is als het vergelijken van twee verhalen: zelfs als het ene verhaal een paragraaf overslaat en het andere verhaal die wel bevat, kunnen ze nog steeds overeenstemming bereiken over het begin en het einde, en legt het systeem die overeenstemming vast.

De Resultaten: Snelheid en Veiligheid

Het artikel bewijst wiskundig dat Hermes veilig is (geen twee eerlijke mensen zullen ooit van mening verschillen over het gefinaliseerde deel) en levend (het systeem blijft altijd vooruitgaan).

  • Het Goede Geval: Als de leider eerlijk en snel is, is Hermes net zo snel als de beste bestaande systemen, waarbij het in (twee berichtverdragingen) wordt voltooid.
  • Het Slechte Geval: Als de leider traag is of crasht, voltooit Hermes de gemeenschappelijke overeenstemming in 2∆ + δ (waarbij ∆ de timeout is en δ de netwerkvertraging). Cruciaal is dat dit sneller is dan de oude manier van wachten op een volledige view change, omdat het de "verspilde" tijd van het weggooien van de view overslaat.

De auteurs laten zien dat door het gebruik van erasure coding (een manier om data op te splitsen in stukjes zodat het gereconstrueerd kan worden zelfs als sommige stukjes verloren gaan), Hermes de communicatiekosten laag houdt, zelfs bij het werken met veel banen aan data.

Waarom Dit Er Toe Doet

Hermes lost het "timeout-dilemma" op door de timeout zelf productief te maken. Het verandert een moment van falen in een moment van progressie. In plaats van te vragen: "Heeft de leider het gehaald?" en af te wachten, vraagt Hermes: "Waar zijn we het allemaal over eens?" en gaat verder.

Voor een nieuwsgierige tiener: denk aan een groepschat waarin iedereen probeert een plan af te spreken. Als de persoon die normaal gesproken het plan voorstelt vastloopt, is de oude manier om op hun antwoord te wachten of een nieuwe chat te starten met een nieuwe leider. Hermes is als zeggen: "Oké, ze hebben niet gereageerd, maar kijk naar alle ideeën die we hebben gestuurd. We zijn het allemaal eens over de eerste drie stappen. Laten we die vastleggen en beginnen met het plannen van stap vier." Het is een slimmere, veerkrachtigere manier om de groep in beweging te houden, ongeacht wie de bal laat vallen.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →