A few days ago a page appeared on Visa’s official website explicitly dedicated to automatic crypto payments for self-custodial wallets.
It is a solution proposed by Andrew Beams, Catherine Gu, Srini Raghuraman, Mohsen Minaei and Ranjit Kumaresan, and dedicated precisely to automatic payments in cryptocurrencies.
Visa’s solution: access to crypto is getting easier
The authors start with a hypothetical example, namely that of a person leaving for a couple of weeks’ vacation. They hypothesize that during those two weeks he needs to make important scheduled payments, such as mortgage payments, utility bills or TV subscription, and that he does not have enough money to pay before going on vacation. They also hypothesize that during those two weeks he will receive his paycheck, so he would like to proceed with the payments as soon as he receives the money.
The solution is automatic payments, easily set up when using a bank account. In this case, Visa already offers everything needed to be able to proceed.
But what about in the case of using crypto wallets?
Visa hypothesizes the use of an unspecified Ethereum wallet, and cites an innovative technique that emerged during its Crypto Hackathon in early 2022.
The hypothesized Ethereum wallet is self-custodial, meaning that it involves private keys being in the exclusive possession of the user. The authors write that a user account that controls the private keys can send transactions, whereas a smart contract, on the other hand, cannot initiate transactions completely independently, because they must always come from a user account and be signed by the user.
So the question the authors ask is, if the user does not have access to the wallet because he is on vacation, who can authorize transactions to make all the above payments?
The problem would not arise in the case of a custodial wallet, because then the private keys to authorize transactions would be in the possession of the wallet operator. But in the case of non-custodial wallets it would currently be a problem to schedule them in the absence of funds.
Visa’s proposed solution is what is known as Account Abstraction (AA), which is a proposal that attempts to combine non-custodial wallets and smart contracts into a single Ethereum account that makes user accounts function as smart contracts.
The concept of Account Abstraction (AA)
AA enables the design of an orderly solution for automated payments by proposing greater flexibility in the process of validating transactions on the blockchain that allows for the creation of scheduled transactions even in the absence of sufficient funds.
Instead of encoding transaction validity conditions within the Ethereum protocol, and applying them to all transactions across the board, with AA the validity conditions can be customizable and scheduled within a smart contract valid for the individual account. Thus AA makes automatic payments possible even in the absence of funds at the time they are programmed by allowing the user to set validity rules that no longer include signature verification.
Thanks to AA, Visa proposes to create a new type of smart contract, called a “delegable account.”
Thus thanks to AA it will be possible to delegate the ability to instruct the user’s account to initiate a push payment to a smart contract in an automatic and pre-approved manner.
Automatic payments
Such a solution seems in some ways similar to the pre-authorized payments that are used, for example, at gas stations.
In fact, in those cases you have to authorize the transaction before you start dispensing, that is, when the amount is not yet known. There is a maximum amount that is authorized, and in that particular case, there must be sufficient funds in the account to cover the full amount of the maximum authorized amount.
The transaction occurs automatically after being pre-authorized depending on the final amount of the replenishment.
In the case of Visa’s AA-based solution, the problem is not the unknown amount at the time of pre-authorization, but the lack of sufficient funds.
So the transaction is pre-approved by the user with his or her private key, but will actually be executed by the smart contract only when sufficient funds are available.
For automatic payment via AA to occur, first the payment recipient must deploy an automatic payment smart contract. The user must have a delegable account, and explicitly approve the request for approval of automatic payments. Of course, he will be able to check all the actions that the smart contract will perform automatically before approving them. Since it is a decentralized smart contract on Ethereum, the user can be assured that it will perform only those actions that have been authorized by him.
After acceptance, the user’s wallet will add the address of the automatic payment smart contract to the list of those allowed on the user’s delegable account. Then the smart contract will activate the scheduled payment by invoking the debit function that will prompt the user’s account to initiate a normal push payment indistinguishable from standard push payments.
This solution also lends itself to other real-world applications besides recurring payments, some of which may not be easily accessible through today’s payment solutions.
The proposal
AA was proposed as EIP-86 as early as 2017, although the origins of the idea behind it go back as far as early 2016. However, the proposals contained in this EIP (Ethereum Improvement Proposal) were difficult to implement due to the many changes to the Ethereum protocol required, so much so that another one, EIP-4337, was later developed, which provides a way to do AA without changes to the Ethereum protocol. However, there is still an ongoing debate about how to implement AA on Ethereum.
Since Ethereum does not yet support AA, Visa has implemented its own solution for delegable accounts on StarkNet, which is a second-level blockchain built on the Ethereum blockchain.
StarkNet is developed by crypto startup StarkWare, and StarkNet’s account model matches that of AA.
Visa says it is at the forefront of designing innovative payment products and solutions, and is actively exploring new approaches related to smart contracts to make money and payments programmable.
The authors of the article see automated payments as a key functionality that is, however, currently missing from the existing blockchain infrastructure. Therefore, they proposed such a solution that leverages AA to be able to provide non-custodial wallets with automatic recurring payments functionality.
Visa aims to help create better user experiences by leveraging both existing and new payment methods, and to that end they believe that programmable money and programmable payments represent an exciting opportunity.
Visa and the future of crypto
It is indeed the case that in the non-custodial sphere, scheduled or recurring payments in their current state of affairs are very difficult to manage. Indeed, transactions must be valid to be approved, and to be valid they must be fully covered by sufficient funds.
This is all the more true for payment requests from creditors, who to date cannot interact with customers’ non-custodial wallets unless the customers do so themselves.
Relying on custodial platforms is by no means a solution, so new technologies are required that allow the individual non-custodial wallet holder to be able to enable scheduled or automatic payments even in the absence of funds.
It is not certain that the solution that will become widespread will be precisely AA, but given that it is being somewhat sponsored by Visa it is possible that it could achieve clear success.