Zyfi : les frais de gas ne sont plus un problème !

Zyfi propose aux développeurs de dApps une suite d’outils, flexibles et facilement intégrables, améliorant l’expérience utilisateur de la finance décentralisée (DeFi) sur ZKsync, une couche secondaire (layer 2) d’Ethereum. Plus précisément, il s’agit d’une couche d’abstraction du gas (gas abstraction layer) ou encore d’un Paymasters-As-A-Service. Ces termes vous semblent incompréhensibles ? Il s’agit tout simplement de permettre à tous les utilisateurs d’applications décentralisées (dApps) de payer ou de faire sponsoriser leurs frais de gas grâce à n’importe quel jeton ERC-20 supporté par ZKsync.

Le Journal du Coin vous propose cet article promotionnel en collaboration avec Zyfi.

Le gas et l’expérience utilisateur

Sur les différentes couches secondaires d’Ethereum, les frais en gas doivent être payés en ETH, ou grâce aux jetons natifs des différents réseaux blockchain. C’est un prérequis pouvant nuire fortement à l’expérience utilisateur. Les débutants ne savent pas toujours comment obtenir ces jetons, et même les plus chevronnés ont du mal à gérer leurs frais de gas dans le cas de transactions complexes.

L’idée est donc de trouver un système permettant de se passer du jeton natif de la couche secondaire utilisée, ou d’ethers, pour couvrir les frais en gas. On parle de gasless transaction.

L’abstraction de compte

Ethereum présente deux types de comptes :

  • Les comptes d’utilisateurs (Externally Owned Accounts ou EOA) : contrôlés par une clé privée et des paires de clés cryptographiques, ils sont gérés directement par les utilisateurs humains ;
  • Les comptes de contrats (Contract Accounts) : contrôlés par du code, ils permettent d’exécuter les fonctions complexes de l’EVM.

L’abstraction de compte (Account Abstraction ou AA) vise à réduire la différence entre les comptes des utilisateurs et ceux des smart contracts : chaque type de compte devient alors programmable, personnalisable et flexible selon les besoins spécifiques des utilisateurs et des applications décentralisées.

C’est la raison d’être de l’EIP4337. Cet EIP permet ainsi de se passer de changements au niveau de la couche de consensus d’Ethereum pour proposer l’abstraction de compte.

Smart Wallets et Paymasters

Grâce à l’EIP4337, l’utilisateur peut désormais exécuter des gasless transactions. Ce procédé passe par divers contrats :

  • Le Sender est le contrat gérant l’opération de l’utilisateur ;
  • L’EntryPoint gère les ensembles (bundles) d’opérations ;
  • l’Aggregator permet de valider les signatures agrégées des utilisateurs ;
  • Enfin, le Paymaster est le contrat acceptant de payer pour la transaction à la place de l’utilisateur lui-même.

On appelle ces comptes complexes des Smart Wallets. Ils sont généralement spécifiques à chaque dApp, peu interopérables, et nécessitent du gas pour être déployés. Ces frais restent à la charge des utilisateurs ou des dApps. De plus, les comptes utilisateurs classiques, ou EOA pour “externally owned accounts”, ne peuvent pas directement interagir avec les Paymasters. En somme, cela reste un casse-tête pour les utilisateurs qui sont habitués à utiliser leur wallet standard.

Les EOA (comptes gérés par les utilisateurs humains) ne peuvent pas interagir directement avec les Paymasters.

Zyfi, ZKsync et l’abstraction de compte native

ZKsync Era est le premier layer 2 d’Ethereum intégrant l’abstraction de compte de façon native, c’est-à-dire au niveau de son protocole.

Zyfi tire parti de cette caractéristique unique de ZKsync et propose des outils flexibles et faciles à intégrer. On parle de Paymasters-As-A-Service : ils permettent aux EOA d’interagir avec leurs paymasters sur ZKsync. Concrètement, cela signifie que l’utilisateur peut ainsi passer par n’importe quel wallet, comme MetaMask, pour exécuter des gasless transactions.

