Partager cet article

Comment sauver le réseau de nœuds de Bitcoin de la centralisation

Jameson Lopp de BitGo LOOKS pourquoi le nombre de nœuds Bitcoin diminue sur le réseau et discute de ce qui pourrait inverser la tendance.

cost benefit

La décentralisation est, à mon avis, la propriété la plus importante du réseau Bitcoin . Sans elle, de nombreuses autres propriétés du réseau, comme sa capacité à faciliter les transactions sans intervention de tiers ou à fournir une plateforme d'innovation sans autorisation, seraient compromises.

De nombreuses facettes contribuent à la décentralisation du bitcoin, la plus importante étant le réseau de nœuds qui composent l’infrastructure du bitcoin en détenant des copies de la blockchain et en partageant les données de blocs et de transactions sur le réseau.

A História Continua abaixo
Ne manquez pas une autre histoire.Abonnez vous à la newsletter Crypto Daybook Americas aujourd. Voir Toutes les Newsletters

Et pourtant, malgré leur importance, le nombre denœuds a diminué pendant des années, ce qui a sans doute centralisé le réseau.

Diapositive 077
Diapositive 077

J'ai étéécrire sur le déclindans le nombre de nœuds depuis quelques années et j'ai surveillé mes nœuds avec leStatoshi logiciel que j'ai publié en 2014. Parce que la performance des nœuds et du réseau Bitcoin en général est devenue un sujet HOT ces derniers temps débats sur l'évolutivitéJ’espère apporter un peu de lumière sur quelques points qui n’ont T reçu beaucoup d’attention.

Aux débuts de Bitcoin, la seule façon de participer au réseau était d'exécuter un nœud complet. Au fil des ans, l'écosystème s'est développé et les utilisateurs ont désormais le choix entre de nombreuses options de portefeuilles. La plupart des portefeuilles actuels sont soit des clients légers qui interrogent des nœuds complets pour obtenir des données, soit hébergés par des tiers et ne nécessitent donc pas l'exécution d'un nœud complet.

Par conséquent, la plupart des nouveaux utilisateurs choisissent de ne pas exploiter un nœud complet, tandis que certains opérateurs de nœuds existants ont choisi de fermer le leur. De combien de nœuds Bitcoin a-t-il réellement besoin ?

Selon votre point de vue, vous pourriez arriver à plusieurs conclusions :

  • Un: Étant donné que Bitcoin est sans confiance, le seul nœud qui compte est le nœud que vous exécutez.
  • Des centaines : ou suffisamment pour qu’il soit impossible pour une seule entité de fermer une partie importante du réseau en raison de la diversité géographique et juridictionnelle.
  • Des milliers : suffisamment pour répondre à la forte demande de connexions des clients SPV. Les clients SPV ne sont pas uniquement des portefeuilles, mais peuvent également être des applications peer-to-peer commePhare.

À l'opposé, on ne peut jamais avoir trop de nœuds ni trop décentraliser le réseau. Cela dit, comment réagir au fait que moins de 1 % des utilisateurs de Bitcoin utilisent un nœud complet ?

Lorsque j'ai interrogé Pieter Wuille, développeur de Bitcoin CORE , il y a plusieurs années sur l'importance du nombre de nœuds, il a répondu ceci :

« Les nœuds complets garantissent l'intégrité du réseau. Et ce n'est pas tant une question de nombre, mais plutôt de difficulté à en gérer un. »

Pieter est ONEun des développeurs Bitcoin les plus prolifiques en termes de code et de fonctionnalités ajoutées au protocole ; il maîtrise son sujet. Il est également l'auteur de Témoin séparé, ce qui, espérons-le, nous fournira une voie pour mettre en œuvre diverses solutions d’évolutivité pour Bitcoin.

Étant donné que Bitcoin est devenu suffisamment populaire pour que nous atteignions la limite stricte de 1 Mo sur la taille des blocs, il existe de nombreuses controverses sur la manière dont nous pouvons faire évoluer le réseau afin de prendre en charge davantage d'utilisateurs sans nuire à la décentralisation de Bitcoin.

Débat sur la taille des blocs

Un argument souvent évoqué lors du débat sur la taille des blocs repose sur le coût d'exploitation d'un nœud. Une théorie veut que des coûts plus élevés (tels que des besoins en ressources de calcul supplémentaires pour valider et relayer des blocs plus volumineux) entraînent une diminution du nombre de nœuds, et inversement.

