L’équipe de Neon Labs promet d’accélérer la croissance de l’écosystème Solana en cette année 2022. En effet, c’est grâce à elle que la machine virtuelle d’Ethereum (EVM) y fait son arrivée !
Les développeurs de smart contracts et d’applications décentralisées pourront ainsi utiliser tous les outils d’Ethereum comme Solidity, Truffle et Remix sur Solana. Ils bénéficieront du meilleur des deux mondes.
On ne présente plus Ethereum, la plateforme de smart contracts la plus utilisée au monde. L’écosystème agrège des dizaines de milliers de développeurs autour de la planète, grâce à son langage de programmation, Solidity. Des milliers d’applications décentralisées y ont vu le jour, et il s’agit d’une véritable révolution. Grâce à Ethereum, de nombreuses applications ont révolutionné le Web : finance décentralisée, jetons non-fongibles (NFT), etc.
Solana est une plateforme blockchain extrêmement rapide et scalable. Grâce à son architecture, il est possible d’exécuter des smart contracts en parallèle. Cela permet d’obtenir un débit de transactions très élevé, le tout avec des frais d’exécution très faibles.
Neon EVM est un émulateur de la machine virtuelle d’Ethereum sur Solana, programmé en Rust (le langage de programmation natif de Solana).
Le Berkeley Packet Filter est un code que l’on injecte directement dans le noyau d’un système opérationnel afin d’y effectuer du filtrage réseau. Concrètement, cette interface minimaliste permet de lier différentes couches de données : le BPF confère la possibilité d’intégrer plusieurs machines virtuelles sur Solana. La machine virtuelle Neon EVM est un smart contract, déployé sur Solana grâce au BPF.
Les règles d’Ethereum et de Solana ne sont pas les mêmes : il faut donc un mécanisme pour passer de l’un à l’autre. Le Neon Web3 Proxy permet alors de convertir des transactions Ethereum signées pour les rendre compatibles avec Solana. Dans les détails, étant donné que la taille d’une transaction Ethereum formée sur la Neon EVM peut dépasser celle d’une transaction Solana, la N-trx sera « découpée » en plusieurs S-trx. Chacune d’entre elles sera signée avec une clé proxy, et le proxy enverra le lot sur Solana.
Le proxy Neon Web3 fournit également une API pour que les logiciels clients (Metamask, par exemple) puissent se connecter à l’EVM Neon sans avoir à réécrire leur code. Il suffit d’entrer l’adresse du proxy au sein du client. Les dApps fonctionnent donc de la même façon, et l’interface est identique. Très pratique !
L’utilisateur génère sa transaction à l’aide de son logiciel client favori. Elle est alors envoyée au proxy Neon Web3 – instance de l’émulateur Neon EVM. La transaction est donc créée selon les règles d’Ethereum. Plus précisément, elle comporte les informations suivantes :
L’émulateur Neon EVM doit tout d’abord effectuer une requête auprès du réseau Solana afin d’obtenir les données de l’état de la blockchain. C’est le proxy qui envoie cette requête. Avec l’état obtenu, il va effectuer une série de transactions (N-trx) de test.
Le proxy crée ensuite la nouvelle transaction, selon les règles de Solana. Elle comprend l’ensemble des N-trx ainsi que les données de compte nécessaires à son exécution (compte émetteur et autres comptes impliqués).
Cette transaction est diffusée vers Solana (les participants sont fixés par les données de compte). L’opérateur du proxy est considéré comme l’émetteur : il sera récompensé.
La transaction est enfin transférée vers la machine virtuelle Neon. Sa signature sera vérifiée selon les règles d’Ethereum. Si elle est valide, la transaction est exécutée sur la blockchain de Solana. Les N-trx ont été préalablement testées, ce qui signifie que Solana peut les exécuter en parallèle.
D’un point de vue pratique, la première chose qui saute aux yeux est qu’il n’y a pas besoin de changer le code des dApps pour les transférer sur Solana. Aucune ressource supplémentaire n’est nécessaire. De même, il suffit pour les logiciels clients de se connecter au proxy Neon – nul besoin de les modifier.
Les développeurs peuvent désormais utiliser les outils d’Ethereum pour créer et déployer leurs smart contracts sur Solana (ou transférer leurs dApps). La machine virtuelle de Neon peut être mise à jour n’importe quand (contrairement à l’EVM). Il suffit de téléverser le code des mises à jours comme un nouveau contrat.
Les développeurs de la machine virtuelle Neon (Neon EVM) se sont focalisés sur la rapidité de finalisation des transactions. De même, il proposent une solution permettant de créer des jetons liquides pour les utilisateurs de l’EVM Neon, circulant sur Solana.
Il y a différents composants au sein de l’architecture de Neon :
Il possède un compte sur l’EVM Neon et un solde en ETH, ERC-20/ERC-721.
Transaction générée selon les règles de Solana.
Transaction générée et signée selon les règles d’Ethereum.
L’application a le bytecode EVM d’un contrat au sein de l’EVM Neon. Les transactions N-trx sont générées selon les règles d’Ethereum et envoyées au proxy. Afin de couvrir les coûts de l’opération, les fonds nécessaires sont transférés au sein d’un dépôt Solana.
Un opérateur de la Neon EVM possède un compte Solana et peut déployer un ou plusieurs proxies. Il peut les donfigurer à sa guise. Il est aussi possible d’utiliser plusieurs comptes Solana et un seul proxy.
Il s’agit du logiciel qu’utilise l’opérateur. Pour des raisons de vitesse de traitement des transactions, il s’agit d’un composant à part entière, bien qu’il eût été possible de l’intégrer au niveau du navigateur par exemple. Le proxy doit être capable de traiter de multiples processus en parallèle.
Le proxy intègre un émulateur de l’EVM Neon afin de pré-tester l’exécution de la transaction sur Solana. Ces tests vont déterminer la quantité de coins requis sur le solde de l’opérateur afin qu’il puisse accomplir sa tâche. De même, le taux de change SOL/ETH est fixé à ce moment-là.
Les N-trx sont transformées en S-trx. Les N-trx sont signées par un utilisateur, mais les S-trx sont signées par l’opérateur. Les messages correspondant aux N-trx sont stockés sur des comptes Solana séparés.
Les fonctionnalités déjà implémentées sur le testnet de Neon sont les suivantes :
La machine virtuelle Ethereum Neon est compilée en bytecode BPF. Cette VM est déployée sur Solana via un compte multi-signatures. C’est à partir de ce compte multisig qu’il est possible de changer les paramètres et le code de l’EVM Neon.
Les acteurs qui participent au processus de gouvernance peuvent mettre les contrats à jour, ajouter des fonctionnalités, et changer des paramètres importants (valeur des frais, valeur Mn, nombre maximum d’itérations, etc.)
Il n’existe pas de descriptif en français qui soit digeste pour décrire ce procédé « d’enrobage » des jetons. Il s’agit de créer sur Solana des jetons correspondant à leurs équivalents ERC-20 sur Ethereum. Le contrat correspondant est déployé dans l’EVM Neon mais il est indépendant et contient tous les soldes des utilisateurs.
Les jetons créés à la demande de l’utilisateur ne sont liquides qu’au sein de l’EVM Neon. Afin de rendre les jetons liquides sur Solana, les ERC-20 et les SPL doivent être inter-opérables : c’est le rôle du wrapper.
Le processus d’exécution d’une transaction comporte plusieurs étapes. Chaque étape ne peut être exécutée qu’une fois la précédente complétée. Bien entendu, le nombre d’étapes dépend de la complexité de l’opération.
On considère la transaction complète une fois que l’étape finale est exécutée. La valeur Mn définit le nombre de blocs alloués pour opérer cette transaction. Si la durée de l’opération dépasse cette période, elle est considéré incomplète.
L’opérateur doit allouer des fonds pour exécuter la requête de l’utilisateur. Il possède un compte de dépôt au sein de l’EVM Neon, qui est verrouillé (personne ne peut retirer ces fonds). Avant l’exécution de la transaction, L’EVM débite automatiquement le compte de l’opérateur, et place les fonds dans un compte de dépôt.
En cas de non-exécution d’une opération lors d’une étape, l’opérateur suivant prendra le relai. Ce nouvel opérateur n’a pas à déposer de fonds pour effectuer sa tâche : si l’exécution rencontre à nouveau des problèmes, c’est encore l’opérateur suivant qui la prend en charge. Les fonds présents en dépôt sont transférés à l’opérateur qui exécute l’étape finale. Ce mécanisme incite donc les clients tout comme les opérateurs à exécuter correctement la transaction.
Les informations relatives aux transactions de l’EVM Neon sont accessibles pour tous les opérateurs en consultant l’état de la blockchain de Solana. Le proxy scrute cette dernière et peut ainsi connaître les transactions incomplètes. Un opérateur prenant le relai devra signer à nouveau avec sa clef. Si le nombre de blocs nécessaire à la finalisation de la transaction incomplète ne dépasse pas MN, la signature de l’opérateur originel est conservée. Dans le cas contraire, le nouvel opérateur signe la transaction.
Le wrapper a un fonctionnement classique. Il s’agit d’une application décentralisée dont le contrat conserve le solde des utilisateurs. Les utilisateurs appellent donc ce contrat pour y déposer leurs fonds.
L’utilisateur possède donc deux soldes : son solde SPL concernant les tokens liquides sur Solana, et son solde ERC-20 correspondant aux jetons échangés au sein de l’EVM Neon.
Ce système permet donc à l’utilisateur de transférer ses jetons SPL sur son solde ERC-20, les échanger, puis les retirer.
Il faut pouvoir transférer les jetons SPL créés par le wrapper vers l’extérieur. Un système de pont permet de passer de Solana a Ethereum. Sur Solana, les fonds sont verrouillés au sein de différentes adresses. Ils sont donc liquides sur Solana sous un nom différent. Le processus permettant de créer leur équivalent sur Ethereum est le suivant :
Les jetons sont générés sur Ethereum en tant qu’ERC-20. Il y a un wrapper déployé pour chaque type de jeton Solana. Le système permet donc aux applications Solana d’interagir avec les contrats EVM (Solidity, Vyper, etc.) et d’effectuer les transferts SPL – ERC-20 via un portefeuille Ethereum comme MetaMask.
Un pont est un contrat séparé, et les opérateurs de ponts sont récompensés en frais pour la conversion.
Les Transaction Value tokens sont les jetons qui circulent au sein de l’EVM Neon.
En effet, les ethers ne sont pas directement utilisés au sein de la machine virtuelle. Le calcul des récompenses serait complexifié. Les TVT sont donc l’équivalent des ethers, et sont générés à partir des deux ponts Sollet et WormHole.
Le procédé de transfert est automatique et les conversions peuvent être réalisées en parallèle.
Le compte Ethereum de l’utilisateur est présent dans la machine virtuelle. Il comporte deux champs : ETH ou USDT – le value token identifiant les coins, et PAYMENT, correspondant aux jetons destinés à payer les opérateurs réalisant les transactions.
Les comptes Solana, quant à eux, sont hors de la machine virtuelle et seuls les comptes Ethereum peuvent y accéder. Le solde de ces comptes sont en SPL et les opérations en value tokens font appel à ces comptes. Seuls les comptes Solana peuvent manipuler le solde des adresses concernées. Autrement dit, seul le compte Ethereum peut modifier le solde des comptes Solana.
Après la création d’un compte Ethereum via l’EVM Neon, les comptes SPL correspondants sont créés et le transfert des value tokens devient possible.
Quant au paiement des opérateurs, l’utilisateur a le choix du jeton qu’il souhaite utiliser. Le compte servant à payer les opérateur est créé dans l’EVM Neon : l’utilisateur peut y transférer des ethers grâce aux ponts. Le solde correspondant en jetons SPL sera automatiquement crédité mais attention : il faut utiliser le même pont pour déposer les fonds puis les retirer.
NeonSwap est un fork d’Uniswap V2 en open source. L’application décentralisée phare de la DeFi est déployée sur Solana ! La migration d’une dApp d’Ethereum à Solana est d’une simplicité déconcertante :
Cofounder @ 8Decimals - Journal du Coin / BitConseil / Trading du Coin
Pour aller plus loin
Entrez dans la cour des grands du trading de cryptos : nos astuces pour performer sur FTX
Afin de vous familiariser avec le trading de produits dérivés, nous vous proposons une entrevue complète de FTX et son interface de trading. Rappel : le trading comporte des risques importants, et vous pouvez perdre la totalité de votre capital. Cet article est conçu dans un but éducatif, et ne constitue en aucun cas un … Continued
Dans la même catégorie
Recevez un condensé d'information chaque jour
Suivant
Gratuit
recevez votre guide PDF complet
Comment débuter dans les cryptos en 2022
Ce site utilise des cookies afin que nous puissions vous fournir la meilleure expérience utilisateur possible. Les informations sur les cookies sont stockées dans votre navigateur et remplissent des fonctions telles que vous reconnaître lorsque vous revenez sur notre site Web et aider notre équipe à comprendre les sections du site que vous trouvez les plus intéressantes et utiles.
Cette option doit être activée à tout moment afin que nous puissions enregistrer vos préférences pour les réglages de cookie.
Si vous désactivez ce cookie, nous ne pourrons pas enregistrer vos préférences. Cela signifie que chaque fois que vous visitez ce site, vous devrez activer ou désactiver à nouveau les cookies.
Ce site utilise Google Analytics pour collecter des informations anonymes telles que le nombre de visiteurs du site et les pages les plus populaires.
Garder ce cookie activé nous aide à améliorer notre site Web.
Veuillez activer d’abord les cookies strictement nécessaires pour que nous puissions enregistrer vos préférences !