好文集ChatGPT Plus¥119

保姆级教你安全地持有加密资产

文章目录

从 Bitget 被盗事件谈起:硬件钱包、多签、冷存储与前端防劫持完整教程

2026年9月25日,Bitget 确认部分热钱包和温钱包发生未授权转账,初步涉及约3.516亿美元。平台表示冷钱包未受影响,用户资产由保护基金覆盖,并暂停提现开展安全审查。

截至本文发布时,Bitget 尚未公布完整的根因报告,因此不能断言事故一定由私钥泄露、多签失效或者前端劫持造成。Bitget 官方公告

但它再次揭示了一个长期存在的问题:

资产只要长期存放在联网的钱包里,并且能被单个私钥、单台服务器或一套自动签名系统转走,就始终存在单点失守风险。

那么,普通用户和项目方究竟应该如何持有加密资产?

答案不是购买某一款“最安全的钱包”,而是建立一套即使某个设备、某个私钥、某位员工或某个网页被攻破,攻击者也无法立即转走全部资产的系统。

这套系统包括:

资产分层、硬件钱包、多签、独立验证、限额、时间锁、实时监控和应急预案。

一、没有绝对安全的钱包,只有更合理的安全架构

钱包安全至少涉及六个风险层面:

  1. 私钥是否可能泄露;

  2. 签名设备是否可能被控制;

  3. 用户是否可能被诱骗签署恶意交易;

  4. 多签配置是否存在绕过路径;

  5. 交互的智能合约是否安全;

  6. 官网、DNS、浏览器和部署系统是否被劫持。

冷钱包能够降低联网攻击风险,但不能阻止用户签署恶意交易。

多签能够避免一个私钥被盗后资产立即丢失,但不能阻止多名签名人同时被恶意前端欺骗。

时间锁能给团队留下反应时间,但如果没有监控,恶意交易可能在无人发现的情况下到期执行。

因此,最安全的持有方式不是某一种产品,而是多层防护。

二、首先把资产分成三层

不要把所有资产放在一个地址里。更合理的做法是按照使用频率分层。

资产层级用途建议方案建议资金比例日常钱包支付Gas、小额交易手机钱包或独立浏览器钱包1%—5%交易钱包DeFi、做市、质押硬件钱包或运营多签5%—20%核心储备长期持有的大额资产冷多签+时间锁75%—95%

具体比例应根据个人情况调整。核心原则是:

任何一层被盗,都不应该导致全部资产损失。

交易所账户同样不适合作为长期金库。需要交易时再转入,交易完成后及时转回自托管钱包。

三、个人用户最推荐的方案:2/3冷多签

个人持有较大金额时,可以建立一个由三个独立签名地址控制、任意两个签名即可执行交易的多签钱包。

三个签名地址可以这样安排:

  • 签名器A:主要硬件钱包,保存在住所;

  • 签名器B:备用硬件钱包,保存在银行保险箱或另一处安全地点;

  • 签名器C:另一品牌硬件钱包或专用离线手机,由本人或可信家人保管。

为什么选择2/3?

  • 攻击者盗取一把私钥,无法转走资产;

  • 丢失一台设备,仍可通过另外两台恢复控制;

  • 不需要每次同时取得三台设备;

  • 比2/2更能容忍设备损坏或助记词丢失。

但有一个关键要求:

三个签名地址必须由三套独立助记词生成。

如果把同一套助记词导入三台硬件钱包,那只是一个私钥的三个副本,不是真正的多签。

Safe 官方同样建议将门槛设置为大于1、但低于签名人总数。个人常见配置就是2/3。Safe 多签配置建议

四、创建多签钱包前的准备工作

1. 准备签名设备

每个签名地址使用独立设备,优先选择:

  • 正规渠道购买的硬件钱包;

  • 已恢复出厂设置的专用手机;

  • 不安装社交软件和不明扩展的专用电脑。

不要购买二手硬件钱包,也不要使用卖家提供的助记词。

