帐户抽象:从混乱到清晰 更好用户体验的实用指南

时间:2024-06-27  分类:电子


引言


尽管区块链技术已经存在了一段时间,并且市场在过去十年中急剧增长,但解决当前高摩擦的入门流程是将原生加密交易转变为主流理念的市场扩张的关键。幸运的是,账户抽象等新范式可以通过简化临时用户的区块链技术的入门和使用流程来鼓励加密货币的大规模采用。 


ERC-4337账户抽象实现针对EVM开发人员,允许创建非托管钱包作为智能合约,解锁钱包轻松恢复、无签名交易和团队钱包等功能。该标准的关键创新在于能够独立创建智能账户,无需单独的外部拥有账户(EOA)或合约账户即可进行交易。智能帐户使用UserOperations,它代表用户执行的操作。这些用户操作通过单个入口点进行捆绑、验证和执行,从而允许在管理帐户和资金方面进行各种自定义。


Safe、NEARWallet、Argent和Blocto等创新者已经在利用这种新的智能合约功能,ERC-4337是标准化的一个终点,但仍有工作要做。该领域的主要参与者设计了适合特定需求和不同区块链生态系统的账户抽象变体,从而提供了大量可供选择的SDK和库。


帐户抽象用例 


在进入技术方面之前,让我们先概述一下最有趣的用例,在这些用例中,帐户抽象带来了显著的改进,所有这些都有助于改善web3的入门体验,尤其是对于非本地用户。


1.钱包恢复


加密行业最大的难题之一是安全性,用户要么必须依赖托管人,要么必须保护自己的密钥。在智能帐户领域,安全性与传统模型不同,避免了对助记词或私钥的依赖。智能账户所有者可以指定多个实体(设备、个人或第三方服务)作为钱包监护人。 


这一创新功能为面临凭证丢失的用户确保了强大的安全网,监护人能够签署交易以分配新的访问凭证。重要的是,此恢复过程优先考虑用户对资产的控制和所有权,在安全性和可访问性之间取得微妙的平衡。这个复杂的框架预示着数字资产管理的新时代,弹性和用户控制力大大增强。


2.批量交易


在去中心化交易所中,代币交换通常涉及两个单独的交易,每个交易都需要用户通过私钥签名进行批准,而复杂的Web3交易可能需要三个或更多批准。智能账户引入了一种突破性的解决方案,允许用户批量处理多个交易,降低用户的成本,并以我们在web2应用程序中期望的方式简化DeFi交易。此特定用例的一个很好的例子是AmbireWallet,它利用AA为其用户启用批处理交易。尽管与使用外部拥有账户(EOA)相比,执行一项操作的成本较高,但当进行多笔交易时,每笔交易的价格会大幅降低。


3.赞助用户交易


账户抽象还引入了Paymasters的概念,这是专门为赞助交易的Gas费用而设计的智能合约。这为dApp带来了新的定制水平,它们现在可以接受用户钱包中的任何代币作为交易费、可以使用银行卡进行法币支付,甚至补贴全部金额,从而为用户创造无缝体验,改善用户体验和消除不必要的摩擦点。一个很好的例子是来自ArcanaNetwork的SendIt,这是一个小型协议,允许通过电子邮件向任何人发送加密货币,即使他们没有钱包,并利用ERC4337来赞助交易费用并为他们创建一个新的智能合约帐户。这个特定用例的另一个重要用途是Visa的提议,即允许用户使用法币卡支付链上Gas费,如下图所示。 


通过账户抽象重新思考数字交易


通过账户抽象重新思考数字交易


4.自动化交易


与EOA不同,dApp上的每笔交易都需要手动启动或签名,智能账户引入了自动化的可能性。通过智能账户,用户可以设置各种参数,包括对特定代币的访问、支出限制、持续时间、Gas限制以及特定操作的预定义触发器。举例来说,用户希望允许DEX在接下来的一小时内每15分钟代表其执行一次交换:签名一次,交易将在之后自动发生。这种执行可以在CowSwap上看到,CowSwap是一个提供TWAP交易的去中心化交易所,将所需的用户操作分散到在一段时间内执行的部分。智能账户自动化的潜力几乎是无限的,为用户提供超出传统EOA限制的定制和效率水平。


技术组件


利用该技术的方法有多种,可以通过启动你自己的内部组件(图1),也可以使用SDK或库并利用该领域其他参与者维护的现有基础设施。我们列出了各种入门选项,我们将进一步探索使用特定解决方案的用例和优势。 


无论你在利用帐户抽象时选择哪种实现方法,了解其关键要素都很重要。UserOperations是类似交易的对象,代表用户对智能合约账户的交易意图。与传统交易不同,UserOperations引入了额外的字段,如EntryPoint、Bundler、Paymaster和Aggregator,并定向到单独的内存池。值得注意的是,UserOperations是基于意图的,允许用户包含以结果为中心的交易的元数据,这偏离了传统输入的特殊性。


下面的关键组件称为Bundler,是一种特殊类型的以太坊节点,在支持UserOperations方面发挥着关键作用。用户操作被定向到Bundler网络,该网络主动监视替代内存池。这些Bundler将多个UserOperations合并为一个交易,随后代表用户将它们打包并提交到区块链。作为这项服务的回报,他们获得补偿。它们的意义在于抽象了web3中每个参与者拥有自己的外部拥有账户(EOA)的必要性,这是实现ERC-4337功能的关键组成部分。


然后,UserOperations被发送到EntryPointContract,这是一个singleton智能合约,用于执行UserOperations的验证和执行。验证过程涉及评估钱包是否拥有足够的资金来支付潜在的最大Gas使用量,该最大Gas使用量由UserOp中的Gas字段决定。缺乏足够资金的交易将被拒绝。为了执行,智能合约执行交易,从智能合约账户(SCA)中扣除资金,用适当的原生代币金额偿还Bundler的Gas费用。


在某些情况下,开发人员希望代表用户赞助gas费,或者允许他们使用除原生代币之外的各种代币来支付这些费用。为此,他们可以利用名为Paymaster的合约,该合约旨在管理gas支付政策。这有效地消除了用户拥有原生区块链代币与区块链交互的要求。


不同AA工具的演练


1.无SDK解决方案


如上所述,利用帐户抽象功能需要一些关键元素,而其他一些元素仍然是可选的。如果你不想依赖第三方AA解决方案,则可以运行自己的设置并完全控制和托管所涉及的智能合约和流程。对于以太坊,有多种提议的解决方案,其中eth-infinitism在智能账户合约、EntryPoint合约和Paymasters方面拥有最流行的解决方案。除了部署这些合约并正确资助之外,还需要运行一个Bundler,它将接收用户操作并将其重定向到EntryPoint合约。为了帮助开发人员,社区成员开发了解决方案,只需利用简单的npm包即可在Hardhat环境中本地设置帐户抽象。 


由于自行设置所有基础设施所需的繁重工作,大多数人选择依赖各种库和公司,它们提供现成的解决方案,并从开发人员手中抽象出所有复杂性。


2.Pimlico和permissionless.js


-->> 1/2 文章未完,请继续阅读

以上就是帐户抽象:从混乱到清晰 更好用户体验的实用指南的全部内容,望能这篇帐户抽象:从混乱到清晰 更好用户体验的实用指南可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。