攻击从一次好奇开始
投毒剧本的第一步在链上:攻击者扫描全链,寻找“两个不同地址间出现极小额往来”的记账痕迹,挑一个首尾若干字符与你高度相似的伪造地址,向它(或恰好同形的前缀)发出同样极小额的转账。数周后你的交易历史里静静躺着一笔来自“像你的地址”的 0.0000x 记录。第二步在人心:某天你回看历史、点开旧记录想复用一个“老客户”地址,或者对着历史记录核对付款对象——那个被污染的条目替你说出了一个错误的地址。真正要花钱的转账赌的就是这一次视觉捷径。
为什么它能得逞:两条人类习惯
第一条是“历史即账本”的直觉:钱包展示的历史条目被默认为可信事实,但链上历史是任何人可写的公告板,你的地址不拥有它的交易记录所有权,UTXO 视角的归属逻辑见 比特币 UTXO 是什么?和账户模型区别。第二条是“前缀信任”的视觉捷径:人眼核对长地址实际只比首尾,地址设计里的校验字符(bech32 系列)能拦多数手抄错误,但拦不住攻击者按前缀定制的投毒脚本,见 比特币地址类型是什么?。配合剪贴板木马(复制的地址被静默替换),两条捷径可以同时被绕过。
防御清单
第一,复用地址习惯是最大暴露面:给同一联系人固定地址,等于给所有扫描链的投毒者挂上你的门牌——规范做法是每次收款新地址,配合标签机制而非地址记忆,见 比特币收款地址可以重复用吗?地址复用的隐私与聚类风险。第二,转账前核对永远用“对方现场展示”的一手来源:当面扫码、对方主动展示的收款页,或钱包内建立的受信任收款人,而不是自己历史里的旧条目。第三,硬件签名设备的地址回显是最后一道防线:屏幕上设备自己生成的地址与收款人一致才确认,设备侧信任模型见 硬件钱包漏洞公告后该怎么处置?。第四,对尘值级别的来路不明小额,钱包端隐藏并忽略是默认正确答案,它不进入你的余额认知,见 listunspent怎样筛安全UTXO?。
已发生投毒的处置
处置分三档。认知层:把可疑条目做标记并确认金额未构成余额误解——投毒本身不给你钱、也不直接转走钱,它污染的是记忆锚点。操作层:如果曾对着投毒条目复用过地址或向其“测试转账”,该联系人的地址需重新一手确认。账务层:若曾与投毒地址发生真实资金往来,按不可回收处置并保留证据链用于后续分析;投毒地址不应花用其资金——那既可能触发恶意脚本场景,也会向攻击者反馈你的活跃信号。长期自托管的账务卫生还包括保持余额视图整洁、减少碎片输出,见 UTXO 集合为什么越来越大:膨胀来源、粉尘与普通人的责任。
与相邻攻击的边界
投毒不同于钓鱼站点:不诱导你访问任何网站,纯链上投喂。不同于粉尘攻击:粉尘的历史形态是撒满全网的垃圾输出,目标多为费率成本或特定协议,投毒的目标锁定你的记账习惯。不同于剪贴板木马:后者在你机器里装东西,投毒在你视野里种东西——但组合使用极为常见,先马后毒让错误地址“既来自剪贴板也来自历史”,双线印证假象。分清这些,你才不会被“我链上没异常”的直觉误导:投毒的全部成本就是两笔合规的小额转账,链上永远“正常”。
小结与风险提示
投毒攻击的收益模型很薄:大量目标里,只要一个人一次视觉松懈。它提醒自托管用户一条底层纪律:链上历史是公告栏,地址是对方现场给的,长地址要全串核对、最好扫码。把这三句变成肌肉记忆,投毒对个体的期望收益归零。涉及异常资金处置存在误操作风险,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。