小额UTXO:分开转发尘埃门槛与经济可花费性
一个比特币未花费输出可以有效、已成熟,却在扣除花费成本后只贡献很少数量。一个小输出也可能低于某节点尘埃转发门槛,但这不会让它在链上不存在,更不能直接称为共识禁止花费。研究表应分开经济贡献、转发政策和共识资格。
这里计算假设边际输入成本,用来解释资产数量的可用性口径,不建议何时交易、整理输出或选择费率。重点是:名义库存是否隐藏了会显著改变解读的交易体积假设。
引用阈值前固定政策版本
本题查阅固定版本Bitcoin Core v30.0的policy.cpp中GetDustThreshold与IsDust。这是历史实现,不代表全部节点现在使用该版本或同一配置。
文件明确涉及本地节点政策。尘埃计算使用输出体积、估计未来输入体积与dust-relay费率参数。注释在每千字节三千聪参数下给出传统非见证例的五百四十六聪,以及规定见证例的二百九十四聪。不能把这些估计误当某钱包今天实际花费的报价。
阈值旁记录脚本类别、版本和配置参数。单写“尘埃”可能混淆三种意思:节点转发政策、很小的名义数值,或分析者自己规定的经济成本。先命名所指对象,再比较金额。
写清边际成本模型
设输出价值V以聪计,花费该输出额外增加的体积假设为s虚拟字节,费率假设f以聪每虚拟字节计。边际输入费用后的贡献定义为:C等于V减s乘f。
此式不包含整笔交易共用开销、新输出或其他输入,因此不是保证交付接收者的净金额。若要分配其他成本,应单列并解释分配规则,不能悄悄把边际贡献改叫最终到账。
下例六十八虚拟字节只是用于复算的假设,不是所有见证输入、签名长度、脚本路径或钱包的固定常数。已知花费模板可以支持更具体估计;条件未知时应展示范围,而非强填同一个体积。
假设的三个输出
设三个普通未花费输出分别为二百五十、一千、一万聪。仅在本例中,均假设额外增加六十八虚拟字节,比较每虚拟字节五聪与二十聪两种场景。
| 输出价值 | 五聪场景输入费 | 五聪场景贡献 | 二十聪场景输入费 | 二十聪场景贡献 |
|---|---|---|---|---|
| 二百五十聪 | 三百四十 | 负九十 | 一千三百六十 | 负一千一百一十 |
| 一千聪 | 三百四十 | 六百六十 | 一千三百六十 | 负三百六十 |
| 一万聪 | 三百四十 | 九千六百六十 | 一千三百六十 | 八千六百四十 |
费用由六十八乘五等于三百四十、六十八乘二十等于一千三百六十得到。负贡献意味着按该边际模型加入输入的成本高于其面值,并不表示链上记录负输出,也不是持有者仅因保管它就欠网络差额。
一千聪输出的模型盈亏平衡费率为一千除六十八,约每虚拟字节十四点七零六聪。这是条件算术,不是未来网络费用预测、建议交易时间,也不是节点尘埃参数。
另算政策门槛
使用所读源码的见证政策示例:三十一字节输出加六十七字节估计花费,共九十八字节。九十八乘三千再除一千,得到二百九十四聪。
它特意不同于上表假设的六十八额外虚拟字节。政策考虑标准化输出加花费体积模型,经济列考虑某次假设交易的边际输入。两者互换会抹去本题要核验的区别。
按这一政策示例,一千聪新输出高于二百九十四,却在二十聪费率场景下贡献为负。因此,通过尘埃检查不证明低成本可用。反过来,已确认小输出也不会因节点可能限制转发创建类似新输出的交易而消失。
如果实际脚本类别不明,就不能把二百九十四直接套上去。应先保留“政策分类未核实”,而不是把模型结果看起来接近当成类型证据。参数名称中的千字节单位也须保留,不能误写成每字节三千聪。
边界例:整笔贡献仍为正
假设一笔交易使用一千与一万聪两个输出,面值合计一万一千聪。在二十聪场景下,两输入边际费用为二乘一千三百六十,等于二千七百二十聪;扣除后尚有八千二百八十聪,其他开销仍未计。
整笔贡献为正,并不改变小输入负三百六十的边际贡献。仅用一万聪输入时,同口径贡献八千六百四十;两者相差三百六十。比较用于解释数量归因,不用于建议应选择哪笔交易。
若交易目的必须使用小输出,或另一可用脚本路径改变体积,研究条件就变了。不能从分析表中的负贡献推断持有者不理性,也不能推断其整理资产的目标。
处理体积不确定与显示舍入
盈亏平衡费率十四点七零六只是显示舍入,不是精确政策界值。若真实输入体积尚不确定,设合理假设区间六十六至七十虚拟字节;对一千聪输出,平衡费率分别为约十五点一五二和十四点二八六聪。应保留这个条件范围,而不是在六十八字节单点上增加小数位。
同样,表中金额与费率单位须在运算中保持一致,不能将聪每千虚拟字节误用为聪每虚拟字节。对小输出,一字节差异和单位错误可能比看似精密的报价更影响解释。这类修正属于测量假设核验,不是交易时机判断。
收集证据与复核触发
| 项目 | 检查内容 | 缺失的影响 |
|---|---|---|
| 名义库存 | 不同outpoint、数值和截止点 | 起始数量不可靠 |
| 共识条件 | 成熟与已知脚本限制 | 花费资格未解决 |
| 输入体积 | 模板或明确假设范围 | 应报敏感性而非精确净值 |
| 经济费率 | 单位、观察或场景标签 | 不能把场景当实时报价 |
| 转发政策 | 版本、脚本、配置 | 不能声称全网统一门槛 |
| 其他成本 | 共用开销和新输出分配 | 不能把边际贡献叫到账 |
脚本路径确认、成本假设改变或输出清单更正后,应重算。名义库存始终与条件经济视图并列,不能静默冲掉小输出。这样既解释不同余额口径,也不会把所有已成熟聪都描写成成本相同的可取用资产。
常见问题
模型贡献为负是否说明输出无效?
不是。它只是价值减假设边际费用,共识有效性另需核对真实花费条件。
三十版尘埃阈值是否就是当前花费费用?
不是。它是规定参数下的历史政策计算,实际交易成本取决于结构和费用条件。