Le développeur Paul Sztorc a introduit le concept de CONOP (coût de l'option nœud) dans son excellent article,Mesurer la décentralisationIl soutient que la baisse des coûts devrait inciter davantage de personnes à entreprendre des actions bénéfiques pour elles. Cet argument me paraît logique si l'on suppose qu'il n'y a T d'autres variables en jeu que le simple coût d'exploitation d'un nœud.

Plus loin dans cet article, nous discuterons d’autres facteurs susceptibles d’affecter le CONOP.

Après avoir observé et participé aux débats sur l'évolutivité au cours de l'année écoulée, je reviens sans cesse au même problème :il n'y a pas d'exigences minimales de ressources définies pour exécuter un nœud.

Par conséquent, les développeurs Bitcoin n'ont aucune cible à prendre en compte lorsqu'ils envisagent d'apporter des modifications au protocole qui entraîneraient une augmentation des besoins en ressources pour l'exécution d'un nœud complet. Si une spécification minimale doit être développée, elle devrait probablement s'appuyer sur le matériel actuel utilisé pour exécuter des nœuds complets.

Un appareil basé sur ARM, tel qu'un Raspberry Pi ou un ODROID+, semble être la configuration minimale viable actuelle pour exécuter un nœud. Il peut KEEP des blocs de 1 Mo, mais la synchronisation initiale de la blockchain (jusqu'au bloc 390 000) prend deux semaines en raison de la faible puissance du processeur.

Vous pouvez acheter unBitseedpour 170 $ ou unBitcoin Minipour 140 $. Si vous êtes un expert en technologie, vous pouvez créer le vôtre.Nœud Raspberry Pipour 100 $ ou vous pouvez construire un nœud assez puissantpour environ 200 $qui devrait pouvoir fonctionner correctement pendant plusieurs années.

Capture d'écran du 28/01/2016 à 16h47.30
Capture d'écran du 28/01/2016 à 16h47.30

Un autre problème négligé lors du débat sur le coût acceptable de l’exécution d’un nœud est que nous n’avons jamais défini la base d’utilisateurs cible pour l’exécution d’un nœud complet.

Les sondages démographiques menés au fil des ans continuent d'indiquer que la plupart des utilisateurs de Bitcoin sont des hommes caucasiens de moins de 30 ans, orientés vers la technologie, mais cela reflète la plupart des premiers utilisateurs de la Technologies .

Il semble y avoir un sentiment général dans la communauté selon lequel pour que le Bitcoin réussisse à long terme, nous devons trouver un moyen de le rendre accessible au plus grand nombre.

Cependant, comme le montre le graphique suivant de BitNodes, les nœuds sont fortement concentrés en Amérique du Nord et en Europe occidentale.

Capture d'écran du 28/01/2016 à 16h48.53
Capture d'écran du 28/01/2016 à 16h48.53

Qui souhaite-t-on confier la gestion d'un nœud complet ? La réponse naïve serait « tout le monde », mais c'est clairement impossible, car l'accès à Internet n'est pas encore généralisé.

Je soupçonne que l’accès fiable et abordable à Internet à haut débit est l’une des principales raisons de la répartition géographique actuelle des nœuds.

Gavin Andresen a dit un jour :

La plupart des gens ordinaires ne devraient pas utiliser un nœud complet. Nous avons besoin de nœuds complets toujours actifs, disposant de plus de huit connexions et d'une connexion Internet haut débit.

Données collectées avec Statoshi

montre qu'un nœud hautement connecté a besoin en moyenne de 200 Kb/s en aval et de 1,5 Mb/s en amont, bien que l'utilisation soit beaucoup plus irrégulière et puisse facilement connaître des pics de 2 Mb/s en aval et de 40 Mb/s en amont.

Selon AkamaiÉtat d'InternetSelon le rapport, la bande passante moyenne disponible est de 5 Mb/s, mais leur liste ne couvre qu'un quart du monde.

Les estimations montrent qu'en 2014seulement 60%de la population mondiale utilise Internet.

Une spécification de nœud minimale

Une spécification minimale bien conçue doit définir des objectifs pour les caractéristiques de performance souhaitées pour un nœud, les ressources nécessaires pour atteindre ces objectifs de performance et un coût pour obtenir du matériel qui répond aux objectifs de performance.