第一次启动时,助记词必须由设备现场生成。任何随包装附带、已经打印完成的助记词都不能使用。

2. 备份助记词

每套助记词分别备份,不要混放。

推荐做法:

  • 手写或使用金属助记词板;

  • 每套助记词放在不同地点;

  • 不拍照;

  • 不保存到iCloud、Google Drive或网盘;

  • 不通过微信、Telegram或邮件发送;

  • 不输入密码管理器;

  • 不把三套助记词交给同一个人保管。

助记词旁边可以记录设备编号,但不要同时写明钱包余额和用途,以免泄露后增加针对性风险。

如果使用额外密码,也就是 passphrase,需要单独备份。忘记 passphrase 与丢失助记词的后果相同。

3. 验证备份

在正式存入资金前,每套助记词都应进行一次恢复测试:

  1. 记录第一个收款地址;

  2. 将设备恢复出厂设置;

  3. 使用备份助记词重新恢复;

  4. 检查恢复后的地址是否与之前完全一致;

  5. 测试完成后再作为正式签名器。

不要等设备损坏后才第一次测试备份。

五、EVM资产多签教程:使用Safe创建2/3钱包

该方案适用于Ethereum、BSC、Arbitrum、Base等Safe支持的EVM网络。

第一步:核对官方网站

手动输入并收藏:

https://app.safe.global

不要通过以下入口访问:

  • 搜索引擎广告;

  • 私聊发来的链接;

  • Telegram机器人;

  • 陌生二维码;

  • 所谓“Safe客服”提供的网页;

  • 浏览器弹出的升级窗口。

首次使用时,通过Safe官方文档和至少一个独立渠道交叉核对域名。

第二步:准备Gas

创建Safe需要链上部署费用。给第一个签名地址转入少量对应链的原生代币:

  • Ethereum使用ETH;

  • BSC使用BNB;

  • Arbitrum使用ETH;

  • Polygon使用POL。

签名地址只需要少量Gas,不应存放大额资产。

第三步:创建Safe

  1. 打开Safe官方网站;

  2. 连接第一个硬件签名钱包;

  3. 选择正确的区块链;

  4. 点击“Create new account”;

  5. 输入本地钱包名称;

  6. 添加另外两个签名地址;

  7. 将Required Confirmations设置为2;

  8. 核对三个地址;

  9. 提交部署交易;

  10. 等待链上确认。

官方操作流程可参考Safe创建指南。

第四步:独立验证部署结果

不要只相信网页显示。部署完成后,在区块浏览器中打开Safe地址,检查:

  • 所在链是否正确;

  • Safe地址是否正确;

  • 三个Owner地址是否完全一致;

  • Threshold是否为2;

  • 合约代码是否已验证;

  • 是否存在未知模块;

  • 是否存在未知Guard;

  • 实现合约地址是否正常。

将以下内容打印或离线保存:

Safe地址: 网络: Chain ID: 签名地址A: 签名地址B: 签名地址C: 签名门槛:2/3 创建交易哈希: 合约版本:

第五步:小额测试

先转入小额资产,例如10至100美元。

完成下面四项测试:

  1. 两个签名人共同转出一笔小额资产;

  2. 更换另一组签名组合再转出一次;

  3. 确认单个签名人无法执行交易;

  4. 确认三套设备均能正确识别Safe交易。

所有组合测试成功后,再分批转入正式资金。

不要一次性把全部资产转入新地址。建议先转入10%,观察一至两天,再继续转入。

六、比创建多签更重要:正确的签名流程

多签最大的风险不是合约本身,而是多名签名人对着同一个被劫持的页面连续点击确认。

安全的签名流程应分为五步。

第一步:发起交易

发起人提交完整的交易申请,包括:

网络及Chain ID Safe地址 资产名称 代币合约地址 转账数量 收款地址 交易目的 目标合约地址 函数名称 calldata Safe nonce 是否包含授权 授权金额 operation类型 预计Gas

仅发送“给某地址转100万USDT”是不够的。

第二步:地址核验

