Découvrez dans ce nouvel épisode de masterclass ce que sont les lightweight wallets et les filtres de Bloom.
Les lightweight wallets
Après avoir évoqué le processus de création d’en-tête de bloc par les mineurs et le transfert du nouveau bloc au travers du réseau de nœud afin de mettre à jour la blockchain, découvrons les “lightweight wallets”.
Les lightweight wallets, ou portefeuilles légers, utilisent la technologie SPV (Simplified Payment Verification) dans le but de ne télécharger qu’une partie de la blockchain.
En somme, les nœuds classiques , ou “full nodes” gardent les données de la blockchain dans son intégralité et les mettent à jour constamment. Ils sont les garants de l’intégrité et de la sécurité du réseau.
Tandis que les portefeuilles légers ne téléchargent qu’une partie de la blockchain. Ils ne prennent que les informations nécessaires, ce qui permet donc de réduire la bande passante et de faciliter les transactions.
Cela permet donc à des portefeuilles mobiles d’être connectés à la blockchain tout en étant dans la capacité d’être reliés à ce logiciel blockchain sans pour autant nécessiter une grande puissance.
Pour faire simple, les “full nodes” sont en communication directe avec les portefeuilles légers. Par exemple, si un utilisateur possède deux adresses, il peut demander aux nœuds validateurs de ne lui fournir que les informations concernant les transactions de ces adresses en question.
Les filtres bloom
Cependant, dans ce processus, les nœuds peuvent alors révéler l’identité et compromettre la confidentialité et la sécurité des données de l’utilisateur du portefeuille léger. En effet, l’utilisateur ne veut pas que l’on sache que ces adresses correspondent à son wallet.
C’est ici qu’interviennent les “bloom filters”, ou les filtres Bloom. Ils agissent comme filtre et permettent de cacher les informations importantes de l’utilisateur. C’est pourquoi cette technologie des SPV ne pourrait êgtre viable sans ces filtres.
Les filtres bloom sont des séquences de bits qui sont créées grâce à 3 fonctions de hachage successives de la PKH de l’adresse de l’utilisateur.
Si un utilisateur de portefeuille léger ne désire recevoir que les informations de son wallet 1, le PKH (hash de sa clé privée) de son wallet 1 est alors une nouvelle fois haché par trois fonctions successives.
Le premier hashing place tous les bits à 0. Le deuxième hashing et le troisième hashing placent finalement des bits à une valeur de 1 dans le filtre. Grâce à ce hashing, les informations de l’utilisateur ne sont jamais communiquées. Seuls des chiffres dans le filtre sont présentés aux nœuds complets.
Pour faire simple, les filtres bloom sont des suites de chiffres formés grâce au hashing des PKH des données outputs des adresses sélectionnées.
“Pour chaque output d’une transaction, le nœud teste si un PKH correspond au filtre.”
Le nœud complet qui recoit le filtre passe donc les transactions par le même processus des 3 hachages successifs. Et si le code de bits (constitué de 0 et 1) correspond à celui du filtre, alors le nœud sait quelles adresses communiquer aux portefeuilles légers.
Avantages et inconvénients
Il est également bon de signaler que ce processus est nécessaire puisque nous pouvons utiliser les mêmes adresses avec plusieurs portefeuilles différents. Les portefeuilles légers ont toujours besoin de demander aux nœuds ces informations. Même lorsque c’est à propos de leurs propres transactions qu’ils ont créées en premier lieu.
De plus, le wallet possède la transaction comme “unspend” et nécessite toujours la validation du nœud pour être visible.
“Le but du filtre Bloom est d’améliorer la confidentialité des utilisateurs.
Le niveau de confidentialité peut être contrôlé en réglant le rapport entre le nombre de 1 dans le filtre bloom et la taille du filtre bloom. Plus il y a de 1 dans le filtre bloom, plus il y a de “faux positifs” en fonction de la taille du filtre bloom.
Plus de faux positifs signifie que le nœud complet enverra davantage de transactions sans rapport avec le portefeuille. Plus elles sont “sans rapport” avec les transactions, cela signifiera plus de trafic de données gaspillé, mais aussi une confidentialité améliorée.”
En effet, malgré une confidentialité améliorée, la vérification des filtres bloom repose sur un système de haute probabilité. Qui peut donc être très intensif :
“Cette analyse est gourmande en traitement et en disque et peut prendre plusieurs minutes, en fonction du matériel du nœud complet. Ce fait peut être utilisé de manière malveillante pour attaquer des nœuds complets afin qu’ils deviennent “sans réponse”, lors d’une attaque par déni de service (DoS).”
Sources : Grokking Bitcoin, LearnMeaBitcoin.
Sur le même sujet :