Er et flerlags konsensussystem i stand til at give netværksmodstandsdygtighed til 51 procentangreb op til 90 procent?
HodlX gæstepost Send dit indlæg
For nylig har vi set flere og flere blockchain-netværk blive offer for en 51 procent angreb. Dette angreb er muligt, fordi tærsklerne kan være ret lave og udgøre lidt mere end 50 procent af hashrate. Når en hacker overtager et netværk, er der mange måder, det kan misbruges på. For eksempel kan angriberen udføre et dobbelt forbrug. Det er dog vigtigere, at mens netværket styres af ondsindede brugere, kan dets operationer ikke betragtes som normale. I det væsentlige gør sådanne angreb blockchain ude af drift.
Dette forklarer, hvorfor det er en meget rettidig opgave at udvikle en ny konsensus med høj modstandsdygtighed over for 51 procent angreb. I sin nylige artikel, En guide til 99% fejltolerant konsensus, Vitalik Buterin foreslår en måde at øge tærsklen på 51 procent angreb fra 51 procent af aktier eller hashrate til 99 procent. Nøglen er introduktionen af yderligere validatorer, kaldet observatører, der ikke deltager i blokgenerering. Observatører udfører postvalidering af blockchain og kan advare netværket, hvis der findes kompromitterede blokke. Til postvalidering foreslår Vitalik, at 512 noder vælges tilfældigt hvert 4.096 sekund af den latensafhængige algoritme.
Selvom denne tilgang helt sikkert forbedrer netværksbeskyttelsen, har den betydelige fejl. De mest kritiske svagheder er afhængighed af den nødvendige tid til konsensus, afhængighed af netværksgennemstrømning og tidssynkronisering mellem observatører.
Her er minimumsintervallet for D en empirisk værdi, gennem hvilken observatører kan udveksle data korrekt. Beregning af D tager højde for dårlig internetforbindelse og observatørers processorkraft. Blokke betragtes kun som gyldige, hvis bekræftelsestidsintervallet divideret med D ikke er mindre end antallet af observatører, der underskrev denne blok.
Da D-værdien er minimumet af alle mulige, er der en potentiel situation, når en blok kun bekræftes af en observatør under D-intervallet. Så tid, der kræves til konsensus, afhænger lineært af antallet af observatører. Dette lægger væsentlige begrænsninger på skalerbarhed og decentralisering af netværket.
I tilfælde af et begrænset antal observatører (Buterin foreslår kun at bruge 512 observatører), er validering kun pseudo-decentraliseret. Væsentlige eller ubegrænsede stigninger i antallet af observatører kan føre til betydeligt højere krævet D-tid. I så fald ville validering tage meget længere tid eller endda blive meningsløs.
Moderne kommunikationskanals båndbredde er stadig begrænset, hvilket forhindrer eftervalidering af store blokke. Hvis vi antager, at transaktionsstørrelsen er 200 byte, hvilket faktisk er ret lille og kun mulig i finansielle transaktioner uden smarte kontrakter, og at der er 50.000 transaktioner i en blok (moderne blockchains forsøger aktivt at nå det niveau), er blokstørrelsen 10Mb. At sende denne mængde data inden for et sekund kræver en 100 Mbps kanal. Trunk-kanaler er bestemt i stand til at garantere dette gennemstrømningsniveau, men regionale forbindelser ville være meget langsommere. Dette ville gøre validering enten umulig på grund af kravet om at få signaturer inden for en bestemt tidsperiode eller pseudo-decentraliseret, hvor kun observatører med de bedste trunk-kanaler vælges.
En anden svaghed er obligatorisk synkronisering af tid mellem observatører, hvilket øger netværkssårbarheden over for potentielle angreb, da ingen blockchain-netværk bruger sikre protokoller for tidssynkronisering (såsom SNTP). Arbejde med usikret NTP skaber flere muligheder for usynkronisering af observatørers puljer, der senere kan sabotere valideringen fuldstændigt.
I et forsøg på at eliminere problemerne beskrevet ovenfor og forbedre netværkets modstandsdygtighed fra 51 procent angreb op til 90 procent, kunne en tilgang, der bruger yderligere roller, give en løsning til netværkskonsensus. Alternativt til løsningen beskrevet af Vitalik Buterin, i dette tilfælde ville et netværk kræve fem roller, der dynamisk er tildelt noder.
På grund af denne opsætning kræver løsning af det byzantinske fejltoleransproblem (BFT) for at få 67 procent af aktierne på flere lag at have kontrol over 90 procent af aktierne. Desuden er modstandsdygtigheden så høj, at det tager mere end 53 procent af aktierne, før ondsindede transaktioner overhovedet vises.
Selv med den usandsynlige fremkomst af netværket med 90 procent af egenhånds ejet aktie, vil kunderne begynde med tilbagevirkende kraft at afvise blokke og stoppe med at stole på det kompromitterede netværk og effektivt opdele netværket i to. Da klienter, der bruger netværket, er dens mest værdifulde del, giver det kun 90 procent af kontrollen over indsatsen kontrol over det døde netværk uden klienter, mens de resterende 10 procent bliver de 100 procent af møntholderne i det nye netværk.
Netværket bruger asynkron blokvalidering for at eliminere afhængigheden af konsensus tid på antallet af validatorer. Den næste blok begynder at generere, så snart den aktuelle er genereret og har afsluttet grundlæggende eftervalidering. Fuld validering sker på forskellige lag i tandem (ved verifikator, torrent, peer og klientroller). Hver gang der identificeres en ondsindet blok, ruller blockchain tilbage til den sidste bekræftede tilstand og genopbygges fra rå transaktioner.
Spørgsmålet om potentielt dårlige internetforbindelser mindskes ved hjælp af BitTorrent-lignende teknologi. Data overføres over hele netværket i fragmenter, hvilket sikrer hurtigere valutakurser i regioner med lav båndbredde. Dette muliggør datalevering til selv kunstigt isolerede regioner.
Opløsning til tidssynkroniseringsudfordringen er dobbelt: intern procestid (i flåter) bruges hvor det er muligt, og tidssynkronisering udføres via beskyttet proprietær SNTP-protokol.
Afslutningsvis er præsentation af forskellige roller i konsensus, som beskrevet ovenfor, sandsynligvis den mest perspektiviske tilgang i dag og kan forhåbentlig forbedre sikkerheden i blockchain markant.
Gleb Nikitin
Gleb Nikitin, teknisk leder og medstifter af #MetaHash