Populaire onderwerpen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Hoe schaalt Monad de EVM terwijl decentralisatie behouden blijft?
MonadBFT is het consensusalgoritme dat in Monad wordt gebruikt, het is de eerste tailfork-resistente implementatie van Hotstuff (wat betekent dat?)
Hier is hoe MonadBFT kan schalen naar 1000-en validators terwijl het performant blijft 🧵
1/7 Consensusmechanismen
Het mechanisme dat blockchains gebruiken om ervoor te zorgen dat nieuwe blokken worden goedgekeurd door een meerderheid van de validators.
Consensusalgoritmen zijn tot nu toe niet in staat om verder te schalen dan een paar honderd validators, aangezien de complexiteit toeneemt op basis van het kwadraat van het aantal validators (in de meeste gevallen).
Aangezien elke validator met alle andere validators communiceert om overeenstemming te bereiken over de blokken: n validators x n berichten = n-kwadraat berichten.
Daarom neemt de complexiteit aanzienlijk toe met het aantal validators.
2/7 Hotstuff is een consensusalgoritme dat lineair kan schalen (recht evenredig met het aantal validators) door de all-to-all messaging te vermijden en een enkele "leider" in staat te stellen om met alle validators te communiceren voor consensus.
Daarom kan Hotstuff efficiënter schalen dan traditionele PBFT-consensus, maar het is kwetsbaar voor tailforking-aanvallen.
MonadBFT is de eerste tailfork-resistente implementatie van Hotstuff.
3/7 Wat is tailforking?
Tailforking gebeurt wanneer de volgende leider (validator die het volgende blok voorstelt), opzettelijk of per ongeluk de QC van het geldige blok van de vorige leider niet opneemt in hun voorstel voor het nieuwe blok. (QC staat voor quorumcertificaat, wat een bewijs is dat alle validators het vorige blok hebben goedgekeurd)
Als gevolg hiervan blijft het vorige blok, ondanks dat het geldig is en meerderheidsondersteuning heeft, ongecommitteerd en wordt het uiteindelijk wees of vervangen door een ander blok op dezelfde hoogte.
Dit verstoort het incentive-mechanisme: eerlijke voorstellen ontvangen mogelijk geen blokbeloningen of vergoedingen als hun blok wordt overgeslagen, wat oneerlijk gedrag aanmoedigt en de veiligheid van het netwerk verzwakt.

4/7 Hoe werkt MonadBFT?
→ Een leider (Alice) zendt een ondertekend blokvoorstel naar alle andere knooppunten (fan out), die de geldigheid ervan bevestigen door een ondertekende attestatie naar de volgende leider Bob te sturen (fan in).
→ Bob aggregeert de attestaties in een "Quorum Certificaat" (QC)
→ Bob zendt de QC naar alle knooppunten, die bevestigen dat ze deze hebben ontvangen door een bericht naar de 3e leider (Charlie) te sturen, die die attestaties aggregeert. Aangezien de attestaties betrekking hebben op een QC, noemen we deze nieuwe QC een QC-on-QC.
→ Charlie stuurt de QC-on-QC naar iedereen. Bij het ontvangen van de QC-on-QC weet iedereen dat Alice's blok is gefinaliseerd.

5/7 Pipelining
In het bovenstaande verhaal sturen Bob en Charlie alleen QCs of QCs-on-QCs, maar in werkelijkheid zijn de voorstellen gepipeline: Bob's bericht bevat zowel de QC voor Alice's blok als ook de inhoud van een nieuw blok.
Charlie’s bericht bevat de QC voor Bob’s blok (wat een QC-on-QC voor Alice’s blok is) en bevat ook de transacties voor een nieuw blok.
Wanneer validators een attestatie voor Bob’s bericht sturen, bevestigen ze zowel de geldigheid van Bob’s blok als de geldigheid van de QC.
Deze pipelining verhoogt de doorvoer van het netwerk, aangezien er voor elke slot een nieuw blok wordt geproduceerd.

6/7 Raptorcast: Monad's block propagatieprotocol
MonadBFT vereist dat de leider blockvoorstellen naar elke validator stuurt.
Echter, de blocks kunnen behoorlijk groot zijn: 10.000 transacties/s * 200 bytes/transactie = 2 MB/s. Direct naar 200 validators sturen zou 400 MB/s vereisen.
Idealiter zouden validators niet zo'n hoge uploadbandbreedte moeten hebben. Dit is waar Raptorcast in beeld komt.
→ Blocks worden door de leider geëraserd gecodeerd (Erasiecodering betekent dat het bericht wordt opgedeeld in een set van stukken, en het kan worden gedecodeerd vanuit een groot genoeg subset van deze stukken)
→ De leider distribueert een andere set van stukken naar alle validators in het netwerk (validators met een hogere inzet ontvangen proportioneel meer)
→ Elke validator herbroadcast hun stukken naar alle andere validators in het netwerk
Op deze manier wordt de volledige bandbreedte van het netwerk gebruikt om blockvoorstellen te propagateren.

30,64K
Boven
Positie
Favorieten