多方计算(MPC)、阈值签名(TSS)和MPC-TSS钱包概述

  • Mohamed
  • 发布于 2天前
  • 阅读 267

本文深入探讨了数字资产安全领域,对比了传统钱包和多方计算(MPC)钱包的优缺点,重点介绍了基于阈值签名方案(TSS)的MPC钱包如何通过密钥分片和分布式密钥生成(DKG)来提高安全性,并分析了ZenGo钱包的具体实现及其备份恢复机制,强调了MPC技术在解决私钥管理难题中的作用。

⚠️ 永远不要忽视 👀 那个关键 🔐

I. 简介

传统的钱包使用助记词和分层确定性(HD)结构来生成私钥、公钥和链上地址,用于签署交易。这允许使用助记词轻松恢复密钥,但也意味着私钥的丢失可能导致资金的永久损失或暴露于恶意第三方。因此,保护私钥对于保障一个人的加密货币持有至关重要,因为传统的加密钱包通常由一个人拥有和控制。

为确保加密货币持有的安全和可访问性,一个可行的解决方案是将密钥职责分配给多个参与方或资源。这种方法可以显著提高私钥的安全性,因为它最大限度地降低了由于单个密钥的错放或损坏而造成的永久丢失的风险。此外,在紧急情况下,多方密钥管理系统可以提高恢复丢失密钥的能力。然而,实施这样的系统也可能引入额外的复杂性,可能使在需要时访问密钥更具挑战性。

本文探讨了数字资产安全性的迷人世界,并研究了在多个参与方或资源之间分配密钥职责的不同技术,包括 MultiSigSecret Sharing Scheme(秘密共享方案)。但是,我们将重点关注诸如 Multi-Party Computation (MPC)Threshold Signature Scheme (TSS) 之类的尖端解决方案,以及它们如何催生安全的 基于MPC的TSS钱包,从而应对数字资产管理的挑战。我们还将仔细研究加密货币行业中领先的MPC钱包解决方案提供商ZenGo,并分析其工作原理。**

经典金库:一把钥匙,一把锁 / 来源

与其担心复制钥匙,不如将重点转移到更换钥匙上!在多个参与者之间 分担私钥的责任是提高安全性的关键一步

拆分它!/ 来源

通过这种方法,盗窃和丢失的风险得以降低,因为攻击者需要窃取多个独立的密钥,并且只需要密钥的某个子集即可解锁金库。在接下来的章节中,我们将探讨旨在在多个参与者之间分配私钥责任的解决方案的演变。

III. MultiSig

MultiSig(多重签名)创建了一个具有多个锁和钥匙的金库,分担了其安全责任。它可以创建一个机制,只需要一些钥匙才能打开金库,从而使其对钥匙复制更安全。然而,这需要一种新型的金库,这种金库更容易被追踪,并且由于交易需要额外的签名而产生更高的费用

MultiSig金库:两把钥匙,两把锁。金库“更重”,看起来也不同 / 来源

优点:更好的安全性,因为密钥永远不会存储在同一个地方(如果构造得当)。

缺点:更高的费用,更少的隐私,并非所有地方都支持。

IV. 秘密共享方案

秘密共享方案(SSS)通过将密钥分成多个片段来分担金库的安全责任。这可以以冗余的方式完成,使得只有一定数量的密钥片段可以重新组装成一个功能密钥。密钥片段可以分配给多个参与方。

当使用秘密共享方案时,金库看起来与普通金库相同,因此解决了上述MultiSig的缺点。然而,秘密共享方案有一个主要的缺点:当密钥最初生成或重新组装以解锁金库时,它会再次以完整形式存储(即使是短暂的)。这个弱点为攻击者提供了一个获得密钥的绝佳机会。

秘密共享方案金库:一把密钥分成两部分,一把锁。金库看起来与经典金库相同 / 来源

优点:与普通交易类似的费用、隐私和通用支持。不使用时,密钥部分位于不同的位置。

缺点:在创建和使用时,密钥以完整形式存在,因此容易从单个位置被盗。

V. ✨ 让魔法发生!✨

我们能否编写一个解决方案,在不产生风险的情况下获得回报?

我们能否获得一个真正的多密钥系统,其中密钥始终分离且永不相遇,但金库仍然只有一个锁,因此它看起来与普通金库相同?

是的,我们可以。这正是阈值签名所做的事情。阈值签名基于多方计算(MPC)的密码学领域。在某种程度上,我们可以将阈值签名视为SSS和MultiSig的子代,继承了其父母的最佳品质。

1. MPC 简介

本质上,MPC是一种软件解决方案,它促进多个参与者之间的协作以实现共同目标,而无需任何一方将其数据披露给其他方。

正在运行的MPC!/ 来源

安全多方计算(MPC)使一组互不信任彼此或任何共同第三方的独立数据所有者能够共同计算一个依赖于他们所有私有输入的函数。

- 安全计算,Wei Jiang

更深入地说,MPC(多方计算) 是一种用于区块链上密钥管理的密码学技术。它指的是一套密码学技术,允许多个参与方(每个参与方都持有自己的私有数据)在不透露任何一方持有的私有数据的情况下评估计算。

