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 mouvements d'argent, les transactions blockchain introduisent un niveau élevé de complexité 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 vérifient et enregistrent chaque transaction. Ils impliquent des portefeuilles auto-dépositaires, des clés privées, des frais d'essence - tous des éléments qui ne s'appliquent pas aux méthodes de paiement traditionnelles. Pour effectuer des transactions en utilisant une blockchain comme Ethereum, les consommateurs doivent maintenir un solde dans le jeton natif de la blockchain (tel que ETH) pour payer l'utilisation du réseau, connu sous le nom de "gaz".
Visa est efficace pour faciliter les transactions impliquant différentes devises. Par exemple, les utilisateurs peuvent voyager dans un autre pays sans se soucier d'obtenir des devises étrangères à l'avance, car la même carte Visa vous permet d'effectuer des achats à la fois dans le pays et à l'étranger. Cependant, ce niveau de simplicité et de commodité 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, un processus fastidieux qui les distrait de l'activité principale de la blockchain. Lorsque la complexité des transactions blockchain est comparée à la simplicité des transactions de paiement fiat prises en charge par le réseau Visa, il est clair que des améliorations sont nécessaires. Les questions restantes sont :
Figure 1 - Réseau de Visa
Description de l'image Web de Visa
Reconnaissant ce défi, nous avons exploré comment simplifier les transactions blockchain en permettant aux utilisateurs de payer le gaz en chaîne directement en monnaie fiduciaire via des paiements par carte. Dans ce cas, les utilisateurs n'auront peut-être plus besoin de détenir des jetons natifs spécifiques à la blockchain uniquement pour payer les frais de gaz. Cette solution potentielle tirerait parti de la norme ERC-4337 d'Ethereum et du contrat principal de paiement pour permettre aux utilisateurs de payer l'essence directement avec leurs cartes Visa.
Nous pensons que cette approche innovante et flexible peut aider à simplifier le point d'entrée pour les nouveaux utilisateurs de crypto-monnaie 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'une approche plus flexible et parcourons nos expériences.
1. Questions
L'un des principaux obstacles dans le monde de la cryptographie est le processus complexe de paiement des transactions ou des opérations sur 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é frais de "gaz". Cela représente la quantité de calcul nécessaire pour effectuer l'opération. En ce qui concerne Ethereum, les frais de gaz doivent être payés avec le Token ETH natif de la blockchain.
Bien que les pièces stables telles que l'USDC puissent être utilisées pour les transactions, les utilisateurs doivent toujours conserver un solde ETH séparé pour payer les frais de gaz sur Ethereum. Cela conduit souvent les utilisateurs à des méthodes complexes et parfois coûteuses. Certains s'appuient sur des services sur rampe pour convertir les monnaies fiduciaires en jetons natifs comme l'ETH, tandis que d'autres achètent de l'ETH sur des échanges centralisés de crypto-monnaie 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 au risque de fluctuations des taux de change des crypto-monnaies, car ils doivent acheter en continu des ETH même lorsqu'ils utilisent différentes crypto-monnaies ou pièces stables pour les transactions de paiement.
Figure 2 - Processus d'entrée : obtenir un jeton pour un portefeuille en libre-service
Description de l'image de processus sur la rampe
Par exemple, considérons Alex, une utilisatrice qui souhaite participer à un projet DeFi qui l'oblige à créer de nouveaux jetons. Pour ce faire, elle décide d'utiliser un service d'entrée pour convertir la monnaie fiduciaire en ETH. Alex planifie et achète soigneusement une quantité spécifique d'ETH en fonction des frais de gaz actuels et du coût prévu du processus de frappe. Cependant, les frais de gaz sur le réseau Ethereum peuvent fluctuer rapidement. Si les frais baissent de manière significative lors de la frappe d'Alex, elle paiera trop pour l'essence et pourrait se retrouver avec des restes d'ETH qu'elle n'avait pas l'intention d'acheter. Inversement, si les frais d'essence augmentent de manière inattendue après qu'Alex ait 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. La figure 2 illustre le processus d'accès lorsqu'un utilisateur achète une crypto-monnaie via un fournisseur d'accès.
Figure 3 – Obtention de Token via une plateforme de trading centralisée
Obtenez un jeton via la plateforme de trading centralisée
De plus, pour des utilisateurs comme Alex, l'acquisition de jetons natifs tels que ETH implique généralement le transfert d'actifs à partir d'échanges centralisés. Cela nécessite de déposer de la monnaie fiduciaire dans 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 des fluctuations de la valeur des ETH et des frais de gaz.
En outre, cela peut être énorme et difficile pour les personnes moins averties en technologie et qui souhaitent participer à 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 peut être un obstacle à l'entrée. C'est comme la méthode lourde et hostile d'échanger de l'argent dans différentes devises lorsque vous voyagez dans différents pays. La figure 3 illustre le processus de pont lorsqu'un utilisateur achète une crypto-monnaie via un échange de crypto-monnaie et la transfère vers un portefeuille.
2. Solutions
S'appuyant sur notre travail décrit précédemment "Repenser les transactions numériques par l'abstraction de compte"² Nos équipes de protocoles cryptographiques, du centre d'innovation Visa et de recherche Visa ont organisé un hackathon interne où nous avons profité de l'occasion pour explorer le maître des paiements sous ERC-4337. Le résultat de cette collaboration est un processus de solution proposé qui montre comment permettre aux utilisateurs de payer leurs factures de gaz sur la chaîne en monnaie fiduciaire via une carte enregistrée. La solution proposée s'appuie sur la norme ERC-4337 d'Ethereum et sur le contrat-cadre de paiement pour permettre aux titulaires de cartes Visa de payer directement leurs frais d'essence. Nous pensons que cette approche innovante et adaptable peut aider à simplifier le processus d'intégration pour les nouveaux utilisateurs de crypto-monnaie et à améliorer l'expérience des utilisateurs actuels.
Figure 4 – Interaction utilisateur simplifiée avec la mise en œuvre de Paymaster
Description simplifiée de l'image d'interaction avec l'utilisateur
Dans cette solution proposée, nous plaçons à nouveau le caissier au cœur du processus. Paymaster est un type spécial de compte de contrat intelligent qui peut fournir des frais de gaz pour les comptes de contrat d'utilisateur (considérez-le comme un contrat intelligent centré sur l'utilisateur). La solution que nous proposons élimine le besoin pour les utilisateurs de détenir des jetons de blockchain natifs ou de participer en permanence à des jetons de pont 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, revenons à Alex, qui a un portefeuille auto-hébergé. Avec notre solution proposée, Alex peut utiliser sa carte Visa pour payer les frais d'essence et participer à des projets DeFi qui l'obligent à fabriquer de nouveaux jetons. Ce faisant, Visa aide à gérer le processus complexe dans les coulisses, ce qui permet à Alex de choisir facilement sa carte Visa pour payer l'essence. Cette solution proposée apporte simplicité et une meilleure expérience aux utilisateurs comme Alex qui recherchent un moyen plus simple et accessible de participer aux transactions blockchain.
3. Notre expérience
Le rôle du caissier est d'abstraire les complexités du mécanisme de redevance sur le gaz tout en offrant un autre moyen de financer la redevance. Notre implémentation expérimentale le fait en acceptant les paiements de gaz des utilisateurs hors chaîne pour les cartes Visa et en payant le montant équivalent en chaîne au nom de l'utilisateur. L'expérience des frais d'essence côté utilisateur est aussi simple qu'un paiement par carte ordinaire. Les utilisateurs peuvent choisir d'utiliser un tel payeur lors de l'envoi d'actions utilisateur. Les actions de l'utilisateur ressemblent aux interactions régulières de la blockchain en ce sens qu'elles spécifient ce que l'utilisateur veut faire 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 mise en place pour permettre les paiements de gaz hors chaîne est centrée sur la vérification du Paymaster. La vérification des payeurs est un contrat intelligent qui délègue toutes les vérifications et sources d'informations nécessaires aux composants hors chaîne. Le contrat intelligent principal de paiement en chaîne peut ensuite utiliser les données et les approbations fournies par les composants hors chaîne pour autoriser et payer les frais de gaz.
La façon dont ces informations sont transmises de manière fiable du service hors chaîne au contrat principal de paiement se fait par cryptographie à clé publique : la clé est utilisée par le service Web hors chaîne pour générer une signature numérique à envoyer avec les informations. Le contrat intelligent payeur peut à son tour utiliser la clé publique correspondante pour vérifier la signature, vérifiant ainsi l'authenticité du message. Dans nos expériences, nous avons utilisé l'échantillon de contrat intelligent Paymaster vérifié fourni par l'équipe principale ERC-4337.
Figure 5 – Flux de travail technique pour les transactions utilisant les cartes Paymaster et Visa
Illustration d'image 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 via la blockchain, le portefeuille génère d'abord une demande d'opération utilisateur, qui contient des informations sur l'opération qu'il tente d'effectuer (c'est-à-dire les données d'appel) et le maximum coût de traitement Opérationnel (c'est-à-dire les paramètres liés aux frais de gaz). Plus précisément, le paramètre spécifiant la limite de gaz détermine la quantité maximale de calcul que l'opération doit budgétiser, tandis que les frais de gaz déterminent le coût par unité de calcul.
Au lieu d'envoyer immédiatement la demande d'action de l'utilisateur à la blockchain, le portefeuille envoie d'abord l'action de l'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 les frais appropriés pour facturer l'utilisateur en monnaie fiduciaire, et en fonction des informations d'identification de la carte fournies, l'émetteur de la carte peut choisir d'autoriser le paiement par carte. Pour la solution d'acceptation de paiement pour les services Web, nous avons utilisé les propres ressources Web de Visa. Cybersource fournit aux développeurs les SDK et API nécessaires pour permettre aux commerçants d'accepter les paiements numériques.
Dans notre expérience, une fois le paiement traité par Cybersource, le service réseau générera une signature numérique et des informations sur les frais de gaz (étape 3) pour les données pertinentes dans l'opération de l'utilisateur (y compris les données d'appel). Il détermine également la période de validité de la signature. La spécification de la fenêtre de temps est importante car la valeur de l'ETH et des autres jetons natifs est dynamique sur Ethereum et d'autres chaînes EVM. Si aucune précaution n'est prise, un utilisateur peut profiter du manque de synchronisation entre les deux parties du payeur, payer hors chaîne en monnaie fiduciaire lorsque les coûts en ETH sont faibles, puis utiliser des signatures lorsque le prix est plus élevé, et laisser le payeur contrat supporter la différence de coût de charge. 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 des opérations de l'utilisateur entraînera une incompatibilité avec la signature numérique, et la vérification du contrat intelligent Paymaster détectera l'écart.
Le portefeuille reçoit la signature numérique et la fenêtre horaire du service Web, et joint ces informations avec l'adresse en chaîne du contrat principal de paiement en tant que paramètre principal de paiement pour les opérations de l'utilisateur. Maintenant, lorsque toutes les parties de l'action de l'utilisateur sont terminées, le portefeuille pourra le signer et l'envoyer à la blockchain (étape 4). Sur la blockchain, dans le cadre du flux de traitement des opérations utilisateur défini par la norme ERC-4337, le contrat maître de paiement recevra des données d'opération utilisateur, qui devront inclure une signature numérique du service web maître de paiement. S'il y a quelque chose qui ne va pas avec les données fournies (signature incorrecte, fenêtre horaire invalide, etc.), le contrat principal de paiement est conçu pour générer une erreur et ne pas payer les frais de gaz. Si la signature de vérification est correcte, cela signifie que le service Web a reçu le paiement par carte pour permettre le coût de traitement de cette action de l'utilisateur. Le contrat principal de paiement ne générera aucune erreur et traitera le coût et l'action de l'utilisateur sera exécutée (étape 5).
Figure 6 - Extrait de code - Vérifier la vérification de la signature numérique Paymaster
description de l'image de l'extrait de code
Lors de la création de nos expériences, nous avons utilisé la bibliothèque userop.js de Stackup pour créer, signer et envoyer des actions utilisateur avec notre portefeuille. Pour publier ces actions utilisateur sur la blockchain, ainsi que des fonctionnalités supplémentaires telles que l'estimation des coûts de gaz, nous utilisons le bundler de Stackup comme fournisseur. À des fins de test, nous avons déployé un caissier vérifié via le testnet Ethereum Goerli et envoyé avec succès les actions des utilisateurs via des paiements de frais de gaz hors chaîne.
4. Réduire les frictions sur la blockchain
Les complexités des transactions basées sur la blockchain ont été un obstacle important pour de nombreux utilisateurs, créant une courbe d'apprentissage difficile et augmentant la friction des utilisateurs. Cependant, nos expériences visent à fournir une approche prometteuse pour relever substantiellement ces défis. En tirant parti du concept innovant de payeurs, combiné à l'abstraction de compte et à la norme ERC-4337, nous explorons le potentiel de redéfinir le processus des transactions basées sur la blockchain.
L'abstraction de compte permet aux développeurs de concevoir de nouveaux processus qui aident à réduire les frictions liées à l'échange de divers actifs. Nos expériences montrent que les développeurs peuvent tirer parti de l'infrastructure de paiement existante pour mettre en œuvre la solution. Les commerçants ou les applications décentralisées (dApps) peuvent exécuter leur propre solution Paymaster pour aider à améliorer l'expérience client en acceptant les paiements de frais de gaz à l'aide de cartes Visa. Alternativement, les fournisseurs de services de portefeuille et Paymaster existants peuvent proposer des options de paiement des frais de gaz par carte pour une utilisation générale avec d'autres produits Paymaster.
La réalisation de cette solution potentielle contribue à 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.
Tour d'horizon de la solution expérimentale de Visa : Comment payer les frais d'essence sur la chaîne via la carte Visa ?
Par Mert Ozbay, Mustafa Bedawala et Catherine Gu
Traduction : Huohuo, blockchain vernaculaire
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 mouvements d'argent, les transactions blockchain introduisent un niveau élevé de complexité 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 vérifient et enregistrent chaque transaction. Ils impliquent des portefeuilles auto-dépositaires, des clés privées, des frais d'essence - tous des éléments qui ne s'appliquent pas aux méthodes de paiement traditionnelles. Pour effectuer des transactions en utilisant une blockchain comme Ethereum, les consommateurs doivent maintenir un solde dans le jeton natif de la blockchain (tel que ETH) pour payer l'utilisation du réseau, connu sous le nom de "gaz".
Visa est efficace pour faciliter les transactions impliquant différentes devises. Par exemple, les utilisateurs peuvent voyager dans un autre pays sans se soucier d'obtenir des devises étrangères à l'avance, car la même carte Visa vous permet d'effectuer des achats à la fois dans le pays et à l'étranger. Cependant, ce niveau de simplicité et de commodité 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, un processus fastidieux qui les distrait de l'activité principale de la blockchain. Lorsque la complexité des transactions blockchain est comparée à la simplicité des transactions de paiement fiat prises en charge par le réseau Visa, il est clair que des améliorations sont nécessaires. Les questions restantes sont :
Figure 1 - Réseau de Visa
Description de l'image Web de Visa
Reconnaissant ce défi, nous avons exploré comment simplifier les transactions blockchain en permettant aux utilisateurs de payer le gaz en chaîne directement en monnaie fiduciaire via des paiements par carte. Dans ce cas, les utilisateurs n'auront peut-être plus besoin de détenir des jetons natifs spécifiques à la blockchain uniquement pour payer les frais de gaz. Cette solution potentielle tirerait parti de la norme ERC-4337 d'Ethereum et du contrat principal de paiement pour permettre aux utilisateurs de payer l'essence directement avec leurs cartes Visa.
Nous pensons que cette approche innovante et flexible peut aider à simplifier le point d'entrée pour les nouveaux utilisateurs de crypto-monnaie 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'une approche plus flexible et parcourons nos expériences.
1. Questions
L'un des principaux obstacles dans le monde de la cryptographie est le processus complexe de paiement des transactions ou des opérations sur 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é frais de "gaz". Cela représente la quantité de calcul nécessaire pour effectuer l'opération. En ce qui concerne Ethereum, les frais de gaz doivent être payés avec le Token ETH natif de la blockchain.
Bien que les pièces stables telles que l'USDC puissent être utilisées pour les transactions, les utilisateurs doivent toujours conserver un solde ETH séparé pour payer les frais de gaz sur Ethereum. Cela conduit souvent les utilisateurs à des méthodes complexes et parfois coûteuses. Certains s'appuient sur des services sur rampe pour convertir les monnaies fiduciaires en jetons natifs comme l'ETH, tandis que d'autres achètent de l'ETH sur des échanges centralisés de crypto-monnaie 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 au risque de fluctuations des taux de change des crypto-monnaies, car ils doivent acheter en continu des ETH même lorsqu'ils utilisent différentes crypto-monnaies ou pièces stables pour les transactions de paiement.
Figure 2 - Processus d'entrée : obtenir un jeton pour un portefeuille en libre-service
Description de l'image de processus sur la rampe
Par exemple, considérons Alex, une utilisatrice qui souhaite participer à un projet DeFi qui l'oblige à créer de nouveaux jetons. Pour ce faire, elle décide d'utiliser un service d'entrée pour convertir la monnaie fiduciaire en ETH. Alex planifie et achète soigneusement une quantité spécifique d'ETH en fonction des frais de gaz actuels et du coût prévu du processus de frappe. Cependant, les frais de gaz sur le réseau Ethereum peuvent fluctuer rapidement. Si les frais baissent de manière significative lors de la frappe d'Alex, elle paiera trop pour l'essence et pourrait se retrouver avec des restes d'ETH qu'elle n'avait pas l'intention d'acheter. Inversement, si les frais d'essence augmentent de manière inattendue après qu'Alex ait 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. La figure 2 illustre le processus d'accès lorsqu'un utilisateur achète une crypto-monnaie via un fournisseur d'accès.
Figure 3 – Obtention de Token via une plateforme de trading centralisée
Obtenez un jeton via la plateforme de trading centralisée
De plus, pour des utilisateurs comme Alex, l'acquisition de jetons natifs tels que ETH implique généralement le transfert d'actifs à partir d'échanges centralisés. Cela nécessite de déposer de la monnaie fiduciaire dans 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 des fluctuations de la valeur des ETH et des frais de gaz.
En outre, cela peut être énorme et difficile pour les personnes moins averties en technologie et qui souhaitent participer à 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 peut être un obstacle à l'entrée. C'est comme la méthode lourde et hostile d'échanger de l'argent dans différentes devises lorsque vous voyagez dans différents pays. La figure 3 illustre le processus de pont lorsqu'un utilisateur achète une crypto-monnaie via un échange de crypto-monnaie et la transfère vers un portefeuille.
2. Solutions
S'appuyant sur notre travail décrit précédemment "Repenser les transactions numériques par l'abstraction de compte"² Nos équipes de protocoles cryptographiques, du centre d'innovation Visa et de recherche Visa ont organisé un hackathon interne où nous avons profité de l'occasion pour explorer le maître des paiements sous ERC-4337. Le résultat de cette collaboration est un processus de solution proposé qui montre comment permettre aux utilisateurs de payer leurs factures de gaz sur la chaîne en monnaie fiduciaire via une carte enregistrée. La solution proposée s'appuie sur la norme ERC-4337 d'Ethereum et sur le contrat-cadre de paiement pour permettre aux titulaires de cartes Visa de payer directement leurs frais d'essence. Nous pensons que cette approche innovante et adaptable peut aider à simplifier le processus d'intégration pour les nouveaux utilisateurs de crypto-monnaie et à améliorer l'expérience des utilisateurs actuels.
Figure 4 – Interaction utilisateur simplifiée avec la mise en œuvre de Paymaster
Description simplifiée de l'image d'interaction avec l'utilisateur
Dans cette solution proposée, nous plaçons à nouveau le caissier au cœur du processus. Paymaster est un type spécial de compte de contrat intelligent qui peut fournir des frais de gaz pour les comptes de contrat d'utilisateur (considérez-le comme un contrat intelligent centré sur l'utilisateur). La solution que nous proposons élimine le besoin pour les utilisateurs de détenir des jetons de blockchain natifs ou de participer en permanence à des jetons de pont 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, revenons à Alex, qui a un portefeuille auto-hébergé. Avec notre solution proposée, Alex peut utiliser sa carte Visa pour payer les frais d'essence et participer à des projets DeFi qui l'obligent à fabriquer de nouveaux jetons. Ce faisant, Visa aide à gérer le processus complexe dans les coulisses, ce qui permet à Alex de choisir facilement sa carte Visa pour payer l'essence. Cette solution proposée apporte simplicité et une meilleure expérience aux utilisateurs comme Alex qui recherchent un moyen plus simple et accessible de participer aux transactions blockchain.
3. Notre expérience
Le rôle du caissier est d'abstraire les complexités du mécanisme de redevance sur le gaz tout en offrant un autre moyen de financer la redevance. Notre implémentation expérimentale le fait en acceptant les paiements de gaz des utilisateurs hors chaîne pour les cartes Visa et en payant le montant équivalent en chaîne au nom de l'utilisateur. L'expérience des frais d'essence côté utilisateur est aussi simple qu'un paiement par carte ordinaire. Les utilisateurs peuvent choisir d'utiliser un tel payeur lors de l'envoi d'actions utilisateur. Les actions de l'utilisateur ressemblent aux interactions régulières de la blockchain en ce sens qu'elles spécifient ce que l'utilisateur veut faire 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 mise en place pour permettre les paiements de gaz hors chaîne est centrée sur la vérification du Paymaster. La vérification des payeurs est un contrat intelligent qui délègue toutes les vérifications et sources d'informations nécessaires aux composants hors chaîne. Le contrat intelligent principal de paiement en chaîne peut ensuite utiliser les données et les approbations fournies par les composants hors chaîne pour autoriser et payer les frais de gaz.
La façon dont ces informations sont transmises de manière fiable du service hors chaîne au contrat principal de paiement se fait par cryptographie à clé publique : la clé est utilisée par le service Web hors chaîne pour générer une signature numérique à envoyer avec les informations. Le contrat intelligent payeur peut à son tour utiliser la clé publique correspondante pour vérifier la signature, vérifiant ainsi l'authenticité du message. Dans nos expériences, nous avons utilisé l'échantillon de contrat intelligent Paymaster vérifié fourni par l'équipe principale ERC-4337.
Figure 5 – Flux de travail technique pour les transactions utilisant les cartes Paymaster et Visa
Illustration d'image 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 via la blockchain, le portefeuille génère d'abord une demande d'opération utilisateur, qui contient des informations sur l'opération qu'il tente d'effectuer (c'est-à-dire les données d'appel) et le maximum coût de traitement Opérationnel (c'est-à-dire les paramètres liés aux frais de gaz). Plus précisément, le paramètre spécifiant la limite de gaz détermine la quantité maximale de calcul que l'opération doit budgétiser, tandis que les frais de gaz déterminent le coût par unité de calcul.
Au lieu d'envoyer immédiatement la demande d'action de l'utilisateur à la blockchain, le portefeuille envoie d'abord l'action de l'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 les frais appropriés pour facturer l'utilisateur en monnaie fiduciaire, et en fonction des informations d'identification de la carte fournies, l'émetteur de la carte peut choisir d'autoriser le paiement par carte. Pour la solution d'acceptation de paiement pour les services Web, nous avons utilisé les propres ressources Web de Visa. Cybersource fournit aux développeurs les SDK et API nécessaires pour permettre aux commerçants d'accepter les paiements numériques.
Dans notre expérience, une fois le paiement traité par Cybersource, le service réseau générera une signature numérique et des informations sur les frais de gaz (étape 3) pour les données pertinentes dans l'opération de l'utilisateur (y compris les données d'appel). Il détermine également la période de validité de la signature. La spécification de la fenêtre de temps est importante car la valeur de l'ETH et des autres jetons natifs est dynamique sur Ethereum et d'autres chaînes EVM. Si aucune précaution n'est prise, un utilisateur peut profiter du manque de synchronisation entre les deux parties du payeur, payer hors chaîne en monnaie fiduciaire lorsque les coûts en ETH sont faibles, puis utiliser des signatures lorsque le prix est plus élevé, et laisser le payeur contrat supporter la différence de coût de charge. 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 des opérations de l'utilisateur entraînera une incompatibilité avec la signature numérique, et la vérification du contrat intelligent Paymaster détectera l'écart.
Le portefeuille reçoit la signature numérique et la fenêtre horaire du service Web, et joint ces informations avec l'adresse en chaîne du contrat principal de paiement en tant que paramètre principal de paiement pour les opérations de l'utilisateur. Maintenant, lorsque toutes les parties de l'action de l'utilisateur sont terminées, le portefeuille pourra le signer et l'envoyer à la blockchain (étape 4). Sur la blockchain, dans le cadre du flux de traitement des opérations utilisateur défini par la norme ERC-4337, le contrat maître de paiement recevra des données d'opération utilisateur, qui devront inclure une signature numérique du service web maître de paiement. S'il y a quelque chose qui ne va pas avec les données fournies (signature incorrecte, fenêtre horaire invalide, etc.), le contrat principal de paiement est conçu pour générer une erreur et ne pas payer les frais de gaz. Si la signature de vérification est correcte, cela signifie que le service Web a reçu le paiement par carte pour permettre le coût de traitement de cette action de l'utilisateur. Le contrat principal de paiement ne générera aucune erreur et traitera le coût et l'action de l'utilisateur sera exécutée (étape 5).
Figure 6 - Extrait de code - Vérifier la vérification de la signature numérique Paymaster
description de l'image de l'extrait de code
Lors de la création de nos expériences, nous avons utilisé la bibliothèque userop.js de Stackup pour créer, signer et envoyer des actions utilisateur avec notre portefeuille. Pour publier ces actions utilisateur sur la blockchain, ainsi que des fonctionnalités supplémentaires telles que l'estimation des coûts de gaz, nous utilisons le bundler de Stackup comme fournisseur. À des fins de test, nous avons déployé un caissier vérifié via le testnet Ethereum Goerli et envoyé avec succès les actions des utilisateurs via des paiements de frais de gaz hors chaîne.
4. Réduire les frictions sur la blockchain
Les complexités des transactions basées sur la blockchain ont été un obstacle important pour de nombreux utilisateurs, créant une courbe d'apprentissage difficile et augmentant la friction des utilisateurs. Cependant, nos expériences visent à fournir une approche prometteuse pour relever substantiellement ces défis. En tirant parti du concept innovant de payeurs, combiné à l'abstraction de compte et à la norme ERC-4337, nous explorons le potentiel de redéfinir le processus des transactions basées sur la blockchain.
L'abstraction de compte permet aux développeurs de concevoir de nouveaux processus qui aident à réduire les frictions liées à l'échange de divers actifs. Nos expériences montrent que les développeurs peuvent tirer parti de l'infrastructure de paiement existante pour mettre en œuvre la solution. Les commerçants ou les applications décentralisées (dApps) peuvent exécuter leur propre solution Paymaster pour aider à améliorer l'expérience client en acceptant les paiements de frais de gaz à l'aide de cartes Visa. Alternativement, les fournisseurs de services de portefeuille et Paymaster existants peuvent proposer des options de paiement des frais de gaz par carte pour une utilisation générale avec d'autres produits Paymaster.
La réalisation de cette solution potentielle contribue à jeter les bases d'une approche plus accessible et conviviale des transactions numériques.