Bitcoin se konsensusmeganisme verwys na die feit dat dit, ten minste teoreties, baie moeilik is vir 'n mynwerker (of mynpoel) om sy eie rekenkrag te gebruik om bedrog of sabotasie te beoefen. Bitcoin se konsensusmeganisme berus op die beginsel dat die oorgrote meerderheid mynwerkers, in hul eie beste belang, die hele Bitcoin-stelsel sal handhaaf deur eerlik te myn. Wanneer 'n mynwerker of groep mynwerkers egter met 'n groot hoeveelheid rekenkrag in die stelsel na vore kom, kan hulle die doel bereik om die sekuriteit en betroubaarheid van die Bitcoin-netwerk te ondermyn deur die Bitcoin-konsensusmeganisme aan te val.
Dit is die moeite werd om daarop te let dat konsensusaanvalle slegs die toekomstige konsensus van die hele blokketting, of hoogstens die konsensus van 'n paar blokke in die onlangse verlede (tot 10 blokke terug), kan beïnvloed. En namate tyd aangaan, word dit al hoe minder waarskynlik dat die hele Bitcoin-blokketting gemanipuleer sal word. In teorie kan 'n blokkettingvurk baie lank word, maar in die praktyk is die rekenkrag wat benodig word om 'n baie lang blokkettingvurk te implementeer, baie, baie groot, en namate die hele Bitcoin-blokketting geleidelik groei, kan vorige blokke basies as onmoontlik om deur die vurk gemanipuleer te word beskou word. Konsensusaanvalle beïnvloed ook nie die gebruiker se privaatsleutel of die enkripsie-algoritme (ECDSA) nie. Ook kan 'n konsensusaanval nie bitcoins uit ander beursies steel nie, bitcoins sonder 'n handtekening uitbetaal nie, bitcoins herverdeel nie, vorige transaksies verander nie, of bitcoin-hourekords verander nie. Die enigste impak wat 'n konsensusaanval kan hê, is om die mees onlangse blokke (tot 10) te beïnvloed en die toekomstige blokgenerering te beïnvloed deur middel van diensonderbreking.
'n Tipiese scenario van 'n konsensusaanval is die "51%-aanval". Stel jou 'n scenario voor waarin 'n groep mynwerkers 51% van die rekenkrag van die hele Bitcoin-netwerk beheer, en hulle span saam met die voorneme om die hele Bitcoin-stelsel aan te val. Aangesien hierdie groep mynwerkers die meerderheid blokke kan genereer, kan hulle opsetlik 'n blokkettingvurk skep om 'n spesifieke transaksie te "dubbel-betaal" of te blokkeer, of 'n spesifieke beursie-adres aan te val deur middel van diensonderbreking. 'n Blokkettingvurk/dubbelbetalingsaanval is wanneer 'n aanvaller 'n onlangse transaksie ontken en 'n nuwe blok voor daardie transaksie herbou, waardeur 'n nuwe vurk geskep word en dubbele betaling moontlik gemaak word. Met die waarborg van voldoende rekenkrag, kan 'n aanvaller terselfdertyd ses of meer onlangse blokke manipuleer, waardeur die andersins onmoontlike transaksies in hierdie blokke laat verdwyn. Dit is die moeite werd om daarop te let dat dubbele betalings slegs gemaak kan word op transaksies wat in beursies wat deur die aanvaller besit word, voorkom, aangesien slegs die eienaar van die beursie 'n wettige handtekening vir dubbele betalings kan genereer. 'n Aanvaller kan slegs 'n dubbele betalingsaanval op sy eie transaksies uitvoer, maar so 'n aanval is winsgewend wanneer die transaksie ooreenstem met 'n onomkeerbare aankoop.
Kom ons kyk na 'n werklike voorbeeld van 'n "51%-aanval". In Hoofstuk 1, het ons gepraat oor 'n transaksie tussen Alice en Bob vir 'n koppie koffie met Bitcoin. Bob, die eienaar van die koffiewinkel, is bereid om vir Alice 'n koffie te voorsien wanneer haar oordrag by nul bevestig is, omdat die risiko van 'n "51%-aanval" op so 'n klein transaksie klein is in vergelyking met die onmiddellikheid van die kliënt se aankoop (Alice kan die koffie onmiddellik kry). Dit is dieselfde rede waarom die meeste koffiewinkels nie die tyd en moeite neem om vir 'n handtekening te vra vir kredietkaartbetalings onder $25 nie, want dit is duurder om vir 'n kredietkaart-handtekening te vra as die risiko dat die kliënt die kredietkaartbetaling kan herroep. Gevolglik is die risiko van dubbele betaling vir groot transaksies wat met Bitcoin betaal word baie hoër, aangesien die koper (aanvaller) die werklike transaksie kan kanselleer deur 'n vervalste transaksie oor die netwerk te versprei wat identies is aan die UTXO van die werklike transaksie. Die dubbele betaling kan op twee maniere gedoen word: óf voor die transaksie bevestig word, óf deur die aanvaller deur middel van 'n blokkettingvurk. Persoon wat die 51%-aanval uitvoer, kan die transaksie wat op die ou vurk aangeteken is, kanselleer en dan 'n transaksie van dieselfde bedrag op die nuwe vurk hergenereer, en sodoende dubbele betaling bewerkstellig.
Om hierdie tipe aanval te vermy, moet handelaars wat groot items verkoop wag totdat die transaksie ses netwerk-wye bevestigings ontvang het voordat hulle die item aflewer. Alternatiewelik, die handelaar moet 'n derde party, multi-handtekeningrekening vir die transaksie gebruik en ook wag totdat die transaksie-rekening veelvuldige bevestigings oor die netwerk ontvang het voordat die item afgelewer word. Hoe meer bevestigings 'n transaksie het, hoe moeiliker is dit vir 'n aanvaller om dit deur middel van 'n 51%-aanval te manipuleer. Vir groot transaksies is die gebruik van Bitcoin-betalings gerieflik en doeltreffend vir beide kopers en verkopers, selfs as die goedere 24 uur na betaling versend word. Na 24 uur, sal die transaksie ten minste 144 netwerk-wye bevestigings hê (wat die waarskynlikheid van 'n 51%-aanval effektief verminder).
Benewens die "dubbele betaling"-aanval, is 'n ander aanvalsienario in die konsensusaanval die diensonderbreking aan 'n spesifieke bitcoin-adres. 'n Aanvaller wat die meerderheid rekenkrag in die stelsel het, kan 'n spesifieke transaksie maklik ignoreer. As die transaksie bestaan in 'n blok wat deur 'n ander mynwerker gegenereer is, kan die aanvaller opsetlik die blok vurk, dit hergenereer, en die transaksie wat hy wil ignoreer uit die blok verwyder. Die gevolg van hierdie aanval is dat, solank as wat hierdie aanvaller die oorgrote meerderheid rekenkrag in die stelsel het, hy alle transaksies wat deur 'n spesifieke beursie-adres of groep adresse gegenereer word, deurlopend kan inmeng ten einde diens aan daardie adresse te ontken.
Let daarop dat die 51%-aanval nie noodwendig 51% van die aanvaller se rekenkrag vereis om te begin nie, soos sy naam aandui; trouens, dit kan steeds probeer word om so 'n aanval te begin, selfs as dit minder as 51% van die stelsel se rekenkrag het. Die rede waarom dit 51%-aanval genoem word, is bloot omdat wanneer die aanvaller se rekenkrag die drempel van 51% bereik, sy aanvalspoging byna sekerlik sal slaag. In wese is 'n konsensusaanval soos 'n stelsel waarin al die mynwerkers se rekenkrag in twee groepe verdeel word, een met eerlike rekenkrag en een met aanvaller-rekenkrag, en albei groepe meeding om die eerste te wees om nuwe blokke op die blokketting te bereken, behalwe dat die aanvaller-rekenkrag noukeurig saamgestelde blokke bereken wat sekere transaksies bevat of uitsluit. Dus, hoe minder rekenkrag die aanvaller het, hoe kleiner is die kans dat hy die duel wen. Aan die ander kant, hoe meer rekenkrag 'n aanvaller het, hoe langer die ketting van gevurkte blokke wat hy opsetlik kan skep, en hoe meer onlangse blokke wat gemanipuleer kan word, of toekomstige blokke onder sy beheer. Sommige sekuriteitsnavorsingsgroepe het statistiese modelle gebruik om te konkludeer dat 30% van die netwerk se rekenkrag genoeg sou wees om 'n 51%-aanval te loods.
Die dramatiese toename in netwerk-wye rekenkrag het dit onmoontlik gemaak vir die Bitcoin-stelsel om deur 'n enkele mynwerker aangeval te word, aangesien dit nie meer moontlik is vir 'n enkele mynwerker om selfs 1% van die netwerk se rekenkrag te beset nie. Maar sentraal-beheerde mynpoele stel die risiko bekend dat 'n poeloperateur vir wins sal aanval. Die poeloperateur beheer die generering van kandidaat-blokke, en beheer ook watter transaksies in die nuut-gegenereerde blokke geplaas word. Op hierdie manier het die poeloperateur die mag om spesifieke transaksies of dubbele betalings uit te sluit. Indien hierdie mag deur die poeloperateur op 'n subtiele en gemeet manier misbruik word, dan kan die poeloperateur konsensusaanvalle loods en daaruit voordeel trek sonder om opgemerk te word.
Daar is egter nie alle aanvallers daar buite vir wins nie. Een moontlike scenario is dat die aanvaller bloot die hele Bitcoin-stelsel probeer ontwrig, eerder as vir wins. So 'n aanvaller wat daarop gemik is om die Bitcoin-stelsel te ontwrig, sal 'n enorme belegging en sorgvuldige beplanning vereis, so dit is denkbaar dat so 'n aanval waarskynlik van 'n regering-befondsde organisasie sou kom. Net so mag sulke aanvallers mynmasjiene koop, mynpoele bedryf, en konsensusaanvalle soos diensonderbreking uitvoer deur die bogenoemde mag van die poeloperateur te misbruik. Maar, soos die Bitcoin-netwerk se rekenkrag geometries en vinnig groei, het hierdie teoreties haalbare aanvalsienario's al hoe moeiliker om in die praktyk te implementeer geword. Onlangse opgraderings aan die Bitcoin-stelsel, soos die P2Pool-mynprotokol, wat daarop gemik is om mynbeheer verder te desentraliseer, maak ook hierdie teoreties haalbare aanvalle al hoe moeiliker.
Daar is geen twyfel dat 'n ernstige konsensusaanval sekerlik vertroue in die Bitcoin-stelsel sal verminder, wat op sy beurt tot 'n daling in die Bitcoin-prys kan lei. Die Bitcoin-stelsel en verwante sagteware verbeter egter ook voortdurend, so die Bitcoin-gemeenskap sal ook waarskynlik vinnig reageer op enige konsensusaanval ten einde die hele Bitcoin-stelsel meer robuus en betroubaar as ooit te maak.
