多方计算 (MPC) 101

  • juliawu
  • 发布于 2022-07-25 22:33
  • 阅读 35

本文介绍了多方计算 (MPC) 技术,它允许多方在不泄露各自私有输入的情况下进行计算。MPC 在密钥管理方面具有重要意义,它可以将私钥分成多个部分存储在不同的地方,从而提高安全性。文章还比较了 MPC 与多重签名 (Multi-sig) 方案,并介绍了 Fireblocks、ZenGo 和 Coinbase 等公司在 MPC 方面的应用。

它是由 Coinbase 和 Fireblocks 等巨头推广的,在街头巷尾流行起来的新缩写。一种可用于构建大规模、保护隐私应用程序的工具。

简而言之,MPC允许一组人进行计算,而无需泄露每个参与者的私有输入。

MPC 还支持“半托管”钱包,作为具有助记词的完全非托管钱包的替代方案。

这篇文章旨在提供对MPC的初步看法,但这个兔子洞可能会非常深。对于好奇的人,我在最后链接了一些额外的资源。

MPC 简介

自 80 年代以来,它一直是密码学中的一个重要课题(由 Andrew Yao 开创),最近应用于数字资产。在 2000 年代,计算能力和算法的改进使其成为可能,该协议主要保留在学术和理论领域中,直到 2000 年代才将其付诸实践。

顾名思义,MPC 的目标是允许多方共享计算某些数据的能力。 多个参与者可以持有私有数据的一部分,例如私钥的分区。 每部分可用于签署交易,而无需泄露整个私钥,甚至无需泄露各个共享。

这是一个假设的用例,被称为 姚氏百万富翁问题 (1982):想象一下 2 位朋友,Alice 和 Bob,他们想找出谁更富有,而无需透露每个人的确切净资产(与你的朋友一起尝试,风险自负)。

https://www.researchgate.net/figure/Millionaires-problem_fig1_320290997

在这种情况下,要计算的函数是:

F(x1,x2) = max(x1,x2)

使用 MPC,这两位百万富翁可以找出谁赚的钱最多,而不必确切地分享每个人赚多少钱。 每个人都提供他们工资的数据,该函数可以指示谁给出的输入最高。

MPC 的第一个大规模商业用例是在 2008 年,当时该协议在丹麦的甜菜密封投标拍卖中使用。 出价最高者赢得拍卖,但支付第二高出价者提出的价格。 MPC 用于在确定投标等级的同时保持投标价格的私密性。

与密钥管理的相关性

说到加密货币钱包,如今最大的问题之一是丢失或赠送助记词有多么容易。 这就变成了一个单一的妥协点。

通过 MPC,私钥不再需要存储在单个位置——因为 MPC 通过分布式密钥生成将密钥分解成多个部分。 这些部分可以由多个当事方存储在不同的地方。

各个密钥(私钥共享)由一组端点(计算机或移动设备)随机化。 这些端点可以使用各自的私有共享来计算公钥(钱包地址)——仅使用其私钥的一部分! 整个“裸”密钥永远不会在一个地方形成或泄露。

当需要签署交易时,MPC 协议将召唤每个独立的共享所有者以分布式、私密的方式签署交易。

每个参与者的输入都馈送到一个函数中。 此输入包括他们的密钥共享和一条私有消息。 输出是一条已签名的消息。 数字签名看起来就像是用单个私钥完成的一样。 然后将其发送到区块链网络以批准交易。

MPC 可以配置为要求全部或达到阈值的密钥共享同时存在,或在他们自己的时间内执行计算。

Axelar 网络:安全措施

如果黑客想要访问钱包,他们现在必须找到一种方法来访问密钥的所有部分。 仅从个人那里获取密钥是不够的。 对于组织和团队而言,现在多人可以访问钱包,而无需一个人带着资金逃跑。

相关:阈值数字签名

TSS 是指需要至少 m out of n 方来生成签名,从而无需信任单个实体。 该协议可以与 MPC 结合使用,以要求最少数量的签名来批准消息。

多重签名 vs. MPC

多重签名和 MPC 之间的区别在于,多重签名中的每个参与方都有自己的私钥,而不是 1 个密钥被拆分为由多个参与方持有的多个共享(MPC)。 为了使交易成功,需要达到最低阈值的签名者批准它。

