【区块链安全 | 第八篇】多签机制及恶意多签

news2025/4/8 5:59:45

部分参考:慢雾科技

文章目录

    • 为什么需要多签
    • 多签机制
    • Tron钱包下的恶意多签
      • Tron 钱包多签权限分类
      • Tron 多签机制的运作方式
    • 恶意多签的过程
      • 黑客通过多签机制控制账户
      • 黑客剥夺用户权限,完全控制账户
    • 恶意多签成因

在这里插入图片描述

在区块链中,多签(Multi-Signature,简称 MultiSig)是一种提高安全性的机制,广泛用于 DeFi、DAO 和私募基金管理。

为什么需要多签

在传统的单签账户中,私钥泄露可能导致资金被盗。多签机制要求多个私钥共同签署交易,从而提升资金管理的安全性。其主要作用包括:

1、提高安全性,降低单点私钥泄露的风险。
2、实现去中心化管理——DAO 组织等需要多人共同决策。
3、在智能合约治理、资金托管等场景实现权限控制。

多签机制

多签智能合约通常设定 m-of-n 规则,即 n 个签名者中至少 m 个同意,交易才会执行。

例如2-of-3表示三名签名者中至少两人同意;3-of-5表示五名签名者中至少三人同意。

多签机制的实现方式通常包括:

  • 原生多签:如比特币的 P2SH(Pay to Script Hash)。
  • 智能合约多签:以太坊 Gnosis Safe、OpenZeppelin 多签库等。

Tron钱包下的恶意多签

在 Tron(波场)网络中,一种增强账户安全性和权限管理的机制也是多重签名(Multi-Signature,简称多签)

Tron 钱包多签权限分类

Tron 的多签系统设计了三种不同的权限类型:Owner(所有者权限)、Witness(见证者权限)和 Active(活跃权限)。每种权限适用于不同场景,具备不同的功能。

1、Owner 权限(所有者权限)
最高权限,可以执行所有操作,包括修改账户权限。
仅 Owner 权限的持有者可以添加或移除签名者、调整权重和设置阈值。
新创建的账户默认由该账户本身拥有 Owner 权限。

2、Witness 权限(见证者权限)
适用于超级代表(Super Representatives,SR)选举和投票。
拥有该权限的账户可管理与超级代表相关的投票和治理操作。
普通用户一般不会使用该权限,主要由 Tron 的验证节点(SR)使用。

3、Active 权限(活跃权限)
用于 日常操作,如 转账、调用智能合约 等。
Owner 权限的持有者可以自定义 Active 权限,允许指定账户执行特定任务。
适用于团队管理、多方授权,可防止单一账户被盗导致的资产损失。

Tron 多签机制的运作方式

在 Tron 的多签机制下,账户可以自定义权限结构,包括:
1、为不同的地址分配权限,让多个签名者共同管理账户。
2、设置签名权重,每个被授权的地址拥有不同的权重值。
3、定义执行阈值,操作需要满足最低的签名权重才能生效。

假设某个账户设置了如下的 Active 权限:

在这里插入图片描述

若该账户设置的执行阈值(Threshold) 为 2,意味着以上 3 个账户中,至少 2 个账户的签名才能执行交易或合约调用。若只有 1 个账户签名,交易无效。

恶意多签的过程

当黑客获取用户的私钥或助记词后,如果该用户未使用多签机制(即钱包仅由用户单独控制),黑客便能直接修改账户权限,将 Owner 或 Active 权限授权给自己的地址,甚至完全转移至自己的控制之下。这种操作通常被称为恶意多签,但实际上可进一步细分为两种情况。

1.黑客添加自己的地址为多签方,用户仍保留 Owner/Active 权限

2.黑客直接剥夺用户的 Owner/Active 权限,使其彻底失去对账户的控制

黑客通过多签机制控制账户

在下图所示案例中,用户的 Owner/Active 权限未被移除,但黑客在账户权限中添加了自己的地址,并赋予相同的权限。由于阈值设定为 2,且用户和黑客的权重均为 1,任何涉及资产转移的操作都必须由双方签名才能执行。

在这里插入图片描述

