EIP-4337账户抽象钱包方案能否开辟钱包新时代?_比特币:NFT

作者:@菠菜菠菜

钱包作为进入加密世界的入口以及通行证在整个加密行业中有着不可替代的地位,使用钱包也是每一个想进入加密世界的人不可避免的一环,钱包的功能也从最初的纯记账功能演化至如今的多链多场景使用功能。但目前钱包的使用门槛对于新用户来说学习成本过高,这道门槛将许多想进入加密世界的人拒之门外,而钱包门槛的降低才可以为整个加密世界带来更多的新鲜血液以及生态的爆发,随着 EIP-4337 账户抽象提案的到来,账户抽象钱包带来的降低门槛是否会让钱包进入下一个时代引爆加密世界的用户爆发潮?

加密世界的知识门槛较高,人们普遍缺乏对区块链以及钱包知识的认知,钱包现阶段使用体验复杂,存在着许多因素阻碍着新用户的加入

现阶段小白用户使用钱包时会遇到一些痛点:使用钱包必须先有 Gas 费、需要寻找加密资产购买渠道、眼花缭乱的主网选择以及钱包安全问题

以太坊上的钱包存在两种不同类型的账户即 EOA 外部拥有账户(Externally Owned Accounts)和 CA 合约账户(Contract Account),EOA 外部拥有账户类型的钱包指由私钥以及公钥的密钥对控制的钱包,不具备可编程功能。CA 合约账户类型的钱包指以智能合约形式存在的钱包,合约账户类型的钱包本身不是由私钥控制也不存在私钥,而是通过编写代码实现各种功能,但不能主动发起交易

两种钱包账户类型各有利弊以及局限性,EOA 外部拥有账户只能按照以太坊规定的生成密钥对的方法来生成,不具备可编程性,需要拥有 Gas 费才可以操作,私钥丢失就无法找回,但相比 CA 合约账户类型而言,虽然 CA 合约账户类型可以自定义逻辑来实现更多功能的可能性,但是 CA 合约账户类型无法主动发起交易需要由 EOA 外部拥有账户来进行调用,并且生成 CA 合约账户类型的钱包需要额外的成本,这两种钱包账户类型目前都无法解决钱包使用体验复杂的问题

账户抽象(Account Abstraction)是以太坊上一种待实现的钱包技术方案,其最终愿景是让AA账户抽象钱包结合 EOA 外部拥有账户和 CA 合约账户两种账户类型的特征,使其合二为一替代 EOA 来作为主账户存在,除了拥有 CA 的可编程性外还可以摆脱 EOA 的依赖主动发起交易

EIP-4337 提案将原本以太坊钱包交易流程中写死在共识层中的【验证交易机制】抽离出来交给 EIP-4337 的新机制处理,新机制的出现使得账户抽象钱包实现了签名方式的可自定义,并且带来了更多应用场景

实现了账户抽象的钱包应用可以让用户无需拥有 EOA 也可以使用特定的签名方式发起交易来作为主账户使用,使得账户抽象钱包的所有权以及签名权解耦,账户抽象钱包的 EOA 所有者账户也仅仅是作为所有者存在,不影响实际账户抽象钱包的使用

Linea负责人:以太坊EIP-4844有望将Rollup成本削减逾90%:9月9日消息,Consensys的zkEVM Linea负责人Nicolas Liochon在韩国区块链周期间接受采访时表示,proto-danksharding(也被称为以太坊改进提案EIP-4844)有可能将Rollup成本削减逾90%。

Liochon解释说,Linea上交易成本仅相当于以太坊L1上成本的1/15,但Rollup成本仍较高。EIP-4844引入可以发送并附加到以太坊区块的数据块,其中存储的数据无法被以太坊虚拟机(EVM)访问,并设置为在指定的时间段后删除。这一创新有望大幅降低交易成本,解决数据可用性的核心问题,这一问题占到Rollup成本的95%。Liochon强调,Linea的Prover负责链下计算、验证、捆绑以及生成组合交易的加密证明,这些仅占总成本的20%。

此外,Linea希望成为适用于以太坊生态系统中各种DApp和解决方案的多功能zkRollup,以满足DeFi、游戏和社交应用的需求。[2023/9/9 13:28:48]

