本文深入探讨了基于账户抽象(ERC-4337)的智能合约钱包的原理和运作机制。智能合约钱包通过智能合约管理资产,相比于传统的由私钥管理的账户,提供了更多的灵活性与功能。
使用 账户抽象 (ERC-4337) 的智能合约钱包创建了一种通过智能合约管理的钱包,而不是像 EOA 钱包(外部拥有地址)那样由单个私钥管理的钱包。
智能合约钱包的可编程性允许开发范围广泛的新用例。通过降低复杂性而不影响安全性或匿名性,智能合约钱包将帮助促进下一波区块链用户的入场。
想在你的应用程序中添加 嵌入式智能合约钱包 吗?使用我们的企业级嵌入式账户和垂直整合的AA基础设施,以便在没有助记词、手续费或障碍的情况下引导用户。
智能合约钱包 使用智能合约存储和管理数字资产(例如加密货币、NFT等)。智能合约钱包是账户抽象的基础:通过“抽象”账户的控制,统一各种以太坊账户类型为单一类型的过程。
一些使用 ERC-4337 的智能合约钱包示例:
Soul Wallet
Candide
UniPass
Castle
Openfort
两个主要的不使用 ERC-4337 的智能合约钱包是 Safe 和 Argent。
合约账户也称为智能合约,包含管理各方之间信息交换的代码。合约账户在每个 DeFi 协议、NFT 收藏或 ERC-20 代币中都被使用。
所有合约的业务逻辑和状态变量都存储在链上。由于智能合约的状态和代码存储在链上,因此部署它们的外部拥有账户必须支付费用。
注意:在 Web3 编程中,有一种“智能合约工厂”模式,合约可以通过预定义接口部署其他合约。即使在这种情况下,发起交易的也必须是一个 EOA。
智能合约账户与 EOA 账户之间的主要区别在于智能合约账户可以包含逻辑。由于仅 EOA 账户能够发起交易,因此智能合约账户依赖于打包器的 EOA 账户将用户操作打包为单个交易,并在区块链上发布。
根据当前以太坊协议,EOA 是唯一可以发起交易的账户类型,无论是合约调用还是价值转移。即使在合约账户调用另一个合约账户的情况下,交易的发起始终来自外部拥有账户。
以下是合约账户与 EOA 账户的比较:
合约账户与 EOA 账户的比较图。
那么,智能合约钱包如何在无法自行发起交易的情况下执行交易?
由于智能合约钱包不能发起交易,因此必须由 EOA 钱包调用。此过程得到了多个 账户抽象基础设施提供者(例如打包器)和智能合约(例如 EntryPoint)的支持。
在 7分钟内了解 ERC 4337(账户抽象中的 5个角色) - Youtube
智能合约钱包交易的典型流程是:
用户希望执行一个 UserOperation
UserOperations 被发送到一个“替代内存池”
一个具有 EOA 钱包的 打包器 将所有 UserOperations 进行打包并发送到 EntryPoint 合约
EntryPoint 合约验证并执行所有 UserOperations
打包 UserOperations 的 EOA 钱包将由用户的钱包或 Paymaster 偿还其代表用户支出的 ETH
显示如何打包、验证和执行 UserOps 的图表。
虽然从技术角度理解智能合约钱包的工作原理可能很困难,但对于最终用户而言,智能合约钱包相比 EOA 钱包提供了许多改进,例如可编程性和社交恢复等功能。
有关账户抽象中每个组件如何工作的信息,请阅读我们的系列文章“你可以发明账户抽象”,该系列文章由 David Philipson 编写,来自 Alchemy 的账户抽象基础设施工程团队。
- 原文链接: alchemy.com/overviews/ho...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!