既然我仍然是owner,那么我直接删除黑客账户可不可以?
不可以。你的权重是 1,但阈值是 2,你单独签名的交易不会生效。只有黑客同意并签名,你才能成功移除他的地址——显然,他不会配合你。

影响
1.用户仍拥有账户权限,但无法独立控制资金。每次交易都需要黑客的授权,使得用户无法随意转移资产。
2.黑客不会立即盗取资产,而是长期潜伏,等待账户积累更多资金后再进行操作。
3.入账不受影响,用户不会察觉异常,直到尝试转账时才发现账户被恶意多签。

黑客剥夺用户权限,完全控制账户

另一种更具破坏性的方式是,黑客直接更改账户权限,将 Owner/Active 权限完全转移至自己的地址,并将用户的权限移除。

在这里插入图片描述

影响
用户完全失去对账户的所有权限,即便拥有私钥,也无法执行任何操作。
黑客拥有账户的最高权限,可以随意更改账户权限、转移资产、执行任意合约调用等操作。
用户连“投票权”都没有了,彻底失去对账户的控制,无法恢复。

虽然这种方式不涉及多签机制,但由于最终结果相同(用户无法控制账户),因此该攻击仍被广义地称为恶意多签攻击。

恶意多签成因

1、下载假钱包
2、在钓鱼网站输入私钥/助记词
3、下载恶意软件
4、钓鱼攻击

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2326797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二月公开赛Web-ssrfme

目录 环境搭建 题目分析 分析代码 解题过程 Redis未授权访问 寻找Flag 环境搭建 进入含有docker-compose.yml的文件内,拉取容器镜像 docker-compose up -d 题目分析 访问容器地址172.25.254.200:8091查看题目 分析代码 url通过GET请求访问界面&#xff0c…

告别枯燥工作,走向自动化

