零转账攻击原理与防御
概念
零转账(Zero Transfer):在以太坊上向某地址发起金额为 0 的转账/事件记录。
原生 ETH:
value = 0
的交易可执行,但不产生余额变化。ERC-20:
transfer(to, 0)
或transferFrom(from, to, 0)
通常被允许,并会触发Transfer(..., 0)
事件。ERC-1155:可出现数量为 0 的
TransferSingle/Batch
事件(依实现)。
骗术本质:利用“0 金额但真实上链”的事件在钱包/区块浏览器里制造“来自权威地址”的错觉,继而通过钓鱼链接与授权引导完成真实盗取。
常见攻击手法
刷记录制造信任
向你地址发 0 代币转账,事件里显示“来自某知名项目/地址”,骗取信任。
使用与官方地址极度相似的地址前后缀、头像、名称,干扰你在历史记录中复制地址。
诱导授权/签名
假冒空投/白名单/补贴页面,引导你“Claim/领取”,实为让你签
approve
/increaseAllowance
/permit
或 NFT 的setApprovalForAll
。诱导“无 gas/离线签名”,实为授权搬走你的代币/NFT。
伪造或混淆事件元数据
非标准合约在
Transfer
事件里写入混淆性名称/符号/Logo,放大“官方感”。
防御总体原则
最小惊扰:不屏蔽真实链上数据,但对“0 金额/可疑事件”进行降噪与明确风险提示。
可解释:任何拦截、标注或降权都有“为什么”的解释与可撤销开关。
最小授权:产品与 SDK 默认鼓励/强制用户和 DApp 采用最小授权。
一、数据与事件层
1) 事件标准化与增强解码
严格区分资产类型与来源:
ETH 转账 vs ERC-20
Transfer
vs ERC-1155TransferSingle/Batch
。明确标注事件“数量为 0”与“余额未改变”。
异常事件检测:
标记非标准/可疑合约事件,如伪造
Transfer
事件、非标准symbol()/name()
、decimals
异常。针对 ERC-1155 数量为 0 的事件打风险标签:
zero-amount
、spam-likely
。
2) 可信元数据源
多源校验:
代币元数据(Logo、Name、Symbol、Decimals)优先采用官方清单(Tokenlists)、链上验证合约、社区审计数据,避免单点。
合约信誉评分:
聚合黑名单/钓鱼情报(ScamSniffer、Chainabuse、Etherscan labels)。
引入启发式评分特征:短生命合约、批量向大量地址发送 0 事件、与已知钓鱼域名同现等。
3) 反“刷记录”策略
低权重索引:
日志索引中将
value=0
的代币转账事件单独分区或打低权重,不影响查询性能但便于 UI 层筛选。
聚合去重:
对同一合约多次 0 事件进行合并显示(如“近 24 小时 12 条 0 金额事件”)。
二、可视化
1) 明确的 0 金额标识与降噪
显著的“0 金额/未变更余额”徽标:如灰色、斜体、信息淡化。
垃圾/可疑视图开关:默认“折叠显示零金额事件”,用户可展开;支持设置白名单/黑名单。
不合并到“收到资产”通知:避免和真实入账混淆;单独的“系统消息/活动”流。
2) 名称与 Logo 防伪
强制展示地址缩写与链 ID:任何带 Logo/名称的展示旁都显示
0xAbc...1234 @ chainId
。相似度提醒:
当历史中出现多个前后缀近似地址(如 Levenshtein 距离很小)时,加“相似地址提醒”。
禁止从“零金额事件”直接复制收款地址:
从 0 事件条目复制地址时弹出确认或改为复制合约地址而非“发送者地址”。
3) 通知与引导
风险提示模板:
在 0 金额事件旁展示提示:”该记录不代表你获得可用资产,谨防钓鱼与授权陷阱“。
一键屏蔽:
支持对某合约/地址/代币“隐藏所有 0 金额事件”。
官方来源校验徽章:
若地址在官方清单/ENS 反向解析且通过验证,显示“已验证”徽章;否则保持中性或显示“未验证”。
三、授权与签名层的强防护
1) 高风险方法拦截与细粒度展示
对以下方法弹出红色风险窗,并用通俗语言解释结果和影响:
ERC20.approve
,increaseAllowance
Permit
/Permit2
签名(EIP-2612、Permit2)setApprovalForAll
(ERC-721/1155)transferFrom
由第三方发起的大额/全部转移
强制最小授权:
将“无限额授权”按钮放在二级操作;默认建议“仅本次/精确额度/短时授权”。
对超阈值授权需再次交互确认(双击确认或硬件签名)。
四、风控与策略引擎
1) 规则与启发式
零金额行为关联:
若某地址先向用户发起 0 金额事件,随后在外部页面请求用户进行高风险授权,触发“联动风险提示”。
节流与冷却:
对短时间内来自同合约的多次 0 事件,自动折叠与静默化。
地址画像:
记录“可疑联系度”:是否与已知恶意地址交互、是否频繁批量 0 事件、是否使用混淆 ENS。