七个点带你读懂 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 等高价值、低频率的场景有更好的适用性。

但我更想强调的是,我的观点是一种带有强烈个人色彩的判断,我更希望大家关注的是本文所探讨的客观事实。

最后我想说,不论如何,值得我们兴奋的是:大规模应用已经近在咫尺了。

作者:cnrunchen.eth

发布时间:2023/01/20

Subscribe to cnrunchen.eth
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.