KeyAudit 索引了什么
KeyAudit 是一个公开的钱包泄露地址索引,目前收录 694 万条记录,覆盖 28 条公链,数据来自 25 个全程透明、可追溯的公开来源。每条记录都标注了所属公链、原始来源、以及反映泄露发现路径的置信度分级。
本索引不是凭据填充攻击意义上的"撞库库"——大多数条目是可派生出私钥的地址,而非被盗账户的凭据。来源构成大致为:链上确认的盗币事件、OFAC 等制裁名单、学术界脑钱包/弱密钥研究数据集、社区维护的诈骗地址清单、以及字典派生的理论命中。
5 级置信度分层
每条记录都坐落在 5 级置信度阶梯上。等级直接决定一次命中应该被多严肃对待。
confirmed_stolen——该地址在公开事故复盘中被明确记录为盗币目的地或源头(rug pull、交易所被黑、跨链桥被攻击等)。sanctioned——被 OFAC、欧盟、英国财政部等司法机关列入制裁名单。命中此级首先是法律风险信号,其次才是安全风险。academic_dataset——来自经同行评议的脑钱包/弱密钥研究(如 Vasek 等 2014 年研究、Trezor 历史报告)。地址对应的私钥被研究者证明是可猜测的。community_curated——钓鱼跟踪清单(ScamSniffer、Chainabuse)、CryptoScamDB 等志愿者维护语料。覆盖广,但单条验证度低于上述三级。dict_derived——根据常见词表、泄露密码 dump、脑钱包候选短语计算得出的地址。此级命中只是理论可能——意味着输入派生出的地址是攻击者用常见词表也能轻易算出的,并不代表资金真的被盗过。
一次查询是怎么处理的
泄露查询接受三种输入:纯地址、BIP-39 助记词、或私钥(hex 或 WIF)。对于助记词和私钥,输入在浏览器端先用 SubtleCrypto.digest('SHA-256', ...) 哈希后才发起网络请求,服务器只看到 32 字节的 hash。
该 hash 先过一个进程内 Bloom 过滤器做 O(1) 不命中拒绝,再走 address_hash 索引在 MySQL 中精确确认。整条链路上,明文助记词或私钥从未离开你的设备,也不会被服务端记录或落盘。
数据来源
KeyAudit 的每一条记录都指向其公开出处。完整清单及每个来源的覆盖统计见 /zh/source。主要贡献者包括 CryptoScamDB 钓鱼地址语料、OFAC SDN 清单、ScamSniffer 黑名单流、Vasek 等 2014 年脑钱包研究、SecLists Top-1000 密码字典派生集等。我们不索引任何尚未公开的数据。
边界与不承诺
dict_derived 命中不是被盗证据。它的含义是:你查询的输入派生出的地址是攻击者用常见词表也能轻松重算出的;命中本身只是理论暴露面。如果你的钱包出现 dict_derived 命中,稳妥做法是迁移到由硬件钱包生成的 BIP-39 助记词上——但并不一定有人确切知道你的那串短语。
反过来说,查不到也不等于安全。定向攻击(SIM swap、恶意软件取私钥、供应链投毒)不会在字典或研究数据集中留下痕迹。KeyAudit 抓得住的是工业化、批量化的密钥失陷,抓不住为你量身定制的攻击。
我们不做链上资金流图谱分析(那是 Chainalysis 的领域)。我们不追踪钱包随时间的活动。我们不做去匿名化。每一份索引都来自已公开的数据。
更新节奏
索引随上游源滚动刷新:制裁名单每周拉一次,诈骗地址流每日刷新,学术语料在新论文发布时增量并入。/zh/stats 的聚合统计每 6 小时从底库重新计算一次。