作者:Aaron van Wirdum

来源:https://bitcoinmagazine.com/technical/bitcoin-core-or-bitcoin-knots-what-the-op_return-debate-is-actually-about

原文出版于 2025 年 10 月 6 日。在 10 月 10 日,Bitcoin Core 30.0 版本已经发布。

即将发布的 Bitcoin Core 软件发行版本 “Bitcoin Core 30.0” 中的一个默认设定,在比特币社区中引发了分歧。一些用户宣称他们不会升级到这个新版本(哪怕 Bitcoin Core 是最多人使用的比特币客户端软件),而会转而使用 Bitcoin Knots 软件:由 OCEAN 矿池的首席技术官 Luke Dashjr 维护的 Bitcoin Core 软件复刻。Luke 是 Bitcoin Core 上正在发生的变化的激烈批评者。

这场辩论充斥着技术讨论,围绕着一个看起来微不足道的问题。带有 OP_RETURN 输出的交易是以特殊的方式嵌入非限定数据(比如文本或图像)的交易;而相比于以往的版本,Bitcoin Core 30.0 将默认允许带有更大体积 OP_RETURN 输出的交易进入本地的交易池并(在点对点网络中)转发它们。这似乎只是个微小的变更,因为 Bitcoin Core(以及 Bitcoin Knots)节点都已经接受了这样的交易(只要它们进入了区块);同时,它们也都会转发使用别的方式嵌入非限定数据的交易。

但是,这个更新还是引发了分裂,因为它反映出了更深层次的顾虑。

“Bitcoin Knots 观点”

Bitcoin Knots 的支持者普遍不喜欢携带了非限定数据的交易,他们常常将这些交易称为 “垃圾(spam)”。但到目前,绝大多数人都已经不情愿地接受了,这是比特币协议的一个不幸的副作用。但是,他们依然认为,这种类型的用法应该被抑制。

当 Bitcoin Core 开发者们在软件默认转发的交易的 OP_RETURN 输出的体积上作出限制时,似乎确实让不少人转而在比特币以外的密码货币上使用这种用法。(最著名的是,这种做法常常被用来解释 “以太坊” 这种密码货币的 “初衷”。)

在 Bitcoin Knots 的支持者看来,Bitcoin Core 30.0 的新的转发策略,象征着投降 —— 它是欢迎 “垃圾交易人” 回到比特币的信号。

顾虑之一是,这种新转发策略会更加吸引这类使用非限定数据的用户和项目。而因为比特币的区块空间是有限的,用它来存储非限定数据会很快填满区块,反过来推高交易手续费,甚至会高到让许多常规交易(“货币交易”)被挤出去的地步。

另一个顾虑是,虽然可以用别的方法来嵌入非限定数据,相比于其它方法,OP_RUTURN 还是让这些数据更容易解析;只需更少功夫,就可以将它们还原为(比如说)图片。Bitcoin Knots 支持者们担心,这也会增加在区块中包含非法影音材料(比如儿童性虐影片)的风险,可能导致节点运营者面临监管压力。

如果问题在于 Bitcoin Core 开发者们不抵抗,那么 Bitcoin Knots 就代表着抵抗。即使他们无法阻止非限定数据被包含在比特币区块链上,也即无法完全防止它们,至少也不要为它们打开一个额外的方便之门。实质上,他们是在发出不欢迎这些垃圾的信号 —— 他们希望这些信号会有一个抑制效果。

Bitcoin Knots 支持者们说,假设抑制效果能成功把这些垃圾交易人挡在门外,那比特币就能继续用于它最初的设想用途:货币交易。

“Bitcoin Core 观点”

人们用各种各样的方法在比特币区块链上存储非限定数据。实际上,近些年,许多人用“ Inscriptions”来存储图片,甚至,还能用公钥或者私钥来嵌入非限定数据。

绝大部分 Bitcoin Core 开发者都同意 Bitcoin Knots 支持者在这件事上的观点:这些用法没有一个是好事,而且也不是比特币的设计用途。但在所有这些选项中,使用 OP_RETURN 是危害最小的版本,因为它尽可能降低了节点的计算机资源消耗量,从而让节点依然是尽可能便宜、可负担的。

