作者:Julia Wu
来源:medium
MPC是被Coinbase和Fireblocks等巨头追捧的新的热门缩写词。一个可用于建立大规模、保护隐私的应用的工具。
简单地说,MPC允许一个组织在不透露每个参与者的私人输入的情况下进行计算。
MPC还支持“半托管”钱包,作为带有助记词的完全非托管钱包的替代方案。
这篇文章旨在提供对MPC的初步看法,但兔子洞可以挖得很深。文末还提供了额外的资源链接供感兴趣的读者阅读。
介绍MPC
自80年代以来,它一直是密码学的一个大主题(由Andrew Yao首创),最近又应用于数字资产。该协议主要停留在学术和理论领域,直到2000年代计算能力和算法的改进使其有可能付诸实践。
顾名思义,MPC的目标是允许多方共享计算某些数据的能力。多个参与者可以持有一段私有数据,例如私钥的一部分。每一段都可以用来签署一项交易,而不需要透露整个私钥,甚至是单独的部分。
有一个被称为姚氏百万富翁问题(Yao’s millionaires’ problem)的假设性用例:想象一下,有两个朋友,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可以配置为要求所有或一个阈值的密钥份额在同一时间出现,或者在各自的时间内执行计算。
如果黑客想要访问钱包,他们现在必须想办法访问密钥的所有部分。仅仅从一个人那里拿到密钥是不够的。在组织和团队的情况下,现在多人可以访问一个钱包,而没有能力让一个人带着资金跑路。
相关:阈值数字签名(TSS)
TSS是指在需要n方中至少有m方的阈值产生签名,从而消除了对单个实体的信任。该协议可以与MPC相结合,要求最低数量的签名来批准一笔交易。
多重签名vs. MPC
多重签名与MPC的区别在于,不同于将一个密钥分成由多方持有的多个份额(MPC),多重签名中的每一方都有自己的私钥。为了使交易成功,需要有最小的签名者阈值来批准。
https://docs.gnosis-safe.io/introduction/the-programmable-account/eoas-vs.-contract-accounts
使用MPC,签名过程分布在多台计算机上,每台计算机使用单个密钥份额处理一段私有数据。这些份额共同合作,以分布式的方式签署交易。
多签钱包将使用不同的私钥创建不同的签名,而MPC是由一个私钥的多个份额组成的单一签名。
为了使多签运行,区块链需要支持它。但并不是所有的链都支持多签钱包,它通常以智能合约的形式出现。MPC使用的是标准化的加密签名算法(ECDSA:椭圆曲线数字签名算法),绝大多数区块链都可以实现这种算法。
使用多签,支持dApp或大多数DeFi服务也就不那么容易了,因为一笔交易需要多个签名才能被批准——这与MetaMask上一次点击的常见流程不同。
Coinbase的Pete Kim解释得很清楚:
“一个由MPC驱动的钱包(我们称之为dApp钱包),可以支持一个正常的自我托管钱包所能支持的一切。不只是发送、接收和交易,还可以使用dApps、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的无缝链上交互。然而,见证这些围绕为用户和组织提高安全性的解决方案所做的努力是非常令人兴奋的。
来源和进一步阅读
深入了解