OPERA: Enabling Inter-node Concurrency in Byzantine Fault Tolerant Blockchains
Dit artikel introduceert OPERA, een Byzantijnse fouttolerante executiemodel dat concurrentie over nodes uitbreidt via partiële replicatie en inter-node parallellisme, waardoor de executiekosten aanzienlijk worden verlaagd en de doorvoer in blockchains wordt verhoogd zonder de veiligheid of applicatiesemantiek in gevaar te brengen.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://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 wereld voor waarin miljoenen mensen proberen een gigantisch, gedeeld dagboek perfect synchroon te houden. Dit is niet zomaar een dagboek; het is een digitale grootboek dat alles registreert, van wie een digitale kat bezit tot wie geld naar wie heeft gestuurd. Het nadeel? Iedereen moet het eens zijn over elke afzonderlijke invoer, en sommige mensen in de groep kunnen ondeugende leugenaars zijn die proberen het systeem te misleiden. Dit is de wilde wereld van blockchain, de technologie achter cryptovaluta en gedecentraliseerde apps.
Lama tijd hadden deze digitale dagboeken een grote verkeersopstopping. Om iedereen eerlijk te houden, moest elke persoon in de groep de volledige nieuwe pagina van het dagboek lezen, elk woord controleren en het één voor één zelf opschrijven. Het was als een klaslokaal waar elke leerling elk wiskundeprobleem op het bord moest oplossen, zelfs als ze er slechts één toegewezen hadden gekregen. Dit maakte het systeem traag en duur, vooral naarmate er meer mensen bij kwamen. Wetenschappers noemen dit "Byzantine Fault Tolerance", een chique manier om te zeggen dat het systeem veilig blijft, zelfs als sommige leden proberen te bedriegen. De grote vraag die onderzoekers hebben gesteld is: Kunnen we deze groep sneller laten werken zonder dat de bedriegers het feestje verpesten?
Maak kennis met OPERA, een nieuw idee van onderzoekers aan de Hanyang Universiteit dat probeert deze verkeersopstopping op te lossen door de studenten het werk te laten verdelen. In plaats van dat iedereen de hele pagina leest, wijst OPERA verschillende delen van de pagina toe aan verschillende studenten. Het is als een enorme potluck waarbij iedereen een ander gerecht meeneemt, maar ze proeven elkaars eten om te controleren of er geen vergiftigde appel is geserveerd. De onderzoekers bouwden een systeem genaamd OPERA-PBFT om dit te testen. Ze ontdekten dat door nodes (de computers die de blockchain draaien) slechts een klein deel van de transacties te laten uitvoeren en vervolgens elkaars werk te laten dubbelchecken, ze het systeem veel sneller konden maken. In hun tests verwerkte deze nieuwe methode meer dan 33.787 transacties per seconde, wat ongeveer 2,4 keer sneller is dan sommige van de snelste bestaande systemen zoals Aptos. Zelfs toen het werk rommelig en chaotisch werd, met veel transacties die strijden om dezelfde gegevens, vertraagde OPERA slechts met een kleine 7%, terwijl andere systemen crashten of drastisch vertraagden.
Het Probleem: De "Iedereen Doet Alles" Bottleneck
Denk aan een traditionele blockchain als een superstrikte bibliotheek. Wanneer er een nieuw boek (een blok transacties) arriveert, moet elke enkele bibliothecaris (node) in het gebouw het gehele boek van voor tot achter lezen, elk feit controleren en het in hun eigen persoonlijke kopie schrijven. Zelfs als de bibliotheek 100 bibliothecarissen heeft, wordt de snelheid van de hele bibliotheek beperkt door de langzaamste bibliothecaris. Als één bibliothecaris traag is of wordt afgeleid, stopt de hele rij. Dit wordt "full replication" genoemd. Het is veilig omdat iedereen alles controleert, maar het is ongelooflijk verspillend. Het is alsof je 100 chefs in een keuken hebt, en elke enkele chef moet het hele 10-gangen diner bereiden, ook al hoeven ze maar één gerecht te proeven om te weten dat het goed is.
De Oplossing: De "Gespecialiseerde Potluck"
De auteurs van dit artikel, Sungwook Chung en zijn team, stelden een eenvoudige vraag: Wat als we niet iedereen het hele maaltijd lieten koken?
Ze stelden OPERA voor, een nieuwe manier om een blockchain te draaien die gebruikmaakt van partiële replicatie. Stel je dezelfde keuken voor, maar dit keer deelt de chef-kok (de leider) een menu uit. In plaats van dat elke chef het hele 10-gangen diner kookt, kookt Chef A alleen de voorgerechten, Chef B alleen de soep en Chef C alleen het dessert.
Maar hier komt het lastige deel: Wat als Chef A een leugenaar is en een rotte salade serveert? In het oude systeem zou iedereen het opmerken omdat iedereen alles proeft. In OPERA, aangezien Chef B en Chef C de salade niet hebben aangeraakt, hoe weten zij dan dat het veilig is?
OPERA lost dit op met een slimme twee-stappen dans:
- De "Vertrouw maar Verifieer" Toewijzing: Elke transactie (een gerecht) wordt toegewezen aan een kleine groep chefs (nodes) om te koken. Specifiek wordt het gegeven aan f + 1 primaire chefs en f - k reservechefs. Het aantal f vertegenwoordigt het maximaal aantal leugenaars dat het systeem kan afhandelen. Als het systeem 2 leugenaars kan afhandelen, dan moeten ten minste 3 chefs koken en het resultaat overeenstemmen.
- Het "Proef-Certificaat": Zodra de primaire chefs klaar zijn, zeggen ze niet alleen "Het is klaar." Ze overhandigen een read/write set. Denk aan dit als een bonnetje dat zegt: "Ik heb deze ingrediënten gelezen en deze smaken veranderd." De andere chefs bekijken deze bonnetjes. Als f + 1 chefs (het minimum aantal nodig om de leugenaars te overstemmen) exact hetzelfde bonnetje overhandigen, vertrouwt het systeem dat het gerecht veilig is.
Als een primaire chef een leugenaar is of verdwijnt (een "Byzantine fault"), stappen de reservechefs in om het gerecht te koken en hun eigen bonnetjes te genereren. Zodra er genoeg overeenkomende bonnetjes zijn verzameld, wordt het gerecht als "geverifieerd" beschouwd.
De "Conflict" Dans: Wanneer Gerechten Botsen
Soms hebben twee verschillende gerechten hetzelfde ingrediënt nodig. Bijvoorbeeld, twee transacties kunnen tegelijkertijd proberen geld uit dezelfde portemonnee uit te geven. In het oude "iedereen kookt alles" systeem, zouden de chefs gewoon om de beurt gaan. In OPERA, aangezien verschillende chefs verschillende delen koken, kunnen ze per ongeluk tegelijkert wordt hetzelfde ingrediënt te gebruiken.
Om dit op te lossen, gebruikt OPERA een techniek genaamd Conflict-Resolving Deterministic Re-execution (CRDR). Het is als een scheidsrechter die het koken in de gaten houdt.
- Eerst kijkt het systeem naar alle bonnetjes om te zien welke gerechten botsen.
- Het groepeert de niet-botsende gerechten samen en laat ze onmiddellijk serveren.
- Voor de botsende gerechten voert het systeem ze opnieuw uit, één voor één, in een specifieke volgorde, om ervoor te zorgen dat het eindresultaat perfect is.
Dit zorgt ervoor dat zelfs hoewel het werk is opgesplitst, het eindresultaat exact hetzelfde is als wanneer één persoon het allemaal alleen had gedaan. Het garandeert dat de "dagboek" consistent blijft en niemand kan bedriegen.
De Resultaten: Het Feestje Versnellen
De onderzoekers testten hun idee door OPERA-PBFT te bouwen, een versie van de blockchain die deze nieuwe methode van werkverdeling gebruikt. Ze voerden simulaties uit met verschillende aantallen computers en verschillende soorten werklasten.
- De Grote Winst: In hun tests bereikte OPERA-PBFT een snelheid van 33.787 transacties per seconde (TPS). Dit is 2,4 keer sneller dan Aptos, een van de huidige leiders in snelheid.
- De "Rommelige" Test: Ze testten ook wat er gebeurt als het werk chaotisch wordt (een "skewed workload" genoemd), waarbij veel transacties strijden om dezelfde gegevens. De meeste systemen vertragen drastisch in dit scenario. OPERA-PBFT vertraagde slechts met 7%, terwijl andere systemen zoals Aptos met 77% vertraagden.
- De Kosten: Ze maten ook hoeveel "werk" het systeem deed. In een traditioneel systeem doet elke computer elke taak. In OPERA werd het totale werk met wel 44% verminderd. Dit betekent dat het systeem niet alleen sneller is, maar ook efficiënter, waardoor het minder energie en rekenkracht verbruikt.
Waarom Dit Er Toe Doet
Het artikel suggereert dat we niet hoeven te kiezen tussen veiligheid en snelheid. Een lange tijd dachten mensen dat om een blockchain veilig te houden tegen leugenaars, iedereen alles moest doen. OPERA laat zien dat je het werk kunt verdelen, verschillende computers verschillende delen kunt laten afhandelen, en het systeem nog steeds veilig en snel kunt houden.
Het is alsof je beseft dat een groot orkest niet elke muzikant elk instrument hoeft te spelen om mooie muziek te maken. Als de dirigent (het protocol) de juiste onderdelen aan de juiste spelers toewijst en ervoor zorgt dat ze op elkaar letten, kan de muziek sneller en luider worden gespeeld dan ooit tevoren. De onderzoekers ontdekten dat deze aanpak werkt, zelfs wanneer sommige spelers proberen de verkeerde noten te spelen, wat bewijst dat een blockchain zowel een superbeveiligde kluis als een snelweg met hoge snelheid kan zijn.
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.