EIP-4337 之所以能被以太坊选择为最终方案,首先是因为 EIP-4337 不需要进行共识协议层的修改就可以实现账户抽象,这就避免了不亚于类似从 POW 工作量证明机制转换至 POS 权益证明机制这种庞大的共识层修改

在 EIP-4337 中账户抽象钱包将【签名验证机制】交给了入口点合约来进行,这就使得账户抽象钱包可以使用任意签名形式的签名机制,钱包开发者可以选择相应场景的签名形式去开发钱包产品

目前的账户抽象钱包更像是一种智能合约钱包的新标准,还无法摆脱对于需要 EOA 作为钱包拥有者的依赖。并且目前账户抽象提案仍存在一些不足以及风险:智能合约风险、更高的 GAS、技术实现问题

文章速览:

01/ 现阶段小白用户使用钱包的痛点是什么?

02/ 以太坊现有的钱包类型有哪些?

03/ 账户抽象是什么?EIP-4337账户抽象有哪些优点?

04/ 为什么以太坊选择了EIP-4337账户抽象提案?

05/ EIP-4337账户抽象钱包如何运作?与其他钱包账户类型有什么不同?

06/ EIP-4337账户抽象存在着哪些不足和风险?

现阶段小白用户

使用钱包的痛点是什么?

由于加密世界的知识门槛较高,人们普遍缺乏对区块链以及钱包知识的认知,钱包现阶段使用体验复杂,并存在着许多因素阻碍着新用户的加入。

痛点一:使用钱包必须先有 Gas 费

当一个小白用户满怀期待想体验加密世界并下载了钱包准备大干一番的时候,小白惊奇的发现钱包居然不能使用,因为钱包里面没有公链原生通证(如以太坊的ETH)作为 Gas 费,钱包无法进行任何操作,因为钱包的每一次链上操作都需要矿工来打包操作并支付 Gas 费给矿工作为辛苦费,这时小白就要开始寻找购买加密资产的渠道,而许多钱包产品并没有提供出入金渠道,大多数小白的选择可能就会是中心化交易所。

以太坊核心开发者共识会议:将为 Deneb 升级纳入与测试 EIP-4788、EIP-6987:5月7日消息,Galaxy 研究副总裁 Christine Kim 发文总结第 108 次以太坊核心开发者共识会议。其中,开发者同意考虑将 EIP-4788、EIP-6987 纳入 Deneb 进行测试。EIP-4788 将启用执行层上的共识层状态证明,以通过智能合约进行无信任验证。此前 PR #3175 正处在格式化为 EIP 的过程中,将改为 EIP-6987,即出于安全考虑,防止罚没(slashed)验证节点被选为区块提议者。开发者讨论了在 Deneb 规范中引入一个额外的变量与常量,以允许执行层具有更大的弹性,以独立于共识层调整每个区块的最大 blob 交易数。以太坊核心开发者 Tim Beiko 提醒共识层客户端团队,通过 EIP-4844 引入的新 SSZ 类型应在多大程度上与即将到来的 SSZ 升级兼容或针对当前 RLP 标准进行优化,仍然不确定。Ryan 表示,目前在 EIP-4844 中使用「flat hash」的 SSZ 类型是两头吃亏的,因为它没有为 RLP 格式化,但也没有利用完整的 SSZ 序列化的优势。开发者将在下周的 ACDE 电话会议上继续讨论这一问题。此外,信标链证明子网(attnet)的改造已于 5 月 4 日推出。开发者还在信标链 API Github 存储库上讨论了 PR #317。

考虑到最近的 MEV-Boost 漏洞攻击,中继现在在通过 gossip 上广播前会验证区块内容。该功能需要 Lighthouse 与 Prysm 客户端的自定义分叉。Lighthouse 客户端开发者 Michael Sproul 提出了一个标准查询参数,用于在所有共识层客户端中启用相同的功能。Prysm 客户端开发者 Terence Tsao 表示,在某些方面引入次功能会增加对 MEV-Boost 的依赖性,MEV-Boost 是一种用于在以太坊上赚取 MEV 的临时软件,应该弃用它以支持 PBS。[2023/5/7 14:48:23]

