bitcoin-tx 命令行拼交易:不连钱包也能造交易,代价是什么 图 1
bitcoin-tx 命令行拼交易:不连钱包也能造交易,代价是什么 · 图 1

一个不联网也能跑的积木盒

在比特币核心的发布包里,除了守护进程和钱包界面,还躺着一个常被忽略的独立工具 bitcoin-tx。它既不连节点也不连钱包,工作方式是纯文本的:给一段十六进制交易,或者干脆从 -create 开始,然后用一条条形如命令的字符串往交易里装积木,最后输出新的十六进制串、-json 结构,或者只要 -txid 这一个编号。整个过程可以发生在一台从没联网的机器上。

bitcoin-tx 命令行拼交易:不连钱包也能造交易,代价是什么 图 2
bitcoin-tx 命令行拼交易:不连钱包也能造交易,代价是什么 · 图 2

积木清单逐项看

输入用 in=TXID:VOUT,需要覆盖序号时写成 in=TXID:VOUT:SEQUENCE;输出侧选择更多:outaddr=金额:地址 是普通转账输出,outscript=金额:脚本 直接写脚本,还能用 WS 后缀标志把输出包装成隔离见证脚本哈希或 P2SH 形态,outpubkey 生成直接付给公钥的输出,outmultisig 按 n 比 m 拼多签,outdata 则把一段数据附加为输出。删积木用 delindelout,全局字段有 locktime=Nnversion=N,以及 replaceable(=N)——不给序号就把所有输入的序列号设为替换信号。签名走 sign 加哈希类型标志,但要求先把前序交易放进 prevtxs 寄存器、私钥放进 privatekeys 寄存器,都是 JSON 格式。理解这份清单的最好方式,是把它当作交易结构的透视表:每个参数都对应交易格式的某个字段,拼一次就是一次格式课。

与钱包和 PSBT 的分工

bitcoin-tx 的定位不是替代钱包。它没有选币逻辑——输入必须自己查明、自己指定;它也不看内存池,不会替你估算费用,输入输出金额差多少,费就是多少,忘了留找零输出,差额就默默进了矿工口袋。与 PSBT 工作流相比,bitcoin-tx 是”一个人把交易拆到字段级”的底层工具,PSBT 则是”多个人把半成品交易传来传去、各签各的”的协作容器;研究交易结构、做教学演示、在气隙环境里手工核对某笔交易到底长什么样,bitcoin-tx 的透明性更高,而多签协作和离线签名流水线,PSBT 才是正路。

风险边界:所有字段都裸奔

把能力清单翻回来就是风险清单。私钥以 JSON 参数出现在命令行里,会进入 shell 历史和进程列表,这是最容易犯的错;脚本、序列号、锁定时间全部由你手填,填错没有确认弹窗;用 outdata 写数据要自行承担数据载体的中继政策;测试网与主网参数靠启动时的网络选项区分,用错网络拼出的地址会在校验环节报错,这反而是运气。稳妥姿势是把 bitcoin-tx 当作观察与验证工具:先在测试网拼、在测试网签、确认解码结果与预期一致,再考虑它在真实流程里的位置。

用解码器闭环自证

bitcoin-tx 拼完交易不等于看懂了交易,闭环靠解码:拼出来的十六进制串丢给钱包或节点的解码接口,逐字段读回脚本、序列号、锁定时间与输出结构,和预期对照。这一步尤其能暴露两类隐性错误:一是序列号默认值与替换信号的差别,忘用 replaceable 命令时输入用的是标准最终序列号,想 RBF 却忘了加,事后只能重新发起;二是版本与序列号字段在标准性规则里的组合约束,某些版本组合下序列号过低会让交易难以被中继。把”拼装—解码—对照”当成固定三步,比凭记忆相信参数效果可靠得多;这也是为什么教学场景偏爱这个工具——它逼你把每个字段的后果看一遍。

本文仅讲解工具机制,不构成任何投资建议;手工构造交易存在字段填错导致费用异常或资产损失的风险,先在测试网演练再做真实操作。