比特币粉尘没有一个固定的金额,因为"粉尘"从来不是一个由协议写死的数字,而是一条经济判断:如果一个交易输出(output)将来花掉它所需的手续费,比它本身的价值还高,那它就是不经济的,节点会倾向于拒绝转发或打包它。手续费会变,输出类型会变,所以门槛也跟着变。
判断标准是"花费成本 vs 输出价值"
Bitcoin Core 对粉尘的定义很直接:如果你花掉某个输出要付的手续费,超过了这个输出本身的价值,它就是粉尘。这里的关键变量是"花费这个输出需要多少字节",而不是一个拍脑袋的聪数。
一笔比特币交易的花费成本,取决于这个输出是什么类型。同样价值的一个输出,如果是老式的 P2PKH(以 1 开头的地址),花掉它需要占用更多区块空间,手续费就更高;如果是原生隔离见证的 P2WPKH(以 bc1q 开头),花费所需字节更少,成本就更低。所以同一个金额,在一种地址类型下可能已经"不经济",在另一种下却还值得花。
不同输出类型,门槛不同
按 Bitcoin Core 默认的 dustRelayFee(3000 聪/kvB)计算,常见输出类型的粉尘门槛大致如下:
| 输出类型 | 花费所需大致字节 | 默认门槛(约) |
|---|---|---|
| P2PKH(传统地址) | 182 字节 | 546 聪 |
| P2WPKH(原生 SegWit) | 98 字节 | 294 聪 |
| P2TR(Taproot) | 110 字节 | 330 聪 |
你经常看到的"546 聪"只是 P2PKH 这一类输出在默认费率下的结果,不是比特币网络统一的粉尘线。换成隔离见证地址,门槛就降到 294 聪左右;换成 Taproot,又是另一个数。这本身就说明"粉尘金额"不是固定的。
费率一变,门槛也跟着变
dustRelayFee 是节点的一个转发策略参数,不是共识规则。它默认设为 3000 聪/kvB,但节点运营者可以调整。更重要的是,这个参数只是一个"参考费率"——粉尘判断的核心逻辑是"花费成本是否超过价值",而花费成本最终取决于你实际支付的手续费率。
当链上拥堵、手续费率上升时,一个原本"值得花"的输出可能变得不经济;当费率回落时,同样的输出又可能重新变得划算。所以即便输出类型相同,在不同市场条件下,边界也会浮动。
一个容易混淆的地方:粉尘攻击里的"粉尘"不是同一个概念
你可能看到过"粉尘攻击"的报道,攻击者向大量地址发送几百到几千聪的 BTC,试图通过后续花费行为把地址关联起来。这里的"粉尘"描述的是金额很小、容易被忽略的特征,但它和节点判断"是否转发/打包"的粉尘限额不是同一回事。许多粉尘攻击使用的金额其实高于粉尘限额,目的就是确保交易能被网络处理,而不是被节点过滤掉。理解粉尘限额时,不要把安全话题里的"粉尘"和协议策略里的门槛混为一谈。
常见问题
那 546 聪到底是不是粉尘?
在默认费率下,一个 P2PKH 输出如果金额低于约 546 聪,通常会被 Bitcoin Core 默认策略视为粉尘而不转发。但如果你用的是原生 SegWit 地址,294 聪左右才是那条线;如果是 Taproot,大约是 330 聪。所以"546 聪"只在特定输出类型和默认参数下成立。
交易所提币时提示"金额太小",是按哪个标准判断的?
交易所通常会参考 Bitcoin Core 的默认粉尘策略来设置自己的最小提币金额,以避免发出的交易被节点拒绝。但不同交易所的具体阈值可能不同,也可能随费率环境调整。遇到提示时,以该交易所页面显示的最低金额为准,不要拿一个固定的聪数去套所有平台。
粉尘限额未来会变吗?
会。它本质上是节点策略,不是共识。Bitcoin Core 的代码注释、默认参数或社区讨论都可能影响这个门槛。更根本的是,只要手续费市场在波动,"花费成本超过价值"这个判断本身就会浮动。所以没有一个可以永久引用的固定数字。
参考资料
- Bitcoin Optech·Uneconomical outputs,日期:2026-11-09
- Bitcoin Core PR #30023·doc: add dustThreshold explain of P2SH & P2TR,日期:2026-11-09
- Binance Academy·什么是粉尘攻击?,日期:2026-11-09
- CoinMarketCap·What is Dusting Attack in Crypto?,日期:2026-11-09



