什么是账户抽象,为什么它是未来

原文链接

https://www.argent.xyz/blog/wtf-is-account-abstraction/

post image

如果你一直在 Twitter 上关注 Vitalik(或者我,但可能性要小得多……)你可能听说过帐户抽象化。 Vitalik 表示,实现帐户抽象化一直是以太坊开发人员的长期“梦想”。他为此提出了几个建议。

也许您也听说过 StarkNet 和 zkSync 这两个领先的第 2 层解决方案,已经宣布它们将推出原生帐户抽象。

为什么它会改变使用加密货币的游戏规则?

我将尝试在这个简短的博客文章系列中回答这些问题。第一篇文章涵盖了以太坊账户并强调了它们的一些限制。这导致帐户抽象化以及它如何解决这些问题。

总而言之,账户抽象化将加密货币从当前的“万能账户”(有人可能会因一个小错误而失去一切)转变为可以根据某人的需求定制账户的未来。在那里你可以建立一个自我监管的安全网。并为他们提供更流畅的用户体验。

这让我们非常兴奋,因为它使自我监管成为可行。替代可怕的种子短语,或依赖中心化交易所。

让我们更深一步来聊聊。

以太坊账户如何运作?

要了解帐户抽象性,我们首先需要了解帐户在今天的以太坊上是如何工作的。

以太坊上有两种类型的账户:

外部拥有的账户 (EOA) 合约账户 (CA)。 在这篇文章中,我们将重点关注 EOA,因为它们对用户来说是最重要的(目前)。 我有时会简单地将它们称为帐户。 如果您想了解有关合约账户的更多信息,可以阅读read this

顾名思义,EOA 是由区块链外部的东西(即用户)拥有的账户。

EOA 具有三个属性:

A balance 代表账户可用 ETH 数量的余额

A nonce 确保每笔交易都是唯一的随机数

An address 唯一的网络上帐户地址

区块链的状态,也就是账户的状态,只能通过交易进行修改。 这个触发器必须来自区块链外部的东西,因此在以太坊上,每笔交易都必须从 EOA 发起。 这意味着,当以太坊虚拟机 Ethereum Virtual Machine (EVM) 执行交易时,被触及的第一个账户必须是 EOA,并且相应的账户必须向矿工支付费用以执行整个交易。

您如何证明帐户所有权?

必须有某种授权来阻止任何人使用你账户的 ETH,对吧?

这就是事情变得有趣的地方!

以太坊上的每个帐户都与一个称为签名者的加密对象相关联。

签名者,也称为密钥对,由两个密钥组成:一个私钥和一个公钥。

私钥,也就是秘密,可用于对数字消息进行签名,而公钥可以使任何人都可以验证给定签名是否由其相应的私钥签名。密码学背后的所有复杂数学保证,如果我给你我的公钥,你就无法导出我的私钥,如果我给你一条用我的私钥签名的消息,你可以确定我是唯一 一个可以签名的。

存在多种基于密钥对生成加密签名的方法。以太坊在称为 Secp256k1 的特定椭圆曲线上使用称为 ECDSA 的特定签名方案。

帐户如何与签名者关联?通过账户地址。

EOA 的地址来自签名者的公钥。更具体地说,地址是公钥的 Keccak-256 散列的最后 20 个字节。

因此,帐户的所有者可以通过使用相应的私钥签署交易参数来从其帐户授权交易。在收到交易和签名后,EVM 将验证签名对目标账户是否有效,验证交易 nonce 是否与账户 nonce 匹配,执行交易,并从账户余额中扣除交易费用。

让我们回顾一下到目前为止我们所学到的东西

以太坊账户由三个部分组成:

包含余额和随机数的状态 EVM 中的硬编码逻辑,用于验证和执行来自账户的交易 一个地址

我们还知道,帐户通过其地址与签名者(密钥对)紧密契合,该地址源自签名者的公钥,以及它的硬编码逻辑,该逻辑准确地指定了什么是来自签名者的有效签名。

最后一点突出了以太坊区块链的一个非常重要的设计选择:Account(持有你的代币的对象)的概念和Signer(被授权移动这些代币的对象)的概念基本上是一回事!如果您有私钥,您将自动在相关地址拥有一个帐户,并且要在给定地址拥有一个帐户,您必须拥有相应的私钥。该逻辑被硬编码在 EVM 的核心。

这种方法的好处是易于理解且易于实施。它也很容易上手:只需在您的计算机上生成一个密钥对,您就可以开始了。

而且,更重要的是,你可以说“Not your keys, not your coins”!之类的短语!

但是这种账户和签名者的耦合也存在很多问题。

如果您丢失了您的私钥或别人拿到了你的私钥?

因为你的私钥就是你的账户,丢失你的密钥就意味着丢失你的账户。

更糟糕的是,如果其他人拥有您的私钥,他们也拥有您的帐户……以及其中包含的所有tokens 你无能为力!

由于私钥丢失或被盗,数亿美元(如果不是那就是数十亿美元)已经丢失或被盗。

https://twitter.com/argentHQ/status/1506302038547775489?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1506302038547775489%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fwww.argent.xyz%2Fblog%2Fwtf-is-account-abstraction%2F

当然,您可以使用硬件钱包,将您的私钥写在一块金属上,然后将其存放在保险箱中。 这对于该技术的早期采用者来说是可以的。 但我们真的相信这种体验可以扩展到数十亿用户吗?

如果您想使用与 ECDSA 不同的签名方案,或者使用不同的椭圆曲线怎么办? 我们知道量子计算机即将到来并且可以打破 ECDSA。quantum computers are coming and can break ECDSA. 我们能做得更好吗?

答案是肯定的,我们可以。 而且很容易理解

让我们将持有您的代币的对象(帐户 the account)与授权移动这些代币的对象(签名者the signer)分离。

你是怎样做的?

将账户转换为具有自己逻辑的智能合约,以定义什么是有效交易。 唯一的要求是它们符合特定接口以及验证和执行事务的方法。

在计算机科学术语中,我们说帐户已被抽象,因此称为:帐户抽象。

我们可以立即看到为什么它如此强大。 它不再是一个帐户适合所有用例。 相反,每个用户都可以拥有一个适合其需求的帐户。

您想使用与 ECDSA 不同的签名方案吗? 没问题,你可以为此写一个帐户。 您想使用多个密钥来授权交易吗? 没问题,你可以为此写一个帐户。 您想每周更改帐户的签名者吗? 没问题,你可以为此写一个帐户。

可能性是无穷无尽的,我期待看到在支持帐户抽象的链上会出现哪些新的用例,例如 StarkNet 和 zkSync 2.0。

在本系列的第 2 部分中,我将讨论账户抽象化所特有的功能的一些具体示例,并说明为什么我们相信 Argent 会改变采用区块链技术的游戏规则。

https://www.argent.xyz/?_branch_match_id=1078857469434542101&utm_source=Blog&utm_campaign=Account%20abstraction&utm_medium=marketing&_branch_referrer=H4sIAAAAAAAAA8soKSkottLXTyxKT80r0cvJzMvWLy9J080s1k1MTs4vzSvRTUwqLilKTC7JzM8DAFkHr%2FYuAAAA