🤓 Explication du whitepaper Seele partie 1 : l’algorithme de consensus neuronal

Seele
Seele
Sep 7, 2018 · 9 min read

✅ Seele est un projet blockchain intéressant mais le whitepaper est hautement technique. Ces derniers temps, de beaucoup de personnes, des questions m’ont été posées me demandant si je pouvais leur expliquer le projet Seele de manière plus accessible pour une meilleure compréhension. J’ai mis au point cette série en quatre parties, tant je pense qu’un aperçu plus clair et compréhensible de leur technologie blockchain innovante serait bénéfique pour Seele. Au travers de chaque partie, j’apporterai un éclairage en profondeur de l’une des fonctionnalités innovantes de Seele et tenterai de l’expliquer, de vous en faciliter la compréhension, y compris pour ceux qui n’ont pas de bagage technique.

En premiere partie, je vais décrire l’algorithme de consensus neuronal de Seele. La seconde partie portera sur l’architecture de type réseau forestier hétérogène de Seele. La protocole de transport de valeur de Seele constituera la partie 3 et enfin dans la partie 4, j’entrerai dans les détails sur comment Seele intègre le protocole QVIC.

âś… Seele en bref

Seele se positionne lui-même en tant que blockchain 4.0. Leur objectif est d’améliorer les technologies existantes que sont le Bitcoin (blockchain 1.0), l’Ethereum (blockchain 2.0) et Eos/Dfinity/Cosmos (blockchain 3.0). Toutes les générations précédentes de blockchain souffrent d’un paradoxe de mise à l’échelle, de sécurité et d’efficience ; ce qui signifie qu’il est difficile, si ce n’est impossible, d’optimiser un ou deux de ces critères sans compromettre le troisième. Pour le moment, Eos a le potentiel d’un million de transactions pas secondes, mais dans le but d’atteindre un tel niveau, les noeuds seraient susceptibles d’être attaqués, ce qui serait compromettant pour la sécurité.

Seele tente d’améliorer ces blockchains existantes en construisant une architecture réseau de base qui ne compromet pas ce paradoxe de mise à l’échelle, d’efficience et de sécurité. Pour y parvenir, Seele s’efforce d’implémenter les fonctionnalités suivantes :

➡️ Un algorithme de consensus neuronal

➡️ Une architecture de type réseau forestier hétérogène

➡️ Un protocole de transport de valeur

➡️ Un protocole QVIC

Maintenant que nous savons ce que Seele tente d’accomplir, concentrons-nous sur la première fonctionnalité de la technologie blockchain de Seele, leur algorithme de consensus neuronal.

âś… Algorithme de consensus neuronal

L’algorithme de consensus neuronal est un terme hautement technique qui peut être expliquer de la meilleure des manières en regardant la façon dont les neurones de notre cerveau fonctionnent. Ce qui suit est un exemple qui a été posté sur le groupe Telegram Seele et nous allons le reprendre ici pour plus de clarté. Regardons de plus près le processus de reconnaissance visuelle de notre cerveau. Lorsque l’œil reçoit un signal lumineux extérieur, des milliards de neurones de notre cerveau sont reliés afin d’identifier le signal et déterminer ce que celui-ci représente. Cette procédure résulte essentiellement d’un consensus de millards de neurones. Seele propose l’algorithme de consensus neuronal qui transforme le problème de consensus en un traitement de requêtes concurrentes à grande échelle, par lequel plusieurs noeuds participent de manière collaborative et concurrente. Plus le degré de participation des noeuds est élevé, plus la convergence vers le consensus est rapide.

L’idée d’un algorithme de consensus neuronal est profondément en lien avec ces réseaux neuronaux, qui est une procédure utilisée pour l’apprentissage informatique et l’intelligence artificielle ; par conséquent, obtenir une meilleure compréhension de comment les réseaux neuronaux fonctionnent peut aider à mieux comprendre l’algorithme de consensus neuronal de Seele.

