Étude d'impact d'attaques Sybil V5 - Stratégie d'attaque plus rapide!

J’ai fait un petit programme de simulation de métastase sybil pour m’en assurer : sybils.js.

Celui-ci tente de créer le maximum de sybils possibles étant donné :

  • stepMax = 6
  • sigQty = 5
  • sigPeriod = 1 semaine
  • durée de simulation, sigStock et stepMalveillants variables

Voici les résultats bruts :

stepMalveillants = 5, durée 1 an(s), sigStock = 70,      53 sybils crées
stepMalveillants = 5, durée 1 an(s), sigStock = 100,     53 sybils crées
stepMalveillants = 5, durée 1 an(s), sigStock = 150,     53 sybils crées
stepMalveillants = 5, durée 2 an(s), sigStock = 70,      70 sybils crées
stepMalveillants = 5, durée 2 an(s), sigStock = 100,    100 sybils crées
stepMalveillants = 5, durée 2 an(s), sigStock = 150,    106 sybils crées
stepMalveillants = 5, durée 3 an(s), sigStock = 70,      70 sybils crées
stepMalveillants = 5, durée 3 an(s), sigStock = 100,    100 sybils crées
stepMalveillants = 5, durée 3 an(s), sigStock = 150,    150 sybils crées
stepMalveillants = 4, durée 1 an(s), sigStock = 70,     328 sybils crées
stepMalveillants = 4, durée 1 an(s), sigStock = 100,    328 sybils crées
stepMalveillants = 4, durée 1 an(s), sigStock = 150,    328 sybils crées
stepMalveillants = 4, durée 2 an(s), sigStock = 70,     931 sybils crées
stepMalveillants = 4, durée 2 an(s), sigStock = 100,   1207 sybils crées
stepMalveillants = 4, durée 2 an(s), sigStock = 150,   1219 sybils crées
stepMalveillants = 4, durée 3 an(s), sigStock = 70,    1048 sybils crées
stepMalveillants = 4, durée 3 an(s), sigStock = 100,   1927 sybils crées
stepMalveillants = 4, durée 3 an(s), sigStock = 150,   2647 sybils crées
stepMalveillants = 3, durée 1 an(s), sigStock = 70,    1261 sybils crées
stepMalveillants = 3, durée 1 an(s), sigStock = 100,   1261 sybils crées
stepMalveillants = 3, durée 1 an(s), sigStock = 150,   1261 sybils crées
stepMalveillants = 3, durée 2 an(s), sigStock = 70,    7786 sybils crées
stepMalveillants = 3, durée 2 an(s), sigStock = 100,   8916 sybils crées
stepMalveillants = 3, durée 2 an(s), sigStock = 150,   8930 sybils crées
stepMalveillants = 3, durée 3 an(s), sigStock = 70,   13818 sybils crées
stepMalveillants = 3, durée 3 an(s), sigStock = 100,  24314 sybils crées
stepMalveillants = 3, durée 3 an(s), sigStock = 150,  28925 sybils crées
stepMalveillants = 2, durée 1 an(s), sigStock = 70,    3576 sybils crées
stepMalveillants = 2, durée 1 an(s), sigStock = 100,   3576 sybils crées
stepMalveillants = 2, durée 1 an(s), sigStock = 150,   3576 sybils crées
stepMalveillants = 2, durée 2 an(s), sigStock = 70,   45586 sybils crées
stepMalveillants = 2, durée 2 an(s), sigStock = 100,  48578 sybils crées
stepMalveillants = 2, durée 2 an(s), sigStock = 150,  48592 sybils crées
stepMalveillants = 2, durée 3 an(s), sigStock = 70,  140880 sybils crées
stepMalveillants = 2, durée 3 an(s), sigStock = 100, 214740 sybils crées
stepMalveillants = 2, durée 3 an(s), sigStock = 150, 233865 sybils crées
stepMalveillants = 1, durée 1 an(s), sigStock = 70,    8055 sybils crées
stepMalveillants = 1, durée 1 an(s), sigStock = 100,   8055 sybils crées
stepMalveillants = 1, durée 1 an(s), sigStock = 150,   8055 sybils crées
stepMalveillants = 1, durée 2 an(s), sigStock = 70,  204168 sybils crées
stepMalveillants = 1, durée 2 an(s), sigStock = 100, 210072 sybils crées
stepMalveillants = 1, durée 2 an(s), sigStock = 150, 210086 sybils crées
stepMalveillants = 1, durée 3 an(s), sigStock = 70, 1079712 sybils crées
    JavaScript heap out of memory :)

Ce que je vois là, c’est qu’une attaque parfaite sur 3 années glissantes (le temps probable d’expiration d’une certification) est possible, mais ne dépasse pas les 2647 sybils tant que les attaquants ne disposent pas de plus de 2 steps pour créer les sybils.

2647 sybils ne me paraît pas insurmontable si l’on dispose de 10.000 utilisateurs et 3 années d’action, il est possible d’inciter les utilisateurs à protéger leur monnaie en installant un nœud notamment.

Par ailleurs, j’ai oublié qu’il existait aussi la possibilité aux utilisateurs d’agir directement sur la distance aux attaquants en augmentant celle-ci, afin de contenir l’attaque.

Je vais en parler sur l’autre sujet …