https://docs.gnosis-safe.io/introduction/the-programmable-account/eoas-vs.-contract-accounts

使用 MPC,签名过程分布在多台计算机上,其中每台计算机使用单个密钥的共享来处理一条私有数据。 这些共享共同协作以分布式方式签署交易。

多重签名钱包将使用不同的私钥创建不同的签名,而 MPC 是来自私钥的多个共享的单个签名。

为了使多重签名起作用,区块链需要支持它。 但并非所有链都支持多重签名钱包,这些钱包通常以智能合约的形式出现。 MPC 使用标准化的密码签名算法 (ECDSA),该算法可以由绝大多数区块链实现。

使用多重签名,也不容易支持 dApp 或大多数 DeFi 服务,因为需要多个签名才能批准交易——这与 MetaMask 上单击的常见流程不同。

在你的收件箱中获取 Julia Wu 的故事

免费加入 Medium,即可获取这位作者的更新。

Coinbase 的 Pete Kim 很好地表达了这一点:

“由 MPC 提供支持的钱包(我们称之为 dApp 钱包)可以支持普通自托管钱包可以支持的任何事物。 不仅可以发送、接收和交易,还可以使用 dApp、DEX、存储和交易 NFT、在治理中投票、进行收益耕作、web3游戏等。”

即使 MPC 只会输出单个签名,但它也具有更复杂的审批结构。 MPC 钱包可能无法确定哪个密钥部分用于签署交易,因为所有密钥共享都对同一签名做出了贡献。 使用 MPC 钱包,硬件安全模块(HSM,又名硬件钱包)也缺乏支持。

多重签名示例:Gnosis Safe

Gnosis Safe 允许用户定义所有者账户列表和确认交易所需的最低签名阈值。 当达到阈值时,可以执行 Safe 交易。

多重签名需要最少数量的人批准交易才能处理。 如果企业中有 3 位利益相关者,你可以配置 Gnosis,以便交易成功需要所有 3 个人批准。 它也是自托管的。

要开始使用,你需要一个签名者钱包,例如 MetaMask。 Gnosis Safe 本身不持有私钥,因此它无法签署或执行交易。

https://gnosis-safe.io/static/df5a5bc44d16189df7e6b1cc9556a685/bc8e0/multisig.png

使用中的 MPC

Fireblocks

Fireblocks 为 1300 家大型机构参与者提供服务,它提供了一个用于数字资产托管的平台,该平台涉及 MPC 钱包、代币发行/管理以及对 defi 的访问。 它的客户包括银行、交易所、贷款平台、对冲基金、做市商和其他机构。

Fireblocks 的一个客户,Revolut(估值 55 亿美元,是最大的金融科技公司之一),正在使用 Fireblocks MPC 为 1300 万全球零售客户推出加密货币服务。 该基础设施用于为数字资产转移提供安全支付轨道。 通过 MPC 钱包,Revolut 可以添加涉及加密货币的产品线和面向零售的功能。

ZenGo

ZenGo 创建两个密钥共享,一个存储在你的移动设备上,另一个存储在 ZenGo 服务器上。 这意味着 ZenGo 无法访问你的资金,但用户启动一个过程,其中服务器和设备共享将签署交易,而不会向彼此透露各自的秘密。

https://zengo.com/a-deep-dive-into-zengo-guaranteed-access-solution/

Coinbase

Coinbase 正在推出一种让用户探索 dApp 的方式,而无需管理恢复短语,并使用 MPC 将密钥在用户和 Coinbase 之间进行拆分。

结论

我们仍处于 MPC 的早期阶段,但它正成为一种引人注目的选择,可以以一种在保留用户体验的同时确保数字资产安全的方式来避免将整个私钥在线、离线或物理设备中存储(单一的妥协点)。

我们尚未看到 MPC 钱包被广泛采用并用于与 MetaMask 类似、无缝的链上交互。 然而,目睹这些围绕增强用户和组织安全性的解决方案所做的努力,令人感到非常兴奋。

来源和延伸阅读

深入研究

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

0 条评论

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