以太坊联合创始人Vitalik Buterin3月曾发文称,自托管非常重要,社交恢复和多重签名是实现这一目标的好方法。并表示在加密支付方面使用 ERC-4337 账户抽象钱包会更加便利。
在ETH2.0的路线图中,官方将账户抽象与合并、分片放在一目录层级,不难看出账户抽象在ETH2.0的重要地位。
来源:TripleA
全球互联网用户数在50亿左右,根据 TripleA 的官方数据显示, 截止目前,全球 Crypto 用户数量达 4.2 亿。
而作为目前使用最广泛的加密钱包Metamask,在22年牛尾行情中,月活才刚突破3000万,对于 Crypto 行业了解相对较多的人来说,Crypto的真实用户数还要再打个大的折扣。
究其原因,便是加密钱包的繁杂使用,例如各种专业词汇,以及资产保存等问题,阻碍了普通人进入Crypto 行业 , 开头提到的以太坊账户抽象,可以有效解决这些问题,降低人们进入Crypto世界的门槛。
加密钱包,作为web3世界的入口,账户模型的实施为web3大规模用户奠定基础,具有重大的意义。 本文,我们就来简单了解下账户模型的相关概念。
01
以太坊账户模型
想要了解账户抽象的概念,我们需要先了解钱包账户的知识。关 于钱包账户模型(主要是以太坊等evm兼容链),目前主要分为2大类: 外部账户 (Externally Owned Account - EOA)和 合约账户 (Contract Account - CA)。
外部账户(Externally Owned Account),简称EOA, 目前,以太坊上的大多数钱包都是EOA钱包,包括我们熟悉的Metamask,Tokenpocket或者Ledger等硬件钱包,都属于此类。 因为以太坊地址由公钥直接计算得到的,不依赖区块链本身,跟以太坊没有关系,所以被称为外部账户。
合约账户(Contract account),简称CA, 顾名思义,合约账户用由合约代码的逻辑进行控制的账户,常见的合约账户比如我们在dex交易时需要查找的各个Token的智能合约地址,它虽然没有私钥,也不能发起交易, 但利用智能合约的可编程性,可以实现比EOA钱包更复杂的业务操作逻辑,通过EOA钱包控制合约账户,实现交易和签名等功能。
两种账户模型的共同点:
-都可以进行接收,持有,发送token,与已部署的智能合约交互。
两种账户模型的区别:
-EOA由私钥控制,CA没有私钥,由合约代码的逻辑控制;
-EOA创建账户免费,CA创建账户需支付gas;
-EOA可以发起交易,CA只能对接收的交易进行响应并发送交易;
-EOA之间的交易只能是Token转移,从EOA向CA发起交易可以触发多种操作Token如Token转移或者创建新合约等。
02
钱包种类
1.传统(HD) 钱包
用户在传统钱包上生成地址,地址生成后,用户会获得一个公钥以及一个私钥。 现状市面上的各种软硬件钱包,例如Metamask,Ledger等都属于EOA钱包。 目前为止,传统钱包是普通用户进入Crypto 行业的主要入口。
传统钱包目前存在的问题:
-门槛过高, 用户需要对公钥私地址等相关知识有一定基础了解,才可能会使用钱包;
-资产容易丢失 ,用户需要自己保存私钥,私钥一旦泄漏,资产将永远无法找回;
-效率低下, 用户在链上的每次交易,都需要进行签名授权等步骤才能完成交易确认,例如玩web3游戏,如果游戏全部上链,那么当游戏中每次行为都需要进行签名确认,会影响玩游戏的乐趣。
2.MPC(多方计算)钱包
MPC钱包本质上也是EOA钱包,MPC钱包是将一个私钥打成2片或者3片,将部分碎片交给钱包方进行保存,每一方持有部分私钥碎片,当需要进行私钥签名时,通过算法(各方不泄露自己的隐私的前提下)将私钥碎片拼接成完整私钥完成签名。目前存在的产品如Fireblocks,ZenGo等。
优点:
-私钥分成多份,黑客破解难度提高,钱包安全性提高。
缺点:
-需要相信MPC钱包方,相信第三方提供的计算能力,当第三方出现问题时,服务无法继续。
以上两种都属于EOA模型,而智能合约钱包属于CA模型。
3.智能合约钱包
智能合约钱包,是一种类似钱包的智能合约,即一个允许用户管理资金、登录并与各种dapp交互的界面。与EOA钱包不同,由于智能合约部署需要上链,使得智能钱包的创建需要支付一定成本。Argent,Gnosis Safe这些老牌钱包就是智能合约钱包。
多签钱包的“多方参与”概念与MPC钱包类似,但他是建立在智能合约上的钱包,通过多个私钥来控制一个钱包,通过智能合约定义验证逻辑 ,当需要验证一笔交易时,需要一个以上私钥,或者多个私钥中至少三分之二的私钥参与验证,才能完成签名,因此也属于智能合约钱包。知名的就是上面提到的Gnosis Safe。
优点:
-安全性提高(多签);
-可以实现批量交易,节约成本;
-可扩展性,由于智能合约的可组合性,可以添加各种功能;
-链上责任明确,多签可以在链上明确哪些私钥进行签名;
-社交恢复,当私钥/密码发生泄漏丢失可以重新拿回账户的控制权
缺点:
-成本变高,交易费用变高,交易验证需多个签名,恢复成本变高,需要支付链上费用才能完成;
-便捷性降低(多签);
-非EVM链上需要定制才能运行;
-兼容性差,与不可升级的合约不兼容,各家运营商之间控制账户标准不同,各种钱包之间无法随意切换。
03
账户抽象
由上文我们可以知道,EOA和CA这两种账户模型支持的钱包都存在着各种各样的问题 ,因此,以太坊官方想通过账户抽象对这两种账户模型进行加强。
账户抽象(Account Abstraction - AA),核心是将账户的签名权和所有权解耦拆分,让CA和 EOA 的组合更具灵活性, 通过智能合约代码实现 gas 代付、权限可编程等功能。
账户抽象是基于智能合约钱包的改进方案,因此两者之间界限不是特别清晰 。以太坊账户抽象2016年就已经提出了,但真正看到实现的可能是EIP-4337方案的提出。
EIP-4337的实现过程
方便理解账户抽象,举个现实例子,当我们想看电视的时候,只需要通过遥控按钮来控制开关,音量,切换频道,并不需要了解电视内部是如何将这些行为一步步实现。 而其中的遥控,就相当于把电视内部运行“抽象”至表面。
账户抽象也是类似的,将CA和 EOA “抽象”,简化为以太坊账户形式,用户不需要在意到底是哪种账户模型,背后的运行逻辑,用就完了。 如果没有技术背景,可以将其理解之前大热的为模块化概念。
由于 EIP-4337 方案并不成熟,基于 EIP-4337 开发的账户抽象钱包目前也不可能广泛应用, 我们可以通过账户抽象的用例来了解下其为何重要。
账户抽象用例:
1.智能合约钱包
上文有提到相关概念,相较于EOA钱包,智能合约钱包可以提供类似 Web2 的丝滑体验,用户不需要了解钱包各种概念,降低互联网用户进入web3门槛。
2.无ETH交易
传统钱包进行交易时,需要用到主网Token(ETH)作为gas费,当钱包没Token网Token(ETH)时,将无法进行交易。而在EIP4337提案中,用户即使没有以太坊也可以进行交易(代付或者用有Token作为gas费)。
3.批量打包合并交易
批量打包合并交易,支持多笔打包一笔发送,类似Dex上的交易,新Token需要先approve授权再swap(交换),而账户抽象可以一步进行。
4.自动运行
自动运行,当用户设置交易条件后,达到相关条件,交易自动运行。类似支付宝的免密支付。在游戏中,达到要求后,自动授权签名,提高游戏体验,链上高频交易者,可以提高使用体验。
5.权限拆分
权限拆分,管理多个密钥,不同密钥给予不同权限。
账户抽象的缺点:
-钱包的兼容性,对智能合约的依赖性,当将智能合约部署到链上时,将与该链绑定,其他链无法适用;
-随着功能的不断增加,漏洞出现的可能性也在加大;
-所有逻辑都跑在链上,增加gas成本。
以上便是账户抽象的相关知识, 作为Web3行业的流量入口,低门槛,便捷是当下钱包的最大问题,账户模型的出现,可以有效的解决这些问题。 目前EOA钱包作为主流,圈内用户大多已经习惯使用EOA钱包。