主页 > imtokenapp专业版下载 > 账户抽象和以太坊的 ERC-4337

账户抽象和以太坊的 ERC-4337

imtokenapp专业版下载 2023-02-26 06:19:23

以太坊系统上实际上有两种类型的账户。

例如,我们使用由私钥控制的外部拥有账户(EOA),并且所使用的钱包中的账户有自己的余额。 所有者可以通过创建交易并签名来从其外部帐户发送消息。

另一个是由部署到区块链的代码控制的合约账户,由存储在智能合约账户(有时称为智能钱包)中的以太坊虚拟机代码控制。 合约账户收到信息后,会激活内码,读写内存,创建新合约。 根据目前的以太坊协议,只有外部账户才能发起交易,只有账户所有者才能更改账户状态。

什么是账户抽象?

账户抽象是对这两个账户的改进,试图模糊它们之间的界限,成为逻辑复杂的通用账户,使账户同时具备合约账户和外部账户的功能。

这与允许用户根据合约账户格式定义外部账户是一样的。 用户可以在智能合约钱包中包含逻辑验证。 代码支持也可用于使用密钥管理的帐户。

多种出金方案

实现账户抽象一直是以太坊开发者社区的愿景。 社会上也提出了各种方案,如EIP-86、EIP-2938等。

EIP-86是抽象账户技术准备。 它定义了新的账户类型,以便用户可以基于智能合约创建账户。

以太坊协议本身要求将所有内容打包到来自 ECDSA 安全外部帐户 (EOA) 的交易中。 每个用户的操作都必须由 EOA 的一笔交易打包,费用为 21,000 gas。 用户需要通过持有 ETH 支付单独的 EOA。

EIP-86 提出的账户抽象带来了新的交易类型。 传统交易必须有 EOA 作为发送方,但这些交易没有发送方。 此类交易破坏了交易哈希的唯一性。 EIP-86原计划在Metropolis进行升级,但由于上述问题,开发商决定暂停在Metropolis的部署。

以太坊密钥_以太坊和以太经典未来哪个好_sitejianshu.com 以太坊以太经典

EIP-2938 提供了一个账户抽象的解决方案。 通过修改部分以太坊协议,合约账户可以像外部账户一样开始交易。 但是这种方案需要在协议层改变以太网协议,所以没有被广泛接受。

后来提出的新协议ERC-4337试图提供一种不需要改变共识协议的解决方案,从而达到类似EIP2938的效果。 这种更安全的实施方法现在在社区中越来越受到关注。

ERC-4337是如何实现的?

ERC-4337 并不试图修改协议,而是将内存池功能复制到系统中。

用户发送一个UserOperation(用户操作)对象。 该对象包含用户的意图、签名和其他数据。

有一个单独的内存池用于操作,连接到该池的节点可以执行特定于 ERC-4337 的身份验证和过滤操作,以确保只接收付费操作。

或者矿工使用Flashbots服务的打包器,批量收集这些用户交互,打包成捆绑交易,合并到以太坊数据块中。 当打包者为以太坊中的捆绑交易支付 gasfee 时,为每个用户操作支付的费用将被计费和补偿。 打包器使用成本优先逻辑来选择要包含的用户操作对象。

帐户抽象和以太坊的ERC-4337

nrqpj5zvdtpzh.png

用户交互 UserOperation 看起来像事务,但它是一个 ABI 编码结构,具有以下字段:

sitejianshu.com 以太坊以太经典_以太坊密钥_以太坊和以太经典未来哪个好

1. Sender:操作钱包;

2. 随机数和签名:是传递给钱包验证函数的参数,允许进行钱包验证操作。

3.initCode:是钱包还不存在时创建钱包的初始化代码;

4.callData:用于调用实际执行步骤的钱包数据。

每个钱包都是一个智能合约,它必须包含两个功能。

1. 接受用户操作作为输入的 validateUserOp。 此函数必须验证用户操作的签名和随机数。 如果验证成功,它会支付费用并增加 nonce。 如果验证失败以太坊密钥,它将抛出异常。

2. op执行函数用于将calldata解析为一条或多条钱包执行命令。

