原文链接:Account Abstraction: Game Changer for Web3 Adoption
本文作者:Stanford Blockchain Review;编译:Cointime Freya
简介
“不是你的密钥?不是你的加密货币!”这是区块链的口头禅。但是,“密钥”是什么意思呢?现实世界中的钥匙会根据它们的功能而发生改变。你的自行车锁的钥匙与Brinks卡车的高安全级别钥匙不是同一种类型。然而,在以太坊上,所有密钥都具有相同的结构。无论以太坊上的操作价值或目的是什么,都需要使用种子短语签署交易,该种子短语只有账户所有者知道,其他人并不知道。这是一个主要的用户体验障碍,也是主流采用加密货币的障碍。
账户抽象帮助区块链应用程序突破这种范式。2015年Vitalik在一篇文章中首次提出了账户抽象的概念,现在在Starknet和zkSync等第二层区块链,以及通过EIP-4337在以太坊上得以实现。账户抽象将Web3的功能与Web2的简单舒适性相结合,构成了扩展自托管的重要里程碑。
以太坊上的EOA及其局限性
让我们首先回顾一下以太坊上的加密账户是如何运作的。以太坊有两个基本实体:智能合约和EOA(外部拥有的账户)。EOA是一个实体,它有:
- 来自私钥的账户地址;
- ETH余额,用于支付费用或向他人发送ETH;
- 一个名为“nonce”的标识符,它是由该EOA发送的交易序列号,用于重放保护。
EOA是以太坊上唯一可以发送交易的实体。为了使交易有效,就必须使用派生账户地址的私钥进行签名。这意味着“拥有”一个EOA实质上就是拥有用于派生账户地址的私钥。
尽管以太坊上的智能合约是完全可编程的,但用于验证交易有效性的逻辑是不可编程的,而是在EVM(以太坊虚拟机)中硬编程。有效的交易必须严格遵循一系列规则,例如:
- 签名方案:交易必须使用ECDSA签名方案,在椭圆曲线secp256k1上签名;
- 交易费用:交易费用的来源必须与发起交易的EOA相同。此外,费用必须以ETH计价;
- 重放保护:交易必须按其“nonce”标识符顺序发送。
- 私钥是不变的:由于账户地址是从私钥派生的,因此无法更改用于签署交易的“秘密”。
这些规则被嵌入到以太坊协议中,不能被更改。它们源于旨在优化协议安全性,以及以太坊节点运行效率的设计决策。然而,它们限制了dApp开发者使用许多用例。例如,在使用EOA时,另一个账户无法支付你的交易费用。这对于想要补贴每个玩家的前几次“移动”的去中心化游戏来说,将是一个有价值的功能。在其他情况下,区块链用户可能希望授权其他用户代表他们发送交易,这也许对交易价值或频率有一些限制。使用EOA也是不可能的。此外,虽然密码轮换是Web2中的基本原语,但是无法更改EOA的密码,也不可能指望在不允许其他实体完全访问你的账户的情况下,帮助你恢复密码。
拯救账户抽象
账户抽象是将上述硬编程逻辑与EOA分离的想法,将所有账户转变成完全可编程的智能合约。这将为账户所有者、钱包和dApp提供灵活性,以决定如何签署和接受交易,以及交易费用的来源。换句话说,账户抽象是实现智能合约钱包的技术基础设施。
账户抽象的概念可以分为三类,对应于当前EOA中存在的三个主要限制:
- 签名者抽象:让智能合约在确定什么是有效签名的交易方面具有灵活性,而不是强制执行ECDSA方案,将固定的私钥作为唯一可接受的签名。这意味着智能合约可以自行决定接受其他签名方案。例如,更适合共享秘密的方案。合约还可以要求不同的入口点功能使用不同的签名方案,甚至根本不需要任何签名!
- 费用抽象:在以太坊上,账户所有者需要做的第一件事就是在账户中填充一些ETH,这样他们就可以支付交易费用并开始使用该账户。想象一个区块链架构,dApp可以为他们的用户补贴交易费用,或者让用户以他们想要的任何代币支付费用(并且可以随时兑换成ETH);这将解决以太坊如今面临的主要用户体验挑战。
- Nonce抽象:这是账户抽象化中较少讨论但更加微妙的领域,但同样有趣。EOA 上的“nonce”标识符可防止交易重放,但它也强制执行了一种固有顺序的交易模型。如果智能合约想要接收来自同一个EOA的两笔交易,而不管它们的顺序如何,会怎么样?当“nonce”机制可以由智能合约控制,而不是硬编程到通用交易处理逻辑中时,这就成为了可能。
扩展自托管能力
在比特币白皮书发表15年后,如今的加密钱包仍然更像是需要重点维护的朋友,而不是我们期望的流畅产品。去年CEX的崩盘给我们留下了一个深刻教训,即自托管是正确的选择,但管理自己的密钥仍然是一个重大负担和安全风险。即使是核心加密货币开发者偶尔也会丢失或泄露他们的密钥。通过账户抽象操作的智能合约钱包,可能是消除这些风险和推动自托管钱包大规模采用的催化剂。账户抽象通过两个机制使账户管理变得不那么繁琐:更智能的交易签署,以及更好的恢复过程。
首先,签名者抽象功能允许钱包将类似Web2的功能嵌入到他们的产品中。例如,Braavos钱包利用iOS和Android设备的安全区域,允许用户使用指纹或面部ID签署交易,而无需输入任何种子短语。类似的签名者抽象功能允许开发者逐一控制批准个别交易所需的安全级别。这为Web3钱包的真正多因素身份验证铺平了道路。与你的在线银行账户类似,日常交易可能会在一台设备上执行,但与新收款人进行交易或执行特别有价值的交易,可能促使用户在多台设备上签名。
账户抽象也改善了账户恢复的用户体验。签名者抽象允许一个账户有多个签名者,每个签名者都有单独的权力和权限。例如,一个账户的主要所有者可以与朋友共享一些较低权限的密钥,这样朋友们就可以帮助恢复主密钥,但不能花费账户中的任何资产。这通常被称为社会恢复,并且已经在基于智能合约的钱包中实现,如ArgentX钱包。
加密货币支付的机会
加密货币支付被广泛讨论为区块链的主要用例之一。然而,这个承诺还没有实现。从历史上看,这是由于昂贵的交易费用,现在由于rollup和可扩展性解决方案的出现,这些费用正在下降。然而,TradFi中成熟的支付解决方案并不仅仅是因为交易成本低而成功的。它们需要额外的功能,如信贷发放、欺诈检测、争议程序和定期付款机制。
账户抽象允许将这些传统支付概念转化为加密货币领域。例如,Visa最近提出了将账户抽象用于定期付款系统的概念验证。想象一个可编程的自我托管钱包,它授权Visa按照固定周期自动提取资金(每月限额内),而无需要求用户在每笔交易上签名。
当游戏用户体验遇到Web3
账户抽象还有可能通过批量交易和费用抽象破坏Web3游戏领域。
除了交易成本之外,游戏活动上链的一个主要障碍是需要为每个链上活动签署交易。提示用户点击钱包中的“签名”按钮会打断游戏流程,并使Web3游戏体验变得相当繁琐。账户抽象允许游戏开发者创建“会话密钥”,用于预授权在特定时间段内签署游戏交易。这些密钥可以存储在浏览器或智能手机的本地存储中,并可以在需要时进行撤销。这使Web3游戏的用户体验更接近我们熟悉的Web2游戏体验。
此外,费用抽象允许游戏开发者为其用户补贴交易费用。这是吸引新玩家加入的一种特别好的方法,因为他们可能对加密货币还不熟悉,或者可能想在不支付交易费用的情况下尝试游戏。
未来之路
账户抽象一直都在以太坊的路线图上。EIP-86(2017),EIP-2983(2020)和EIP-3074(2020)等以太坊改进提案,为EIP-4337(2021)铺平了道路,EIP-4337(2021)在以太坊之上引入了一个新的去中心化基础设施,用于操作智能合约钱包。除了EIP以外,以太坊上还出现了智能钱包dApp,如Gnosis。然而,所有这些都是以太坊原生账户模型(EOA)的二等公民。
解决以太坊的局限性,并将智能合约钱包带给用户的机会可能是通过第二层的扩展网络。像Starknet和zkSync等第2层网络在协议层中嵌入了账户抽象,使开发人员可以通过本地工具和基础设施轻松访问。
*本文由CoinTime整理编译,转载请注明来源。
所有评论