本文将详细解析账户抽象的特点,帮助大家更加规范的开发智能合约。
初衷:降低新手的使用钱包门槛、改善用户体验
因为之前的所有提案都需要对以太坊底层协议进行更改,会致使以太坊进行硬分叉,
但 4337 是唯一一个不用更改以太坊协议就可实现账户抽象的提案。
以太坊有两种账号:私钥(EOA)账户、智能合约账户。
大多数人使用的都是私钥账户,它的优点是可以做交易,而智能合约账户不能发起交易。
希望通过账户抽象的技术,赋予智能合约账户更多的权力,比如交易权力。
账户抽象是基于智能合约账户的拓展。
支持任意验证逻辑(例如,Schnorr、BLS、多重签名方案)
自定义在多长时间中可以免签名支付不超过xx金额的
可高度定制化功能,可以基于社交签名找回私钥
批量交易、一键支付
<!--StartFragment-->
<!--EndFragment-->

<!--StartFragment-->
<!--EndFragment-->

一、不要忽视智能合约账户。
二、遵守 EIP-1271。
这个 EIP 定义了一种用智能合约钱包签署授权的方法
<!--StartFragment-->
<!--EndFragment-->

ERC-4337 协议目前已正式部署到以太坊主网上
<!--StartFragment-->
<!--EndFragment-->

ERC-4337 目前所在位置是:Draft
<!--StartFragment-->
<!--EndFragment-->

<!--StartFragment-->
<!--EndFragment-->

用户向Bundler发送UserOperation
如果UserOperation填写了initCode参数,Bundler会触发Wallet Factory来创建有确定地址的新钱包
如果UserOperation填写了paymasterAndData参数,Bundler会收取Paymaster在入口点合约上质押的以太坊来支付gas。如果没有填写paymasterAndData,Bundler会收取智能合约钱包在入口点合约上质押的以太坊来支付gas
Bundler可以选择性地使用签名聚合器
Bundler会使用validateOp、validatePaymasterOp和validateSignatures函数在链下模拟验证UserOperation,确保签名正确且UserOperation有足够的gas
如果链下模拟验证通过,Bundler将使用上述函数在链上验证UserOperation
如果链上验证通过,Bundler将在链上执行UserOperation,无论执行是否成功,都会扣除gas
比特鹰正在招贤纳士
热招岗位:爬虫工程师、大数据开发工程师、后端开发工程师、AI开发工程师、Web3海外运营
投递邮箱:join@biteagle.xyz
参考资料:
介绍ERC-4337的文章——2023-04-12 09:55
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!