Cointime

扫码下载App
iOS & Android

Ledger Key Recover 何去何从: 一文读懂 MPC 钱包技术原理

项目方

作者:Dr. Simon Shieh 

编者按:

本文为 Numen Cyber 安全架构师 Dr. Simon Shieh 所撰写,关于 MPC 钱包原理,主要分为五大部分,分别为:

1.MPC 简介

2.TSS 原理

3.主流 TSS 简介

4.对 Ledger Key Recover 的建议

5.总结

Dr. Simon Shieh 表示,对于 MPC 钱包的核心技术 TSS,如果使用得当,TSS 的引入对于降低用户门槛和提高安全性方面有很大的帮助。

但如果 TSS 使用不当,例如零知识证明缺失、私钥分片存储不当等问题,仍然可能会造成私钥的泄露和资产的丢失。

全文共 7059 字,全文阅读需 40min。

0、引言

世界最大冷钱包公司 Ledger 技术长查尔斯(Charles Guillemet)5月16 日深夜发表 Ledger 新产品“Ledger Recover”。

使用者只要通过双重身份验证(护照和身份证),输入或创建个人钱包私钥后,该私钥将拆分成三个碎片分给三间公司独立保管,使用者若私钥丢失后,即可透过 Ledger Recover 向其中任意两家保管公司申请,恢复新的私钥登入自己的虚拟钱包。 

本来是出于资产安全和降低操作门槛的考虑,却引起了用户的强烈不满,认为私钥不应离开加密芯片,且该功能有三家公司合伙作恶和侵犯隐私的嫌疑。 

那么 Ledger 的这项新服务到底是什么技术原理?该技术安全性如何?应该如何打消用户的疑虑呢?本文将向大家详细介绍这项新服务背后的技术原理。 

1、MPC 简介

“Not your keys, not your assets,不是你的私钥就不是你的资产”。

如果你拥有或曾经拥有过加密资产,这句话你一定听说过。作为行业内最重要的忠告之一,这句话要求用户保管好自己的私钥,从而自行保管好自己的加密资产。

但目前主流的去中心化加密钱包,都需要用户记录长长的助记词或保管好自己的私钥文件,使用起来麻烦不说,因遗失私钥和助记词而丢失资产也时有发生,且黑客会利用各种骚操作来偷来骗用户的私钥和助记词。

这就使得用户进入 Web3 的门槛变得非常高,而且时刻有损失资产的风险,从而导致 Web3 生态发展停滞,增量消失。 

那么,怎么解决这一问题呢?近期多个头部平台、钱包开发商不约而同地上线 MPC 钱包方案,并宣称 MPC 钱包相比传统钱包更安全,用户操作门槛更低,其中就包括 Ledger 上线的 key recover 服务。 

这是什么原理呢?MPC 又是什么黑科技呢? 

MPC,即多方计算,全称为 Multi-Party Computation,有时也叫 SMPC,多方安全计算(Secure Multi-Party Computation)。

是指在一个互不信任的多用户网络中,在无可信第三方的情况下,多个参与方协同计算一个约定函数,除计算结果以外,各参与方无法通过计算过程中的交互数据推断出其他参与方的原始数据。

1982年,姚期智院士提出著名的“姚式百万富翁问题”:两个百万富翁 Alice 和 Bob 在街上相遇,他们都想知道谁更富有,但又不愿意让对方知道自己具体财富多少。如何在没有第三方的情况下,让对方知道谁更有钱?

那么可以假设 Alice 有一个私人数字 a, Bob 有一个私人数字 b,双方的目标是解不等式 a 是否 ≤b。或者更精准的说,除了得到不等式了 a≤b 或 a>b 外,不会得出任何与 a 或 b 相关的其他信息。

姚院士使用了混淆电路和不经意传输技术解决了这一问题,开创了隐私计算的 MPC 学派。  

