文章学习: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",您需要执行以下步骤:

  1. 创建一个新的采用新方案的钱包
  2. 将所有资产转移到新的钱包
  3. 通知所有合作伙伴钱包地址已更改

然而,步骤3充满了挑战和风险,因为合作伙伴可能意外地向旧的存款地址发送资金,导致这些资金永远丧失

相比之下,MPC钱包赋予了对签名方案持续修改和维护的能力。例如,从"4中的3"设置更改为任何其他设置,只需现有股东同意新的分布计算并添加新用户份额。在这个过程中,区块链钱包地址(存款地址)保持不变,从而:

  1. 不需要创建新钱包
  2. 不需要转移任何资金
  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大原因的更多相关文章

  1. SQL反模式学习笔记12 存储图片或其他多媒体大文件

    目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点:     1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...

  2. Effective STL 学习笔记 Item 30: 保证目标区间足够大

    Effective STL 学习笔记 Item 30: 保证目标区间足够大 */--> div.org-src-container { font-size: 85%; font-family: ...

  3. 文章学习:TPRE:分布式门限代理重加密

    学习文章:TPRE:分布式门限代理重加密 前言 成方金科新技术实验室与隐语团队合作,构建了"基于国密的分布式门限代理重加密算法TPRE",为用户提供了一种安全.高效.自主可控的数据 ...

  4. JVM文章学习

     JVM 文章 Java虚拟机学习 - 体系结构 内存模型http://blog.csdn.net/java2000_wl/article/details/8009362 Java虚拟机学习 - 对象 ...

  5. 入门文章学习(一)-Beginner Tutorial

    Abstract: 参照"背景知识查阅"一文的学习路径,对几篇文章的学习做了记录.这是"Beginner Tutorial"一文的学习笔记. 文章链接: htt ...

  6. python文章学习列表

    1.https://home.cnblogs.com/u/darkpig/feed/blog/ 这篇博主的系列文章 2.

  7. vue文章学习路线

    vue学习笔记(一)入门 Vue实现简单的购物车功能 vue学习笔记(二)vue的生命周期和钩子函数 使用webstorm搭建vue-cli项目 vue-cli项目中引入第三方插件 vue-cli项目 ...

  8. android文章学习 侧滑菜单实现

    http://blog.csdn.net/jj120522/article/details/8075249 http://blog.csdn.net/lilybaobei/article/detail ...

  9. C#特性文章学习

    http://www.cnblogs.com/rohelm/archive/2012/04/19/2456088.html http://www.cnblogs.com/liuxinxin/artic ...

  10. 微信小程序底层原理与运行机制类文章学习

    参考文档 小程序底层实现原理及一些思考 为了安全和管控, 双线程执行 Web Worker执行用户的代码; UI线程执行大部分的功能. 微信小程序架构原理 只通过mvvm模板语法动态改变页面, 不支持 ...

随机推荐

  1. Mysql篇-三大日志

    概述 undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC. redo log(重做日志):是 Innodb 存储引擎层生成的日志, ...

  2. Nuxt.js 应用中的 vite:configResolved 事件钩子

    title: Nuxt.js 应用中的 vite:configResolved 事件钩子 date: 2024/11/17 updated: 2024/11/17 author: cmdragon e ...

  3. 1.TP6的入门-安装

    打开官网,找到这里点击手册 或者直接访问 这里 可以看到TP6已经有了赞助商 然后往后面阅读,发现他推荐我们读这个 这个入门必读还是不错的,简单的看看就行 后面就开始安装吧 首先注意自己的环境php版 ...

  4. 迁移到 Eclipse: Eclipse 对 IntelliJ IDEAA 评估开发指南

    为何考虑 Eclipse 以及它与 IntelliJ IDEA 有什么不同 Eclipse 是一个免费的.正日益流行起来的 Java 集成开发环境,最新版本的 Eclipse 中提供了很多特性,这些特 ...

  5. Java Study For Six Day( 面向对象二)

    static(静态)关键字 用于修饰成员(成员变量和成员函数) 被修饰后的成员具备以下的特点 随着类的加载而加载 优先于对象存在 被所有的对象共享 可以被类名直接调用 静态注意事项 静态方法只能访问静 ...

  6. 八、FreeRTOS学习笔记-临界段代码保护及调度器挂起与恢复

    临界段代码保护 什么是临界段:临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段 适用场合如: 问题:什么可以打断当前程序的运行? 1.临界段代码保护函数介绍 FreeRTOS 在进入临 ...

  7. Golang框架之gin

    gin是目前golang的主要web框架之一,之所以选择这个框架是因为其拥有高效的路由性能,并且有人长期维护,目前github上的star数已经破3W. [安装] go get -u github.c ...

  8. golang项目之Makefile

    01  介绍 Go 提供一个名为go的命令,该命令可自动下载.构建.安装和测试 Go 包和命令. Go 提供go命令,官方的目的是为了不需要编写 Makefile,而是能够仅使用 Go 源代码本身中的 ...

  9. ClickHouse之基础使用

    [安装] [YUM] 1.添加官方存储库 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://packag ...

  10. 服务器安全之DenyHosts

    情景:今天登录服务器,突然发现登录之后展示的信息有点多,仔细端倪发现: There were 3975 failed login attempts since the last successful ...