原文:《Account abstraction, the new shiny object in crypto》
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技术的下一步发展绝对值得我们密切关注,但现在貌似还为时过早。