查看原文
其他

安全多方计算和多重签名技术及其应用场景

The following article is from 隐私计算研习社 Author 杨赟博

通过本篇博客,我们将重点介绍多方计算(MPC)与多重签名(Multi-sig)的技术,并让读者们理解其应用场景。

1

什么是MPC?


MPC,即“多方计算”,它是一种密码协议,使多个参与方能够共同进行计算一个特定的函数,同时保持这些参与方的输入保密。MPC是一种非常强大的技术,广泛应用于隐私保护数据分析、安全多方机器学习和隐私保护金融计算等领域。使用MPC计算交易签名时,多个参与方使用各自的私密碎片计算部分签名,并将这些签名合并成完整有效的签名。

多个参与方如何获取私密碎片呢?可以使用多种密码技术将私钥分发给一组参与者。这里的秘密是一个私钥,被分成多个部分,称为碎片,并与参与实体共享。

优点

1. 无需存储私钥:使用MPC,私钥分布在多个参与方之间,意味着没有单个实体拥有完整的私钥。作为用户,您可以选择不自己存储私钥。

2. 容错性:MPC具有容错性。如果一个参与方离线或丢失数据,其他参与方仍然可以签署交易或帮助恢复私钥,但是这需要假设参与方的数量超过最低所需阈值。

3. 链下恢复:当持有碎片的外部方同意合作时,恢复可以在链下进行,从而节约gas fee。

缺点

1. 碎片永久存在:MPC的一个缺点是碎片是永久的。这意味着不仅当前保护者,而且以前的保护者都可能串通起来窃取您的资产,构成了无法接受的高风险,正如Vitalik所说。

2. 信任假设:MPC协议通常依赖于某一部分参与方是诚实的假设。如果此假设不成立,例如通过多于特定数量的参与方串通,协议的安全性和隐私保证可能会受到损害。

3. MPC钱包是EOA:目前大多数的MPC钱包实现依赖于外部账户(EOA)。如果通过对足够多的碎片的攻击或参与碎片的各方串通来泄露私钥,钱包将受到威胁。

4. 密钥管理:在MPC协议中,管理密钥份额并确保其安全存储和在需要时可用具有挑战性。

5. 复杂性:设计和实现MPC协议的正确性可能很复杂。如果操作不当,可能会出现错误或漏洞。

6. 通信开销:MPC协议通常需要参与方之间的大量通信,这可能影响性能并增加网络攻击的风险。


2

什么是多重签名?

多签钱包是智能合约钱包,需要两个或更多方使用自己的私钥提供签名来授权交易或恢复钱包。每个参与方都有自己的私钥,并将相应的公钥添加为智能合约中的授权实体。用户可以配置特定操作所需的最低签名阈值。例如,我可以设置恢复钱包时需要2个授权实体中的3个签署交易。这样,如果将来用户觉得某个实体的行为不当,可以将该实体从授权实体列表中删除。

 

自2017年Gnosis SAFE推出以来,多签智能合约一直很受欢迎。它是DAO和高净值个人用户最受欢迎的选择之一,包括Vitalik。SAFE本身在链上存储了超过400亿美元的资产。Sequence、Argent和Instadapp等其他参与者也利用了多签智能合约钱包的功能,用户可以通过第三方恢复其智能合约钱包。

 

在EIP 4337兴起之后,我们已经看到了模块化智能合约倡议(EIP-6900),这将为多签和其他智能合约钱包铺平道路。Soulwallet还发布了其模块化智能合约钱包基础架构的倡议。

 

优点

1. 增强安全性:多签钱包通过需要多个签名来执行交易,并提供了额外的安全层。这降低了单点故障或安全性需要受到妥协的风险。即使其中一个密钥持有人的私钥被盗窃,资金仍然安全,因为攻击者仍然需要访问其他授权密钥才能发起交易。

