BTC
ETH
HTX
SOL
BNB
View Market
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Read the "Account Abstraction" proposed by Visa in one article: How to transform Ethereum into an automatic payment system?

PANews
特邀专栏作者
This article is about 2740 words, reading the full article takes about 4 minutes
Visa is actively exploring innovative smart contract solutions to enable programmable money and payments.
AI Summary
Expand
Visa is actively exploring innovative smart contract solutions to enable programmable money and payments.

Original Author: Visa, Andrew Beams, Catherine Gu, etc.

Original compilation: PANews, Jordan

As blockchain adoption continues to increase, so too does the need for products with superior user experience and support for real-world use cases. Visa already provides customers (especially younger customers) with the convenience of automatic debits and recurring automatic payments, but it still seems difficult for a blockchain like Ethereum to implement this feature. Ethereum is the blockchain network with the largest payment volume, and it is still a "big job" for some types of on-chain digital wallets to automatically withdraw payments from user accounts on a regular basis.

In this regard, Visa proposed the concept of account abstraction (AccoutAbstraction), and explored how to use smart contracts to realize automated programmable payments, and demonstrated how to write smart contracts for self-custodial wallets that support automatic withdrawal of funds.

use case scenario

Consider a scenario: Suppose today is February 25th, Alice is going on vacation in the Alps, she will return on March 10th, but must pay her mortgage, cable TV, and utilities by the 5th of each month, The problem is that she doesn't have enough money to pay until she goes on leave, but will have enough when she gets paid on March 1st. Now the question is, how can Alice enjoy her vacation without defaulting on her payment?

How to transform Ethereum into an automatic payment system? Understand what Visa wants to do with "account abstraction"

That's right, the answer is - automatic debit. In fact, if Alice has a bank account, the automatic deduction is a very simple process, just link her debit account with the Visa card. However, on the blockchain, it is not so simple to perform such an operation. However, as a new technology, it is worth exploring the blockchain smart contract solution for the above scenario.

Before getting into the topic, let us first understand the concept of an Ethereum account. There are currently two types of accounts on the Ethereum network:

1. Externally OwnedAccounts (ExternallyOwnedAccounts), often referred to as "user accounts"

2. Contract Accounts (ContractAccounts), usually called "smart contracts"

User accounts controlled by private keys can send transactions, and smart contracts need associated code to execute, but smart contracts cannot "initiate transactions themselves", because transactions must always originate from user accounts and be signed by users. These transactions include: Simple token transfers between user accounts on the blockchain, or triggering a series of more complex transactions that perform many different operations through smart contracts.

So, how to automate 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 in the account and uses it to pay the mortgage, cable TV bills, and utility bills. Today, in order to pay her bills, a transaction must be initiated to transfer tokens from her "externally owned account" to the recipient's user account.

In detail, Alice's "externally owned account" has a key/private key that only she knows, and only she can use this private key to generate an Elliptic Curve Digital Signature Algorithm (ECDSA) signature, which is valid for creating Transactions matter. But if Alice is away on vacation, who will generate this signature and create the fee payment transaction?

There is currently a solution, which is to let Alice use a managed wallet, that is, let a third party control Alice's private key. In other words, Alice trusts a third party to protect her funds and send funds to the designated account when she wants to trade or send them. The advantage of this is that Alice can use the fund 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 concerned about the risks, but instead uses a self-custodial wallet and schedules automatic payments? Next, let us introduce another concept - Account Abstraction (AccountAbstraction).

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 simple solution for automatic payments, and have more flexibility in the process of verifying transactions on the chain, such as:

1. Multi-owner accounts can be enabled through multi-signature verification.

2. Allow the use of post-quantum signatures to verify transactions.

3. Allow a so-called public account where anyone can transact by completely canceling signature verification.

In essence, account abstraction allows programmable validity to verify and confirm any blockchain transaction. Transactions based on the Ethereum protocol do not have to be based on the hard-coding of validity conditions, but can be written based on "customization" into the account smart contract.

More importantly, since you can set validity rules that no longer include signature verification, the account abstraction supports automatic payments. Let's see how to implement it.

Delegatable Accounts—Using account abstraction to realize automatic payment functions on the Ethereum chain

Visa’s solution for automated payments on Ethereum 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 a transaction to include a pre-approved allow list. In simple terms, the account abstraction can delegate the automatic payment operation initiated by the user account to the pre-approved automatic payment smart contract.

First, merchants need to deploy an automatic payment smart contract. When users with delegating accounts visit a merchant website, they will see a request to approve an automatic payment — similar to a bill accepted by Visa. At this point, the user can see that the automatic payment contract will perform operations in the name of the user, in which parameters can be set according to the user's needs, such as charging the user only once a month, charging cannot exceed the maximum amount set, etc. Most importantly, since this is a smart contract, users can be confident that the automatic payment contract will not be executed in any other way.

If the user agrees to approve the automatic payment, the wallet will add the address of the automatic payment contract to the list of allowed contracts for the user's delegable account.

How to transform Ethereum into an automatic payment system? Understand what Visa wants to do with "account abstraction"

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, which will be a valid transaction because it has been pre-added to the allowed list.

How to transform Ethereum into an automatic payment system? Understand what Visa wants to do with "account abstraction"

In addition to recurring payments, the solution can also meet other different applications in the real world, and the Visa entrusted account solution can even be extended to services such as third-party account recovery in the future.

Implementing Account Abstraction on StarkNet

How to transform Ethereum into an automatic payment system? Understand what Visa wants to do with "account abstraction"

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 and other features to improve the underlying Blockchain settlement layer capabilities, developed by the encryption startup StarkWare. StarkNet's account model is what Visa currently calls account abstraction, which checks whether a transaction comes from a given address.

For concrete accounts, if someone sends tokens to a user account, it interacts with the token contract, which checks that 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 tokens to your account, it also interacts with the token contract, which checks that the identity (contract) used to make this transfer is recorded as the current owner of the token By. With abstract accounts, what matters is who (the address) is executing the transaction, not how (the signature).

in conclusion

in conclusion

As one of the largest payment networks in the world, Visa is actively exploring innovative smart contract solutions to enable programmable money and payments.

Automatic payment is one of the core functions that the existing blockchain infrastructure lacks, but using the concept of account abstraction can provide automatic periodic payment functions for self-hosted wallets, and even introduce other real-world applications other than automatic payment into the blockchain Chain, and then create a better user experience for traditional payment channels and emerging payment channels.


ETH
Welcome to Join Odaily Official Community