痛点二:加密资产购买渠道以及眼花缭乱的主网选择

当小白用户想购入加密资产时,他们可能会选择有出入金渠道的钱包产品、中心化交易所、场外交易等渠道购入加密资产,但对于选择中心化交易所和场外交易渠道的小白用户来说,在中心化交易所购入资产后想要转入钱包中的话小白用户又会被选择转账的各种各样的主网给搞晕了,学会选择主网就需要一定的学习成本,稍不小心转错网络处理起来极其繁琐,如果是场外交易的话则十分具有风险,小白用户极容易成为子的对象。

ETH基金会社区经理:以太坊改进过程EIP-1正在更新:帮助协调推动以太坊核心开发者会议(AllCoreDevs,ACD)的以太坊基金会社区经理Hudson Jameson发推称,新的以太坊改进过程EIP-1正在更新。EIP-1是规定EIP的过程和规则的文件,最大的变化是硬分叉进程与EIP的分离(它们过去是链接的)。[2020/12/23 16:13:31]

痛点三:钱包安全问题

对于小白用户来说,即便好不容易搞定了 Gas 费可以使用钱包进行交互了,但整个加密世界对于小白来说就是一片黑暗森林。小白用户需要学习关于钱包的密码学知识如私钥公钥等,还需要理解私钥是什么并思考怎么确保私钥的安全以及防范加密黑暗森林中的局,这些对于小白用户来说学习成本大且很容易上当受,最重要的是私钥一旦丢失或忘记就无法找回,不能像 Web2 应用找回密码那样重新找回,对于 Web2 用户来说这是他们很难习惯的。

以太坊现有的钱包类型有哪些?

目前以太坊上的钱包存在两种不同类型的账户即 EOA 外部拥有账户(Externally Owned Accounts)和 CA 合约账户(Contract Account)。

EOA外部拥有账户(Externally Owned Accounts)

EOA 外部拥有账户类型的钱包指由私钥以及公钥的密钥对控制的钱包,外部拥有钱包的作用基本只有接收、持有、发送 Token 和与智能合约进行交互的功能,不具备可编程功能,并且执行每一笔交易都需要支付 Gas 费。创建一个外部拥有账户类型的钱包是无需成本的,但只能通过生成私钥的方式创建。

CA 合约账户(Contract Account)

CA 合约账户类型的钱包指以智能合约形式存在的钱包,合约账户类型的钱包本身不是由私钥控制也不存在私钥,而是通过编写代码实现各种功能,如 DeFi 协议、多签钱包、保险柜、水龙头等等功能,常见的用处有多签钱包,即需要多个外部拥有账户钱包授权才可以进行交易的钱包,通常用于企业钱包管理。创建一个合约账户钱包是需要消耗Gas费创建的,合约账户钱包本身不能主动发起交易,而是需要外部拥有账户钱包调用并支付 Gas 费而被动发起交易。

这两种钱包账户类型各有利弊以及局限性,EOA 外部拥有账户只能按照以太坊规定的生成密钥对的方法来生成,不具备可编程性,需要拥有 Gas 费才可以操作,私钥丢失就无法找回,但相比 CA 合约账户类型而言,虽然 CA 合约账户类型可以自定义逻辑来实现更多功能的可能性,但是 CA 合约账户类型无法主动发起交易需要由 EOA 外部拥有账户来进行调用,并且生成 CA 合约账户类型的钱包需要额外的成本,这两种钱包账户类型目前都无法解决钱包使用体验复杂的问题。

V神:以太坊EIP-2929提案或将打破部分已有智能合约:为了减小以太坊飙升的交易费,以太坊创始人Vitalik Buterin?于2日发布了以太坊改进提案EIP-2929,他建议将一些合约收费提高三倍,受影响的合约包括更新以太坊状态的合约,以及一些应用程序。但是这个重新定价的提议可能会打破一些已经在以太坊上运行的智能合约,批准这一提议也需要以太坊社区的一致同意,这一过程可能需要数周或数月的时间。(Coindesk)[2020/9/4]

账户抽象是什么?

EIP-4337账户抽象有哪些优点?

