Ce deuxième article de la série Dfinity donne un aperçu de haut niveau de la manière dont Dfinity tente d’atteindre les objectifs de création d’un cloud décentralisé au niveau de l’Internet sur lequel une grande partie des logiciels du monde peut être exécutée.

Il convient de noter que, jusqu’à présent, l’équipe Dfinity n’a pour la plupart publié que des sources détaillées concernant le protocole de consensus et la gouvernance de leur plate-forme. Ainsi, ils seront discutés plus en détail dans cet article que le sharding et les logiciels et la gestion de données. La rareté des informations sur la mécanique des jetons et la fourniture de jetons natifs empêche de les couvrir.

Mécanisme de consensus

L’une des plus grandes innovations de Dfinity est son mécanisme de consensus. Il comporte de multiples pièces mobiles et des éléments d’autres approches. Les quatre couches du consensus de Dfinity sont la couche identité et enregistrement, la couche balise aléatoire, la couche notarisation et la couche résolution fork. Examinons chacun d’entre eux à tour de rôle.

Contrairement aux plates-formes les plus populaires aujourd’hui, dans la configuration de Dfinity, il n’y a pas de nœuds privilégiés pour participer au consensus. Un nœud (client) souhaitant participer activement au réseau doit remplir les conditions matérielles minimales requises, enregistrer et miser un certain nombre de jetons DFN pour assurer un comportement consciencieux. A maturité, le réseau Dfinity devrait être géré par des millions de clients. Comme chaque client doit verrouiller certains jetons, Dfinity utilise proof of stake (POS), comme Ethereum, mais strictement dans le but de protéger Sybil et d’encourager la bonne conduite.

Cependant, cette approche de la génération aléatoire pose des problèmes de scalabilité, car la génération aléatoire doit prendre beaucoup plus de temps que l’échange de messages entre les nœuds.

L’approche de Dfinity en matière de consensus repose sur l’idée que le consensus repose fondamentalement sur le caractère aléatoire. Il permet à un réseau décentralisé de choisir le chef de file sans s’engager dans un processus extrêmement onéreux en matière de communication que les mécanismes de consensus antérieurs à Bitcoin. Dans le contexte PoW, le nœud minier qui obtient le droit d’exploiter un bloc doit produire un nombre aléatoire appelé «nonce» qui vérifie certaines propriétés par le biais d’une recherche par force brute.

Sur sa couche dite de balise aléatoire, Dfinity adopte une approche assez différente pour générer de l’aléatoire, appelée Threshold Relay. À chaque époque, un groupe de clients (appelé groupe de seuil, TG) est sélectionné de manière aléatoire et exécute un processus de génération de clé qui attribue une clé de signature à chaque membre du TG. À chaque tour de l’époque, les membres du TG signent avec leurs clés la valeur aléatoire du tour précédent. Par conséquent, on peut dire qu’ils exploitent une fonction aléatoire vérifiable ou un processus qui met à jour en permanence une chaîne de valeurs aléatoires.

La sécurité cryptographique du schéma est basée sur le résultat scientifique appelé signatures Boneh-Lynn-Shacham (BLS) , et l’un des auteurs du document dans lequel elles ont été introduites, Ben Lynn, est membre à temps plein de l’équipe Dfinity. À la fin de chaque époque, le même caractère aléatoire est utilisé pour relayer (par conséquent, le relais de seuil) la génération de caractère aléatoire vers un autre TG préconfiguré.

L’équipe de Dfinity affirme que cette approche pour générer une suite de nombres aléatoires est beaucoup moins intensive en calculs que pour proof of work, car la seule opération exigeante est la génération de clé qui a lieu au début de chaque époque. On pense aussi que c’est rapide parce qu’il n’est pas nécessaire que les membres du TG échangent des messages. Ils signent simplement la valeur aléatoire du tour précédent avec leurs clés. Si un sous-ensemble minimum (seuil) du TG signe cette valeur, la valeur de la ronde en cours est générée, d’où le terme «seuil» dans Relais à seuil. La caractéristique surprenante du processus est que peu importe le sous-ensemble de TG qui signe le caractère aléatoire précédent.

Les TG ne génèrent pas simplement un nombre aléatoire à chaque tour, ils l’utilisent également pour «notariser» au moins un bloc lors du tour concerné. La notarisation dans Dfinity est essentiellement une forme sophistiquée d’horodatage, elle garantit que le ou les blocs ajoutés ont été créés au cours de la partie concernée. Selon l’équipe de Dfinity, l’atout de ce processus est qu’aucune communication n’a besoin d’être établie entre les membres du TG, ce qui permet de gagner beaucoup de temps.

La notarisation n’est toutefois pas toujours suffisante, car les membres du GT peuvent parfois notariser plus d’un bloc à la fois. Dans ce cas, la procédure de résolution de fork intervient. Il utilise le protocole dit de slot probabiliste pour choisir l’un des plusieurs blocs notariés lors du tour suivant.

