Auteur : Mert Ozbay & Mustafa Bedawala & Catherine Gu, Visa; Traduction : Jinse Finance xiaozou
La technologie blockchain a été largement adoptée ces dernières années, et bien qu'elle ait le potentiel de façonner l'avenir des flux monétaires, les transactions blockchain introduisent également un niveau de complexité plus élevé que l'on ne trouve pas dans les méthodes de paiement traditionnelles. Les transactions Blockchain utilisent un réseau décentralisé où plusieurs participants au réseau vérifient et enregistrent chaque transaction. Les transactions Blockchain impliquent des portefeuilles auto-dépositaires, des clés privées, des frais de gaz - tous des éléments qui ne s'appliquent pas aux méthodes de paiement traditionnelles. Pour effectuer des transactions à l'aide d'une blockchain comme Ethereum, les consommateurs doivent maintenir un solde d'un certain montant du jeton natif de la blockchain (tel que ETH) pour payer l'utilisation du réseau, connu sous le nom de "frais de gaz". Et si l'envoi d'une transaction blockchain à l'aide d'un portefeuille auto-hébergé était aussi simple pour un utilisateur que de payer une tasse de café avec une carte de crédit ? L'expérience utilisateur sur la blockchain n'a pas encore atteint la même facilité d'utilisation pour les portefeuilles en libre-service. Par exemple, alors qu'Ethereum prend en charge les paiements push, il ne prend pas en charge nativement les paiements pull, tels que les paiements automatiques. Pour résoudre ce problème, dans notre article de l'année dernière "Paiements automatiques pour les portefeuilles auto-hébergés", nous avons exploré et démontré comment utiliser l'abstraction de compte pour configurer les paiements par tirage pour les portefeuilles auto-hébergés.
Visa excelle dans la facilitation des transactions impliquant différentes devises. Par exemple, les utilisateurs peuvent voyager dans un autre pays sans se soucier de devoir préparer des devises étrangères à l'avance, car la même carte Visa vous permet de faire des achats à la fois chez vous et à l'étranger. Cependant, une telle simplicité n'existe pas dans le monde de la cryptographie. Les consommateurs effectuant des transactions sur Ethereum se retrouvent constamment à gérer leurs soldes ETH pour payer les frais de gaz, une tâche fastidieuse qui les distrait de l'activité importante de la blockchain. Après avoir comparé la complexité des transactions blockchain à la simplicité des transactions de paiement fiat prises en charge par le réseau Visa, il est clair que les transactions blockchain doivent être améliorées. La question qui demeure est la suivante : comment pouvons-nous aider à combler cet écart et rendre les transactions blockchain plus faciles et plus pratiques ?
(Figure 1 : Réseau des visas)
Reconnaissant ce défi, nous avons exploré une option pour simplifier les transactions blockchain en permettant aux utilisateurs de payer le gaz en chaîne directement en monnaie fiduciaire via le paiement par carte. Dans ce cas, les utilisateurs n'auront peut-être plus besoin de détenir le jeton natif d'une blockchain particulière uniquement pour payer les frais d'essence. Cette solution potentielle tirerait parti de la norme ERC-4337 d'Ethereum et des contrats paymaster pour permettre aux utilisateurs de payer l'essence directement avec une carte Visa. Nous pensons que cette approche innovante et flexible peut aider à simplifier le point d'entrée pour les nouveaux utilisateurs de crypto et à améliorer l'expérience des utilisateurs existants. Dans cet article, nous nous penchons sur les défis existants des transactions blockchain, soulignons la nécessité d'approches plus flexibles et présentons nos expériences.
1. Question
L'un des principaux obstacles dans le monde de la cryptographie est le processus complexe de paiement des transactions ou des opérations de la blockchain. Chaque opération, qu'il s'agisse d'un simple transfert de jeton ou d'une interaction plus complexe avec un contrat intelligent, entraîne un coût appelé "gaz". Les frais de gaz représentent la quantité de calcul nécessaire pour effectuer une opération. Dans le cas d'Ethereum, les frais de gaz doivent être payés à l'aide du jeton natif de la blockchain, ETH.
Bien que les pièces stables comme l'USDC puissent être utilisées pour les transactions, les utilisateurs doivent toujours maintenir un certain solde ETH séparément pour payer les frais de gaz Ethereum. Cela conduit souvent les utilisateurs à des méthodes complexes et parfois coûteuses. Certains s'appuient sur des services de dépôt pour convertir les fiat en jetons natifs comme l'ETH, tandis que d'autres achètent l'ETH sur des échanges cryptographiques centralisés et le transfèrent dans leurs portefeuilles. Cependant, les deux stratégies nécessitent des étapes supplémentaires et manquent de la simplicité et de l'immédiateté auxquelles les utilisateurs sont habitués dans les transactions financières traditionnelles. De plus, ces méthodes exposent les utilisateurs aux fluctuations des taux de change des crypto-monnaies, car ils doivent acheter en permanence des ETH même si différentes crypto-monnaies ou pièces stables sont utilisées dans les transactions de paiement.
(Figure 2 : Processus de dépôt : obtenez des jetons pour un portefeuille en libre-service)
Par exemple, Alex est une utilisatrice qui souhaite participer à un projet de finance décentralisée (DeFi) qui l'oblige à créer de nouveaux jetons. Pour ce faire, elle a décidé d'échanger sa monnaie fiduciaire contre des ETH en utilisant un service de dépôt. Alex a soigneusement planifié et acheté une certaine quantité d'ETH en fonction des frais de gaz actuels et du coût prévu du processus d'extraction. Cependant, les frais de gaz sur le réseau Ethereum peuvent fluctuer rapidement. Si pendant la période de frappe d'Alex, les frais baissent de manière significative, elle paiera trop d'essence et se retrouvera avec un solde d'ETH qu'elle n'avait pas l'intention d'acheter. À l'inverse, si les frais d'essence d'Alex augmentent de manière inattendue après avoir obtenu l'ETH, elle risque de ne pas disposer de suffisamment de fonds pour couvrir l'augmentation des frais, ce qui entraînera un sous-paiement. Cette imprévisibilité et la nécessité d'estimer et de gérer les coûts du gaz ajoutent de la complexité et des inconvénients pour les utilisateurs comme Alex. La figure 2 illustre le processus de dépôt permettant à un utilisateur d'acheter une crypto-monnaie par l'intermédiaire d'un fournisseur de services de dépôt.
(Figure 3 : Obtenir des jetons via des échanges centralisés)
De plus, pour un utilisateur comme Alex, l'acquisition d'un jeton natif comme ETH nécessite souvent le déplacement d'actifs à partir d'un échange centralisé. Cela implique de déposer des fiat sur un échange, d'acheter les jetons nécessaires et de les transférer dans un portefeuille personnel pour obtenir suffisamment d'ETH pour couvrir les frais d'essence. Cependant, cette approche comporte également le risque de surpayer ou de sous-payer en raison de la volatilité de la valeur des ETH et des frais de gaz. En outre, cela peut être un défi insurmontable pour les personnes moins férues de technologie et souhaitant s'engager dans des transactions blockchain. Pour ceux qui ne sont pas familiers avec les échanges de crypto-monnaie et les subtilités de l'achat et du pontage de jetons, ce processus est un obstacle à l'entrée dans le monde de la cryptographie. C'est aussi fastidieux et hostile que d'échanger de l'argent liquide dans différentes devises lorsque vous voyagez dans différents pays. La figure 3 illustre le processus de transition permettant à un utilisateur d'acheter une crypto-monnaie via un échange de crypto-monnaie et de la transférer vers un portefeuille.
2. Solution
Nos équipes Crypto Protocols, Visa Innovation Center et Visa Research ont organisé un hackathon interne où nous avons profité de l'occasion pour explorer les paymasters sous la norme ERC-4337. Le résultat de cet effort collaboratif est une proposition de flux de solution qui montre comment permettre aux utilisateurs de payer le gaz sur la chaîne en fiat via un système de fichiers de gestion de carte. Cette proposition de solution s'appuie sur la norme ERC-4337 d'Ethereum et sur le contrat paymaster pour permettre aux titulaires de carte Visa de payer directement leurs frais d'essence. Nous pensons que cette approche innovante et adaptative peut aider à simplifier le processus d'intégration des nouveaux utilisateurs de crypto et à améliorer l'expérience des utilisateurs actuels.
(Figure 4 : Interaction utilisateur simplifiée avec le déploiement de Paymaster)
Dans cette proposition de solution, nous plaçons à nouveau le paymaster au cœur du processus. Paymaster est un type spécial de compte de contrat intelligent qui peut parrainer les frais de gaz des comptes de contrat d'utilisateur (il peut être considéré comme un contrat intelligent centré sur l'utilisateur). Notre solution proposée libère les utilisateurs de la nécessité de détenir des jetons de blockchain natifs ou de ponter constamment des jetons juste pour payer les frais de gaz. Du point de vue de l'utilisateur, la solution est attrayante en raison de sa simplicité et de sa facilité d'adoption, comme le montre la figure 4. Par exemple, reprenons Alex, elle a un portefeuille en libre-service. Dans le cadre de notre solution proposée, Alex pourrait utiliser sa carte Visa pour payer l'essence et participer à un projet DeFi qui l'oblige à fabriquer de nouveaux jetons. De cette façon, Visa aide à gérer le processus complexe dans les coulisses, permettant à Alex de choisir de payer l'essence avec sa carte Visa sans aucun tracas. Cette solution apporte de la simplicité et une meilleure expérience pour les utilisateurs comme Alex, qui recherchent un moyen plus simple et plus simple à utiliser pour effectuer des transactions blockchain.
3. Notre expérience
Le rôle de Paymaster est d'extraire la complexité du mécanisme de la redevance gaz tout en proposant une alternative au tarif. Nos expériences le font en acceptant les frais de gaz payés hors ligne par les utilisateurs à partir de leurs cartes Visa et en payant un montant équivalent en chaîne au nom des utilisateurs. L'expérience des frais d'essence côté utilisateur est aussi simple qu'un paiement normal par carte de crédit. Les utilisateurs peuvent choisir d'utiliser un tel payeur lors de l'envoi d'opérations utilisateur. Les opérations utilisateur sont similaires aux interactions régulières de la blockchain, elles spécifient les opérations que l'utilisateur souhaite effectuer sur la blockchain. Mais contrairement aux transactions, les opérations des utilisateurs n'ont pas besoin d'être signées par des comptes externes et peuvent être directement vérifiées et exécutées par des comptes de contrat intelligents.
La configuration que nous avons déployée pour activer la capacité de paiement de gaz hors chaîne s'articule autour du Checking Paymaster. La vérification de Paymaster est un contrat intelligent qui délègue toutes les vérifications et sources d'informations nécessaires à des composants hors chaîne. Le contrat intelligent paymaster en chaîne peut ensuite utiliser les données et les approbations fournies par ce composant hors chaîne pour autoriser et payer les frais de gaz. Le moyen de transmettre de manière fiable ces informations du service hors chaîne au contrat de payeur consiste à utiliser la cryptographie à clé publique : le service Web hors chaîne utilise la clé pour générer une signature numérique et l'envoie avec les informations. Le contrat intelligent Paymaster peut à son tour vérifier la signature à l'aide de la clé publique correspondante, vérifiant ainsi l'authenticité du message. Dans nos expériences, nous avons utilisé l'exemple de contrat intelligent Verifying Paymaster fourni par l'équipe principale ERC-4337.
(Figure 5 : Flux technique des transactions utilisant les cartes Paymaster et Visa)
Comme le montre la figure 5, dans notre implémentation, lorsqu'un utilisateur a l'intention de lancer une opération de blockchain, le portefeuille génère d'abord une demande d'opération utilisateur, qui inclut l'opération qu'il essaie d'effectuer (c'est-à-dire les données d'appel) et le coût de traitement maximal du informations sur le fonctionnement (c'est-à-dire les paramètres liés aux frais de gaz). Plus précisément, le budget de calcul maximum pour une opération est déterminé par le paramètre spécifiant la limite de gaz, et le coût de chaque unité de calcul est déterminé par la redevance gaz.
Au lieu d'envoyer immédiatement la demande d'opération utilisateur à la blockchain, le portefeuille envoie d'abord l'opération utilisateur avec les informations d'identification de la carte Visa au service Web Paymaster (étape 2 de la figure 5). Le service Web utilisera les informations sur les frais de gaz pour calculer le coût approprié pour facturer l'utilisateur en monnaie fiduciaire, et sur la base des informations d'identification de la carte Visa fournies, l'émetteur de la carte peut choisir d'autoriser le paiement avec la carte Visa. Pour la solution d'acceptation de paiement pour les services Web, nous avons utilisé la propre Cybersource de Visa. Cybersource fournit aux développeurs les SDK et API nécessaires pour permettre aux commerçants de recevoir des paiements numériques.
Dans notre expérience, une fois le paiement traité par Cybersource, le service Web génère une signature numérique pour les données pertinentes dans User Operation, y compris les données d'appel et les informations sur les frais de gaz (étape 3). Il détermine également la période de validité de la signature. La spécification d'une fenêtre de temps est importante car la valeur de l'ETH et des autres jetons natifs fluctue sur Ethereum et d'autres chaînes EVM. Sans précautions, les utilisateurs peuvent profiter du manque de synchronicité entre les deux parties du paymaster, payer hors chaîne en monnaie fiduciaire lorsque les coûts en ETH sont faibles, puis utiliser des signatures lorsque les coûts en ETH sont élevés, et laisser le contrat de payeur couvrir le coût différence. Le service Web renvoie la signature numérique au portefeuille. En plus de cela, toute modification apportée par le portefeuille aux paramètres pertinents de l'opération de l'utilisateur entraînera une incompatibilité avec la signature numérique, et le contrat intelligent Verifier Paymaster détectera cet écart.
Le portefeuille reçoit la signature numérique et la fenêtre horaire du service Web, et ajoute ces informations (ainsi que l'adresse en chaîne du contrat payeur) en tant que paramètre payeur de l'opération utilisateur. Maintenant, lorsque toutes les parties de l'opération utilisateur sont terminées, le portefeuille pourra le signer et l'envoyer à la blockchain (étape 4). Sur la blockchain, dans le cadre du processus de traitement de l'Opération Utilisateur défini par la norme ERC-4337, le contrat payeur recevra les données de l'Opération Utilisateur, qui devront inclure une signature numérique du service web payeur. S'il y a une erreur dans les données fournies (mauvaise signature, fenêtre horaire invalide, etc.), le contrat payeur signalera l'erreur et les frais de gaz ne seront pas payés. Si la signature de vérification est correcte, cela signifie que le service Web a reçu le paiement de la carte Visa pour permettre le coût de traitement de cette opération utilisateur. Le contrat Paymaster ne signalera pas les erreurs et traitera le coût, l'opération utilisateur sera également exécutée (étape 5).
(Figure 6 : Un morceau de code—Vérification de la vérification de la signature numérique de Paymaster)
Lorsque nous avons construit nos expériences, nous avons utilisé la bibliothèque userop.js de Stackup pour créer, signer et envoyer des opérations utilisateur. Afin de publier ces opérations utilisateur sur la blockchain et d'avoir des fonctions supplémentaires telles que l'estimation des frais de gaz, nous utilisons le Bundler de Stackup comme fournisseur. À des fins de test, nous avons déployé notre Verifying Paymaster sur le testnet Ethereum Goerli et avons pu envoyer avec succès des opérations utilisateur en utilisant le paiement de gaz hors chaîne.
4. Réduire les frictions sur la blockchain
La complexité des transactions blockchain est une pierre d'achoppement importante pour de nombreux utilisateurs, introduisant une courbe d'apprentissage extrêmement difficile et augmentant la friction des utilisateurs. Cependant, nos expériences visent à fournir une approche prometteuse pour relever substantiellement ces défis. En utilisant le concept innovant de paymaster, combiné à l'abstraction de compte et à la norme ERC-4337, nous explorons la possibilité d'un processus capable de redéfinir les transactions blockchain.
L'abstraction de compte permet aux développeurs de concevoir de nouveaux processus qui aident à réduire les frictions dans l'échange de valeur de toutes sortes. Nos expériences montrent que les développeurs peuvent implémenter cette solution en utilisant l'infrastructure de paiement existante. Les commerçants ou les applications décentralisées (dApps) peuvent exécuter leurs propres solutions de paiement pour aider à améliorer l'expérience client en acceptant les cartes Visa pour les paiements de gaz. Alternativement, les fournisseurs de services de portefeuille et de payeur existants pourraient proposer le paiement de l'essence par carte Visa comme option générale, avec d'autres options de service de paiement en plus. La réalisation de cette solution potentielle aide à jeter les bases d'une approche plus accessible et conviviale des transactions numériques.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Solution Expérimentale Visa : Paiement des frais d'essence sur la chaîne via carte Visa
Auteur : Mert Ozbay & Mustafa Bedawala & Catherine Gu, Visa; Traduction : Jinse Finance xiaozou
La technologie blockchain a été largement adoptée ces dernières années, et bien qu'elle ait le potentiel de façonner l'avenir des flux monétaires, les transactions blockchain introduisent également un niveau de complexité plus élevé que l'on ne trouve pas dans les méthodes de paiement traditionnelles. Les transactions Blockchain utilisent un réseau décentralisé où plusieurs participants au réseau vérifient et enregistrent chaque transaction. Les transactions Blockchain impliquent des portefeuilles auto-dépositaires, des clés privées, des frais de gaz - tous des éléments qui ne s'appliquent pas aux méthodes de paiement traditionnelles. Pour effectuer des transactions à l'aide d'une blockchain comme Ethereum, les consommateurs doivent maintenir un solde d'un certain montant du jeton natif de la blockchain (tel que ETH) pour payer l'utilisation du réseau, connu sous le nom de "frais de gaz". Et si l'envoi d'une transaction blockchain à l'aide d'un portefeuille auto-hébergé était aussi simple pour un utilisateur que de payer une tasse de café avec une carte de crédit ? L'expérience utilisateur sur la blockchain n'a pas encore atteint la même facilité d'utilisation pour les portefeuilles en libre-service. Par exemple, alors qu'Ethereum prend en charge les paiements push, il ne prend pas en charge nativement les paiements pull, tels que les paiements automatiques. Pour résoudre ce problème, dans notre article de l'année dernière "Paiements automatiques pour les portefeuilles auto-hébergés", nous avons exploré et démontré comment utiliser l'abstraction de compte pour configurer les paiements par tirage pour les portefeuilles auto-hébergés.
Visa excelle dans la facilitation des transactions impliquant différentes devises. Par exemple, les utilisateurs peuvent voyager dans un autre pays sans se soucier de devoir préparer des devises étrangères à l'avance, car la même carte Visa vous permet de faire des achats à la fois chez vous et à l'étranger. Cependant, une telle simplicité n'existe pas dans le monde de la cryptographie. Les consommateurs effectuant des transactions sur Ethereum se retrouvent constamment à gérer leurs soldes ETH pour payer les frais de gaz, une tâche fastidieuse qui les distrait de l'activité importante de la blockchain. Après avoir comparé la complexité des transactions blockchain à la simplicité des transactions de paiement fiat prises en charge par le réseau Visa, il est clair que les transactions blockchain doivent être améliorées. La question qui demeure est la suivante : comment pouvons-nous aider à combler cet écart et rendre les transactions blockchain plus faciles et plus pratiques ?
(Figure 1 : Réseau des visas)
Reconnaissant ce défi, nous avons exploré une option pour simplifier les transactions blockchain en permettant aux utilisateurs de payer le gaz en chaîne directement en monnaie fiduciaire via le paiement par carte. Dans ce cas, les utilisateurs n'auront peut-être plus besoin de détenir le jeton natif d'une blockchain particulière uniquement pour payer les frais d'essence. Cette solution potentielle tirerait parti de la norme ERC-4337 d'Ethereum et des contrats paymaster pour permettre aux utilisateurs de payer l'essence directement avec une carte Visa. Nous pensons que cette approche innovante et flexible peut aider à simplifier le point d'entrée pour les nouveaux utilisateurs de crypto et à améliorer l'expérience des utilisateurs existants. Dans cet article, nous nous penchons sur les défis existants des transactions blockchain, soulignons la nécessité d'approches plus flexibles et présentons nos expériences.
1. Question
L'un des principaux obstacles dans le monde de la cryptographie est le processus complexe de paiement des transactions ou des opérations de la blockchain. Chaque opération, qu'il s'agisse d'un simple transfert de jeton ou d'une interaction plus complexe avec un contrat intelligent, entraîne un coût appelé "gaz". Les frais de gaz représentent la quantité de calcul nécessaire pour effectuer une opération. Dans le cas d'Ethereum, les frais de gaz doivent être payés à l'aide du jeton natif de la blockchain, ETH.
Bien que les pièces stables comme l'USDC puissent être utilisées pour les transactions, les utilisateurs doivent toujours maintenir un certain solde ETH séparément pour payer les frais de gaz Ethereum. Cela conduit souvent les utilisateurs à des méthodes complexes et parfois coûteuses. Certains s'appuient sur des services de dépôt pour convertir les fiat en jetons natifs comme l'ETH, tandis que d'autres achètent l'ETH sur des échanges cryptographiques centralisés et le transfèrent dans leurs portefeuilles. Cependant, les deux stratégies nécessitent des étapes supplémentaires et manquent de la simplicité et de l'immédiateté auxquelles les utilisateurs sont habitués dans les transactions financières traditionnelles. De plus, ces méthodes exposent les utilisateurs aux fluctuations des taux de change des crypto-monnaies, car ils doivent acheter en permanence des ETH même si différentes crypto-monnaies ou pièces stables sont utilisées dans les transactions de paiement.
(Figure 2 : Processus de dépôt : obtenez des jetons pour un portefeuille en libre-service)
Par exemple, Alex est une utilisatrice qui souhaite participer à un projet de finance décentralisée (DeFi) qui l'oblige à créer de nouveaux jetons. Pour ce faire, elle a décidé d'échanger sa monnaie fiduciaire contre des ETH en utilisant un service de dépôt. Alex a soigneusement planifié et acheté une certaine quantité d'ETH en fonction des frais de gaz actuels et du coût prévu du processus d'extraction. Cependant, les frais de gaz sur le réseau Ethereum peuvent fluctuer rapidement. Si pendant la période de frappe d'Alex, les frais baissent de manière significative, elle paiera trop d'essence et se retrouvera avec un solde d'ETH qu'elle n'avait pas l'intention d'acheter. À l'inverse, si les frais d'essence d'Alex augmentent de manière inattendue après avoir obtenu l'ETH, elle risque de ne pas disposer de suffisamment de fonds pour couvrir l'augmentation des frais, ce qui entraînera un sous-paiement. Cette imprévisibilité et la nécessité d'estimer et de gérer les coûts du gaz ajoutent de la complexité et des inconvénients pour les utilisateurs comme Alex. La figure 2 illustre le processus de dépôt permettant à un utilisateur d'acheter une crypto-monnaie par l'intermédiaire d'un fournisseur de services de dépôt.
(Figure 3 : Obtenir des jetons via des échanges centralisés)
De plus, pour un utilisateur comme Alex, l'acquisition d'un jeton natif comme ETH nécessite souvent le déplacement d'actifs à partir d'un échange centralisé. Cela implique de déposer des fiat sur un échange, d'acheter les jetons nécessaires et de les transférer dans un portefeuille personnel pour obtenir suffisamment d'ETH pour couvrir les frais d'essence. Cependant, cette approche comporte également le risque de surpayer ou de sous-payer en raison de la volatilité de la valeur des ETH et des frais de gaz. En outre, cela peut être un défi insurmontable pour les personnes moins férues de technologie et souhaitant s'engager dans des transactions blockchain. Pour ceux qui ne sont pas familiers avec les échanges de crypto-monnaie et les subtilités de l'achat et du pontage de jetons, ce processus est un obstacle à l'entrée dans le monde de la cryptographie. C'est aussi fastidieux et hostile que d'échanger de l'argent liquide dans différentes devises lorsque vous voyagez dans différents pays. La figure 3 illustre le processus de transition permettant à un utilisateur d'acheter une crypto-monnaie via un échange de crypto-monnaie et de la transférer vers un portefeuille.
2. Solution
Nos équipes Crypto Protocols, Visa Innovation Center et Visa Research ont organisé un hackathon interne où nous avons profité de l'occasion pour explorer les paymasters sous la norme ERC-4337. Le résultat de cet effort collaboratif est une proposition de flux de solution qui montre comment permettre aux utilisateurs de payer le gaz sur la chaîne en fiat via un système de fichiers de gestion de carte. Cette proposition de solution s'appuie sur la norme ERC-4337 d'Ethereum et sur le contrat paymaster pour permettre aux titulaires de carte Visa de payer directement leurs frais d'essence. Nous pensons que cette approche innovante et adaptative peut aider à simplifier le processus d'intégration des nouveaux utilisateurs de crypto et à améliorer l'expérience des utilisateurs actuels.
(Figure 4 : Interaction utilisateur simplifiée avec le déploiement de Paymaster)
Dans cette proposition de solution, nous plaçons à nouveau le paymaster au cœur du processus. Paymaster est un type spécial de compte de contrat intelligent qui peut parrainer les frais de gaz des comptes de contrat d'utilisateur (il peut être considéré comme un contrat intelligent centré sur l'utilisateur). Notre solution proposée libère les utilisateurs de la nécessité de détenir des jetons de blockchain natifs ou de ponter constamment des jetons juste pour payer les frais de gaz. Du point de vue de l'utilisateur, la solution est attrayante en raison de sa simplicité et de sa facilité d'adoption, comme le montre la figure 4. Par exemple, reprenons Alex, elle a un portefeuille en libre-service. Dans le cadre de notre solution proposée, Alex pourrait utiliser sa carte Visa pour payer l'essence et participer à un projet DeFi qui l'oblige à fabriquer de nouveaux jetons. De cette façon, Visa aide à gérer le processus complexe dans les coulisses, permettant à Alex de choisir de payer l'essence avec sa carte Visa sans aucun tracas. Cette solution apporte de la simplicité et une meilleure expérience pour les utilisateurs comme Alex, qui recherchent un moyen plus simple et plus simple à utiliser pour effectuer des transactions blockchain.
3. Notre expérience
Le rôle de Paymaster est d'extraire la complexité du mécanisme de la redevance gaz tout en proposant une alternative au tarif. Nos expériences le font en acceptant les frais de gaz payés hors ligne par les utilisateurs à partir de leurs cartes Visa et en payant un montant équivalent en chaîne au nom des utilisateurs. L'expérience des frais d'essence côté utilisateur est aussi simple qu'un paiement normal par carte de crédit. Les utilisateurs peuvent choisir d'utiliser un tel payeur lors de l'envoi d'opérations utilisateur. Les opérations utilisateur sont similaires aux interactions régulières de la blockchain, elles spécifient les opérations que l'utilisateur souhaite effectuer sur la blockchain. Mais contrairement aux transactions, les opérations des utilisateurs n'ont pas besoin d'être signées par des comptes externes et peuvent être directement vérifiées et exécutées par des comptes de contrat intelligents.
La configuration que nous avons déployée pour activer la capacité de paiement de gaz hors chaîne s'articule autour du Checking Paymaster. La vérification de Paymaster est un contrat intelligent qui délègue toutes les vérifications et sources d'informations nécessaires à des composants hors chaîne. Le contrat intelligent paymaster en chaîne peut ensuite utiliser les données et les approbations fournies par ce composant hors chaîne pour autoriser et payer les frais de gaz. Le moyen de transmettre de manière fiable ces informations du service hors chaîne au contrat de payeur consiste à utiliser la cryptographie à clé publique : le service Web hors chaîne utilise la clé pour générer une signature numérique et l'envoie avec les informations. Le contrat intelligent Paymaster peut à son tour vérifier la signature à l'aide de la clé publique correspondante, vérifiant ainsi l'authenticité du message. Dans nos expériences, nous avons utilisé l'exemple de contrat intelligent Verifying Paymaster fourni par l'équipe principale ERC-4337.
(Figure 5 : Flux technique des transactions utilisant les cartes Paymaster et Visa)
Comme le montre la figure 5, dans notre implémentation, lorsqu'un utilisateur a l'intention de lancer une opération de blockchain, le portefeuille génère d'abord une demande d'opération utilisateur, qui inclut l'opération qu'il essaie d'effectuer (c'est-à-dire les données d'appel) et le coût de traitement maximal du informations sur le fonctionnement (c'est-à-dire les paramètres liés aux frais de gaz). Plus précisément, le budget de calcul maximum pour une opération est déterminé par le paramètre spécifiant la limite de gaz, et le coût de chaque unité de calcul est déterminé par la redevance gaz.
Au lieu d'envoyer immédiatement la demande d'opération utilisateur à la blockchain, le portefeuille envoie d'abord l'opération utilisateur avec les informations d'identification de la carte Visa au service Web Paymaster (étape 2 de la figure 5). Le service Web utilisera les informations sur les frais de gaz pour calculer le coût approprié pour facturer l'utilisateur en monnaie fiduciaire, et sur la base des informations d'identification de la carte Visa fournies, l'émetteur de la carte peut choisir d'autoriser le paiement avec la carte Visa. Pour la solution d'acceptation de paiement pour les services Web, nous avons utilisé la propre Cybersource de Visa. Cybersource fournit aux développeurs les SDK et API nécessaires pour permettre aux commerçants de recevoir des paiements numériques.
Dans notre expérience, une fois le paiement traité par Cybersource, le service Web génère une signature numérique pour les données pertinentes dans User Operation, y compris les données d'appel et les informations sur les frais de gaz (étape 3). Il détermine également la période de validité de la signature. La spécification d'une fenêtre de temps est importante car la valeur de l'ETH et des autres jetons natifs fluctue sur Ethereum et d'autres chaînes EVM. Sans précautions, les utilisateurs peuvent profiter du manque de synchronicité entre les deux parties du paymaster, payer hors chaîne en monnaie fiduciaire lorsque les coûts en ETH sont faibles, puis utiliser des signatures lorsque les coûts en ETH sont élevés, et laisser le contrat de payeur couvrir le coût différence. Le service Web renvoie la signature numérique au portefeuille. En plus de cela, toute modification apportée par le portefeuille aux paramètres pertinents de l'opération de l'utilisateur entraînera une incompatibilité avec la signature numérique, et le contrat intelligent Verifier Paymaster détectera cet écart.
Le portefeuille reçoit la signature numérique et la fenêtre horaire du service Web, et ajoute ces informations (ainsi que l'adresse en chaîne du contrat payeur) en tant que paramètre payeur de l'opération utilisateur. Maintenant, lorsque toutes les parties de l'opération utilisateur sont terminées, le portefeuille pourra le signer et l'envoyer à la blockchain (étape 4). Sur la blockchain, dans le cadre du processus de traitement de l'Opération Utilisateur défini par la norme ERC-4337, le contrat payeur recevra les données de l'Opération Utilisateur, qui devront inclure une signature numérique du service web payeur. S'il y a une erreur dans les données fournies (mauvaise signature, fenêtre horaire invalide, etc.), le contrat payeur signalera l'erreur et les frais de gaz ne seront pas payés. Si la signature de vérification est correcte, cela signifie que le service Web a reçu le paiement de la carte Visa pour permettre le coût de traitement de cette opération utilisateur. Le contrat Paymaster ne signalera pas les erreurs et traitera le coût, l'opération utilisateur sera également exécutée (étape 5).
(Figure 6 : Un morceau de code—Vérification de la vérification de la signature numérique de Paymaster)
Lorsque nous avons construit nos expériences, nous avons utilisé la bibliothèque userop.js de Stackup pour créer, signer et envoyer des opérations utilisateur. Afin de publier ces opérations utilisateur sur la blockchain et d'avoir des fonctions supplémentaires telles que l'estimation des frais de gaz, nous utilisons le Bundler de Stackup comme fournisseur. À des fins de test, nous avons déployé notre Verifying Paymaster sur le testnet Ethereum Goerli et avons pu envoyer avec succès des opérations utilisateur en utilisant le paiement de gaz hors chaîne.
4. Réduire les frictions sur la blockchain
La complexité des transactions blockchain est une pierre d'achoppement importante pour de nombreux utilisateurs, introduisant une courbe d'apprentissage extrêmement difficile et augmentant la friction des utilisateurs. Cependant, nos expériences visent à fournir une approche prometteuse pour relever substantiellement ces défis. En utilisant le concept innovant de paymaster, combiné à l'abstraction de compte et à la norme ERC-4337, nous explorons la possibilité d'un processus capable de redéfinir les transactions blockchain.
L'abstraction de compte permet aux développeurs de concevoir de nouveaux processus qui aident à réduire les frictions dans l'échange de valeur de toutes sortes. Nos expériences montrent que les développeurs peuvent implémenter cette solution en utilisant l'infrastructure de paiement existante. Les commerçants ou les applications décentralisées (dApps) peuvent exécuter leurs propres solutions de paiement pour aider à améliorer l'expérience client en acceptant les cartes Visa pour les paiements de gaz. Alternativement, les fournisseurs de services de portefeuille et de payeur existants pourraient proposer le paiement de l'essence par carte Visa comme option générale, avec d'autres options de service de paiement en plus. La réalisation de cette solution potentielle aide à jeter les bases d'une approche plus accessible et conviviale des transactions numériques.