账户抽象(Account Abstraction)是以太坊上一种待实现的钱包技术方案,其最终愿景是让 AA 账户抽象钱包结合 EOA 外部拥有账户和 CA 合约账户两种账户类型的特征,使其合二为一替代 EOA 来作为主账户存在,除了拥有 CA 的可编程性外还可以摆脱 EOA 的依赖主动发起交易。

本处讨论的账户抽象(Account Abstraction)指由  Vitalik 提出的以太坊 EIP-4337 提案,该提案将原本以太坊钱包交易流程中写死在共识层中的【验证交易机制】抽离出来交给 EIP-4337 的新机制处理,新机制的出现使得账户抽象钱包实现了签名方式的可自定义,并且带来了更多应用场景如:代付 Gas、聚合签名、隐私保护等。

EIP-4337 提案实现后的账户抽象钱包可以不局限于 EOA 外部拥有账户类型钱包使用的以太坊椭圆曲线数字签名算法(ECDSA)密钥对的签名方式,钱包应用的开发者们可以将任意类型的签名方案应用在账户抽象钱包应用上使得用户可以使用其他签名方式发起交易,从而可以降低用户的使用门槛。

实现了账户抽象的钱包应用可以让用户无需拥有 EOA 也可以使用特定的签名方式发起交易来作为主账户使用,使得账户抽象钱包的所有权以及签名权解耦,账户抽象钱包的 EOA 所有者账户也仅仅是作为所有者存在,不影响实际账户抽象钱包的使用。而所有权和签名权的解耦使得钱包产品可以为用户提供社交恢复等手段,人们即便丢失了私钥也不用担心无法找回了。

由于账户抽象钱包新机制带来的可扩展性,先有 Gas 才能使用钱包的痛点也可以得到解决,账户抽象钱包不仅可以允许第三方代付 Gas,还可以实现除原生代币以外的资产支付 Gas 费,这将极大的降低小白用户对于 Gas 费的使用门槛,在不久的将来似乎可以预见,账户抽象带来的更低门槛以及更多的自定义功能可能会引领钱包的一个新时代。

为什么以太坊选择了

EIP-4337 账户抽象提案?

Filecoin研发工程师:在网络测试中,EIP 1559代码“似乎正在发挥作用”:Filecoin研发工程师Jeromy Johnson表示,在正在进行的网络测试中,EIP 1559代码“似乎正在发挥作用”。他补充称,“基本费(base fee)”(即新的网络费用体系结构)曾出现过几次高峰,但消息进入链的时间几乎没有延迟。他个人希望看到EIP 1559在更大规模的网络(如Ropsten)上实现,以查看更大的块是否会出现问题。

此前消息,Jeromy Johnson曾表示,Filecoin的下一次测试网重置后将会实现以太坊改进提案EIP1559的功能,这将会显著增强区块空间拍卖效率,并期待看到在真实压力下的性能如何。据悉,V神曾表示,EIP1559提案可短期缓解gas费价格问题,但真正的解决方案是提高以太坊的可扩展性。(Cointelegraph)[2020/8/27]

账户抽象的讨论自以太坊上线之时讨论就没有停止过,从最早的 EIP-101 到 EIP-3074 再到现在最新的EIP-4337,账户抽象的方案已经迭代过好几个版本,但由于大部分方案不成熟以及涉及到共识协议层的修改太复杂最终被搁置了。

从2015年至今经过了漫长的讨论和迭代后,最终以太坊在 EIP-3074 和 EIP-4337 这两个方案之间进行抉择,如果说 EIP-4337 是让 CA 智能合约账户钱包可以像 EOA 那样使用,那么 EIP-3074 就是让 EOA 外部拥有账户钱包可以拥有智能合约账户的可编程功能,最终随着以太坊创始人 Vitalik 公布的以太坊最新路线图中,EIP-4337 被正式纳入在 The Splurge(狂欢)阶段中实施,这也让 EIP-4337 成为了账户抽象的最终方案。

EIP-4337 之所以能被以太坊选择为最终方案,首先是因为 EIP-4337 不需要进行共识协议层的修改就可以实现账户抽象,这就避免了不亚于类似从 POW 工作量证明机制转换至 POS 权益证明机制这种庞大的共识层修改,而 EIP-3074 涉及到共识层的改动,一旦出问题就需要使用硬分叉(hard fork)来解决问题,其次由于 EIP-3074 是让 EOA 外部拥有账户拥有智能合约账户的特性,在签名机制上依旧使用固定的 ECDSA 签名,无法像 EIP-4337 那样可以使用任意签名方式,所以相比于 EIP-3074 来说,EIP-4337 似乎在钱包门槛的降低上更有优势。

