
From | Visa, Andrew Beams, Catherine Gu and more
Compiled | PANews, Jordan
As blockchain adoption continues to increase, so does the need for superior user experiences and products that support real-world use cases. Visa already provides customers (especially younger customers) with convenient automatic debits and recurring automatic payments, but it still seems difficult to implement this feature on a blockchain like Ethereum. Ethereum is the blockchain network with the largest payment volume, and for some types of on-chain digital wallets, automatically withdrawing payments from user accounts on a regular basis is still a "big project."
In this regard, Visa proposed the concept of "Account Abstraction" to explore how to use smart contracts to implement automated programmable payments, and demonstrated how to write smart contracts for self-hosted wallets that support automatic withdrawal of funds.
Use case scenarios
Consider a scenario: Suppose today is February 25th, and Alice is going on vacation in the Alps. She will return on March 10th, but she must pay her mortgage, cable TV bill, and utility bills before the 5th of each month. The problem is that she doesn't have enough money to pay before she goes on leave, but she will have enough money when she gets her paycheck on March 1. Now the question arises, how can Alice enjoy her vacation without falling behind on her bills?

Yes, the answer is - automatic deduction. In fact, if Alice has a bank account, automatic debit is a very simple process. She only needs to associate her debit account with her Visa card. However, on the blockchain, performing such an operation is not that simple. However, as a new technology, it is worth exploring blockchain smart contract solutions for the above scenarios.
Before getting to the point, let us first understand the concept of an Ethereum account. There are currently two types of accounts on the Ethereum network:
1. Externally Owned Accounts, often called “user accounts”
2. Contract Accounts, often called “smart contracts”
User accounts controlled by private keys can send transactions, and smart contracts require associated code to execute, but smart contracts cannot "initiate transactions themselves" because transactions must always originate from the user account and be signed by the user. These transactions include: Ethereum area A simple transfer of tokens between user accounts on the blockchain can trigger a series of more complex transactions that perform many different actions through smart contracts.
So, how to implement automated payments on the Ethereum blockchain?
Let's review Alice's situation.
Suppose Alice has a user account on the Ethereum blockchain and deposits her salary into the account and uses it to pay her mortgage, cable bill, and utility bills. Today, in order to pay her bill, a transaction must be initiated to transfer tokens from her "externally owned account" to the payee's user account.
To be more specific, Alice's "externally owned account" has a key/private key that only she knows, and only she can use this private key to generate Elliptic Curve Digital Signature Algorithm (ECDSA) signatures. This is valid for creating Transactions are crucial. However, if Alice goes on vacation, who will generate this signature and create the fee payment transaction?
There is currently a solution for Alice to use a custodial wallet, which allows a third party to control Alice's private key. In other words, Alice trusts a third party to protect her funds and when she wants to trade or send funds to a designated account, the benefit of this is that Alice can use the funds custodian to generate the signatures required to create transactions for scheduled automatic payments. , but the downside is that she has to completely trust this third party.
So what if Alice doesn’t want to use a custodial wallet because she’s worried about the risk, but instead uses a self-custody wallet and schedules automatic payments? Next, let us introduce another concept - Account Abstraction.
What is account abstraction?
Account abstraction is a proposal that attempts to merge user accounts and smart contracts into a new Ethereum account type by making user accounts behave like smart contracts. In the future, account abstraction will allow us to design a simpler solution for automated payments, with greater flexibility in verifying transactions on-chain, such as:
1. Multi-owner accounts can be enabled through multi-signature verification.
2. Allow post-quantum signatures to be used to verify transactions.
3. Allow a so-called public account where anyone can conduct transactions by completely eliminating signature verification.
In essence, the account abstraction allows programmable validity to verify and confirm any blockchain transaction. Transactions based on the Ethereum protocol do not have to be entirely based on hard-coding validity conditions, but some conditions can be written in a "customized" way. into the account smart contract.
What's more, the account abstraction supports automatic payments since it's possible to set up validation rules that no longer include signature verification. Let's see how.
Delegable Accounts - Use account abstraction to implement automatic payment functions on the Ethereum chain
Visa’s Ethereum automated payments solution is to leverage the account abstraction and create a new type of account contract - a delegated account. The main idea is to extend the programmable validity rules of transactions to include pre-approved allow lists. Simply put, the account abstraction can delegate automated payment operations initiated by user accounts to pre-approved automated payment smart contracts.
First, merchants need to deploy automatic payment smart contracts. When users with a delegated account visit a merchant's website, they will see a request to approve an automatic payment—similar to a bill accepted by Visa. At this time, the user can see that the automatic payment contract will perform operations in the name of the user, and parameters can be set according to the user's needs, such as the user can only be charged once per month, and the charge cannot exceed the set maximum amount, etc. Best of all, since this is a smart contract, users can be confident that the automated payment contract will not be executed otherwise.
If the user agrees to approve automatic payments, the wallet will add the address of the automatic payment contract to the list of allowed contracts for the user's delegable account.

Next, the merchant triggers the payment by calling the Charge function of the automatic payment contract. The automatic payment contract will trigger the user's account to initiate a push payment transaction. This transaction will be a valid transaction because it has been added to the allowed list in advance.

In addition to recurring payments, the solution can cater for a variety of real-world applications, and the Visa Escrow Account solution can even be expanded into services such as third-party account recovery in the future.
Implementing account abstraction on StarkNet

Since Ethereum does not yet support account abstraction, Visa has implemented a delegated account solution on StarkNet, a Layer 2 blockchain built on top of the Ethereum blockchain to increase transaction throughput as well as other features to improve the underlying area. Blockchain settlement layer capabilities, developed by crypto startup StarkWare. StarkNet's account model is what Visa currently calls an account abstraction, where abstract accounts check whether a transaction came from a given address.
For Concrete Accounts, if someone sends a token to the user account, the token contract is interacted with, and the token contract checks whether the identity (key) used to sign the transaction for this transfer is recorded as the token's current owner. For Abstract Accounts, if someone sends a token to your account, you will also interact with the token contract, which will check whether the identity (contract) used to make this transfer is recorded as the current owner of the token. By. For abstract accounts, what matters is who (address) is executing the transaction, not how (signature) the transaction is executed.
With the StarkNet account model, Visa is able to implement a delegated account solution that enables automated payments for self-hosted wallets.
in conclusion
As one of the world's largest payment networks, Visa is actively exploring innovative smart contract solutions to enable programmable money and payments.
Automated payments are one of the core features that existing blockchain infrastructure lacks, but leveraging the concept of account abstraction could provide self-hosted wallets with automated recurring payments capabilities and even bring other real-world applications beyond automated payments to the blockchain. chain, thereby creating a better user experience for traditional payment channels and emerging payment channels.
(The above content is excerpted and reprinted with the authorization of our partner PANews, original text link)
Statement: The article only represents the author's personal views and opinions, and does not represent the objective views and positions of the blockchain. All contents and opinions are for reference only and do not constitute investment advice. Investors should make their own decisions and transactions, and the author and Blockchain Client will not be held responsible for any direct or indirect losses caused by investors' transactions.
This article How to transform Ethereum into an automated payment system? Understand what VISA should do with "account abstraction" first appeared in Blockchain.
