Sui by Mystenlabs : Qu’est-ce que c’est, comment ça fonctionne en comment en acheter ?

sui logo

Tout le contenu Coin Academy pour Sui (SUI)

Introduction

Ces dernières années, beaucoup de nouvelles solutions techniques ont vu le jour, dans l'optique de pallier le manque évident de scalabilité des réseaux dominant le marché.  

Cependant, aujourd’hui, aucun de ces protocoles n’est en mesure de répondre à une demande mondiale si la blockchain se voyait être adoptée de manière massive rapidement. 

C’est pourquoi la société MystenLabs a mis au point le protocole Sui

Sui : Le web 3.0 à grande échelle 

Sui est une blockchain (layer 1) utilisant un mécanisme de consensus en Proof of Stake souhaitant révolutionner le genre en accélérant l’adoption à grande échelle du web 3

Le projet a été lancé par la société MystenLabs fondée par d’anciens ingénieurs de Meta (Facebook), ayant dans l'idée de créer une nouvelle structure de fonctionnement pour la blockchain s’appuyant sur un protocole de mempool (Narwhal) innovant, le langage de programmation Move et un algorithme de consensus novateur (Tusk) qui, fonctionnant ensemble, offre une scalabilité sans limite, et cela, sans faire de concession au niveau de la sécurité. 

Les promesses de MystenLabs :

Sui pourrait offrir une parallélisation horizontale sans limite afin de répondre à la demande des futures applications dites “grand public” tout en maintenant un coût de transaction et de fonctionnement extrêmement bas. 

Ainsi Sui serait doté d’une évolutivité et d’une faible latence sans précédent pour les cas d’usage courant. 

En théorie la plateforme de smart contrat pourrait fournir un débit au-delà des 100 000 tx / s ce qui est à des années-lumière des solutions présentes sur le marché actuel surtout quand l’on sait qu'Ethereum est capable de traiter 15 tx / s cela laisse à réfléchir. 

Cela va sans dire, car cette blockchain nouvelle génération aurait été créée de façon à pouvoir accueillir le prochain milliard d’utilisateurs

Evan Chang, le co-fondateur et CEO de MystenLabs, avait pour conviction que livrer une blockchain capable de gérer quelques milliers de transactions avec une latence correcte ne suffisait pas pour permettre une adoption de masse. C’est pourquoi les équipes de MystenLabs ont dû innover sur l’architecture et le fonctionnement à la base du système. 

Mystenlabs Sui blockchain

Sui à bien l’intention de s’imposer en affichant des capacités défiant toutes autres alternatives, traditionnelles ou de même ordre (blockchain) avant le lancement de son mainnet

En outre Sui promet : 

  • Une évolutivité inégalée et règlement instantané  
  • Un langage de smart contrat sécurisé et accessible 
  • Une meilleure expérience utilisateur pour les applications Web 3
  • Un stockage de données illimité 

Sui pense pouvoir faire, pour le web 3, ce qu’internet haut débit a fait dans le passé pour le web 2. 

Un fonctionnement peu ordinaire : 

Sui prend délibérément la décision de renoncer au consensus et utilise plutôt des primitives (Algorithmes) plus simples et à faibles latences pour ce qui est des cas d’utilisation courants comme les transactions de paiement et transfert d’actifs

C’est cette manière d’opérer qui en fait une innovation dans le monde de la blockchain et lui permettrait d’atteindre des sommets en termes de scalabilité et d'évolutivité. 

C’est grâce à son innovant protocole de mempool conçu comme un DAG (Graphe acyclique dirigé) et son algorithme de consensus, mis au point par ses équipes techniques, que la blockchain Sui peut appliquer ce genre de fonctionnement en parallélisant les données.  

Le système distribué Sui stock une collection d’objets programmables, chacun ayant un identifiant unique.  

Afin de pallier le goulot d’étranglement auquel la plupart des réseaux fait face, Sui part du principe que les transactions les plus répandues (dites “typiques”) est le transfert d’utilisateur à utilisateur ou des manipulations d’actifs

