冷存储与多重签名钱包:加密货币交易所如何守护数十亿美元资产
目录
- 仅 2022 年一年就被盗 38 亿美元,其中大部分本可避免
- 冷/热/温钱包架构(又称 95/5 规则)
- 多重签名安全:消除单点故障
- API 安全:多数交易所敞开的正门
- DDoS 防护:偷不走就毁掉
- 内部安全管控:最大的威胁就挂着公司工牌
- KYC/AML:既保安全又保合规
- 事件响应:希望你永远用不上的预案
- 交易所运营者安全审计清单
- Codono 如何处理安全
- 安全心态
仅 2022 年一年就被盗 38 亿美元,其中大部分本可避免
我们来聊一件应该让每个交易所运营者夜不能寐的事:加密货币交易所被黑事件惊人的可预测性。
2022 年 3 月 Ronin Network 损失 6.25 亿美元时,根本原因并不是什么高明的零日漏洞,而是验证者私钥被攻破——九个验证者中有五个由单一实体控制,攻击者通过社会工程学拿到了足够的密钥,把跨链桥掏空。2014 年 Mt. Gox 倒闭、85 万枚比特币不翼而飞时,底层问题包括热钱包管理不善、完全没有多重签名管控、几乎没有任何内部审计记录。而 FTX 崩盘呢?那甚至算不上真正的黑客攻击,只是一个对客户资金拥有不受限制访问权限的内部人员,且完全没有任何运营管控来阻止他。
当你见得足够多之后,这个模式就明显得令人痛心。而我们确实见得够多了——在帮助 500 多家交易所构建并加固其平台之后,我们发现失败模式几乎总是相同的。击垮交易所的不是那些高深莫测的国家级攻击,而是那些无聊的东西:糟糕的密钥管理、单点故障、拥有”上帝模式”权限的管理员账户、热钱包里塞着远超应有数量的加密货币——只因为有人懒得执行一次资金归集。
下面讲讲真正有效的做法。不是那种充斥着”军用级加密”和”AI 驱动威胁检测”的营销话术版本,而是真实的版本。在这个版本里,我要告诉你:好的安全架构是极其不性感的,而这恰恰是它有效的原因。
冷/热/温钱包架构(又称 95/5 规则)
如果你只为交易所实施一项安全措施,那就选这个:在任何时候都将 95% 或以上的客户资金保存在冷存储中。
冷存储意味着私钥永远不接触联网设备。永远不。它们在离线环境中生成,存储在硬件安全模块(HSM)或物理隔离(air-gapped)的计算机上,交易在物理隔离的环境中签名。私钥一旦出现在联网的机器上,就会成为攻击目标。冷存储消除了这整个攻击面。
但你无法只靠冷存储运营交易所。用户期望在几分钟内完成充提,而不是几小时。这就是热钱包和温钱包层级存在的意义。
热钱包是你的前线。它们连接互联网,与交易所的提现系统集成,只持有足以应对正常提现量的加密货币——通常占总资金的 2-5%。把它们想象成零售店的收银机:你放足够的零钱用于找零,但不会把一整天的营业额都放在抽屉里。
温钱包介于热钱包和冷钱包之间。它们是半联网的——可能部署在一个只在预定时间上线、为热钱包补充资金的系统上。温钱包可能持有 5-10% 的资金,充当缓冲层,让你无需为日常操作动用冷存储。
冷钱包持有其余的一切。绝大部分。那 85-95%。
资金归集(Sweeping)如何运作
流程是这样的:充值进入充值地址,这些地址本质上是临时的热钱包。归集程序定期从这些地址收集充值并合并。小额资金被转入热钱包以维持其运营余额,其余全部归集到冷存储。
在提现一侧,当用户发起提现时,资金来自热钱包。如果热钱包余额低于阈值,就需要有人(理想情况下是两个人,我们稍后会讲到)授权从温钱包转账进行补充。冷存储只在大额、计划内的资金调动时才会被动用——而这些操作应要求多人审批、人员到场以及书面流程。
实际数字因交易所规模而异。一个日交易量 100 万美元的小型交易所可能在热钱包里放 5 万美元。一个日交易量 5000 万美元的中型交易所可能持有 50 万至 100 万美元的热钱包资金。关键指标是:你的热钱包能否覆盖 4-8 小时的正常提现需求?如果能,你的规模配置大概是合理的。如果持有量超过这个水平,你就在承担不必要的风险。
一套完善的加密货币钱包基础设施会处理所有这些——归集计划、阈值监控、各层级之间的自动再平衡。但再好的软件,也只有在配套政策到位时才能发挥作用。这就引出了多重签名。
多重签名安全:消除单点故障
多重签名(multi-sig)钱包要求多于一个私钥才能授权一笔交易。概念很简单,安全意义却巨大。
没有多签,单个密钥被攻破就意味着全部损失。一个被钓鱼的员工、一个被盗的硬件钱包、一个恶意内部人员——资金就没了。多签彻底改变了这道数学题:攻击者现在需要攻破多个相互独立的密钥,理想情况下这些密钥由不同的人、在不同的地点、采用不同的安全实践持有。
多签的现代继任者把这个理念推进得更远:阈值 MPC 彻底消除了完整密钥的存在,即使从单个签名者那里也无钥可偷。我们在 Codono Enterprise 的 MPC 签名器如何工作 一文中对此有深入介绍。
常见的多签配置
2-of-3: 共三个密钥,任意两个即可授权交易。这是交易所运营的最低可行多签方案。通常一个密钥由 CEO/创始人持有,一个由 CTO 或安全负责人持有,一个存放在安全保险库中作为备份。它既能防止单个密钥被攻破,又能在某个持钥人无法履职时维持运营。
3-of-5: 五个密钥,需要三个。这是我们为持有大额资产的冷存储钱包推荐的配置。把密钥分散在高管团队、董事会成员甚至外部托管机构之间。地理分布同样重要——密钥应位于不同的物理地点,最好是不同的城市或国家。如果五位持钥人中有三位在同一间办公室工作,一次物理安全事件就可能攻破你的整套体系。
4-of-7: 适用于持有数亿美元资产的大型交易所。要求的签名越多,攻击越难,但每笔交易的操作复杂度也越高。在这个级别,你可能还会实施时间锁(交易在签名后 24-48 小时才执行,给你留出发现并取消欺诈交易的窗口),并使用硬件安全模块进行密钥生成与存储。
什么阶段用哪种配置
刚起步、托管总额不足 100 万美元?2-of-3 就够了。它能提供有意义的保护,又不会造成运营噩梦。当托管规模超过 1000 万美元时,冷存储升级到 3-of-5,温钱包保持 2-of-3。超过 1 亿美元时,你应该考虑 4-of-7,配合地理分散、时间锁,以及某种形式的机构托管合作。
关键规则:任何单个人都绝不能单方面动用冷存储资金。没有例外。如果你的交易所存在 CEO 一人就能掏空冷钱包的设置,那你拥有的不是安全架构,而是”祈祷 CEO 保持诚实”架构。FTX 就是这种架构,它的结局大家都看到了。
API 安全:多数交易所敞开的正门
交易所的 API 是外界与你的平台交互的方式。交易机器人、做市商、机构客户、移动应用——它们都在调用你的 API。它也是任何交易所上被攻击最多的表面,每秒处理数千个请求,其中许多来自全天候探测弱点的自动化系统。
速率限制:第一道防线
速率限制不仅仅是为了防止滥用,更是为了确保单个被攻破的 API 密钥无法在几秒钟内掏空一个账户。
智能的速率限制在多个层面生效:
- 按 IP 限制: 限制任何单一 IP 地址的请求数量。一般接口每分钟 1200 次请求是合理的默认值,敏感操作应更严格。
- 按账户限制: 即使是已认证的请求也应设限。一个合法的交易机器人可能每秒下 10 笔订单。如果一个 API 密钥突然开始每秒发起 1000 次提现请求,那就不是机器人——那是攻击。
- 按接口限制: 提现接口的速率限制应远低于行情数据接口。没有任何合法场景需要在一分钟内提交 50 次提现请求。
- 分级响应: 首次违规给予温和减速,重复违规给予临时封禁,持续滥用给予永久封禁并对该账户进行安全审查。
HMAC 签名认证
每一个涉及账户操作的 API 请求——下单、提现、查询余额——都应使用 HMAC(基于哈希的消息认证码)签名进行认证。
实际工作原理是:用户持有 API 密钥(公开标识符)和密钥(secret key,永不在网络上传输)。发起请求时,客户端用密钥对请求参数加上时间戳进行哈希,生成签名。服务器收到请求后,用自己保存的密钥副本重建签名并验证是否匹配。如果时间戳超过 30 秒,就拒绝该请求——这可以防止重放攻击,即有人截获已签名的请求并试图重复使用。
这是基本门槛。如果你的交易所 API 对认证接口不要求 HMAC 签名,你就有严重的问题。
IP 白名单
允许用户将 API 密钥限定在特定 IP 地址。一个从三台已知服务器运行机器人的做市商,应该能把 API 密钥锁定到这三个 IP。如果有人偷走了 API 密钥并试图从其他 IP 使用,请求会被拒绝。
仅这一个功能,就能阻止绝大多数 API 密钥盗窃真正造成资金损失。把它做出来,放在显眼位置,并考虑对拥有提现权限的 API 密钥强制启用。
交易所运营面板应让你的安全团队实时掌握 API 使用模式——突然的峰值、异常的地理来源、密钥被用于新 IP。检测几乎与预防同等重要。
DDoS 防护:偷不走就毁掉
针对加密货币交易所的分布式拒绝服务(DDoS)攻击是常态化的。不是偶发——是常态。在市场剧烈波动时期(恰恰是你的交易所最需要在线的时候),攻击流量可能暴涨 10-20 倍。攻击者形形色色:有想把你的用户推向自己平台的竞争对手,有指望交易所宕机引发市场恐慌从而获利的做空者,也有老派的勒索者,开口就要比特币赎金。
第 3/4 层防护(网络层)
这是流量型攻击的缓解——在海量垃圾流量到达你的服务器之前将其吸收。你需要 Cloudflare、Akamai 或 AWS Shield 这样的 CDN/DDoS 缓解服务商。不要试图自己扛。一次严重的 DDoS 攻击可以推送 500 Gbps 甚至更多的流量。除非你拥有自己的数据中心和巨大的上游带宽,否则你需要一家以吸收这类洪流为全部业务的服务商。
Cloudflare 的免费套餐对交易所来说不够用。你需要 Business 或 Enterprise 计划,其中包括高级 DDoS 防护、针对 API 流量模式定制的 WAF 规则,以及其安全团队的 7×24 小时支持。预算至少每月 200-500 美元。这是便宜的保险。
第 7 层防护(应用层)
这些是狡猾的攻击。它们不用原始带宽淹没你,而是发送精心构造、看似合法、实则旨在压垮你应用程序的请求。比如数千次复杂的订单簿查询、大规模登录尝试,或触发昂贵数据库操作的 API 请求。
第 7 层防护意味着:
- Web 应用防火墙(WAF)规则,用于检测并拦截恶意请求模式
- 针对可疑流量的挑战页面(CAPTCHA、JavaScript 挑战)
- 地理过滤——如果你不为某些地区的用户提供服务,可以在攻击期间拦截或挑战来自这些地区的流量
- 行为分析,基于请求模式、鼠标移动和浏览行为区分真人与机器人
撮合引擎隔离模式
这是多数小型交易所忽略的一点:你的撮合引擎应与面向公众的 Web 服务器隔离。如果 DDoS 攻击打垮了你的网站,那很糟;如果它同时打垮了撮合引擎,导致用户无法交易或提现——那就是灾难。
把撮合引擎运行在不直接暴露于互联网的独立基础设施上。Web 服务器通过内部消息队列与撮合引擎通信。即使 Web 前端宕机,撮合引擎也会继续运行,你可以恢复前端而不影响任何挂单或成交。
内部安全管控:最大的威胁就挂着公司工牌
我知道这听起来像被害妄想。但并非如此。数据很清楚:内部威胁在交易所安全事件中占据了不成比例的份额。不是因为大多数员工心怀恶意——绝大多数并非如此——而是因为一个拥有高权限的坏人,能造成的破坏超过一千个外部攻击者。
基于角色的访问控制(RBAC)
不是每个管理员都需要访问一切。事实上,任何管理员都不应该能访问一切。围绕最小权限原则构建你的访问控制:
- 客服人员可以查看账户详情和交易历史。他们不能修改余额、覆盖 KYC 状态或处理提现。
- 合规人员可以审查 KYC 文件并标记账户。他们不能访问钱包基础设施或交易系统配置。
- 财务团队可以查看汇总报表和金库余额。他们不能发起单笔交易。
- 系统管理员可以管理基础设施。他们无权访问私钥。
- 高管层拥有更广泛的访问权限,但敏感操作仍需第二人参与。
Codono 交易所管理面板正是围绕这一原则构建的——每个角色都有特定权限,扩展这些权限需要明确授权,并会留下审计记录。
双人规则
对于任何可能导致资金损失的操作,要求两名授权人员参与。这包括:
- 超过特定阈值的提现(比如 1 万美元)
- 钱包配置的变更
- 交易对设置的修改
- 停用安全功能
- 覆盖 KYC/AML 标记
- 新增管理员账户
一人发起,另一人审批。两个动作都会连同时间戳、IP 地址和设备指纹一起记录。这不仅能防止恶意内部人员,还能防范管理员账户被盗。即使攻击者拿到了一位管理员的凭证,他们仍需要第二位管理员来批准那些危险操作。
真正有意义的审计日志
交易所上的每一个动作——每笔交易、每笔提现、每次管理员登录、每次配置变更——都应产生不可篡改的审计日志。“不可篡改”是关键词。日志应写入连你的资深开发人员都无法修改或删除的系统:发送到外部日志服务、写入仅追加(append-only)存储,或使用基于区块链的审计追踪。
这些日志是你的取证生命线。当(不是如果)出事时,你需要精确还原发生了什么、何时发生、由谁操作。没有完整的审计日志,事件调查就是猜谜,监管问询就是噩梦,法律责任会高到冲破天花板。
KYC/AML:既保安全又保合规
人们倾向于把 KYC/AML 系统视为纯粹的合规要求——是监管机构要求才不情愿地实施的东西。这是错误的。好的 KYC/AML 同时也是一层安全防护。
身份验证防止攻击者创建成群结队的虚假账户来利用你的平台。交易监控标记可能意味着账户接管、洗钱或内部操纵的异常模式。制裁名单筛查防止你的交易所被受制裁实体用作通道——撇开法律后果不谈,这往往会引来任何交易所都不想要的执法关注。
接入像 Sumsub 这样信誉良好的 KYC 服务商,它能处理多个司法辖区和证件类型的验证。这项技术如今已经成熟——带活体检测的实时身份验证对大多数用户来说不到两分钟。再也没有任何理由跳过它或敷衍了事。
事件响应:希望你永远用不上的预案
每家交易所最终都会遇到安全事件。不是可能——是一定。问题在于你是在五分钟内响应还是五小时内响应,而这个差别往往决定事件是一次可控的插曲,还是一场生死存亡的危机。
事件响应计划应涵盖以下内容
检测: 你怎么知道出事了?自动化监控应覆盖异常提现模式、登录异常、API 滥用、服务器资源飙升和钱包余额偏差。告警阈值宁可过于敏感,也不要不够敏感。调查误报很烦人,漏掉真实入侵是致命的。
遏制: 最初五分钟会发生什么?你的团队应能在确认入侵后 60 秒内暂停所有提现。不是”开个会讨论一下要不要暂停提现”,不是”设法联系 CEO 审批”。立即、自动、有章可循。值班人员应同时拥有立即叫停提现的权限和技术能力。
评估: 遏制之后,弄清范围。哪些系统被攻破?哪些账户受影响?损失了多少?攻击路径是什么?这就是你的审计日志体现价值的地方。
沟通: 告诉你的用户发生了什么。快速且诚实。能从安全事件中幸存下来的交易所,都是透明处理的交易所。那些试图掩盖或沉默数天的交易所,会被谣言碾碎。在几小时内而非几天内发布公开声明。对你已知的情况具体说明,对你尚不清楚的情况坦诚相告。
恢复: 修复漏洞,恢复服务,如有可能,对受影响用户进行全额赔付。然后发布事后复盘报告。加密社区尊重那些专业、透明地处理事件的交易所。
改进: 每次事件都是学习机会。根据教训更新你的安全架构。开展模拟类似攻击的桌面演练。确保同一条攻击路径无法被再次利用。
每季度进行桌面演练
召集你的团队,给出一个场景:“周六凌晨 3 点,监控系统告警:过去 15 分钟内有 500 枚 BTC 从热钱包转往未知地址。你怎么办?“逐步走完响应流程,在真实攻击者之前找出预案中的漏洞。
交易所运营者安全审计清单
上线之前——以及此后每季度——过一遍这份清单。它并不详尽,但涵盖了我们最常见到交易所忽视的基本项:
钱包安全
- 冷存储持有 95% 以上的全部客户资金
- 所有钱包启用多重签名(最低 2-of-3)
- 密钥在物理隔离设备上生成
- 备份密钥存在,并存储在地理上分散的安全地点
- 资金归集按自动化计划运行,并设有余额阈值
- 热钱包余额有实时监控和告警
访问控制
- 所有管理员账户强制执行基于角色的权限
- 所有敏感操作启用双人规则
- 所有管理员账户要求硬件 2FA(而非短信)
- 管理员会话在 15 分钟无操作后过期
- 离职员工的访问权限在离职后一小时内撤销
- 每季度进行访问审查,确认所有权限仍然适当
API 安全
- 所有认证接口使用 HMAC 签名认证
- 所有接口有速率限制,敏感接口限制更严格
- API 密钥支持(并鼓励使用)IP 白名单
- 拥有提现权限的 API 密钥需要额外验证
- 所有 API 流量使用 TLS 1.2 或更高版本
- 请求时间戳校验防止重放攻击
基础设施
- 通过信誉良好的服务商(Cloudflare、Akamai、AWS Shield)提供 DDoS 防护
- 撮合引擎与面向公众的 Web 服务器隔离
- 数据库静态加密与传输加密
- 定期自动备份,并测试过恢复流程
- 服务器仅通过 SSH 密钥访问(禁用密码认证)
- 所有依赖项都受到已知漏洞监控
监控与响应
- 针对异常提现模式的实时告警
- 登录异常检测(新设备、新地点、不可能完成的行程)
- 不可篡改的审计日志发送至外部存储
- 事件响应计划已记录并每季度演练
- 值班轮换机制,值班人有权立即暂停提现
- 安全事件沟通模板已备妥
合规
- 超过阈值的所有用户完成 KYC/AML 验证
- 针对可疑模式的交易监控
- 对照最新的 OFAC 和欧盟制裁名单进行筛查
- 全体员工定期接受合规培训
- 监管报告流程已记录
Codono 如何处理安全
我们从 2018 年起就开始构建加密货币交易所软件,而安全从一开始就是架构的核心——不是事后才补上的附加品。
Codono 平台开箱即用地实现了本文讨论的一切。钱包系统支持完整的冷/热/温钱包架构,具备自动归集、可配置的余额阈值和多重签名支持。管理面板强制执行基于角色的访问控制,敏感操作采用双人规则,并有完整的审计日志。
KYC/AML 内置其中,原生支持 Sumsub 等服务商,包括实时身份验证、交易监控和制裁名单筛查。平台管理面板让你的安全团队掌握交易所上发生的一切——API 使用模式、登录异常、提现趋势和系统健康指标。
但我想坦诚说明一点:任何软件都无法替代良好的安全实践。Codono 给你工具,你仍然需要正确地使用它们。你仍然需要实施正确的密钥管理。你仍然需要培训你的团队。你仍然需要第三方安全审计。你仍然需要事件响应计划。
2025 年被黑的交易所,不会是那些运行着烂软件的(虽然也会有),而是那些运行着好软件却搞着烂运营安全的。工具的好坏,取决于握着它的那双手。
安全心态
如果这篇文章只有一点值得带走,那就是:安全不是一项你实现之后就能从清单上划掉的功能,而是一门持续的修行。威胁形势在演变,攻击者在变得更精明,新漏洞在不断出现。上个月还安全的交易所,如果没人盯着,这个月可能就未必安全了。
把安全融入每一个决策。每个新功能都要经过安全评审。每位新员工都要接受安全培训。每个季度都做一次安全审计。每次事件都产出复盘和改进。
长期繁荣的交易所,是那些把安全融入文化而不仅仅是技术栈的交易所。在这样的交易所里,初级开发者敢于指出潜在漏洞,CEO 会参与桌面演练,而”那个安全问题我们以后再修”永远不是一个可以接受的回答。
把安全做对的成本,以数千美元和数小时的规划来衡量。做错的成本,以数百万美元、刑事责任和生意终结来衡量。这笔账并不复杂。
去做那些无聊的事。持之以恒地做。然后晚上睡得安稳一点——因为你知道,当(不是如果)有人盯上你的交易所时,你已经做了一切合理的事来阻止他们。
Codono Team
Codono builds enterprise-grade crypto exchange software deployed by 250+ operators across 40+ countries. Our team writes from production experience running spot, derivatives, custody, and compliance at scale.
View all posts by Codono Team →