Quel que soit le PoW de Workload Proof, le PoS de Equity Proof ou le DPoS de Delegated Proof of Equity, tant qu'il existe un problème de consensus, en théorie, 51 % des attaques ne peuvent pas être évitées. L'attaquant contrôle le réseau principal via 51 % de blocs réversibles. , ce qui donne une fleur double.
connaissances de base
En tant que système de stockage de données public distribué et décentralisé, la blockchain ne dispose pas d'une organisation de gestion centrale pour la gestion, mais est gérée conjointement par des nœuds distribués utilisant des protocoles cryptographiques, et chaque nœud maintient l'ensemble du système. La cohérence du grand livre doit être assurée. le protocole de consensus sous-jacent. Les blockchains ont différentes utilisations pratiques dans différents scénarios réels, tels que les chaînes publiques, les chaînes privées et les chaînes d'alliance. Différentes chaînes utilisent différents algorithmes de consensus, tels que le consensus PoW utilisé par Bitcoin et le consensus PoW utilisé par Ethereum, le DPoS. consensus utilisé par EOS, et la sécurité impliquée dans différents algorithmes de consensus est différente.
Cet article détaillera les risques d’attaque présents dans les protocoles de consensus PoW utilisés par Bitcoin et Ethereum.
Mécanisme de consensus PoW
Voyons d’abord ce qu’est le protocole de consensus PoW.
Du point de vue d'un système de grand livre décentralisé, chaque nœud qui rejoint le système doit tenir un grand livre complet, mais chaque nœud ne peut pas tenir de comptes en même temps car les nœuds se trouvent dans des environnements différents et reçoivent des informations différentes. Par conséquent, un consensus est nécessaire pour atteindre. quel nœud a le droit de tenir des comptes. Les blockchains Bitcoin et Ethereum résolvent le problème de cohérence du système comptable décentralisé grâce à une comptabilité compétitive, c'est-à-dire un mécanisme qui utilise la puissance de calcul de chaque nœud, c'est-à-dire la « puissance de calcul » pour rivaliser pour les droits comptables. est « l’exploitation minière ».
Cependant, dans un système décentralisé, qui a le droit de déterminer l’issue de la concurrence ? Les systèmes de blockchain Bitcoin et Ethereum sont réalisés grâce à un mécanisme de consensus appelé Proof of Work (PoW).
PoW (Proof of Work), c'est-à-dire « Proof of Work ». En termes simples, PoW est un certificat qui confirme que la partie active a effectué une certaine quantité de travail. La partie active doit effectuer une certaine quantité de travail difficile pour obtenir un résultat, et le vérificateur utilise les résultats pour vérifier si la partie active a effectué le travail correspondant.
Dans le minage par consensus de preuve de travail, trois règles doivent être suivies :
Une seule personne peut enregistrer avec succès des comptes sur une période donnée
Rivalisez pour obtenir le droit comptable exclusif en résolvant des énigmes cryptographiques (c'est-à-dire une preuve de travail)
D'autres nœuds vérifient et copient les résultats comptables
Par exemple, étant donné la chaîne "blockchain", l'exigence de charge de travail que nous donnons est que nous pouvons concaténer une chaîne de valeur entière appelée nonce après cette chaîne et effectuer une opération de hachage SHA256 sur la chaîne concaténée Si le résultat de hachage obtenu (exprimé en hexadécimal). formulaire) commence par plusieurs 0, puis la vérification est réussie. Afin d'atteindre cet objectif de preuve de travail, nous devons incrémenter continuellement la valeur occasionnelle et effectuer une opération de hachage SHA256 sur la nouvelle chaîne obtenue.
Hash (la valeur du hachage précédent, l'ensemble d'informations d'enregistrement de transaction) = 29329385BNDH749 Hash (la valeur du hachage précédent, l'ensemble d'informations d'enregistrement de transaction, le nombre aléatoire) = 000029329385BNDH749
Par exemple, le hachage de la hauteur de bloc 512884 dans Bitcoin est :
000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69
La preuve de travail requise pour générer ce bloc via la comptabilité est constituée de 16**18 calculs de hachage, ce qui représente une très grande quantité de calcul.
51% d'attaque
Après avoir brièvement présenté les principes simples du packaging des blocs via la comptabilité et PoW, revenons à notre question, qu'est-ce qu'une attaque à 51 % et qu'est-ce qu'une attaque à double dépense ?
Une attaque à double dépense fait simplement référence à une attaque dans laquelle un jeton est utilisé via plusieurs méthodes de paiement, ce qui signifie que la même devise est dépensée plusieurs fois. Il existe de nombreuses façons de lancer une attaque de double dépense, notamment les formes suivantes :
51% d'attaque
Attaque raciale
Attaque du vecteur 76
attaque d'histoire alternative
C'est-à-dire que si l'attaquant contrôle plus de 50 % de la puissance de calcul de l'ensemble du réseau, il peut mettre en œuvre une double dépense grâce à une attaque à 51 %.
Ici, nous analysons uniquement le processus d’attaque de 51 %.
Attaque à 51 %, également connue sous le nom d’attaque majoritaire. Cette attaque permet de doubler les dépenses en contrôlant la puissance de calcul du réseau. Si un attaquant contrôle plus de 50 % de la puissance de calcul du réseau, alors pendant la période où il contrôle la puissance de calcul, il peut inverser le blocage, effectuer des transactions inversées et doubler les dépenses.
Dans le protocole de consensus PoW, le système blockchain permet à plusieurs chaînes fourchues d'exister en même temps, et chaque chaîne peut déclarer au monde extérieur qu'elle est correcte. Cependant, il existe un principe efficace le plus long dans le concept de conception de la blockchain : "Peu importe à quel moment la chaîne la plus longue est-elle considérée comme la chaîne principale avec le plus de travail ?"
Simulons brièvement le processus d'attaque à 51 % :
S'il existe un tel attaquant, il diffuse délibérément la première transaction à la moitié du réseau et diffuse la deuxième transaction à l'autre moitié du réseau, puis il y a exactement deux mineurs des deux côtés pour obtenir des droits comptables presque au même prix. À ce moment-là, et leurs droits comptables respectifs sont diffusés à tout le monde. À ce moment-là, le grand livre unifié a bifurqué.
Ensuite, si le prochain mineur choisit de continuer la comptabilité basée sur A, la branche A sera plus longue que la branche B. Selon les règles de la blockchain, la branche la plus longue sera reconnue, la branche courte sera abandonnée et le grand livre sera toujours be reviendra à un, et une seule transaction est valide.
A ce moment, la branche A est reconnue et la transaction correspondante est confirmée. Si l'attaquant obtient le produit, il se transforme immédiatement en mineur et gagne deux droits comptables consécutifs, puis ajoute deux blocs à la branche B.
La succursale B devient alors une succursale reconnue.À ce moment-là, la succursale A est abandonnée.La transaction dans la succursale A n'est plus établie.La devise de paiement de l'attaquant dans la succursale A est à nouveau valide, mais l'attaquant a déjà obtenu les marchandises A. L'attaque de dépenses a été terminée avec succès. Le problème est que lorsque la branche B est à la traîne, il est très difficile de la forcer à dépasser la branche A dans la réalité, et la probabilité de succès est cependant très faible si l'attaquant contrôle plus de 50 % de la puissance de calcul de la branche. l'ensemble du réseau, alors même s'il prend beaucoup de retard, et ce n'est qu'une question de temps avant qu'il ne rattrape son retard. Il s'agit de « l'attaque à 51 % » mentionnée ci-dessus.
Analyse des cas d'attaque de Bitcoin Gold à 51 %
Dans le monde réel de la blockchain, de nombreuses doubles dépenses ont été causées par des attaques à 51 %.
Par exemple, le problème de double dépense dans Bitcoin Gold (pièce BTG) est une attaque à 51 %. Le processus d’attaque est le suivant :
L'attaquant contrôle plus de 51% de la puissance de calcul sur le réseau Bitcoin Gold. Pendant la période de contrôle de la puissance de calcul, il a envoyé une certaine quantité de BTG sur son portefeuille sur la bourse. Nous avons nommé cette branche branche A.
En même temps, il a envoyé ces BTG vers un autre portefeuille qu'il contrôlait. Nous avons nommé cette succursale branche B.
Une fois la transaction confirmée sur la succursale A, l’attaquant vend immédiatement du BTG et récupère de l’argent. A cette époque, la branche A devient la chaîne principale.
Ensuite, l'attaquant exploite la branche B. Puisqu'il contrôle plus de 51 % de la puissance de calcul, l'attaquant a une forte probabilité d'obtenir des droits de comptabilité, donc bientôt la longueur de la branche B dépasse la chaîne principale (c'est-à-dire la longueur de la branche A), alors la branche B deviendra la chaîne principale et les transactions sur la branche A seront annulées, restaurant les données au dernier état correct.
En d’autres termes, la branche A est rétablie dans l’état avant que l’attaquant n’initie la première transaction, et les BTG que l’attaquant avait précédemment convertis en espèces sont de nouveau entre ses mains.
Finalement, l’attaquant envoie ces BTG vers un autre de ses portefeuilles. De cette manière, l'attaquant contrôlait plus de 51 % de la puissance de calcul pour réaliser une « double dépense » du même token.
Selon le rapport de données blockchain de cette attaque, l'attaquant a réussi à inverser 22 blocs. L'adresse Bitcoin Gold impliquée dans cette attaque a reçu plus de 388 200 $BTG. En supposant que toutes ces transactions sont liées à une double dépense, l'attaquant a reçu jusqu'à 18,6 millions de dollars. des fonds peuvent avoir été volés sur l'échange
En plus du problème de double dépense survenu dans Bitcoin Gold, il existe de nombreux cas d'attaques à double dépense causées par des attaques à 51 % :
La monnaie numérique anonyme a déjà extrait de manière malveillante plus de 35 millions #xvg en quelques heures seulement, pour une valeur d'environ 1,75 million de dollars américains.
La crypto-monnaie japonaise monacoin a apparemment été touchée par une attaque par déduction de bloc après qu'un mineur ait gagné jusqu'à 57 % de la puissance de hachage du réseau.
Nouvelle officielle de Litecoin Cash (LCC), LCC a subi une attaque de 51%.
La monnaie numérique #zen a également subi une attaque de 51%.
Récemment, Ethereum Classic #etc a subi une attaque de 51 %.

