冒名者的商品是「含义」与「拼写」之间的落差——我们在 Snowflake 里同时测量两者
来源:dev.to — 2026-09-06
📋 概述
这是 DEV「慷慨周挑战」的作品(目标 Snowflake + Solana 奖项)。作者以 2025 年 1 月山火期间有人五天里注册 119 个含 LA fire/wildfire/relief 字样的域名为引——诈骗分子从不给「编造」的慈善机构注册域名,而是给真实机构「锉掉序列号」:重排同样的词、替换一个字母、在真实使命陈述后粘一句 Fire Relief。字符串匹配恰恰是错误工具,因为字符串被故意改得不一样——而冒名者卖的产品正是「含义与拼写之间的差距」。GLASSPOCKET 据此把含义(embedding)与拼写(Jaro-Winkler)分开测、把两者之差当作信号。
🔑 核心要点
- 核心洞察:别问「两个名字有多像」,而要问「如果分别测量含义与拼写、再把两者距离当作信号会怎样」——一次冒充是一句关于含义的主张,含义是向量,向量距离就是一次查询
- 探测器只是一条 SQL 语句:VECTOR_COSINE_SIMILARITY 扫 VECTOR(768) 列、旁边放一个 Jaro-Winkler、再做个减法——检测路径里没有模型服务器也没有 Python
- 诚实的准确率叙事:固定 0.86 阈值给 91.3% 召回率但只有 52.7% 精确率(会把共享行业的两家不相关机构误判),最终线上用 0.94:97.8% 精确率、67.5% 召回率,270/400 个植入冒名被抓住、130 个漏掉
- 它看得到的盲区正是野火数据记录的战术:往真慈善机构名后粘 Fire Relief 会真的改变含义,108 例只抓到 18 例——因为它建立在含义之上;更大盲区是根本没进申报系统的钱
- 项目对自己也讲诚实:两个自身主张都通过了验证——最仔细记录的平台限制其实是自己的语法错误,收据账本还逮到桥把 79 笔拨款铸了两遍而仓库自己的账本却报干净
💡 金句
字符串匹配正是错误工具,因为字符串被故意弄得不一样——那才是冒名者正在出货的产品。
👍 0
👎 0
← 返回 dev.to 首页