七个点带你读懂 Social Recovery 钱包的优势和挑战
上周写了一篇我对于 2023 年 Web 3 行业的一些展望,其中我就提到了我认为 MPC 钱包的应用率会超过社交恢复钱包。对此有一些朋友提出了反对的意见,同时也指出了我的一些局限性,因此就有了这篇文章。
在这篇文章中我会总结可 7 个对于 Social Recovery 钱包的疑问,以及这些疑问的答案。感谢 UniPass 团队的 Jason 对本文做出的贡献。
什么是 Social Recovery 钱包?
严格意义上来讲,很多人认为并没有社交恢复钱包这个分类,它是账户抽象中的功能模块之一。社交恢复钱包(Social Recovery Wallet)一般情况下都是智能合约钱包,但智能合约钱包并不一定包含社交恢复的功能。
智能合约是一组部署在网络上的代码,不同的智能合约可以实现不同的功能。如 UniPass 和 Argent 就支持社交恢复,而 Gnosis Safe 就只支持多签,除此之外还有一些服务于特殊目的的智能合约钱包。
考虑到智能合约钱包的多样性,本文仅探讨基于大规模应用(Massive adoption)目的的提供邮件等 Social Recovery 功能的「分布式托管智能合约钱包」。
社交恢复钱包都能实现哪些功能?
由于 Solidity 是图灵完备的语言,所以理论上智能合约钱包可以实现的功能非常多。正如前面所说的,社交恢复钱包是基于智能钱包的。不同的钱包提供商所设计的功能都并不一样,因此本文仅列举主流智能钱包解决方案的一些功能。
账户抽象:基于账户抽象可以实现验签、多签、更换私钥、设置私钥权重等;
安全策略:设置账户权限、白名单交易账户、设置转账上限等;
钱包恢复:通过社交或其他手段恢复对钱包的控制权、设置「死亡继承」等;
合约功能:批量转账、手续费代付、使用多种代币支付手续费等;
除了这些以外,智能合约钱包还可以实现一些特殊的功能。如 Instadapp 的智能合约钱包可以实现基于 AAVE 实现一键的抵押品转换等 DeFi 的快捷操作。但由于本文着重讨论基于大规模应用目的设计的社交恢复钱包,这里就不展开介绍。
什么是账户抽象?我们为什么需要账户抽象?
账户抽象是智能合约钱包的核心价值。「账户抽象」这个词本身就很抽象,我们简单的理解就是他对 EVM 的账户系统进行了分拆,让它可以模块化的实现一些以前所无法实现的功能。**实际上,社交恢复也是账户抽象中的一个功能。
EVM 的体系里有两种账户类型:EOA(Externally Owned Accounts,即外部持有账户)和智能合约账户(Contract Account)。其中 EOA 指由以太坊外部主体拥有的,也可以理解为我们平时说的公私钥钱包。
EOA 钱包面临非常多的问题,如用户并不真正拥有账户,用户只是拥有私钥,而私钥拥有账户。因此当私钥泄漏或者遗失的时候,账户也就不再属于用户。为了满足更多的需求场景,有人开始尝试将智能合约当成一个账户来使用,并且在智能合约内部署更多的逻辑,这便是账户抽象。
账户抽象下地址所对应的不再是一个私钥,而是一套账户逻辑,这个逻辑可以根据不同的用户需求进行模块化的定制。 如前面提到的多签、更换控制私钥(社交恢复)、设置私钥权重等。从某种意义上来讲,讨论社交恢复钱包其实就是在讨论账户抽象。
社交恢复钱包如何解决隐私问题
隐私问题是社交恢复钱包需要面对的一个问题。Argent 的方案中,用户可以添加其他 Argent 用户(比如亲朋好友)来做为其守护者,但同时这也需要暴露自己的地址给对方。暴露地址同时也就意味着暴露资产情况和用户交易行为,这就给社会化攻击提供了可能,同时也会造成一系列的麻烦。
智能合约钱包是一系列逻辑,因此解决这个问题的方法有很多。一方面可以在合约中引入零知识证明,来保证在双方都不暴露的情况下完成验证。另一方面社交恢复钱包也加入更多的链下世界因子来解决这个问题,如 UniPass 的邮件 DKIM 验签。
但不可避免的,用户需要向钱包的供应商披露一些自己的信息,如使用 Argent 的时候需要披露自己的邮件地址和手机号码。但既然我们在讨论大规模应用的场景,那么我们默认这些是在用户能够接受的范围呢。
社交恢复钱包最大的问题
社交恢复钱包的挑战在于其可靠性和兼容性。可靠性指的是这个服务的稳定程度,它能否无故障的持续运行。兼容性则是指 app chain 或者说应用是否能够兼容智能合约钱包。这些问题主要在于:
钱包服务商是否可以保证中继器在线并提供稳定的服务;
越复杂的智能合约审计难度越大,出问题的可能性也就越高;
智能合约钱包需要服务商单独的部署在每条侧链和 app chain 上;
应用开发者需要为智能合约钱包进行专门的优化。
社交恢复钱包依然面临着巨大的挑战,其中最大的挑战就是来自兼容性问题。实际上早期的时候因为无法判断智能合约的逻辑,大量的 GameFi 项目是禁止智能合约钱包和其进行交换,部分交易所也不支持智能合约充币。
我们之前在 Flow 上进行开发的时候曾经遇到过一个很特殊的 performance issues。由于我们当时部署的中继节点无法应对突然涌入的用户需求,导致用户不得不在发起交易后等待很长的时间才能确认。这一问题在用户使用第三方钱包的时候也会出现,由于钱包的中继节点负载不够,导致用户交易使用体验极差。
目前都有哪些可恢复合约钱包方案?
Youbi Capital 一篇发表于 2022 年 11 月的文章(《将 Web2 用户带入 Web3 —— 未来属于无助记词钱包》)详细比较了目前市面上的几种无助记词钱包的解决方案,包括 MPC 钱包和可进行社交恢复的钱包。
这篇文章总结对比了 MetaMask、web3auth、Magic、Sequence、Particle Network 和 UniPass,其中 UniPass 和 Sequence 属于我们前面讨论的社交恢复钱包,而 UniPass 的解决方案最为在功能性、Gas 费用、非托管、安全性、更换设备和延迟六个方面得分均分最高,也较为均衡。
除了 Youbi Capital 提到的这几款之外,得到 V 神点赞的 Argent 也是目前比较主流的社交恢复钱包供应商之一。但其在多链支持上选择了拥抱 zkSync,暂时不支持 Optimsm 和 Arbitrum 等 EVM 兼容链。
MPC vs 社交恢复钱包
社交恢复钱包和 MPC 钱包是在讨论大规模应用的时候经常被拿出来讨论的方案,但实际上他们并不是在同一个层面上解决问题。
MPC 钱包是从私钥的层面进行解决,它本身并不能对账户进行抽象,也无法提供社交恢复钱包这么丰富的功能。但同样的,社交恢复钱包虽然可以提供丰富的模块,但它也造成了一定的兼容性问题。
最后我简单的对比一下 MPC 钱包和社交恢复钱包的优缺点:
兼容性:MPC 钱包可以很好的兼容多链(无论是否为 EVM)而不需要应用开发者进行任何的修改;而基于智能合约的钱包在兼容性上有更多的挑战;
使用成本:社交恢复钱包更适用于 Layer 2,这是因为智能合约需要支付额外的 gas 成本,而这在 Ethereum 主网上非常昂贵;
功能性:账户抽象可以实现很多 MPC 钱包所无法实现的功能,如手续费代付;但我更认可协议层而非应用层的解决方案,新一代的公链如 Near、Flow 都自带账户抽象,而 EVM 兼容链如 Fantom 也在积极从协议层解决;
可恢复性:MPC 钱包一旦完整私钥泄露不可恢复,但这种可能性微乎其微;
可用性:双方都依赖中心化的节点,但社交恢复钱包还依赖中继节点;
安全性:社交恢复钱包包含智能合约逻辑,存在一定风险。同时由于智能合约钱包需要应用合约进行兼容,一定程度上加剧了风险。
个人而言,我认为 MPC 钱包在应用规模上会跑赢社交恢复钱包,尤其是基于游戏所产生的高频、低价值的应用场景。而社交恢复钱包在 DeFi 等高价值、低频率的场景有更好的适用性。
但我更想强调的是,我的观点是一种带有强烈个人色彩的判断,我更希望大家关注的是本文所探讨的客观事实。
最后我想说,不论如何,值得我们兴奋的是:大规模应用已经近在咫尺了。
发布时间:2023/01/20