图片来源:ethereum.cn翻译

EIP-4337 账户抽象钱包如何运作?

与其他钱包账户类型有什么不同?

账户抽象相比于之前的账户类型引入了一些新角色以及机制:

钱包合约 (Wallet Contract):账户抽象后的钱包智能合约,可以实现自定义的钱包逻辑。

入口点合约 (Entry Point Contract):与钱包合约进行沟通协调并负责处理验证和执行用户操作的合约。

用户操作(UserOperations,uo):用户发起的新链下交易形式,区别于以前的【交易事务Transaction, tx】。

捆绑者(Bundler):负责将用户操作打包并传递给入口点合约的链下计算节点。

用户操作内存池(UserOperation Mempool):一个专门用于堆积待执行用户操作的内存池,独立于交易事务内存池。

代付人(Paymaster):可选择的第三方支付 Gas 的代付人合约账户。

如果你不明白这些新名词是什么,接下来我会用简化版的流程图来进行展示,首先我们先了解 EOA 外部拥有账户类型的钱包的交易机制,EOA 外部拥有钱包需要签署一个 ECDSA 签名才可以发起交易。

图片来源:https://medium.com/nethermind-eth/ethereum-wallets-today-and-tomorrow-eip-3074-vs-erc-4337-a7732b81efc8

从图中可以看到 EOA 账户类型的钱包发起一个交易的步骤为:

用户使用私钥对交易信息进行 ECDSA 签名产生一个带有签名的交易事务(Transaction, tx)

带有签名的交易事务会被发送到处理待执行事务的内存池中等待处理

矿工会在交易事务内存池中处理事务并验证有效性

当验证有效性为有效时,交易事务会被纳入区块中,反正则废弃交易事务

由于 CA 合约账户类型没有统一的交易流程标准,下图为某种依赖 Relayer 的智能合约钱包的交易流程,我们可以看到 CA 合约类型账户的需要依靠一个 EOA 外部拥有账户类型的钱包签署 ECDSA 签名来执行交易,并且 Relayer 这个角色可能会伴随着中心化的风险。

从图中可以看到某种 CA 合约账户类型的钱包发起一个交易的步骤为:

用户使用私钥对交易信息进行任意形式的签名产生一个带有签名的交易信息(signed message)

带有签名的交易信息会被发送给负责传达消息的节点 Relayer

Relayer 使用私钥对带有用户签名的交易信息进行 ECDSA 签名形成一个交易事务

Relayer 将包含用户交易信息的交易事务通过 Relayer 的 EOA 外部拥有账户钱包发送给用户的钱包智能合约进行执行

用户的智能合约钱包执行操作并通过矿工验证后上链纳入区块

接下来我们再来看 EIP-4337 账户抽象后的钱包交易机制

从图中可以看到账户抽象后发起一个交易的步骤为:

用户发起一个钱包用户操作,使用任意形式的私钥对用户操作进行签名产生一个带有签名的用户操作(UserOperations,uo)

带有签名的用户操作会被发送到待执行用户操作内存池等待处理

Bundler 将用户操作内存池中的用户操作进行打包处理成一个事务并提交给入口点合约

入口点合约处理所有用户操作:验证钱包是否存在-要求钱包验证用户操作-将用户操作发送至智能合约钱包进行执行

智能合约钱包将用户操作执行并纳入区块

通过对比下来我们可以发现,EOA 外部拥有账户发起交易需要依靠以太坊固定的 ECDSA 签名算法来进行签名,而 CA 合约账户最终也需要依靠 EOA 外部拥有账户的 ECDSA 签名算法来签署交易,而在 EIP-4337 中账户抽象钱包将【签名验证机制】交给了入口点合约来进行,这就使得账户抽象钱包可以使用任意签名形式的签名机制,钱包开发者可以选择相应场景的签名形式去开发钱包产品,用户可以直接通过钱包应用特定的签名方式操控账户抽象钱包进行操作,而这种签名方式可以是 Web2 用户也能轻松使用的方式或是专用场景下的定制方式。

