Cos`è un errore di checksum? La guida al rilevamento delle vulnerabilità crittografiche.

Cos`è un errore di checksum? La guida al rilevamento delle vulnerabilità crittografiche.

Un errore di checksum significa che i dati non hanno superato un test matematico. Nel mondo delle criptovalute, questo test è molto meno rigoroso di quanto la maggior parte degli utenti immagini. L'EIP-55 di Ethereum rileva circa un errore di battitura su quattromila. Il Base58Check di Bitcoin è circa mille volte più robusto. Bech32 è ancora più robusto. Eppure nessuno di questi checksum protegge un portafoglio dall'attacco che nel 2025 ha effettivamente sottratto 713 milioni di dollari dai portafogli personali, perché l'indirizzo malevolo presente negli appunti o nella cronologia delle transazioni è di per sé una stringa valida che supera il checksum. Questo è ciò che rappresenta un errore di checksum, il motivo per cui i portafogli di criptovalute lo mostrano e perché un checksum superato non è una prova di sicurezza.

La risposta breve sugli errori di checksum nella crittografia

Un errore di checksum indica all'utente che un indirizzo, un file o una frase di recupero non corrispondono al test di integrità integrato. Il portafoglio, l'exchange o il programma di installazione si rifiutano di agire perché un bit è stato alterato, un carattere è stato digitato in modo errato o i dati sono stati manomessi. Nel mondo delle criptovalute, l'errore rileva errori di battitura e corruzioni accidentali. Non rileva un indirizzo digitato correttamente ma controllato da un malintenzionato. La più grande perdita di valore di un portafoglio documentata nel 2025, pari a 50 milioni di dollari in USDT a dicembre, è stata causata da una vittima che ha copiato un indirizzo con un checksum perfettamente valido, ma che apparteneva a un truffatore.

Cos'è (e cosa non è) un checksum

Pensate al checksum come a una piccola ricevuta per un pacchetto molto più grande, un blocco di dati ridotto a pochi byte tramite un calcolo noto. Il mittente allega il checksum originale. Il destinatario esegue lo stesso calcolo, ottiene un nuovo checksum e lo confronta. Una corrispondenza significa che l'integrità dei dati è stata mantenuta. Una mancata corrispondenza indica un danneggiamento dei dati da qualche parte: un bit invertito nella RAM, un download interrotto prematuramente, un carattere digitato in modo errato. La mancata corrispondenza è ciò che i wallet e gli installer segnalano come errore di checksum. I valori del checksum calcolati non corrispondono al valore previsto allegato ai dati originali (il valore memorizzato pubblicato dal mittente). Nessun errore di dati è sfuggito, perché i controlli di base di rilevamento degli errori e di integrità sono stati attivati.

Dal punto di vista meccanico, i checksum classici sono operazioni aritmetiche, non crittografiche. La variante più semplice suddivide i dati in parole ed esegue l'addizione in complemento a uno (il trucco del "complemento a uno" utilizzato nel celebre checksum TCP/IP di Internet del 1988). Leggermente più sofisticati sono la parità longitudinale, l'algoritmo di Fletcher e i CRC (controlli di ridondanza ciclica), tutti strettamente correlati tra loro. Un controllo di ridondanza ciclica è veloce ed efficace in caso di errori di trasmissione. Per la moderna verifica dell'integrità dei file, la scelta dominante è Adler-32 (veloce, senza crittografia) o MD5 o SHA (più lenti, ma molto più robusti). Strumenti software come `sha256sum`, `md5sum` e HashCheck sono i metodi più utilizzati dagli utenti per eseguire una verifica.

Ecco il limite. Un checksum può dimostrare che i dati non sono stati accidentalmente corrotti o manomessi a livello di byte. Nient'altro. Non può dimostrare chi ha creato i dati. SHA-256, un hash crittografico, è molto più robusto di un CRC. Tuttavia, non dimostra l'autore; per questo, l'editore firma l'hash con una chiave privata. Gli utenti di criptovalute confondono spesso i due concetti. "L'indirizzo ha superato la convalida del checksum" non è la stessa cosa di "l'indirizzo appartiene alla persona giusta". Chiunque può generare un indirizzo Ethereum o Bitcoin valido. Solo il detentore della chiave privata controlla i fondi. La verifica del checksum conferma che l'indirizzo è ben formato. A quale portafoglio punta? Questa è un'altra questione, con una risposta diversa.

