EIP-4337 | 抽象帐户解析
事件简介
近日以太坊基金会安全研究员Yoav Weiss 宣布新的以太坊帐户抽象提案ERC-4337 的核心合约已经通过了Open Zeppelin 的审计,之后将在每个以太坊虚拟机(EVM)兼容网路上提供,之后使用此技术的新用户将不再需要被复杂的助记词或设置钱包的技术过程所困扰,即可进入去中心化的加密世界。
EIP-4337 介绍
此协议的目标是在不改变以太坊共识的情况下让用户使用包含任意验证逻辑的智能合约钱包而不是外部钱包( EOA )做为他们的主账户,以完全消除用户对EOA 的任何需求。
对于用户来说使用此协议的抽象帐户( AA )可以完全满足原本EOA 的使用需求,并且新增了很多使用智能合约帐户( CA )才有的功能,像是助记词遗失的补救方式、不需要帐户内有gas fee 也能执行交易..等。
此协议的运作原理如下图:
用户送出打包好的交易资讯到mempool 中,再由bundler (类似矿工的角色)挑选有利可图的交易捆绑在一起,统一由bundler 执行交易到区块链上。
用户送出交易的形式
用户送出的交易资讯组成如下:
Bundler 如何执行
首先bundler 会从mempool 中挑选有利可图的UserOperation并开始进行验证。Bundler 会先在本地端呼叫simulateValidation()来验证交易,此涵式为必定会revert 的涵式,如果涵式revert 并回报ValidationResult则代表验证成功,如果回报其他错误则代表失败。验证失败的UserOperation则会被bundler丢弃。
接着再把通过验证的UserOperation捆绑起来并执行EntryPoint中的handleOP() 。在handleOP()中会执行两个回圈,第一个是验证回圈,此回圈会把送入的所有UserOperation再执行验证一次,如果有用户还为部署自己的钱包合约,则会在此步骤部署,另外付费也是在这步骤完成。第二个回圈为执行回圈,为实际的去执行用户想要做的事,像是在DEX 上交易或是在NFT 平台买卖NFT ..等等。
Paymaster
此协议的另一个特行为可以运用第三方支付gas fee ,也就是说用户不一定非得要先转一些原生代币至钱包里才可以操作了。
用户可以选择用链下的方式,像是信用卡、现金等方式付费给paymaster,再由paymaster 代为支付gas fee 。
用户也可选择用ERC-20 代币来支付费用,支付的时机在执行完主要用户要做的事情后,paymaster 会呼叫postOp()来执行ERC-20 中的transferFrom()来调取钱包内的代币。
社交恢复
社交恢复的功能是继承了UpgradeableACL来实现,用户可透过其中的grantGuardian()和revokeGuardian()来指定或撤销自己亲友帮忙恢复自己钱包的权限。当用户失去私钥时,亲友就可以透过呼叫transferOwner()来协助用户恢复钱包。
结论
一直以来区块链无法广泛被大众所接受其中几个主要原因就是担心失去助记词和支付gas fee 很麻烦,而这个新协议有望可以解决这些困扰,提高大众对区块链的使用度。
不过由于此协议的验证是可以依照需求去客制化调整的,越复杂的验证越可能出现漏洞。然而智能合约部署后,无法更改其中内容,所以合约部署前应对智能合约进行多次压力测试及安全审计,避免造成严重的资金损失!
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。