[THREAD] - @neonlabsorg : comment rendre #Solana EVM-compatible
Aujourd'hui sort le mainnet de @neonlabsorg permettant aux projets des chaines EVM d'être exécutés sur la blockchain Solana et ainsi profiter de ses avantages.
Je vous explique comment cela fonctionne 🧵
Tout d'abord, définissons ce qu'est un EVM.
Grossièrement, l'EVM, ou Machine Virtuelle d'Ethereum, est le cerveau de la blockchain Ethereum qui permet de traiter les transactions et smart contracts et de mettre à jour l'état de la blockchain. ethereum.org/fr/developers/docs/evm/
Le développement de nombreuses blockchains s'est basé sur la réutilisation du code d'Ethereum et de son EVM. Nous pouvons notamment citer Avalanche, BSC, et Polygon.
Toutes ces chaines sont dites EVM-compatible car reposent sur les mêmes règles de fonctionnement.
Solana quant à elle, possède ses propres règles, le SVM ou Machine Virtuelle de Sealevel.
Nous pouvons notamment citer la manière dont sont définies les transactions et comment s'exécutent les instructions de celles-ci.
Dans une transaction ETH, nous ne devons pas faire cette liste et l'exécution des transactions est séquentielle.
De part cette différence de fonctionnement, Solana est "fermée" aux protocoles EVM. En effet, il est beaucoup plus facile de se déployer sur une autre chaine EVM car le fonctionnement est sensiblement identique que de se déployer sur Solana où le fonctionnement est différent.
Ce déploiement nécessiterait de réécrire le code du protocole de zéro pour satisfaire les règles de Solana. A cause de ce travail fastidieux, les protocoles EVM ne peuvent pas tirer profit des avantages de Solana tout en étant en plus restreint par les limites des chaines EVM.
Ce sont ces problèmes que vise à résoudre @neonlabsorg en permettant l'exécution de transactions de type Ethereum, c'est à dire qui suivent les règles d'Ethereum.
Leur solution, Neon EVM, comporte pour cela deux parties:
1⃣ - Le programme Neon EVM
2⃣ - Le Proxy Neon
1⃣ - Le programme Neon EVM
Programme Solana qui se comporte comme un EVM et permet de lire/écrire dans des comptes Solana. Cela permet à Neon EVM de recevoir des transactions de type Ethereum et ensuite de les traiter sur Solana selon les règles d'Ethereum.
2⃣ - Le Proxy Neon
Convertit les transactions de type Ethereum en transactions Solana, puis les envoie au programme EVM pour traitement.
Concrètement, tout cela fonctionne ainsi :
Tout d'abord, l'utilisateur interagit avec une dApp Neon EVM. Celle-ci génère une transaction de type Ethereum appelée "transaction Neon" et demande sa signature à l'user. Après signature, cette transaction est envoyée au Proxy Neon.
Le Proxy récupère la transaction Neon et effectue un test d'exécution en utilisant son émulateur EVM interne.
Ce test permet de déterminer la liste des comptes utiles à la transaction, le coût total de celle-ci et le nombre de transactions itératives nécessaires pour l'exécuter.
En effet, la taille des transactions de type Ethereum peut être supérieure à la taille limite autorisée pour les transactions Solana. Dans ce cas là, la transaction Neon sera "copiée" en plusieurs transactions Solana identiques dites itératives qui seront par la suite exécutées.
Après le test d'exécution, le Proxy génère à partir de la transaction Neon et de la liste des comptes récupérée une transaction Solana non itérative et l'envoie au programme Neon EVM pour tenter de l'exécuter.
Si la transaction échoue à cause d'une erreur de taille limite, plusieurs transactions Solana itératives seront crées.
Celles-ci sont ensuite traitées de la façon décrite dans le schéma ci-dessous :
Les transactions sont envoyés au programme Neon EVM pour être exécutées les unes après les autres.
À chaque fois qu'une transaction itérative est exécutée, le programme stocke sur la blockchain son état puis passe à la suivante.
Cela permet au programme de savoir où il s'est arrêté et donc de reprendre l'exécution des instructions au bon endroit.
Une fois toutes les transactions itératives traitées, le Proxy va vérifier qu'elles ont toutes été confirmées. Si ce n'est pas le cas, il va en envoyer de nouvelles pour compléter la transaction Neon.
Une fois qu'elles sont toutes confirmées, la transaction Neon est terminée.
L'utilisateur paye les frais de transactions de la blockchain Solana ainsi que des frais versés à la personne qui fait tourner le Proxy Neon pour ses loyaux services.
Les avantages de Neon EVM sont ainsi multiples :
- Les users peuvent profiter des bénéfices de la blockchain Solana (frais faibles, transactions rapides et scalabilité) sans changer leurs habitudes (wallets et protocoles utilisés)
- Les projets peuvent se déployer sur Neon EVM sans changer leur code et continuer à utiliser les outils d'Ethereum. Comme le montre ce thread où j'explique comment utiliser Remix pour déployer un contrat sur Solana
twitter.com/laloutre/status/1488195465099108356
- Les projets peuvent profiter des bénéfices de la blockchain Solana qui peuvent leur amener de nouvelles perspectives et améliorations.
- En touchant un nouvel écosystème, ils peuvent potentiellement faire croitre leur nombre d'users.
Nous pouvons notamment citer les projets suivants qui ont participé aux tests de Neon EVM et qui sont en train d'être build dessus :
Avant de terminer, parlons un peu du token de @neonlabsorg.
Le $NEON sera un token utilitaire puisqu'il faudra en dépenser pour exécuter des transactions et un token de gouvernance qui permettra de prendre part à la DAO et donc à l'évolution du projet docs.neon-labs.org/docs/governance/overview