Sui distingue alors deux types d’actif :  

  • Les objets possédés (owned objects) qui ne peuvent être modifiés que par leur propriétaire spécifique
  • Les objets partagés (shared objects) qui n’ont pas de propriétaire spécifique et peuvent être modifiés par la plupart des utilisateurs

C’est cette distinction qui permet au système d’atteindre une latence très faible, car Sui ne requiert son protocole de consensus que lorsque les transactions impliquent des objets partagés (Shared objects). 

Pour faire simple, beaucoup de transactions n’ont pas d’interdépendances complexes avec d’autres parties arbitraires de l’état de la blockchain et les utilisateurs veulent simplement envoyer un actif à un destinataire. Alors les seules données nécessaires pour évaluer si ces transactions sont admissibles sont une “fresh view” (une visibilité à l’instant T) du compte de l’expéditeur. 

C’est cette observation qui permet au système Sui d’utiliser des algorithmes plus simples basés sur la diffusion cohérente byzantine plutôt que le consensus. 

Le Token SUI : 

Comme tout layer 1 qui se respecte, Sui possèdera bien évidemment son jeton natif, le Sui

Avec une supply max définie, le jeton de la plateforme sera utilisé pour le paiement des frais de gas, mais il le sera également comme enjeu délégué sur les validateurs

Les validateurs seront périodiquement reconfigurés selon l’enjeu qui leur est délégué. 

À la fin de chaque époque, les frais collectés sont distribués aux validateurs en fonction de leur contribution au fonctionnement du système. 

L’aspect technique des innovations de Sui

Les objets :

Comme nous l’avons brièvement vu dans les sections précédentes, le fonctionnement de Sui s’appuie sur des objets qui pourraient théoriquement remplacer les blocs dans les systèmes distribués plus traditionnels. 

Le système de Sui fonctionne avec un langage de smart contrat appelé Move composé de packages dont nous parlerons plus tard. 

Dans l’idée, l’état global de la blockchain inclut un ensemble d’objets programmables créés et gérés par ces fameux packages.   

On peut alors noter deux états différents pour ces objets :  

  • Les Immutable objects (objets immuables) : ils ne peuvent pas être modifiés, de ce fait ils n’ont pas de propriétaire exclusif
  • Les Mutable objets (objets mutables) : ils peuvent être modifiés

On notera également 2 sous-catégories pour les objets mutables : 

  • Les Owned objects (objets possédés) : ces objets ne peuvent être modifiés que par leur propriétaire
  • Les Shared objects (objets partagés) : ces objets peuvent être modifiés par tout le monde

En revanche, les Immutable objects n’ont pas besoin de cette différenciation, car ils n’ont pas de propriétaires. 

Ce sont ces distinctions qui permettent au réseau une scalabilité hors norme en se passant du consensus pour les transactions plus classiques utilisant des primitives et impliquant des Owned objects (objets possédés). 

Les transactions :  

Pour rappel, habituellement les validateurs construisent ensemble un accumulateur partagé qui leur donne une représentation de l’état de la blockchain à laquelle ils ajoutent, au fil du temps, des incréments agencés en blocs

A chaque fois qu’un validateur veut faire une proposition de bloc, il séquence la proposition afin de se mettre d’accord avec le reste du réseau sur l’état actuel de la chaine avant et après ce nouvel ajout. 

Transactions communes : 

Sui adopte une autre approche pour ses transactions puisqu’elle les valide individuellement, plutôt que de les regrouper dans des blocs

Le gros avantage offert par cette approche est le temps de latence très faible pour finaliser les transactions réussies. 

Contrairement à un réseau distribué classique, le processus de soumission de transaction de Sui est quelque peu plus compliqué, car la soumission suivra des étapes :  

  • L'expéditeur soumet une transaction à tous les validateurs Sui
  • Les validateurs envoient des votes individuels sur cette transaction à l’expéditeur
  • Chaque vote à un certain poids puisque chaque validateur a un poids basé sur les règles du proof of stake 
  • L'expéditeur rassemble la majorité de ces votes, résistant à la faute byzantine, dans un certificat et le diffuse à tous les validateurs assurant ainsi la finalité, garantissant le fait que la transaction ne sera pas révoquée
  • L'expéditeur recueille un certificat détaillant les effets de la transaction (le petit plus de Sui pour améliorer l’expérience utilisateur)

