文章学习 | MPC 是下一代私钥安全的7大原因
文章学习:MPC 是下一代私钥安全的7大原因
前言
多重签名钱包与单一密钥钱包相比,因其提升了资产安全性,如今已成为机构管理加密货币的标准做法。然而,最近在多方计算(MPC)领域的密码学突破正引领私钥安全的新一代发展。
麻省理工学院数字货币倡议部门的区块链研究高级顾问迈克尔·J·卡西(Michael J. Casey)将MPC誉为“可用性和私钥安全的圣杯”。但就像大多数技术发展一样,初期常伴有误解和混淆。
本文将深入探讨MPC的关键优势,以及为何MPC和阈值签名已超越了多重签名技术,成为私钥安全的下一代解决方案。
好多圣杯了。
无单点故障的MPC
与多重签名相似,基于MPC的解决方案确保私钥永远不会在单一地点创建或存储。通过保护密钥免受网络犯罪、内部欺诈和串谋威胁,MPC技术确保私钥安全,防止员工或员工组窃取数字资产。
私钥不在一个地点存储和创建。
MPC解决方案与协议无关
并非所有加密货币协议都支持多重签名,且不同协议的多重签名实现方式差异较大,这使得多重签名提供商难以支持新的区块链。并非所有钱包都支持从多重签名智能合约转移资金,这会在与某些交易所进行资金转移时产生问题和摩擦。
多方计算基于标准化的加密签名算法(如ECDSA或EdDSA),在大多数区块链上得到应用,从而使得在不同区块链之间实现MPC成为可能。因此,借助MPC,机构能够快速轻松地将新的加密货币纳入其平台。
MPC技术经过学术验证和实际实施
尽管MPC技术在加密货币钱包环境中的应用相对较新,但早在上世纪80年代初就是学术研究的焦点,并经过广泛的公开同行评审。鉴于此,所有采用MPC的供应商都与加密评估和渗透测试提供商(如NCC Group)紧密合作和投资以审查其实施。
由于MPC在实现区块链协议之间无关,攻击面较小,每次审查都能修复所有协议的实施问题。但对于基于链上的多重签名解决方案来说情况并非如此,因为每个协议都要求钱包提供商实现不同的代码。
一些众所周知的多重签名实现失败案例包括:
- 多重签名Parity钱包:糟糕的实现导致恶意行为者窃取了价值约3000万美元的以太币,成为迄今为止最大的钱包黑客事件之一。
- Parity钱包再次遭受黑客攻击:黑客再次访问了钱包并冻结了价值3亿美元的以太币,一些客户因此损失了高达30万美元的数字资产。
- 比特币多重签名中的漏洞:Fireblocks研究团队发现了比特币多重签名检查实现中的漏洞,尽管这个代码库很受欢迎但漏洞仍然存在。
MPC技术提供更好的操作灵活性
随着组织的发展,必然需要调整访问和转移数字资产的流程。这包括决定签署交易所需的员工数量,随新员工加入逐步添加新的密钥份额,以及在员工离职时撤销密钥份额,并调整所需的阈值以进行交易签署。
然而在这种情况下,多重签名地址会给您的组织带来各种挑战,因为它们是预先设定的。一旦钱包创建完成,"M of N"结构便是固定的。例如,若要从"4中的3"设置更改为"5中的3",您需要执行以下步骤:
- 创建一个新的采用新方案的钱包
- 将所有资产转移到新的钱包
- 通知所有合作伙伴钱包地址已更改
然而,步骤3充满了挑战和风险,因为合作伙伴可能意外地向旧的存款地址发送资金,导致这些资金永远丧失。
相比之下,MPC钱包赋予了对签名方案持续修改和维护的能力。例如,从"4中的3"设置更改为任何其他设置,只需现有股东同意新的分布计算并添加新用户份额。在这个过程中,区块链钱包地址(存款地址)保持不变,从而:
- 不需要创建新钱包
- 不需要转移任何资金
- 合作伙伴可以继续使用现有地址
这使得扩展业务操作或对团队操作方式进行任何调整的过程变得轻松,并最终消除了由于关键操作更改而意外丧失资金的风险。
允许最低的交易费用
与基于多重签名的钱包相比,例如比特币的P2SH多重签名或以太坊的智能合约多重签名,MPC钱包在区块链上仅呈现为单个钱包地址,实际的分布式签名计算发生在区块链之外。这导致交易费用大幅降低,特别是在每天发生数百笔交易的情况下,尤其是在B2C应用中这一点显得尤为重要。
基于MPC的解决方案提供了隐藏签名和链下问责制
虽然组织可能认为在链上透明地了解签名情况会带来好处,但实际上,这可能引发一系列隐私问题。更为重要的是这可能导致安全问题,因为这会立即向所有人展示签名方案和工作流程。机构可能不希望透露谁有签名权限、有多少用户参与签名、需要多少用户签名等敏感信息,因为这可能为组织创造物理攻击的风险。
相反,MPC的优势之一在于,它提供了链下问责制,使得每个共同签名的成员都可以审计参与签名的密钥,同时不向外部公开。例如,Fireblocks保留了每个签名周期中参与的密钥的审计日志,如果客户愿意,他们也可以在自己端保留审计日志。此外,由于涉及费用和可变性的限制,一些使用链上多重签名的企业钱包供应商只能在热钱包中使用2中的3签名方案,无论其客户的组织结构和政策如何。
通常,一个份额归钱包提供商所有,一个份额属于客户,另一个份额用作备份。由于客户的份额分散在所有用户之间,当进行交易签名时,很难准确知道哪些用户使用了特定份额,这使得对"问责制"的主张变得不可靠。基于MPC的解决方案消除了这些缺陷,能够提供可靠的记录实现真正的问责制。
MPC技术强化硬件隔离
硬件隔离模块(HSM【硬件安全模块】和安全飞地)在系统受损时保护密码材料非常重要。仅仅依靠HSM还不足以提供最佳的私钥安全解决方案,同样地,仅仅依靠MPC也只是解决方案的一部分。因此,需要强调的是,MPC与硬件隔离系统(如HSM)的结合使用非常关键,因为仅仅依靠HSM并不能完全保证安全(请参考HSM技术的评估)。
此外使用HSM的实施存在一个问题,即如果身份验证令牌或HSM客户端遭到破坏,攻击者可能会清空钱包。实际上,只需破坏客户端的凭证或交易生成代码,就可以实现这一点,而这些项目并不在HSM内部。为此,Fireblocks将其所有MPC密钥材料存储在硬件隔离的Intel SGX技术启用的服务器(Intel的安全飞地)和移动设备安全飞地(TEE)之间进行分配。MPC算法的执行和策略引擎都在安全飞地内部实现,防止恶意的外部和内部行为者修改执行或策略引擎。
结论:为何MPC是私钥安全的下一代技术
多方计算(MPC)技术正在引领私钥安全的新发展,超越传统的多重签名。MPC通过消除单点故障,保障私钥安全,同时提供更大的操作灵活性和较低的交易费用。它还实现了隐藏签名和链下问责制,保护隐私和安全。MPC与硬件隔离相结合,进一步增强了私钥的安全性。这些优势使MPC成为机构管理加密货币的新标准,为未来的数字资产管理提供了坚实的基础。
文章学习 | MPC 是下一代私钥安全的7大原因的更多相关文章
- SQL反模式学习笔记12 存储图片或其他多媒体大文件
目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点: 1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...
- Effective STL 学习笔记 Item 30: 保证目标区间足够大
Effective STL 学习笔记 Item 30: 保证目标区间足够大 */--> div.org-src-container { font-size: 85%; font-family: ...
- 文章学习:TPRE:分布式门限代理重加密
学习文章:TPRE:分布式门限代理重加密 前言 成方金科新技术实验室与隐语团队合作,构建了"基于国密的分布式门限代理重加密算法TPRE",为用户提供了一种安全.高效.自主可控的数据 ...
- JVM文章学习
JVM 文章 Java虚拟机学习 - 体系结构 内存模型http://blog.csdn.net/java2000_wl/article/details/8009362 Java虚拟机学习 - 对象 ...
- 入门文章学习(一)-Beginner Tutorial
Abstract: 参照"背景知识查阅"一文的学习路径,对几篇文章的学习做了记录.这是"Beginner Tutorial"一文的学习笔记. 文章链接: htt ...
- python文章学习列表
1.https://home.cnblogs.com/u/darkpig/feed/blog/ 这篇博主的系列文章 2.
- vue文章学习路线
vue学习笔记(一)入门 Vue实现简单的购物车功能 vue学习笔记(二)vue的生命周期和钩子函数 使用webstorm搭建vue-cli项目 vue-cli项目中引入第三方插件 vue-cli项目 ...
- android文章学习 侧滑菜单实现
http://blog.csdn.net/jj120522/article/details/8075249 http://blog.csdn.net/lilybaobei/article/detail ...
- C#特性文章学习
http://www.cnblogs.com/rohelm/archive/2012/04/19/2456088.html http://www.cnblogs.com/liuxinxin/artic ...
- 微信小程序底层原理与运行机制类文章学习
参考文档 小程序底层实现原理及一些思考 为了安全和管控, 双线程执行 Web Worker执行用户的代码; UI线程执行大部分的功能. 微信小程序架构原理 只通过mvvm模板语法动态改变页面, 不支持 ...
随机推荐
- vagrant 安装centos8 虚拟机搭建lamp环境
首先保证已经安装了 virtualbox vagrant两个软件 然后找个目录下载centos8 的 box wget https://vagrantcloud.com/generic/boxes/c ...
- Ocelot集成Consul实现api网关与服务发现
前言 没看dotnet微服务之API网关Ocelot的请先看,这篇文章接上面文章 安装consul #自定义网络,自定义网络可以指定容器IP,这样服务器重启consul集群也可以正常运行. docke ...
- flask+APScheduler定时任务的使用
目录 APScheduler简介 安装 add_job参数详解 结合flask使用 用uwsgi启动项目 用gunicorn+gevent启动flask项目 APScheduler简介 APSched ...
- 浅析JVM内存结构和6大区域
内存作为系统中重要的资源,对于系统稳定运行和高效运行起到了关键的作用,Java和C之类的语言不同,不需要开发人员来分配内存和回收内存,而是由JVM来管理对象内存的分配以及对象内存的回收(又称为垃圾回收 ...
- Django之跨域
解决跨域请求问题可以从前端解决也可以通过配置后台解决,通过配置后台允许跨域可以解决前端的一些麻烦.Django通过中间件实现允许跨域. 1.安装django-cors-headers中间件 pip i ...
- Java并发 —— 线程并发(二)
Java 锁 Java 中的锁是在多线程环境下,保证共享资源健康,线程安全的一种手段 线程操作某个共享资源之前,先对资源加一层锁,保证操作期间没有其他线程访问资源,操作完成后再释放锁 保持数据一致 ...
- electron postinstall$ node install.js报错
本来以为是文件路径错了执行失败,手动去执行了下install.js,还是报错,但是不一样是连接超时 试了几种办法,简单直接就是如下方法 1:从项目node_modules中找到electron下的in ...
- vue 相同路由不同参数跳转时,不刷新
在公共的router-view上加 :key="$route.fullPath 控制key属性变化
- 在 .NET 下,Fiddler 不再抓取 Web Service 流量问题
在 .NET 下,Fiddler 不再抓取 Web Service 流量问题 问题现象 原来的一个应用中,需要访问 SOAP 服务.在原来的 .NET Framework 版本中,使用 Fiddler ...
- Java 后端搞 MVC 是邪路
前两天和朋友讨论,我展示了一番 d2js,朋友有点纳闷,你这个是直接操作数据库,不是违背了 MVC 设计思想吗? 经常讨论有助于刺激思维.这次本人忽然进入了状态,终于意识到问题所在! 现在的系统叠床架 ...