1. 引言
资金托管的2大主流方案为:
- MPC:MPC钱包——对应EOA账号。用于高信任企业场景。
- Multi-sig:多签钱包——对应智能合约钱包。用于个人场景,可强化安全性并易于恢复。
不过V神认为,基于MPC的EOA账号存在根本性缺陷——无法废除密钥(即使重分享,已泄露的老密钥share仍可恢复出目标密钥并窃取资金)。V神认为唯一的选型是智能合约钱包——账号抽象。
本文重点关注:
- 何为MPC?及其优劣势。
- 何为Multi-sig?及其优劣势。
- 误解
- 重点关注
2. 何为MPC?及其优劣势
MPC全称为 “Multi-Party Computation”,为一种密码学协议,支持多方联合执行某计算,同时保持各自的输入私有。MPC技术非常强大,可 用于:
- 隐私保护数据分析:MPC支持多方联合分析其数据,而不泄露各自的数据集。
- 安全多方机器学习:MPC支持多方合作训练某机器学习模型,而无需分享各自的私有数据。
- 隐私保护金融计算:在金融领域,MPC可用于包含敏感金融数据的计算——如投资组合优化、风险评估或信用评分,而不暴露个人财务信息。
- MPC签名:在密码学领域,可用MPC来计算某交易的签名。
- 将秘密私钥采用多种密码学技术分发给一群参与者,每个参与者拥有的称为shard
- 每个参与者使用其私有shard对消息进行partial签名。
- 将一定阈值数量参与者的partial签名收集合并,即可构成单个完整签名。
MPC的优势为:
- 1)无需存储私钥:借助MPC,将私钥分发给多方,意味着无单一实体拥有完整私钥。用户可选择不自己保存私钥。
- 2)容错:MPC提供了容错。若某方下线或丢失了其shard,其他方仍可对交易签名或恢复出私钥。此处假设活跃参与方数量超过最小阈值要求。
- 3)易于恢复:当持有shards的外部参与方同意协作,可在链下进行恢复,从而消除恢复相关的gas费。
MPC的劣势为:
- 1)永久shards:MPC的缺陷在于shards是永久的。即意味着不仅现任监护人(guardians),而且前任监护人都可能串通窃取您的资产,构成无法接受的高风险。
- 2)信任假设:MPC协议通常需假设一定数量的参与者是诚实的。若违背该假设,超过一定数量的参与者创痛,即无法保证MPC写一点 安全性和隐私性。
- 3)MPC钱包为EOA账号:大多数当前的MPC钱包实现都依赖externally owned accounts(EOAs)。若拥有shards的一定数量的参与方串通或者私钥被攻击,则该MPC钱包将被永久破坏,不能被认为是安全的。
- 4)密钥管理:管理密钥shares并确保其安全存储,且需要时可用。对于MPC来说是一大挑战。
- 5)复杂性:正确设计和实现MPC协议是复杂的。若不当会引起错误或漏洞。
- 6)通信开销:MPC通常要求各方相互间一定的通信开销,将影响性能并增加基于网络攻击的风险。
3. 何为Multi-sig?及其优劣势
多签钱包为智能合约钱包,要求两方或多方使用各自私钥来授权某交易或恢复某钱包。每方都有自己的私钥,有某授权方将相应的公钥添加到智能合约中。用户可配置任意指定操作所需的最小签名数量阈值。如,恢复钱包时,需要3个中的2个授权方对交易签名。未来若觉得某参与方行为不当,用户可从授权方列表中移除该有问题的参与方。
多签智能合约自2017年Gnosis SAFE上线以来开始流行。是当前DAOs和高净值个人(如Vitalik)的最受欢迎的选择之一。Gnosis SAFE自身有超过400亿资产存储在链上。.Sequence、Argent 和 Instadapp 都使用多签智能合约钱包,与第三方一起来恢复其多签智能合约钱包(SCW,smart contract wallet)。
随着账号抽象(即EIP-4337)以及EIP-6900: Modular Smart Contract Accounts and Plugins 的出现,将进一步推进多签和其它智能合约钱包的发展。Soulwallet已发布了模块化智能合约钱包基础设施的新方案。
多签钱包的优势为:
-
1)强化安全:多签钱包提供了额外的安全层——要求多个签名来执行交易。从而降低了单点故障的风险。即使某密钥持有人的私钥被盗,资金仍是安全的,因为攻击者人需要访问其它授权密钥来发起交易。
-
2)恢复:到密钥丢失,多签钱包提供了恢复选项。根据配置,剩余的授权方可投票来改变授权密钥集合,支持在不丢失资金的情况下,恢复钱包访问。用户不再需要存储私钥。
-
3)模块化:大多数多签智能合约钱包都支持模块化,借助模块化结构,可设置交易限制。如,若在某SCW中有4个授权方,可做如下限制:
- 3.1)低于100美金只需单个签名,100美金到1万美金需要至少2个签名,超过1万美金需要硬件密钥。
- 3.2)可为特定授权方指定角色,如限定其仅能参与恢复,不能发起交易。这样就有定制第三方来帮助恢复资金。如Screen Protocol正致力于开发类似的模块来强化智能合约钱包的安全性。
- 3.3)Banana Wallet为SCW引入了zk-based 2-factor OTP,通过引入2fa认证来避免欺诈。
模块的功能没有上限,可为任何东西,具有巨大想象空间和成长空间。由于这些模块都在链上,是去中心化的、无需信任的且可验证的。
-
4)无安全假设:可修改或移除授权方,对这些参与方的信任假设很低。但MPC中,某方拥有的私钥shard是永久的,永远无法撤销该方的shard。但在多签钱包中,用户可在任意时刻发起交易从授权实体列表中移除恶意方。
-
5)以任意token来支付gas:随着ERC4337的出现,用户可 以去中心化的方式以任意token支付gas,而无需依赖中心化的relayer。对于MPC来说,在没有中心化relayer的情况下是不可能的。
多签钱包的劣势:
- 1)gas开销:由于所有的检查和恢复都在链上发生,这些操作需要关联gas开销。
- 2)复杂性:在生产中选择多签钱包之前,必须对其进行严格的测试和审计,任何小错误都可能导致所有资金的流失。也就是说,Gnosis SAFE已经经过了适当的审计,并且已经生产应用了大约4年多,没有任何漏洞。
4. 误解
当前对MPC钱包和多签钱包存在以下误解:
- 1)误解一:SCW是新的,MPC经过了尝试和测试:
事实上,SCW出现于2017年,Gnosis SAFE为多签SCW的领先者。此外还有Argent、Sequence 和 Instadapp等。
MPC主要用于高信任场景。如企业与负责处理私钥shards的各方定理法律合约。然而,它并没有得到散户投资者或像你我这样的日常用户的广泛接受。这在很大程度上是由于碎片的永久性,因为它们无限期地留在持有它们的一方。 - 2)误解二:多签仅用于DAOs场景。
Gnosis SAFE中有约50%的钱包为个人的。
5. 重点关注
使用SCW需重点关注:
-
1)关注一:智能合约钱包的高gas开销。不过有如下措施来降低交易开销:
- 1.1)batch交易,将多个操作在一笔交易中发起。
- 1.2)ERC-4337支持签名聚合:
- 1.3)ERC-4337直到用户的第一笔交易才部署智能合约帐户。在此之前,该帐户以“反事实”状态存在——它有一个地址,但没有真正部署。这意味着用户可以在不产生任何部署成本的情况下接收资产。
-
2)关注二:SCW中的跨链操作挑战。
多链生态为用户和开发者提供了大量遍历。但,跨链部署相同的智能合约钱包代码具有独特的挑战和考虑。挑战之一在于反事实部署概念。反事实部署支持在多个链上以相同的初始条件部署相同的智能合约钱包代码,但需要关注:- 2.1)无意识状态漂移:每个链都有自己独特的状态和数据存储,这可能导致不同链上智能合约的状态不一致。
- 2.2)不完全性:反事实部署在许多纯EVM链上运行良好,但在与EVM略有偏差的链上可能会遇到困难,例如某些zk-Rollups,这可能会破坏创建相同地址的能力。
虽然用户想要一个单一的低级别地址是可以理解的,但仅仅依靠反事实部署可能会有局限性和潜在的缺点。从长远来看,它可能会成为一种反模式。
为了解决这个问题,ENS(以太坊名称服务)引入了多链地址解析。这种方法允许基于特定链将单个ENS名称映射到不同的地址。它提供了一个统一的人类可读标识符,同时为每个链上的唯一帐户使用不同的低级地址。这种方法被认为优于仅仅依靠反事实部署。
虽然跨链问题仍在进行中,但各种研究人员一直在积极寻找最佳解决方案。可在SAFE论坛上探讨SAFE创始人提出的方法,网址为https://forum.safe.global/t/how-can-a-safe-hold-asset-on-multiple-chains/2242。
参考资料
[1] Screen protocol 2023年6月博客 MPC vs Multi-sig — Misconceptions and Valid Arguments