C’est ainsi que sont traitées et fonctionnent les transactions dites “communes” sur le réseau Sui

Transaction complexe :  

Les contrats intelligents (transactions complexes) peuvent eux bénéficier d’objets partagés ou plus d’un utilisateur peut muter ces objets (en respectant les règles du contrat). 

C’est dans ce cas-là que le système de Sui ordonne totalement toutes les transactions impliquant des objets partagés (shared objects) en utilisant son protocole de consensus basé sur Narwhal

Lorsque des objets partagés sont impliqués, la transaction suit les étapes suivantes :  

  • L’expéditeur diffuse une transaction à tous les validateurs
  • Chaque validateur vote de manière individuelle avec son propre poids de vote (respectant les règles du proof of stake) 
  • L’expéditeur rassemble une majorité de ces votes résistant aux fautes byzantines dans un certificat, le diffuse à nouveau au validateur (cette fois le certificat est séquencé par un accord byzantin)
  • Une fois la transaction séquencée, l’utilisateur diffuse une fois encore le certificat aux validateurs pour régler la transaction
fonctionnement des Validations de transactions Blockchain Sui MystenLabs

Narwhal et Tusk : la botte secrète de MystenLabs

Dans cette section nous allons vous expliquer de manière succincte ce que sont Narwhal et Tusk et comment leur fonctionnement combiné apporte une vraie évolution dans le fonctionnement du système Sui

Narwhal : 

Narwhal est un nouveau modèle de mempool basé sur un DAG (Graphe acyclique dirigé). 

Dans l’idée Narwhal assure une large disponibilité et l’intégrité des transactions soumises par les utilisateurs dans un réseau entièrement asynchrone

Il s’agit d’un stockage distribué structuré, résistant aux fautes byzantines qui fournit la disponibilité ainsi qu’un ordre partiel (seulement pour les transactions complexes impliquant des objets partagés) des données soumises au consensus. 

Tusk :

Tusk lui est un algorithme de consensus haut débit qui, couplé au protocole Narwhal et en fonction du nombre de validateurs, offrira des performances jamais vues auparavant. 

Narwhal et Tusk partagent donc les fonctionnalités et responsabilités suivantes : 

  • Narwhal sert à assurer la disponibilité des données soumises au consensus
  • Tusk permet de créer un accord sur l’ordre spécifique de ces données (mise à jour d’état) 

Ceci est exécuté dans des modules à deux couches de façon que Narwhal puisse être couplé avec d’autres algorithmes de consensus externe

Grâce à la combinaison de ces deux protocoles et à l’échelle du nombre de validateurs vérifiant le réseau, c’est ainsi que le système Sui pourrait offrir un débit théorique de plus de 500 000 tx / s avec une latence n’excédant pas les 4s

La figure suivante illustre comment Narwhal peut être combiné avec un protocole de consensus pour permettre un ordonnancement total à haut débit des transactions. 

Sui Web 3

Move : un langage de smart contract qui met d’accord

Move est un langage open source utilisé sur Sui pour la programmation de smart contrat

À l’origine ce langage fut créé pour alimenter la blockchain Diem (anciennement Libra) propriété de Meta (ex Facebook). 

Cependant ce langage est un langage dit “platform agnostic”, ce qui le rend polyvalent et extensible pour créer ou être utilisé sur d’autres systèmes, avec une structure de fonctionnement relativement différente. 

Avis aux développeurs voulant d'ores et déjà manipuler ce langage, un tutoriel et toute la documentation sont disponible sur le github du Move. 

 
Sui impose un modèle de programmation un peu différent en utilisant un sous ensemble du modèle Move Classique appelé “Sui Move” même si la syntaxe reste identique. 