相对于现实中的问题来说,比较大小可能只是最简单的一类问题,在 MPC 发展的过程中,归集、并集,数学计算,多重签名等问题被提出,并得到相应的解决。 

其中 TSS(Threshold Signature scheme,门限签名)就是解决多签问题的方案,也是现在 MPC 钱包的技术基础。 

2、TSS 原理

门限签名(Threshold Signature Scheme)首先是一类签名方案的统称。它的核心思想是将私钥 K 分割成多个部分,然后由一定数量的分割部分(达到设定的阈值)联合进行签名,可以达到和完整私钥K来签名相同的效果。

这种策略提高了数据保护的强度,同时减少了单点故障的风险。 

门限签名的基本原理源于门限密码学,这是密码学的一个分支,关注的是如何将秘密信息分割成多个部分,并要求至少有t个部分(t 为阈值)才能恢复原始的秘密信息。

在{t,n}表示的门限签名中,私钥被分割成 n 个部分,然后至少需要 t 个部分才能有效签名,而不论多少个私钥分片在一起,都只能完成签名,而无法泄露完整私钥和其他私钥分片信息。 

在这个过程中,需要解决的问题主要有两个部分:

1.如何在没有第三方的情况下生成私钥分片;

2.如何在不暴露私钥分片的情况下完成门限签名。 

其中第一个部分又称为 DKG(Distributed Key Generation,分布式密钥生成)过程。本质上,DKG 过程中采用的秘密分享算法和秘密参数的不同,造就了不同风格的门限签名算法。 

2.1、DKG 过程

DKG 过程本质上是个没有中心化分发者(Dealer)的秘密分享过程。在解读 DKG 过程之前,我们先来了解下秘密分享。 

2.1.1、秘密分享 

秘密分享是信息安全和数据保密中的重要手段,它在重要信息和秘密数据的安全保存、传输及合法利用中起着非常关键的作用。

秘密分享的概念最早是由 Adi Shamir(2002 年图灵奖获得者)于1979年提出的。为了解决把一个秘密值拆分为 n 个部分,当有 t (t≤n) 个成员提供他们保管的信息后就能恢复出秘密值的问题,他提出了秘密分享算法。 

秘密分享实际由两个算法组成——秘密份额的分配算法和秘密的恢复算法。

在执行秘密份额的分配算法时,分发者(Dealer)将秘密分割成若干个份额(share,或小块 piece,或影子 shadow)在一组参与者中进行分配,使得每一个参与者都得到关于该秘密的一个秘密份额。

秘密的恢复算法保证只有参与者的一些特定的子集(称为合格子集)才能有效地恢复,而其它子集不能有效地恢复秘密,甚至得不到关于秘密的任何有用信息。 

Shamir's Secret Sharing(SSS)算法的核心原理在于: 2 个点可以唯一确定一个 1 次多项式(直线),3 个点可以唯一确定一个 2 次多项式(抛物线),依此类推, t 个点可以唯一地确定一个 t−1 次多项式。 

这样,我们就可以构造一个 t-1 次多项式,n 个成员相当于在多项式上取 n 个点,而恢复 t−1 次多项式仅仅需要 t 个点就够了,这样就实现了任意 t 个成员都可恢复出同一个 t−1 次多项式,我们事先把秘密值编码到多项式中(具体做法就是 xx取 0 时的 yy值作为秘密值,也就是多项式的常数项=秘密值),就可以恢复秘密值了。 

下图就是一个{3,4}秘密分享的原理示意图。 

2.2.2、计算公共s

2.2.3、防止流氓私钥攻击(Rogue Key Attack)

Numen|零知识证明引论Part 1

Numen | 零知识证明引论Part 2

Numen | 零知识证明引论Part 3

Numen | 零知识证明引论Part 4

注意,这里的零知识证明是必不可少,否则会导致完整私钥泄露等严重的安全问题,这里有个省略零知识证明造成私钥泄露的

