Auteurs originaux : Visa, Andrew Beams, Catherine Gu
Compilation originale : PANews, Jordanie
À mesure que l’adoption de la blockchain continue de croître, le besoin d’expériences utilisateur de qualité supérieure et de produits prenant en charge des cas d’utilisation réels augmente également. Visa propose déjà à ses clients (en particulier aux jeunes clients) des déductions automatiques pratiques et des paiements automatiques réguliers, mais il semble encore difficile de mettre en œuvre cette fonction sur une blockchain comme Ethereum. Ethereum est le réseau blockchain avec le plus grand volume de paiement, et pour certains types de portefeuilles numériques en chaîne, le retrait automatique et régulier des paiements des comptes d'utilisateurs reste un « grand projet ».
À cet égard, Visa a proposé le concept d'abstraction de compte (AccountAbstraction) et l'a utilisé pour explorer comment utiliser des contrats intelligents pour mettre en œuvre des paiements programmables automatisés et pour démontrer comment rédiger des contrats intelligents pour des portefeuilles auto-hébergés prenant en charge le retrait automatique de fonds. .
Scénarios de cas d'utilisation
Prenons un scénario : supposons que nous soyons aujourd'hui le 25 février et qu'Alice parte en vacances dans les Alpes. Elle reviendra le 10 mars, mais elle doit payer son hypothèque, ses factures de télévision par câble et ses factures de services publics avant le 5 de chaque mois. c'est qu'elle n'a pas assez d'argent pour payer avant de prendre son congé, mais elle en aura assez lorsqu'elle recevra son chèque de paie le 1er mars. Maintenant, la question se pose : comment Alice peut-elle profiter de ses vacances sans prendre de retard dans ses paiements ?

Oui, la réponse est : déduction automatique. En effet, si Alice possède un compte bancaire, le prélèvement automatique est un processus très simple. Il lui suffit d'associer son compte de débit à sa carte Visa. Cependant, sur la blockchain, réaliser une telle opération n’est pas si simple. Cependant, en tant que nouvelle technologie, il vaut la peine d’explorer les solutions de contrats intelligents blockchain pour les scénarios ci-dessus.
Avant d’entrer dans le vif du sujet, comprenons d’abord le concept de compte Ethereum. Il existe actuellement deux types de comptes sur le réseau Ethereum :
1. Comptes externes, souvent appelés « comptes d'utilisateurs »
2. Comptes contractuels (ContractAccounts), souvent appelés « contrats intelligents »
Les comptes d'utilisateurs contrôlés par des clés privées peuvent envoyer des transactions, et les contrats intelligents nécessitent un code associé pour s'exécuter, mais les contrats intelligents ne peuvent pas « lancer eux-mêmes des transactions » car les transactions doivent toujours provenir du compte utilisateur et être signées par l'utilisateur. Ces transactions incluent : Ethereum Zone. Un simple transfert de jetons entre comptes d'utilisateurs sur la blockchain peut déclencher une série de transactions plus complexes qui effectuent de nombreuses actions différentes via des contrats intelligents.
Alors, comment mettre en place des paiements automatisés sur la blockchain Ethereum ?
Passons en revue la situation d'Alice.
Supposons qu'Alice ait un compte utilisateur sur la blockchain Ethereum, qu'elle dépose son salaire sur le compte et l'utilise pour payer son hypothèque, sa facture de câble et ses factures de services publics. Aujourd'hui, afin de payer sa facture, une transaction doit être initiée pour transférer des jetons de son « compte externe » vers le compte utilisateur du bénéficiaire.
Pour élaborer, le « compte externe » d'Alice possède une clé/clé privée qu'elle seule connaît, et elle seule peut utiliser cette clé privée pour générer une signature ECDSA (Elliptic Curve Digital Signature Algorithm), qui est valide pour la création de transactions cruciales. Cependant, si Alice part en vacances, qui générera cette signature et créera la transaction de paiement des frais ?
Il existe actuellement une solution permettant à Alice d'utiliser un portefeuille de garde, qui permet à un tiers de contrôler la clé privée d'Alice. En d'autres termes, Alice fait confiance à un tiers pour protéger ses fonds et lorsqu'elle souhaite échanger ou envoyer des fonds vers un compte désigné, l'avantage est qu'Alice peut utiliser le dépositaire de fonds pour générer les signatures requises pour créer des transactions pour des opérations automatiques planifiées. paiements, mais l'inconvénient est qu'elle doit faire entièrement confiance à ce tiers.
Et si Alice ne souhaite pas utiliser un portefeuille de garde parce qu’elle s’inquiète du risque, mais utilise plutôt un portefeuille de garde autonome et planifie des paiements automatiques ? Ensuite, introduisons un autre concept - l'abstraction de compte (AccountAbstraction).
Qu’est-ce que l’abstraction de compte ?
L'abstraction de compte est une proposition qui tente de fusionner les comptes d'utilisateurs et les contrats intelligents dans un nouveau type de compte Ethereum en faisant en sorte que les comptes d'utilisateurs se comportent comme des contrats intelligents. À l'avenir, l'abstraction des comptes nous permettra de concevoir une solution simple pour les paiements automatisés et d'avoir une plus grande flexibilité dans la vérification des transactions en chaîne, telles que :
1. Les comptes multi-propriétaires peuvent être activés via une vérification multi-signature.
2. Autoriser l’utilisation de signatures post-quantiques pour vérifier les transactions.
3. Autoriser un soi-disant compte public où n'importe qui peut effectuer des transactions en éliminant complètement la vérification des signatures.
Essentiellement, l'abstraction de compte permet une validité programmable pour vérifier et confirmer toute transaction blockchain. Les transactions basées sur le protocole Ethereum ne doivent pas nécessairement être entièrement basées sur des conditions de validité codées en dur, mais certaines conditions peuvent être écrites de manière « personnalisée ». dans le contrat intelligent du compte.
De plus, l’abstraction de compte prend en charge les paiements automatiques puisqu’il est possible de mettre en place des règles de validation qui n’incluent plus la vérification de signature. Voyons comment procéder.
Comptes délégables - utilisation de l'abstraction de compte pour implémenter des fonctions de paiement automatique sur la chaîne Ethereum
La solution de paiement automatisé Ethereum de Visa consiste à tirer parti de l'abstraction du compte et à créer un nouveau type de contrat de compte : un compte délégué. L'idée principale est d'étendre les règles de validité programmables des transactions pour inclure des listes d'autorisation pré-approuvées. En termes simples, l'abstraction du compte peut déléguer les opérations de paiement automatique initiées par les comptes d'utilisateurs à des contrats intelligents de paiement automatique pré-approuvés.
Premièrement, les commerçants doivent déployer des contrats intelligents de paiement automatique. Lorsqu'un utilisateur disposant d'un compte délégué visite le site Web d'un commerçant, il verra une demande d'approbation d'un paiement automatique - similaire à ce que Visa accepte pour les factures. À ce stade, l'utilisateur peut voir que le contrat de paiement automatique effectuera des opérations au nom de l'utilisateur et que les paramètres peuvent être définis en fonction des besoins de l'utilisateur, par exemple, l'utilisateur ne peut être facturé qu'une fois par mois et les frais ne peuvent pas être facturés. dépasser le montant maximum fixé, etc. Mieux encore, puisqu’il s’agit d’un contrat intelligent, les utilisateurs peuvent être sûrs que le contrat de paiement automatisé ne sera pas exécuté autrement.
Si l'utilisateur accepte d'approuver les paiements automatiques, le portefeuille ajoutera l'adresse du contrat de paiement automatique à la liste des contrats autorisés pour le compte délégable de l'utilisateur.