ERC-4337引起的变化

如果该方案被广泛采用,并将签名验证转移到以太坊虚拟机(EVM)中,validate userop函数将添加任意签名和随机数验证逻辑,使验证逻辑更加灵活。

这样,在签署交易时可以采用新的密码工具,钱包可以提供以下新功能。

sitejianshu.com 以太坊以太经典_以太坊密钥_以太坊和以太经典未来哪个好

1.多重签名;

2.社会康复

3、更有效、更简单的签名算法(如Schnorr、BLS);

4、后量子安全签名算法(如Lamport、winter nitz);

5.钱包可以升级。

该计划还开放了其他种类的交易权限管理,例如允许交易通过智能合约支付gas费用。

目前,以太坊上通信的外部钱包的gas费只能用钱包中的ETH支付。 钱包里只有 20 个 ERC 币。 没有 ETH,这些代币无法转出。 采用ERC-4337后,用户可以使用账户的ERC-20代币进行支付,矿工节点的中介合约会向ETH链进行支付,从而获得用户的ERC-20代币。

实现抽象后,由外部账户所有者签署和广播交易将不再是发起交易的唯一方式。 这带来了以太坊将充当原始交易中介的可能性。 目前,以太坊上的很多APP应用都需要依赖中继者在区块链上发布用户交易,并向中继者支付费用。 如果可以将更复杂的合约合并到钱包中,一些重复将不再存在,并且不需要支付额外费用。

虽然有很多优点,但新方案也面临一些问题。

最突出的是天然气成本较高。 基本的 ERC-4337 操作需要大约 42,000 gas,但正常交易需要 21,000 gas,原因如下:

以太坊和以太经典未来哪个好_以太坊密钥_sitejianshu.com 以太坊以太经典

1.对于EOA,这些费用是和21,000 gas的支付捆绑在一起的,需要大量的存储和读写费用。

(1) 编辑存储槽; 包括 pubkeynonce(5000);

)2) 用户操作的数据调用成本(约4500,压缩后可降到2500左右);

)3) 电动恢复器 (~ 3000);

)4) 首先访问钱包本身 ((~2600))))))。

)5) 首次访问受益人账户 (~2600)

)6) 将 ETH 转移到接收者的账户 ((~9000))

(7) 编辑 Memory Pay Fee() (~5000)。

)8) 访问包含代理的存储槽(代理本身)(~2100))~2600);

2. 除了上述内存读写开销外,合约还必须实现“业务逻辑”(如拆包、哈希、变量洗牌等)。

以太坊密钥_sitejianshu.com 以太坊以太经典_以太坊和以太经典未来哪个好

3、需要消耗天然气支付日志费用(EOA不发日志);

4. 一次性合约制作成本(约32,000 gas,每个agent code 200 gas,加上agent address 20,000 gas)。

简而言之,账户抽象地址的每一步都需要计算,消耗大量资源,需要额外花钱。

幸运的是,这并非无法解决。

Rollup 擅长数据压缩,因此与复杂数据的账户抽象方案天生契合。

在Vitalik的最新提案中,提出通过layer 2对账户抽象产生的数据进行处理,改进之处在于将批量交易只能一步步实现的功能进行封装,通过SNARK技术保证交易的有效性。

标签

如今,以太坊在二级市场的重点发展格局已经确定,Vitalik的以太坊升级后续计划开始转向客户抽象。 最新方案展示了rollup account的抽象技术路径。 每个汇总提供商还发布了兼容帐户抽象的新版本。

今年6月,zkSync发布V2更新信息:增加“账户抽象”功能,提高与EVM以太网的兼容性。 10月发布新版ERC-4337,增加签名聚合功能,包括BLS签名算法。 签名聚合允许作者和批量提交者聚合签名(如BLS、SNARKs),从而大大减少链上数据,降低聚合的数据成本。

帐户抽象和以太坊的ERC-4337

nr5sztjntaqlf.png

我们有理由相信,账户抽象化带来的变化以太坊密钥,也隐含着生态爆发的可能。 随着 Rollup 的发展,可以结合 Rollup 的账户抽象一定会开发出更好更精细的解决方案。