文章目录
-
前言
-
什么是MPC钱包
- 1.1 定义和基本原理
-
当前用户的困境
-
MPC钱包简介
- 3.1 工作原理
- 3.2 解决问题的关键点
-
MPC钱包优势与劣势
- 4.1 优势
- 4.2 缺点
-
MPC主流算法实现
- 5.1 概述不同算法
-
市场竞品
- 6.1 竞品列表
-
个人观点
- 7.1 安全性评价
- 7.2 中心化问题
- 7.3 技术黑盒挑战
- 7.4 移植性局限
- 7.5 期望和展望
-
总结
前言
随着数字资产不断演进,私钥安全和交易授权问题备受关注。传统加密钱包存在单点故障风险,为此出现了多方计算(MPC)钱包。本文深入讨论MPC钱包的核心机制、优势、面临的挑战及未来趋势
什么是MPC钱包
MPC 钱包是一种利用多方计算方法的加密钱包,需要 多个参与者一起才能授权交易,完成交易动作。(MPC,即多方计算,全称为 Multi-Party
Computation.)
具体的工作原理是:
将一个私钥打碎成多片,分给去中心化的持有者/平台进行计算和加密,当需要交易私钥签名时,则将碎片再拼接起来形成一个完整的私钥以完成签名这个结果,但过程中不会产生完整的私钥,既碎片私钥持有者无法掌握完整的私钥,因为每个碎片私钥持有者都不知道他人所持有的部分
PC的核心思路 :分散控制权以达到分散风险或者提高备灾的目的,有效的避免了单点失败等安全问题.
当前用户的困境
虽然业界已经做出了巨大的集体努力来告知用户保持助记词和密钥安全的重要性,但这个单点故障仍然是广泛采用的一个重要障碍。如果私钥丢失,除了失去所有资产外,用户还必须手动跟踪多个地址、代币批准,并因必须为新地址提供资金而损害隐私。
今天,不可撤销的字符串不仅可以让一个人的毕生积蓄全部被“访问”,而且越来越多地趋势是将用户在线身份的链上历史联系起来。获取私钥访问权的动机就是这么大,以至于黑客们,每个人都投入无限的资源,进行越来越有创意的攻击。现在,仅仅依靠用户已经不够了——我们需要完全消除这个单点故障。
多方计算(MPC)钱包和智能合约钱包帮助我们实现这一目标,并且已经有一个由机构、个人和 DAO
等采用的关于这两类产品和服务的生态系统。虽然这两种类型的钱包都消除了单点故障,但它们有一些基本的技术差异,导致了不同的折衷方案
mpc解决的问题
传统的加密钱包(例如
MetaMask)有一个私钥和一个用于恢复丢失的私钥的助记词。然而,单密钥钱包存在很多问题,一不小心就造成的单点故障。如果用户的私钥丢失或泄露,存储在钱包中的资金可能会被盗或永远无法访问。
MPC 钱包可以通过把私钥分配给不同的人,要签署交易,所有各方都需要将他们的部分私钥拿出来进行多方计算,这是为钱包创建有效数字签名的唯一方式
,而且不用透露自己的私钥信息。
因此,只是破坏单个密钥分片的攻击者无法转移资金。只有当所有各方同时受到损害时,攻击者才有可能破解 MPC 钱包。 这样使用 MPC
就能大大降低私钥被盗的风险 。
同时MPC钱包用独立创建的数学“秘密共享”取代了传统的私钥。MPC钱包一方面实现了私钥分片多方存储,提高了安全;另一方面,使得用户无需管理复杂的私钥或者助记词,
让用户使用Web3产品就像可以用web2账户或邮箱关联登陆一样方便,这样一来,大大降低了用户进入Web3的门槛。
多签钱包的区别
MPC钱包使用多方计算技术,将私钥碎片 分散存储 在多个服务器上,使用这些碎片生成完整的私钥,从而提高了数字货币的安全性,
特征 | MPC 钱包 | 传统 Web3 钱包 |
---|---|---|
私钥管理 | 使用多方计算(MPC)技术,私钥由多个参与者共同生成,增强安全性。 | 私钥通常由用户自己生成和管理。 |
安全性 | 提供更高级别的安全性,因为私钥不是单一实体所有,防范了单点故障。 | 安全性依赖于用户的私钥管理和存储实践。 |
单点故障 | 避免单点故障,即使一个节点受到攻击或泄露,整体系统仍然安全。 | 存在单点故障风险,如果私钥泄露或被攻击,资产可能受到威胁。 |
参与者数量 | 需要多个参与者进行计算,通常需要阈值签名,提高安全性。 | 单用户生成和管理私钥,通常由一个实体控制。 |
使用门槛 | 可能需要更多的技术知识,因为涉及到 MPC 技术的使用和配置。 | 相对较简单,用户生成私钥后,就可以使用传统方式管理。 |
适用场景 | 更适合需要高度安全性的场景,如大额资产存储、金融交易等。 | 适用于一般的区块链应用,对安全性要求较低的场景。 |
用户控制度 | 用户可能对私钥的生成和管理有限制,需要信任 MPC 提供的系统。 | 用户完全掌控私钥生成和管理,但需要自己保证安全性。 |
网络效率 | 可能会引入额外的计算和通信开销,对网络效率有一定影响。 | 相对较快,因为仅涉及用户和区块链节点之间的通信。 |
MPC主流算法类型
算法 | 交易轮数 | 全面组合型 | 冷存储兼容 | 同行评审 | 开源 | 功能 | 优点 | 缺点 |
---|---|---|---|---|---|---|---|---|
Gennaro and Goldfeder (GG18) | 9 | 否 | 否 | 是 | 是 | 高度安全性、同行评审通过、开源 | ||
提供高度的安全性,可信度高,透明可审计性好 | 交易轮数相对较多,不支持全面组合型 | |||||||
Lindell et al. | 8 | 否 | 否 | 是 | 否 | 同行评审通过 | 在某些方面可能提供较好的性能 | 交易轮数相对较多,不开源 |
Doerner et al. | 6 | 否 | 否 | 是 | 否 | 同行评审通过 | 具备同行评审,性能一般 | 交易轮数相对较多,不开源 |
MPC-CMP | 1 | 是 | 是 | 是 | 是 | 低交易轮数、全面组合型、冷存储兼容 | 低交易轮数、全面组合型、冷存储兼容 | 不是全开源的 |
Shamir’s Secret Sharing | 取决于具体的协议和应用场景 | 是 | 是 | 取决于具体的实现 | 是 | 全面组合型、冷存储兼容 | ||
具备全面组合型、冷存储兼容,是经典的、公开的算法 | 通信开销可能较大,对动态性的支持有限 |
Shamir 门限算法(缺点:互动性的协议通常是多轮的,每一轮中各个参与者都会向其他参与者发送消息,然后根据接收到的消息做出相应的操作)
MPC钱包的优势
优点
- 无单点故障。一个完整的私钥在任何时候都不会集中在一台设备上。也没有助记词。
- 可调整的签名方案。批准固定人数可以随着个人和组织需求的变化而修改,同时保持相同的地址。组织可以动态调整签名方案,而不必每次都通知交易对手一个新地址。
- 粒度访问控制。机构用户可以为一个策略分配无限数量的交易审批者,并分配能够准确反映组织角色和安全措施(时间锁、MFA、欺诈监控)的权限。个人可以通过MPC钱包即服务(wallet-as-a-service)选择半托管路线,第三方持有其中一个关键共享部分。
- 更低的交易和回收成本。MPC钱包在区块链上表示为单个地址,其gas费用与常规私钥地址相同。这对于每天进行数百个交易的用户(例如在B2C用例中)来说非常重要。丢失的密钥共享部分也可以进行链下回收。
- 区块链不可知论者。密钥生成和签名依赖于链下的纯密码学。将兼容性扩展到新的区块链很简单,因为钱包只需要能够使用该链识别的算法生成签名。
缺点
- 链下问责制。签署授权政策和批准固定人数是在链下管理的,因此这些自定义规则仍然容易出现中心化问题。密钥共享仍然是加密秘密,应该像处理整个私钥一样处理。链下规则和签名阻碍了透明度,需要更严格的运营审计。
- 与许多用户采用的大多数传统钱包不兼容(没有助记词,没有完整的私钥存储在单个设备上)。MPC算法也没有标准化,也没有得到机构级安全设备(如iPhone SEP和HSM)的原生支持。
- 大多是孤立的定制产品。许多MPC库和解决方案都不是开源的,因此,如果出现问题,生态系统很难独立审计和集成它们。
钱包中需要考虑的属性
- 安全。从简单攻击到复杂攻击的保护程度。“良好的密钥管理”需要选择一系列解决方案,其加入和运营成本与链上活动的性质和风险金额相匹配。
- 成本。创建帐户、管理访问和执行交易的成本有多高。
- 用户体验和灵活性。访问控制管理、开销策略、限制和权限的粒度。
- 可恢复性。在受到威胁或造成损失的情况下,有能力恢复资产和访问权。
- 可扩展性。可以为核心产品带来新功能,以及能够建造出综合的产品和服务生态系统。
- 隐私。地址可以轻松链接到个人
目前市面上的竟品
- fireblocks
- safeheron
- zengo
- bitzen
- qredo
- coinbase wallet
- openblock
个人看法:
原因(个人感觉目前的 MPC 钱包安全性还不如传统的 Web3 钱包):
- 业务中心化 :
* 中心化依赖过重。
* 将私钥打碎分给其他人,与多签方案相比差异不大。 - 技术黑盒 :
* 将私钥打碎分给其他人的操作是否安全难以验证,因为私钥生存过程是黑盒,而且只有这些操作者参与。
* 许多 MPC 钱包的解决方案不开源,存在安全隐患,缺乏机构审计。 - 移植性差 :
* 仅能使用指定的 DApp,无法灵活移植到其他环境使用。
* 对方服务器故障可能导致资产丢失,或者在三签中的某一个服务商故障或丢失主要碎片也会造成资产丢失。
总结:
如果 MPC 的私钥分片技术能够开源并保持透明,MPC 钱包将更具可信度,使用户更加相信其安全性。这将有助于提高 MPC 钱包的广泛应用
以上是个人的观点, 有不同的看法或者想了解更多可以DM微信: luo425116243
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