例子:https://www.fireblocks.com/blog/bitgo-wallet-zero-proof-vulnerability/ 

3、主流 TSS 简介

由于 MacKenzie-Reiter 算法在 DKG 阶段的零知识证明过程是很复杂的,涉及很多运算,代价比较大,所以并没有达到可工程落地的标准。但近几年随着零知识证明的发展,一些新的 TSS 算法被提出,并广泛的应用到了区块链的多签钱包方案中。下面将按照基础签名算法的不同来一一介绍应用较为广泛的 TSS 算法。 

3.1、基于 ECDSA 的 TSS

3.1.1、Lindell17  

2017 年,Yehuda Lindell (Coinbase 首席密码学家)在论文 Fast Secure Two-party ECDSA Signing 提出一个更快的两方 ECDSA 方案。其通过在构造  的过程中引入随机数  ,在增加安全性的同时,减少了零知识证明过程的代价:

在 multi-party-ecdsa 中有 Lindell 17方案的完整开源实现,参考:https://github.com/ZenGo-X/gotham-city/blob/master/white-paper/white-paper.pdf  blockchain-crypto-mpc 这个库则实现了 Lindell 17方案的加法形式,这样可以更方便的做 key resharing,同时也实现了 MtA 过程中的 Range Proof。 最近,OKX 也开源了自己钱包的 TSS 库:https://github.com/okx/threshold-lib基于业务场景,使用了 Feldman’s VSS 来构造了一个基于 Lindell 17的{2,n}门限签名算法。不过,在该代码库中未发现 Range Proof 的实现。  

3.1.2、 GG18  由于 Lindell 17方案的实用性,基于此,很多{t,n}签名方案被提出,2018 年  Rosario Gennaro(纽约市立学院教授,Protocol Labs的密码学家) 和  Steven Goldfeder (Arbitrum 的 CEO)在论文  Fast Multiparty Threshold ECDSA with Fast Trustless Setup 中提出了一个通用的{t, n}签名方案,并统一了 DSA 和 ECDSA 的表达形式,简称 GG18 方案。 GG18 方案是第一个有影响力的、进入实用阶段的 ECDSA {t,n}门限多签协议。大部分后续提出的门限多签协议,都可以看作是 GG18 不同角度的优化版本。  相比于 two-party ECDSA 签名,GG18 在 DKG 阶段需要经过4轮操作,其中包括3轮密钥分发和1轮公钥验证:每个参与者先把自己的秘密值通过 {t, n} Feldman-VSS 方法分享给其它所有参与者,然后在 Pedersen's DKG 的基础上使用 Schnorr proof 来确保各个参与者的公私钥对应。  在签名阶段,GG18 一共需要进行9轮操作,每两个参与者之间都要进行两次 MtA 过程。  有的 GG18 实现(如 Binance 的实现和 Safeheron 的实现)包含了 Range Proof,而有的 GG18 实现(ZenGo 的实现)则没有包含 Range Proof。  

3.1.3、 GG20  继GG18

之后,Rosario Gennaro 和 Steven Goldfeder 于 2020 年发表论文 One Round Threshold ECDSA with Identifiable Abort,被称为  GG20,它比 GG18 更优秀: 签名轮数更少:GG18 的签名过程需要 9 轮,而 GG20 的签名过程,被整理为离线预处理阶段和线上签名简短,只需要 7 轮,而且前 6 轮的离线预处理和待签名的  无关,可提前进行 。 可识别恶意参与者:GG18 协议,如果有恶意参与者,那么协议会终止,但却不知道谁是恶意参与者。在 GG20 协议中,引入了带有 Identifiable Abort 的承诺形式,只要失败,就可识别出是谁的责任,从而防止一直有参与方作恶导致协议 DDoS 的情况。 目前已实现 GG20 协议的库包括: 

  • Thorchain: https://gitlab.com/thorchain/tss/tss-lib  
  • ZenGo:https://github.com/ZenGo-X/multi-party-ecdsa  
  • Safeheron: https://github.com/Safeheron/multi-party-ecdsa-cpp 

 值得注意的是,ZenGo 的代码库中未发现针对 GG18 和 GG20 的 Range Proof 实现,但是在其 Lindell 17的代码库中,实现了 Range Proof。 以上其他的两个项目库都可以找到 MtA 过程中的 Range Proof 实现。  