Je recommanderais qu’il intègre une logique similaire à celle développée par Jonas Nick, Greg Sanders et Mark Friedenbach pourcoûts de validation de la taille des blocsLeur approche est bien pensée, même si une spécification minimale devrait être plus complexe car elle comporterait des dimensions supplémentaires.

Par exemple, une spécification minimale pourrait ressembler à ceci :

  • Coût des ressources matérielles cibles : 200 $
  • Délai cible dans le pire des cas pour valider un bloc : 10 secondes
  • E/S réseau minimales : 2 Mb/s
  • E/S disque minimales : 2 Mb/s
  • Processeur minimum : 5 000 MIPS
  • RAM minimale : 1 Go

Jean-Paul Kogelman a donné uneexcellent exemplede la manière dont une spécification minimale établie aiderait à la prise de décision lors des débats sur l'évolutivité en examinant les récents changements de coût de vérification de la signature des transactions.

Dans les versions de Bitcoin CORE antérieures à la version 0.12, OpenSSL est utilisé pour vérifier les signatures. Depuis la version 0.12, les signatures sont vérifiées avec secp256k1, qui est environ cinq fois plus rapide qu'OpenSSL. Par conséquent, le temps de vérification des transactions (et donc des blocs) devrait être presque cinq fois plus rapide.

Étant donné que cela devrait réduire le temps de vérification d'un bloc dans le pire des cas de près de 80 %, la spécification minimale nous donne alors un choix binaire simple :

  • Ajustez les besoins en ressources minimales à la baisse de manière appropriée
  • Ajustez d’autres paramètres tels que le nombre d’opérations de signature par transaction et le nombre de transactions par bloc à la hausse de manière appropriée pour nous ramener en phase avec les objectifs de performance minimum.

Lorsque des modifications du protocole ayant un impact sur les performances sont proposées, si une spécification minimale est disponible, il convient d'expliquer clairement comment ces modifications l'affectent. À mesure que la Technologies progresse et que le coût des ressources de calcul diminue, il convient également de préciser comment augmenter les besoins en ressources sans augmenter le coût d'exploitation d'un nœud.

Ainsi, les options appropriées pour répondre aux changements devraient être moins controversées que le débat sur la taille des blocs. Si, par exemple, il est clair que les opérateurs de nœuds exécutant du matériel avec des exigences minimales ne seront pas affectés par l'augmentation du nombre d'opérations de signature autorisées par bloc pour correspondre au gain de performances de secp256k1, son augmentation ne devrait pas susciter de controverse.

Coût par rapport aux avantages

Je trouve que c’est un objectif admirable d’essayer de KEEP les coûts d’exploitation des nœuds bas et accessibles à l’utilisateur moyen.

D'un autre côté, si nous KEEP les besoins en ressources des nœuds au niveau de ce que le dernier modèle de Raspberry Pi sur une connexion Internet résidentielle (moyenne mondiale) peut gérer, je ne suis pas sûr de l'utilité que cela aura si la demande d'inclusion dans les blocs entraîne des frais de transaction qui excluent davantage d'utilisateurs.

Autrement dit, si le coût d'utilisation du réseau augmente au point d'exclure l'utilisateur moyen des transactions sur la blockchain Bitcoin, il ne se souciera probablement T de pouvoir exploiter un nœud à un coût dérisoire. Il s'agit d'un équilibre entre le coût de la vérification des transactions et celui de la transaction elle-même.

Les réseaux de couche deux (tels que Lightning Network et le réseau de micropaiement de 21) peuvent certainement jouer un rôle dans l'allègement de la charge ici, mais n'oubliez pas que même les utilisateurs de réseaux de couche deuxil faudra finalement s'installercontre la blockchain du bitcoin.

L'exploitation d'un nœud entraîne de nombreux coûts, tels que :

  • Courbe d'apprentissage initiale (coût en temps)
  • Coût d'installation, de configuration et de synchronisation initiale (temps, bande passante, CPU)
  • Coûts de fonctionnement continus (bande passante, CPU, RAM, disque)
  • Coûts de maintenance (temps nécessaire pour effectuer le dépannage et les mises à niveau).

L'apprentissage initial pour comprendre la valeur du Bitcoin peut prendre des semaines, voire des mois. Comprendre comment gérer un nœud peut prendre quelques heures ; je suis presque certain que la plupart des gens n'arrivent même pas à l'étape de la redirection de port.

