Aller au contenu principal
Attaque

Selfish mining

Le selfish mining (Eyal & Sirer, 2014) est une stratégie où un mineur garde secrètement ses blocs pour publier une chaîne plus longue ensuite. Théoriquement profitable au-delà de 25 % de hashrate. Jamais constatée à grande échelle. Vulnérabilité connue mais pas critique.

Origine

Le selfish mining est une stratégie d'attaque économique du minage Bitcoin formalisée par Ittay Eyal et Emin Gün Sirer dans leur papier "Majority is not Enough: Bitcoin Mining is Vulnerable" (Cornell, novembre 2013, publié officiellement à Financial Cryptography 2014). Le résultat a fait grand bruit : il démontre qu'un mineur peut, sous certaines conditions, gagner une part disproportionnée des récompenses sans atteindre les 51 % traditionnellement redoutés.

Comment ça fonctionne

Un mineur "selfish" qui trouve un bloc ne le publie pas immédiatement. Il commence à miner secrètement le bloc suivant tout en gardant son avance privée. Trois cas de figure :

  1. Le mineur honnête trouve un bloc : le mineur selfish publie ses blocs secrets pour invalider celui du concurrent.
  2. Le mineur selfish étend son avance : il continue à empiler des blocs secrets, augmentant son lead.
  3. Le mineur selfish décide de publier : il publie sa chaîne secrète en bloc, rendant invalides tous les blocs publics concurrents.

Le mineur honnête, qui mine à l'aveugle sur une chaîne déjà obsolète, gaspille son hashrate.

Conditions d'efficacité

Selon l'analyse originelle, le selfish mining devient profitable au-delà d'environ :

| Hashrate (γ) | Connexion réseau (γ) | Gain marginal | |--------------|----------------------|---------------| | 33 % | γ = 0 | Pas profitable | | 33 % | γ = 0.5 | Marginal | | 33 % | γ = 1 | Très profitable | | 25 % | γ ≈ 1 | Limite théorique |

Le paramètre γ représente la fraction des mineurs honnêtes qui adoptent la chaîne du selfish lors d'un match. Avec une bonne propagation et une connexion optimisée, γ peut s'approcher de 1.

Pourquoi ça n'arrive pas en pratique

Malgré le papier abondamment cité, aucune preuve solide de selfish mining à grande échelle n'a jamais été établie sur Bitcoin. Plusieurs raisons :

  • Détectabilité : des chaînes orphelines persistantes seraient visibles statistiquement.
  • Réputation : un pool découvert ferait fuir ses mineurs.
  • Coordination : il faut maintenir secrètement une infrastructure complète.
  • Risque : si la chaîne secrète n'est pas plus longue, le pool perd ses blocs.
  • Effets de réseau : la communauté Bitcoin pénaliserait fortement un pool prouvé selfish.

Les "spy mining" ou "block withholding" sur des pools, plus subtils, ont par contre été constatés.

Mitigations proposées

| Proposition | Auteur | Statut | |-------------|--------|--------| | Random tie-breaking | Eyal & Sirer | Pas implémenté | | Freshness preferred | Heilman | Pas implémenté | | Publish or perish | Diverses | Pas implémenté |

Bitcoin Core utilise la règle "first-seen" : en cas de tie (deux blocs simultanés), on garde le premier vu. C'est une mitigation partielle mais imparfaite.

Implications

Le selfish mining a deux portées :

  1. Théorique : il prouve qu'une majorité honnête n'est pas suffisante au sens strict. Le seuil de sécurité est plus bas qu'on ne le pensait.
  2. Pratique : il rappelle que la décentralisation du hashrate (pool diversity, mining décentralisé) est plus critique encore que ne le suggère l'analyse 51 %.

À retenir

Le selfish mining est une démonstration académique qui a marqué la recherche cryptoéconomique en 2014. Sa rareté pratique illustre que les incentives sociaux et réputationnels jouent autant que les incitations économiques pures dans la sécurité de Bitcoin.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.