Retenció de blocs: l'atac que cap share no delata
Un miner envia shares reals i amaga la que hauria estat un bloc. Descobriu què costa, qui ho paga, per què algú ho fa i com es detecta.
Què és un atac de retenció de blocs?
És un miner que envia totes les shares ordinàries però amaga la que hauria estat un bloc. El pool paga les shares. El bloc no arriba mai.
Cada share que envieu a un pool és una solució real que no ha arribat a l'objectiu del bloc. L'objectiu del bloc és el llindar més exigent que ha de superar un hash per fer un bloc. De tant en tant una solució també el supera, i aquella share és un bloc sencer.
Una share així sembla igual que totes les altres fins que el pool la comprova.
Un atacant fa la feina honestament i envia totes les shares ordinàries. En silenci, llença la que hauria estat un bloc. El pool compta les shares i les paga. El bloc que havia de rebre no arriba mai.
Per què una sola share no el delata?
Res de l'atacant sembla incorrecte en cap share individual. El maquinari és real, i el hashrate també. Les shares són vàlides i arriben al ritme correcte. El pool pot examinar una share i no veure-hi res de res.
El que falta és una absència, i una absència només es fa visible amb el temps. Un miner amb una part determinada del hashrate del pool hauria de trobar aproximadament aquesta part dels seus blocs.
En una hora, això no diu res. Trobar blocs és aleatori, i els períodes tranquils són normals. En un període prou llarg, diu moltíssim.
Què costa, i qui ho paga?
El pool perd la recompensa del bloc que li corresponia. Però la pèrdua no recau realment sobre el pool. Aquesta és la part que val la pena entendre en qualsevol pool.
- Amb un sistema proporcional, la ronda continua fins que algú altre troba un bloc. Tothom qui era a la ronda ha treballat en una ronda que ha durat més del que tocava. Per tant, tothom guanya una mica menys per unitat de feina. El cost es reparteix entre els miners honestos.
- Amb un sistema de pagament per share, és pitjor per a l'operador. El pool ja ha pagat cada share de la seva butxaca, i compta que els blocs arribin. Un atac sostingut és una sagnia directa per a l'operador. Històricament, aquest és el cas que més ha preocupat.
Per què ho faria algú?
L'atacant també llença la recompensa del bloc. A primera vista és fer-se mal a si mateix. Només té sentit si l'atacant hi guanya en algun lloc que el pool no veu.
El motiu habitual és la competència. Algú que gestiona el seu propi pool pot llogar hashrate o apuntar-lo a un rival i ofegar-ne els resultats. Així el seu pool sembla més afortunat en comparació. Les shares que l'atacant continua cobrant paguen el sabotatge.
En una variant més subtil, l'atacant reté el bloc en lloc de llençar-lo. Continua minant a sobre en privat, i l'envia més tard en un moment que li convé. Això és més difícil de fer. Cal una part gran del hashrate perquè valgui la pena provar-ho.
Com es detecta?
La detecció és estadística, perquè no hi ha cap altre senyal. Compareu els blocs que ha trobat un participant amb els blocs que, segons el seu nombre de shares, hauria d'haver trobat. Feu-ho en una finestra prou llarga perquè la sort es compensi.
La finestra és la part difícil.
- Si la feu curta, la mala sort ordinària sembla un atac. Els miners honestos serien acusats constantment.
- Si la feu llarga, un atacant real actua una temporada abans que els números parlin.
No hi ha cap manera enginyosa d'evitar aquest compromís. Ve de l'atzar, no del programari.
Per això un detector seriós planteja la qüestió a una persona en lloc d'actuar tot sol. Un bloqueig automàtic basat en una estadística algun dia bloquejarà algú que només ha tingut mala sort. Deixar fora un miner legítim és pitjor que el mateix atac.
Què vol dir això per a un miner honest?
Gairebé res, i val la pena dir-ho clarament.
Les vostres shares es compten i es paguen igual en tots dos casos. Tenir mala sort no és cap falta i no ho pot ser. En qualsevol finestra curta, la majoria de miners tenen mala sort.
Una sèrie de rondes en què heu aportat molt i el pool no ha trobat res és variància normal. La xifra de sort de les estadístiques del pool us mostra com n'és, de normal.
Aquest atac és un dels motius pels quals als pools els importa qui els apunta hashrate. També és per què un pool que publica honestament els seus blocs i la seva sort és més fàcil de creure. Tot el que necessiteu per comprovar el pool és a la pàgina de blocs.