3.2、基于 Schnorr 的 TSS

  相比基于 ECDSA 的门限签名方案,基于 Schnorr 的门限签名方案发展比较晚,目前最优的方案是2020 年,ChelseaKomlo 和 Ian Goldberg 在论文 FROST: Flexible Round-Optimized Schnorr Threshold Signatures 中提出的 FROST 方案。 FROST 的 DKG 过程和基于 ECDSA 的协议没有什么区别,而签名过程则简单的多,是一个两轮协议。由于第一轮操作不会涉及到待签名消息  ,所以它可以提前进行。我们从标准的 Schnorr 签名可以看出最终的签名  相对于秘密  和  来说是线性可加的。所以最终的签名只要把 t 个参与方的签名相加就可以得到。这个过程由于没有了同态加密和 MtA,所以节省了很多同态运算和 Range Proof 的资源。 从以上描述来看,FROST 签名的好处很多,其实在门限签名方面,FROST 签名方案是最简单高效的,而且安全性上也没有什么问题。唯一的缺点就是每个节点都要维护一棵 Merkle Tree,这个数据存储量会随着{t, n}的增大而增大。 那么 FROST 签名还没有完全流行,是因为目前只有 Taproot 更新后的比特币和少数几个非主流区块链项目使用了 Schnorr 签名,该方案还无法兼容更主流的 ECDSA 签名场景。 Zcash 已经实现了一个FROST开源代码库:https://github.com/ZcashFoundation/frost可以发现该算法是可以发现作恶参与方的。  

4、对 Ledger Key Recover 的建议

我想,如果理解了以上 TSS 算法,那么从 Ledger 官方的描述来看,不难判断出,Ledger Key Recover 应该是使用了某种{2,3}秘密分享方案,并且以用户自己作为一个 Dealer,给三家公司通过秘密共享的方式派发了私钥分片。为了仍然保留单私钥的操作体验,用户在平时签名时,仍然使用的是单私钥签名,只有当私钥丢失的情况下,才会请求三家公司中的两家来恢复私钥。 那么这之中存在的安全风险点包括: 

  • 三家公司中,只要有两家合谋就可以私自恢复用户私钥 
  • 用户作为 dealer 派发私钥分片时,有被全部截获的风险 
  • 其所使用的算法并未开源,无法判断是否有安全漏洞 
  • KYC 信息泄露风险 

 那么在目前的情况下,我们建议用户还是谨慎使用该功能。我们建议作为硬件钱包,应当尽量减少用户使用过程中网络信息的传输,具体到MPC方案,可以使用经过安全审计的开源方案帮助并指导用户在本地进行私钥分片的备份,或者让用户自行选择私钥分片灾备的服务商。 

5、总结

本文介绍了 MPC 钱包的核心技术原理 TSS,如果使用得当,TSS 的引入对于降低用户门槛和提高安全性方面有很大的帮助。 但如果 TSS 使用不当,例如零知识证明缺失、私钥分片存储不当等问题,仍然可能会造成私钥的泄露和资产的丢失。 Numen Cyber 建议用户选择代码公开透明且经过安全审计的 MPC 钱包来存储自己的加密资产;也建议钱包项目方关注 TSS 代码的安全性,选择适合自己业务场景的 TSS 算法。 同时,Numen Cyber 已经成为 Cobo MPC  托管方案的灾备分片存储供应商,作为可信第三方,帮助用户存储其在 Cobo 平台生成灾备私钥分片,在B 端托管领域已经有不少成功案例。我们也正在寻找 C端 MPC 钱包的合作伙伴,希望能够通过我们的安全和灾备能力,共建安全、高效的钱包生态。