La synchronisation initiale peut prendre de quelques heures à plusieurs semaines, selon les spécifications de la machine. J'estimerais subjectivement les coûts de maintenance à une heure par mois dans le pire des cas.

Jusqu'à présent, nous avons examiné le coût d'exploitation d'un nœud sous différents angles. Il est raisonnable de supposer que des coûts plus élevés entraîneront une diminution du nombre de nœuds, tandis que des coûts plus faibles entraîneront une augmentation du nombre de nœuds. Mais qu'en est-il si le coût n'est T le seul facteur ?

BitPay

PDG Stephen Pairénoncé succinctement:

« Il n'y a qu'autant de nœuds sur le réseau Bitcoin qu'il y a de demande pour effectuer une validation indépendante et sans confiance des transactions. »

Je pense que Pair et Stzorc ont tous deux raison, et que le nombre de nœuds est donc fonction de la demande de validation des transactions sans confiance par rapport au coût d'exploitation d'un nœud. Par conséquent, je suppose que le nombre de nœuds dépend également de la valeur stockée et des transactions effectuées par les utilisateurs de Bitcoin .

Bien que certains prétendent que gérer un nœud aujourd’hui est purement altruiste, il existe des incitations à le faire :

  • Investissement:Si vous êtes fortement investi dans le Bitcoin, vous souhaiterez peut-être soutenir le réseau afin de protéger cet investissement.
  • Performance:Il est beaucoup plus rapide d'interroger une copie locale de la blockchain que d'interroger des services de données blockchain sur Internet.
  • Absence de permission et résistance à la censure :En recevant et en envoyant des transactions depuis votre propre nœud, ONE n’a le pouvoir de vous en empêcher.
  • Politique de confidentialité:Si vous interrogez d’autres nœuds ou services sur les données de la blockchain, ils peuvent utiliser ces requêtes pour tenter de vous désanonymiser.
  • Manque de confiance :Posséder une copie du grand livre que vous avez validé vous-même signifie que vous n'avez T besoin de faire confiance à un tiers pour être honnête sur l'état du grand livre.

À mon avis, plutôt que de confier la gestion d'un nœud à n'importe quel individu, il faudrait plutôt confier la gestion d'un nœud à toute personne disposant d'une valeur non négligeable en Bitcoin . Ceux qui ont le plus de valeur en jeu sont les plus incités à investir des ressources pour protéger leurs actifs en opérant sans autorité de confiance.

Nous avons vu BTCC se déployer récemment100 nœuds Nous savons que de nombreuses autres entreprises Bitcoin gèrent leurs propres nœuds. Je supervise personnellement l'exploitation de plusieurs nœuds de réseau principal et de réseau de test pour le compte de BitGo et j'exécute également plusieurs nœuds personnellement car j'ai beaucoup de ressources investies dans Bitcoin et je souhaite soutenir le réseau.

Si un utilisateur ne possède que 100 $ de Bitcoin, il n'a T beaucoup de sens pour lui d'exécuter un nœud complet, à moins que le coût en temps et en ressources pour exécuter un nœud ne soit de l'ordre de quelques minutes et de quelques centimes.

Afin de recueillir l'avis des utilisateurs de Bitcoin sur leur décision d'exécuter ou non un nœud complet, j'ai mené une enquête et recueilli plus de 500 réponses. Il ne s'agit évidemment pas d'un sondage scientifique rigoureux, mais j'espère que c'est mieux que rien.

Vous pouvez consulter les analyses de haut niveauiciet les données brutes sont disponiblesici.

Quelques points clés à retenir de cette enquête :

  • 24 % des personnes interrogées exécutaient auparavant un nœud complet, mais ne le T plus.
  • 42 % des non-opérateurs T voient aucun intérêt à gérer un nœud
  • 44 % ou plus des opérateurs de nœuds utilisent leur nœud pour leur propre bénéfice direct
  • 57 % des utilisateurs sont prêts à consacrer plus de 100 Ko/s de bande passante montante à un nœud
  • 58 % des utilisateurs ne sont pas prêts à payer plus de 10 $ par mois pour exécuter un nœud
  • 81 % des opérateurs de nœuds gèrent un nœud à domicile.

Le résultat le plus surprenant est qu’il ne semble pas y avoir de corrélation entre l’investissement d’un utilisateur dans le Bitcoin et son intérêt à exécuter un nœud.

Cette question était peut-être trop vague, car elle ne demandait T de montants monétaires précis.