MPC最简单的用例是允许两个(或更多)参与方共同计算函数输出,而不泄露他们的输入。例如:使用MPC,一群朋友可以安全地计算他们的平均工资(“输出”),而无需透露他们各自的收入(“输入”)。

多方计算有三个主要属性:

1. 正确性:参与多方计算的各方发起计算任务,并通过约定的安全多方计算函数执行协作计算。算法产生的结果是正确的(如预期的)。

2. 隐私:各方必须确保其秘密输入是独立的,并且在计算过程中不泄露任何本地数据。

3. 去中心化:提供了一种去中心化的计算模型,每个参与者完全平等,任何参与者或第三方都没有特权。

2. TSS 简介

阈值签名(TSS)允许各方共享对消息进行数字签名的能力。

阈值签名方案(TSS) 是一种用于分布式密钥生成和签名的密码学原语。在区块链客户端中使用TSS是一种新的范例,可以提供许多好处,尤其是在安全性方面。更广泛地说,TSS可以影响密钥管理系统(例如加密钱包)的设计,并为DeFi用例中的原生支持铺平道路。话虽如此,TSS仍然是一项新技术,因此也应考虑风险和局限性。

阈值签名需要授权的参与者子集代表该组生成签名。只有当阈值(t out of n,t = 签名者的阈值,n = 签名者的总数)的签名者签署消息时,该消息才被认为是已签名的。

阈值签名 / 来源

3. 基于MPC的阈值签名

基于MPC的阈值签名方案以某种方式将私钥分成多个“片段”,这些片段由多个参与方持有当需要签名时,多方计算确保这些片段可以直接生成合法的签名而无需将它们放在一起。“无需将所有内容放在一起”意味着真实的私钥永远不会出现,也不需要出现。

使用阈值签名,每个参与方独立创建密钥。然后,他们以模块化的方式共同伪造金库的锁,其中每个参与方塑造锁的一部分,该部分对应于其密钥。最终,在此过程结束时,会创建一个具有单个模块化锁的金库,该锁对应于每个密钥。

该金库与常规的单锁金库没有区别。锁的模块化性质无法被外部观察者检测到。

阈值签名金库:两把钥匙,一把锁。金库看起来与经典金库相同 / 来源

优点不同的密钥永远不会相遇,阈值签名金库与常规金库无法区分,因此是通用的,并且具有与常规金库相同的隐私性和成本(费用)。

缺点:塑造模块化锁和解锁过程的交互性质要求所有参与方在操作过程中都在场(与MultiSig不同,MultiSig中每个参与方可以异步签名)。塑造过程对性能要求更高,但由于该领域的最新进展,这在很大程度上是可行的。

VI. 基于MPC的TSS钱包

MPC钱包通过使用阈值签名方案(TSS)消除单点故障在这种模式下,我们创建并分发私钥的 份额 ,使得没有任何一个人或机器完全控制私钥 — 这个过程称为分布式密钥生成(DKG)。

“由MPC驱动的钱包可以支持普通自托管钱包可以支持的任何和所有功能。不仅可以发送、接收和交易,还可以使用dApp、DEX、存储和交易NFT、参与治理投票、进行yield farming、玩web3游戏等。”

Pete kim — Coinbase

任何一方都不会持有完整的私钥。相反,他们各自持有一部分。各方必须始终协同工作才能创建公钥(该公钥是从私钥的所有份额中以密码学方式导出的)和交易签名。

MPC钱包使各方可以共享签名和加密数据的责任,而无需任何一方持有完整的私钥。密码学应用程序使用多方计算(MPC)来生成数字签名或解密数据,而无需共享私有输入。

基于TSS的钱包,还具有一个不错的安全功能,即能够旋转私钥,而无需更改相应的公钥和区块链地址。私钥旋转,也称为主动秘密共享,是另一种MPC协议,它将秘密份额作为输入,并输出一组新的秘密份额。可以删除旧的秘密份额,并以相同的方式使用新的秘密份额。

这种结构为安全性增加了一个时间维度,这意味着攻击者必须同时位于多个位置才能攻击阈值钱包。如果在旋转之前和之后组合秘密份额,如果攻击者想要伪造签名,将不会获得额外的能力。

基于MPC的TSS钱包能够实施多种恢复技术,以使用户在丢失钱包的情况下重新获得对其钱包的访问权限。钱包中实施的特定恢复技术组合取决于钱包的设计和安全需求。在本文中,我们将探讨ZenGo钱包使用的备份模型。

优点:

  • 改进的安全性:基于MPC的TSS钱包提供改进的安全性,因为私钥永远不会完全暴露或存储在单个设备上,从而降低了盗窃或黑客攻击的风险。
  • 提高的隐私性:使用基于MPC的TSS钱包,私钥永远不会在任何一个设备上重建,从而提供增强的隐私性和匿名性。
  • 用户友好:基于MPC的TSS钱包可能比其他类型的安全钱包更用户友好和易于访问,因为用户不必自己管理私钥。
  • 分布式信任:由于基于MPC的TSS钱包使用多个参与方来签署交易,因此它们促进了分布式信任,从而减少了对单个受信任实体或第三方的依赖。