Dans cette section nous resterons relativement en surface quant au fonctionnement technique du langage Move afin de rester digeste. 

Les Atouts de Move : 

Les atouts et avantages apportés par le langage Move sont multiples, mais certains méritent d’être relevés :

  • Tout d’abord, le langage Move offre une sécurité élevée et une résistance aux attaques reentrancy, ayant déjà causé d’importants dégâts sur Ethereum (notamment avec TheDAO), grâce à une vérification du code utilisant les spécifications implémentées dans celui-ci, contrairement aux langages traditionnels de smart contract qui seront eux vérifiés par des humains laissant la place à de potentielles erreurs. 

 Move a été spécialement conçu pour répondre à deux problématiques :  

  • La représentation des actifs numériques
  • La sécurité des opérations sur ces actifs 

Pour parvenir à une sécurité optimale, il a été codéveloppé avec un outil de vérification appelé Move Prover, permettant aux développeurs d’écrire des spécifications formelles pour les principales propriétés de leur application, puis d’utiliser le Prover pour vérifier que ces propriétés seront respectées par toutes les transactions et entrées possibles

Cet outil permet de réduire grandement le temps de création ainsi que les moyens financiers alloués aux développements de smart contract ainsi qu’à leur sécurité

Ce processus de vérification améliore aussi grandement la productivité ainsi que l’accessibilité au monde du développement de smart contract ce qui va dans le sens de l’adoption de masse, cheval de bataille de Sui

sui mystenlabs

Move se démarque aussi par le fait que, contrairement aux autres langages, ses modules peuvent importer des structures et invoquer des fonctions présentes dans d’autres modules, ce qui leur permet de les faire communiquer et de transiter d’un module à l’autre.

Cela signifie que les actifs peuvent circuler librement à travers les frontières contractuelles sans perdre leur intégrité grâce aux protections intégrées par Move en sécurité dew Ressources

Nous noterons également que Move a été conçu comme un langage agnostique (cela signifie qu’il n’est pas relié à une plateforme en particulier et peut être utilisé sur d’autres systèmes) comme exposé plus haut pour permettre l’utilisation de bibliothèques, et d’outils communs sur des blockchain avec des modèles de fonctionnement très différents

Ce langage est notamment déjà utilisé par certaines plateformes comme OL et Starcoin pour ne citer que celles-ci, mais une intégration du Move est déjà prévue sur d’autres plateformes existantes et à venir. 

Le fonctionnement du langage Move : 

Nous allons survoler certains concepts composant la structure du langage qui pourront être ensuite approfondis par vos soins. 

Les packages : 

L’unité principale de l’organisation du Langage Move est nommée “Package” (qui doit inclure le fichier Move.toml), lui-même constitué de Modules (séparés par un fichier portant l’extension .move) dans lesquels seront implémentées des fonctions Move et des définitions de types. 

La structure minimale du répertoire source d’un package se construit alors comme suit :  

Sui blockchain Move

Les packages Move sont des objets immuables, ce qui signifie qu’ils ne peuvent être modifiés après leur publication

Au contraire, un objet Move peut être partagé, ce qui implique que n’importe qui peut l’utiliser et le muter

Les modules :  

Un module consiste en une collection de déclarations de structures (Struct) nommées et une collection de déclarations de fonctions (fun) nommées. 

Le langage du Move est organisé en Modules dont la structure est définie comme suit : 

Narwhal module Blockchain Sui MystenLabs

Un module contient également une déclaration de fonction spéciale servant d’initialiseur de Module. 

Les structs : 

Un struct est une structure de donnée définie par l’utilisateur contenant des champs typés de tous types non référencés y compris d’autres structs

Le Type de struct de Move est similaire aux types de struct définis dans d’autres langages de programmation, tels que C ou C++. 

Ces structures doivent être définis à l’intérieur d’un module : 

Narwhal struct Blockchain Sui MystenLabs

Pour les plus courageux la documentation du langage offre une approche plus en profondeur. 

La team 