Errore di checksum

Come funzionano gli algoritmi di checksum crittografici: EIP-55, Base58Check, Bech32

Nel mercato delle criptovalute al dettaglio dominano tre schemi principali, ognuno dei quali è stato concepito con una priorità diversa.

EIP-55 è il checksum di Ethereum per le stringhe con maiuscole e minuscole. È stato proposto da Vitalik Buterin e Alex Van de Sande il 14 gennaio 2016. Il suo funzionamento consiste nel convertire l'indirizzo in minuscolo, calcolare l'hash della stringa in minuscolo con Keccak-256 e quindi convertire nuovamente in maiuscolo le lettere esadecimali (A-F) in base ai bit dell'hash. Solo le 15 lettere esadecimali di un indirizzo tipico possono essere invertite, fornendo allo schema circa 15 bit di controllo effettivi. EIP-1191, proposto nel marzo 2018, estende EIP-55 con l'ID della catena in modo che il checksum di un indirizzo su Ethereum e su una catena derivata come Rootstock non entrino in conflitto.

Base58Check è lo schema legacy di Bitcoin. Aggiunge un checksum di 4 byte alla fine dell'indirizzo codificato, calcolato come i primi 4 byte del doppio SHA-256 del byte di versione più il payload. Il prefisso "1" su un indirizzo P2PKH corrisponde a un byte di versione 0x00; il prefisso "3" su un indirizzo P2SH corrisponde a 0x05. L'alfabeto Base58 stesso omette i caratteri 0, O, I e l, che possono generare confusione visiva. L'implementazione della logica di checksum per Base58Check consiste in una singola chiamata SHA-256 seguita da un confronto di 4 byte.

Bech32 (BIP-173) è lo schema di indirizzamento SegWit di Pieter Wuille e Greg Maxwell, datato 2017. Il suo codice BCH a 6 caratteri garantisce il rilevamento di ogni errore che interessa fino a quattro caratteri e mantiene il tasso di errore non rilevato al di sotto di uno su un miliardo per corruzioni più lunghe. Una sottile scoperta del 2020 (che l'inserimento o la cancellazione di una 'q' prima di una 'p' finale può preservare il checksum) ha motivato BIP-350 Bech32m, che Taproot (versione witness 1) utilizza ora.

Schema Anno Esempio di indirizzo Verifica la taglia Rilevamento tipico degli errori di battitura
EIP-55 / EIP-1191 2016 / 2018 `0xAbCd...EfGh` ~15 bit Circa il 99,97% (1 errore su 4.000)
Base58Check (P2PKH) 2009 `1A1zP1...` 32 bit ~99,99999998%
Base58Check (P2SH) 2012 `3J98t1...` 32 bit ~99,99999998%
Bech32 (SegWit v0) 2017 `bc1q...` ~30 bit ≥99,999999999% di errori di 4 caratteri
Bech32m (Taproot) 2020 `bc1p...` ~30 bit stesso, corregge l'inserimento di qp

La tabella contiene la coppia di numeri più importante dell'articolo. Considerateli come budget di progettazione, non come garanzie di sicurezza.

Perché EIP-55 rileva solo 1 errore di battitura su 4.000

La specifica EIP-55 cita esplicitamente il tasso di errore: la probabilità che un errore di battitura casuale in un indirizzo Ethereum superi il checksum è dello 0,0247%, ovvero circa uno su 4.049. Non si tratta di un bug. È ciò che si ottiene con 15 bit di controllo effettivi. Il sistema è stato aggiornato nel 2016, progettato per essere retrocompatibile con il formato di indirizzo esadecimale a 40 caratteri esistente. La compatibilità ha comportato una riduzione della capacità di rilevamento.

Per i flussi di pagamento pratici, questo di solito va bene. Un utente che digita o incolla l'indirizzo una sola volta ha un'altissima probabilità di essere scoperto in caso di errore. Un utente che incolla lo stesso indirizzo compromesso dieci volte di seguito supererà il checksum ogni volta, perché l'indirizzo è valido. La differenza di mille volte rispetto al Base58Check di Bitcoin, e l'ulteriore passo avanti verso Bech32, è il motivo per cui una seria esperienza utente per i wallet considera la verifica dell'indirizzo Ethereum come responsabilità dell'utente piuttosto che del protocollo.

Errori di checksum al di fuori della crittografia: WinRAR, BIOS, firmware, disco rigido

La maggior parte delle persone che digitano "errore di checksum" su Google non sono utenti di criptovalute. Probabilmente si trovano alle prese con WinRAR, con una schermata di avvio del PC bloccata o con un NAS instabile. Stessa terminologia, ma con una posta in gioco completamente diversa.

WinRAR è il classico esempio. Scarichi un file .rar, lo estrai e ti compare un messaggio di errore relativo alla mancata corrispondenza del CRC. L'archivio è danneggiato. Di solito la causa è banale: un download interrotto, una connessione Wi-Fi instabile, un settore danneggiato sul disco, a volte un malware che ha intaccato il file durante il trasferimento. Scarica nuovamente il file dalla fonte. Esegui CHKDSK. Se proprio devi recuperare il contenuto, l'opzione "mantieni i file danneggiati" di WinRAR estrarrà una copia parziale del file.

Un errore di checksum del BIOS o del CMOS all'avvio del PC è quasi sempre dovuto alla batteria a bottone CR2032 sulla scheda madre che si è scaricata. A volte un aggiornamento del firmware non riuscito ha danneggiato la NVRAM. Altre volte l'utente ha rimosso un modulo di RAM e l'impronta digitale dell'hardware memorizzata non corrisponde più. Sostituire la batteria. Caricare le impostazioni predefinite. Il computer si avvia.

ZFS e Btrfs generano errori di checksum quando un disco rigido restituisce un blocco che non corrisponde all'hash memorizzato. Questi errori sono letteralmente l'intento progettuale: la degradazione silenziosa dei dati che finalmente viene alla luce.

Ciò che dovrebbe davvero mettere in allarme un utente di criptovalute è un errore di checksum del firmware su un portafoglio hardware. Il bootloader di Trezor verifica nuovamente la firma del firmware a ogni avvio. L'elemento di sicurezza di Ledger fa lo stesso. "Firma non valida" o "Errore sconosciuto (0x6984)" di Ledger durante l'installazione indicano chiaramente che il firmware rilevato non corrisponde a quello previsto dalla chiave root. Fermati. Scollega. Scarica nuovamente il firmware dall'URL del fornitore che conosci a memoria. Chiunque ignori questo avviso si è appena esposto a un attacco alla catena di fornitura.

Quando un errore di checksum indica una manomissione e quando non la indica.

L'intuizione fondamentale di questo articolo è che i checksum rilevano bene gli errori casuali. Non servono a nulla contro un attaccante che ha scelto intenzionalmente un indirizzo valido.

Il rapporto sui crimini crittografici di Chainalysis stima che nel 2025 i furti di criptovalute ammontino a 3,4 miliardi di dollari, di cui 1,5 miliardi derivanti dal singolo attacco hacker a Bybit. I portafogli personali hanno perso 713 milioni di dollari, con circa 80.000 vittime coinvolte in circa 158.000 incidenti. Quasi nessuna di queste perdite è stata causata da checksum non validi dovuti a errori di battitura, poiché exchange e portafogli li rifiutano nel campo di input. Le perdite sono state causate da due attacchi che i checksum validi non possono bloccare.

Il primo metodo è l'avvelenamento degli indirizzi. L'attaccante invia una piccola transazione di pochissimi dollari da un indirizzo appena generato, progettato per condividere le prime e le ultime cifre di un indirizzo utilizzato frequentemente dalla vittima. La volta successiva che la vittima copia un indirizzo dalla cronologia delle transazioni, quello contraffatto si trova in cima alla lista. L'indirizzo ha un checksum perfettamente valido. Il portafoglio risulta attivo. I fondi finiscono nelle mani dell'attaccante. Secondo una cifra di Chainalysis, citata dalla Carnegie Mellon, nel 2025 si sono registrati 270 milioni di tentativi di avvelenamento degli indirizzi, che hanno preso di mira 17 milioni di potenziali vittime. L'incidente del 20 dicembre 2025, in cui un trader ha perso 50 milioni di dollari in USDT, è avvenuto circa 26 minuti dopo che la vittima aveva inviato una piccola transazione di prova; il test non l'ha salvata, perché l'indirizzo contaminato era già stato inserito nella cronologia.

Il secondo tipo di malware è quello che si impossessa degli appunti. Malware come la campagna GitVenom, documentata da Kaspersky, sostituiscono silenziosamente qualsiasi indirizzo di criptovaluta copiato negli appunti con uno controllato dall'attaccante. Le perdite stimate dovute al solo GitVenom hanno raggiunto circa 485.000 dollari alla fine del 2024, con vittime in Brasile, Turchia e Russia. Anche in questo caso, l'indirizzo sostituito ha un checksum valido. Il portafoglio non presenta anomalie. Dati critici, come la destinazione di un trasferimento di grandi dimensioni, sfuggono al controllo di integrità perché non sono mai stati alterati o corrotti; sono stati semplicemente sostituiti con qualcosa di altrettanto valido.

attacco del 2025 Meccanismo Il checksum lo ha bloccato?
Avvelenamento da indirizzo (50 milioni di dollari USA, 20 dicembre 2025) Indirizzo contraffatto simile a quello originale nella cronologia delle transazioni No, l'indirizzo contraffatto ha un checksum EIP-55 valido.
Trucchi per il dirottamento degli appunti (GitVenom, circa 485.000 dollari) Sostituisce il malware l'indirizzo copiato No, l'indirizzo sostitutivo è valido.
Truffe con bot MEV a tema ChatGPT (>30 ETH, >100 vittime) Il contratto consigliato dall'IA svuota il portafoglio No, il checksum non ha alcun modo di verificare l'intento del contratto.
Truffe assistite dall'IA in generale 4,5 volte più redditizio rispetto ai sistemi tradizionali No, si basa sull'ingegneria sociale, non sulla correzione degli errori di battitura.

Un checksum verde indica che l'indirizzo è ben formato. Non significa che sia il tuo. Questa distinzione è la cosa più importante che un utente di criptovalute può imparare da questo articolo.

Frase di recupero BIP-39: perché le parole valide non superano comunque il checksum

Anche le frasi di recupero BIP-39 hanno un checksum, e questo può sorprendere gli utenti durante il recupero. Lo schema codifica gli ultimi bit di SHA-256 sull'entropia del portafoglio nell'ultima parola della frase. Una frase di 12 parole ha solo 4 bit di checksum. Una frase di 24 parole ne ha 8. Per 12 parole, ciò significa che solo una scelta casuale dell'ultima parola su sedici supererà la convalida. "Sono certo che la mia frase sia corretta, ma il portafoglio la rifiuta" è quasi sempre dovuto a un errore di battitura all'inizio della frase o alla parola sbagliata dall'elenco BIP-39 di 2.048 parole.

La parte hardware è più rigorosa. Trezor e Ledger riverificano le firme del firmware a ogni avvio tramite codice di sicurezza, non sul dispositivo host. Una mancata corrispondenza della firma viene considerata una manomissione e il firmware si rifiuta di essere eseguito. Questo è il comportamento corretto. Chiunque riscontri un errore di checksum o di firma del firmware in un portafoglio hardware dovrebbe considerarlo un allarme, non un semplice malfunzionamento.

Errore di checksum

Come verificare e correggere un errore di checksum: le migliori pratiche

La lista di controllo è breve. Lo stesso vale per la maggior parte dei wallet e degli exchange.

Indirizzo Ethereum. Copialo dal canale verificato della controparte (il suo profilo pubblicato, non un messaggio privato su Telegram). Incollalo. Attendi la convalida del wallet. Invia 1 $ come transazione di prova. Attendi la conferma. Quindi invia l'intero importo. Kraken memorizza ogni indirizzo ETH salvato in formato EIP-55 per impostazione predefinita. Binance e Coinbase rifiutano gli input con checksum non valido nella fase di invio, prima che qualsiasi trasmissione raggiunga la blockchain. MetaMask utilizza EIP-55 per impostazione predefinita e mostra un avviso sugli indirizzi modificati manualmente; storicamente accettava anche indirizzi in minuscolo, cosa che ha generato diverse segnalazioni di bug su GitHub per anni.

Indirizzo Bitcoin. È preferibile utilizzare Bech32 (`bc1...`) rispetto ai formati legacy `1...` e `3...` quando la controparte lo supporta. La capacità di rilevamento degli errori è significativamente maggiore e il formato dell'indirizzo è più difficile da interpretare erroneamente.

Download del file. Binario del portafoglio, immagine del firmware del portafoglio hardware, ISO di Linux. Calcola l'hash SHA-256 localmente. Confrontalo con il valore firmato dall'editore, non con la copia stampata accanto al link di download. Un attacco man-in-the-middle che controlla la pagina di download può scambiarli. Conserva una copia di backup di qualsiasi file verificato su cui fai effettivamente affidamento. Rilevare gli errori in seguito è molto più facile quando hai una copia funzionante su una chiavetta USB o una stampa cartacea.

Errore di checksum o di firma del firmware del portafoglio hardware. Non ignorare l'errore. Scarica nuovamente il firmware dall'URL documentato dal fornitore. Prova un cavo diverso. Prova una porta USB diversa. Riavvia Ledger Live o Trezor Suite. Se l'errore persiste, contatta l'assistenza del fornitore via e-mail. Cercare "risolvere Ledger 0x6984" su forum di terze parti è un luogo dove gli aggressori si nascondono.

Una frase da ricordare. Un checksum valido dimostra che i dati non sono stati accidentalmente corrotti. Non dimostra che i dati siano quelli che si voleva inviare.

Qualsiasi domanda?

No. Gli attacchi di avvelenamento degli indirizzi utilizzano indirizzi validi, generati di recente, che superano tutti i checksum rilevanti. Il portafoglio risulta positivo, la transazione viene confermata e i fondi finiscono nelle mani dell`attaccante. La protezione consiste nel verificare l`indirizzo di destinazione carattere per carattere (in particolare la parte centrale della stringa) e nell`inviare una piccola transazione di prova prima di qualsiasi trasferimento di importo elevato.

EIP-55 è il checksum di Ethereum che gestisce sia lettere maiuscole che minuscole, adattato al formato di indirizzo esadecimale a 40 caratteri esistente nel 2016. Ha circa 15 bit di controllo e un tasso di errore di battitura dello 0,0247%. Base58Check è il checksum di Bitcoin, più vecchio e con aggiunta di 4 byte, circa mille volte più robusto. Vincoli di progettazione diversi hanno portato a livelli di sicurezza differenti.

Qualcosa è cambiato tra mittente e destinatario. Cause comuni: download parziale, un bit alterato nella RAM, un settore danneggiato sul disco rigido, un aggiornamento del firmware non riuscito, un errore di battitura in un indirizzo manuale o una manomissione intenzionale. Il controllo non può dirti quale evento si è verificato, ma solo che uno di questi si è verificato.

Copia nuovamente l`indirizzo dalla fonte verificata. Incollalo in un nuovo campo. Attendi la convalida del portafoglio. Invia una piccola transazione di prova per confermare la destinazione. Se l`indirizzo viene ripetutamente rifiutato, potresti trovarti sulla rete sbagliata (ad esempio, un indirizzo Bitcoin incollato in un portafoglio Ethereum).

Nei download o nelle impostazioni del BIOS, di solito indica problemi risolvibili: un download danneggiato, una batteria CMOS scarica, un settore del disco danneggiato. Nei portafogli hardware può indicare una manomissione del firmware, quindi è consigliabile interrompere l`utilizzo finché il firmware non viene verificato essere pulito. Nei campi degli indirizzi crittografici, l`errore indica che il sistema di protezione è attivo.

Un errore di checksum significa che un dato (un indirizzo, un download, una frase di recupero, un`immagine del firmware) non ha superato un controllo matematico integrato. Il mittente ha allegato una piccola impronta digitale. Il destinatario l`ha ricalcolata, ottenendo un numero diverso, e il portafoglio o il programma di installazione si è rifiutato di proseguire.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.