Bitcoin Core : L’algorithme du Bitcoin va évoluer

L’un des mécanismes techniques qui a permis d’établir des comparaisons du bitcoin avec l’argent liquide est sur le point de faire l’objet d’une mise à jour majeure.

Appelé « sélection de pièces« , ce terme fait référence à l’algorithme qui décide aujourd’hui quels bits de données se rassemblent pour créer la transaction d’un utilisateur. Essentiellement, le code de sélection des pièces de monnaie reproduit le processus consistant à donner, disons, un billet de 10 $ à un caissier pour un article de 7 $ et le consommateur reçoit 3 $ en monnaie.

Mais si cela ne semble pas particulièrement complexe, rappelez-vous que le bitcoin est un logiciel expérimental, et que cette fonction, tout en travaillant, n’est pas optimisée. Pire encore, la partie qui a peut-être besoin d’être modifiée a un impact direct sur les coûts d’utilisation.

« L’algorithme de sélection de pièces original du Bitcoin Core a besoin d’être retravaillé, en particulier en ce qui concerne les frais de transaction. C’est inefficace et cela finit par faire une boucle bizarre pour essayer de deviner le montant des frais de transaction qui sont nécessaires »

a déclaré Andrew Chow, collaborateur de Bitcoin Core, à CoinDesk.

Mark Erhardt un ingénieur chez le fournisseur de portefeuille BitGo est d’accord, allant jusqu’à appeler l’algorithme « alambiqué » lors d’une récente interview sur le podcast Noded.

Coindesk explique que les développeurs ont travaillé sur un nouvel algorithme, appelé « Branche et Lien » ou « BnB« , qui forge les données ensemble d’une manière plus efficace, ce qui se traduit par une petite bosse de mise à l’échelle et des frais de transaction moins élevés.

Erhardt a proposé quelques optimisations pour la première fois il y a presque deux ans, tandis que Chow a été le premier développeur à coder les changements.

Et récemment, le changement a été jugé prêt à être ajouté à l’implémentation dans le logiciel du BTC, appelé Bitcoin Core, et a donc été fusionné dans la base de code. Encore mieux pour les utilisateurs, la fonctionnalité devrait être disponible pour une utilisation généralisée avec la sortie de la 17ème version du logiciel dans l’année à venir.

 

Par exemple, lié à l’adresse de votre porte-monnaie Bitcoin pourrait être un élément de données valant 0,1 BTC, un autre valant 0,3 BTC, un autre de 0,1 BTC et un dernier, valant 0,5 BTC, pour constituer un Bitcoin entier.

Ces pièces sont basées sur les transactions qui les ont précédées et sur la façon dont elles ont été initialement divisées pour être envoyées dans votre portefeuille.

Ainsi, si vous avez besoin d’envoyer 0,2 BTC, l’algorithme de « sélection de pièces » de Bitcoin Core pourrait décider de mettre le morceau de données d’une valeur de 0,3 BTC dans ce que l’on appelle l’entrée, créant ainsi la transaction. Il y aura alors deux sorties : 0.2 BTC, qui sera envoyé au destinataire, et 0.1 BTC, qui sera remis dans votre portefeuille comme « sortie de changement ».

Pourtant, selon les développeurs, l’algorithme n’est pas très bon pour décider comment sélectionner les pièces pour les transactions.

L’algorithme crée presque toujours automatiquement des « sorties de changement », qui souvent ne sont pas nécessaires et gaspillent de l’espace sur la blockchain, explique Erhardt. Dans l’exemple ci-dessus, l’algorithme pourrait éviter cela en choisissant les deux données d’une valeur de 0,1 BTC et ne pas avoir à renvoyer le « changement » à l’expéditeur.

Il a poursuivi en parlant d’un autre effet secondaire malheureux :

« vous ne voulez pas que les transactions soient réduites en poussière. »

Les « poussières » sont des morceaux de Bitcoin qui sont si petits qu’ils ne valent presque pas la peine d’être dépensés, puisque les frais pourraient être plus élevés que la transaction elle-même. Ils sont peut-être analogues aux pièces de un cent, en ce sens qu’un cent coûte en fait plus cher à fabriquer qu’il ne vaut en fait pour l’achat de biens.

Le nouvel algorithme, BnB, évite ces émetteurs en essayant d’éliminer autant de scénarios de sortie de changement que possible. En bref, il examine toutes les entrées pour voir s’il y a un moyen d’atteindre exactement le nombre de bitcoins qu’un utilisateur veut envoyer dans une transaction.

Et il y a des preuves que ça marche. Dans une simulation, Erkhardt a constaté que, dans environ 40 % des transactions dont les résultats seraient normalement modifiés, le nouvel algorithme était en mesure de se débarrasser des données inutiles.

En plus de ces avantages pour l’utilisateur, le changement de code aide aussi les développeurs, puisque le nouvel algorithme est beaucoup plus facile à comprendre d’un point de vue technique.

Pourtant, les développeurs n’ont pas fini de peaufiner le processus de sélection des pièces de monnaie. Chow et d’autres prévoient d’aller plus loin dans l’algorithme, en ajoutant un « tirage au sort simple ».

Lorsque l’algorithme BnB passe par tous les UTXO de l’utilisateur d’un BTC et qu’il ne peut tout simplement pas éviter de créer une sortie de changement, il retombe alors sur le processus de sélection des pièces d’origine. Mais avec un tirage au sort simple, l’algorithme choisira des UTXOs aléatoires jusqu’à ce qu’il atteigne le montant d’argent requis.

Il est intéressant de noter que les développeurs trouvent que le choix aléatoire des pièces est une meilleure méthode que l’algorithme plus délibéré que Bitcoin Core utilise aujourd’hui.

 

Je suis un entrepreneur et un passionné d’économie de 36 ans, j’ai acheté mon premier bitcoin en aout 2015.