Team MystenLabs Evan Cheng

Evan Cheng : Co-fondateur et CEO de MystenLabs a passé 10 ans chez le géant Apple en tant qu’ingénieur et manageur senior, avant de devenir directeur de l’ingénierie et langage chez Facebook de 2015 à 2018, puis est passé directeur de la recherche et du développement chez Novi Financial

Team MystenLabs Adeniyi Abiodun

Adeniyi Abiodun : Co-fondateur et CPO de MystenLabs, est passé par de multiples entreprises reconnues en tant qu’ingénieur en software senior comme HSBC, J.P Morgan et bien d’autres de 2005 à 2013 avant de passer par de multiples entreprises travaillant dans le milieu de la blockchain. Il travaillera également chez Meta ou il sera Product lead pendant 2 ans.

Team MystenLabs Sam Blackshear

Sam Blackshear : Co-fondateur et CTO de Mystenlabs, est également passé par la case GAFAM en travaillant chez Facebook en tant que Staff ingenieer de 2015 à 2018 puis est parti chez Novi financial pour assurer le poste d’ingénieur principal. Il est notamment le Créateur du langage Move

Team MystenLabs George Danezis

George Danezis :  Co-fondateur et chief scientist (responsable scientifique) a enseigné l’ingénierie de la sécurité et vie privée à la University College de Londres dont la réputation n’est plus à faire. Puis il a Travaillé chez Facebook où il participera à la création de Diem (anciennement Libra) de 2019 à 2021. 

Team MystenLabs Kostas Chalkias

Kostas Chalkias : Co-fondateur et chief cryptographer (cryptographe en chef) a lui une belle expérience de création puisqu’il fut le co fondateur de 2 sociétés (Safemarket et Erybo inc) oeuvrant de près dans le domaine de la sécurité, et de la cryptographie, avant de lui aussi passer chez Meta pour travailler sur Diem.

Cette brève présentation des fondateurs de MystenLabs montre que le projet est porté par des acteurs expérimentés du domaine avec un appui financier conséquent derrière eux puisqu’ils ont effectué une levée de fonds de 36 millions de dollars au cours de l’année 2021. 

Le futur de Sui

Pour ce qui est de la roadmap, les équipes de MystenLabs encouragent les développeurs les plus investis à manipuler le langage Move. Pour ce faire, des tutoriels sont disponibles pour faciliter la prise en main. 

Par ailleurs, un devnet public est d’ores et déjà disponible depuis le 5 mai pour que les développeurs puissent y tester leurs smart contracts

De plus, la team annonce plusieurs choses dans les mois à venir : 

  • Un testnet pour début juin ou début juillet qui intègre un ensemble diversifié d’autorité non géré par MystenLabs
  • Un mainnet principal public avec des actifs réels et des applications en production

Voici quelques exemples de futures fonctionnalités à venir : 

  • Implémentation du staking 
  • Intégration des objets partagés (Shared objects) et du consensus 
  • Explorateur de blocs 
  • Prototype de gestion de clé et wallet (portefeuille) 

Et bien d’autres présentées sur leur feuille de route

Conclusion  

Dans un monde où la blockchain se démocratise à l’échelle mondiale, l'innovation sera la solution évidente pour pallier les problèmes des réseaux actuels. 

Comme nous le savons tous, les géants du web 2 ne se sont pas faits en un jour, c’est pourquoi aujourd’hui les performances qu’affichent les réseaux dominant l’écosystème peuvent parfois paraitre dépassés lorsque des solutions novatrices, comme Sui, entrent en jeu. 

Avec les éléments exposés dans cet article, MystenLabs et plus particulièrement son réseau distribué Sui, apparaissent facilement comme de futurs acteurs dominants du domaine

Néanmoins la plateforme a encore tout à prouver et les années à venir risquent d’être probablement bousculées par une émergence de nouvelles solutions comme celle-ci.  

Cependant si Sui tient ses engagements, il s’imposera aisément comme l’un des piliers de l’industrie comme a su le faire Ethereum dans le passé.