OP_RETURN 的 83 字节时代结束了吗:v30 载数据策略逐层拆解 图 1
OP_RETURN 的 83 字节时代结束了吗:v30 载数据策略逐层拆解 · 图 1

先分清两层规则

比特币对交易的约束分两层:共识规则决定区块是否有效,全网必须一致;标准性策略决定节点是否转发与挖不挖矿是否愿意收,是可协商的默认值。OP_RETURN 输出的大小限制从来不是前者——共识层只把它标成”可证明不可花费”的输出,并不数字节。八十余字节的说法属于后者:Bitcoin Core 内存池策略长期默认只转发脚本不超过 83 字节的载数据输出,绝大多数节点跟随默认,于是它成了事实上的行业门槛。

OP_RETURN 的 83 字节时代结束了吗:v30 载数据策略逐层拆解 图 2
OP_RETURN 的 83 字节时代结束了吗:v30 载数据策略逐层拆解 · 图 2

v30 改了默认值

Bitcoin Core 在 30.0 版本的发布说明里写明两件事:默认 -datacarriersize 提高到 100000,直到先撞上最大交易尺寸上限为止,显式设置回 83 可恢复旧限制;同一交易里的多个 OP_RETURN 输出也被允许中继,限制按全部此类输出的合计尺寸计算。这仍是策略变更而非共识变更——旧版本节点拒绝转发的大载数据交易,在新版本默认节点上会被传播,但最终进不进块仍取决于矿工打包。

为什么改

支持方给出的理由有三条。一是旧限制已被绕穿:愿意存大数据的用户早就不走 OP_RETURN,而是把数据藏进见证数据,还能吃折扣费率,公网中继网络里的 OP_RETURN 限制只剩误伤守规矩者。二是绕开公网中继的通道变多:直接提交给矿商的接口、策略更松的替代中继网络,都让”用默认策略设护栏”的效果打折。三是限制反而制造反向激励:想在非见证部分发数据又想吃中继网络传播保证的项目,会被逼着把数据伪装成可花费输出,污染更宝贵的 UTXO 集合。

争议并没有消失

反对方担心默认放行大载数据后带宽与存储负担上升,节点运营者还可能被迫同步含非法内容的块,以及”比特币不是网盘”的定位之争。历史数据也的确有分歧空间:见证数据的膨胀早在铭文热潮时就成了矿工收入与拥堵的主角。这些争论没有形成共识规则上的分野,分歧落在软件默认值与各自运营策略上,这也是为什么同一时期不同实现的节点转发行为可以明显不同而链不分叉。

普通用户该知道什么

三件事。第一,OP_RETURN 输出不会进入 UTXO 集合——它可证明不可花费,不占UTXO 集合的长期存储,但会占区块与历史索引的空间。第二,发数据交易照样要付矿工费,价格由块空间竞争决定,不存在”免费写链”。第三,任何声称”某版本之后链要分裂”的说法,对照本文的规则分层就能自查:改默认策略不改共识,节点校验同一套区块有效性,只会造成中继行为差异。本文只做机制科普,不构成任何投资建议。

把账算到节点运营者头上

策略变更对不同角色的成本完全不同。跑默认配置的家用全节点:带宽增量取决于链上实际出现多少大于八十字节的 OP_RETURN 交易,而这类数据的真实大头在见证区早已存在,边际变化有限。跑定制限制的节点:可以继续用 -datacarriersize=83 保持旧转发行为,代价是错过新策略中继的合规应用流量,且你的转发偏好与全网默认出现偏差时,个别交易的首跳传播路径会变长。矿池侧:打包与否从来由区块模板策略决定,发布说明里同时提供的区块模板费率参数说明矿工本就握有精细的控制旋钮。把这三层分开看,“某软件版本改了默认值”既不等于”链变了”,也不等于”所有人的节点都变了”——比特币的治理张力恰恰体现在默认值可以投票、运行参数可以本地否决,而共识规则必须协同。理解这一点,比记住某个版本号更重要。