Nicolas Dorier publie une critique sur Neutrino
En août dernier nous avions eu la chance d’avoir une interview de Nicolas Dorier au Japon. Ce programmeur français expatrié suit de près l’évolution de Bitcoin et du Lightning Network, et il vient de publier un avis critique sur Neutrino, un client léger de BTC.
[coin-widget id= »bitcoin »]
Neutrino : une solution court-termiste, néfaste pour l’avenir ?
Rappelons tout d’abord que Neutrino (BIP 157 et BIP 158) voulait, par sa conception, être destiné aux transactions du réseau Lightning sur appareils mobiles. Ce client Bitcoin a en effet la particularité de ne pas télécharger toute la blockchain BTC (d’où le terme « léger »), et de ne récupérerque les infos nécessaires aux transactions de l’utilisateur, via une chaîne de filtres se superposant à la blockchain complète.
Sur son blog Medium, Nicolas Dorier explique que :
« (…) Neutrino est bien meilleur que le BIP37 en améliorant la confidentialité et facilitant la construction de wallet légers. Cependant, le problème est le suivant : il pourrait être utilisé d’une façon qui affaiblirait fondamentalement Bitcoin à long terme, tout en offrant des avantages à court terme à son utilisateur (…) ».
Les clients légers impliquent de faire confiance, mais à qui ?
Nicolas Dorier commence par signaler le fait que recevoir un filtre, ainsi que le bloc d’origine dont il a été tiré, qui ne soient ni l’un ni l’autre corrompus, implique de faire confiance soit :
- à un seul nœud tiers aléatoire sur le fait de ne pas mentir ;
- à plusieurs nœuds tiers, et de n’accepter qu’à la condition qu’ils se mettent d’accord ;
- aux mineurs, et de faire confiance au bloc avec le plus de preuve de travail (PoW) ;
- de faire confiance à son propre nœud.
Pour le programmeur, la troisième possibilité est clairement la plus risquée pour l’avenir de Bitcoin.
Il prend l’exemple du wallet Bitcoin Electrum, rappelant qu’il utilise l’option 1 et autorise la 4, ce qui leur avait joué des tours. Faire seulement confiance à son propre nœud est pour lui le meilleur choix pour un portefeuille léger.
Avantages & inconvénients des différentes options
Nicolas Dorier nous détaille ensuite les avantages et inconvénients de chacune de ces options de confiance.
Confiance en un seul nœud tiers aléatoire
- Pour : très facile à implémenter ; impossibilité de prévoir le comportement des utilisateurs si les mineurs provoquent un fork.
- Contre : risque de recevoir une fausse confirmation de paiement ; Neutrino a une faible utilité dans ce cas.
Confiance en plusieurs nœuds tiers
- Pour : complique la possibilité d’attaque ; impossibilité de prévoir ce qu’il se passera si les mineurs provoquent un fork.
- Contre : plus difficile à implémenter ; il reste un risque de recevoir une fausse confirmation de paiement, même si l’attaque est plus difficile à mener ; Neutrino a une faible utilité dans ce cas.
Confiance aux mineurs et au bloc avec le plus de preuve de travail
C’est le pire des choix selon Nicolas Dorier.
- Pour : facile à implémenter ; protection contre les faux paiements (en cas d’attaque ciblée).
- Contre : si tous les utilisateurs utilisent cette option, les mineurs peuvent modifier le consensus et « forker » avec peu de résistance.
En effet, dans le cas où des mineurs supporteraient des chaînes divergentes (« forkées ») cela pourrait créer une nouvelle cryptomonnaie et fortement compromettre BTC tel qu’il existait avant le fork (on a vu ce que ça a donné avec Bitcoin Cash). De plus le client Neutrino ne saura plus quelle chaîne choisir, et l’utilisateur sera sûrement bloqué dans ces transactions au moment de ce fork en « coup de force » des mineurs.
Confiance à son propre nœud
Le meilleur choix selon Nicolas Dorier.
- Pour : facile à implémenter ; permet de vérifier pleinement les règles du consensus bitcoin ; pas de faux paiements possibles ; ne laisse pas de pouvoir supplémentaire aux mineurs.
- Contre : difficile à déployer ; Neutrino a une faible utilité dans ce cas.
Nicolas Dorier conclut sur le fait que l’utilité de Neutrino ne se situe pas en tant que wallet Lightning léger à ses yeux, mais présente une autre utilité :
« Neutrino est inutile si tout ce que vous voulez, c’est un nœud Lightning travaillant sur un mobile (…) Neutrino est cool SEULEMENT pour les développeurs de wallets qui ne veulent pas traiter avec différentes API pour interroger l’état de leur nœud Lightning »
[es_tradingview symbol= »bitfinex:btcusd » interval= »D » height= »500″ colors= »Light »]