StarkNet 账户抽象 与 EIP-4337

原作者: [6] (.eth[7]) @ Labs

特别感谢 NIC Lin[8] & Cyan Ho[9] 对本文的审阅。

转账隐藏名字

本文将重点介绍 原生账户抽象( 本文简称 AA)、 钱包体验以及与 EIP-4337[10] 钱包体验的的比较。

转账记录能隐藏吗

同时,本文也发布在 上发布[11]!

转账怎么隐藏金额呀

转账记录能隐藏吗_转账隐藏名字_im钱包怎么隐藏转账记录

img目录简介

如果你了解以下背景知识,本文会更容易理解。

回顾账户抽象

账户抽象的本质可以归纳为两个关键点:签名抽象和支付抽象。

签名抽象的目标是使各种账户合约能够利用不同的验证方案。这意味着用户不仅限于使用特定的数字签名算法,而是可以选择他们喜欢的任何验证机制。

与此同时,支付抽象旨在为用户提供一系列交易支付选项。例如,可以使用 ERC-20 代币进行支付,而不是使用本机代币,或者由第三方赞助交易。

中的 AA 机制

当用户发送交易时,首先会遇到 。作为 解决方案, 没有类似于过去矿工的角色,这就是 发挥作用的地方。 必须:

转账隐藏名字_im钱包怎么隐藏转账记录_转账记录能隐藏吗

负责这些任务的个体被称为 。在 的背景下,账户抽象机制在 中定义(使用 OS)。具体而言, AA 受到 EIP-4337 的启发,并遵循交易处理的四个阶段来验证交易、收取费用并执行交易。

im钱包怎么隐藏转账记录_转账隐藏名字_转账记录能隐藏吗

img在验证阶段:

一旦用户的交易被接收, 将验证 nonce 是否有效,并通过调用账户合约中的“”函数来验证交易是否得到账户所有者的授权。

由于 采用 AA 账户系统,用户可以在验证函数中实现他们喜欢的验证逻辑,而不是像以太坊中那样仅限于 ECDSA。我们将在 AA 特性部分更详细地探讨这一特性。

一旦验证成功完成, 将从账户合约收取费用。如果交易在此失败,将不会收取任何费用。

在执行阶段:

接下来, 将在 OS 中执行交易,其功能类似于 EVM。

在此过程中, 生成一个 trace,这是执行过程的记录,而不是函数的输出。然后将 trace 发送给 进行进一步处理。

快速了解 AA 合约

在前一节中,我们了解了在 中执行交易所涉及的步骤。在本节中,我们将把注意力转向 中账户合约的实现,并探讨其关键方面。

账户合约的目的是什么?

在 中,账户合约作为用户与区块链进行交互的主要实体。除了执行用户发送的交易外,它主要负责:

授权验证: 在执行交易之前, 将首先通过调用账户合约上的验证函数来验证交易是否得到授权。

重放保护: 将验证账户合约的 nonce。(你可以在此处[12]找到有关 的 nonce 机制的更多信息)

账户合约的入口点

这些入口点与 4337 账户合约是不同的。

账户合约必须实现这些强制性接口,这些接口是账户合约的主要入口点:

()

()

()

()

无论执行何种操作(例如调用、声明或部署合约),都会首先调用相应的()函数系列。

例如,如果你希望在 DEX 上将 ETH 兑换为 USDC, 将首先调用()来验证交易是否得到你的授权,然后调用()来完成兑换。

因此,()的输入参数将与()的输入参数相同。

AA 中的用户体验账户即合约

不支持 EOA,因为所有账户都被视为合约。

要创建一个新账户,必须部署一个合约。账户合约可用于 中的各种活动,包括转账、兑换和使用任意数据调用其他合约。

由自身部署

创建账户涉及以下步骤:

生成新的密钥对(生成公钥和私钥并安全存储;在此步骤中,账户尚未部署)。

在链下计算你将要部署的账户地址。

向此未部署的账户转移 ETH(例如从另一个已部署的账户或 转移)。

发送类型的交易以部署此账户。

用户体验如何?

