block storm

tempesta di blocchi

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Un block storm, o tempesta di blocchi, si verifica quando la blockchain viene inondata da numero insolitamente elevato di blocchi.

Un block storm può provocare la creazione di 10 o 20 mila blocchi in un solo giorno, rispetto ai circa 144 blocchi al giorno che dovrebbero essere creati in media ogni 10 minuti in condizioni normali.

Condizioni estremamente improbabili sono necessarie affinché un block storm si verifichi sulla mainnet.

Block storm sulla testnet

Sulla testnet a causa del bug time-warp, i block storm si verificano con maggiore probabilità, e possono avvenire in modo naturale o artificioso.

Su una testnet, un block storm può verificarsi in modo naturale circa due volte all'anno.

Per creare le condizioni di un block storm nella testnet devono coincidere due eventi:

  • minimum difficulty rule (regola della difficoltà minima): se sulla testnet non viene trovato alcun blocco per 20 minuti, la difficoltà si reimposta automaticamente al minimo per un singolo blocco
  • blocco del retarget: l'algoritmo di regolazione della difficoltà (DAA, difficulty adjustment algorithm) regola la difficoltà ogni 2016 blocchi, in un blocco chiamato blocco del retarget

Secondo la distribuzione di Poisson del mining, circa il 12% dei blocchi impiega più di 20 minuti ad essere minato, questo sia sulla mainnet che sulla testnet. Tuttavia, sulla testnet, i 20 minuti che attivano la regola della difficoltà minima possono coincidere con il blocco retarget.

Quando questi due eventi coincidono e la difficoltà viene impostata al minimo nel blocco del retarget, tale bassa difficoltà non rimane solo per un blocco, ma viene mantenuta per un periodo più lungo. Di conseguenza, i miner partecipanti con tale difficoltà molto bassa mineranno molti blocchi in periodi molto inferiori ai 10 minuti.

I block storm possono anche essere provocati deliberatamente monitorando la rete e creando le condizioni necessarie, causando uno stato continuo di block storm sulla testnet. Questo comportamento è considerato un griefing attack, e eseguirlo risulta decisamente semplice, come dimostrato da diversi casi documentati.


aggiornato il 2024-05-04