Ainsi, par essence, les réseaux neuronaux ont une forme d’apprentissage artificiel qui fonctionne de la manière suivante : imaginons que nous avons un robot auquel nous souhaitons lui apprendre à voir et à identifier des objets. Il nous faut en premier enrichir le robot de fonctionnalités, en l’occurrence les signaux lumineux externes qui composent une image particulière, prenons dans ce cas un ballon de football ou de basketball. De là, notre objectif est de former le robot afin qu’il puisse affirmer avec une certitude à 100% qu’il regarde un ballon de football ou de basketball. De la même manière que notre cerveau, l’ordinateur apprend au travers des différents neurones (que nous pouvons appeler noeuds) qui fonctionnent ensemble en se partageant l’information entre chaque noeud pour atteindre une certaine valeur de sortie, dans notre cas, un ballon de football ou un ballon de basketball. Dans les réseaux neuronaux, chaque connexion entre les noeuds se voit attribuer un poids différent, correspondant à l’importance de cette information pour le noeud. En l’occurrence, dans le schéma ci-dessus, on note que le noeud B possède une plus grosse connexion en entrée (poids plus élevé w=0.9) vers le noeud C que ce que ce que le noeud A possède (notons que la ligne verte est beaucoup plus mince que la ligne orange, w=0.1). Cela signifie que la valeur du noeud B a un impact plus important dans la valeur attribuée au noeud C par rapport à la valeur attribuée par le noeud A. Ainsi, dans un réseau neuronal, toutes ces connexions entre les différents noeuds ont leurs propres poids et ensemble, dans notre exemple, ils déterminent le point de sortie, à savoir l’objet que le robot pense voir.

À partir de là, vous pourriez vous demander de quelle manière le poids est attribué à la connexion. Bonne question. Et c’est exactement ce que l’apprentissage du réseau neuronal nous apprend. Au début du processus d’apprentissage du réseau neuronal, des facteurs de poids aléatoires sont attribués aux connexions entre chaque noeud au sein du réseau.

Comme vous pouvez l’imaginer, ces pondérations initiales peuvent amener à produire beaucoup de résultats erronés, qui ne correspondent pas aux résultats réels. Nous prenons en compte ces erreurs et elles jouent un rôle important dans l’évaluation du processus d’apprentissage. In fine, nous souhaitons que le robot soit sûr à 99% lorsqu’il répond si l’objet est un ballon de foot ou de basket. Par conséquent, nous admettons une erreur inférieure ou égale à 1%. L’image ci-dessous montre un exemple dans lequel notre robot n’a raison qu’une seule fois sur trois (erreur = 66%, ce qui n’est pas formidable à ce stade).

Les poids attribués initialement aux noeuds dans le réseau peuvent être contournés, le réseau peut alors attribuer différents poids aux connexions et tenter de voir si le résultat est plus en adéquation avec la donnée de sortie (plus grand pourcentage de réponses correctes). Ce processus est appelé rétro propagation, ce qui signifie qu’il retrace les connexions et ajuste le poids des connexions entre les noeuds. Ensuite, les données de sortie sont à nouveau calculées. Ce process est répété plusieurs fois, calibrant en permanence les poids des connexions entre les noeuds, jusqu’à ce qu’un seuil adéquat de scores d’erreurs soit atteint (dans notre cas, nous souhaitons une exactitude de 99%, et par conséquent une erreur de 1%).

Afin de visualiser l’évolution de l’apprentissage, imaginez une balle qui est lancée du haut d’un sloop, roulant vers l’autre sloop puis revenant en arrière (cf schéma ci dessous). Au début, les erreurs (la hauteur que la balle atteindra à chaque sloop) seront élevées mais au fur et à mesure des itérations, l’erreur (l’élan de la balle) se réduira jusqu’a jusqu’à atteindre (presque) la valeur zéro, ce qui constituerait une corrélation parfaite entre le résultat voulu et le résultat réel.

✅ L’une des grandes avancées du réseau neuronal est que leur performance est linéairement accélérée à mesure que la taille du noeud augmente. Par conséquent, plus il y a de noeuds dans le réseau, plus la convergence devient rapide et plus la performance sera meilleure.

Maintenant que nous en savons plus sur ce qu’est le réseau neuronal, nous pouvons nous intéresser à un autre terme technique mentionné par Seele dans leur whitepaper : la pratique de l’algorithme de tolérance à la faute byzantine.

Afin d’expliquer cet algorithme, il est important de rappeler qu’il a été façonné comme une solution au problème présenté sous la forme de l’allégorie suivante :