AA 钱包与 EOA 钱包之间的部署体验区别

用户可能会发现使用 AA 钱包有些困惑,因为 EOA 无需部署任何内容,可以简单地存入 ETH 并使用 EOA 钱包进行各种交易。然而,在 中,每个用户都必须首先部署他们的账户,这可能会导致困惑,不明白为什么AA钱包需要支付费用来“建立钱包”。

通过隐藏用户视角中的账户部署交易,为此提供了出色的 UX 解决方案。用户可以创建钱包,存入足够的以太币,并进行各种交易,而无需意识到账户部署交易。在幕后, 将在发送用户的第一笔交易之前为用户启动账户部署交易。

因此,用户将不会意识到账户部署交易已经发生。

敏锐的用户可能会注意到第一笔交易的交易费比预期高。这是因为 在第一笔交易中收取了部署费用。

与 EOA 钱包的其他 UX 差异呢?使用 AA 钱包的用户体验与使用以太坊 EOA 钱包的体验没有显著差异,除了账户部署过程。

与其他 4337 钱包用户体验差异?

4337 钱包允许用户在部署钱包合约之前发送imToken钱包,并且入口点合约将使用嵌入在 中的部署钱包合约,在 中,你必须先部署账户合约,然后再向其发送任何交易。

AA 特性

EIP-4337 也共享相同的特性。

现在我们了解到用户可以定义其账户的功能,我们可以看到账户合约可以执行简单的签名检查并调用目标,或者可以编程实现几乎任何功能。

更多操作 / 批量交易

通过将一系列调用(例如 ERC-20 中的()和())包装为 并提交给账户合约,我们可以在单个交易中执行多个操作。这样,如果它们作为独立交易进行,我们可以避免为每个单独调用签名和支付基本交易费用。

不同的验证方法

我们可以在验证函数中设计自己的验证机制。例如,我们可以使用各种算法(如 Stark Curve、、)验证签名,甚至可以使用多重签名机制。此外,这些签名算法也可以是量子抗性和 Gas高效的 。

插件

账户合约还可以实现插件机制,允许未来扩展。你可以添加一个插件,该插件可在验证和执行函数中使用im钱包怎么隐藏转账记录,以扩展账户的功能。

当前的交易费用与以太相关联。但是在未来, 将允许用户选择如何支付交易费用。为了实现这一点, 遵循 EIP 4337 中制定的指南,并允许交易指定一个特定的合约,即 ,来支付其交易。

在验证阶段, 需要验证 是否有足够的资金来支付交易。

一旦验证完成并成功, 将请求 在执行交易之前支付交易。

用户可以选择在发送交易之前使用 ERC-20 或信用卡支付 ,或者允许 在交易执行后从账户合约请求 ERC-20 费用。

总结与比较总结

从前一节中,我们了解了这两个目标的含义:

AA 与 4337 的比较

EIP-4337 和 AA 之间的主要区别是:

在处理用户交易时, 中的在功能上类似于 4337 中的捆绑器。但是还充当区块构建者(详细信息可见我的其他文章[13] )。

在 AA 中,我们必须在发送交易之前部署账户合约。

im钱包怎么隐藏转账记录_转账隐藏名字_转账记录能隐藏吗

img

TEM 2023 有獎徵稿 TEM 目前正在進行有獎徵稿!詳情請參考:

参考引用

交易和状态

AA

我之前在以太坊 AA 上的文章

本翻译由.me[26]协助支持, 在 构建可信履历,为自己码一个未来。

登链社区是区块链开发者的家园,在这里不仅可以阅读文章、学习课程、参与问答与讨论,还可以发布活动、进行人才招募。我们帮助开发者更好的进入 web3 。

学习系统的技术内容 / 发布活动、招聘

/

开发者的链上技能认证平台

给开发者的开源、免费工具箱

返回顶部
跳到底部

Copyright © 2002-2024 imToken钱包下载官网 Rights Reserved.
备案号:晋ICP备13003952号

谷歌地图 | 百度地图
Powered by Z-BlogPHP Theme By open开发