Transaktionsfinalitet i PoS-netværket
HodlX gæstepost Send dit indlæg
Transaktionssikkerhed i blockchain er ofte sammenkoblet med problemet med blokfinaliteten.
En transaktionsmodtager skal være sikker på, at transaktionen ikke tilbageføres, og afsenderen ikke er i stand til at udføre et dobbelt forbrug. I tilfælde af fiat-valutaer er finaliteten afgrænset af loven ved at gøre valutaen til et lovligt betalingsmiddel. I designene baseret på PoW (bevis på arbejde) er blokken aldrig endelig.
Satoshi Nakamoto har vist, at sandsynligheden for en spontan kort gaffel med længden N>6 blokke er ubetydelige, så man kan hævde, at Bitcoin har en sandsynlig finalitet. Forskere har det dog vist at blokfinalitet faktisk er økonomisk: en transaktion er endelig, når de krævede omkostninger til tilbageførsel er større end den potentielle fortjeneste fra det dobbelte forbrugsangreb.
Nogle gange hævder blockchain-eksperter, at nogle blockchains baseret på PoS (bevis for indsats) ikke har problemet med block-finalitet, da blokke i dem er “øjeblikkeligt endelige”. Denne påstand er falsk. Forking er et uundgåeligt problem med enhver blockchain, uanset hvilke konsensusregler der vælges.
Et godt eksempel er det nylige historie med Steem-blockchain. Netværkssamfundet blev opdelt i to gensidigt fjendtlige lejre. På trods af konsensusreglerne blev blockchain forked. Hver gruppe opretholdt sin egen gaffel og blokerede saldi i deres modstanderes tegnebog. Tilsyneladende havde gaffelen, der fulgte reglerne i den oprindelige protokol, mistet duellen, da dens markedsværdi blev mindre end gaffelens markedsdækning. Således kan vi konkludere, at finaliteten i en PoS-blockchain har en økonomisk understøttelse svarende til en PoW-blockchain. Udviklere af Ethereum 2.0 del den samme vision.
De hævder dog, at Casper-protokollens skridsikringsmekanisme ikke kun forhindrer noget, der står på spil, men gør dobbeltanvendelsesangreb dyrere. Ikke desto mindre åbner kompleks protokollogik døren til mere sofistikerede angreb med dobbelt forbrug.
Forenklet angreb med dobbelt forbrug
Den enkleste form for dobbeltudgiftsangrebet på PoS-blockchain for den ondsindede angriber er at låse i indsatser dobbelt så mange midler som ærlige deltagere har. Hvis den ondsindede skuespiller B lykkes med at gøre dette i et netværk, der ligner Ethereum 2.0, er det sandsynligt, at han inden for det specifikke shard-udvalg får dobbelt så mange indsatser som ærlige validatorer. Så den ondsindede aktør kontrollerer ⅔ af stemmerne i shard-udvalget. I Ethereum 2.0 er dette antal stemmer tilstrækkeligt til at “færdiggøre” blokken. Antag, at han vil dobbelt bruge nogle beløb på mønter i den skår. Han annoncerer en transaktion, hvor B sender mønter til brugeren A. Denne transaktion kommer ind i blokken underskrevet af ærlige validatorer. B tilføjer en del af sine stemmer, så blokken bliver valgt.
I konsensus baseret på PoS skal ⅔ af stemmerne i udvalget være bekræftende for at “færdiggøre” blokken. Ifølge vores antagelse er halvdelen af angribernes stemmer ⅓ af stemmerne i komiteen. Sammen med ærlige validatorer tilføjer det op til ⅔. Det er en tærskel, der kræves for at “færdiggøre” blokken. Så A lærer, at transaktionen bliver “afsluttet” og frigiver varer til B. Derefter tilbagefører B transaktionen ved at oprette en gaffel og validere den ved hjælp af alle sine stemmer i komitéen. I henhold til Casper-protokollen skal halvdelen af B’s andel i skåret, der blev brugt i begge gafler, skæres ned. Designere af Casper-protokollen hævder, at dette er omkostningerne ved angrebet.
I dette forenklede scenario mister angriberen halvdelen af sin andel i skåret. Dette beløb svarer også til andelen af ærlige validatorer i denne del. Antag, at der er N-skår i netværket. Derefter mister angriberen 1 / 2N af sin samlede indsats eller 1 / N af den samlede indsats af ærlige interessenter. Så jo flere skår i netværket jo billigere er angrebet med dobbelt forbrug for angriberen. Hvis man betragter denne værdi som et mål for netværkssikkerheden, falder sikkerheden med faktoren N. Bemærk, at dette ikke er den egenskab, der hævdes at være den mulige løsning på skalerbarhedstrilemmaet. Imidlertid hævder udviklere af Ethereum 2.0, at omkostningerne ved dette angreb er så store, at faktor 1 / N ikke påvirker det.
Sofistikerede angreb med dobbelt forbrug
Angrebsscenariet beskrevet i det foregående afsnit er ikke unikt. Den ondsindede skuespiller kunne udføre endnu mere sofistikerede angreb med dobbelt forbrug. Forfattere af Casper-protokollen hævder, at en del af angribernes stake altid bliver skåret ned. Er det sandt? Svaret er “nej”. Alt, hvad der sker i netværket, registreres i blockchain. Hvis blockchain ikke indeholder nogen registrering af ondsindede handlinger, hvordan kan man beskylde nogen for at udøve ondsindet opførsel?
I den næste version af det dobbelte angreb forhindrer den ondsindede skuespiller at skære sin indsats. For at skære indsatsen skal ærlige noder indeholde den respektive post i den specifikke kæde, der bruges til at koordinere interessenter. Det kaldes Beacon-kæden. Hvis Beacon-kæden følger den tilladelsesløse PoS-konsensus, kræves ⅔ af validatorens stemmer for at inkludere posten i blockchain. Så længe den ondsindede skuespiller kontrollerer ⅓ i Beacon-kædeudvalget, kan han undgå at skære. Hvis han forhindrer at skære indtil det tidspunkt, hvor hans indsats låses op, er hans angreb næsten gratis. Spørgsmålet er: hvor længe skal han holde sin pæl låst?
I den nuværende specifikation af Ethereum 2.0 er indsatsen låst i et halvt år. Angriberen kunne dog starte sit angreb i slutningen af stavlåsintervallet. En mulig løsning er at indstille et tidsinterval inden frigivelsen, i hvilket tidsrum staven ikke kan vælges i shard-komitéen og derefter vænne sig til et dobbelt-udgiftsangreb. Denne modforanstaltning reducerer imidlertid omkostningseffektiviteten ved indsats. I løbet af dette tidsinterval skal alle berørte interessenter få kompensation for deres låste midler. Alligevel er disse midler “deaktiveret” og deltager derfor ikke i blokvalidering. Desuden kan den ondsindede skuespiller bruge denne løsning til hans fordel, da han nøje kan vælge et tidspunkt for hans angreb. Han kan låse sine indsatser samtidigt, så hans indsatser bliver “aktiveret” og “deaktiveret” samtidigt. I modsætning hertil har ærlige interessenter ofte en del af deres indsats deaktiveret og derfor udelukket fra valideringsprocessen. Så det bliver endnu lettere at få ⅔ stemmer i udvalgene.
Man kan argumentere for, at i denne version af angrebet kan ærlige noder observere, at ⅓ af indsatsen i Beacon chain-komitéen bruges til at udføre angrebet. De kunne tage handlinger, der ikke er anført i Casper-protokollen for at straffe angriberen. En første mulighed ville være at forsøge at låse flere midler i staven. Det andet er at starte en ny gaffel. Den første mulighed er ikke en levedygtig sag, da angriberen kan udføre “censur”.
Han kan bruge sine stemmer i Beacon-kædeudvalget for at forhindre tildeling af nye indsatser. Således kan han holde ⅔ af stemmerne i shard-udvalg så længe han vil. Den anden mulighed er levedygtig, men det er et misbrug af netværksprotokollen, der blev accepteret af deltagerne i starten. Hvis en uafhængig observatør forsøger at finde ud af, hvad der foregår i netværket, baseret på de data, der er registreret i blockchain, undlader han ikke at skelne ondsindede aktører fra ærlige validatorer.
Før vi sætter en stopper for denne diskussion, skal vi overveje en ændret version af det sidste angreb. Den nye version er en kombination af et langtrækkende angreb og et intet, der står på spil. Endnu en gang bruger den ondsindede skuespiller en del af sin pæl til at forkaste en skårkæde. Men i dette tilfælde afslører han ikke en ny kæde til ærlige noder. Så venter han, indtil hans kompromitterede indsats låses op. Nu sælger han sin kompromitterede andel til de hensynsløse deltagere, stopper den ærlige skårkæde ved hjælp af sine stemmer i komitéen og afslører derefter sin gaffel til andre skårdeltagere. I henhold til protokollen skal den kæde, der opretholdes af ærlige validatorer, opgives. Så den ændrede version af angrebet er vellykket. Bemærk, at stangen, der bruges til at forkæle kæden, sælges. Således har den ondsindede skuespiller undgået at skære igen. Desuden blev hans andel i Beacon-kæden ikke kompromitteret i denne version af angrebet.
Man kan foreslå en rettelse til den modificerede version af angrebet baseret på brug af kontrolpunkter. Ifølge denne rettelse indeholder kæden kontrolpunktsblokke, der “ikke kan tilbageføres.” Denne løsning er dog kontroversiel, da begrebet “kontrolpunkt” ikke fungerer i indstillingen af blockchain. Som vi ved, bliver blokke i blockchain aldrig fuldstændigt afsluttet. Forking er blockchainens naturlige ejendom, og enhver gaffel vil have sine egne “fuldstændigt afsluttede kontrolpunkter”. Derfor er brugen af begrebet “kontrolpunkt” ofte forvirrende og vildledende. Hvis noden skal stole på kontrolpunktet, skal den stole på “kontrolpunktudbydere.” Det kræver introduktion af et element af tillid i et angiveligt tillidsløst netværk.
Vores konklusion er, at angriberen, der tildelte en betydelig mængde magt i form af indsatser, kan lancere ødelæggende angreb i netværket, samtidig med at man undgår at skære mekanik. Denne form for angreb svarer meget til et 51% angreb, der kan udføres i blockchain baseret på PoW.
Vinod Manoharan er en teknologivirksomhed og grundlægger og administrerende direktør for Jax Multiversal Holdings, et holdingselskab, hvis portefølje inkluderer onlinespilvirksomheder, betalingsgateways og Blockchain-teknologivirksomheder. Manoharan er også grundlæggeren af JAX.Netværk, en teknisk opstart i Ukraine med fokus på Blockchain-teknologi og mere specifikt at løse det berygtede Blockchain-skalerbarhedstrilemma.
Skrevet i samarbejde med Iurii Shyshatskyi, Chief Scientific Officer hos JAX.Network.
Fremhævet billede: Shutterstock / Lopyryev Artem / Kuklos