Account Abstraction(账户抽象),简称 AA,现在是加密领域最热门的话题之一。
人们对 AA 的希望已经从简单地提高区块链的可用性,转变到解锁一个全新的功能世界,并希望它最终能够带来大规模采用。
人们对此感到兴奋,但是当我们查看 AA 的一些实例之后其实就可以发现这种炒作看起来有些夸张。
因为,现在为了解决助记词的问题,项目团队在隐私方面做出了妥协,他们要求用户信任不透明或不可知的第三方,并且构建了与现有钱包标准不兼容的密钥管理模式。
这样做看起来是为时过早的。
已经构建的 AA 类型都有什么?
首先,我们需要先了解一下外部拥有账户的概念。
在设置典型的非托管钱包时,我们会得到一对密钥:公钥和私钥。
我们通过共享自己的公钥来接收资金,并只能通过验证(或签名)个人拥有的私钥来发起发送。
上面这种最高级别的钱包所有权也被称为外部拥有账户(EOA)。
第一种类型:iCloud
一种常见的 AA 形式是让用户将自己的私钥保存在云中,并使用用户名和密码进行身份验证。
有些人质疑这是否符合 AA 的条件,可以说在某种意义上确实符合,因为这种方法取消了写下和保护助记词的需要,并为用户提供了一种熟悉的模式来验证和恢复自己的私钥。
第二种类型:SSS
现在变得越来越常见的一种更复杂的方法是利用被称为 Shamir Secret Sharing (SSS) 的技术。
使用这种方法,会使私钥被分解成多个「密钥共享」,用户必须对其中的某个阈值(通常是三个中的两个)进行身份验证以重构整个私钥。
具体项目例子
举例的这些钱包代表了一些不同的常见钱包类型。
Argent 是主要用于加密资产保存和长期存储的移动应用程序钱包。
BSC 钱包是一个浏览器扩展,可用于访问币安智能链和该生态系统中的 dApp。
Sequence 是一款支持多链的专为游戏而设计的网络钱包。
下面看看这些钱包现在是如何管理密钥的。
Argent
Argent 提供两种私钥管理选择:
选择一:我们可以将私钥保存到自己的 iCloud 密钥链,并使用生物识别或 PIN 进行身份验证。
这个方式确实非常方便,但鉴于 iCloud 已变成黑客的一大目标,所以将私钥存储于其中会容易受到安全漏洞的攻击。同时隐私也将受到损害,因为 iCloud 账户与私钥相关联,也就相当于自己所有个人身份信息和 DNA 样本已经附加到了自己的私钥上。
选择二:使用 SSS 将自己的私钥分成 3 个或更多个来进行密钥共享,并将它们保存在几个监护人之中。
监护人可以是以下的实体:
- 硬件钱包或其他设备,如手机;
- 朋友或家人的设备(自己真正信任的人);
- 在 Argent 服务器上存储密钥共享的 Argent 监护人。
用户可以按照需求设置任意数量的监护人,并定义自己的阈值,这确实增加了用户设置的灵活空间。
这种方式也减少了进行设置时投入的精力,我们也可以用私密且无需信任的方式进行配置。
但它也有缺点,就是我们创建的钱包与使用普通钱包标准的任何其他非托管钱包不兼容。我们要时刻祈祷该项目不要倒闭,并且自己的监护人都安然无恙。
Argent 还允许用户从设置中导出助记词,这样助记词就将与其他 BIP-39 标准钱包兼容,那…使用 SSS 设置的监护人就会如同虚设。
BSC
BSC 也为用户提供将私钥保存到谷歌云或通过 SSS 保护私钥的选择,与 Argent 相似。
在 BSC 中监护人被称为「身份验证因素」,工作方式与 Argent 相同,只是用户无法选择密钥共享的存储位置:
- Share 1 保存到 Torus Network,使用 Google oAuth 认证;
- Share 2 保存到 BSC chrome 扩展客户端;
- Share 3 存储在 Binance,并使用用户名和密码进行身份验证。
BSC 也使用用户名和密码模式将私钥保存到 Google,或者将密钥共享保存到币安。
BSC 的主要局限性在于,当与谷歌进行连接以后,提供商将可以访问与该谷歌账户相关联的个人身份信息。再者,BSC 对 SSS 的实现是 BSC 钱包独有的,所以以这种方式创建的钱包与其他钱包不兼容。最后,密钥共享是必须保存在币安服务器上的,所以对币安的依赖性会很大。
Sequence
Sequence 的方法是完全隐藏私钥的存在。
阅读其条款,我们才能知道该项目使用的是 SSS:
「将会有 3 个与您有关的私钥,想要在给定的时间内访问钱包是需要其中 2 个私钥的。一个私钥存储在您的本地设备上。另一个私钥是需要使用您提供的登录凭据来生成的。第三个私钥由 Horizon 维护。当您使用登录凭证来登录帐户 / 钱包时,您可以使用存储在设备上的私钥和与登录凭证相关的私钥访问帐户。」
但我们不知道用户的第 2 个私钥共享存储在哪里,我们也就无从得知这个第三方是谁。
虽然使用自己的 facebook 或者谷歌来登录是很简单方便的,但一旦我们的设备不幸丢失,弄丢的还有我们的一个密钥共享。对于那些一般不读条款的用户,他们将对这种情况一无所知。
账户抽象的第三种类型
加密人士讨论的 AA,显然不是前面两种,他们讨论的是第三种理论的未来承诺。
在解释第三种之前,我们应该先了解一下 EOA 的层次结构的下一层,那就是合约账户(CA),也可以被称为智能合约层。
我们可以把 CA 看作是存在于以太坊网络上的应用程序。CA 是可编程的,可以在它上面做很多事情,但它不能发起交易。反正现在是不能。
Vitalik 曾经描述过账户抽象的未来愿景是合并 EOA 和 CA,可以使 CA 发起交易。
这种能力的实现,将开启一个全新的功能世界,包括但不限于:
更好的社会恢复系统——不依赖第三方,并向后兼容其他钱包;
多重签名合约账户——需要多方签署交易以获得额外的 CA 安全层;
Gas 费用抽象——智能合约执行必要的操作以实物支付 tx 费用,甚至让用户决定费用是由发送方还是接收方支付;
可委托账户——它将允许使用智能合约进行自动 / 经常性支付。
第三种类型的发展现状
Layer2 领域目前在这方面处于领先地位,zkSync 最近部署了一组工具来促进实现有限的 AA 功能集。
以太坊方面,集成 AA(EIP-4337)的以太坊改进提案也得到了开发人员和以太坊社区的关注。
但单从用户体验来看,第 2 层还是比较麻烦的,因为在默认情况下,大多数加密资产都不在第 2 层上。用户基本上是要从以太坊主网上获得这些资产,进行桥接之后才能享受第 2 层的服务。
而 EIP-4337 或广受赞誉的 EIP-4844 都没有采取任何措施来解决这个问题。
结论
第一种类型和第二种类型基本上相当于是准中心化托管,没有备份,它们虽然是解决助记词的勇敢尝试,但涉及到长期储存时,就感觉是在赌运气。
至于第三种类型,现在取得的进步确实令人印象深刻,AA 技术的下一步发展绝对值得我们密切关注,但现在貌似还为时过早。
(声明:请读者严格遵守所在地法律法规,本文不代表任何投资建议)