SELFISH MINING
Stratégie (ou attaque) dans le minage, où un mineur ou un groupe de mineurs conserve intentionnellement des blocs avec une preuve de travail valide sans les diffuser immédiatement sur le réseau. L’objectif est de conserver une avance sur les autres mineurs en termes de preuve de travail, ce qui leur permet potentiellement de miner plusieurs blocs d’affilée et de les publier en une seule fois, maximisant ainsi leurs gains. Autrement dit, le groupe de mineurs attaquants ne minent pas sur le dernier bloc validé par l’ensemble du réseau, mais plutôt sur un bloc qu’ils ont eux-mêmes créé, qui diffère de celui validé par le réseau.
Ce procédé génère une sorte d’embranchement secret de la blockchain, qui reste inconnu de l’ensemble du réseau jusqu’à ce que cette chaîne alternative dépasse potentiellement la blockchain honnête. Une fois que la chaîne secrète des mineurs attaquants devient plus longue (c’est-à-dire qu’elle contient plus de travail accumulé) que la chaîne honnête et publique, elle est alors diffusée sur l’ensemble du réseau. À ce moment-là, les nœuds du réseau, qui suivent la chaîne avec le plus de travail accumulé, vont se synchroniser sur cette nouvelle chaîne. Il y a donc une réorganisation.
Le selfish mining est embêtant pour les utilisateurs, car il diminue la sécurité du système en gaspillant une partie de la puissance de calcul du réseau. En cas de réussite, il conduit également à des réorganisations de la blockchain, affectant ainsi la fiabilité des confirmations de transaction pour les utilisateurs. Cette pratique reste tout de même risquée pour le groupe de mineurs attaquants, car il est souvent plus rentable de miner normalement au-dessus du dernier bloc connu publiquement plutôt que d’allouer de la puissance de calcul à un embranchement secret qui ne dépassera probablement jamais la blockchain honnête. Plus le nombre de blocs dans la réorganisation est grand, plus la probabilité de réussite de l’attaque est basse.
Attention, une attaque par selfish mining ne doit pas être confondue avec une attaque de block withholding (rétention de bloc).