Utreexo est une amélioration proposée par Thaddeus Dryja, chercheur au MIT Digital Currency Initiative (et co-inventeur du Lightning Network) afin de réduire significativement la quantité de données à stocker par un nœud complet pour valider les transactions.
UTXO (Unspent transaction output) = sortie de transaction non dépensée
« Utreexo repose sur des arbres de Merkle, une structure de données qui facilite la vérification d’informations dans un format compact. C’est que l’on appelle un accumulateur. C’est une méthode cryptographique pour justifier l’appartenance d’une information donnée à un ensemble plus grand. Dans le cas d’Utreexo, on souhaite pouvoir vérifier que les UTXO dépensés en entrée d’une transaction appartiennent bien à l’ensemble des pièces non dépensées (l’UTXO set).
En utilisant des arbres de Merkle, Utreexo permet de créer une empreinte cryptographique, appelée racine de Merkle, qui condense de manière vérifiable l’ensemble des UTXO. Son principe central est la transformation de l’UTXO set en un arbre de Merkle binaire équilibré. Chaque feuille de l’arbre représente un UTXO, tandis que chaque nœud interne stocke le hachage cryptographique de la concaténation de ses deux enfants. En remontant l’arbre jusqu’à la racine (que l’on appelle également ‘Top Hash‘), on obtient un condensé cryptographique de l’ensemble des UTXO. Les nœuds Utreexo ne stockent ainsi que la racine des arbres de Merkle, au lieu de l’ensemble de tous les UTXO.
Lorsqu’un utilisateur effectue une transaction compatible Utreexo, il fournit à la fois la preuve de possession des UTXO dépensés, et les chemins de Merkle correspondants, qui permettent aux nœuds Utreexo de vérifier l’existence des UTXO dans l’arbre. Cette approche permet aux nœuds de valider les transactions sans avoir à stocker l’intégralité de l’UTXO set […]
Utreexo n’est cependant pas une solution magique. Elle nécessite de faire des concessions sur d’autres ressources comme la bande passante. Il faudra également choisir si l’on souhaite généraliser l’utilisation des preuves, et les inclure dans un espace spécial des blocs, ou si l’on préfère que les nœuds Utreexo reposent sur des Bridges Nodes. »
Extrait d’un article de Loïc Morel à lire sur https://www.pandul.fr/post/tout-savoir-sur-le-fonctionnement-d-utreexo