|
| 1 | +[Le post de la semaine dernière][policy08] a décrit les [sorties d'ancrage][topic anchor outputs] et [l'exclusion |
| 2 | +CPFP][topic cpfp carve out], garantissant à chaque partie du canal la possibilité d'augmenter les frais de leurs transactions |
| 3 | +d'engagement partagées sans nécessiter de collaboration. Cette approche présente encore quelques inconvénients : les fonds du |
| 4 | +canal sont bloqués pour créer des sorties d'ancrage, les frais des transactions d'engagement sont généralement surestimés pour |
| 5 | +s'assurer qu'ils atteignent les frais minimaux du mempool, et l'exclusion CPFP ne permet qu'un seul descendant supplémentaire. |
| 6 | +Les sorties d'ancrage ne peuvent pas garantir la même capacité d'augmentation des frais pour les transactions partagées entre |
| 7 | +plus de deux parties, telles que les [coinjoins][topic coinjoin] ou les protocoles de contrat multi-parties. Ce post explore |
| 8 | +les efforts actuels pour remédier à ces limitations et à d'autres. |
| 9 | + |
| 10 | +[Package relay][topic package relay] comprend un protocole P2P et des modifications de politique pour permettre le transport et |
| 11 | +la validation de groupes de transactions. Cela permettrait à une transaction d'engagement d'augmenter les frais même si la |
| 12 | +transaction d'engagement ne respecte pas le taux de frais minimal du mempool. De plus, _Package RBF_ permettrait au descendant |
| 13 | +qui augmente les frais de payer pour remplacer les transactions en conflit avec son parent. Package relay est conçu pour éliminer |
| 14 | +une limitation générale au niveau du protocole de base. Cependant, en raison de son utilité pour l'augmentation des frais des |
| 15 | +transactions partagées, il a également donné lieu à plusieurs efforts pour éliminer [l'épinglage][topic transaction pinning] pour |
| 16 | +des cas d'utilisation spécifiques. Par exemple, Package RBF permettrait aux transactions d'engagement de se remplacer mutuellement |
| 17 | +lorsqu'elles sont diffusées avec leurs descendants qui augmentent les frais, éliminant ainsi le besoin de plusieurs sorties |
| 18 | +d'ancrage sur chaque transaction d'engagement. |
| 19 | + |
| 20 | +Un inconvénient est que les règles RBF existantes exigent que la transaction de remplacement paie des frais absolus plus élevés |
| 21 | +que les frais totaux payés par toutes les transactions à remplacer. Cette règle aide à prévenir les attaques de type DoS par des |
| 22 | +remplacements répétés, mais permet à un utilisateur malveillant d'augmenter le coût de remplacement de sa transaction en attachant |
| 23 | +un descendant avec des frais élevés mais un taux de frais faible. Cela empêche la transaction d'être extraite en empêchant |
| 24 | +injustement son remplacement par un package à frais élevés, et est souvent appelé "épinglage de la règle 3". |
| 25 | + |
| 26 | +Les développeurs ont également proposé des moyens totalement différents d'ajouter des frais aux transactions pré-signées. |
| 27 | +Par exemple, la signature des entrées de la transaction en utilisant `SIGHASH_ANYONECANPAY | SIGHASH_ALL` pourrait permettre au |
| 28 | +diffuseur de la transaction de fournir des frais en ajoutant des entrées supplémentaires à la transaction sans modifier les sorties. |
| 29 | +Cependant, comme RBF n'a aucune règle exigeant que la transaction de remplacement ait un "score minier" plus élevé (c'est-à-dire |
| 30 | +qu'elle serait sélectionnée plus rapidement pour un bloc), un attaquant pourrait épingler ces types de transactions en créant des |
| 31 | +remplacements encombrés par des ancêtres à faible taux de frais. Ce qui complique l'évaluation précise du score de minage des |
| 32 | +transactions et des packages de transactions, c'est que les limites existantes des ascendants et des descendants sont insuffisantes |
| 33 | +pour limiter la complexité computationnelle de ce calcul. Toutes les transactions connectées peuvent influencer l'ordre dans lequel |
| 34 | +les transactions sont sélectionnées pour être incluses dans un bloc. Un composant entièrement connecté, appelé un _cluster_, peut |
| 35 | +avoir n'importe quelle taille compte tenu des limites actuelles des ascendants et des descendants. |
| 36 | + |
| 37 | +Une solution à long terme pour remédier à certaines lacunes du mempool et aux attaques d'épinglage RBF consiste à [restructurer la |
| 38 | +structure de données du mempool pour suivre les clusters][mempool clustering] au lieu de simplement les ensembles d'ancêtres et de |
| 39 | +descendants. Ces clusters seraient limités en taille. Une limite de cluster restreindrait la manière dont les utilisateurs peuvent |
| 40 | +dépenser des UTXO non confirmés, mais permettrait de linéariser rapidement l'ensemble du mempool en utilisant l'algorithme de minage |
| 41 | +basé sur le score des ascendants, de construire des modèles de bloc extrêmement rapidement, et d'exiger que les transactions de |
| 42 | +remplacement aient un score de minage plus élevé que la ou les transactions à remplacer. |
| 43 | + |
| 44 | +Même ainsi, il est possible qu'aucun ensemble unique de politiques ne puisse répondre à la large gamme de besoins et d'attentes en |
| 45 | +matière de relais de transactions. Par exemple, bien que les destinataires d'une transaction de paiement groupé bénéficient de la |
| 46 | +possibilité de dépenser leurs sorties non confirmées, une limite de descendant plus souple laisse place à l'épinglage du package RBF |
| 47 | +d'une transaction partagée par des frais absolus. Une proposition pour [la politique de relais de transactions |
| 48 | +v3][topic v3 transaction relay] a été développée pour permettre aux protocoles de contrat d'opter pour un ensemble plus restrictif |
| 49 | +de limites de package. Les transactions V3 ne permettraient que des packages de taille deux (un parent et un enfant) et limiteraient |
| 50 | +le poids de l'enfant. Ces limites atténueraient l'épinglage RBF par des frais absolus et offriraient certains avantages du mempool |
| 51 | +en cluster sans nécessiter une restructuration du mempool. |
| 52 | + |
| 53 | +[Les Ancres Éphémères][topic ephemeral anchors] s'appuient sur les propriétés des transactions V3 et du relais de packages pour |
| 54 | +améliorer davantage les sorties d'ancrage. Elles exemptent les sorties d'ancrage appartenant à une transaction V3 à frais nuls de la |
| 55 | +[limite de poussière][topic uneconomical outputs], à condition que la sortie d'ancrage soit dépensée par un descendant qui augmente |
| 56 | +les frais. Étant donné que la transaction sans frais doit être augmentée de frais par exactement un descendant (sinon un mineur ne |
| 57 | +serait pas incité à l'inclure dans un bloc), cette sortie d'ancrage est "éphémère" et ne fera pas partie de l'ensemble UTXO. La |
| 58 | +proposition d'ancres éphémères empêche implicitement les sorties autres que les sorties d'ancrage d'être dépensées lorsqu'elles ne |
| 59 | +sont pas confirmées sans verrouillages temporels `1 OP_CSV`, puisque le seul descendant autorisé doit dépenser la sortie d'ancrage. |
| 60 | +Cela rendrait également [la symétrie LN][topic eltoo] réalisable avec [CPFP][topic cpfp] en tant que mécanisme de provisionnement |
| 61 | +des frais pour les transactions de fermeture de canal. Cela rend également ce mécanisme disponible pour les transactions partagées |
| 62 | +entre plus de deux participants. Les développeurs ont utilisé [bitcoin-inquisition][bitcoin inquisition repo] pour déployer les |
| 63 | +Ancres Éphémères et ont proposé des soft forks pour construire et tester ces changements multi-couches sur un [signet][topic signet]. |
| 64 | + |
| 65 | +Les problèmes d'épinglage mis en évidence dans ce post, entre autres, ont donné lieu à une [multitude de discussions et de |
| 66 | +propositions pour améliorer la politique RBF][2022 rbf] l'année dernière, sur les listes de diffusion, les PR, les |
| 67 | +réseaux sociaux et les réunions en personne. Les développeurs ont proposé et mis en œuvre des solutions allant de petites |
| 68 | +modifications à une refonte complète. L'option `-mempoolfullrbf`, destinée à résoudre les problèmes d'épinglage et les divergences |
| 69 | +dans les implémentations de BIP125, a mis en évidence la difficulté et l'importance de la collaboration dans la politique de relais |
| 70 | +de transactions. Bien qu'un véritable effort ait été fait pour impliquer la communauté en utilisant des moyens habituels, notamment |
| 71 | +en lançant la conversation sur la liste de diffusion bitcoin-dev un an à l'avance, il était clair que les méthodes de communication |
| 72 | +et de prise de décision existantes n'avaient pas produit le résultat escompté et nécessitaient des améliorations. |
| 73 | + |
| 74 | +La prise de décision décentralisée est un processus complexe, mais nécessaire pour soutenir l'écosystème diversifié des protocoles |
| 75 | +et des applications qui utilisent le réseau de relais de transactions de Bitcoin. La semaine prochaine, nous publierons notre |
| 76 | +dernier post de cette série, dans lequel nous espérons encourager nos lecteurs à participer et à améliorer ce processus. |
| 77 | + |
| 78 | +[mempool clustering]: https://github.com/bitcoin/bitcoin/issues/27677 |
| 79 | +[policy08]: /fr/newsletters/2023/07/05/#en-attente-de-confirmation-8--la-politique-comme-interface |
| 80 | +[2022 rbf]: /fr/newsletters/2022/12/21/#rbf |
0 commit comments