“账户抽象”的概念近日在以太坊社区流行了起来。巴黎的以太坊社区会议(EthCC)上,Vitalik提到了账户抽象的重要性,并且分享了账户抽象化带来的一些关键创新以及目前存在的障碍。
账户抽象,听起来也许有些让人摸不着头脑,但是账户抽象有可能彻底改变人们与以太坊的交互方式,而以太坊又是世界上最常用、最重要的区块链平台之一,因此了解该概念十分重要。
什么是账户抽象?
账户抽象允许用户根据自己的需求来定制与以太坊的交互方式。通常,用户会使用外部拥有账户(EOA)或与唯一私钥相关联的合约账户与以太坊进行交互。任何拥有私钥的人都可以不受任何限制地执行任意交易。
有了账户抽象,用户可以更准确对账户进行控制,其中包括要求多签触发交易、启用社交进行恢复,或者对允许用户账户与之交互的智能合约实施限制。
要了解账户抽象的重要一点:它不会改变以太坊区块链的共识层。相反,它通过单独的UserOperation Mempool和本文所述的账户抽象架构,为用户引入了一种与以太坊交互的新方式。
账户抽象的好处
账户抽象不仅仅是技术上的新鲜事物,它更能为以太坊用户带来实实在在的好处:
灵活性:有了账户抽象,用户可以根据自己的需要定制交易规则。这可以实现传统交易无法实现的高级功能和更复杂的安全措施。
易用性:通过第三方开发者或其他方代表用户支付交易费用,账户抽象让以太坊的用户在使用上更加便捷了。
提高安全性:账户抽象可以增强各方面的安全性。其中包括多签控制、账户冻结和恢复、交易限制和白名单创建等。
如果听起来还是有那么一丝“抽象”,那就不妨让我们举例说明账户抽象的作用。
多重签名交易和社交账号恢复
账户抽象的一个引人注目的用例是多重签名交易的使用。目前,大多数终端用户使用的是EOA地址与以太坊进行交互。与EOA地址相关的私钥则很容易造成单点故障。
然而,在不希望出现单点故障这样的高风险情况下,账户抽象可以提供一种解决方案,即用户可将自己的账户设置成在交易批准前需获得多个签名。这就像现在开发人员使用的联合银行账户或多重签名合约一样。这对于需要由多方批准重大交易的用户和组织尤其有效,可大幅提高交易安全性。
传统EOA设置的另一个风险是,如果用户丢失了私钥,就再也无法访问EOA从而永远没办法回复私钥。而账户抽象可以实现通过社媒软件等进行恢复,从而降低这种风险。
Vitalik Buterin对“社交账号恢复”系统的描述如下:
有一个单一“签名密钥”用于批准交易。有一组至少三个(或更多)的“监护人”。其中大多数人可以合作更改账户的签名密钥。通常,用户可以使用“签名密钥“,就像使用标准EOA账户私人密钥。
但是,如果签名密钥丢失,用户可以联系到“监护人”,要求他们签署一项交易,以更改钱包合约中登记的签名密钥。如果大多数监护人签署了交易,签名密钥就可以更改。与Web2应用程序中的「忘记密码」功能一样,“社交账号恢复”功能大大降低了用户账号被永久锁住的风险。
智能合约互动
账户抽象可以改变用户与智能合约的交互方式。在传统的以太坊账户中,用户签署的任何交易都会发生,没有办法进行限制。比如,用户在不知情的情况下与恶意智能合约交互并造成了资产损失的例子数不胜数。而有了账户合约,用户就可以用自己想要的逻辑来约束并控制与智能合约的交互方式。
例如,账户合约可以维护一个白名单,列出经过审计并可以安全与用户交互的合约,从而降低用户在不知情的情况下与恶意合约交互的风险。此外,账户合约还能批量处理交易和会话密钥。用户只需签署一次,就能执行多个交易,而不必像传统的EOA设置那样,对每个交易都进行单独签署。以上也将为DApps带来更广的受众和更流畅的用户体验。
增强安全措施
账户抽象还可以让用户在账户中加入更高级的安全措施。比如像使用信用卡一样,一旦发现可疑活动则立刻冻结账户。此外,用户还可以为自己的账户设置消费限额,以防止在单笔交易中发送过多资金。更有意思的是,就像“小额免密支付”一样,账户抽象可以采用对金额进行分级的方法,使普通交易立即执行,而必须经过多重签名批准才可以进行大额操作。
账户抽象可以为最终用户提供颗粒度更细腻的控制,这也可以更加有效防止黑客攻击,并对未经授权的交易提供额外保护。
Gas支付灵活性
交易费或Gas是以太坊生态系统的基础。目前,用户必须用ETH支付Gas费用。但是,账户抽象可以让用户用其他代币支付Gas费。这对于持有大量特定 ERC-20代币并希望用它与特定DApp或平台进行交互的用户来说是个重大利好,因为他们可以就此省略先获取原生代币这个步骤来支付Gas费。
此外,Gas费用的支付灵活性还表现在可以使其他DApp也无障碍支持用户交易。想象一下,如果用户可以在不支付任何交易费用的情况下与DApp交互,或者通过第三方支付交易Gas费(或许有一天微信直接付款了也不是没有这样的可能)。而这个举措可能会改变 DApp的整体采用,这也或将成为一种有效的消除新用户入驻主要障碍的手段。
账户抽象如何运作?
账户抽象有许多关键组成部分,其中包括:
-
用户操作
-
打包者
-
入口点
-
账户合约
-
付款人
用户操作(UserOperation):是一个ABI编码结构。它描述了用户执行的交易。比如用户发起⼀个“Useroperation”,并包含它想要执行的交易。
打包者(Bundler ):是一个区块生成器,它从独立的UserOperation内存池中捆绑多个UserOperation,并将捆绑包发送给EntryPoint合约。
入口点(EntryPoint):是以太坊上的一个智能合约,负责处理这些捆绑包的验证和执行。
账户合约(Account Contract):是用户的智能合约钱包,代表用户执行签名验证和处理交易。账户工厂合约创建账户合约。
付款者(Paymaster):是一个可选的组件结构,它可以为用户的账户合约提供Gas费,因此没有 ETH支付Gas费的用户仍然可以与以太坊进行交互。
Vitalik Buterin在下面两张图片中总结了账户抽象的架构和控制流程图。
账户抽象结构,来源 Ethereum Improvement Proposals
账户抽象交易流程,来源 Ethereum Improvement Proposals
迎接以太坊的未来
当我们展望以太坊和区块链技术的未来时,账户抽象的概念成为一项关键的创新。它不仅标志着以太坊在灵活性、安全性和用户友好性方面的进化,还让我们离区块链技术深入我们数字生活的未来更近了一步。
账户抽象是一个强大的工具,有望增强以太坊的使用体验,为用户和开发者开辟一个充满可能性的世界。它标志着僵化交易规则的转变,允许建立一个更可定制、更具互动性的区块链环境。
通过EIP-4337及其在主网上的实施,以太坊社区展示了其对持续创新的承诺。该提案巧妙地规避了对以太坊共识协议进行任何修改的需要,从而促进了在以太坊主网上实施的平稳过渡。
提高Web3采用率
账户抽象的潜在好处不仅仅是技术上的改进。通过创建一个更直观、更易访问的环境,以太坊的采用率可能会激增,从而迎来一大批以前认为区块链技术令人生畏或难以驾驭的新用户。
此外,先进的安全措施可以让用户更加放心。当我们继续探索区块链技术的边界时,账户抽象等概念提醒我们,唯一的限制就是我们的想象力。