Je crois toujours que toute entité (en particulier une entreprise) qui effectue des transactions ou stocke des quantités importantes de valeur est davantage incitée à exécuter un nœud.

Capture d'écran du 30/01/2016 à 12h37.23
Capture d'écran du 30/01/2016 à 12h37.23
Capture d'écran du 30/01/2016 à 12h38.56
Capture d'écran du 30/01/2016 à 12h38.56

Conclusions

Rappelons la théorie souvent citée selon laquelle des coûts plus élevés entraîneront moins de nœuds.

Cette hypothèse n’est peut-être pas valable, car un volume de transactions plus élevé peut être le résultat d’une adoption plus élevée et donc d’un plus grand nombre d’entités disposées à exécuter des nœuds complets.

Oui, le coût sera plus élevé et pourrait très bien dépasser le seuil de 10 $ par mois que l’utilisateur moyen est (actuellement) prêt à payer, mais si l’utilité du réseau Bitcoin continue d’augmenter et que davantage d’entités effectuent des transactions de grandes quantités de valeur, elles seront davantage incitées à payer des coûts plus élevés pour fonctionner de manière sans confiance.

D’un autre côté, nous devons également KEEP à l’esprit qu’il est peu utile de participer à un système décentralisé lorsque le coût de validation est faible mais que le coût de transaction est extrêmement élevé en raison de la concurrence pour l’espace de bloc.

Si l'on aborde le débat sur la taille des blocs sous l'angle de l'utilisation des ressources, il me semble que quelqu'un sera exclu dans un cas comme dans l'autre. Ne pas augmenter la taille des blocs empêchera certains utilisateurs d'envoyer des transactions, tandis qu'augmenter la taille des blocs empêchera certains utilisateurs d'exécuter des nœuds.

De nombreuses variables entrent en jeu et nous devons nous efforcer de les KEEP en équilibre afin de pouvoir développer l’écosystème tout en le gardant décentralisé.

Par ordre de priorité décroissante, je recommande aux développeurs Bitcoin :

Déterminez une spécification de ressources minimale pour exécuter un nœud complet avec des caractéristiques de performances cibles telles que le temps le plus défavorable pour valider un bloc.

Il faut se concentrer sur l'augmentation du volume de transactions supporté par le réseau Bitcoin , augmentant ainsi son utilité et le nombre d'utilisateurs (et de cas d'utilisation) qu'il peut prendre en charge. Ainsi, davantage d'entités effectuant des opérations de stockage et de transfert de grande valeur devraient être incitées à exploiter leurs propres nœuds.

Concentrez-vous sur la simplification de l'exécution d'un nœud du point de vue de la courbe d'apprentissage. Cela devrait également se produire naturellement à mesure que Bitcoin se construit une histoire et une réputation plus longues.

Simplifier l'exécution d'un nœud du point de vue des ressources de calcul. Permettre à un nœud de s'exécuter instantanément en mode SPV tout en synchronisant la blockchain en arrière-plan serait une première étape intéressante. Amorcer un nœud à partir d'engagements UTXO constituerait un pas de géant.

Enquêter sur les incitations financières directes au fonctionnement des nœuds, par exemplefournir des services de donnéesen échange d'honoraires.

Si nous pouvons KEEP que le coût d’exploitation d’un nœud augmente à un rythme plus rapide que la valeur d’exploitation d’un nœud, nous devrions être en mesure de KEEP l’infrastructure réseau décentralisée tout en augmentant la charge imposée aux opérateurs de nœuds.

La démographie des opérateurs de nœuds continuera probablement de changer, mais j’encourage les utilisateurs de Bitcoin à accepter les changements apportés à l’écosystème tant que la propriété fondamentale de la décentralisation reste intacte.

Réseaux sociaux Jameson sur Gazouillement.

Image coût-bénéficevia Shutterstock

Jameson Lopp

Jameson Lopp is the CTO and co-founder of Casa, a self custody service. A cypherpunk whose goal is to build technology that empowers individuals, he has been building multisignature bitcoin wallets since 2015. Prior to founding Casa, he was the lead infrastructure engineer at BitGo. He is the founder of Mensa's Bitcoin Special Interest Group, the Triangle Blockchain and Business meetup and several open source Bitcoin projects. Throughout this time he has worked to educate others about what he has learned the hard way while writing robust software that can withstand both adversaries and unsophisticated end users.

Jameson Lopp