Avec ZKsync, un EOA pout interagir avec un Paymaster
zkSync intègre l’abstraction de compte de façon native.

Les développeurs de DApps ont alors plusieurs choix :

  • Proposer à leurs utilisateurs de payer avec n’importe quel ERC-20 disponible sur ZKsync (actuellement plus de 80) ;
  • Sponsoriser une partie ou la totalité des coûts en gas de transaction, selon leur propre logique personnalisée.

La suite d’outils de Zyfi

En premier lieu, Zyfi propose une API facile d’utilisation pour les développeurs. Elle leur permet de se passer d’implémentations complexes au niveau de leur protocole, pour se focaliser sur leur produit. Plusieurs dApps intègrent déjà Zyfi, telles que :

  • ZeroLend (lending/borrowing) ;
  • PancakeSwap (DEX)
  • Gravita (borrowing/liquid staking) ;
  • Syncswap (DEX)
  • Increment Fi (contrats perpétuels) ;
  • Mithraeum (Gaming)
  • zkMarkets (place de marché NFT).

Zyfi propose également un portail gasless pour tout l’écosystème de ZKsync. Les utilisateurs peuvent ainsi réaliser des échanges de jetons aux meilleurs taux, ne payer aucun frais sur leur transactions à partir de $100, envoyer des jetons sans posséder d’ETH, ou même interagir avec des protocoles ne proposant pas de solution de paymaster.

Zyfi - Fonctionnement global
Fonctionnement de Zyfi

Fonctionnement général du Paymaster de Zyfi

Nous n’entrerons pas dans les détails les plus techniques de la solution de Zyfi, mais nous nous contenterons de présenter son architecture de haut niveau pour conclure cet article. Grâce à Zyfi, l’utilisateur peut exécuter ses échanges de jetons sans posséder de gas. Le procédé repose sur trois étapes-clé :

  • Récupération des données de transaction depuis le front-end : l’API du paymaster peut interagir avec tout type de front-end. Une fois intégrée à la dApp, elle récupère les données de transaction. Zyfi estime les frais de gas sur ZKsync et récupère hors chaîne le prix du jeton ERC-20 choisi par l’utilisateur pour le paiement du gas. L’API complète ensuite les données de transaction, en intégrant les frais en ERC-20 reçus par le fetching offchain. Elle signe alors un message afin que le paymaster accepte la transaction. Enfin, elle renvoie au front-end les données de transaction complétées, pour approbation par l’utilisateur.
  • Signature de la transaction reconstruite : l’interface utilisateur de la dApp soumet alors la transaction à l’utilisateur de façon normale. Ce dernier peut en voir les détails et, après approbation, signe une transaction on-chain contenant les données mises à jour. Il est ainsi possible de gérer tout type de transactions complexes, tant que l’utilisateur peut en couvrir les frais.
  • Exécution de la transaction : le paymaster de Zyfi reçoit les données de transaction, accompagnées de la signature de l’utilisateur approuvant la transaction. Zyfi collecte les frais en ERC-20, valide et exécute la transaction en payant le gas requis.
Zyfi - Étapes d'une gasless transaction
Les différentes étapes d’une gasless transaction avec Zyfi

La suite logicielle de Zyfi

Zyfi propose actuellement trois produits principaux pour les développeurs :

Les concepteurs de dApps qui intègrent les solutions de Zyfi peuvent d’ores et déjà bénéficier de leur programme incitatif, assurant la distribution de 50 000 dollars de récompenses.

La documentation relative à l’intégration de ces outils est disponible ici. Nul doute que nous entendrons à nouveau parler de Zyfi dans les mois à venir, l’amélioration de l’expérience utilisateur sur les couches secondaires d’Ethereum étant un enjeu de taille !

Ressources

    Morgan Phuc

    Cofounder @ 8Decimals & Partner @ Node Guardians - Making crypto great again - Journal du Coin / BitConseil