2. 恢复:在私钥丢失或被盗的情况下,多签钱包可以提供恢复选项。根据配置,剩余的授权方可以投票更改授权密钥集,以恢复钱包访问而不丢失资金。因此,用户不需要再存储私钥。

3. 模块:大多数多签智能合约钱包允许使用模块,通过这种模块化结构,可以设置如交易限制之类的模块。例如,如果在一个SCW中有4个授权实体,我们可以设置如下限制:

3.1. 小于100美元的交易需要一个签名,100美元到1万美元之间的交易需要两个以上的签名,超过1万美元的交易需要硬件密钥。

3.2. 我们还可以指定某些授权实体的角色,这意味着他们只能帮助恢复,但永远不能发起交易。这样,您可以自定义帮助您恢复资金的第三方。我们在Screen Protocol正在努力开发此类模块,以增强您的智能合约钱包的安全性。

3.3. Banana Wallet还将基于zk的双因素OTP引入SCW中,以防止通过添加双因素身份验证来防止欺诈。

由于模块可以是任何东西,所以未来的空间是无限的。由于所有这些模块都在链上,它们将是去中心化的,无需信任且可验证的。

4. 无信任假设:由于可以删除或编辑授权实体,对它们的信任假设较低。然而,在MPC中,如果一个实体拥有私钥的一部分,那么这个部分是永久的,并且您无法撤销该部分的授权。但是在多签钱包中,用户可以随时发送交易以将恶意方从授权实体列表中删除。

可以用任何代币支付gas fee:随着ERC4337的出现,用户现在可以以去中心化的方式使用任何代币支付gas fee,而无需依赖于中心化的中继器。在MPC中,如果没有引入中心化的中继器,这是不可能的。


缺点

1. gas fee:由于所有这些检查和恢复操作都在链上进行,所以与这些操作相关的gas fee是一样的。

2. 复杂性:多签钱包在投入生产之前必须经过严格的测试和审计,任何小错误都可能导致资金流失。也就是说,SAFE经过了适当的审计,在过去的4年中没有出现任何错误。

 

现在我们全面了解了这两个概念,让我们深入探讨一下我们分析最常见问题和误解的部分。



3

对MPC和多重签名的常见误区

现在,让我们解答一些关于这些概念的常见问题和误解。


1. SCW是新的,而MPC是经过试验的

 

事实是,自2017年以来,智能合约钱包(SCWs)一直存在,SAFE是推广多签SCWs的先驱之一。在其巅峰时期,SAFE存储了价值约1000亿美元的资产,许多DAO都将其资产托付给了SAFE。其他SCW提供商如Argent、Sequence和Instadapp也通过引入社交登录和恢复等功能来简化Web3生态系统。通过EIP4337的引入,SCWs现在可以成为区块链上的最出色的开发者。作为用户,您将不再需要外部拥有的账户(EOA)来向区块链发送交易。

 

另一方面,MPC主要用于高度信任的场景,企业与负责处理私钥分片的各方建立法律合同。然而,它在零售投资者或像您和我这样的日常用户中并没有得到广泛接受。这主要是由于分片的永久性质,因为它们始终留在持有它们的一方手中。


2. 多签目前只用在DOA中



多重签名钱包最初在DAO中得到了推广,现在也已经扩展到个人使用。事实上,我们在对现有的多重签名解决方案(如SAFE)进行研究时发现,约50%的SAFE钱包是由个人持有的。个人而言,我也选择将我的资金存储在像SAFE这样的多重签名钱包中。我发现它更安全,并且恢复过程非常简单。在我的情况下,我将我的钱包配置为2/4设备设置。我使用Metamask作为其中一个签名者,像Rainbow这样的移动钱包作为另一个签名者,还使用两个硬件钱包(如Trezor和Ledger)作为剩余的签名者。这种设置允许我分发密钥和存储密钥。对于大多数简单的交易,我使用我的移动设备作为第二个签名因素。如果我其中一个设备损坏或无法访问,我仍然可以使用我的硬件密钥恢复我的资金。与目前可用的任何硬件或MPC解决方案相比,这种方法提供了更高水平的安全性和便利性。


