Selfish Mining consiste à retenir des blocs valides et à choisir quand les publier. Le but est d’obtenir une part des blocs acceptés supérieure à sa part de puissance de calcul. Cela ne permet pas de créer des bitcoins en dehors des règles et ne garantit aucun bénéfice : les connexions, les autres mineurs et les coûts comptent aussi.
Pierre exploite un Mining Pool : des mineurs mettent leur puissance en commun et partagent les récompenses. Un bloc regroupe des transactions en un lot ajouté à l’historique commun. Le groupe de Pierre trouve un bloc valide. Normalement, il l’annonce pour permettre aux autres de poursuivre dessus. Cette fois, il le garde secret et cherche son successeur. Anne et les autres continuent sur l’ancien bloc commun. Ils ignorent que Pierre connaît déjà une autre suite possible. Une branche privée commence ainsi, sans créer de nouvelle monnaie. [1] [2]
Pierre peut trouver le prochain bloc, mais Anne peut le devancer. Les machines de minage répètent les calculs en modifiant des données du bloc jusqu’à obtenir un résultat numérique qui respecte la limite imposée. Le minage n’est pas une course régulière où la machine la plus rapide gagne toujours : chaque découverte est aléatoire. La stratégie réagit donc aux deux branches, en continuant discrètement, en publiant des blocs ou en abandonnant sa branche. Hashrate désigne la cadence des essais de calcul. En posséder une plus grande part améliore les chances sans garantir le prochain bloc. [1] [4]
Supposons que Pierre cache un bloc et qu’Anne publie le sien sur le même prédécesseur. Pierre révèle alors son bloc, créant une égalité. Des mineurs peuvent apprendre l’existence de blocs différents en premier et prolonger des branches différentes. Les découvertes suivantes et la circulation des messages influencent l’issue. Ce qui compte est le travail cumulé d’une branche valide, pas le nombre de ses partisans ; à difficulté égale, davantage de blocs représente davantage de travail. La difficulté indique à quel point ce résultat est difficile à trouver en moyenne. Une difficulté plus élevée exige davantage d’essais en moyenne, sans fixer le temps nécessaire pour chaque bloc. [1] [3] [4]
Si la branche de Pierre l’emporte, le bloc concurrent d’Anne peut rester hors de l’historique accepté : c’est un Stale Block. Il était valide, mais sa récompense ne peut pas être dépensée sur la chaîne acceptée. Pierre cherche à faire perdre proportionnellement plus de travail aux autres qu’à lui-même. Les transactions du bloc abandonné ne disparaissent pas forcément : toujours valides et compatibles avec l’historique retenu, elles peuvent être incluses plus tard. [1] [4]
Ittay Eyal et Emin Gün Sirer ont décrit la stratégie connue dans un article de 2013. Ils comparaient la part des blocs acceptés d’un mineur à sa part de puissance. Cela diffère du revenu horaire après paiement de l’électricité. La rétention peut ralentir la chaîne publique ; l’ajustement ultérieur de difficulté modifie alors l’économie de la stratégie. Cyril Grunspan et Ricardo Pérez-Marco ont ensuite souligné le rôle du temps et de cet ajustement. Une part relative supérieure ne promet donc pas de bénéfice net immédiat. [1] [7]
Dans le modèle original, α représente la part de puissance de l’attaquant. γ est la part de puissance des autres mineurs qui rejoint sa branche en cas d’égalité. Avec γ = 0, le seuil d’avantage relatif est 1/3 ; avec γ = 1/2, il est 1/4. Le modèle prévoit un avantage au-dessus du seuil correspondant. Ce ne sont pas des frontières de sécurité universelles du réseau réel. D’autres stratégies, délais et hypothèses changent le résultat : la puissance et le choix de branche des autres comptent ensemble. [1] [6]
Un bloc reçu rapidement a plus de chances d’attirer des mineurs en cas d’égalité. Un avantage de réseau peut donc compléter la puissance de calcul. Un groupe offrant durablement de meilleurs rendements pourrait attirer davantage de mineurs et renforcer la concentration. C’est une incitation possible, pas la preuve que tout grand pool attaque ni que les autres le rejoindront forcément. Un paramètre de modèle n’est pas non plus une mesure réelle d’un exploitant donné. [1] [6] [8]
Anne peut prendre le dessus avant que la stratégie de Pierre réussisse. Pierre ne touche alors aucune récompense malgré l’énergie consommée et les machines utilisées. Un seuil calculé pour une moyenne de long terme ne promet pas de gagner chaque manche. Quelques réussites ne prouvent pas davantage la rentabilité après coûts et changements de conditions. Le bloc retenu reste une possibilité risquée, pas une récompense rangée en sécurité dans un tiroir. [1] [7]
Un Full Node, un logiciel qui vérifie lui-même les règles de Bitcoin, rejette toujours les transactions invalides et la création de bitcoins en dehors des règles. Pierre doit fournir un véritable Proof of Work, démontrer le travail de calcul exigé et respecter les mêmes règles qu’Anne. La stratégie porte sur l’historique valide qui l’emportera. Elle ne donne ni les clés privées d’autrui, ces valeurs numériques secrètes utilisées pour signer des transactions, ni le droit de dépenser les fonds de ces personnes. Un avantage de minage ne brise donc pas les règles de propriété. [2] [5]
Une diffusion plus rapide réduit les délais et certaines inégalités de réseau. Compact Blocks s’appuie par exemple sur les transactions déjà connues pour transmettre un bloc avec moins de données. Cela ne supprime pas Selfish Mining. La recherche étudie aussi les égalités et les incitations économiques. Un bloc abandonné ne prouve pas à lui seul une attaque : deux groupes honnêtes peuvent réussir presque simultanément. Il faut davantage de contexte pour juger un soupçon. La question reste de savoir si les règles récompensent le partage rapide ou rendent la rétention avantageuse dans ces conditions. [6] [8] [9]
Pour une vision complète, lisez aussi Block Propagation, Compact Blocks, Nakamoto Consensus, Sybil Attack, Bitcoin, Minage. Cette entrée est également citée par Byzantine Generals Problem, Sybil Attack, Block Propagation, Block Withholding Attack.