收款地址必须通过两种以上独立方式确认。例如:

  • 内部白名单;

  • 当面核对;

  • 电话复述地址首尾字符;

  • 历史小额交易;

  • 区块浏览器标签;

  • 签署过的地址声明。

不要完全依赖复制粘贴。剪贴板木马会把正确地址替换成攻击者地址。

核对时至少检查:

  • 前6位;

  • 中间4—6位;

  • 后6位。

大额新地址必须先进行小额测试。

第三步:交易解码

签名人应检查:

  • to:真正调用的地址;

  • value:发送的原生代币数量;

  • data:合约调用参数;

  • operation:调用类型;

  • nonce:交易顺序;

  • 授权对象和授权额度;

  • 执行后资产变化;

  • Owner、Threshold和Module是否变化。

特别注意以下危险操作:

  • approve无限授权;

  • permit签名;

  • setApprovalForAll;

  • enableModule;

  • addOwnerWithThreshold;

  • changeThreshold;

  • swapOwner;

  • 合约升级;

  • delegatecall;

  • 未知批量交易。

Safe交易中的operation = 1通常表示delegatecall。它可能修改Safe的内部状态、签名人或实现逻辑。除非经过专业人员审计,否则不要签署。Safe异常delegatecall说明

第四步:独立模拟

在签名前使用第二套工具模拟交易,例如:

  • Safe内置模拟;

  • Tenderly;

  • 区块浏览器交易解码器;

  • 自有RPC节点;

  • 安全公司的交易扫描工具。

模拟结果至少应确认:

  • 哪些代币将流出;

  • 哪些代币将流入;

  • 授权额度如何变化;

  • Safe所有者有没有变化;

  • 是否安装新模块;

  • 是否触发代理合约升级。

如果模拟失败、无法解码或者结果和预期不一致,应立即停止。

Safe官方建议使用多个工具和独立设备验证交易,并遵循“无法验证,就不要签”的原则。Safe硬件钱包验证指南

第五步:分离签名和执行

推荐由不同人员承担以下职责:

  • A负责创建交易;

  • B负责业务信息审核;

  • C负责技术解码;

  • D负责最终执行。

对于个人2/3钱包,至少应做到:

  • 在电脑上创建交易;

  • 在另一台手机上核对地址;

  • 在硬件钱包屏幕上确认最终数据;

  • 隔几分钟后再用第二台硬件钱包签署。

时间间隔能减少机械式连续点击。

七、项目方推荐的3/5金库方案

项目金库、协议收入、LP资产和用户准备金不应共用一个多签。

建议拆分为:

主金库

  • 3/5或4/7;

  • 只负责长期储备;

  • 不直接连接DeFi网站;

  • 大额转出设置24—72小时时间锁;

  • 每笔交易必须经过财务和技术双重审核。

运营钱包

  • 2/3;

  • 只保留一个月运营资金;

  • 设置单笔和每日限额;

  • 定期从主金库补充;

  • 被攻破时不影响主储备。

合约管理钱包

  • 与资金钱包使用不同签名人组合;

  • 专门管理升级、暂停和参数修改;

  • 所有升级经过时间锁;

  • 紧急权限只能暂停,不应拥有随意转移用户资产的能力。

做市钱包

  • 单独隔离;

  • 设定最大余额;

  • API和策略服务器不持有主金库权限;

  • 自动化系统只能执行明确白名单内的操作。

八、模块、额度和恢复功能中的隐藏风险

1. Safe模块可能绕过多签

Safe Module可以执行自动付款、限额支出等功能,但也可能绕过正常的M-of-N门槛。

例如,某个模块可能允许一个地址在不获得其他签名人批准的情况下转账。恶意模块甚至可以直接转走资产或修改Owner结构。

因此:

  • 核心金库尽量不安装模块;

  • 安装前必须审计模块合约;

  • 定期检查已启用模块;

  • 不使用来源不明的Safe App;

  • 模块变更按照最高风险交易处理。

Safe官方模块风险说明

2. Spending Limit并不等于普通多签

