原文标题:《 如何把以太坊改造成自动支付系统?读懂 Visa 要用「账户抽象」做什么 》
Original article by Andrew Beams, Catherine Gu et al., Visa
Jordan, PANews
As blockchain adoption continues to increase, so does the need for superior user experiences and products that support real-world use cases. Visa already offers easy automatic deductions and regular automatic payments for its customers, especially younger ones, but that still seems to be a challenge for blockchains like Ethereum. Ethereum is the largest blockchain network by volume of payments, and for some types of on-chain digital wallets, automatic withdrawal of payments from user accounts on a regular basis remains a "big project."
Visa's AccoutAbstraction concept was developed to explore how smart contracts could be used to automate programmable payments and to demonstrate how smart contracts could be written for a self-hosting wallet to support automatic withdrawal of funds.
Consider a scenario: Let's say it's February 25th, and Alice is going on vacation to the Alps. She returns on March 10th, but she has to pay her mortgage, cable bill, and utilities by the 5th of each month. The problem is that she doesn't have enough money to pay before she goes on vacation, but she will have enough money when she gets paid on March 1st. Now the question is, how can Alice enjoy her holiday without falling behind on her payments?
Yes, the answer is automatic deductions. In fact, if Alice had a bank account, automatic debit would be a simple process of linking her debit account to her Visa card. However, it is not so simple to perform such an operation on the blockchain. However, as a new technology, it is worth exploring the blockchain smart contract solution of the above scenario.
Before we get down to business, let's take a look at the concept of an Ethereum account. There are currently two types of accounts on the Ethereum network:
Externally-owned accounts, commonly known as "user accounts"
ContractAccounts, often referred to as smart Contracts
由私钥控制的用户帐户可以发送交易,而智能合约需要关联代码才能执行,但智能合约无法「自己发起交易」,因为交易必须始终源自用户帐户并由用户签名,这些交易包括:以太坊区块链上用户账户之间的简单 Token 转移,或是触发一系列通过智能合约执行许多不同操作、更复杂的交易。
Let's go back to Alice.
Let's say Alice has a user account on the Ethereum blockchain and deposits her salary into the account to pay for her mortgage, cable, and utilities. Today, in order to pay her bills, a transaction must be initiated to transfer the Token from her "externally owned account" to the recipient's user account.
More specifically, Alice's "externally owned account" has a key/private key that only she knows about, and that only she can use to generate an elliptic curve Digital Signature Algorithm (ECDSA) signature, which is crucial to creating a valid transaction. But if Alice goes on vacation, who generates the signature and creates the fee-paying transaction?
One solution is for Alice to use a managed wallet, which allows a third party to control Alice's private key. In other words, Alice trusts a third party to protect her funds when she wants to trade or send the funds to a designated account. The advantage of this is that Alice can use the money escrow to become the signature needed to create the transaction for scheduled automatic payments, but the disadvantage is that she must fully trust this third party.
So what if Alice doesn't want to use an escrow wallet because she's worried about the risks, but instead uses a self-custody wallet and arranges for automatic payments? Next, let's introduce another concept -- Accountabstractions.
Account abstraction is a proposal that attempts to combine user accounts and smart contracts into a new Ethereum account type by making user accounts act like smart contracts. In the future, account abstraction will allow us to design a concise solution for automated payments and greater flexibility in verifying transactions on-chain, such as:
Multi-owner accounts can be enabled with multi-signature verification.
Allows the use of post-quantum signatures to verify transactions.
Allow a so-called public account, where anyone can transact by removing signature verification altogether.
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 fully hard-coded based on validity conditions, but can instead be written into account smart contracts in a "customized" manner.
More importantly, account abstraction supports automatic payments because you can set validity rules that no longer include signature verification, so let's see how that works.
Visa's Ethereum automated payment solution takes account abstractions and creates a new type of account contract -- delegated accounts. The main idea is to extend the programmable validity rules for transactions to include a pre-approved list of permitted accounts. In simple terms, account abstraction can delegate automatic payment operations initiated by a user account to a pre-approved automatic payment smart contract.
First, merchants need to deploy smart contracts for automated payments. When users with delegated accounts visit a merchant's website, they will see a request to approve automatic payments - similar to bills accepted by Visa. At this point, the user can see that the automatic payment contract will operate in the user's name, with the ability to set parameters according to the user's needs, such as charging the user only once a month and not exceeding a set maximum amount. 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 automatic payment, the wallet adds the address of the automatic payment contract to the list of allowed contracts that the user can delegate to the account.
Next, the merchant triggers the payment by calling the automatic payment contract's charge function. The automatic payment contract then triggers the user's account to initiate a push payment transaction, which will be valid because it has been pre-added to the allowed list.
In addition to recurring payments, the solution can be used for different applications in the real world, and the Visa Entrusted Account solution could even be expanded to include services like third-party account recovery in the future.
Since Ethereum does not yet support account abstraction, Visa has implemented a delegable account solution on StarkNet, the Layer2 blockchain, which is built on top of the Ethereum blockchain to improve transaction throughput and other features to improve the underlying blockchain's settlement layer capabilities. Developed by encryption startup StarkWare. StarkNet's account model is what Visa now calls an account abstraction, which checks whether a transaction is coming from a given address.
对于具体账户(concrete accounts),如果有人向用户账户发送 Token ,会与 Token 合约交互, Token 合约会检查用于签署交易以进行此传输的身份(密钥)是否记录为 Token 的当前所有者。对于抽象账户(abstract accounts),如果有人向您的账户发送 Token ,也会与 Token 合约交互, Token 合约会检查用于进行此转移的身份(合约)是否被记录为 Token 的当前所有者。对于抽象账户,重要的是谁(地址)在执行交易,而不是如何(签名)执行交易。
With the StarkNet account model, Visa was able to implement a delegable account solution to enable automatic payments for self-hosted wallets.
As one of the world's largest payment networks, Visa is actively exploring smart contract innovative solutions to drive the realization of programmable money and payments.
Original link
Welcome to join the official BlockBeats community:
Telegram Subscription Group: https://t.me/theblockbeats
Telegram Discussion Group: https://t.me/BlockBeats_App
Official Twitter Account: https://twitter.com/BlockBeatsAsia