嘿,小伙伴们!今天给你们介绍两款超实用的RPA办公自动化软件,用它们,再也不用像机器一样做重复劳动啦,超省时间! 工具名称:影刀RPA(类似产品,八爪鱼 RPA,操作上…

可信数据空间:构筑安全可控数据流通

前言:可信数据空间是一种数据基础设施,发展可信数据空间是全国及各地数据基础设施建设的重要方面。国内数据空间的探索和实践仍然数据探索阶段。本期分享:可信数据空间构筑安全可控数据流通,包括可信数据空间技术介绍、如何助力数…

Zookeeper特性与节点数据类型

数据结构和监听机制 CP 文件系统形式存储 观察者模式监听节点数据变化、 临时节点客户端超时或发生异常节点就会删除 2888同步数据 3888选举端口 1.什么是Zookeeper ZooKeeper 是一个开源的分布式协调框架,是Apache Hadoop 的一个子项目,主要用来…

处理 Linux 信号:进程控制与异常管理的核心

个人主页:chian-ocean 文章专栏-Linux 前言: 在 Linux 操作系统中,信号是用于进程间通信的一种机制,能够向进程发送通知,指示某些事件的发生。信号通常由操作系统内核、硬件中断或其他进程发送。接收和处理信号是 Li…

【蓝桥杯每日一题】4.1

🏝️专栏: 【蓝桥杯备篇】 🌅主页: f狐o狸x "今日秃头刷题,明日荣耀加冕!" 今天我们来练习二分算法 不熟悉二分算法的朋友可以看:【C语言刷怪篇】二分法_编程解决算术问题-CSDN博客 …

分享系列项目的基础项目

本人分享了一系列的框架项目,它们共同需要依赖这个公共基础,结构如下图所示: 其中: audit: JPA的审计信息基础类auth:认证授权相关类config: 包括redis配置,client中token配置,openai文档配置…

为 MinIO AIStor 引入模型上下文协议(MCP)服务器

Anthropic 最近宣布的模型上下文协议 (MCP) 将改变我们与技术交互的方式。它允许自然语言通信替换许多任务的复杂命令行语法。不仅如此,语言模型还可以总结传统工具的丰富输出,并以人类可读的形式呈现关键信息。MinIO 是世界领先的…

数据结构实验1.1: 顺序表的操作及其应用

这里写自定义目录标题 一、实验目的二、注意事项三、实验内容(一)问题描述(二)基本要求 四,操作步骤(一)使用visual studio集成环境编写程序 五,示例代码六,运行效果 一、…

基于yolov11的汽车损伤检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv11的汽车损伤检测系统是一种先进的计算机视觉技术,旨在快速准确地识别汽车的各种损伤类型。该系统利用YOLOv11模型的强大性能,实现了对车辆损伤的精确检测与分类。 该系统能够识别的损伤类型包括裂纹(crack&#xff…

基于Spring Boot的平面设计课程在线学习平台系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

【JavaEE】MyBatis - Plus

目录 一、快速使用二、CRUD简单使用三、常见注解3.1 TableName3.2 TableFiled3.3 TableId 四、条件构造器4.1 QueryWrapper4.2 UpdateWrapper4.3 LambdaQueryWrapper4.4 LambdaUpdateWrapper 五、自定义SQL 一、快速使用 MyBatis Plus官方文档:MyBatis Plus官方文档…

【2】数据结构的单链表章

目录标题 单链表的定义单链表的初始化单链表的建立头插法创建尾插法创建 查找操作按序号查找按内容查找 插入操作删除操作合并操作 单链表总代码与调试 单链表的定义 结点(Node)的定义:数据域(data)和指针域&#xff…

Linux(十一)fork实例练习、文件操作示例及相关面试题目分享

一、fork实例练习 1、思考下面这段代码的打印结果是什么&#xff1f; #include<stdio.h> #include<unistd.h> #include<assert.h> #include<stdlib.h>int main(){int i0;for(;i<2;i){fork();printf("A\n");} exit(0); }所以一共打印6…

open3d教程 (三)点云的显示

官方文档位置&#xff1a; Visualization - Open3D 0.19.0 documentationhttps://www.open3d.org/docs/release/tutorial/visualization/visualization.html核心方法&#xff1a; o3d.visualization.draw_geometries([几何对象列表]) import open3d as o3dprint("Load …

根据模板将 Excel 明细数据生成 Txt 文档|邮件合并

在日常办公中&#xff0c;我们常常会遇到需要批量生成文档的任务。以往&#xff0c;若要将 Excel 中的每一条数据都转化为单独的文档&#xff0c;且文档部分内容依据 Excel 数据动态变化&#xff0c;手动操作不仅繁琐&#xff0c;还容易出错。现在&#xff0c;有一种便捷的方法…

LVGL Dropdown和Calendar详解

LVGL Dropdown和Calendar详解 一、Dropdown详解创建和初始化设置下拉框选项获取选项获取选中项文本&#xff1a;获取选中项索引&#xff1a;设置选中项&#xff1a; 事件处理其他功能和样式设置设置下拉按钮样式&#xff1a;设置下拉框方向&#xff1a;设置最大高度&#xff1a…

Vulnhub-zico2靶机打靶记录

本篇文章旨在为网络安全渗透测试靶机教学。通过阅读本文&#xff0c;读者将能够对渗透Vulnhub系列zico2靶机有一定的了解 一、信息收集阶段 靶机下载地址&#xff1a;https://download.vulnhub.com/zico/zico2.ova 因为靶机为本地部署虚拟机网段&#xff0c;查看dhcp地址池设…

(041)05-01-自考数据结构(20331)树与二叉树大题总结

实际考试中,计算题约占40%,推理题约占30%,算法设计题约占30%。建议重点练习遍历序列相关的递归分治解法, 知识拓扑 知识点介绍 一、计算题类型与解法 1. 结点数量计算 题型示例: 已知一棵完全二叉树的第6层有8个叶子结点,求该二叉树最多有多少个结点? 解法步骤: 完…

Python----机器学习(KNN:使用数学方法实现KNN)

一、原理 以下是K最近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;算法的基本流程&#xff0c;用于对给定点进行分类预测。 1. 获得要预测的点 point_predict 。 2. 计算训练点集 point_set_train 中各点到要预测的点 表 l ist_L2_distance 。 3. 对 poi…