因此,Bitcoin Core 开发者们得出结论:与其尝试抵制 OP_RETURN 的使用,不如放宽对它的限制;维持限制可能只会让事情变得更糟,甚至糟糕得多。

原因之一在于,仅仅拒绝转发这些携带大体积 OP_RETURN 输出的交易,从技术角度看,并没有很大的效果。这些交易依然可以被一些其它节点(比如 Libre Relay 节点)转发给矿工,或者被直接发送给矿工,然后进入比特币区块。如果人们这样做,反过来会有一种中心化效果,因为可以假设,在直接提交数据时,人们更有可能会直接提交给规模更大的矿工,从而他们能够获得额外的手续费收入,而更小的矿工则不能。(如果这样的交易无论如何都会进入区块,那么这种直接提交的方法也会对节点自身造成一些微妙的损害。)

更加可靠的解决方案 —— 可以说也是符合逻辑的下一步 —— 是通过一次共识协议升级(软分叉)将(大体积的)OP_RETURN 交易变成无效交易,这样它们就完全不能进入区块了。但问题在于,前面已经提到了,人们可能会使用别的、危害更大的方法,在区块链上存储数据。(事实上,许多人已经偏好使用 Inscripton,因为对于更大体积的数据对象(比如图片)来说,它比 OP_RETURN 方法便宜得多。)

理论上,这些方法中的一部分也能被遏制。但绝大部分 Bitcoin Core 开发者都预见了,这只会导致一种打地鼠游戏,“垃圾交易人” 每次都会换用不同的方法。这会激励他们将自己的非限定数据 “伪装” 成常规交易,可能导致货币交易与非限定数据日益无法相互区分。

因此,剩下唯一的解决方案可能就是,指定一些人或者团体来裁定哪些交易是可以接受的、哪些交易不能,实际上也就是引入一些有权实施交易审查的实体。Bitcoin Core 开发者们(本身就是一群无组织的贡献者)没有兴趣扮演这样的角色 —— 不仅是因为他们不希望成为监管机构的目标(从而可能被迫滥用权力 —— 也是希望比特币不要走上这条道路。

相反,他们总的来说期待这个问题会自我消解,不需要他们的介入。

这是因为,货币交易(相对来说)的体积非常小。一个比特币区块可以放入几千笔这样的交易。而其它类型的数据通常来说会大得多:一张图片就可以填满整个区块。这意味着,一笔 “垃圾交易” 必须打败许多常规交易(给矿工提供更多交易费收入)。给定对货币交易的需求足够打,使用比特币区块链来存储数据很快就会变得过于昂贵。在这种情况下,非限定数据就会被挤走,然后自然消失。

绝大部分 Bitcoin Core 开发者都同意,比特币应该是一个主要用于货币交易的网络 —— 但不能因为他们会主动抵抗其它用法,而只能因为这是这个系统的激励机制塑造的结果。

那到底怎么说?

每个人都可以自由使用自己想要使用的软件,不管是 Bitcoin Core 30.0(使用这个默认设定,还是关闭它)、旧版本的 Bitcoin Core、Bitcoin Knots、Libre Relay,还是别的软件。在这个意义上,比特币用户确确实实是完全自治的。

从 X 等社交媒体平台上的情绪来看,似乎有不小比例的用户不会升级的 Bitcoin Core 30.0,或者会切换到 Bitcoin Knots 。但无法断定他们到底代表了多大比例的比特币用户。可能是很大的一部分 …… 也可能只是很小的一部分(只是声音很大)。

不管怎么说,比特币并不像民主制那样运作。因为每个节点一般都会转发交易给许多节点,甚至只要一小部分用户选择运行 Bitcoin Core 30.0(或者 Libre Relay 或类似的客户端),大体积的 OP_RETURN 交易在事实上就是自由传播的。这可能无法完全阻止,但假设 Bitcoin Knots 支持者希望至少有一些抑制效果,那么他们就需要说服占绝对多数的节点运营者(可能需要 95% 甚至更多)加入他们的过滤方案。

如果他们没能做到,那么运行 Bitcoin Knots 也可以视为一种不同意见的表达 —— 只是没有实际效果。

(完)