一笔交易在 内存池里躺了三个小时没动,你的钱包显示“等待中”。此时决定命运的不再是节点广播规则,而是矿工(或矿池软件)大约每十分钟做一次的填空题:一个权重上限 400 万的格子(见区块权重一文的来龙去脉),塞哪些交易最能换回真金白银?这道题有标准解法,也有灰色地带。
装箱问题与祖先费率
比特币核心的组块器大致这样工作:把内存池里所有可挖交易按费率从高到低过一遍,贪心地往块里装,装到权重或数量上限为止。听起来公平——价高者先走。真正的细节在“费率”的定义:对有多层父子关系的交易链(比如 CoinJoin、批量找零、交易包场景),组块器看的是整条祖先链的总费用除以总虚拟字节,即祖先费率。一笔自己费率很高但挂在低费率父交易后面的“子”,整体性价比立刻被拖累,往往排在后面。这套口径同时解释了 CPFP 加速的原理:往子交易加钱,抬的是整包的祖先费率,组块器就把它请进前排(选择思路与RBF 与 CPFP 怎么选一致)。
阈值、定制与矿池现实
组块器有一道下限:费率低于某个阈值的交易直接不看。比特币核心历史上默认这道线是 1 聪每虚拟字节,近年的版本大幅调低了默认值,可用 -blockmintxfee 配置自行调整——想写“矿工一定会打包某费率以上的交易”,得先问对方软件用的哪条线。更要紧的是,Core 只是默认实现:矿池通过 getblocktemplate 拿模板,完全可以定制筛选逻辑——过滤某类数据输出、塞入自家聚合交易、执行合规名单。也就是说“内存池全序按费率排队”只是理想态,现实中不同矿池的块内容可能有系统性差异,观察这类差异可参考矿工手续费占比那类指标的分母口径。
用户该怎么用这套知识
三件事值得记住。第一,孤零零的低费交易不怕贵不怕贱,怕的是父交易拖后腿——查祖先链比查费率更符合直觉的做法是看“包费率”。第二,拥堵时段钱包推荐的费率是估算器按历史块统计给的近似值,估算器看到的组块策略和你实际遇到的矿池策略之间永远有噪声。第三,交易被“跳单”不一定是被审查:大多数情况只是祖先费率排不进当下的装箱窗口,下一轮高费交易少时往往自然上链,把它先定性成“针对性拒包”容易误判。
快速问答
问:费率一样时怎么排序?实现上按依赖关系与遍历顺序等细节决定,不是稳定公平的先到先得。问:0 费交易永远上不了链?不是——包中继改进允许它在父交易已在池内时随子交易一起进块,个别好心块也可能收留。问:矿工会故意空着格子吗?可以,装箱不满是其主权,通常源于定制策略或快速出块策略。问:CoinJoin 会被系统性歧视吗?取决于具体矿池政策,历史上确有矿池公开排除某类交易,这属于可观测的策略差异而非协议规则。
常见误区
一是把组块当成拍卖场的全价拍卖,它是贪心装箱,插队靠祖先费率而非出价时刻。二是把 Core 默认参数当网络规则,矿工侧一切阈值都可配置。三是忽视“权重与字节双重上限”(含隔离见证时代留下的 sigops 约束)造成的早停——块没装满格子就被提前收工,也是你的交易没进块的常见原因。
小结
矿工组块是一场每十分钟重启一次的贪心装箱:祖先费率是通货,阈值与定制是主权。理解这一点,你会把“加钱加速”从玄学变回算术:抬包费率、避开定制黑名单、容忍装箱噪声——剩下的交给下一班车。
风险提示:本文只解释协议与挖矿机制,不构成投资或收益建议;费率参数与矿池政策随版本与运营策略变化,以当期文档为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。