Bitget App
交易“智”变
行情交易合约跟单BOT理财Web3
以太坊钱包的今天和明天——EIP-3074 与 ERC-4337

以太坊钱包的今天和明天——EIP-3074 与 ERC-4337

哈希教授研究院哈希教授研究院2023/01/16 02:49
作者:哈希教授研究院

简介

今天以太坊的钱包非常有限。简单来说,当最初创建以太坊时,钱包机制的灵感来自以前具有经过实战检验过解决方案的区块链。但很早以前,开发人员就很清楚以太坊未来版本的局限性可能需要添加更好的解决方案。经过多次提议和迭代,我们似乎非常接近确定的解决方案。

 

账户、钱包和抽象化的账户

在今天的以太坊中,有两种类型的账户:一种是由用户私钥控制的,称为外部拥有账户(EOA),另一种是智能合约账户,由他们的代码控制。今天,一笔交易只能从一个包含 ETH 的 EOA 开始支付,这些交易可以与具有任意逻辑的智能合约交互。

 

以太坊中的钱包是指用于存放用户资金的系统。EO 是最常见的一种,但专门设计的智能合约也可以是钱包,我们称这些为智能合约钱包。

 

账户的抽象性是使所有以太坊账户几乎无法区分的过程,有效地消除了对 EOA 和对智能合约钱包的特殊处理的需要。

当前的钱包





以太坊钱包的今天和明天——EIP-3074 与 ERC-4337 image 0

当前在以太坊中使用的绝大多数钱包都是 EOA。用户随机选择他们的 256 位私钥来获得他们的 EOA。鉴于两个随机选择的密钥访问同一个帐户的可能性极低(相当于在地球上两次挑选同一粒沙子),可以公平地假设这是不可能的。

 

为了执行交易,用户使用他们的私钥使用标准 ECDSA 签名对其进行签名,然后将它们发送到以太坊网络矿工包含的在一个区块中。

 

重要的是要注意,要将交易包含在区块中,必须按照 EIP 1559 向矿工支付 ETH 费用并销毁。这意味着,尽管创建 EOA 是免费的,但执行交易需要用户首先找到一种将 ETH 发送到该 EOA 的方法。一些解决方案可能涉及使用交易所或让您认识的人将 ETH 送到该帐户。

 

以太坊社区对 EOA 表达了一些担忧。这些担忧包括:

 

  • 密钥管理:由于获取资金的唯一方法是知道私钥,因此管理如何存储密钥以及谁有权访问它可能会带来困难和压力大的挑战。

  • 依赖 ECDSA 签名:更简单且抗量子的数字签名是对当前 ECDSA 的明显改进。

一对一的操作:一次不能执行多个操作。否则会产生不必要的成本和糟糕的用户体验。


下面的解决方案试图解决这些问题。

 

更好的钱包

以太坊钱包的今天和明天——EIP-3074 与 ERC-4337 image 1

如前所述,智能合约钱包是专门设计用于持有和管理用户资金和行为的智能合约。与 EOA 相比,Argent、Gnosis 或 Loopring 钱包等解决方案具有高级功能。


由于交易只能从 EOA 开始,为了改善用户体验,这些项目提供中继服务,从用户那里获取签名消息,并从服务提供商的 EOA 提交到链上,同时使用返回 ETH 的自定义费用机制到 EOA,使整个过程可持续。需要注意的是,这些交易可以从任何 EOA 开始,让用户拥有对其资金的完全所有权,但过程会更加繁琐。


智能合约钱包没有运行标准,所以每个项目都必须转向像 GSN 这样的元交易解决方案,或者努力创建和管理自己的中继服务,以及管理费用机制和审计他们复杂的智能合同。 反过来,他们的用户可以获得智能合约钱包提供的额外好处。其中一些改进包括:


  • 社交恢复:用户可以确定使用用户资金或恢复对其钱包的访问权限以及帐户列表。这非常有用,让用户安心,不必担心丢失密钥。此外,如果发生严重事故,这些账户可以汇集起来取回资金。

  • 多重签名交易:需要多个用户批准才能完成的交易。

  • 批量交易:用户可以在一次交易中将他们想要执行的一组操作捆绑在一起,通过节省费用并确保操作的顺序和原子性(atomicity)来显着改善体验。

  • 自定义验证逻辑:智能合约钱包可以包含使用更简单或抗量子签名,验证用户意图的自定义方法。

智能合约钱包相对于常规 EOA 的优势显而易见,以太坊社区一直致力于制定标准,以将这些优势原生地纳入协议。


更好的钱包——EIP-3074 ERC-4337

