保姆级教你安全地持有加密资产
文章目录
从 Bitget 被盗事件谈起:硬件钱包、多签、冷存储与前端防劫持完整教程
2026年9月25日,Bitget 确认部分热钱包和温钱包发生未授权转账,初步涉及约3.516亿美元。平台表示冷钱包未受影响,用户资产由保护基金覆盖,并暂停提现开展安全审查。
截至本文发布时,Bitget 尚未公布完整的根因报告,因此不能断言事故一定由私钥泄露、多签失效或者前端劫持造成。Bitget 官方公告
但它再次揭示了一个长期存在的问题:
资产只要长期存放在联网的钱包里,并且能被单个私钥、单台服务器或一套自动签名系统转走,就始终存在单点失守风险。
那么,普通用户和项目方究竟应该如何持有加密资产?
答案不是购买某一款“最安全的钱包”,而是建立一套即使某个设备、某个私钥、某位员工或某个网页被攻破,攻击者也无法立即转走全部资产的系统。
这套系统包括:
资产分层、硬件钱包、多签、独立验证、限额、时间锁、实时监控和应急预案。
一、没有绝对安全的钱包,只有更合理的安全架构
钱包安全至少涉及六个风险层面:
-
私钥是否可能泄露;
-
签名设备是否可能被控制;
-
用户是否可能被诱骗签署恶意交易;
-
多签配置是否存在绕过路径;
-
交互的智能合约是否安全;
-
官网、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. 验证备份
在正式存入资金前,每套助记词都应进行一次恢复测试:
-
记录第一个收款地址;
-
将设备恢复出厂设置;
-
使用备份助记词重新恢复;
-
检查恢复后的地址是否与之前完全一致;
-
测试完成后再作为正式签名器。
不要等设备损坏后才第一次测试备份。
五、EVM资产多签教程:使用Safe创建2/3钱包
该方案适用于Ethereum、BSC、Arbitrum、Base等Safe支持的EVM网络。
第一步:核对官方网站
手动输入并收藏:
不要通过以下入口访问:
-
搜索引擎广告;
-
私聊发来的链接;
-
Telegram机器人;
-
陌生二维码;
-
所谓“Safe客服”提供的网页;
-
浏览器弹出的升级窗口。
首次使用时,通过Safe官方文档和至少一个独立渠道交叉核对域名。
第二步:准备Gas
创建Safe需要链上部署费用。给第一个签名地址转入少量对应链的原生代币:
-
Ethereum使用ETH;
-
BSC使用BNB;
-
Arbitrum使用ETH;
-
Polygon使用POL。
签名地址只需要少量Gas,不应存放大额资产。
第三步:创建Safe
-
打开Safe官方网站;
-
连接第一个硬件签名钱包;
-
选择正确的区块链;
-
点击“Create new account”;
-
输入本地钱包名称;
-
添加另外两个签名地址;
-
将Required Confirmations设置为2;
-
核对三个地址;
-
提交部署交易;
-
等待链上确认。
官方操作流程可参考Safe创建指南。
第四步:独立验证部署结果
不要只相信网页显示。部署完成后,在区块浏览器中打开Safe地址,检查:
-
所在链是否正确;
-
Safe地址是否正确;
-
三个Owner地址是否完全一致;
-
Threshold是否为2;
-
合约代码是否已验证;
-
是否存在未知模块;
-
是否存在未知Guard;
-
实现合约地址是否正常。
将以下内容打印或离线保存:
Safe地址: 网络: Chain ID: 签名地址A: 签名地址B: 签名地址C: 签名门槛:2/3 创建交易哈希: 合约版本:
第五步:小额测试
先转入小额资产,例如10至100美元。
完成下面四项测试:
-
两个签名人共同转出一笔小额资产;
-
更换另一组签名组合再转出一次;
-
确认单个签名人无法执行交易;
-
确认三套设备均能正确识别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;
-
模块变更按照最高风险交易处理。
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违规上报。
十、比特币应该如何多签保管
Safe主要用于EVM资产,原生BTC应使用比特币原生多签钱包。
推荐逻辑仍然是2/3:
-
三台独立硬件钱包;
-
三套独立种子;
-
至少两种设备品牌;
-
钱包描述符单独备份;
-
每个签名器的主密钥指纹单独记录;
-
首次收款前验证三个设备显示的地址一致;
-
使用PSBT完成离线签名;
-
正式存入前完成恢复测试。
比特币多签除了助记词,还需要备份钱包描述符、派生路径和各签名器的扩展公钥。只拥有两套助记词,但丢失整个多签配置,恢复过程会变得非常困难。
十一、必须建立链上监控
冷钱包不代表可以十年不看。
建议对以下事件设置即时通知:
-
大额资产转出;
-
新增或删除Owner;
-
Threshold变化;
-
启用或移除Module;
-
Guard变化;
-
实现合约变化;
-
无限授权;
-
恢复流程启动;
-
时间锁交易进入队列;
-
稳定币被冻结;
-
钱包第一次与新合约交互。
通知应发送到多个渠道,例如邮件、短信、Telegram和电话值班系统。监控账户不能与签名账户共用凭证。
十二、发生异常时怎么处理
如果怀疑某个签名设备或前端遭到入侵:
-
立即停止所有待签交易;
-
不再使用可疑电脑和网络;
-
从干净设备检查Safe的Owner、Threshold和Modules;
-
取消尚未执行的恶意交易;
-
使用剩余安全签名人移除可疑Owner;
-
撤销高风险代币授权;
-
将资产转入提前准备好的备用多签;
-
保存浏览器、设备和链上证据;
-
通知稳定币发行方、交易所和安全机构;
-
在确认根因前,不要重新使用原有设备。
备用钱包应提前部署并测试。事故发生后才临时创建新钱包,很容易在紧张状态下再次出错。
最终安全检查表
长期持有大额加密资产前,请逐项确认:
-
核心资产没有长期放在交易所;
-
日常钱包与储备钱包已经隔离;
-
核心资产使用2/3或更高门槛多签;
-
每个签名地址使用独立助记词;
-
至少两个签名器为硬件钱包;
-
签名设备存放在不同地点;
-
助记词从未联网或拍照;
-
已完成助记词恢复测试;
-
已完成多签小额转入和转出测试;
-
已离线保存Safe地址、Owner和Threshold;
-
核心金库没有未知Module;
-
新地址先进行小额测试;
-
每笔大额交易都进行独立解码和模拟;
-
签名人不依赖同一个前端页面;
-
已配置Owner、Module和大额转账告警;
-
项目金库已设置额度与时间锁;
-
已准备并测试应急备用钱包;
-
团队每半年进行一次恢复演练。
结语
最安全的持币方式,不是把全部希望寄托在某个交易所、某个钱包品牌或某一把“永远不会泄露”的私钥上。
真正可靠的资产保管系统,应该允许部分组件失败:
-
一台电脑中毒,资产不会丢;
-
一个私钥泄露,资产不会丢;
-
一个签名人失联,资产不会永久锁死;
-
一个网页被劫持,其他签名人能够发现;
-
一个运营钱包被盗,主金库仍然安全;
-
一笔恶意交易被提交,时间锁和监控能够阻止它。
所以,最安全的持币公式不是简单的“冷钱包”或者“多签”,而是:
资产分层+独立硬件签名+多签门槛+交易验证+权限隔离+时间锁+实时监控+应急演练。


