Che cos’è un Sybil Attack e come funziona questo attacco sulle reti blockchain?

Che cos’è un Sybil Attack?
Un Sybil Attack è un attacco in cui una persona o un gruppo si finge molti partecipanti diversi in una rete. Per esempio, l’attaccante crea più account, indirizzi wallet, nodi o ID peer e prova così ad avere più influenza di quanta ne avrebbe normalmente un singolo partecipante.
Il problema quindi non sta solo nel numero di account. Il punto è che la rete pensa che tutte quelle identità siano indipendenti tra loro, mentre in realtà sono controllate dalla stessa parte. Se un sistema tratta ogni identità come un voto separato, un peer separato o un partecipante affidabile separato, un attaccante può approfittarne.
Il termine Sybil Attack è diventato noto grazie a una ricerca del 2002 sulle reti peer-to-peer. Quindi un Sybil Attack non è stato inventato apposta per la blockchain, ma nel mondo crypto è comunque molto importante. Molte blockchain e dApp sono sistemi aperti in cui è relativamente facile creare nuove identità digitali o nuovi indirizzi. Se la rete non controlla in altro modo quanta influenza può avere una singola parte, questo può diventare un rischio.
Esempio: Immagina che una votazione in una dApp funzioni con il principio un indirizzo wallet, un voto. Se non ci sono controlli extra, una persona può creare cento indirizzi ed esprimere cento voti. Per il sistema sembrano cento partecipanti diversi, mentre in realtà sono tutti controllati dalla stessa persona.
In breve
- In un Sybil Attack un singolo attaccante si finge molti partecipanti indipendenti.
- L’attacco funziona soprattutto contro i sistemi che contano semplicemente account, indirizzi o nodi.
- Un attaccante può così manipolare, per esempio, votazioni, reward, reputazione o connessioni tra peer.
- Molte identità extra non danno automaticamente più potere di consenso in Proof of Work e Proof of Stake.
- Le reti limitano il rischio con costi, stake, peer-scoring e controlli di accesso, tra le altre cose.
Come funziona un Sybil Attack?
Un Sybil Attack di solito inizia creando o raccogliendo molte identità pseudonime. Pseudonimo qui significa che un’identità digitale, come un ID nodo, un account o un indirizzo wallet, non mostra automaticamente quale persona o organizzazione ci sia dietro.
Poi l’attaccante fa partecipare tutte quelle identità alla rete nello stesso momento. L’obiettivo è ottenere molta influenza su qualcosa che il sistema misura o distribuisce per identità. Per esempio, possono essere connessioni di rete, accesso a certe risorse, voti o altre forme di partecipazione.
In pratica questo può succedere, per esempio, tramite le connessioni tra peer. Un nodo spesso si connette ad altri nodi, chiamati anche peer. Se un attaccante offre molti peer sotto il suo controllo, alla fine un nodo può ritrovarsi connesso soprattutto a quei peer. L’attaccante può così, per esempio, rallentare il traffico di rete, filtrarlo o far sì che il nodo abbia una visione distorta di ciò che succede nel resto della rete.
Questo può essere un problema anche per la ridondanza. La ridondanza significa che più partecipanti indipendenti svolgono lo stesso lavoro o controllano le stesse informazioni per avere maggiore sicurezza. Se però quei partecipanti sono in realtà tutti controllati dallo stesso attaccante, quel controllo extra vale molto meno.
Un Sybil Attack non richiede che ogni falsa identità giri su un computer separato. Una sola parte può gestire più identità dalla stessa infrastruttura o da ambienti tecnici diversi. Il cuore dell’attacco è che la rete tratta quelle identità come partecipanti separati e indipendenti.
Importante da sapere: un Sybil Attack non rompe automaticamente il meccanismo di consenso di una blockchain. Dipende da come viene distribuita l’influenza all’interno della rete. In alcuni sistemi una singola identità può contare relativamente molto, mentre in altri l’influenza è legata per esempio alla potenza di calcolo, allo stake o ad altre risorse scarse.
Quali conseguenze ha un Sybil Attack per le reti blockchain?
Un Sybil Attack riuscito può avere diverse conseguenze. Per esempio, un attaccante può provare a:
- manipolare votazioni o governance;
- ricevere airdrop, reward o sussidi extra;
- isolare nodi o influenzare il traffico di rete;
- manipolare artificialmente i sistemi di reputazione;
- sovraccaricare la capacità della rete e ostacolare gli utenti normali;
- ingannare i sistemi che assumono che più identità significhino anche più partecipanti indipendenti.
Un Sybil Attack può colpire soprattutto l’affidabilità e la disponibilità del livello peer-to-peer. Il livello peer-to-peer è la parte della rete in cui i nodi si scambiano transazioni, blocchi e altri messaggi. Se un nodo è connesso soprattutto a peer controllati da un attaccante, le informazioni importanti possono arrivare in ritardo, in modo incompleto o non arrivare affatto.
In una gossip network, i nodi diffondono i messaggi sempre più lontano verso altri peer. Un grande gruppo di peer malevoli può disturbare questo processo, per esempio non inoltrando i messaggi, rallentandoli o isolando un nodo bersaglio.
Un tentativo di isolamento del genere si chiama eclipse attack. In questo caso un attaccante cerca di circondare un nodo con peer che controlla lui stesso. Il nodo riceve così una visione distorta di ciò che succede nella rete, perché l’attaccante decide in gran parte quali informazioni arrivano al nodo.
Le identità Sybil possono anche mettere sotto pressione le risorse della rete. Pensa a un gran numero di connessioni, richieste o messaggi. Di conseguenza la rete può diventare più lenta o i partecipanti normali possono avere più difficoltà a prendere parte. Per questo le reti spesso usano limiti sui messaggi e sulle richieste e possono limitare o bloccare i peer che si comportano male.
Anche sopra una blockchain le cose possono andare storte. Una DAO, una dApp o un altro sistema che, per esempio, conta un indirizzo come un voto può essere vulnerabile all’abuso Sybil. Un attaccante può allora usare più indirizzi per influenzare in modo scorretto una votazione, un punteggio di reputazione, la distribuzione dei reward o un altro meccanismo.
Un Sybil Attack non è la stessa cosa di un attacco del 51%. In un attacco del 51% un attaccante cerca di ottenere il controllo della maggioranza di una risorsa rilevante, come hashpower o stake. In un Sybil Attack invece si usano molte identità che in realtà sono controllate dalla stessa parte. Quindi creare molti nodi o indirizzi da solo non basta per prendere il controllo della produzione dei blocchi o del consenso di una blockchain.
Perché le reti decentralizzate sono vulnerabili ai Sybil Attack?
Le reti decentralizzate sono soprattutto vulnerabili quando trattano le identità digitali come partecipanti indipendenti senza una soglia o un controllo extra. Questo succede perché le reti aperte permettono a chiunque di entrare senza che una parte centrale debba confermare chi sia davvero una persona.
Questo carattere aperto è proprio una parte importante di crypto. Di solito puoi creare un indirizzo, far girare un nodo o connetterti a un protocollo senza permesso. Questo abbassa la barriera d’ingresso e aiuta a limitare la censura, ma rende anche relativamente facile per un attaccante creare molte identità digitali extra.
Una chiave pubblica, un indirizzo o un ID peer può dimostrare che qualcuno controlla la relativa chiave crittografica. Però non prova che dietro ogni chiave ci sia una persona unica, un’organizzazione separata o un computer separato.
In parole semplici: la rete può vedere che esistono cento indirizzi, ma non può stabilire da sola se quei cento indirizzi siano gestiti da cento partecipanti diversi o tutti da una sola parte. È proprio qui che un Sybil Attack prova ad approfittarne.
Le blockchain permissioned hanno di solito una barriera più alta, perché i partecipanti devono prima essere autorizzati per ottenere certi ruoli o diritti. Però anche queste reti non sono automaticamente protette dai Sybil Attack. Se il controllo di accesso è debole, un attaccante può comunque ottenere più identità.
Come possono le reti blockchain riconoscere i Sybil Attack?
Le reti blockchain non possono sempre riconoscere con certezza un Sybil Attack, ma possono segnalare schemi sospetti. Per farlo, i nodi possono per esempio osservare il comportamento dei peer e il modo in cui le connessioni sono distribuite nella rete.
Tra i segnali sospetti ci possono essere, per esempio:
- inviare molti messaggi non validi;
- non inoltrare spesso i messaggi;
- violare ripetutamente le regole della rete;
- fare un numero insolito di richieste in poco tempo;
- molti peer che si connettono dallo stesso indirizzo IP o dalla stessa infrastruttura.
Alcune reti usano il peer-scoring per questo. Un nodo assegna localmente agli altri peer un punteggio in base al loro comportamento. Un peer che inoltra messaggi validi e rispetta le regole della rete può ottenere un punteggio migliore. Un peer che crea problemi ripetutamente può invece essere valutato peggio. A seconda del protocollo, un nodo può decidere di fidarsi meno di quel peer, interrompere la connessione o ignorare i messaggi futuri.
Anche la collocazione IP può essere un segnale. Se un numero insolito di peer arriva dallo stesso indirizzo IP o dallo stesso ambiente di rete, può indicare che sono meno indipendenti di quanto sembrino. Però non è una prova certa di un Sybil Attack. I partecipanti legittimi possono usare la stessa infrastruttura, mentre un attaccante può distribuire le sue identità su diversi indirizzi IP e server.
Alcuni sistemi analizzano anche la struttura di una rete di account o peer. Un grande gruppo di identità che è connesso soprattutto tra di loro o che si comporta in modo molto simile può sembrare sospetto. Anche questi schemi però non sono automaticamente la prova di un attacco.
Per questo il rilevamento è di solito solo una parte della protezione contro Sybil. Una rete deve avere anche misure per limitare l’influenza delle identità sospette, per esempio interrompendo le connessioni, scegliendo altri peer, rallentando le richieste o rendendo la partecipazione dipendente da una risorsa scarsa.
Come si possono prevenire i Sybil Attack?
Prevenire del tutto i Sybil Attack in una rete aperta di solito non è realistico, ma si può renderli molto più difficili e meno efficaci. Questo si chiama Sybil-resistenza: il design fa in modo che molte identità extra non diano automaticamente molta più influenza.
La regola principale è semplice: non collegare l’influenza solo al numero di account, indirizzi o nodi. Meglio collegarla a qualcosa di scarso o difficile da falsificare. Per esempio, lavoro di calcolo, stake, accesso verificato o reputazione che deve essere costruita nel tempo.
Anche il livello di rete ha bisogno di protezione. Alcune misure possibili sono per esempio:
- connettersi a un gruppo diversificato di peer;
- valutare i peer con il peer-scoring;
- mettere limiti alla dimensione dei messaggi e alla velocità delle richieste;
- controllare i messaggi prima di inoltrarli;
- interrompere le connessioni o assegnare penalità in caso di abuso.
Inoltre bisogna guardare anche al design di un’applicazione. Una regola come un indirizzo wallet, un voto è spesso troppo debole per una decisione importante di una DAO, soprattutto quando è economico creare nuovi indirizzi. In quel caso un sistema può usare per esempio il peso del voto, l’accesso o altre soglie.
La protezione funziona di solito meglio su più livelli. Proof of Work, per esempio, può aiutare a proteggere il consenso contro i Sybil Attack, ma non impedisce automaticamente che un nodo si connetta soprattutto a peer malevoli. Il controllo dell’identità può limitare il numero di account, ma porta con sé anche altri rischi e compromessi.
Che ruolo hanno Proof of Work e Proof of Stake?
Proof of Work e Proof of Stake rendono molto più difficile un Sybil Attack contro il consenso, perché l’influenza non dipende semplicemente dal numero di identità, ma da una risorsa scarsa e costosa.
Con Proof of Work l’influenza dipende dal lavoro di calcolo dimostrabile. In pratica questo significa che un attaccante non ottiene molto con mille indirizzi IP o nodi in più. Per avere più influenza sulla produzione dei blocchi serve più hashpower, e quella potenza di calcolo costa denaro ed energia.
Con Proof of Stake l’influenza dei validatori dipende dalla quantità di stake che mettono in gioco. Su Ethereum i validatori depositano ETH in un deposit contract per partecipare al consenso. In caso di certe forme di abuso dimostrabile del protocollo, una parte di quello stake può essere tolta. Questo si chiama slashing.
Dividere la stessa quantità di stake tra molte identità di validator non dà automaticamente più potere di consenso totale. L’influenza economica resta legata alla quantità totale di stake. Una parte che possiede una grande quota di tutto lo stake può naturalmente avere molta influenza.
PoW e PoS proteggono quindi soprattutto il livello di consenso contro i Sybil Attack. Però non risolvono automaticamente tutti gli altri rischi Sybil. Peer discovery, gossip, sistemi di reputazione e votazioni con un account per voto possono comunque aver bisogno di protezioni aggiuntive.
Che ruolo hanno i controlli di identità e i sistemi di reputazione?
I controlli di identità rendono più difficile creare facilmente molte identità. Un sistema può per esempio collegare un’identità digitale a una verifica, a un certo ruolo o a diritti di accesso specifici. Questo si adatta soprattutto alle blockchain permissioned, dove i partecipanti devono prima essere autorizzati.
Un controllo del genere però ha anche un lato negativo. I sistemi devono proteggersi anche da iscrizioni automatiche di massa, documenti falsificati, identità sintetiche, furto d’identità e immagini manipolate. Inoltre controlli di identità molto rigidi possono ridurre privacy, accessibilità e resistenza alla censura.
Un sistema di reputazione funziona in modo diverso. Qui un account non ottiene subito molta influenza, ma la costruisce con un comportamento buono, duraturo e verificabile. Un account nuovo ha quindi meno peso di un partecipante che si comporta in modo affidabile da più tempo.
Questo aiuta solo se qualcuno non può semplicemente ricominciare da capo con un nuovo account dopo un cattivo comportamento. Questo si chiama whitewashing. Un sistema di reputazione può rendere più difficile questa pratica con, per esempio, una quota iniziale, un tempo di attesa, una cronologia accumulata o altri segnali che non si possono creare di nuovo subito.
La reputazione e le relazioni tra account possono dare segnali utili, ma non sono una soluzione completa. La protezione dipende dalla qualità dei dati usati e da quanto facilmente un attaccante può manipolare quei segnali.
Esempi di Sybil Attack in crypto
I Sybil Attack e gli abusi Sybil si vedono spesso in crypto, soprattutto nei sistemi in cui più account possono dare un vantaggio extra. Questo succede per esempio con airdrop, reward e meccanismi di voto o finanziamento.
Un esempio noto è Gitcoin Grants. Gitcoin usa il quadratic funding, in cui il numero di donatori distinti può influenzare quanti fondi di matching riceve un progetto. Gli attaccanti possono provare a usare più account per far sembrare che un progetto sia sostenuto da più persone uniche. In diversi round di grant, Gitcoin ha rilevato attività Sybil sospette e ha introdotto misure per dare meno influenza a questi account.
Anche negli airdrop il comportamento Sybil è molto comune. Per la distribuzione dei token di LayerZero, nel 2024 sono stati cercati attivamente wallet gestiti dalla stessa persona o organizzazione. L’obiettivo era evitare che un singolo utente ricevesse una parte sproporzionatamente grande della distribuzione dei token usando un gran numero di wallet.
Un esempio concreto arriva da CyberConnect. Lì è stato trovato un gruppo di più di 1.700 indirizzi i cui costi di transazione erano stati finanziati da un solo indirizzo. Gli indirizzi potevano poi partecipare separatamente a un programma di reward. Per il sistema sembravano molti partecipanti diversi, mentre l’attività indicava che gli indirizzi erano controllati insieme.
Questi esempi mostrano che un Sybil Attack non serve sempre a prendere il controllo del consenso di una blockchain. Spesso un attaccante prova invece ad abusare delle regole economiche di un’applicazione facendo sembrare una sola parte come molti utenti diversi.
Conclusione
Un Sybil Attack ruota attorno a un problema semplice ma importante: una rete vede molte identità digitali, mentre in realtà dietro potrebbe esserci un solo attaccante. Questo è particolarmente pericoloso quando una rete blockchain, una dApp o una DAO conta semplicemente le identità e le tratta automaticamente come indipendenti.
Per il consenso, Proof of Work e Proof of Stake offrono Sybil-resistenza, perché lì l’influenza dipende da hashpower o stake invece che dal numero di nodi o account. Per il livello peer-to-peer e per le applicazioni servono però anche altre misure, come connessioni tra peer diverse, peer-scoring, limiti e regole chiare su voti e reputazione.
In breve: la partecipazione aperta resta preziosa per crypto, ma richiede un design in cui le identità extra non diano automaticamente più influenza. Più è difficile ottenere più potere con nuovi account, indirizzi o nodi economici, più una rete è resistente a un Sybil Attack.