并且由于任何矿工都可以充当 Bundler 这个角色,这就避免了 Bundler 这个角色的中心化风险,同时 Bundler 通过捆绑交易还可以预防 Flashbot 监听内存池进行 MEV 套利,并且这些新机制的出现还带来了更多的应用场景想象空间,例如第三方代付 Gas 费的 Paymaster。

从图中可以看到,交易事务(tx)与用户操作(uo)是两个独立的内存池,由于账户抽象的入口点合约的存在,代付人(Paymaster)合约便可以像乐高积木一样与入口点合约组合在一起,当入口点合约对用户操作(uo)进行验证之前先对代付人进行验证确认:是否同意代付?是否有足够支付 Gas 费的 ETH 进行质押?

除了代付人完全补贴之外,如果用户的账户合约中只有类似于 USDT、USDC 等非 Gas 费代币,用户也可以通过将 Gas 等值的其他代币转给代付人合约以达到无 ETH 支付 Gas 费的作用。

除了代付 Gas 之外,入口点合约还可以结合聚合签名验证合约实现聚合签名功能,通过多人签名的方式来控制钱包。

以上案例我们可以看到 EIP-4337 方案中的入口点合约模块化的可组合性带来的更多应用场景想象空间,似乎账户抽象钱包可以给整个加密世界带来非常多的好处,但现实真的会如此美好吗?

EIP-4337 账户抽象

存在着哪些不足和风险?

虽然账户抽象的愿景十分美好,但现实却往往却很骨感,目前的账户抽象钱包更像是一种智能合约钱包的新标准,还无法摆脱对于需要EOA作为钱包拥有者的依赖。并且我们都明白一个道理:越是复杂的事物越容易出问题,目前的账户抽象提案仍存在一些不足以及风险:

智能合约安全问题

智能合约安全问题一直是困扰加密世界的一个难题,我们甚至可以看到许多通过了“智能合约审计”的合约往往也会出现安全漏洞,而每次出现合约安全问题往往都会伴随着巨大的财产损失,而对于 EIP-4337 账户抽象方案来说,账户抽象钱包的功能模块化堆积以及新机制的加入就会使得其代码执行逻辑更加复杂,而往往更复杂的代码执行逻辑可能就会伴随着潜在的安全风险。由于账户抽象钱包和入口点合约本身都是智能合约,一旦入口点合约或者钱包合约出现问题则有可能会酿成一场损失惨重的黑客事件,人们对使用账户抽象钱包的信任也会大打折扣。

更高的 Gas 费

除了潜在的合约安全风险之外,账户抽象钱包使得用户需要支付的 Gas 费更高了,因为账户抽象钱包相比于 EOA 外部拥有账户和 CA 合约账户来说处理交易的操作步骤变多了以及处理逻辑更复杂了,需要处理的操作变多也就意味着需要的 Gas 费更多,虽然 Vitalik 也提出可以通过 Layer2 来处理账户抽象的数据来降低 Gas 消耗的解决方案,但这也需要一段漫长的时间。

技术实现问题

目前距离 EIP-4337 的落地还有很长的一段时间要走,许多理论上可以实现的技术往往在实践中会困难重重遇到许多问题如:兼容问题,复杂的节点验证过程,如何防止 Bundler 作恶、技术逻辑无法实现等等,要解决这些技术问题需要进行长时间的尝试和讨论,这也是为什么 EIP-4337 被放在了以太坊升级的第六个阶段 Splurge(狂欢)中的原因。

道阻且长,加密世界需要更低门槛且安全的钱包来吸引更多新用户以突破用户量的瓶颈,相信随着账户抽象的实现会给加密世界带来一个全新的想象空间,甚至可能在不久的将来会有一个意想不到更好的替代方案来取代账户抽象,加密行业迭代更新的速度远超我们想象,这也是这个行业的魅力所在。

金色财经 善欧巴

金色早8点

Arcane Labs

MarsBit

Odaily星球日报

欧科云链

深潮TechFlow

BTCStudy

澎湃新闻

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:31ms0-7:679ms