Block withholding: de aanval die geen share verraadt
Een miner stuurt echte shares en verbergt de share die een blok was geweest. Wat dat kost, wie betaalt, waarom iemand het doet en hoe het ontdekt wordt.
Wat is een block withholding attack?
Het is een miner die elke gewone share stuurt, maar de share verbergt die een blok zou zijn geweest. De pool betaalt voor de shares. Het blok komt nooit aan.
Elke share die u naar een pool stuurt, is een echte oplossing die het blokdoel net niet haalde. Het blokdoel is de strengere lat waar een hash overheen moet om een blok te vormen. Af en toe haalt een oplossing ook die lat, en dan is die share een heel blok.
Zo'n share ziet er hetzelfde uit als alle andere, tot de pool hem controleert.
Een aanvaller doet het werk eerlijk en stuurt elke gewone share. Stilletjes gooit hij de share weg die een blok zou zijn geweest. De pool telt de shares en betaalt ervoor. Het blok dat de pool had moeten krijgen, komt nooit aan.
Waarom kan één share het niet verraden?
Aan geen enkele losse share ziet de aanvaller er verkeerd uit. De hardware is echt, en de hashrate ook. De shares zijn geldig en komen in het juiste tempo binnen. De pool kan één share bekijken en helemaal niets zien.
Wat ontbreekt, is een afwezigheid, en een afwezigheid valt pas op over tijd. Een miner met een bepaald deel van de hashrate van de pool zou ongeveer datzelfde deel van de blokken moeten vinden.
Over een uur zegt dat niets. Blokken vinden is toeval, en stille periodes zijn gewoon. Over een lang genoeg venster zegt het heel veel.
Wat kost het, en wie betaalt?
De pool verliest de blokbeloning die hij had moeten krijgen. Maar het verlies komt niet echt bij de pool terecht. Dit is het deel dat de moeite waard is om te begrijpen, op elke pool.
- Bij een proportioneel schema loopt de ronde door tot iemand anders een blok vindt. Iedereen in de ronde werkte aan een ronde die langer duurde dan nodig was. Dus verdient iedereen iets minder per eenheid werk. De kosten worden over de eerlijke miners verdeeld.
- Bij een pay-per-share-schema is het erger voor de beheerder. De pool heeft elke share al uit eigen zak betaald en rekent erop dat de blokken binnenkomen. Een langdurige aanval is een directe aderlating voor de beheerder. Historisch is dit het geval waar mensen zich het meest zorgen over maakten.
Waarom zou iemand dit doen?
De aanvaller gooit ook de blokbeloning weg. Op het eerste gezicht is dat pure zelfbeschadiging. Het heeft alleen zin als de aanvaller ergens wint waar de pool het niet kan zien.
Het gebruikelijke motief is concurrentie. Wie een eigen pool runt, kan hashrate huren of op een rivaal richten en diens resultaten drukken. De eigen pool lijkt dan in vergelijking meer geluk te hebben. De shares die de aanvaller nog steeds uitbetaald krijgt, betalen de sabotage.
In een subtielere variant houdt de aanvaller het blok vast in plaats van het weg te gooien. Hij mint er in het geheim op verder en dient het later in, op een moment dat hem uitkomt. Dat is moeilijker. Het vraagt een groot deel van de hashrate om de poging waard te zijn.
Hoe wordt het ontdekt?
Ontdekking is statistisch, omdat er geen ander signaal is. Vergelijk de blokken die een deelnemer gevonden heeft met de blokken die hij volgens zijn aantal shares had moeten vinden. Doe dat over een venster dat lang genoeg is om het geluk te laten uitmiddelen.
Het venster is het moeilijke deel.
- Maak het kort, en gewone pech lijkt op een aanval. Eerlijke miners zouden voortdurend beschuldigd worden.
- Maak het lang, en een echte aanvaller is een tijd bezig voordat de cijfers spreken.
Er is geen slimme manier om deze afweging te omzeilen. Ze komt voort uit het toeval, niet uit de software.
Daarom legt een serieuze detector de vraag aan een mens voor in plaats van zelf in te grijpen. Een automatische ban op basis van een statistiek zal ooit iemand bannen die gewoon pech had. Een eerlijke miner offline halen is erger dan de aanval zelf.
Wat betekent dit voor een eerlijke miner?
Bijna niets, en dat is het waard om duidelijk te zeggen.
Uw shares worden hoe dan ook op dezelfde manier geteld en betaald. Pech hebben is geen overtreding en kan dat ook niet zijn. In elk kort venster heeft de meerderheid van de miners pech.
Een reeks rondes waarin u veel bijdroeg en de pool niets vond, is normale variantie. Het geluksgetal in de statistieken van de pool laat zien hoe normaal dat is.
Deze aanval is een van de redenen waarom pools letten op wie er hashrate op hen richt. Het is ook waarom een pool die zijn blokken en zijn geluk eerlijk publiceert, makkelijker te vertrouwen is. Alles wat u nodig hebt om de pool te controleren, staat op de blokkenpagina.