Le mécanisme de consensus de Dfinity est censé offrir des temps de bloc très courts (une seconde à peine) et une finalité de bloc complète après seulement deux confirmations de bloc (parce que les fourchettes sont résolues lors du tour suivant), les deux contrastant avec les blockchains les plus populaires maintenant.

Sharding

Étant donné que Dfinity, dans sa forme mature, vise à exécuter une grande partie des logiciels du monde dans la chaîne, il est possible qu’elle ne le fasse pas avec une seule blockchain, elle doit donc s’appuyer sur le sharding. Williams a affirméque la mise en œuvre du partage sur Dfinity serait particulièrement avantageuse, car plusieurs TG discutés ci-dessus peuvent facilement fonctionner en parallèle.

La manière dont la communication entre fragments et le maintien de l’état général du grand livre fragmenté sont censés être organisés ne semble pas encore avoir été décrite dans des sources accessibles au public.

Logiciels et gestion de données

Les clients de Dfinity ne sont pas seulement responsables du consensus, ils exécutent et stockent également les logiciels téléchargés sur le réseau Plus spécifiquement, cela signifie que chaque client participant doit exécuter des calculs et stocker des données pour un sous-ensemble du logiciel travaillant sur Dfinity. Ces sous-ensembles de logiciels correspondent à des shards.

Le logiciel pour Dfinity peut être écrit dans n’importe quel langage car il est ensuite compilé dans WebAssembly, un outil récemment créé qui permet au logiciel de s’exécuter directement dans le navigateur. Toutefois, afin d’optimiser la création de logiciels pour la plate-forme, l’équipe Dfinity a créé un tout nouveau langage de programmation ActorScript pour les logiciels créés pour être exécutés sur Dfinity.

Selon Williams, le principal avantage de l’exploitation d’un logiciel de cette manière est qu’il n’est pas nécessaire d’utiliser des API et des bases de données. Les données, par exemple, peuvent être stockées directement dans le logiciel. Pour Williams, cela simplifie considérablement la création et la gestion de logiciels et compense le besoin de plusieurs réplicas de la même application d’être exécutés en parallèle par l’un des shards du réseau.

La gouvernance

En matière de gouvernance, Dfinity se veut également très innovant. Comme Dominic Williams l’explique en détail ici , il introduit un système d’unités de vote appelé «neurones», appelé système nerveux Blockchain. À première vue, cet arrangement ressemble beaucoup au modèle de vote par preuve de participation (DPoS) utilisé par EOS, car chaque détenteur des jetons natifs de Dfinity dispose de son pouvoir de vote proportionnel au nombre de jetons qu’il possède. Ce modèle a été presque universellement critiqué par les experts et les leaders de la communauté blockchain comme étant à l’origine de diverses inefficacités.

Cependant, l’approche de Dfinity est plutôt plus sophistiquée. Il permet aux neurones de prendre leurs décisions de vote de manière presque complètement programmatique en liant les schémas de vote de leur compte à ceux de plusieurs autres neurones pouvant appartenir à des experts ou à des leaders de la communauté, par exemple. Les propriétaires de neurones doivent à la fois enfermer les jetons PNF dans leur neurone pour pouvoir voter et être rémunérés pour leur participation. De plus, la rémunération dépend de la durée pendant laquelle ils gardent leurs jetons sous clé.

Ce modèle semble viser principalement à résoudre le problème de la faible participation des électeurs qui a nui aux autres solutions de vote des détenteurs de jetons. Même si personne ne se soucie pas de suivre en permanence les événements entourant le projet et de participer aux votes, elle peut être persuadée de déléguer son vote à un compte faisant autorité.

Bien sûr, rien dans cette approche n’empêche automatiquement les détenteurs de jetons de suivre des démagogues ou des charlatans, mais Williams pense que si les décisions prises par de tels leaders d’opinion nuisaient au projet, les détenteurs de jetons seraient incités à les désabonner. La principale incitation à le faire serait d’empêcher les leaders d’opinion néfastes de réduire la valeur des jetons.

L’approche de Dfinity permet également d’atténuer potentiellement les problèmes de cartellisation et de pression gouvernementale sur le réseau. À la différence des délégués dans EOS ou Lisk, les nœuds faisant autorité de Dfinity ne sont pas directement rémunérés, il n’y a donc pas de petit sous-ensemble d’entités exécutant le réseau pouvant être ciblées.

***  

Dans l’ensemble, Dfinity est un projet à plusieurs volets et extrêmement complexe, dont de nombreux aspects deviendront probablement plus clairs à l’avenir avec la publication de plus de détails. Conformément à sa vision audacieuse, il est censé introduire de multiples innovations technologiques visant à offrir une extensibilité impressionnante et à permettre à sa plate-forme de servir les utilisateurs de logiciels à l’échelle mondiale. Le dernier article de la série examinera les défis auxquels le projet peut être confronté, même si toutes ses innovations techniques se révèlent solides.

LEAVE A REPLY

Please enter your comment!
Please enter your name here