DoS (Denial of Service)
Un DoS rend un service indisponible (vs DDoS distribué). Vise par exemple à bloquer un nœud ou un canal Lightning. Bitcoin Core a un système de banscore pour mitiger.
Définition
Une attaque par déni de service (Denial of Service, DoS) vise à rendre un système indisponible. Contrairement au DDoS qui distribue l'attaque sur des milliers de machines, le DoS « simple » peut provenir d'une seule source. La distinction est moins importante en 2026 (la quasi-totalité des attaques sérieuses sont distribuées), mais le DoS unitaire reste pertinent pour des attaques ciblées de protocole, où il s'agit moins de saturer la bande passante que d'exploiter une faiblesse logicielle.
DoS spécifiques à Bitcoin
Bitcoin présente des surfaces d'attaque très différentes du DoS web classique :
- Inv flooding : envoyer massivement des annonces de transactions, dont la plupart sont invalides ou déjà connues.
- Block stalling : annoncer un nouveau bloc puis ne jamais l'envoyer, ralentissant la synchronisation.
- Mempool flooding : envoyer des milliers de transactions « limites » à très bas fee rate.
- CompactBlock loop : exploiter le protocole BIP-152 pour forcer des recalculs coûteux.
- Memory exhaustion : envoyer des messages très lourds pour saturer la RAM du nœud.
Protections natives dans Bitcoin Core
Bitcoin Core a accumulé depuis 2010 un arsenal de mitigations :
| Protection | Effet |
|---|---|
| Banscore | Score de pénalité par pair, ban à 100 |
| banlist.dat | Persistance des IP bannies |
| setban RPC | Bannissement manuel par opérateur |
| Limites de mémoire (maxmempool, dbcache) | Plafonnent l'usage de RAM |
| Limites de message (MAX_PROTOCOL_MESSAGE_LENGTH) | Rejette les paquets trop gros |
| Validation rapide (CheckBlockHeader) | Rejette les blocs invalides avant validation complète |
| Outbound peers garantis | Évite isolation par ban abusif |
DoS sur Lightning Network
Lightning est nettement plus exposé. Quelques exemples :
- Channel jamming : envoyer des HTLCs qui ne seront jamais résolus, bloquant la liquidité du canal.
- Probing payment : sonder un nœud par milliers de paiements échoués pour cartographier ses canaux.
- Force-close fee exhaustion : provoquer des fermetures forcées coûteuses en frais on-chain.
Les solutions évoluent : LDK et Core Lightning testent depuis 2024 des mécanismes type « reputation » et upfront fees pour limiter ces attaques.
L'éthique du DoS dans Bitcoin
Curieusement, Bitcoin est en partie conçu pour rendre le DoS coûteux. Une transaction nécessite des frais, donc envoyer 100 000 transactions a un coût économique réel. C'est le principe d'« anti-DoS par les frais ». Mais ce mécanisme a ses limites quand les attaques visent des canaux ouverts (Lightning) ou des messages P2P (qui sont gratuits par construction).
À retenir
Le DoS contre un nœud Bitcoin est rarement durable : il y a trop de pairs disponibles, et le réseau est anti-fragile. Mais sur Lightning ou sur des services dérivés (mempool.space, BTCPay Server), le DoS reste une menace concrète et active. Voir aussi DDoS et channel jamming.
Termes lies
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.