Bitcoin Core 0.20.0 – Quelles nouveautés ?

1
1298

Traduction d’un article d’Aaron van Wirdum publié le 3 juin 2020 dans Bitcoin Magazine :

Aujourd’hui [Ndt : le 3 juin 2020] marque la sortie officielle de Bitcoin Core 0.20.0 , la vingtième version majeure du client logiciel original de Bitcoin lancé par Satoshi Nakamoto il y a plus de 11 ans. 

Supervisée par Wladimir van der Laan, Bitcoin Core 0.20.0 a été développé par plus de 100 contributeurs en l’espace d’environ six mois. Résultat de la fusion de plus de 500 « pull requests », cette version majeure nettoie et ossifie un peu plus le code de base du logiciel, fait progresser l’intégration des hardware wallets, améliore la fiabilité du réseau et intègre diverses améliorations.

Voici quelques-uns des changements les plus notables.

Une étape supplémentaire dans l’intégration des hardware wallets dans l’interface graphique

Bitcoin Core est compatible avec les hardware wallets depuis la version 0.18.0. Cependant, les utilisateurs ne peuvent pas encore effectuer de transactions avec un hardware wallet à partir de l’interface graphique (GUI) de Bitcoin Core et doivent utiliser l’interface en ligne de commande (CLI).

Bitcoin Core 0.20.0 fait un pas de plus vers l’intégration des hardware wallets. Les utilisateurs peuvent désormais créer une transaction sans signature dans l’interface graphique de Bitcoin Core en utilisant le format de transaction PSBT [NdT : partially signed bitcoin transaction], et la copier dans leur presse-papier. Une fois copié, ils peuvent transférer la transaction sur leur hardware wallet pour la signer, mais ce transfert n’est pas encore automatisé et la diffusion de la transaction nécessite toujours l’utilisation de l’interface en ligne de commande.

Les futures versions de Bitcoin Core continueront de faire progresser l’intégration des hardware wallets.

Asmap pour une connectivité réseau plus fiable

Bitcoin Core se connecte à plusieurs homologues (autres nœuds) sur le réseau Bitcoin. Le logiciel mappe ces nœuds en fonction de leurs adresses IP, dans le but d’établir des connexions avec des homologues de régions et de fournisseurs de services Internet (FAI) divers. Si un nœud reçoit des blocs et des transactions de pairs répartis dans le monde entier, cela diminue le risque que certaines données (comme une transaction spécifique) soient bloquées.

Bitcoin Core mappe actuellement les adresses IP par groupes d’opérateurs de réseau. Cependant, plusieurs de ces groupes font dans les faits partie du même système autonome (AS) : des clusters d’opérateurs de réseau qui partagent des routes Internet clés, et donc transitent potentiellement par les mêmes goulots d’étranglement de routage où les données pourraient potentiellement être filtrées.

Bitcoin Core 0.20.0 introduit une nouvelle option de configuration appelée Asmap, qui mappe les adresses IP par numéros d’AS. Cela garantit que le nœud se connecte à des homologues de différents AS, réduisant ainsi les goulots d’étranglement potentiels du réseau et limitant ainsi davantage le risque de rétention de données spécifiques. (Le mappage des adresses IP par groupes d’opérateurs de réseau reste cependant la configuration par défaut pour l’instant.)

Suppression des messages de rejet BIP61

Les messages de rejet (BIP61) sont des notifications qu’un nœud envoie lorsqu’il rejette une transaction reçue d’un homologue (parce que la transaction n’est pas valide, parce que les frais ne sont pas suffisants ou pour tout autre raison).

Les développeurs de Bitcoin Core ne considèrent cependant pas les messages de rejet comme très utiles. Plus important encore, les pairs ne sont pas contraints de renvoyer un message de rejet. En d’autres termes, si un nœud ne reçoit pas de message de rejet, cela ne signifie pas nécessairement que la transaction a été acceptée. Cela limite l’utilité des messages, alors qu’il existe de meilleures solutions pour vérifier qu’une transaction est valide et comprend suffisamment de frais. En outre ces messages complexifiaient le protocole pair-à-pair et consommaient de la bande passante.

Les messages de rejet BIP61 avaient donc été désactivés par défaut dans Bitcoin Core 0.18.0. A présent Bitcoin 0.20.0 supprime complètement cette fonctionnalité.

Suppression du protocole de paiement BIP70 (et OpenSSL)

Le protocole de paiement BIP 70 a été conçu il y a plusieurs années pour améliorer l’expérience de paiement de Bitcoin. Un utilisateur et un marchand pouvaient communiquer des détails supplémentaires sur un paiement, tels qu’une adresse de destination lisible par l’homme (le nom du commerçant) et une adresse de remboursement si le produit ne convenait pas.

Bien que Bitcoin Core ait intégré ce protocole de paiement, la norme n’a jamais été largement adoptée. La plupart des portefeuilles utilisent toujours le schéma d’URI plus basique (BIP21) : un lien cliquable ou un QR code scannable qui communiquent l’adresse et le montant du paiement.

Plus grave que l’absence d’adoption, le protocole de paiement BIP70 a montré au fil des ans un certain nombre de vulnérabilités touchant à la sécurité et à la confidentialité. Plus particulièrement, sa dépendance à l’égard de la bibliothèque de logiciels OpenSSL pour les fonctions cryptographiques a nécessité une série de mises à niveau d’urgence. Certains portefeuilles Bitcoin ont, pour ces raisons, complètement rejeté l’exécution du BIP70.

Bitcoin Core 0.19.0 avait déjà supprimé ce protocole de paiement de l’interface graphique, mais les utilisateurs pouvaient toujours compiler leur nœud avec une configuration spéciale pour utiliser cette fonctionnalité. Bitcoin Core 0.20.0 l’a désormais complètement supprimée.

Avec la suppression du protocole BIP70 (et certains autres ajustements logiciels), Bitcoin Core a également pu supprimer complètement OpenSSL.

Une nouvel RPC pour un lancement plus rapide

Un nouvel appel de procédure à distance (RPC) [Ndt : remote procedure call] permet à Bitcoin Core 0.20.0 de générer un instantané de l’ensemble des UTXO [Ndt : Unspent transaction outputs = sorties non dépensées] telles qu’elles sont enregistrées sur la blockchain à un moment précis (hauteur du bloc). Cet instantané peut être partagé.

Les futures versions de Bitcoin Core partageront cet instantané lorsque les pairs rejoindront le réseau pour la première fois. Cela permet aux nouveaux nœuds d’être utilisables tout de suite [Ndt : pour réaliser des transactions], sans avoir à attendre la vérification complète de la blockchain qui se poursuivra en arrière-plan. 

Pour une liste plus complète des mises à niveau, consultez également les notes de publication de Bitcoin Core 0.20.0 .

Merci à Sjors Provoost pour ses informations et commentaires.

Aaron van Wirdum


Source : https://bitcoinmagazine.com/articles/bitcoin-core-0-20-0-released-whats-new