Safe的Spending Limit允许指定地址在限额内绕过多签门槛直接转账。

适合小额运营,但不适合核心储备。如果使用:

  • 设置尽可能低的每日额度;

  • 仅允许稳定币等特定资产;

  • 不授予主储备资产权限;

  • 每月检查受益地址;

  • 人员离职后立即撤销。

3. 恢复账户也可能成为后门

恢复功能可以在签名设备丢失时更换Owner,但恢复账户本身一旦被盗,也可能被用于夺取控制权。

建议:

  • 恢复账户本身使用2/3多签;

  • 设置至少14—28天延迟;

  • 为恢复发起事件设置链上告警;

  • 定期检查恢复配置;

  • 不使用日常热钱包作为恢复账户。

九、如何防止钱包前端被劫持

前端劫持不一定意味着用户访问了假网站。有时真实网站、DNS、CDN、统计脚本或部署账户被攻破后,攻击者可以直接在官网插入恶意代码。

页面可能继续显示“向正常地址转账”,但硬件钱包实际收到的交易可能是:

  • 更换Safe实现合约;

  • 添加恶意Owner;

  • 降低多签门槛;

  • 安装恶意模块;

  • 无限授权攻击者合约;

  • 使用delegatecall修改钱包状态。

因此,不能把“官网显示内容”当作最终事实。

用户侧防护

使用独立验证设备

不要在同一台电脑上同时完成:

  • 打开网页;

  • 创建交易;

  • 核对交易;

  • 保存密码;

  • 完成全部签名。

推荐结构:

  • 电脑A:打开Safe并创建交易;

  • 手机B:查看区块浏览器和内部审批单;

  • 硬件钱包C:显示并签署最终交易;

  • 电脑D或技术人员:独立模拟复杂交易。

攻击者需要同时控制多个环境,难度会明显增加。

核对硬件钱包屏幕

浏览器显示的内容可能被篡改,硬件钱包屏幕更接近最终签名数据。

至少检查:

  • 网络;

  • 收款地址;

  • 数量;

  • 目标合约;

  • 函数;

  • 授权额度。

如果设备只能显示“Blind Signing”或无法展示实际内容,大额交易不要继续。

建立地址白名单

常用交易所充值地址、托管地址和团队钱包应提前登记。

白名单变更需要:

  • 两人以上审批;

  • 24小时冷静期;

  • 小额测试;

  • 链上确认;

  • 独立渠道复核。

项目网站侧防护

保护域名和DNS

  • 域名注册商开启硬件安全密钥;

  • 禁止使用短信2FA;

  • 开启Registry Lock;

  • 开启DNSSEC;

  • DNS变更需要双人审批;

  • 监控域名解析变化;

  • 监控新签发的TLS证书;

  • 域名账户和部署账户使用不同管理员。

DNSSEC通过密码学签名验证DNS记录来源,能够降低解析结果被伪造或篡改的风险。Cloudflare DNSSEC说明

加固GitHub和部署流程

  • 生产分支禁止直接push;

  • 至少两名审核人才能合并;

  • 生产发布需要额外审批;

  • 开发者使用硬件安全密钥;

  • CI权限默认只读;

  • 部署使用短期OIDC凭证;

  • 不在仓库保存长期云平台Token;

  • 第三方Action固定到完整commit SHA;

  • 依赖版本锁定;

  • 自动扫描密钥泄露;

  • 构建产物生成哈希和来源证明;

  • 发布后自动比对线上文件。

GitHub明确建议为工作流设置最小权限,并将第三方Action固定到完整commit SHA,以降低供应链攻击风险。GitHub安全指南

减少第三方JavaScript

钱包连接页面尽量不要加载:

  • 广告脚本;

  • 在线客服;

  • 未固定版本的CDN脚本;

  • 第三方标签管理器;

  • 不必要的统计代码。

必须加载的第三方文件应启用SRI完整性校验。浏览器会比较脚本哈希,如果内容被替换,就拒绝执行。MDN:Subresource Integrity