鉴于这些更高级的钱包需要一种标准的方式来运作,多年来一直有人提出建议。目前,社区正在讨论看似对立的解决方案:


  • 赋予 EOA 钱包智能功能。

  • 为智能合约钱包提供标准的 EOA 功能。

以太坊钱包的今天和明天——EIP-3074 与 ERC-4337 image 2

Sam Wilson、Matt Garnett 和其他人在 EIP-3074 中正式提出了一项赋予 EOA 高级功能的提案。


该解决方案涉及向 EVM 添加两个新的操作码:AUTH 和 AUTHCALL,它们旨在被称为“调用者”的智能合约使用。这些调用者获得了对授权他们的 EOA 的控制权,并可以代表他们进行调用。


使用 EIP-3074,用户可以使用包含其意图的私钥对消息进行签名。然后,该消息被包含在调用程序的链上交易中。调用者使用签名消息和 AUTH 操作码来控制用户的帐户,并且使用 AUTHCALL,它可以代表用户执行操作。要注意的是,包含用户签名消息的交易不一定必须从该用户的帐户发送,这使用户完全不必依赖 ETH 来发送交易。事实上,还可以通过其他方式支付费用,例如使用 ERC-20 代币。


EIP-3074 的调用程序是对以太坊中每个 EOA 的即时升级。该提案不要求现有用户将其所有资产迁移到一种新型钱包中以从中受益(例如下面讨论的 ERC-4337)。EIP-3074 的选择加入机制可以被认为是为您 EOA 的添加扩展。


这种方法有几个问题,主要是认为赋予调用者如此大的权力会导致类似于 DAO 黑客攻击的灾难性事件。


在这些讨论中,基于 Vitalik Buterin 的概念提出了 ERC-4337。

以太坊钱包的今天和明天——EIP-3074 与 ERC-4337 image 3

ERC-4337 通过在更高级别的系统中复制交易内存池的功能来实现帐户抽象。用户将 UserOperation 对象发送给以太坊捆绑器,而不是交易,他们将一组的这些对象打包成单个捆绑交易,该交易被包含在以太坊链中。


这些捆绑交易由“入口点”合约处理,该合约处理用户钱包的部署并通过查询部署的钱包来验证用户操作对象。


UserOperation 最终由用户选择的智能合约钱包处理,因为它包含与 EntryPoint 交互的必要逻辑。


长期计划

围绕这些实施的讨论促使开发人员尝试为这两个提案制定一个长期计划。鉴于当前 EOA 的用户体验和安全问题,承认当前 EOA 在未来会被根除是显而易见的。


ERC-4337 的支持者看到了一条路径。在未来,这个新的用户操作内存池可以取代当前的交易内存池。以太坊硬分叉会将所有现有的 EOA 转换为具有升级能力的智能合约钱包,其方式与 Optimism 的尝试类似。EIP-307 将很难适应这一愿景,在后 AA 以太坊(这个是什么意思呢)中产生大量技术债务。出于这个原因,ERC-4337 的支持者建议对 3074 进行更改,以便将来更容易将其删除或简化机制,以使其更容易适应新结构。


另一方面,EIP-3074 的支持者从不同的角度提出问题,钱包专注于验证用户的意图,提供不同的账户抽象路径,EIP-3074 和账户抽象化相辅相成。在此路线图中,EOA 被一个基本的智能合约钱包所取代,该钱包具有禁止调用者被授权执行操作的功能,从而减轻了对恶意调用者的担忧。


文标准智能合约钱包?

这将会很快实现。这两项提案都接近通过,但考虑到变化的不同性质,时间表看起来有点不同:


EIP-3074 是核心 EIP,这意味着它修改了共识机制,需要实施以太坊硬分叉。这个 EIP 正在讨论,以便在今年某个时候在合并之后包含在上海分叉中。不过,就实现而言,节点开发人员操作它相对简单。


相比之下,实施 ERC-4337 需要比 3074 更多的代码,但开发不会受到合并的影响,因为它不需要实施以太坊分叉。Nethermind 已经支持它,很快将出现在 Go-Ethereum 客户端中,并且在 Goerli 测试网中有效的实现。还有正在进行的工作来分叉其他项目,如 Metamask 以支持它,并与 L2s 积极对话以采用它。


提出的两种解决方案是多年实验的结果,旨在改善以太坊用户的体验。我们嘲笑必须依靠一张纸来访问区块链想法的日子已经很近了。账户抽象是向主流以太坊迈出的一大步,它指日可待。



0

免责声明:文章中的所有内容仅代表作者的观点,与本平台无关。用户不应以本文作为投资决策的参考。

PoolX:锁仓获得新代币空投
不要错过热门新币,且APR 高达 10%+
立即参与!