Bitcoin fork: Comment se proteger des attaques "replay"

in #fr7 years ago

Vous avez surement entendu parler du Fork de bitcoin gold et du fork Segwit 2X (qui devrait avoir lieu en novembre).
Grosso modo voila comment vous pouvez vous representer un hard fork :
HardFork.png

C'est une séparation d'une chaine en deux, les deux chaines issues du hard fork poursuivent leur chemin indépendamment l'une de l'autre, mais elles partagent un historique en commun.
C'est pour cette raison que la quantité de crypto-monnaie que vous possédiez avant le fork est dupliqué.
Apres le fork vous possédez autant de crypto de type 1 que de crypto de type 2, le tout sur la même adresse.
En effet une adresse valide sur la chaine d'origine reste valide sur les deux chaines obtenues après le hard fork.

Qu'est ce que le problème du "replay"

Sur une crypto comme le bitcoin les noeuds du réseau vérifie inlassablement que les transactions sont bien valide avant de les inscrire dans la blockchain.
L'une des vérifications essentielles consiste à s'assurer que la transaction est bien déclenché par la personne qui possède les bitcoin envoyés.
Sans rentrer dans les détails cette vérification se fait grâce à votre adresse publique et votre adresse privé.
Si vous avez bien suivi, vous savez maintenant que l'adresse publique et l'adresse privé sont identique sur les nouvelles chaines.
La conséquence c'est que toute transaction valide sur une des deux chaine l'est aussi sur l'autre.

Un exemple avec le bitcoin gold:
si j'envoie 1 bitcoin à Alice, que la transaction est validé sur la blockchain du Bitcoin, absolument rien n’empêcherai cette transaction d'etre aussi validé sur la blockchain du bitcoin gold.
Alice recevera alors mes bitcoin mais aussi mes bitcoin gold.

Un fork peut se prémunir de cette faiblesse si les développeurs implémentent une protection.
En l’occurrence le bitcoin cash (BCH) possède cette protection. Une transaction bitcoin cash diffère d'une transaction bitcoin du coup elles ne peuvent pas être répliquées l'une sur l'autre.

Une solution simple en attendant l'implémentation d'une protection

Il existe une autre vérification faite par n'importe quelle crypto monnaie , il faut que la personne qui envoie sa monnaie possède suffisamment de cette monnaie pour que la transaction soit valide.

La solution consiste à exploiter cette vérification.
L'idée c'est de faire en sorte de ne pas avoir le meme montant des deux monnaies sur l'adresse commune.
Puis d'envoyer le totalité de la monnaie dont la quantité est supérieur sur une adresse ou vous n'aviez pas de bitcoin jusqu'a présent.
Puisque le montant de la transaction, disons de la monnaie de type 1 est supérieur à la quantité disponible de la monnaie de type 2 la transaction sur le blockchain de type 2 ne passera pas.
L'adresse de reception sera donc "vierge" de monnaie de type 2 vous pourrez alors effectué des transactions de type 1 sans aucun risque de replay, a condition de ne jamais envoyé sur cette adresse des coin de type 2.
Vous utiliserez alors cette adresse uniquement pour la monnaie de type 1, aucun replay ne sera possible puisque cette adresse ne possède alors aucun "coin" de type 2.

replayProtection.png

Dans la pratique on peut s'y prendre de la manière suivante :

Disons que nous voulons une adresse Bitcoin sans BTG.

  • Ajoutez une petite quantité de Bitcoin a votre adresse A (qui possède à la fois des BTC et des BTG) en passant par un exchange type Kraken,coinbase..., vous devez vérifier qu'il n'est pas ajouté de l'autre coté en BTG. S'il est ajouté, il a été rejoué, ce qui signifie que vous obtenez de la monnaie gratuites, alors continuez à acheter parce que, de toute évidence, l'exchange n'a pas correctement divisé les chaines. Ceci dit on peut raisonnablement penser qu'ils le feront.
    L'adresse A possède alors une quantité supérieur de Bitcoin par rapport au BTG.
    Vous l'envoyez à un autre portefeuille où vous n'avez rien, qui est également sous votre contrôle. À partir de ce moment, vous n'avez plus à vous soucier d'être victime d'une attaque par replay.

Ceci dit je reste persuadé que des solutions vont être implémentés et qu'a terme ça finira par être transparent pour nous.
Donc en attendant vous pouvez aussi éviter toutes transaction en Bitcoin, BTG et B2X.
Si les monnaies issuent des fork ne vous interessent pas, continuez a faire des transactions en bitcoin, mais surtout faites attention, le pire des scénarios, dans le mesure ou les BTC continuent d'avoir beaucoup plus de valeur consiste a envoyer des BTG ou des B2X et voir s’évaporer vos BTC via un replay.
Donc surtout réfléchissez bien avant d'envoyer des BTG ou des B2X.

Source : https://blog.tenx.tech/bitcoin-fork-simple-trick-to-secure-your-coins-without-replay-protection-transcript-f1a58b08edf2

Sort:  

Merci pour ces informations ! Je pense que tout ces forks m ce n'est pas une bonne chose. Si on veut que les cryptomonnaies remplacent les monnaies actuelles il faut faire plus simple. Déjà avec des centaines d'altcoins alors maintenant entre Bitcoin, Bitcoin cash, Bitcoin gold, et puis quoi encore ?

Je suis d'accord.
Il faut garder a l'esprit que nous sommes encore des pionniers, des "early adopters" en conséquence il faut accepter d'essuyer un peu les platres.
La technologie n'est pas encore mature pour une adoption massive.
Le probleme de la scalabilité est un défi majeur, la dessus viennent se greffer des problemes "politique" ou chacun veut imposer sa solution.
C'est bien car ça prouve que Bitcoin prend de l'importance, mais en meme temps il ne faudrait pas que Bitcoin dévie de sa raison d'etre, c'est a dire de n'appartenir à personne, d’être complètement décentralisé.
Ca evolue il y aura probablement une solution qui s'imposera, en attendant on subit un peu.

Vraiment claire et bien expliqué. Je bloquais un peu sur la notion d'attaque par rejeux. Je pense à présent avoir compris.
merci !

Ça fait plaisir d'avoir pu apporter quelque chose !
Merci pour ton message !

Coin Marketplace

STEEM 0.19
TRX 0.18
JST 0.031
BTC 87521.82
ETH 3167.30
USDT 1.00
SBD 2.78