Aller au contenu principal
BIP

BIP-157

BIP-157 décrit le protocole de récupération des compact block filters par les light clients. Successeur de BIP-37 pour la confidentialité.

La couche réseau de Neutrino

BIP-157, écrit par Olaoluwa Osuntokun et Alex Akselrod en 2017, définit les messages P2P permettant aux light clients de demander à un full node les filtres compacts décrits dans BIP-158. Avec son partenaire BIP-158, il constitue le protocole Neutrino, utilisé par les wallets light modernes pour synchroniser leur historique sans télécharger toute la blockchain.

Les nouveaux messages P2P

| Message | Rôle | |---------|------| | getcfilters | Demande des filtres pour une plage de blocs | | cfilter | Envoi d'un filtre | | getcfheaders | Demande des headers de filtres | | cfheaders | Envoi des headers chainés | | getcfcheckpt | Points de checkpoint des filtres | | cfcheckpt | Réponse aux checkpoints |

Le client peut ainsi vérifier la chaîne des filtres sans télécharger les blocs eux-mêmes : tous les nœuds servant les filtres sont d'accord sur les mêmes valeurs, et un nœud malveillant ne peut pas mentir longtemps sans être détecté.

Le flux typique

  1. Le wallet télécharge les headers de blocs (80 octets chacun).
  2. Il télécharge les filter headers via getcfheaders.
  3. Pour chaque bloc qui l'intéresse, il télécharge le filtre via getcfilter.
  4. Il teste localement le filtre contre ses propres adresses.
  5. Si match, il télécharge le bloc complet via getdata.

Le serveur ne sait pas pour quelles adresses le wallet s'intéresse : il envoie le même filtre à tout le monde.

Avantages sur BIP-37

| Critère | BIP-37 | BIP-157/158 | |---------|--------|-------------| | Privacy serveur | Mauvaise (fuites) | Bonne (filtres déterministes) | | Charge serveur | Asymétrique | Symétrique | | Auditable | Non | Oui (tous les nœuds calculent pareil) | | DoS résistance | Faible | Forte |

Implémentations

  • LND Neutrino : référence, utilisé par Phoenix, Zeus, Mutiny.
  • btcd / btcwallet : compatible.
  • Wasabi Wallet 2 : implémentation cliente.
  • Bitcoin Core : option -blockfilterindex depuis 0.19.

À retenir

BIP-157 est la couche transport de la révolution des filtres compacts. Combiné à BIP-158, il rend possible des wallets ultra-légers et privés, idéaux pour mobile et embarqué. C'est aujourd'hui le standard de fait pour les light clients sérieux.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.