(Cet article contient du matériel initialement publié en 2019 dans le IOV Labs Blog RSK)
La sécurité de Bitcoin repose sur les incitations économiques pour les mineurs à étendre la « chaîne la plus lourde », qui est la chaîne avec la difficulté la plus accumulée (généralement la plus longue). Actuellement, ces incitations sont fournies par la récompense globale, qui se compose de la subvention globale et des frais de transaction. Mais la subvention (actuellement 6.25 BTC) est nettement supérieure aux frais de transaction moyens par bloc (actuellement 0.25 BTC). La subvention Bitcoin diminue de moitié tous les 4 ans, et sans une appréciation inversement proportionnelle du prix BTC, la principale incitation à l'exploitation minière passera d'une subvention globale à des frais de transaction globaux. Pour maintenir le budget de sécurité actuel, le coût de transaction devrait être multiplié par 25. Il est trop tôt pour dire si cela deviendra un jour un problème pour Bitcoin. Il est possible que Bitcoin ait besoin d'un soft-fork ou d'un hard-fork pour s'adapter à une nouvelle ère de faible subvention. En 2014, j'ai montré comment Bitcoin pouvait devenir instable en présentant le (principalement théorique) Attaque FRONTALE. Carlsten et coll. (2016) analysé ce problème en profondeur mais ils n'ont pas pu trouver de solution satisfaisante. Ce n'est pas seulement le problème de Bitcoin, mais un problème auquel chaque crypto-monnaie dont l'émission d'argent diminue avec le temps devra faire face.
Mais nous n'avons pas à nous soucier de Bitcoin pour l'instant. La communauté bitcoin devra peut-être résoudre ce problème dans 10 ou 20 ans, voire jamais. De temps en temps, le problème est réexaminé, avec des analyses à la fois Soulignant ainsi que réduisant au minimum le problème. Mais quand on analyse les sidechains Bitcoin, comme RSK, le problème est bien réel.
En 2019, le PDG de Blockstream, Adam Back, a mentionné lissage lors de la discussion du budget de sécurité à long terme de Bitcoin : « D'autres idées à plus long terme concernant l'ère de faibles subventions incluent la moyenne des frais sur des intervalles de blocs pour lisser les revenus des frais. »
https://twitter.com/adam3us/status/1097031151921713152
RSK implémente exactement cette idée, le lissage des revenus de frais, depuis 2016. Mais avant d'expliquer comment RSK gère les transactions avec des frais élevés, nous montrerons plus en détail les trois principales attaques d'inversion de bloc qui peuvent être déclenchées par les frais de transaction : , les transactions sur les baleines et l'atomisation minière.
Si la subvention de bloc est faible et que les frais de transaction dans le dernier bloc miné sont beaucoup plus élevés que les frais qui peuvent être perçus sur les transactions dans le mempool, les mineurs rationnels à court terme sont incités à saisir les transactions du dernier bloc miné et à exploiter un concurrent bloc, au lieu de l'étendre. Il s'agit d'un écart par rapport au consensus de Nakamoto, et il s'appelle Frais de sniping. Par définition, une telle déviation est une attaque contre le protocole, et le mineur est considéré comme une partie malveillante. Pour encaisser les frais de transaction saisis, le mineur malveillant doit également extraire un bloc de confirmation supplémentaire plus rapidement que la chaîne honnête, afin que le reste des mineurs passe à sa chaîne. Par conséquent, le sniping payant n'est pas toujours rentable, car le mineur malveillant risque de gaspiller son hashrate si sa fourchette égoïste ne dépasse pas la chaîne honnête. Le sniping de frais peu fréquent peut ne pas être un problème, mais si les mineurs modifient leur code de consensus pour profiter des opportunités potentielles de sniping de frais sur tous les forks existants, alors le réseau peut être exposé à des attaques plus dangereuses.
Une fois que les nœuds des mineurs effectuent un sniping automatique des frais, un attaquant peut profiter de cette situation pour effectuer une attaque à double dépense. Un mineur malveillant peut dépenser des pièces dans la chaîne honnête et recevoir un autre actif externe en échange, puis débourser la chaîne honnête un bloc avant le premier. Dans le fork malveillant, l'attaquant dépense deux fois les pièces mais introduit également une caractéristique distinctive (c'est-à-dire un UTXO unique) qui ne doit pas exister dans le fork honnête. Immédiatement après, l'agresseur diffuse une opération "baleine" qui utilise cette fonctionnalité (c'est-à-dire consomme cet UTXO) et offre des frais de transaction inhabituellement élevés comme appât (ou pot-de-vin) aux mineurs exécutant le code de sniping payant. Alors que le terme « transaction avec les baleines » peut être compris comme une transaction qui transfère une valeur élevée, nous utilisons ici la définition du document référencé, comme une transaction qui paie des frais élevés, quel que soit le montant de la valeur transférée. Dans Bitcoin, la transaction de baleine et les blocs de fork malveillants devraient être envoyés directement aux nœuds des mineurs, car les non meilleurs forks ne sont pas transmis par les nœuds complets du réseau peer to peer. Cependant, dans de nombreuses plates-formes de contrats intelligents, l'attaque est beaucoup plus facile car elles diffusent des forks qui ne sont pas les meilleurs. Toujours dans les plateformes de smart-contract, la création d'une transaction Whale est plus simple : l'attaquant peut réutiliser un nonce déjà utilisé dans la chaîne honnête empêchant ainsi la transaction Whale d'être incluse dans la chaîne honnête. Alternativement, la transaction Whale peut exécuter un contrat qui vérifie si le hachage de bloc précédent correspond à un hachage de bloc qui n'existe que dans le fork égoïste (c'est-à-dire en utilisant l'opcode BLOCKHASH) et paie un pot-de-vin uniquement sur le fork égoïste.
Une fois que les mineurs détectent une transaction de baleine, ils peuvent envisager d'étendre la fourchette malveillante, même s'ils sont à la traîne, si le pot-de-vin est suffisamment élevé, pariant qu'il dépassera la chaîne honnête plus longue. Sans contrats intelligents, la meilleure stratégie d'attaque consiste à diffuser simultanément une série de transactions de baleines corrompant les mineurs suivants afin qu'ils continuent à étendre le fork malveillant. Dans Bitcoin, les transactions peuvent être enchaînées avec CHECKLOCKLOCKVERIFIER or VÉRIFICATIONSÉQUENCEVÉRIFIER. Dans les plates-formes de contrats intelligents, cela peut être fait en réutilisant des nonces ou par des appels de contrat. Même s'il n'est pas automatisé, l'attaquant peut continuer à générer des transactions de baleine sur le fork malveillant, jusqu'à ce qu'il dépasse la chaîne honnête.
Dans l'attaque Whale Transaction, nous avons considéré que les mineurs devaient passer dynamiquement à une stratégie d'exploitation minière complexe pour accepter des pots-de-vin en fonction des probabilités de gain de fork. Nous pouvons considérer de manière plus réaliste que les mineurs appliquent une stratégie plus simple qui ne prend pas en compte les futurs pots-de-vin, mais uniquement le sniping égoïste. Si c'est la stratégie adoptée par la majorité des mineurs, alors une nouvelle attaque est possible. L'attaque d'atomisation des mineurs est une attaque par déni de service à l'échelle du réseau qui tente d'inciter tous les mineurs à travailler simultanément sur des fourches égoïstes, réduisant ainsi le taux et la convergence de la chaîne honnête. L'attaque commence par la diffusion d'une transaction avec des frais très élevés, similaire à l'attaque par coupure de frais ou à l'attaque de transaction de baleine. Cette transaction n'est pas destinée à aider à doubler les dépenses mais c'est un appât qui vise à atomiser le réseau minier. Nous allons montrer l'attaque avec un exemple. Supposons qu'une transaction T dans un bloc à hauteur N paie 100 pièces de frais, mais que la récompense moyenne du bloc n'est que de 10 pièces. Nous supposons que tous les nœuds des mineurs sont programmés pour suivre cette stratégie rationnelle :
- Si T est inclus dans l'un des K derniers blocs de la chaîne honnête, saisissez la transaction T et essayez d'exploiter un bloc concurrent à la hauteur N, puis continuez à extraire les blocs enfants de cette fourchette égoïste jusqu'à ce qu'il dépasse la chaîne honnête.
- Si la chaîne honnête dépasse la fourchette égoïste de plus de K blocs, abandonnez.
La transaction malveillante à frais élevés atomise le minage au profit du plus grand pool minier, qui a les plus grandes chances de miner la transaction T plus suffisamment de blocs de confirmation égoïstes supplémentaires pour que les mineurs restants abandonnent. Curieusement, plus le réseau de minage est décentralisé, plus la perturbation causée par la transaction T est grave. Par exemple, pour une blockchain ayant un intervalle de bloc moyen de 10 minutes, s'il y avait 100 mineurs ayant chacun 1% du taux de hachage total, le réseau subirait un ralentissement de 100 fois pendant plusieurs blocs jusqu'à ce qu'il converge enfin. Le réseau serait inutilisable pendant 2 jours !
RSK est un chaîne latérale Bitcoin pure, il a donc dû relever le défi de sécuriser la blockchain avec un budget de sécurité composé uniquement de frais de transaction depuis sa création. Par conséquent, RSK devait se préparer à des frais anormalement élevés ou faibles. RSK a été la première chaîne latérale prête pour la production, et elle utilise le merge-mining pour le consensus. Actuellement plus de 40% des mineurs de Bitcoin fusionner-mine RSK.
Les mineurs RSK s'attendent à une compensation économique pour l'exploitation de nœuds complets RSK. La plupart des blockchains émettent de nouvelles pièces pour cette compensation. Certains autres grands livres distribués, tels que Ripple, n'émettent pas de pièces pour payer les producteurs de blocs, mais les producteurs de blocs peuvent être subventionnés de l'extérieur. Ripple Labs, qui a pré-miné les XRP, en a tellement qu'ils peuvent fournir une compensation en XRP pour que des tiers deviennent des producteurs de blocs. RSK, en revanche, fait face aux conditions les plus difficiles : il n'a pas d'émission de pièces (comme Bitcoin) et il n'a pas de prémine de pièces (comme XRP). RSK représente un exemple réussi d'une sidechain Bitcoin, un aperçu de l'avenir du consensus dans les blockchains déflationnistes, et comment une blockchain sans subvention peut être durable. Cependant, n'avoir aucune subvention signifie que la sidechain doit être soigneusement conçue contre les attaques présentées ici. RSK implémente plusieurs fonctionnalités uniques pour être plus sûr contre les réorganisations de blockchain basées sur des transactions à frais élevés :
- Lissage des récompenses en bloc (également appelé lissage des frais).
- Bloquer le partage des récompenses
- Minage de fusion prenant en compte les fourches
Dans les sections suivantes, nous présentons brièvement chaque technique.
Le lissage des frais est une règle consensuelle qui répartit les frais de transaction entre les mineurs de manière plus égalitaire. Il paie à chaque mineur une fonction des récompenses de bloc passées. La fonction peut être linéaire ou non linéaire, basée sur un petit nombre de récompenses de blocs antérieurs, ou basée sur un état qui dépend de tous les blocs précédents. La conception la plus simple consiste à utiliser une sorte de filtre passe-bas sur les frais accumulés. RSK utilise une fonction de lissage très simple, un IIR comprenant α = 0.1. Si un mineur RSK résout un bloc à la hauteur N, le mineur sera indemnisé de 10% des frais de transaction du bloc N et de 10% de tous les frais de mineur impayés précédemment accumulés. En d'autres termes, il existe un compte de mineurs « partagé », où à chaque bloc le mineur gagnant verse les frais de transaction et retire 10% pour lui-même.
Le lissage des récompenses augmente l'incitation à étendre la blockchain par rapport à l'incitation à réexploiter un bloc passé pour récupérer ses frais payés, car le mineur ne peut récupérer que 10% des frais de transaction de la baleine. Nous allons reprendre l'exemple précédent. Nous supposons que la récompense moyenne du bloc est de 10 pièces et qu'un bloc contient un pot-de-vin de 100 pièces à la hauteur N. En RSK, le bloc à la hauteur N paierait une récompense de 19 pièces, tandis que le bloc suivant paierait 18.1 pièces. Le mineur égoïste a maintenant besoin de 10 fois plus de puissance de hachage que tout autre mineur pour que l'attaque soit rentable.
Nous montrons maintenant d'autres mesures de protection complémentaires.
RSK met en œuvre un protocole de consensus de partage des récompenses appelé DECOR. DECOR répartit les récompenses de bloc de manière égale entre les blocs frères, tant que ces en-têtes de blocs sont référencés par la chaîne honnête. DECOR diminue l'incitation à une attaque d'atomisation car le gagnant de la transaction à frais élevés doit partager la récompense avec jusqu'à 10 autres mineurs qui ont produit des blocs frères. En effet, un bloc blockchain peut avoir jusqu'à 10 références de frères de bloc, et le protocole DECOR partage la récompense de bloc entre eux tous. Pour éviter le partage, le mineur aurait besoin d'exploiter 10 autres blocs égoïstes, empêchant les références à l'oncle, réduisant considérablement ses chances de succès. Compte tenu du partage des récompenses et du lissage des frais, pour qu'une tentative de perturber le réseau RSK réussisse, le pot-de-vin doit être au moins 110 fois supérieur à la récompense globale moyenne.
Minage fusionné compatible avec les fourches est une variante de l'exploitation minière fusionnée qui permet aux utilisateurs de surveiller le réseau principal (par exemple Bitcoin) pour les fourches malveillantes dans le réseau sidechain (par exemple RSK). Pour profiter d'une attaque de transaction de baleine, l'attaquant doit trouver une victime pour doubler ses dépenses. Cette victime serait probablement un échange de crypto en ligne. Les échanges crypto attendent plusieurs centaines de confirmations de bloc avant d'accepter un dépôt, ce qui est suffisant pour le Système RSK Armadillo pour détecter au préalable le fork malveillant et alerter l'échange. Dans le cas des attaques par sniping et par atomisation de mineurs, les forks malveillants sont courts et, par conséquent, Armadillo ne peut être utilisé que comme un outil pour diagnostiquer la situation et identifier les pools s'écartant du protocole honnête, mais il ne peut pas empêcher l'attaque.
Une autre mesure de protection complémentaire, que RSK ne met pas actuellement en œuvre, consiste à limiter le prix de transaction du gaz à un multiple du prix minimum du gaz (c'est-à-dire un spread de 10x). J'ai proposé une mesure comparable pour Bitcoin en 2013. RSK pourrait le mettre en œuvre facilement, car chaque bloc annonce le prix minimum de transaction du gaz accepté. Cependant, fixer un prix maximum du gaz ne résout pas complètement le problème si le réseau est dans un état où les blocs ne consomment pas toute la limite de gaz disponible dans un bloc. Les frais de transaction élevés en T peuvent être le résultat d'une plus grande quantité de gaz consommée au lieu d'un prix du gaz plus élevé (les frais payés sont le produit de ces deux montants).
Le lissage des récompenses n'est pas la solution ultime, car les attaquants peuvent utiliser une plate-forme de contrat intelligent pour pot-de-vin mineurs à faire à peu près n'importe quoi. J'ai présenté le théorique « Eternal Choice for the Dark Side Attack » (ou ECDSA :) ) dans 2014, comme un moyen de montrer comment les mineurs peuvent être soudoyés pour s'écarter d'un comportement honnête. McCorry el à. (2018) présentait un large éventail d'attaques de corruption théorique. Cependant, le niveau de compréhension et de préparation requis pour accepter des pots-de-vin basés sur des contrats intelligents est considérable. Cela rend les attaques de corruption basées sur des contrats intelligents beaucoup plus difficiles à perpétrer. Un mineur doit être au courant du contrat de corruption et comprendre comment interagir avec celui-ci. Cependant, ce type d'attaque est inévitable : si la plateforme peut effectuer un paiement au mineur de bloc actuel, alors elle peut également exécuter un contrat intelligent qui paie le même mineur. En effet, le langage de programmation qui décrit le consensus du protocole et celui utilisé par les contrats intelligents sont tous deux « Turing-complets ». C'est un problème théorique intéressant.
On peut imaginer des astuces pour rendre les paiements de pots-de-vin plus difficiles, comme forcer les adresses des mineurs à être spéciales (c'est-à-dire à usage unique), de sorte qu'un contrat de pots-de-vin ne puisse pas payer au mineur. Cependant, une plate-forme de contrat intelligent complète de Turing ne peut pas empêcher un paiement d'une partie disposée à payer à une autre partie disposée à être payée. Nous construisons toujours un contrat intelligent de corruption réussi qui échappe aux défenses. Par exemple, le mineur malveillant peut créer une preuve de connaissance nulle prouvant le contrôle d'une adresse de mineur spécifique au contrat, sans révéler la clé privée. Le mineur enverrait cette preuve au contrat de pot-de-vin, avec une adresse de réception alternative pour recevoir le pot-de-vin.
Il ne suffit pas de limiter les capacités de langage de contrat intelligent de la blockchain dont les mineurs doivent être soudoyés, car toute autre plate-forme de contrat intelligent Turing-complet peut être utilisée pour payer des pots-de-vin aux mineurs. La plate-forme n'a besoin que d'exécuter un relais d'en-tête de bloc (c'est-à-dire btcrelay). Par exemple, RSK et Ethereum pourraient être utilisés pour payer des pots-de-vin aux mineurs de Bitcoin. Cependant, coordonner une attaque sur une blockchain pontée est plus difficile.
Une défense potentielle contre les attaques de corruption consiste à utiliser une variante du protocole de consensus PoS qui exige que la majorité des producteurs de blocs signent des blocs, et les oblige également à disposer d'un dépôt de garantie (mise) de pièces pendant une période de plusieurs mois. L'enjeu des mineurs qui équivoquent (produire deux blocs contradictoires ou extensions de fourches contradictoires) serait confisqué par un hard fork lancé par la communauté. Bien que cette protection n'élimine pas la vulnérabilité, elle peut augmenter le coût de l'attaque, car le pot-de-vin doit être supérieur à la mise perdue. Actuellement, l'activation du jalonnement par les mineurs n'est pas possible sur Bitcoin. Alors que RSK pourrait adopter un consensus PoS, il n'y a aucune proposition pour passer au PoS ou ni mélanger PoW avec PoS dans RSK.
Nous avons présenté plusieurs attaques connues au consensus de Nakamoto basées sur des transactions malveillantes payant des frais anormalement élevés. Certaines attaques permettent de doubler les dépenses et d'autres provoquent une instabilité du réseau. Ces attaques sont particulièrement pertinentes pour toutes les chaînes latérales Bitcoin, y compris RSK. RSK implémente le lissage des récompenses par blocs, le partage des récompenses par blocs et l'exploitation minière fusionnée prenant en compte les fourches comme moyens de dissuasion. Bien que le lissage des récompenses fonctionne pour les frais explicites, le cas général des pots-de-vin payés à l'aide de contrats intelligents ne peut être évité. Se défendre contre ces attaques nécessite une surveillance active du réseau. Enfin, des recherches supplémentaires sur les solutions potentielles à ces attaques sont nécessaires.
- 100
- 2016
- 2019
- Compte
- infection
- Adam Back
- Supplémentaire
- Avantage
- Tous
- article
- atout
- Automatisation
- LES MEILLEURS
- Pari
- à
- Bitcoin
- blockchain
- BTC
- prix du btc
- Argent liquide
- Causes
- causé
- CEO
- challenge
- chances
- Change
- Contrôles
- enfant
- code
- Coin
- Pièces de monnaie
- Communautés
- Compensation
- Consensus
- consommer
- continuer
- contrat
- contrats
- La création
- Crypto
- échange de chiffrement
- Échanges crypto
- crypto-monnaie
- Courant
- Décentralisé
- Défense
- Déni de service
- Conception
- détail
- Perturber
- Perturbation
- grands livres distribués
- "Early Bird"
- Économique
- Ethereum
- échange
- Échanges
- extensions
- Visage
- visages
- Fonctionnalité
- Fonctionnalités:
- Frais
- finalement
- Prénom
- suivre
- fourche
- plein
- fonction
- avenir
- GAS
- ge
- Général
- GM
- GP
- saisir
- GV
- fourche dur
- hachage
- Hachage
- Hashrate
- ici
- Haute
- Comment
- How To
- HTTPS
- idée
- identifier
- Y compris
- Améliore
- IP
- IT
- ACTIVITES
- spécialisées
- Labs
- langue
- Niveau
- Location
- majeur
- Majorité
- mesurer
- moyenne
- Mempool
- mineurs
- Mines
- de l'argent
- Stack monitoring
- mois
- réseau et
- nœuds
- Offres Speciales
- en ligne
- Autre
- Papier
- Payer
- Paiement
- Paiements
- peer to peer
- plateforme
- Plateformes
- pool
- Piscines
- PoS
- PoW
- power
- représentent
- prévention
- prix
- Privé
- Clé privée
- Produit
- Nos producteurs
- Produit
- Profit
- Programmation
- preuve
- proposition
- protection
- Protecteur
- un article
- REST
- de revenus
- Programme de fidélité
- Ripple
- laboratoires d'ondulation
- Courir
- pour le running
- sécurité
- Série
- mise
- Partager
- Partages
- décalage
- Shorts
- chaîne latérale
- étapes
- petit
- smart
- contrat intelligent
- Contrats intelligents
- So
- Solutions
- RÉSOUDRE
- passer
- propagation
- pieu
- Staking
- Région
- de Marketing
- subvention
- succès
- réussi
- durable
- Interrupteur
- des tiers
- fiable
- transaction
- Transactions
- Turing
- utilisateurs
- Plus-value
- vulnérabilité
- attendez
- Wikipédia
- des mots
- activités principales
- vos contrats
- xrp
- années
- zéro