4

主要的关注点

#1 SCW的高燃气费用

 

由于SCW利用智能合约,与EOA或MPC相比,每笔交易都会产生一些开销。此外,在链上部署智能合约钱包也有成本。

 

然而,有几个因素有利于降低SCW的交易成本:

 

SCW具有批处理交易的能力,意味着通常需要多笔交易的多个操作可以在一个SCW的单个交易中完成。例如,与DeFi协议交互通常涉及多个步骤(例如批准、交换和存款)。在SCW中,所有这些操作都可以在一个原子交易中执行,从而节省gas fee。

ERC-4337支持签名聚合,允许多个SCW交易有效地“共享”一个签名,降低每笔交易的成本。Vitalik Buterin在这个问题上提供了一些相关的数字。

ERC-4337在用户的第一笔交易之前不会部署智能合约账户。在那之前,该账户存在于“虚拟”状态——它有一个地址,但并没有真正部署。这意味着用户可以接收资产而不会产生任何部署费用。

因此,SCW交易和常规交易之间的燃气费用比较取决于具体的工作负载。在某些应用程序中,特别是在DeFi领域,SCW交易可能更具成本效益。

 

#2 SCW的跨链功能具有挑战性

 

多链生态系统为用户和开发者提供了许多好处。然而,在多个区块链上部署相同的智能合约钱包代码面临着独特的挑战和权衡。

 

其中之一是虚拟部署的概念。虚拟部署允许在多个链上使用相同的智能合约代码和相同的初始条件部署,但也引发了一些问题:

 

无意识的状态漂移:每个链都有自己独特的状态和数据存储,可能导致智能合约在不同链上的状态不一致。

 

不完整性:虚拟部署在许多纯EVM链上表现良好,但在与EVM稍有偏差的链上(例如某些zk-Rollups)可能遇到困难,这可能破坏创建相同地址的能力。

 

虽然可以理解用户希望拥有单一的低级地址,但仅依赖虚拟部署可能存在局限性和潜在缺点。从长远来看,它可能成为一种反模式。

 

为了解决这个问题,ENS(以太坊名称服务)引入了多链地址解析。这种方法允许将单个ENS名称映射到不同的地址,并根据特定的链选择。它提供了一个统一的可读标识符,同时利用每个链上的不同低级地址为每个唯一账户。这种方法被认为优于仅依赖虚拟部署。

 

虽然跨链问题仍在不断改进中,各种研究人员一直在积极寻找最佳解决方案。您可以在SAFE论坛上探索SAFE的创始人提出的方法,网址为https://forum.safe.global/t/how-can-a-safe-hold-asset-on-multiple-chains/2242



5

引用

总之,我们主要解决了对MPC和多重签名钱包的误解。虽然MPC提供了隐私保护计算,但主要用于依赖于高信任的企业环境。另一方面,多重签名钱包已成为个人的可信选择,提供了增强的安全性和方便的恢复选项。正在解决gas fee和跨链功能等挑战,并持续进行研究以增强这些解决方案。我们在Screen上对SCW押注,并致力于将其优势带给每一个人。

本文来源:

https://screenprotocol.medium.com/mpc-vs-multi-sig-misconceptions-and-valid-arguments-95fc92ecf842

作者:Screen Protocol

翻译:杨赟博

分享仅供学习参考,若有不当,请联系我们处理。

END

热门文章:




隐私计算头条周刊(07.24-07.30)


李凤华:泛在共享环境下数据安全与隐私计算的发展趋势及应用


2023全球各国隐私计算发展最新动态盘点


社区招募丨OpenMPC隐私计算课程课代表征集


加入我们丨OpenMPC社区招募实习生

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存