缺点:

  • 技术复杂性:基于MPC的TSS钱包可能在技术上很复杂,可能需要更高的技术知识水平才能使用和理解。
  • 选择有限:与其他钱包相比,基于MPC的TSS钱包可能对加密货币的支持有限,从而使其对用户而言灵活性较差。
  • 网络依赖性:由于基于MPC的TSS钱包需要多个参与方才能签署交易,因此它们依赖于可靠的网络连接,并且可能比其他类型的钱包慢。
  • 采用有限:由于其技术复杂性和有限的支持,基于MPC的TSS钱包尚未被广泛采用,从而使其对大多数用户而言不太容易访问。

VII. ZenGo — 基于MPC的TSS钱包

不是你的钥匙,就不是你的加密货币?过时了。

ZenGo (白皮书) 钱包是非托管的(意味着ZenGo无法访问或控制你的资金)并且是无密钥的使用阈值签名,ZenGo已将传统的私钥替换为两个独立创建的“数学秘密份额”,这些份额永远不会相遇,从而消除了单点故障。一个份额存储在客户的移动设备上,另一个份额存储在ZenGo服务器上。因此,即使其中一个份额被泄露,攻击者也不会知道另一个份额,你的资产仍然是安全的。

ZenGo系统是一个“二分之二”方ECDSA(Bitcoin、Ethereum等使用的签名算法)阈值签名系统。两个参与方是安全的ZenGo服务器和ZenGo用户的移动设备,它们可以共同执行所有需要的密码学功能(如密钥生成、交易签名和交易验证),而任何一方都不会泄露各自的秘密。

我们使用分布式密钥生成协议来分别生成每个密钥。这样,任何一方都无法访问另一方的秘密。我们还创建了一个分布式签名协议,以便始终需要两个份额才能在区块链上签署交易。这些份额永远不会离开创建它们的设备。这两个协议都基于众所周知的Lindell协议,我们对其进行了修改以适应ZenGo。我们所做的一项修改是确保只有移动设备才能发起交易。这样,我们永远无法访问或转移客户的资金。你可以在GitHub上检查和审核我们的开源实现。 并且“瞧!”,你的帐户已恢复,你可以再次访问你的资金。

客户端共享恢复 / 来源

B. ZenGo备份的工作原理: 服务器端

为了应对这种情况,ZenGo设计了一个解决方案,该解决方案在概念上与客户端恢复相对相似,但不需要ZenGo的服务器运行。据我们所知,这是我们行业中的第一个此类解决方案。我们称之为“CHILL STORAGE™”。

ZenGo的创新性解决方案涉及为服务器共享创建主加密和解密密钥,从而确保万无一失的安全性,并且每个客户端都获得该服务器共享的加密版本(使用主加密密钥加密)。然后将主解密密钥存放在已建立的托管服务提供商(EscrowTech)中,同时指定一个值得信赖的律师事务所(JRG)作为受托人。受托人发挥着至关重要的作用,定期验证和报告ZenGo的“生存证明”,其中包含法律和技术标准,以确保你的资金始终安全。

现在,让我们深入了解有效恢复“服务器共享”的步骤:

  1. 如果受托人发现ZenGo无法正常工作,他们有权从托管提供商处请求解密密钥
  2. 收到请求后,受托人将继续将解密密钥发布到专门的GitHub帐户。该过程由真人执行,并采取各种安全措施和检查措施,以防止任何错误信号。

服务器共享恢复 / 来源

为了确保无缝的用户体验,ZenGo在公开发布之前对该解决方案进行了严格的测试。这涉及模拟与受托人一起发布的密钥,以验证备份系统的有效性。你可以在此处找到此验证测试的全面详细信息。

结论

总而言之,本文讨论了传统加密货币钱包的缺点以及高级安全机制对于保护私钥的必要性。它深入研究了多方计算(MPC)、TSS和基于阈值签名方案(TSS)的钱包,以此作为克服数字资产持有者安全挑战的创新解决方案。本文详细分析了加密货币行业中著名的MPC钱包解决方案提供商ZenGo。此外,还提供了一个比较摘要表,该表基于多个标准评估了传统钱包、基于MPC的TSS钱包和MultiSig钱包。

传统钱包 VS MPC/TSS 钱包 VS MultiSig / 来源

我希望你觉得这篇文章内容丰富,并且获得了关于数字资产持有者安全挑战的最前沿解决方案的宝贵见解。我想对本文中用作来源的文章的优秀作者表示衷心的感谢。不要忘记查看上一节中使用的文章的链接以及更多内容。最后,非常感谢我的同事们审阅了这篇文章并提供了宝贵的反馈。保持学习并保持安全!

来源和进一步阅读

相关的GitHub仓库

  • 原文链接: mmasmoudi.medium.com/an-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Mohamed
Mohamed
江湖只有他的大名,没有他的介绍。