以太坊账户
在我们探索帐户抽象之前,我们需要了解以太坊帐户是如何工作的。以太坊区块链上有两个不同的账户。外部拥有账户(EOA)和合约账户(CA)。让我们先从EOA(即用户帐户)开始。
EOA有以下三个属性。代表账户可用 ETH 数量的余额,确保每笔交易都是唯一的nonce,以及在网络上唯一标识账户的地址。只有通过交易,才能修改区块链的状态,进而修改帐户的状态。以太坊上的每笔交易都必须由EOA发起,因为这个触发器必须来自区块链之外。因此,当以太坊虚拟机(EVM)执行交易时,第一个接触的账户必须是 EOA,并且相应的账户必须向验证者支付费用。
那么我们如何防止其他人访问自己的ETH呢?签名者负责这一点,其也被称为密钥对。它由两个密钥组成:私钥和公钥。私钥对消息进行签名,而公钥使任何人都可以验证给定的签名是否是由其对应的私钥签名的。此外,帐户地址将帐户与签名者联系起来,并从签名者的公钥中进行检索。
现在让我们总结一下到目前为止所学到的东西。以太坊上的账户有三个属性。一种包含余额和nonce的状态,用于验证和执行来自帐户和地址的交易的硬编码逻辑。然后是与帐户耦合的签名者(私钥对),这基本上意味着,如果您有一个私钥,您也有一个相关地址的帐户,并且要成为帐户的所有者,您必须拥有相应的私钥。
这是一种简单易行的实现方法,但将帐户与签名者进行耦合会带来许多问题。
以太坊账户的挑战
当前设计中最明显和最大的问题是,如果我们丢失了自己的密钥,我们也同时会丢失自己的账户,或者当其他人拥有我们的密钥时,他也可以访问我们的帐户及其所有代币。可以使用硬件钱包,把密钥写在一张纸或金属上,然后把它存放在保险箱里。但这真的是Web3和大规模采用的方式吗?
当然不是,现在有一种更好的方法。就是通过将帐户与签名者分离,并将帐户转换为具有自我逻辑的智能合约,以定义什么是有效的交易。简而言之,就是帐户抽象。
因此,通过将每个帐户转换为智能合约,使得帐户抽象打破了帐户耦合,并使交易授权变得可编程。帐户抽象使用户能够部署和使用具有根据其需要定制的自定义授权逻辑的帐户。
那么这将带来什么可能性呢?
可以有多个签名者来支持欺诈监控。确保所有交易都遵循已定义的安全规则,防止资产被发送到诈骗地址或不正确的合约。
另一个具有不同椭圆曲线的签名方案。我们可以使用更简单、更省gas的签名方案,也可以使用抗量子的签名方案。甚至可以通过使用 iOS 和 Android 设备的安全区域将每部手机变成硬件钱包。
用户可以在钱包中添加机制来替换他们的私钥,以防他们丢失或泄露私钥。
为什么帐户抽象可以成为大规模采用加密技术的关键,其原因有很多,但在我们深入研究它的好处之前,我们需要理解为什么它以前没有被实现。
账户抽象及其过去存在的问题
实现完整的帐户抽象并不是一项简单的任务。正如我们所了解到的,签名者和账户之间的相关性已深入实施到 EVM 的核心。有几个实现帐户抽象功能的提案,同时其也必须在某种程度上对协议进行可接受的更改,以便在下一个分叉中可以被接受。但这些变化都有局限性。今天的大多数钱包都是EOA,依赖于助记词,并具有无法编程的用户体验和安全性。
有了智能合约钱包,我们就已经有机会实现很多功能,但它们仍然存在于链上,其中原生帐户是EOA,这迫使以太坊上的智能合约钱包使用技巧来正确复制帐户抽象。此外,整个以太坊生态系统都是围绕EOA创建的,这就是为什么大多数dApp与智能合约钱包不兼容的原因。
直到今天,还不确定以太坊是否会实现完整的帐户抽象,但可以确定的是,它将是扩展用户体验并获得广泛采用的最佳方法之一。这就是为什么人们现在专注于将帐户抽象的全部功能引入到L2(如zkSync 2.0和StarkNet)的原因之一。
帐户抽象的未来好处
越来越多的用户将体验到帐户抽象所带来的好处,因为像zkSync 2.0和StarkNet这样的L2s、将支持它。这可能会导致以太坊社区确信在协议本身上实施帐户抽象,并最终成为大规模调整的决定性组成部分。
因此,在完成本文之前,让我们来看看帐户抽象的优点。
会话密钥:区块链游戏尤其受益于会话密钥。通过预先批准与dApp交互的规则,我们可以在这些规则内尽可能多地使用它,而无需签署每一笔交易。通过限制dApp对资产的支配力,我们可以在知道自己的资产受到保护的情况下享受使用dApp的乐趣。目标是最大限度地提高易用性,同时最大限度地降低风险。
多因素身份验证:帐户抽象可以让我们拥有多个密钥签名的帐户,就像多重签名钱包一样,但更好的是,它允许我们根据自己的特定需求对其进行自定义。例如,我们可以整合一个诈骗地址列表,这些地址正在被阻止或阻止交易到不正确的合约。
费用:通过帐户抽象,我们可以用任何类型的代币支付gas费,而不需要特定的代币来进行特定的交易,或者项目可以为用户支付gas费。
手机是硬件钱包:iOS 和 Android 设备的安全区域可用于使用不同的签名方案来创建硬件钱包。
插件:通过添加插件,可以使帐户更加灵活和模块化。在帐户创建过程中,第三方开发人员可以构建插件来启用新功能。帐户还可以通过允许用户在创建功能后添加和删除功能来进行扩展。我们可以把它看作是自己账户上的一个应用商店。
这些只是账户抽象如何为以太坊生态系统增加大量价值的许多例子中的一些。由于我们所设想的账户抽象还处于起步阶段,我们只能猜测它会对以太坊和加密货币的未来产生什么影响。然而,一旦大部分用户意识到这些优势,就可以启动一波浪潮,这将对加密货币的进一步发展和大规模适应做出重大贡献。