【区块链安全 | 第八篇】多签机制及恶意多签
部分参考:慢雾科技
文章目录
- 为什么需要多签
- 多签机制
- 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、钓鱼攻击