Ensuite, le commerçant déclenche le paiement en appelant la fonction de prélèvement du contrat de paiement automatique. Le contrat de paiement automatique déclenchera le compte de l'utilisateur pour lancer une transaction de paiement push. Cette transaction sera une transaction valide car elle a été ajoutée à la liste autorisée à l'avance.

En plus des paiements récurrents, la solution peut également répondre à différentes applications dans le monde réel. La solution de comptes confiés Visa pourra même être étendue à l'avenir à des services tels que la récupération de comptes tiers.
Implémentation de l'abstraction de compte sur StarkNet

Étant donné qu'Ethereum ne prend pas encore en charge l'abstraction de compte, Visa a mis en œuvre une solution de compte délégué sur StarkNet, une blockchain de couche 2 construite sur la blockchain Ethereum pour augmenter le débit des transactions ainsi que d'autres fonctionnalités pour améliorer les capacités sous-jacentes de la couche de règlement de la Blockchain, développées par démarrage crypto StarkWare. Le modèle de compte de StarkNet est ce que Visa appelle actuellement l'abstraction de compte. Le compte abstrait vérifie si la transaction provient d'une adresse donnée.
Pour les comptes concrets, si quelqu'un envoie un jeton au compte utilisateur, le contrat de jeton interagit avec et le contrat de jeton vérifie si l'identité (clé) utilisée pour signer la transaction pour ce transfert est enregistrée en tant que propriétaire actuel du jeton. Pour les comptes abstraits, si quelqu'un envoie un token sur votre compte, vous interagirez également avec le contrat de token, qui vérifiera si l'identité (contrat) utilisée pour effectuer ce transfert est enregistrée en tant que propriétaire actuel du token. Pour les comptes abstraits, ce qui compte, c'est qui (adresse) exécute la transaction, et non comment (signature) la transaction est exécutée.
Avec le modèle de compte StarkNet, Visa est en mesure de mettre en œuvre une solution de compte délégué qui permet des paiements automatisés pour les portefeuilles auto-hébergés.
en conclusion
En tant que l'un des plus grands réseaux de paiement au monde, Visa explore activement des solutions innovantes de contrats intelligents pour promouvoir les devises et les paiements programmables.
Les paiements automatisés sont l'une des fonctionnalités essentielles qui manquent à l'infrastructure blockchain existante, mais tirer parti du concept d'abstraction de compte pourrait fournir aux portefeuilles auto-hébergés des capacités de paiements récurrents automatisés et même amener d'autres applications du monde réel au-delà des paiements automatisés à la chaîne blockchain. créer une meilleure expérience utilisateur pour les canaux de paiement traditionnels et les canaux de paiement émergents.