Imaginez que plusieurs divisions de l’armée byzantine campent à l’extérieur d’une cité ennemi, chaque division étant commandée par son propre général. Les généraux ne peuvent échanger entre eux que par messager. Après avoir observer l’ennemi, ils se décident d’un plan d’action commun. Cependant, certains des généraux pourraient être des traîtres, essayant d’empêcher les généraux loyaux de parvenir à un accord. Les généraux doivent décider du moment de l’attaque de la cité, mais ils ont besoin d’une forte majorité de leur armée pour attaquer au même moment. Les généraux ont besoin d’un algorithme pour garantir que (a) les généraux loyaux décident du même plan d’action, et (b) qu’un petit nombre ne traîtres ne peuvent entraîner les généraux loyaux à adopter un mauvais plan. Les généraux loyaux feront tous ce que l’algorithme leur dit de faire, mais les traîtres peuvent faire ce qu’ils veulent. L’algorithme doit garantir la condition (a) eût égard à ce que les traîtres font. Les généraux loyaux ne devront pas seulement parvenir à un accord, mais devraient se mettre en accord sur un plan raisonnable.

Dans cette allégorie, les généraux sont les noeuds participant au réseau distribué. Les messagers qu’ils envoient sont les connexions entre les noeuds. L’objectif collectif des généraux «loyaux» est de décider si l’information soumise à la blockchain est valide ou non.

Dans le problème des généraux byzantins, la solution semble relativement simple. Cependant, sa difficulté réside dans l’effet de surprise qu’aucune solution ne fonctionnera tant qu’il n’y a pas plus de deux tiers de généraux loyaux. Par conséquent, si plus de 33% des noeuds sont mauvais, aucun consensus ne peut être atteint. Seele propose alors un nouveau mécanisme de consensus appelé «accord ę-différentiel (ę-differential agreement : EDA).

Le whitepaper est assez vague sur ce que ce EDA constitue exactement et c’était difficile pour moi de le déchiffrer. Je ne suis pas sûr de pouvoir l’expliquer mais il apparaît que cela transforme le problème de consensus en une procédure informatique de requêtes asynchrones, qui est d’une forte robustesse pour la connectivité globale du réseau.

Au travers de l’algorithme EDA, les noeuds peuvent vérifier l’entrée en utilisant différents taux d’échantillonnage et, de ce fait, les noeuds peuvent toujours être effectifs même lorsque plus de 33% des noeuds sont mauvais ; par conséquent, en se positionnant comme une amélioration de l’algorithme de consensus byzantin.

✅ Pour conclure, l’algorithme de consensus neuronal de Seele améliore les mecanismes de consensus existants en :

➡️ Changeant le processus de consensus d’un vote discret à un vote continu.

Traditionnellement, voter au sein de bloc entre différents noeuds représente une «opinion» du noeud au travers de 0 ou 1 (oui/non) mais désormais, cela constitue une entité continue (i-e désormais, toutes les valeurs entre 0 et 1 sont possibles).

➡️ Des paramètres efficients peuvent être ajustés.

Une efficience optimale du système peut être obtenue en ajustant les paramètres en temps réels.

➡️ Economie d’énergie

Il n’y a pas de processus de sélection d’un noeud de tête dans l’algorithme, également PoW et PoS ne sont pas requis afin de réduire pleinement la consommation d’énergie.

➡️ Faible surcharge de transmission

Il n’est pas nécessaire que l’algorithme ait une connexion avec plus de noeuds durant le processus de consensus, ce qui peut éviter une surcharge de transmission et réduire la dépendance des noeuds dans la structure du système réseau autant que possible.

➡️ Compatibilité avec une variété de structures réseaux.

L’algorithme de consensus dispose d’une évidente adaptabilité à la structure chaîne traditionnelle ainsi qu’à la structure DAG (Direct Acyclic Graph).

J’espère que cet article vous permet de mieux imager l’algorithme de consensus neuronal de Seele. Le prochain article traitera en profondeur de l’architecture de type réseau forestier hétérogène.


Un grand merci à LindaCrypto qui a réalisé cet article en anglais et m’a permis de le traduire afin de le partager avec la communauté française dans le but de vous permettre de mieux comprendre l’incroyable technologie développée par Seele.

Rejoignez-nous : https://t.me/seelefrancais

Merci !

Christophe G

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade