Qu’est-ce que Zilliqa ? Analyse approfondie d’une solution à haute évolutivité
Zilliqa est la première blockchain publique conçue pour mettre en œuvre le sharding, qui permet une extrapolation linéaire de la chaîne à mesure que celle-ci se développe en taille.
Jusqu’à présent, l’évolutivité a été un problème pour les technologies de blockchains existantes.
Actuellement, Bitcoin ne peut pas traiter toute la demande de son réseau, ce qui a entraîné une augmentation des frais de transaction. Il en va de même pour Ethereum dont le débit limité signifie que les contrats intelligents peuvent devenir gourmands en gas. Par exemple, la popularité de Crypto Kitties a considérablement ralenti Ethereum, révélant les limites du réseau.
Zilliqa change fondamentalement la façon dont une blokchain parvient à un consensus. Sa solution de sharding s’adapte à la taille du réseau. Théoriquement, il n’y a pas de limite au nombre de transactions que Zilliqa peut traiter par seconde. Pratiquement, cependant, selon le nombre de nœuds sur le réseau, Zilliqa est en mesure de traiter des dizaines ou des centaines de milliers de transactions par seconde.
Zilliqa promet également de soutenir les contrats intelligents. Exécuter des contrats intelligents sur un réseau fragmenté est un défi technique majeur pour Zilliqa. Dans cet article, nous examinerons comment elle se rapproche de l’évolutivité pour les transactions et les contrats intelligents. Nous allons également nous pencher sur l’équipe et la feuille de route de Zilliqa pour voir si elle est à la hauteur de la tâche.
Où acheter Zilliqa ?
Si vous souhaitez acheter la crypto Rchain nous vous conseillons les deux plateformes Binance et KuCoin.
Résoudre le problème de l’extensibilité
La blockchain a un problème d’évolutivité inhérent. Plus il y a de nœuds sur un réseau, plus il est difficile de parvenir à un consensus.
Pour illustrer ce point, il convient de penser à l’échelle du consensus en termes de personnes :
- Avec un petit groupe d’amis proches, il est facile de prendre des décisions. Vous n’êtes peut-être pas toujours d’accord, mais il est facile de savoir comment tout le monde se sent.
- Pour un plus grand groupe de personnes, comme un auditorium rempli de gens, vous pourriez demander aux gens de lever la main pour voter rapidement. Mais il devient de plus en plus difficile de compter, et vous ne pouvez pas être sûr que tout le monde agit honnêtement.
- Avec des groupes de milliers ou de millions d’individus, vous aurez besoin d’un système de vote plus complexe qui prend plus d’énergie. On ne peut pas non plus être sûr que les gens agissent de bonne foi, et il est difficile d’atteindre le caractère définitif – le sentiment que tout le monde a voté et qu’il y a une réponse claire.
Bien que l’analogie ne soit pas parfaite, vous pouvez voir à quel point le consensus se complique à mesure que votre réseau s’élargit. La vitesse/qualité consensuelle et la taille du réseau sont inversement liées. Quand l’un monte, l’autre descend.
D’autres solutions au problème d’évolutivité de la blockchain se concentrent sur le déplacement de certaines informations hors chaîne. Ou encore, elles tentent d’augmenter la taille du bloc, ce qui permet d’établir un consensus sur un plus grand nombre de transactions à chaque ronde de consensus. Ces solutions peuvent fonctionner comme un palliatif, mais elles ne résolvent pas fondamentalement le problème de l’évolutivité.
Pour y remédier, il faudrait changer l’architecture de l’ensemble du système pour que la vitesse consensuelle et la taille du réseau soient corrélées positivement.
Réponse au problème d’évolutivité de Zilliqa
Zilliqa a trouvé un moyen de traiter plus de transactions à mesure que de nouveaux nœuds rejoignent le réseau. Il consiste à réimaginer la blockchain à partir de zéro. Ce nouveau modèle met en œuvre un protocole de consensus hybride pour augmenter le débit du réseau chaque fois que environ 600 nouveaux nœuds s’y connectent.
En théorie, tous les 600 nouveaux nœuds, le débit de Zilliqa augmente en divisant le travail. En pratique, il y a des problèmes de diffusion si le réseau devient très grand (plus d’un million de nœuds). Pourtant, 1 million de nœuds est une limite supérieure que nous sommes loin d’atteindre. Au moment d’écrire ces lignes, Bitcoin compte environ 11 000 nœuds en opération. Ethereum, le plus grand réseau de nœuds complets, en compte près de 25 000.
Les réseaux de plusieurs dizaines de milliers de nœuds de Bitcoin et Ethereum ne peuvent encore traiter que 3-15 transactions par seconde. En revanche, des tests récents sur testnet privé (test virtuel AWS) ont montré que le réseau de Zilliqa a un débit de 1 218 transactions par seconde lorsque 1 800 nœuds fonctionnent. Augmentez le nombre de nœuds à 3 600 et le réseau de Zilliqa passe à 2 488 transactions par seconde.
Sharding : répartir le travail au sein du réseau
Comment Zilliqa parvient-il à cette évolutivité ?
Une solution connue sous le nom de sharding est utilisée. Le protocole Zilliqa divise le nombre de nœuds de minage sur le réseau en groupes de 600 nœuds. Chaque groupe est connu sous le nom de shard.
Par exemple, dans les exemples de testnet ci-dessus, lorsque le testnet fonctionne avec 1 800 nœuds, il se divise en 3 shards. Avec 3 600 nœuds, il y avait 6 shards. Au fur et à mesure que d’autres nœuds rejoignent le réseau, Zilliqa peut diviser davantage le réseau, créant ainsi d’autres shards.
Ces shards traitent chacun une partie fractionnaire des transactions du réseau. En termes simplifiés, s’il y a 6 shards, chaque shard traiterait environ 1/6 des transactions du réseau. Plus il y a de shards, plus le réseau divise la charge consensuelle entre les shards, ce qui maintient les exigences informatiques relativement stables.
Chaque shard traite les transactions qui lui sont assignées dans un microbloc en parallèle avec les autres shards. A la fin de la période de traitement parallèle, connue sous le nom de « DS epoch », ces microblocs sont combinés en un bloc complet qui est ajouté à la blockchain.
Le Comité DS : Gestion des shards
Pour chaque DS epoch, plusieurs nœuds sont choisis au hasard pour gérer les différents shards. Ce comité de direction, connu sous le nom de « comité DS », dirige le réseau. Ce sont eux qui décident quels nœuds sont affectés à quel shard. Lorsque de nouvelles demandes de transaction arrivent, le comité DS assigne les transactions à un shard pour traitement. A la fin de la DS epoch, le comité DS assemble le bloc complet à partir des microblocs que les shards ont créés.
Recherche d’un consensus : PoW + BFT
Zilliqa utilise un mécanisme de consensus hybride. Lorsque vous commencerez à miner, vous devrez compléter un hash de proof-of-work. PoW nécessite une puissance de calcul qui garantit qu’une machine ne peut faire fonctionner qu’un seul nœud. Ainsi, PoW aide Zilliqa à établir son identité. Il est difficile pour un malfaiteur de créer plusieurs identités pour submerger le réseau avec ce qu’on appelle une attaque Sybil. Toutefois, le réseau n’utilise pas la proof-of-work pour obtenir un consensus.
Une fois qu’un nœud a prouvé son identité, il est affecté à un shard. Dans les shards, Zilliqa utilise le consensus des généraux byzantins (Byzantine Fault Tolerance, BFT). Il s’agit d’un mécanisme consensuel à haut débit qui a un caractère définitif. La finalité signifie que la plupart des nœuds du shard doivent se mettre d’accord sur le minibloc. Une fois qu’un bloc est confirmé par le comité DS et les shards, c’est le seul bloc qui peut faire référence au bloc devant lui. Il n’y a pas de forking dans un mécanisme de consensus avec caractère définitif.
Zilliqa n’est pas le premier registre distribué à mettre en œuvre le BFT. NEO, Tendermint et Hyperledger utilisent des versions du mécanisme de consensus BFT éprouvé.
Contrats de flux de données & state sharding
Les transactions de sharding sont assez simples. Vous pouvez facilement affecter des vérifications de transactions à divers shards. Chaque vérification est indépendante. Il ne devrait pas y avoir besoin de beaucoup de communication entre les shards.
Il n’en va pas de même pour l’exécution de contrats intelligents et d’applications décentralisées (dapps) sur blockchain éclatée. Le problème est que les actions contractuelles intelligentes reposent souvent sur la vérification d’autres états, variables et fonctions. Pour ce faire, il faudrait beaucoup de communication entre les shards. Ces messages exigeraient une largeur de bande et une puissance de traitement qui annuleraient les avantages du sharding.
Ainsi, les contrats de Zilliqa se concentrent uniquement sur le flux de données et la programmation fonctionnelle. Ils ne permettent pas de vérifier, de stocker ou de changer d’état. Du moins, pas encore.
Jusqu’à présent, le consensus est qu’il n’y a pas de plan de répartition de l’état qui soit sûr et efficace. Si vous autorisez l’exécution séparée des contrats dans divers états fragmentés, il pourrait y avoir toutes sortes d’attaques potentielles, des défis à la réconciliation et une communication excessive entre les shards.
Cependant, Ethereum travaille actuellement sur une solution de sharding de l’état. On ne sait pas exactement où en est l’élaboration de cette initiative.
Cela dit, Zilliqa peut toujours être utilisé pour les dApps qui nécessitent un débit élevé. N’importe quel dApp qui a besoin de taux de transaction supérieurs à ce qui est actuellement possible sur d’autres blockchains pourrait trouver une solution sur Zilliqa.
Un nouveau langage de programmation
Dans le but de rendre la programmation fonctionnelle plus standardisée et sécurisée, l’équipe de Zilliqa a développé un nouveau langage de programmation appelé Scilla.
Scilla sépare l’état et la fonction. Il s’agit d’un langage de programmation fonctionnel qui établit une distinction entre les aspects communicationnels d’un contrat – transfert de fonds ou appel à un autre contrat – et le travail de calcul réel que le contrat effectue.
Le nouveau langage n’est pas Turing-complet. Cela signifie qu’il ne prend pas en charge les applications qui nécessitent certains types de boucles ou d’instructions conditionnelles. Cependant, son caractère incomplet lui permet d’être soumis à des preuves logiques formelles. C’est important pour des raisons de sécurité. La vérification des contrats permet aux utilisateurs de savoir qu’un contrat est sûr d’une manière vérifiable avant de l’utiliser.
Scilla aide à faire la distinction entre les contrats fonctionnels, supportés par Zilliqa, et les contrats dépendant de l’état que Zilliqa ne peut pas encore supporter.
Le token ZIL
Zilliqa a un token pour son écosystème. Semblable à d’autres plates-formes dApps comme Ethereum ou NEO, le token ZIL sert d’incitation au minage, de gas pour l’exécution des contrats et d’offre pour le paiement des frais de transaction.
Au départ, ZIL est un token ERC-20 basé sur la blockchain Ethereum. En effet, le réseau principal public de Zilliqa n’a pas encore été lancé. Le token ERC-20 sera alors échangé contre des tokens natifs de Zillika.
Zilliqa a réuni l’équivalent de 12 millions de dollars dans le cadre d’un tour de financement privé vers la fin de 2017. Après la ronde privée, l’envolée du prix d’ETH a fait en sorte que le financement privé d’une valeur initiale de 12 millions de dollars a rapidement été évalué au plafond de 20 millions de dollars fixé par le projet.
Ayant atteint son plafond, Zilliqa a dit à sa communauté qu’une vente publique n’était plus nécessaire. En raison de l’intérêt de la communauté, Zilliqa a toutefois alloué 4445 ETH à une vente publique en janvier 2018.
Le token ZIL est actuellement sur les plate-formes Huobi, EtherDelta, gate.io et Idex.
L’équipe de Zilliqa
L’équipe derrière Zilliqa est en grande partie composée d’universitaires et de docteurs en informatique.
Le CEO, Xinshu Dong, est titulaire d’un doctorat en informatique de la National University of Singapore. C’est un expert en cybersécurité, responsable de plusieurs projets de sécurité nationale à Singapour. Ses recherches ont également été publiées dans des conférences et des revues réputées.
Prateek Saxena est le conseiller scientifique en chef. Il est titulaire d’un doctorat en informatique de l’Université de Californie à Berkeley. Il est maintenant professeur d’informatique à la NUS.
Amrit Kumar est le responsable Crypto du projet. Il est chercheur à la NUS. Il est titulaire d’un doctorat de l’Université Grenoble-Alpes (France) et d’un diplôme d’ingénieur de l’Ecole Polytechnique (France).
Le conseil consultatif de Zilliqa compte parmi ses membres des personnalités éminentes de la blockchain. Il s’agit de Loi Luu, co-fondateur de Kyber Network, Vincent Zhou, associé fondateur de FBG Capital, Nicolai Oster, associé chez Bitcoin Suisse AG, et Alexander Lipton, fondateur et CEO de StrongHold Labs.
Conclusion
L’évolutivité continuera d’être un problème pour les technologies de la blockchain et du registre distribué. Zilliqa est un projet important qui s’attaque de front à l’évolutivité. La plate-forme elle-même pourrait s’avérer être un développement important dans la blockchain. D’une manière plus générale, cependant, on peut s’attendre à ce que les percées de Zilliqa en matière de technologie de sharding soient utilisées dans les années à venir pour d’autres projets de blockchain.
Adresse BTC : 1BNCTjgpvz9pzubjWGm797YSuxwCe9yAgA
Adresse LTC : LYrKYZMGinceoXsrrfSNze782hVhbmkPxB
Adresse ETH : 0xf0b3b58bc74eef9059e83de9bdf51e2833538e4b
Clause de non-responsabilité/Disclaimer : Le contenu de cet article est destiné à des fins éducatives seulement. Il ne doit pas être considéré comme un conseil d’investissement ni comme une approbation du projet Zilliqa .