来源:https://mp.weixin.qq.com/s/uTDxiLiqQZgTRA8gA8I70w

评论

所有评论

推荐阅读

  • 中共中央、国务院印发《关于发展新质生产力的意见》

    10月9日,据新华社报道,中共中央、国务院印发《关于发展新质生产力的意见》,共七个部分、十九条。意见提出,以科技创新为引领,以全要素生产率大幅提升为核心标志,坚持创新主导、改革为要、因地制宜、先立后破。在产业方面,意见要求培育壮大新兴产业,前瞻布局量子科技、生物制造、氢能和核聚变能、脑机接口、具身智能、第六代移动通信等未来产业,并全面实施「人工智能+」行动,加快推进人形机器人等新一代智能终端场景应用。在激励与金融支持方面,意见提出建立企业研发准备金制度、提高企业研发费用加计扣除比例,完善长期资本投早、投小、投长期、投硬科技的支持政策,壮大耐心资本,丰富科技创新债券产品体系,支持优质科技型企业上市融资,优化科技型企业并购重组、股权激励等制度。意见同时强调,不能脱实向虚、贪大求全、搞泡沫化,严禁借发展新质生产力之名违规滥用政策,对一哄而上、盲目投资等造成重大损失的严肃追究责任。

  • 美国对AI服务器电源等产品发起337调查 立讯精密、工业富联等20家企业列名

    10月10日,据同花顺消息,美东时间10月9日,美国国际贸易委员会(USITC)发布公告,对「特定垂直电力传输系统、其组件及含该系统的计算系统」发起337调查,针对AI服务器供电环节,共20家企业列名,包括立讯精密、工业富联、鸿海、鸿佰科技、台达电子、广达与云达、英飞凌、芯源系统、伟创力、天弘科技等,横跨中国大陆、中国台湾地区及美国、德国、新加坡、加拿大。调查源于马萨诸塞州电源模块厂商Vicor于9月9日提交的投诉,指控涉案产品侵犯其专利,请求发布有限排除令和禁止令,这是Vicor三年内第三次发起同类投诉。按USITC程序,立案后45天内将确定结案目标日期,本案距正式结论尚需较长时间。

  • Robinhood Crypto正与T.Rowe Price Digital Assets探索推出股票代币

    10月10日,Robinhood Crypto 正与管理资产规模达 1.9 万亿美元的 T. Rowe Price Digital Assets 探索在 Robinhood Chain 上推出与主动管理型 ETF 挂钩的股票代币。相关合作处于探索阶段,潜在产品的推出需完成法律尽职调查、获得发行方董事会批准、公布最终条款并取得相关司法管辖区的监管批准。目前无法保证合作推进或产品推出,具体形式、时间及适用地区尚未确定。

  • 英伟达被曝停产RTX 5090 顶级游戏显卡让位给高价专业卡

    10月10日,英伟达可能停产最强的消费级显卡RTX 5090,把核心芯片留给售价更高的专业显卡。硬件爆料者MEGAsizeGPU称,未来生产的GB202芯片将全部供应RTX PRO系列,不再用于RTX 5090;另一名爆料者hongxing2020晒出疑似工厂通知,称中国特供版本也在停产范围。两者使用同系列GB202芯片但价格相差很大:RTX 5090配备32GB显存,首发价1999美元;面向AI开发与设计的RTX PRO 6000拥有96GB显存,官网标价1.6万美元,为前者的8倍。RTX 5090此前已在美国市场缺货,第三方卖家一度挂出9600美元,若停产属实消费者今后只能依赖剩余库存。另有爆料称,英伟达准备推出24GB版RTX 5080取代RTX 5090成为最高端游戏显卡,而现款RTX 5080的CUDA核心数量仅约RTX 5090的一半,4K游戏性能低约30%。

  • 俄美元首通话 普京称俄目前不可能恢复与乌谈判

    10月10日,俄罗斯总统助理乌沙科夫当地时间10日凌晨介绍了俄美两国领导人通话的有关情况。乌沙科夫表示,普京在通话中详细介绍了俄罗斯为回应乌克兰武装部队实施的恐怖袭击而采取的措施。普京表示,乌克兰方面试图破坏俄罗斯国家杜马选举并对民众实施袭击,导致立即恢复谈判的可能性遭到破坏。普京还指出,乌克兰方面试图阻止俄罗斯军队推进的企图没有任何成功的前景,俄军目前完全掌握战场主动权,并正在持续向前推进。普京强调,由于乌克兰方面的立场,特别是其试图破坏俄杜马选举的行为,目前不可能恢复与乌克兰的谈判。特朗普已指示将普京在通话中传递的信息转达给乌克兰代表团。乌沙科夫称,关于举行普京与特朗普双边会晤的问题,双方目前尚未进行具体讨论。(央视新闻)

  • Telegram 内置 Gram 钱包更名为 Money 并向全体用户开放

    10月9日,Telegram 已将其原仅向部分用户开放的钱包服务“Gram wallet”更名为“Money”,并正式向全平台超过十亿用户全面推出。“Money”是针对 Gram 代币的内置钱包,支持存储、转账以及购买平台礼物与收藏级用户名。 此外,配套交易平台“Walt”提供超过 300 种资产服务,涵盖代币化股票、贵金属、永续合约及理财收益项目。用户可通过“Walt”向“Money”钱包进行即时划转且免收网络手续费。官方同时提示,加密资产投资存在相应风险。

  • Blockchain.com 寻求批准开展预测市场和加密货币衍生品交易

    10月9日,加密资产平台 Blockchain.com 已向美国商品期货交易委员会(CFTC)提交申请,寻求获得指定合约市场(DCM)和期货佣金商(FCM)牌照,以向美国用户提供事件合约(预测市场)及加密货币衍生品交易服务。

  • 贝森特:美国本周可能查扣约 10 亿美元与伊朗相关的加密货币

    美国财政部长贝森特周四在 Newsmax 于华盛顿举办的 NPolicy Summit 上表示,我们本周可能会查扣 10 亿美元的加密货币,并称「我们知道它在哪里,我们正在孤立他们」。贝森特表示,特朗普政府对伊朗的举措已从「极限施压」转为「绝对孤立」,措施包括海上封锁、限制航空出行及切断陆路通道,阿联酋和阿曼正与美方合作,美方也在与巴基斯坦和土耳其合作切断所有进出伊朗的陆路通道。

  • Zcash 开发团队计划于明年 1 月引入抗量子签名以保护公开支付

    隐私加密货币 Zcash(ZEC)开发团队计划于明年 1 月在网络中引入后量子签名操作码,以支持基于哈希的签名技术,从而抵御潜在的量子计算攻击。该方案主要针对透明(公开)支付池,目前约有 70% 的 ZEC 存放于该池中。尽管开发者将 1 月定为目标期限,但具体的网络激活时间尚未最终确定。 该升级旨在防止攻击者利用现有公钥反向推导私钥并伪造支付授权。此外,Zcash 节点验证程序 Zakura 还推出了一项基于私密信息检索(PIR)的钱包工具,允许用户在查询多地址余额时不向服务器泄露地址间的关联性。此前,以太坊研究员 Justin Drake 曾警告人工智能可能加速破解传统加密算法,并呼吁加密货币持有者应对潜在的安全威胁。

  • BTC突破83000美元

    行情显示,BTC突破83000美元,现报83017.3美元,24小时涨幅达到0.66%,行情波动较大,请做好风险控制。