同时部署严格CSP:

  • 禁止unsafe-inline;

  • 禁止eval();

  • 脚本使用nonce或哈希;

  • 限制允许连接的API域名;

  • 禁止未知iframe;

  • 开启CSP违规上报。

MDN:Content Security Policy

十、比特币应该如何多签保管

Safe主要用于EVM资产,原生BTC应使用比特币原生多签钱包。

推荐逻辑仍然是2/3:

  • 三台独立硬件钱包;

  • 三套独立种子;

  • 至少两种设备品牌;

  • 钱包描述符单独备份;

  • 每个签名器的主密钥指纹单独记录;

  • 首次收款前验证三个设备显示的地址一致;

  • 使用PSBT完成离线签名;

  • 正式存入前完成恢复测试。

比特币多签除了助记词,还需要备份钱包描述符、派生路径和各签名器的扩展公钥。只拥有两套助记词,但丢失整个多签配置,恢复过程会变得非常困难。

十一、必须建立链上监控

冷钱包不代表可以十年不看。

建议对以下事件设置即时通知:

  • 大额资产转出;

  • 新增或删除Owner;

  • Threshold变化;

  • 启用或移除Module;

  • Guard变化;

  • 实现合约变化;

  • 无限授权;

  • 恢复流程启动;

  • 时间锁交易进入队列;

  • 稳定币被冻结;

  • 钱包第一次与新合约交互。

通知应发送到多个渠道,例如邮件、短信、Telegram和电话值班系统。监控账户不能与签名账户共用凭证。

十二、发生异常时怎么处理

如果怀疑某个签名设备或前端遭到入侵:

  1. 立即停止所有待签交易;

  2. 不再使用可疑电脑和网络;

  3. 从干净设备检查Safe的Owner、Threshold和Modules;

  4. 取消尚未执行的恶意交易;

  5. 使用剩余安全签名人移除可疑Owner;

  6. 撤销高风险代币授权;

  7. 将资产转入提前准备好的备用多签;

  8. 保存浏览器、设备和链上证据;

  9. 通知稳定币发行方、交易所和安全机构;

  10. 在确认根因前,不要重新使用原有设备。

备用钱包应提前部署并测试。事故发生后才临时创建新钱包,很容易在紧张状态下再次出错。

最终安全检查表

长期持有大额加密资产前,请逐项确认:

  • 核心资产没有长期放在交易所;

  • 日常钱包与储备钱包已经隔离;

  • 核心资产使用2/3或更高门槛多签;

  • 每个签名地址使用独立助记词;

  • 至少两个签名器为硬件钱包;

  • 签名设备存放在不同地点;

  • 助记词从未联网或拍照;

  • 已完成助记词恢复测试;

  • 已完成多签小额转入和转出测试;

  • 已离线保存Safe地址、Owner和Threshold;

  • 核心金库没有未知Module;

  • 新地址先进行小额测试;

  • 每笔大额交易都进行独立解码和模拟;

  • 签名人不依赖同一个前端页面;

  • 已配置Owner、Module和大额转账告警;

  • 项目金库已设置额度与时间锁;

  • 已准备并测试应急备用钱包;

  • 团队每半年进行一次恢复演练。

结语

最安全的持币方式,不是把全部希望寄托在某个交易所、某个钱包品牌或某一把“永远不会泄露”的私钥上。

真正可靠的资产保管系统,应该允许部分组件失败:

  • 一台电脑中毒,资产不会丢;

  • 一个私钥泄露,资产不会丢;

  • 一个签名人失联,资产不会永久锁死;

  • 一个网页被劫持,其他签名人能够发现;

  • 一个运营钱包被盗,主金库仍然安全;

  • 一笔恶意交易被提交,时间锁和监控能够阻止它。

所以,最安全的持币公式不是简单的“冷钱包”或者“多签”,而是:

资产分层+独立硬件签名+多签门槛+交易验证+权限隔离+时间锁+实时监控+应急演练。

全文完
查看原文