|
| 1 | +--- |
| 2 | +title: 'Bulletin Hebdomadaire Bitcoin Optech #306' |
| 3 | +permalink: /fr/newsletters/2024/06/07/ |
| 4 | +name: 2024-06-07-newsletter-fr |
| 5 | +slug: 2024-06-07-newsletter-fr |
| 6 | +type: newsletter |
| 7 | +layout: newsletter |
| 8 | +lang: fr |
| 9 | +--- |
| 10 | +Le bulletin de cette semaine annonce une divulgation prochaine de |
| 11 | +vulnérabilités affectant les anciennes versions de Bitcoin Core, décrit une proposition |
| 12 | +de BIP pour une nouvelle version de testnet, résume une proposition pour |
| 13 | +des covenants basés sur le chiffrement fonctionnel, examine une mise à jour de |
| 14 | +la proposition pour effectuer des opérations arithmétiques 64 bits dans Bitcoin Script, renvoie à un |
| 15 | +script pour valider la preuve de travail sur signet avec l'opcode `OP_CAT`, et |
| 16 | +examine une proposition de mise à jour de la spécification BIP21 des URI `bitcoin:`. |
| 17 | +Sont également incluses nos sections habituelles avec |
| 18 | +des annonces de mises à jour et versions candidates, ainsi que les changements |
| 19 | +apportés aux principaux logiciels d'infrastructure Bitcoin. |
| 20 | + |
| 21 | +## Nouvelles |
| 22 | + |
| 23 | +- **Divulgation à venir de vulnérabilités affectant les anciennes versions de Bitcoin Core :** |
| 24 | + plusieurs membres du projet Bitcoin Core ont [discuté][irc disclose] |
| 25 | + sur IRC d'une [politique de divulgation][disclosure policy] |
| 26 | + des vulnérabilités qui ont affecté les anciennes versions de Bitcoin Core. Pour |
| 27 | + les vulnérabilités de faible gravité, les détails seront divulgués environ deux |
| 28 | + semaines après la première version d'un Bitcoin Core qui |
| 29 | + élimine (ou atténue de manière satisfaisante) la vulnérabilité. Pour la plupart |
| 30 | + des autres vulnérabilités, les détails seront divulgués après que la dernière |
| 31 | + version de Bitcoin Core affectée par la vulnérabilité atteigne |
| 32 | + la fin de vie (ce qui est environ un an et demi après sa sortie). |
| 33 | + Pour les vulnérabilités critiques rares, les membres de l'équipe de sécurité de Bitcoin Core |
| 34 | + discuteront en privé du calendrier de divulgation le plus approprié. |
| 35 | + |
| 36 | + Une fois que ce calendrier sera défini en détail, les |
| 37 | + contributeurs commencerons à divulguer les vulnérabilités affectant |
| 38 | + Bitcoin Core 24.x et précédente. Il est **fortement recommandé** que tous |
| 39 | + les utilisateurs et administrateurs passent à Bitcoin Core 25.0 ou supérieur dans |
| 40 | + les deux prochaines semaines. L'idéal étant d'utiliser la version la plus récente |
| 41 | + possible, soit la dernière version (27.0 au moment de la rédaction) ou |
| 42 | + la dernière version dans une série de versions particulière (par exemple, 25.2 pour la |
| 43 | + série de versions 25.x ou 26.1 pour la série de versions 26.x). |
| 44 | + |
| 45 | + Comme cela a toujours été notre politique, Optech fournira des résumés de toutes |
| 46 | + les divulgations de sécurité significatives affectant l'un des projets d'infrastructure |
| 47 | + que nous surveillons (ce qui inclut Bitcoin Core). |
| 48 | + |
| 49 | +- **BIP et mise en œuvre expérimentale de testnet4 :** Fabian Jahr |
| 50 | + a [posté][jahr testnet4] sur la liste de diffusion Bitcoin-Dev pour annoncer une |
| 51 | + [proposition de BIP][bips #1601] pour testnet4, une nouvelle version de [testnet][topic |
| 52 | + testnet] conçue pour éliminer certains problèmes avec le testnet3 existant (voir le [Bulletin |
| 53 | + #297][news297 testnet]). Jahr renvoie également à |
| 54 | + une [pull request][bitcoin Core #29775] de Bitcoin Core avec une proposition de mise en œuvre. Testnet4 a |
| 55 | + deux différences notables par rapport à testnet3 : |
| 56 | + |
| 57 | + - *Moins de retours à la difficulté-1 :* il était facile (accidentellement ou |
| 58 | + délibérément) de réduire une période entière de 2 016 blocs à la |
| 59 | + difficulté minimale (difficulté-1) en minant le dernier bloc d'une |
| 60 | + période avec un horodatage de plus de 20 minutes après l'avant-dernier |
| 61 | + bloc. Désormais, la difficulté d'une période ne peut être ajustée qu'à la baisse, bien qu'il soit |
| 62 | + toujours possible d'exploiter tous les blocs individuels, à l'exception du premier bloc d'une |
| 63 | + nouvelle période, en difficulté-1 s'ils ont un horodatage plus de 20 minutes après le bloc précédent. |
| 64 | + |
| 65 | + - *Correction du time warp :* il était possible sur testnet3 (et également sur mainnet) de produire |
| 66 | + des blocs significativement plus rapidement qu'une fois toutes les 10 minutes sans augmenter la |
| 67 | + difficulté en exploitant l'[attaque time warp][topic time warp]. Testnet4 implémente maintenant la |
| 68 | + solution au time warp qui a été proposée dans le cadre du soft fork de [nettoyage du |
| 69 | + consensus][topic consensus cleanup] pour mainnet. |
| 70 | + |
| 71 | + Le BIP draft mentionne également quelques idées supplémentaires et alternatives pour testnet4 qui |
| 72 | + ont été discutées mais non utilisées. |
| 73 | + |
| 74 | +- **Covenants de chiffrement fonctionnel :** Jeremy Rubin a [publié][rubin fe post] sur Delving |
| 75 | + Bitcoin son [papier][rubin fe paper] concernant l'utilisation théorique du [chiffrement fonctionnel][] pour |
| 76 | + ajouter une gamme complète de comportements de [covenant][topic covenants] à Bitcoin sans |
| 77 | + besoin de changements de consensus. Fondamentalement, cela nécessiterait que les utilisateurs des |
| 78 | + covenants fassent confiance à un tiers, bien que cette confiance puisse être distribuée entre |
| 79 | + plusieurs parties où une seule d'entre elles aurait besoin d'avoir agi honnêtement à un moment |
| 80 | + donné. |
| 81 | + |
| 82 | + Le chiffrement fonctionnel permettrait essentiellement la création d'une clé publique qui correspondrait |
| 83 | + à un programme particulier. Une partie qui pourrait satisfaire le programme serait capable de créer |
| 84 | + une signature qui correspondrait à la clé publique (sans jamais découvrir une clé privée |
| 85 | + correspondante). |
| 86 | + |
| 87 | + Rubin note que cela a un avantage sur les propositions de covenant existantes en ce que toutes les |
| 88 | + opérations (à l'exception de la vérification de la signature résultante) se produisent off-chain |
| 89 | + et aucune donnée (à l'exception de la clé publique et de la signature) n'a besoin d'être publiée on-chain |
| 90 | + C'est toujours plus privé et économisera souvent de l'espace. Plusieurs programmes de |
| 91 | + covenant peuvent être utilisés dans le même script en effectuant plusieurs vérifications de |
| 92 | + signature. |
| 93 | + |
| 94 | + Outre le besoin d'une configuration de confiance, Rubin décrit l'autre inconvénient majeur du |
| 95 | + chiffrement fonctionnel comme étant une "cryptographie sous-développée qui |
| 96 | + rend son utilisation actuellement peu pratique". |
| 97 | + |
| 98 | +- **Mises à jour de la proposition de soft fork pour l'arithmétique 64 bits :** Chris Stewart a |
| 99 | + [publié][stewart 64bit] sur Delving Bitcoin pour annoncer une mise à jour de sa proposition |
| 100 | + précédente d'ajouter la capacité de travailler avec des nombres 64 bits dans Bitcoin Script (voir |
| 101 | + les Bulletins [#285][news285 64bit] et [#290][news290 64bit]). Les principaux changements sont : |
| 102 | + |
| 103 | + - *Mise à jour des opcodes existants :* au lieu d'ajouter de nouveaux opcodes comme `OP_ADD64`, les |
| 104 | + opcodes existants (par exemple, `OP_ADD`) sont mis à jour pour fonctionner avec des nombres 64 bits. |
| 105 | + Étant donné que l'encodage pour les grands nombres est différent de celui actuellement utilisé pour |
| 106 | + les petits nombres, les fragments de script qui sont mis à niveau pour utiliser de grands nombres |
| 107 | + peuvent nécessiter d'être révisés ; Stewart donne l'exemple de `OP_CHECKLOCKTIMEVERIFY` qui doit |
| 108 | + maintenant prendre un paramètre de 8 octets plutôt qu'un paramètre de 5 octets. |
| 109 | + |
| 110 | + - *Le résultat inclut un booléen :* une opération réussie place non seulement le résultat sur la |
| 111 | + pile, mais aussi un booléen sur la pile qui indique que l'opération a été réussie. Une raison |
| 112 | + courante pour laquelle une opération pourrait échouer est parce que le résultat est plus grand que |
| 113 | + 64 bits, dépassant la taille du champ. Le code peut utiliser `OP_VERIFY` pour s'assurer que |
| 114 | + l'opération a été réussie. |
| 115 | + |
| 116 | + Anthony Towns [a répondu][towns 64bit] en plaidant pour une approche alternative |
| 117 | + où les opcodes par défaut échouent en cas de dépassement de capacité, |
| 118 | + plutôt que de nécessiter que les scripts vérifient en plus que les opérations ont été réussies. |
| 119 | + Pour les cas où il pourrait être utile de tester si une opération pourrait |
| 120 | + entraîner un dépassement de capacité, de nouveaux opcodes comme `ADD_OF` seraient disponibles. |
| 121 | + |
| 122 | +- **Script `OP_CAT` pour valider la preuve de travail :** Anthony Towns |
| 123 | + [a posté][towns powcat] sur Delving Bitcoin à propos d'un script pour |
| 124 | + [signet][topic signet] qui utilise [OP_CAT][topic op_cat] pour permettre |
| 125 | + à quiconque de dépenser des pièces envoyées au script en utilisant la preuve de travail (PoW). |
| 126 | + Cela peut être utilisé comme un faucet de signet-bitcoin décentralisé : quand un |
| 127 | + mineur ou un utilisateur obtient des bitcoins signet en excès, ils les envoient au script. |
| 128 | + Lorsqu'un utilisateur souhaite obtenir plus de bitcoins signet, il recherche dans l'ensemble UTXO |
| 129 | + les paiements au script, génère une PoW, et crée une transaction |
| 130 | + qui utilise leur PoW pour réclamer les pièces. |
| 131 | + |
| 132 | + Le post de Towns décrit le script et la motivation de plusieurs |
| 133 | + choix de conception. |
| 134 | + |
| 135 | +- **Mise à jour proposée pour le BIP21 :** Matt Corallo [a posté][corallo bip21] sur |
| 136 | + la liste de diffusion Bitcoin-Dev à propos de la mise à jour de la spécification [BIP21][] |
| 137 | + pour l'URI `bitcoin:`. Comme discuté précédemment (voir |
| 138 | + le [Bulletin #292][news292 bip21]), presque tous les portefeuilles Bitcoin utilisent le schéma URI |
| 139 | + différemment de ce qui était spécifié, et des changements supplémentaires dans les protocoles de |
| 140 | + facturation entraîneront probablement des changements supplémentaires dans |
| 141 | + l'utilisation du BIP21. Les principaux changements dans la [proposition][bips #1555] |
| 142 | + incluent : |
| 143 | + |
| 144 | + - *Plus que base58check :* BIP21 s'attend à ce que chaque adresse Bitcoin utilise |
| 145 | + l'encodage base58check, mais cela n'est utilisé que pour les adresses héritées pour |
| 146 | + les sorties P2PKH et P2SH. Les sorties modernes utilisent [bech32][topic bech32] |
| 147 | + et bech32m. Les paiements futurs seront reçus aux adresses de [paiement silencieux][topic silent |
| 148 | + payments] et le protocole [offres][topic offers] de LN, qui seront très certainement utilisés comme |
| 149 | + charge utile de BIP21. |
| 150 | + |
| 151 | + - *Corps vide :* BIP21 exige actuellement qu'une adresse Bitcoin soit fournie dans |
| 152 | + la partie corps de la charge utile, avec des paramètres de requête fournissant |
| 153 | + des informations supplémentaires (telles qu'un montant à payer). Les nouveaux protocoles de |
| 154 | + paiement, comme le [protocole de paiement BIP70][topic bip70 payment protocol], ont spécifié de |
| 155 | + nouveaux paramètres de requête à utiliser (voir |
| 156 | + [BIP72][]), mais les clients qui ne comprenaient pas le paramètre |
| 157 | + se contentaient d'utiliser l'adresse dans le corps. Dans certains cas, |
| 158 | + les destinataires peuvent ne pas vouloir revenir à l'un des types d'adresses de base |
| 159 | + (base58check, bech32 ou bech32m), comme les utilisateurs soucieux de leur vie privée utilisant des |
| 160 | + paiements silencieux. La mise à jour proposée permet au champ du corps d'être vide. |
| 161 | + |
| 162 | + - *Nouveaux paramètres de requête :* la mise à jour décrit trois nouvelles clés : |
| 163 | + `lightning` pour les factures [BOLT11][] (actuellement utilisées), `lno` pour les offres LN |
| 164 | + (proposées), et `sp` pour les paiements silencieux (proposés). Elle décrit également comment les |
| 165 | + clés pour les futurs paramètres devraient être nommées. |
| 166 | + |
| 167 | + Corallo note dans son post que les changements sont sûrs pour tous les cas connus |
| 168 | + Les logiciels déployés comme portefeuilles ignoreront ou rejetteront tout URI `bitcoin:` qu'ils ne |
| 169 | + peuvent pas analyser avec succès. |
| 170 | + |
| 171 | +## Mises à jour et versions candidates |
| 172 | + |
| 173 | +*Nouvelles versions et versions candidates pour les principaux projets |
| 174 | +d'infrastructure Bitcoin. Veuillez envisager de passer aux nouvelles |
| 175 | +versions ou d'aider à tester les versions candidates.* |
| 176 | + |
| 177 | +- [Core Lightning 24.05rc2][] est un candidat à la version pour la prochaine version majeure de |
| 178 | + cette populaire implémentation de nœud LN. |
| 179 | + |
| 180 | +- [Bitcoin Core 27.1rc1][] est un candidat à la version pour une version de maintenance de |
| 181 | + l'implémentation de nœud complet prédominante. |
| 182 | + |
| 183 | +### Changements notables dans le code et la documentation |
| 184 | + |
| 185 | +_Changements récents notables dans [Bitcoin Core][bitcoin core repo], [Core Lightning][core |
| 186 | +lightning repo], [Eclair][eclair repo], [LDK][ldk repo], [LND][lnd repo], |
| 187 | +[libsecp256k1][libsecp256k1 repo], [Interface de Portefeuille Matériel (HWI)][hwi repo], [Rust |
| 188 | +Bitcoin][rust bitcoin repo], [Serveur BTCPay][btcpay server repo], [BDK][bdk repo], [Propositions |
| 189 | +d'Amélioration de Bitcoin (BIPs)][bips repo], [Lightning BOLTs][bolts repo], [Lightning BLIPs][blips |
| 190 | +repo], [Inquisition Bitcoin][bitcoin inquisition repo], et [BINANAs][binana repo]._ |
| 191 | + |
| 192 | +- [Core Lightning #7252][] change le comportement de `lightningd` pour ignorer le paramètre |
| 193 | + `ignore_fee_limits` lors d'une fermeture de canal coopérative. Cela corrige un problème où un nœud |
| 194 | + qui ouvre des canaux Core Lightning (CLN) paie trop de frais lorsque la contrepartie est un nœud LDK. |
| 195 | + Dans ce scénario, lorsque le nœud non-ouvreur LDK (Alice) initie une fermeture de canal coopérative |
| 196 | + et commence la négociation des frais, le nœud ouvreur CLN (Bob) répond que les frais peuvent être |
| 197 | + n'importe quoi entre `min_sats` et `max_channel_size` en raison du paramètre `ignore_fee_limits`. |
| 198 | + LDK [choisira][ldk #1101] "toujours le montant le plus élevé autorisé" (contrairement à la |
| 199 | + spécification des BOLTs), donc Bob choisit la limite supérieure, et Alice accepte, ce qui amènera |
| 200 | + Alice à diffuser une transaction avec des frais considérablement surévalués. |
| 201 | + |
| 202 | +- [LDK #2931][] améliore les journaux lors de la recherche de chemin pour inclure des données |
| 203 | + supplémentaires sur les canaux directs, par exemple, s'ils sont manquants, leur montant minimum |
| 204 | + [HTLC][topic htlc], et leur montant maximum HTLC. L'ajout de journaux vise à mieux dépanner les |
| 205 | + problèmes de routage en fournissant une visibilité sur la liquidité disponible et les limitations de |
| 206 | + chaque canal. |
| 207 | + |
| 208 | +- [Rust Bitcoin #2644][] ajoute HKDF (HMAC (Hash-based Message Authentication Code) |
| 209 | + Extract-and-Expand Key Derivation Function) au composant `bitcoin_hashes` pour implémenter |
| 210 | + [BIP324][] dans Rust Bitcoin. HKDF est utilisé pour dériver des clés cryptographiques à partir d'une |
| 211 | + source de matériel de clé de manière sécurisée et standardisée. BIP324 (également connu sous le nom |
| 212 | + de [transport P2P v2][topic v2 p2p transport]) est une méthode permettant aux nœuds Bitcoin de |
| 213 | + communiquer les uns avec les autres sur des connexions cryptées (activées par défaut dans Bitcoin |
| 214 | + Core). |
| 215 | + |
| 216 | +- [BIPs #1541][] ajoute [BIP431][] avec une spécification des transactions Topologically Restricted |
| 217 | + Until Confirmation ([TRUC][topic v3 transaction relay]) (transactions v3) qui sont un sous-ensemble |
| 218 | + de transactions standard avec des règles supplémentaires conçues pour permettre le |
| 219 | + [remplacement de transaction][topic rbf] tout en minimisant le coût pour surmonter les attaques de |
| 220 | + [transaction-pinning][topic transaction pinning]. |
| 221 | + |
| 222 | +- [BIPs #1556][] ajoute [BIP337][] avec une spécification des _transactions compressées_, un |
| 223 | + protocole de sérialisation pour compresser les transactions bitcoin afin de réduire leur taille |
| 224 | + jusqu'à 50%. Elles sont pratiques pour la transmission à faible bande passante comme par satellite, |
| 225 | + radio HAM, ou à travers la stéganographie. Deux commandes RPC sont proposées : |
| 226 | + `compressrawtransaction` et `decompressrawtransaction`. Voir le Bulletin [#267][news267 bip337] |
| 227 | + pour une explication plus détaillée du BIP337. |
| 228 | + |
| 229 | +- [BLIPs #32][] ajoute [BLIP32][] décrivant comment les instructions de paiement Bitcoin lisibles |
| 230 | + par l'homme basées sur une proposition DNS (voir le [Bulletin #290][news290 omdns]) peuvent être utilisées |
| 231 | + avec [les messages en onion][topic onion messages] pour permettre l'envoi de paiements à une adresse |
| 232 | + telle que `[email protected]`. Par exemple, Alice donne instruction à son client LN de payer Bob. Son |
| 233 | + client peut ne pas être capable de résoudre de manière sécurisée les adresses DNS directement, mais |
| 234 | + il peut utiliser un message en onion pour contacter l'un de ses pairs qui annonce un service de |
| 235 | + résolution DNS. Le pair récupère l'enregistrement DNS TXT pour l'entrée `bob` à `example.com` et |
| 236 | + place les résultats ainsi qu'une signature [DNSSEC][] dans une réponse de message en onion à Alice. |
| 237 | + Alice vérifie l'information et l'utilise pour demander une facture à Bob en utilisant le protocole |
| 238 | + [offres][topic offers]. |
| 239 | + |
| 240 | +{% assign four_days_after_posting = page.date | date: "%s" | plus: 345600 | date: "%Y-%m-%d 14:30" |
| 241 | +%} |
| 242 | +{% include snippets/recap-ad.md when=four_days_after_posting %} |
| 243 | +{% include references.md %} |
| 244 | +{% include linkers/issues.md v=2 issues="7252,2931,2644,1541,1556,32,1601,29775,1555,1101" %} |
| 245 | +[rubin fe paper]: https://rubin.io/public/pdfs/fedcov.pdf |
| 246 | +[core lightning 24.05rc2]: https://github.com/ElementsProject/lightning/releases/tag/v24.05rc2 |
| 247 | +[news290 omdns]: /fr/newsletters/2024/02/21/#instructions-de-paiement-bitcoin-lisibles-par-l-homme-basees-sur-dns |
| 248 | +[dnssec]: https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions |
| 249 | +[jahr testnet4]: https://mailing-list.bitcoindevs.xyz/bitcoindev/a6e3VPsXJf9p3gt_FmNF_Up-wrFuNMKTN30-xCSDHBKXzXnSpVflIZIj2NQ8Wos4PhQCzI2mWEMvIms_FAEs7rQdL15MpC_Phmu_fnR9iTg=@protonmail.com/ |
| 250 | +[news297 testnet]: /fr/newsletters/2024/04/10/#discussion-sur-la-reinitialisation-et-la-modification-du-testnet |
| 251 | +[rubin fe post]: https://delvingbitcoin.org/t/fed-up-covenants/929 |
| 252 | +[chiffrement fonctionnel]: https://en.wikipedia.org/wiki/Functional_encryption |
| 253 | +[stewart 64bit]: https://delvingbitcoin.org/t/64-bit-arithmetic-soft-fork/397/49 |
| 254 | +[towns 64bit]: https://delvingbitcoin.org/t/64-bit-arithmetic-soft-fork/397/50 |
| 255 | +[news285 64bit]: /fr/newsletters/2024/01/17/#proposition-de-soft-fork-pour-l-arithmetique-sur-64-bits |
| 256 | +[news290 64bit]: /fr/newsletters/2024/02/21/#discussion-continue-sur-l-arithmetique-64-bits-et-l-opcode-op-inout-amount |
| 257 | +[towns powcat]: https://delvingbitcoin.org/t/proof-of-work-based-signet-faucet/937 |
| 258 | +[corallo bip21]: https://mailing-list.bitcoindevs.xyz/bitcoindev/[email protected]/ |
| 259 | +[news292 bip21]: /fr/newsletters/2024/03/06/#mise-a-jour-des-uri-bitcoin-de-bip21 |
| 260 | +[irc disclose]: https://bitcoin-irc.chaincode.com/bitcoin-core-dev/2024-06-06#1031717; |
| 261 | +[disclosure policy]: https://gist.github.com/darosior/eb71638f20968f0dc896c4261a127be6 |
| 262 | +[Bitcoin Core 27.1rc1]: https://bitcoincore.org/bin/bitcoin-core-27.1/ |
| 263 | +[news289 v3]: /fr/newsletters/2024/02/14/#bitcoin-core-28948 |
| 264 | +[news296 v3]: /fr/newsletters/2024/04/03/#bitcoin-core-29242 |
| 265 | +[news305 v3]: /fr/newsletters/2024/05/31/#bitcoin-core-29873 |
| 266 | +[news267 bip337]: /fr/newsletters/2023/09/06/#compression-des-transactions-bitcoin |
0 commit comments