network : Quelqu'un peut-il m'expliquer FIBRE comme si j'avais 5 ans et pourquoi est-ce utile ?


D’abord le « pourquoi c’est important »  :

Fiber (Fast Internet Bitcoin Relay Engine) est un protocole qui tente de livrer des blocs Bitcoin dans le monde entier avec des délais aussi proches que possible des limites physiques.

Ceci est très important car le minage de Bitcoin est censé être une loterie équitable : si vous avez x% du hashrate, vous devriez trouver x% des blocs, en moyenne. Mais lorsqu’il faut du temps pour communiquer des blocs, le minage s’apparente plus à une course qu’à une loterie  : le plus gros mineur obtient une part injuste, créant une pression pour qu’il se centralise.

network : Quelqu'un peut-il m'expliquer FIBRE comme si j'avais 5 ans et pourquoi est-ce utile ?

En effet, lorsqu’un mineur crée un bloc, les autres mineurs ne peuvent pas travailler à son extension tant qu’ils n’en ont pas entendu parler, pendant ce temps, ils pourraient créer leurs propres blocs. Si vous êtes un petit mineur et que vous créez un bloc, cela fonctionne contre vous car personne ne tente d’exploiter le successeur de votre bloc avant plus tard. Si un mineur plus gros extrait un bloc, cela joue également contre vous, car vous avez pris du retard.

Ce comportement de course est le même qui permet l’exploitation minière égoïste.

L’effet de course peut également profiter aux attaquants qui tentent de maîtriser le réseau, car ils n’ont pas besoin de rivaliser avec le hashrate perdu pour des blocs obsolètes.

L’amélioration des vitesses de propagation réduit la course et rend l’exploitation minière plus équitable, réduit la pression pour centraliser et améliore la sécurité du réseau.

Maintenant, « pourquoi est-ce difficile » :

Le monde est vaste et un aller-retour de San Francisco à l’Australie dure généralement plus de 200 ms. Ces retards sont essentiellement dus à la vitesse de la lumière dans la fibre et bien qu’un meilleur routage puisse les améliorer quelque peu, ils ne disparaîtront pas sans les communications par neutrinos terrestres ou d’autres éléments de la science-fiction.

Les liaisons Internet internationales ont fréquemment des pertes de paquets. vous ne pouvez pas entendre parler de paquets manqués pendant 200 ms, et ils ne peuvent pas obtenir de remplacement pendant 100 ms supplémentaires. Les protocoles de transmission traditionnels tels que TCP ne parviennent pas à atteindre la capacité de liaison lorsque les retards sont élevés, en particulier en cas de perte.

En théorie, le problème est quelque peu facilité car 99,9% des données du bloc sont déjà connues car le bloc contient principalement des transactions qui ont déjà été diffusées, mais Malheureusement, un nœud qui envoie un bloc ne sait pas quelles transactions vous manqueront au moment où leur bloc s’affiche et vous leur dites que cela prendra trop de temps juste à cause des temps d’aller-retour mentionnés ci-dessus.

Ce que Fiber fait pour le résoudre :

La fibre vous permet de créer efficacement un nœud distribué qui déplace en interne un bloc dans le monde très près du délai de communication unidirectionnel le plus faible entre les ordinateurs qui le composent.

L’auteur de la fibre avait l’habitude d’exécuter un tel nœud sur des systèmes publics bien entretenus et auxquels n’importe qui pouvait se connecter. Le protocole Bitcoin P2P normal, avec BIP152, a été utilisé pour le dernier kilomètre, car c’est pour cela que BIP152 est optimisé.

Semblable à BIP152 (avec lequel il a été co-développé), Fiber envoie d’abord un court croquis de bloc  : les transactions étaient manquantes ou le hachage était ambigu.

Ensuite, Fiber divise les blocs en paquets et envoie des données de correction d’erreur. La correction d’erreur permet au récepteur de récupérer le bloc dès qu’il a reçu autant de paquets que de morceaux manquants, même si l’expéditeur ne sait pas ce qui manque. Un codage de correction d’erreur est également utilisé sur le croquis initial. Ceci est similaire au fonctionnement de l’encodage Raid ou PAR, mais la mise en œuvre est rendue beaucoup plus compliquée par la nécessité d’être très rapide.

Toutes ces communications s’effectuent via UDP avec des taux de transmission préprogrammés, il n’est donc pas nécessaire d’accélérer lentement ou d’attendre des paquets perdus.

L’expéditeur envoie également différents morceaux à chacun de ses pairs Fibre et ces pairs eux-mêmes se relayent les morceaux entre eux dès qu’ils les reçoivent, afin d’utiliser toute la bande passante d’interface disponible. Lorsqu’un homologue Fibre obtient suffisamment pour décoder le bloc, il le fait et commence à émettre de nouveaux morceaux.

Ce processus évite l’envoi de données dupliquées et est très résistant à la perte de paquets ainsi qu’aux défaillances de liaison et de nœud et permet d’obtenir un délai très cohérent.

À chaque étape, la fibre échange la bande passante contre la latence et peut envoyer plusieurs fois la taille des blocs de données afin d’obtenir le délai le plus faible sur les liaisons longue distance qu’elle utilise.

Il y a beaucoup plus de détails à ce sujet, probablement assez pour deux douzaines de questions.

D’où vient la fibre ?

La fibre a été conçue par Matt Corallo et était le produit de plusieurs années d’expérience dans l’exploitation de réseaux à relais rapides antérieurs ainsi que de plusieurs années de recherche sur les techniques de propagation de blocs rapides. Matt a pris de nombreuses idées qui étaient beaucoup trop lentes en termes de calcul pour être pratiques, a résolu les défis d’ingénierie restants, en a optimisé le diable, puis a mis le résultat sur un système public bien organisé. Une bonne gestion du réseau et un bon travail d’administrateur système sont presque aussi importants pour obtenir de faibles délais que le protocole lui-même.