BIP draft: Reduced Data Temporary Softfork #2017

pull dathonohm wants to merge 1 commits into bitcoin:master from dathonohm:reduced-data changing 1 files +248 −0
  1. dathonohm commented at 9:28 pm on October 24, 2025: none

    Mailing list thread at https://groups.google.com/g/bitcoindev/c/nOZim6FbuF8


    Editor note: please post conceptual feedback and meta-commentary on the mailing list thread, and focus here on:

    • expert technical review of the specification
    • specific, concrete, helpful proposals for the other sections

    Please refrain from personal or heated commentary, trolling, pedantry, and repeating yourself. As this PR now has many comments, please only comment if you are adding new valuable information to the discussion.

  2. jonatack added the label New BIP on Oct 24, 2025
  3. in bip-????.mediawiki:187 in 53146356ea outdated
    182+
    183+===Proactive Deployment===
    184+
    185+TODO
    186+
    187+===Reactive Deployment===
    


    jonatack commented at 1:28 am on October 25, 2025:
    It’s not clear to me why have these two headers, Proactive Deployment and Reactive Deployment, both here under Activation and below under Deployment.

    dathonohm commented at 1:44 am on October 25, 2025:
    There is a “rationale” section here, which is more of an FAQ, and a “deployment” section below, which seems customary on softfork bips. I could consolidate these if you like.
  4. in bip-????.mediawiki:219 in 53146356ea
    214+'''What is the expected impact on exchanges and other businesses, and how can they prepare?'''
    215+
    216+Depending on how quickly miners adopt this softfork, there is potential for significant disruption in the short-term.
    217+Any econonomic node that continues to process deposits or payments should consider the risk of reversals or double-spending until the situation has fully resolved.
    218+
    219+The standard, industry-wide security procedure for any chain split event is to temporarily disable deposits and withdrawls until a single, stable chain has been decisively established with significant proof-of-work.
    


    jonatack commented at 1:29 am on October 25, 2025:
    0The standard, industry-wide security procedure for any chain split event is to temporarily disable deposits and withdrawals until a single, stable chain has been decisively established with significant proof-of-work.
    

    Edit: will update the spelling linter for the other two false negatives.


    dathonohm commented at 2:59 am on October 25, 2025:
    Done
  5. in bip-????.mediawiki:17 in 53146356ea
    12+  Post-History: https://gnusha.org/pi/bitcoindev/aN_u-xB2ogn2D834@erisian.com.au/T/#mb71350c5dfb119efeb92c5ee738b6c8225bf15b6
    13+</pre>
    14+
    15+==Abstract==
    16+
    17+Data fields are size-limited at the consensus level temporarily.
    


    jonatack commented at 1:30 am on October 25, 2025:
    0Temporarily limit the size of data fields at the consensus level.
    

    dathonohm commented at 2:59 am on October 25, 2025:
    Done
  6. dathonohm force-pushed on Oct 25, 2025
  7. rot13maxi commented at 1:08 pm on October 25, 2025: none
    I suggest you add an FAQ item for “why block 987424“. If the intent is to have it be a year out, the height might actually move during discussion, and right now its just a magic number in the document.
  8. dathonohm commented at 3:16 pm on October 25, 2025: none

    @rot13maxi see the deployment section

  9. portlandhodl commented at 6:29 pm on October 25, 2025: contributor
    There is opportunity to also discuss the effect on DoS blocks and the scope of legacy script as a DoS vector.
  10. danielsam commented at 1:28 am on October 26, 2025: none
    .
  11. in bip-????.mediawiki:42 in 3c71823707
    37+The recent release of Bitcoin Core 30 presents a severe threat to Bitcoin's viability.
    38+By formally standardizing rules for large-scale data storage (ie, 100kB OP_RETURNs), it proposes to redefine this behavior from an abuse of the system into a supported use case.
    39+The true danger lies not merely in the release existing, but in its adoption.
    40+The adoption of this release, even if by a minority of users, risks establishing this harmful redefinition as a new de facto standard for the entire network.
    41+
    42+This official sanction creates an immediate and severe threat.
    


    jlopp commented at 3:33 am on October 26, 2025:
    I suspect many would disagree that there is any such thing as an “official sanction” given that there are no authorities on the Bitcoin network.

    BlakeJones9449 commented at 4:23 am on October 26, 2025:
    Change of default relay policy settings in the super-majority node client as sanctioned by the official policy maintainer can easily be seen as an official sanction.

    jlopp commented at 4:40 am on October 26, 2025:

    What makes it “official” - some node clients like libbitcoin don’t even have such policies. Is is not official from them because they have little adoption?

    If it’s the level of adoption that makes something official, consider that adoption is voluntary and opt-in, thus the “sanctioning” comes from many independent actors deciding to run the code that enforces said policies.


    BlakeJones9449 commented at 5:35 am on October 26, 2025:
    100kb OP_RETURN is officially sanctioned by Bitcoin Core with the release of v30 as evidenced by their changing of default settings and accompanying release notes.

    BitcoinMechanic commented at 7:36 am on October 26, 2025:

    Yes, an “official sanction” is thus (fairly awkwardly) defined as “The default standardness policies of the node software run by the vast majority of the network.”

    Simply, if there is relatively little adoption of Core 30 then what it has attempted to invite into mempools/the blockchain are not representative of Bitcoin.


    arejula27 commented at 2:02 pm on October 26, 2025:

    Yes, an “official sanction” is thus (fairly awkwardly) defined as “The default standardness policies of the node software run by the vast majority of the network.”

    At what moment? If the policies of the core 30 are the standard in 6 months, then this proposal would be outdated. Should we modify the consensus again, cuz the policies have changed?


    ModusB commented at 4:23 pm on October 26, 2025:

    “The default standardness policies of the node software run by the vast majority of the network.”

    Should this verbiage be added into the BIP, for clarity?


    BitcoinMechanic commented at 5:54 pm on October 26, 2025:

    Yes, an “official sanction” is thus (fairly awkwardly) defined as “The default standardness policies of the node software run by the vast majority of the network.”

    At what moment? If the policies of the core 30 are the standard in 6 months, then this proposal would be outdated. Should we modify the consensus again, cuz the policies have changed?

    No? This proposal is basically working with the assumption that that is what will happen.


    arejula27 commented at 6:02 pm on October 26, 2025:
    You define standardness based on the current policy and propose a consensus change to match it. But if the definition of standardness changes later, why shouldn’t the consensus rules be changed again?

    dathonohm commented at 8:02 pm on October 26, 2025:

    Within the consensus rules, it is true that there are no authorities.

    However, Bitcoin Core has been seen as an authority since the very beginning, and if it officially sanctions data storage as a supported function of the blockchain, and if such data storage is allowed at the consensus level, then it’s difficult to make the case that it’s not a supported use case, and this massively increases liability for those running Bitcoin nodes, for absolutely no benefit.

    The best way to call the authority of Bitcoin Core 30 into question is to move quickly to explicitly softfork in order to distance ourselves as much as possible from the data storage use case. This BIP, just by its very existence, accomplishes this. But we must follow through with activation if we want the world to take us seriously when we say Bitcoin is not for data storage.

    I doubt a court of law would accept the argument that a node runner storing and distributing abhorrent content is somehow not liable because “there are no authorities on the Bitcoin network”. The node runner him- or herself needs to have a credible claim to not intending to perform such activity.

    Fully supporting this BIP, publicly, could even make a difference.


    arejula27 commented at 8:20 pm on October 26, 2025:
    Knots has spent the past year defending policy-level filters, which makes it seem contradictory that they’re now proposing to alter the consensus rules. If policy is what truly matters and not enough people choose to run their policy, that suggests they don’t have sufficient pleb support. Trying to force a soft fork by convincing miners instead of users doesn’t seem consistent with following pleb community feeling

    BitcoinErrorLog commented at 3:05 pm on October 27, 2025:
    This reads as unsubstantiated FUD, which can’t be useful to a BIP implementer. Off-topic. There are no sanctions, particularly in policy matters, which are local! It is true that defaults are sticky, but I think we all agree that this protocol is designed to be incentive-driven, not driven by paranoid fantasies.
  12. in bip-????.mediawiki:44 in 3c71823707
    39+The true danger lies not merely in the release existing, but in its adoption.
    40+The adoption of this release, even if by a minority of users, risks establishing this harmful redefinition as a new de facto standard for the entire network.
    41+
    42+This official sanction creates an immediate and severe threat.
    43+The threat here is distinct from general spam or economic costs, which are typically handled with policy and the fee market.
    44+It allows a malicious actor to mine a single transaction with illegal or universally abhorrent content and credibly claim that Bitcoin itself is a system for distributing it, rather than a system that was merely abused.
    


    jlopp commented at 3:35 am on October 26, 2025:
    “illegal or universally abhorrent content” is poorly defined; there are a multitude of legal jurisdictions and a multitude of subjective views on content; Bitcoin as a system does not recognize any of them.

    BlakeJones9449 commented at 4:37 am on October 26, 2025:
    The motivation section only seeks to outline potential avenues for new risks allowed by Bitcoin Core 30. It is enough to recognize that there is an overlap of illegal data and universally abhorrent data which will put average node operators at unneeded risk. A specific outlining of the content in question is not needed, only a recognition that the risks are there.

    Bitcoinfinity commented at 5:23 am on October 26, 2025:
    Agree with Blake. Precise definitions were never proposed nor required.

    BitcoinMechanic commented at 7:44 am on October 26, 2025:

    Without wanting to be crass or sicken anyone with specifics, of course there are files that all decent people would make an effort to not download/store on their devices regardless of their legal status.

    The general attempt to widen the scope of Bitcoin from “All financial activity must be treated as equal” to “Thus we must treat all files as just ones and zeroes” has been perplexing to watch as not only is it indefensible, it’s completely unnecessary. Bitcoin can continue to eschew non-financial activity in general and thus not encumber its users with the problems that begin with soliciting it and then either having to attempt to moderate based on file contents or failing to do so and then ultimately getting used as a garbage dump for the world’s most shunned files.


    zndtoshi commented at 9:28 am on October 26, 2025:
    Nack This change is motivated on outside factors and interpretation of the data (legal and political) and not on how the software functions.

    ArmanTheParman commented at 10:38 am on October 26, 2025:

    How about… There should be no subjective assessment of arbitrary data’s content/meaning, all arbitrary data (extra data not contributing to the movement of sats on layer 1) can just be rejected indiscriminately based on some limit, eg zero.

    I acknowledge not all arbitrary data can be, or needs to be, eliminated, but the principle is objective, and rules based off that can be made. If some arbitrary data cannot be interpreted as being arbitrary, then so be it, it gets on chain.

    But having a FIELD dedicated to arbitrary data can easily be objectively blocked.


    BitcoinMechanic commented at 11:25 am on October 26, 2025:

    Nack This change is motivated on outside factors and interpretation of the data (legal and political) and not on how the software functions.

    No it is not. The point is to limit arbitrary data in general and thus the exact opposite: prevent having to start performing the analysis you (and I) do not want.


    ekzyis commented at 11:46 am on October 26, 2025:

    of course there are files that all decent people would make an effort to not download/store

    The “decent” is doing a lot of work in that sentence. Care to define “decent people”? Is bitcoin not for the other ones?


    BitcoinMechanic commented at 12:15 pm on October 26, 2025:

    of course there are files that all decent people would make an effort to not download/store

    The “decent” is doing a lot of work in that sentence. Care to define “decent people”? Is bitcoin not for the other ones?

    Bitcoin is not for arbitrary file storage period. In designing it that way, we get the added benefit of not having to store data that is universally disliked.


    rencryptofish commented at 3:43 pm on October 26, 2025:
    curious if you can point to an opinion from counsel that expands on the legal risks described in the bip

    kwsantiago commented at 4:56 pm on October 26, 2025:

    “illegal or universally abhorrent content” is poorly defined; there are a multitude of legal jurisdictions and a multitude of subjective views on content; Bitcoin as a system does not recognize any of them.

    The point is precisely to avoid having to define or judge specific content. By limiting arbitrary data storage at the protocol level, we sidestep the entire problem. Bitcoin doesn’t need to become a content moderation system. The goal is to preserve Bitcoin’s identity as a monetary network, not to police what data is “bad enough”. This is about protocol purpose, not content judgment.


    dathonohm commented at 8:16 pm on October 26, 2025:

    There are categories of content that practically all of humanity finds objectionable, and that carry harsh penalties for distributors, including long prison sentences and possibly even execution in some jurisdictions.

    I think it is sufficient to acknowledge that such content exists, and that the penalties are sufficiently harsh in at least a few jurisdictions, to recognize that this increased liability will be more than enough to discourage many users from running their own Bitcoin nodes, in order to serve a function that has no relation to permissionless global money.

    Bitcoin as a system may not espouse any particular legal or moral code (other than the consensus rules), but individual Bitcoin users absolutely do. This BIP represents a way for the entire bitcoin network to take a meaningful stance regarding the data use case, both collectively and individually.


    pakovm-git commented at 10:29 pm on October 26, 2025:
    Illegal under which jurisdiction? Does this affect all common law, civil law and religious law jurisdictions equally?

    BitcoinErrorLog commented at 3:08 pm on October 27, 2025:
    This BIP cannot prevent such threat, nor the fact that any state actor can design a false flag and also wholly control the definition of whether that flag must be regulated. You cannot predict the threshold the state is willing to lower itself to. The good news is that Bitcoin was designed to be censorship resistant, no matter what outside actors think about the use cases within.

    v4v2 commented at 7:00 pm on October 27, 2025:

    good news is that Bitcoin was designed to be censorship resistant

    You forgot to include the “peer-to-peer electronic cash system”. The accurate sentence is “good news is that Bitcoin was designed to be a peer-to-peer electronic cash system that is censorship resistant”. Taking into the account, an “electronic cash system censorship resistant will be resistant to attempts to censor financial transactions, and not resistant to censor unrelated content which is out of the scope of the primary purpose of the protocol.


    jairunet commented at 7:23 pm on October 27, 2025:
    Sounds fair to me.
  13. in bip-????.mediawiki:45 in 3c71823707
    40+The adoption of this release, even if by a minority of users, risks establishing this harmful redefinition as a new de facto standard for the entire network.
    41+
    42+This official sanction creates an immediate and severe threat.
    43+The threat here is distinct from general spam or economic costs, which are typically handled with policy and the fee market.
    44+It allows a malicious actor to mine a single transaction with illegal or universally abhorrent content and credibly claim that Bitcoin itself is a system for distributing it, rather than a system that was merely abused.
    45+This directly threatens the ability and/or willingness of common people to run fully validating nodes due to the resulting legal and moral risks.
    


    jlopp commented at 3:37 am on October 26, 2025:
    Again, “legal and moral risks” could use much more precise definition.

    Bitcoinfinity commented at 5:24 am on October 26, 2025:
    Again, precise definitions were never proposed nor required.

    jeremyburr commented at 5:39 pm on October 26, 2025:

    Again, “legal and moral risks” could use much more precise definition.

    The very goal of this proposal is to limit the need to interpret law——not encourage it.


    dathonohm commented at 8:17 pm on October 26, 2025:

    donaldevine commented at 9:08 pm on October 26, 2025:

    Again, “legal and moral risks” could use much more precise definition.

    It could be argued that @jlopp is attempting to prevent progress on this BIP by being overly pedantic. To placate him, the BIP could contain detailed definitions of the terms he is questioning. However, I suspect this would not satisfy him and he would continue to find issues with definitions in an attempt to delay this proposal.


    jonatack commented at 9:23 pm on October 26, 2025:
    I don’t think it’s necessary at this stage to be overly pedantic in the motivation section – or at least provide a concrete, helpful proposal. Suggest focusing more on expert technical review of the specification itself.

    jlopp commented at 10:08 pm on October 26, 2025:
    Given the coercive tone of the BIP, I believe that providing specifics around the supposed threat are highly warranted.

    jonatack commented at 10:22 pm on October 26, 2025:
    Marking further meta-commentary as off-topic here – henceforth, please do that in the ML discussion and focus here on technical feedback on the specification (thanks).

    BitcoinErrorLog commented at 3:09 pm on October 27, 2025:
    Unsubstantiated claim.
  14. in bip-????.mediawiki:49 in 3c71823707
    44+It allows a malicious actor to mine a single transaction with illegal or universally abhorrent content and credibly claim that Bitcoin itself is a system for distributing it, rather than a system that was merely abused.
    45+This directly threatens the ability and/or willingness of common people to run fully validating nodes due to the resulting legal and moral risks.
    46+
    47+A core principle of Bitcoin is "don't trust, verify".
    48+The nature of Bitcoin requires users to run fully validating nodes, necessarily involving downloading, storing, and transmitting every transaction, even if they are fake/spam "transactions".
    49+If the blockchain contains content that is illegal to possess or distribute, node operators are forced to choose between violating the law (or their conscience) or shutting down their node.
    


    jlopp commented at 3:37 am on October 26, 2025:
    This has always been the case.

    BlakeJones9449 commented at 4:41 am on October 26, 2025:
    An acknowledgement that the risks are present should be sufficient to encourage mitigation of risks which exacerbate this risk vector such as those introduced by Core 30.

    BitcoinMechanic commented at 7:51 am on October 26, 2025:
    See below

    csuwildcat commented at 11:05 am on October 26, 2025:
    It’s a very bad idea to put text suggesting legal liability into the implementation. Please talk to legal folks as to why, because even elaborating here via discussion of that particular aspect is hazardous.

    csuwildcat commented at 11:09 am on October 26, 2025:
    The generalized invocation of the ominous need for Bitcoin to ‘follow the law or else’ is concerning, because law can change, and in many places laws are enacted that run against the very principles Bitcoin represents. The open ended ‘appeal to legality’ and its implicit urging to act at the behest of government is something I hope folks reconsider.

    BitcoinMechanic commented at 11:28 am on October 26, 2025:

    Legal liability exists regardless.

    The point is that some files being illegal and others not makes laws essentially arbitrary and thus we should seek to discourage all arbitrary file storage specifically to reject this inevitable issue entirely.


    csuwildcat commented at 3:11 pm on October 26, 2025:

    Legal liability exists regardless.

    The point is that some files being illegal and others not makes laws essentially arbitrary and thus we should seek to discourage all arbitrary file storage specifically to reject this inevitable issue entirely.

    There are already images in the chain that violate laws, and even text snippets under the former OP_RETURN policy limit can violate laws in many jurisdictions, so the idea we must do this to dodge government’s wrath just isn’t compelling, given a State actor who feels this is a serious vector to attack Bitcoin would do so using what they already have. This notion gover-daddy is going to be so happy that Bitcoin is trying to signal compliance (‘signal’, because bad content is virtually unstoppable, regardless of OP_RETURN limits), it’ll ‘do us a solid’ by kindly withholding harms it desires to do is the most wishful of thinking.

    Adding an explicit declaration that ‘Bitcoin must comply with laws and won’t if you don’t run version __._’, creates other long-term hazards for the project, as it signals it is responsive to government compelled action.

    Please do not add statements like this to Bitcoin’s codebase, it is not the right path for the project to go down.


    kwsantiago commented at 4:55 pm on October 26, 2025:

    This has always been the case.

    Yes, the risk has always existed, but Core v30 transforms it from a “system being abused via exploits” to a “system officially supporting this use case”. There’s a crucial difference between someone finding a clever workaround (80-byte limit for years) vs. the reference implementation saying “100 KB is fine”. Consensus rules send a clear message about protocol intent that policy alone cannot.


    jeremyburr commented at 7:32 pm on October 26, 2025:

    Legal liability exists regardless.

    The point is that some files being illegal and others not makes laws essentially arbitrary and thus we should seek to discourage all arbitrary file storage specifically to reject this inevitable issue entirely.

    The justification is sound, but the wording is problematic. Explicit calls to avoid illegal content signal intent to comply with the law. It weakens the objective of the proposal itself—to be legally agnostic.


    dathonohm commented at 8:19 pm on October 26, 2025:
    Yes, but up until Bitcoin Core 30, there was always plausible deniability for users who chose to run nodes, since data storage for more than 80 bytes was always considered an abuse of the system rather than officially sanctioned. Core 30 represents a significant departure from this long-established anti-data stance.

    jlopp commented at 10:10 pm on October 26, 2025:

    Core v30 transforms it from a “system being abused via exploits” to a “system officially supporting this use case”.

    This is a novel theory that is in great need of supporting evidence.


    tphyahoo commented at 10:11 pm on October 26, 2025:

    This has always been the case.

    “The nature of Bitcoin requires users to run fully validating nodes, necessarily involving downloading, storing, and transmitting every transaction, even if they are fake/spam “transactions”.”

    “storing and transmitting every transaction” – this is untrue.

    utreexod is an example of a fully validating node that downloads and validates but does not store transactions.

    https://github.com/utreexo/utreexod


    dathonohm commented at 10:38 pm on October 26, 2025:

    @csuwildcat I think bitcoiners generally are aware of the legal risks and are fine accepting them because that’s the price for Bitcoin’s existence as permissionless global money.

    I don’t the same can be said for permissionless uncensorable data storage, which carries much greater risks, and no benefits.


    tphyahoo commented at 10:42 pm on October 26, 2025:
    @dathonohm full nodes don’t need to store data, only validate. (see my previous post)

    Tokyopapa commented at 1:17 am on October 27, 2025:

    Core v30 transforms it from a “system being abused via exploits” to a “system officially supporting this use case”.

    This is a novel theory that is in great need of supporting evidence. You own comment on PR 32359 seems to validate the theory that the “system [is] officially supporting this use case.” https://github.com/bitcoin/bitcoin/pull/32359#issuecomment-2833680770 From the conversation: jlopp commented on Apr 28 Concept ACK. It’s time to come to terms with the fact that Bitcoin is desirable for some people to use as a data anchor and they will find a way to use it as such, thus we should be asking what the preferred means of data anchoring is and how to incentivize it over less preferable options.


    kwsantiago commented at 1:37 am on October 27, 2025:

    Core v30 transforms it from a “system being abused via exploits” to a “system officially supporting this use case”.

    This is a novel theory that is in great need of supporting evidence. @jlopp Core v30 expanded default datacarriersize from 80 bytes to 100,000 bytes (1,250x increase).

    Your comment on https://github.com/bitcoin/bitcoin/pull/32359#issuecomment-2833680770: “Concept ACK… we should be asking what the preferred means of data anchoring is and how to incentivize it over less preferable options.”

    You’re treating data storage as a legitimate use case to optimize. That’s “official support”, not “mitigating abuse”.

    Patches close exploits. Features expand capacity. v30 expanded capacity.


    MarkJelic commented at 9:31 am on October 27, 2025:

    Adding an explicit declaration that ‘Bitcoin must comply with laws and won’t if you don’t run version __._’, creates other long-term hazards for the project, as it signals it is responsive to government compelled action.

    Please do not add statements like this to Bitcoin’s codebase, it is not the right path for the project to go down.

    I see where you are going with this and would generally agree that if we see Bitcoin is nothing more than Money, that we should not in any way care what is legal or not in any given jurisdiction. However, with the changes v30 have made, nobody can say Bitcoin is Only Money any longer and thus the sentence you are referring to does have merit in terms of describing the problem node operators face.

    Rather than using the terms “illegal to posses” and “violating the law”, would it be appropriate to use “morally reprehensible to posses” and “violating their conscience (with possible legal consequences)” ?


    BitcoinErrorLog commented at 3:13 pm on October 27, 2025:

    Rationally, you can only define all, or none, of the transactions as spam. The only ones I actually care about are the ones coming to and from me. Delete the rest! /s

    An effort to subjectively define spam results in goalpost-moving every time people find an excuse to fill cheap blockspace. It also results in a culture and potential obligation around identifying and censoring objectionable txns.

  15. in bip-????.mediawiki:50 in 3c71823707
    45+This directly threatens the ability and/or willingness of common people to run fully validating nodes due to the resulting legal and moral risks.
    46+
    47+A core principle of Bitcoin is "don't trust, verify".
    48+The nature of Bitcoin requires users to run fully validating nodes, necessarily involving downloading, storing, and transmitting every transaction, even if they are fake/spam "transactions".
    49+If the blockchain contains content that is illegal to possess or distribute, node operators are forced to choose between violating the law (or their conscience) or shutting down their node.
    50+This unacceptable dilemma directly undermines the incentive to validate, leading to inevitable centralization and posing an existential threat to Bitcoin's security model.
    


    jlopp commented at 3:38 am on October 26, 2025:
    But this has always been the case…

    BlakeJones9449 commented at 4:42 am on October 26, 2025:
    Doesn’t mean it needs to stay that way, or that we need to make the situation worse.

    Bitcoinfinity commented at 5:27 am on October 26, 2025:
    There is general consensus that sketchy content should not be on bitcoin, and that most node operator would support this change.

    BitcoinMechanic commented at 7:51 am on October 26, 2025:

    This has always been the case

    The point is not to make an issue (arbitrary illegality making life harder for nodes) worse by engaging in activity we have no business defending (the uploading/downloading/storage of arbitrary data).


    dathonohm commented at 8:19 pm on October 26, 2025:
    Bitcoin Core 30 meaningfully changes the situation. See: #2017 (review)
  16. in bip-????.mediawiki:52 in 3c71823707
    47+A core principle of Bitcoin is "don't trust, verify".
    48+The nature of Bitcoin requires users to run fully validating nodes, necessarily involving downloading, storing, and transmitting every transaction, even if they are fake/spam "transactions".
    49+If the blockchain contains content that is illegal to possess or distribute, node operators are forced to choose between violating the law (or their conscience) or shutting down their node.
    50+This unacceptable dilemma directly undermines the incentive to validate, leading to inevitable centralization and posing an existential threat to Bitcoin's security model.
    51+
    52+By enforcing these new rules, this softfork allows the community to reject the standardization of data storage at the consensus level, closing the gap being abused.
    


    jlopp commented at 3:39 am on October 26, 2025:
    But it doesn’t stop aforementioned content from ending up on node operator’s machines, so the dilemma remains.

    Bitcoinfinity commented at 5:28 am on October 26, 2025:
    Dilemma might remain, but the a serious effort in the right direction would be supported by most node operators.

    BitcoinMechanic commented at 7:53 am on October 26, 2025:
    Could you please explain how it would be possible for the content we are generally alluding to to make it onto node operator’s machines should these new rules be enforced?

    kwsantiago commented at 5:08 pm on October 26, 2025:

    With these rules enforced, contiguous data >256 bytes becomes consensus-invalid. An attacker could theoretically steganographically encode data across multiple fields, but:

    1. It’s non-contiguous and obfuscated
    2. External code would be needed to reassemble it (making that code responsible, not Bitcoin)
    3. It signals Bitcoin doesn’t support this use case. The difference between “exploit despite protections” vs. “official feature” is crucial for Bitcoin’s reputation and legal standing.
  17. in bip-????.mediawiki:147 in 3c71823707 outdated
    139+
    140+The impact of these restrictions would severely constrain future upgrades, potentially forcing them to be designed as a hardfork instead of a softfork.
    141+Some restrictions are also not ideal, but an improved limit would be more complicated to develop and test -
    142+by deploying these simpler restrictions now, we avoid making the perfect the enemy of the good enough, while still allowing for upgrading the limits to better variants in the future.
    143+
    144+Over the next year, interested developers can implement and propose a longer-term solution to address the needs of the protocol without the tradeoffs or blunt/simplified changes.
    


    jlopp commented at 3:40 am on October 26, 2025:
    This sounds like a massive assumption; if the default is to relax the rules again, then you are simply re-introducing the “dilemma / vulnerability” by default, which should be unconscionable, correct?

    Bitcoinfinity commented at 5:29 am on October 26, 2025:
    Incorrect.

    jlopp commented at 7:17 am on October 26, 2025:
    Feel free to explain why relaxing the rules would not reintroduce the claimed problem.

    BitcoinMechanic commented at 7:56 am on October 26, 2025:
    Because during the period of temporary restriction, we can elect to extend the period or make it (or some subset of it) permanent should it not prove too restrictive for something beneficial.

    dathonohm commented at 8:29 pm on October 26, 2025:

    This sounds like a massive assumption; if the default is to relax the rules again, then you are simply re-introducing the “dilemma / vulnerability” by default, which should be unconscionable, correct?

    Yes, presumably in a year we would either fork to extend the rules indefinitely, or we would implement something more elegant that allows for some of the use cases this BIP handicaps, such as BitVM, while re-affirming our commitment to prevent block space from being used for data storage.

    As the BIP mentions, that could also be a good time to propose activation for output-restriction covenants such as CTV or TEMPLATEHASH, which appear to have broad support among the developer community and could gather sufficient consensus to activate by then.

  18. in bip-????.mediawiki:211 in 3c71823707
    206+Generally, softforks do not cause chain splits.
    207+However, since we are rejecting an already-mined block proposal, this softfork does indeed cause a chain split.
    208+In fact, that is an important part of its purpose:
    209+to keep the illegal content storage in block <TODO:hash> out of Bitcoin.
    210+
    211+To achieve this, the softfork must activate retroactively, invalidating that block and all its descendants.
    


    jlopp commented at 3:46 am on October 26, 2025:

    It sounds like this actually introduces a vulnerability of its own. If an attacker wishes to double spend their coins, they could:

    1. Embed a sufficiently controversial piece of data to the blockchain.
    2. Make a transaction, wait for it to confirm and receive something in return.
    3. Reveal to the world that there is controversial data that requires the chain to be invalidated
    4. Upon chain invalidation, RBF their now-unconfirmed transaction to send the funds back to themselves

    BlakeJones9449 commented at 5:53 am on October 26, 2025:

    I guess that would depend on how quickly the retroactive method could be implemented after it is deemed necessary. As long as the vulnerabilities created by Core v30 remain in place it would behoove a receiver waiting on L1 transaction finality to give it some extra time. The 2013 hardfork was resolved in 24 blocks, about 6 hours.

    Where would an attacker hide such data for long enough that they could pull off this double spend attack?


    jlopp commented at 7:18 am on October 26, 2025:
    Hiding the data would not be a requirement; an attacker could literally publish said data and then transact in the same block or the next block.

    BitcoinMechanic commented at 8:01 am on October 26, 2025:
    @jlopp You’re correct but that’s a scenario in which alternatives are clearly worse which is why I agree that the preferred approach of the two outlined in this BIP is prophylactic rather than reactive.

    zndtoshi commented at 8:27 am on October 26, 2025:
    Isn’t the retroactive activation a 51% attack from miners? Wouldn’t such a BIP standardize and make official and endorsed by Bitcoin Core the 51% attacks?

    zndtoshi commented at 11:27 am on October 26, 2025:
    Who decides which op_return is bad enough to require an invalidation of the said block?

    BitcoinMechanic commented at 11:30 am on October 26, 2025:

    Who decides which op_return is bad enough to require an invalidation of the said block?

    That is not a decision that can be unilaterally made by anyone. It would presumably be something sufficiently terrible enough to cause enough people to come to the same conclusion.

    As mentioned above, this is a terrible scenario with no ideal solutions.


    zndtoshi commented at 2:19 pm on October 26, 2025:
    Would this reorg cover also op_return containing illegal text for example enticing to violence against a certain group of people?

    kwsantiago commented at 5:03 pm on October 26, 2025:

    Who decides which op_return is bad enough to require an invalidation of the said block?

    No one decides unilaterally, which is the whole point. This would only activate reactively if content is severe enough that the community converges on the need to respond (similar to the 2010 inflation bug). The better question is whether we should wait until that happens, or should we close the gap proactively? This BIP does both through a proactive path (Feb 2026) with reactive fallback. The existence of this proposal likely prevents the need for reactive deployment.


    dathonohm commented at 8:44 pm on October 26, 2025:

    @jlopp There will indeed be much risk for vendors over the next few months of a sudden “reactive” activation of this BIP. Merchants should be prepared to stop accepting on-chain Bitcoin payments and wait for at least a few confirmations, maybe even 100 or so for large payments.

    This could be a bumpy ride, but I don’t see a better way.

    Ideally we could achieve a BIP8 early activation if miners are eager to activate (if I were running a mining pool, I would be). But there’s a good chance that BIP8 activation code wouldn’t be production-ready fast enough to make a difference, unless we can get a lot of developer support. So the “proactive” deployment of this BIP is a flag day for now.


    dathonohm commented at 8:52 pm on October 26, 2025:
    As for who will be the authority that will let everyone know which block has objectionable data, I can only say that each node runner should decide for him- or herself whether to reject the block and immediately follow the new rules. I would caution against viewing the material directly, as this could legally implicate the user. But also: don’t trust, verify. Personally I will probably just follow the new chain once it has enough hashpower. Accidental early activation via the “reactive” method would not be the worst thing to happen.
  19. in bip-????.mediawiki:298 in 3c71823707
    293+it is an absolute necessity to prevent it from occurring even once.
    294+This absolute protection cannot be guaranteed by voluntary policy and can only be provided by consensus rules.
    295+
    296+'''Isn't this censorship? By rejecting blocks based on data content, aren't you violating the principles of free speech and a neutral, permissionless network?'''
    297+
    298+Bitcoin is money, not speech.
    


    jlopp commented at 3:50 am on October 26, 2025:

    According to Citizens United v. Federal Election Commission, 558 U.S. 310, money is speech.

    Normally it would be irrelevant to reference legal rulings in the context of the protocol, but this BIP seems to rely heavily on legality.


    Bitcoinfinity commented at 5:31 am on October 26, 2025:
    money is speech, but not all speech is money. You must understand the difference, making this comment clearly in bad faith.

    BitcoinMechanic commented at 8:04 am on October 26, 2025:
    Bitcoin is a monetary protocol. The protocol treats non-monetary usage with appropriate hostility. The pressure to do otherwise is met with insincere appeals to “free speech” which is what L296-L298 addresses. This is not related to legality.

    MalachiRevolts commented at 8:22 am on October 26, 2025:

    It is not censorship to preserve the intended use-case of Bitcoin, which is monetary.

    It looks like some refuse to discourage spam on consensus level because of selfish opportunistic endeavours.

    By engaging in opportunistic use-cases which neglect the risk of illegal content they are putting the reputation of Bitcoin on the line and introducing censorship implicitly themselves.

    I’ll explain: If Bitcoins reputation would become so bad that regulatory authorities in e.g. Europe take a look at it, exchanges could be forced to close on/off ramps to Bitcoin. Businesses and institutions would not be able to legally buy Bitcoin anymore. That would be censorship.


    ArmanTheParman commented at 1:18 pm on October 26, 2025:
    Arbitrary data, by definition, is not part of money, in the same way that drawing pictures on a bank cheque is not part of the purpose of the cheque.

    kwsantiago commented at 5:05 pm on October 26, 2025:

    According to Citizens United v. Federal Election Commission, 558 U.S. 310, money is speech.

    This conflates Bitcoin-the-monetary-protocol with Bitcoin-the-arbitrary-data-layer. Citizens United doesn’t say the Federal Reserve must accept crayon drawings on dollar bills. Bitcoin script supports complex financial arrangements (HTLCs, multisig, etc), which is monetary speech. Random JPEGs and videos aren’t monetary expression, they’re an abuse of a monetary system’s infrastructure. The protocol can enforce its intended purpose without violating free speech principles.


    JackTyler4444 commented at 7:02 pm on October 26, 2025:
    What is ‘money’ is an extremely subjective definition. We can see this by considering the history of it.

    Jeremy-coding commented at 7:30 pm on October 26, 2025:

    It’s absolutely incredible to find so many people adamant on this PR that their definition of “monetary network” is the objectively correct one for Bitcoin, while they would simultaneously tell you that Bitcoin is NOT a “peer to peer electronic cash system” for “small casual transactions” as outlined in the Bitcoin whitepaper (that was the argument of the big blockers in the Blocksize War).

    People are very subjective with their interpretation of definitions to fit their current mood or belief.


    dathonohm commented at 8:52 pm on October 26, 2025:
    @jlopp I’m not sure why you think that’s relevant. Speech is not money, and Citizens United does nothing to change this.

    jlopp commented at 9:59 pm on October 26, 2025:

    I just find it odd to claim that Bitcoin is not speech given that a variety of aspects of developing and operating Bitcoin software are, in fact, covered by free speech protections.

    On the other hand, the cypherpunk ethos does not really concern itself with the opinions of governments.


    dathonohm commented at 10:49 pm on October 26, 2025:

    @jlopp You’re overthinking this. Money is speech; speech is not money (except for money, which is a kind of speech).

    Therefore, non-financial data is not money and does not belong in the blockchain, nor does it deserve to be stored and distributed, with no way to be censored, until the end of time.


    jlopp commented at 10:58 pm on October 26, 2025:
    Bitcoin is programmable money; the side effect of that is that people can use it as speech for data publication.

    dr0ther commented at 11:21 pm on October 26, 2025:

    According to Citizens United v. Federal Election Commission, 558 U.S. 310, money is speech.

    Normally it would be irrelevant to reference legal rulings in the context of the protocol, but this BIP seems to rely heavily on legality.

    This doesn’t matter as the United States doe not recognize bitcoin as money


    jlopp commented at 10:35 am on October 27, 2025:
    It also doesn’t matter because Bitcoin does not recognize the United States government.

    ThymeKeeper commented at 3:14 pm on October 27, 2025:

    Bitcoin is programmable money; the side effect of that is that people can use it as speech for data publication.

    On the other side of the coin, limiting a node from being able to filter the mempool as the node operator desires is a limitation on their right to speak (transmit) their beliefs.


    BitcoinErrorLog commented at 3:20 pm on October 27, 2025:
    Policy is local, which means anyone can change it to anything they want, which means they have no actual limitation. Anyone sincerely motivated to customize local policy can do so without restraint.

    kurapika007 commented at 3:31 pm on October 27, 2025:

    Por outro lado, limitar a capacidade de um nó de filtrar o mempool conforme o operador do nó deseja é uma limitação ao seu direito de falar (transmitir) suas crenças.

    Good thing Core didn’t do that


    NeoProbusLATAM commented at 5:16 pm on October 27, 2025:

    Bitcoin is a monetary protocol. The protocol treats non-monetary usage with appropriate hostility. The pressure to do otherwise is met with insincere appeals to “free speech” which is what L296-L298 addresses. This is not related to legality.

    We all agree that Bitcoin is a decentralized monetary protocol. Most will also agree that we should limit as much as possible the non-monetary transactions (aka spam). That said, IMO the filters or this soft fork only buys us some time; a market-based “permanent” solution is needed.

    Assuming the growth of genuine money use (savings, remittances, settlements) naturally outbids spam, how do we grow BTC adoption from SoV primarily to one that not only includes but promotes MoE?

    Otherwise, users will keep treating Bitcoin as a vault, not a medium of exchange — leaving block space underutilized and open to spammy exploitation — a potential issue both Jack Dorsey and Jeff Booth have warned us about.

  20. in bip-????.mediawiki:321 in 3c71823707
    316+
    317+Performing financial transactions may indeed be illegal, but that is a completely different thing from keeping a record that it occurred.
    318+Someone violating OFAC sanctions, for example, may be liable for sending or receiving a payment, but that does not impact the Bitcoin network as a whole.
    319+
    320+Illegal data is completely different:
    321+nodes are not merely recording that it happened, they are active participants in storing and distributing the illegal content itself.
    


    jlopp commented at 3:54 am on October 26, 2025:

    BlakeJones9449 commented at 6:24 am on October 26, 2025:

    From your cited article: “It is already an issue, yes, and the fact that this kind of attack hasn’t happened yet is a question of luck rather than capability,” they said. “It would be safer for Bitcoin to optimize for content-addressable links to offchain content like an IPFS hash."

    The time provided by this temporary softfork would allow for optimization as recommended by your source.


    jlopp commented at 7:21 am on October 26, 2025:
    Yes, you quote the only 1 of 7 attorneys cited who agrees with your view and they were not even willing to put their name and reputation on the line.

    BitcoinMechanic commented at 8:16 am on October 26, 2025:

    I assert that the perspective of those lawyers is lacking and that they do not understand what Bitcoin requires in order to function. Pressure placed on nodes to defend the activity mentioned multiple times in other responses above can only weaken Bitcoin as it serves as a disincentive to run one.

    For comparison - it is not illegal to consume electricity either, but the framing that “Bitcoin is bad for the environment” has been incredibly harmful and exhausting to counter. The stigma that can be created around running nodes can cause immense damage as people can continue to use Bitcoin without needing to run nodes - ultimately leading to centralization at the enforcement layer which is unquestionably fatal to Bitcoin.

    The intent is simple: do not put pressure on people to not run nodes.


    BlakeJones9449 commented at 1:51 pm on October 26, 2025:

    Yes, you quote the only 1 of 7 attorneys cited who agrees with your view and they were not even willing to put their name and reputation on the line.

    I didn’t think a complete breakdown of that article is needed. If people read it they will find that most of the lawyers cited who say they don’t think this will be a problem base their opinion on the fact that it hasn’t been a problem yet. This seems to be the “fingers crossed” method of legal risk analysis.

    But assuming the legal concerns are overblown, the social risk of stigma remains. Nakamoto consensus should not be structured such that node runners are required to host large amounts of permissionless, immutable, pseudonymous, non-currency data in order to send and verify their bitcoin transactions.

    This BIP allows time to consider ways to address these issues.


    kwsantiago commented at 5:10 pm on October 26, 2025:

    Even if legal risk is debatable, the reputational risk is clear. Bitcoin’s value proposition is “money for enemies”: neutral, apolitical, monetary infrastructure.

    Once Bitcoin becomes known as “a network where people store illegal content”, we lose that neutrality. We’ve spent years fighting “Bitcoin wastes energy”, so imagine fighting “Bitcoin distributes CSAM”. Node operators shouldn’t have to defend hosting arbitrary data just to participate in a monetary network. The stigma alone is a centralization pressure.


    dathonohm commented at 9:05 pm on October 26, 2025:
    My understanding is that these lawyers are mostly not criminal lawyers and have no relevant experience. But also, note that a majority of the 7 lawyers said there is indeed reason for concern.

    jlopp commented at 10:03 pm on October 26, 2025:

    “No credible legal authority is seriously considering attaching liability to the automatic process our nodes undertake when dealing with Bitcoin.”

    The onus is on the authors and proponents of this BIP to present evidence to the contrary.

  21. in bip-????.mediawiki:350 in 3c71823707
    345+
    346+The fee market is designed to prioritize transactions based on economic urgency.
    347+However, it fails when transactions impose externalities that are not properly weighed against the transaction fee.
    348+
    349+In this case, the externality is the existential legal and moral liability imposed on every node operator.
    350+No transaction fee can compensate for the risk of imprisonment or the moral burden of distributing abhorrent content.
    


    jlopp commented at 3:56 am on October 26, 2025:
    “moral liability” and “moral burden” are poorly defined.

    Bitcoinfinity commented at 5:32 am on October 26, 2025:
    Again, precise definitions were never proposed nor required.

    BitcoinMonk commented at 2:08 pm on October 26, 2025:

    Regardless of how poorly defined they are it is obvious what that means. Where the line is drawn is irrelevant. Does increasing ‘moral liability’ and ‘moral burden’ help bitcoin in any way?

    I would argue not.

    I see this proposal as a way to reduce those factors which objectively helps bitcoin by removing that moral dilemma for potential node runners.

    ACK


    dathonohm commented at 9:06 pm on October 26, 2025:

    jlopp commented at 10:14 pm on October 26, 2025:
    Bitcoin is already used on a regular basis to conduct immoral and illegal acts; more specification is warranted to clarify why the specific immoral / illegal acts that the BIP posits to prevent are an existential crisis while the others are not.

    jonatack commented at 10:29 pm on October 26, 2025:
    All, please don’t repeat the same argument after having stated it once, otherwise marking as duplicate. Thanks.

    Freakoverse commented at 5:18 pm on October 27, 2025:

    “Won’t this hurt miners by reducing the fee revenue they could earn from large data transactions?”

    Another extra point I see here is if a miner has collected (instead of discarding/rejecting) an offending transaction, mined and processed a block, then pushed/distributed it to all other nodes where they can’t do anything about it (aside from shutting their node down for good), all so they can get a little bit more revenue, there is now evidance that they have commited this potential crime where they are now at high risk of having their operation shut down, potentially having their equipment and funds seized, and potentially face jail/prison time.

    With this in mind, the potential financial positives for miners are minuscule in comparison to the financial destruction that they’d face.

  22. bitcoin deleted a comment on Oct 26, 2025
  23. in bip-????.mediawiki:352 in 3c71823707
    347+However, it fails when transactions impose externalities that are not properly weighed against the transaction fee.
    348+
    349+In this case, the externality is the existential legal and moral liability imposed on every node operator.
    350+No transaction fee can compensate for the risk of imprisonment or the moral burden of distributing abhorrent content.
    351+
    352+Furthermore, fees provide an incentive to miners only, and do not in any case justify forcing the burden on node operators who have not all consented.
    


    jlopp commented at 3:57 am on October 26, 2025:
    By running a node you consent to the consensus rules of the network. If you don’t consent, you can simply not run a node.

    BlakeJones9449 commented at 5:25 am on October 26, 2025:
    Wouldn’t such an approach lead to more node centralization a reduce Bitcoin’s network effects?

    Bitcoinfinity commented at 5:32 am on October 26, 2025:
    This applies to both pro and con arguments of this BIP and therefore an irrelevant comment.

    BitcoinMechanic commented at 8:30 am on October 26, 2025:
    @jlopp Not sure the relevance? This fork changes consensus rules.

    krynne commented at 8:49 am on October 26, 2025:
    By running a node, I am not consenting to the consensus rules of the network, I’m enforcing them. It’s the network’s nodes that determine what the consensus rules are. If you remove all the nodes, there’s no consensus left and no rules to enforce.

    ArmanTheParman commented at 1:29 pm on October 26, 2025:

    By running a node you consent to the consensus rules of the network. If you don’t consent, you can simply not run a node.

    Running a node is not “consenting”, this is the wrong framing; it is drawing a line in the sand about what rules YOU apply to your own money. Consensus forms FROM it, it’s not “enforced”, and there is no “compliance”. This is not Ethereum. If the rules of the networks are wrong and do not reflect the will of the majority, the rules can eventually change.

    The PEOPLE decide what their money rules are; the code follows.

    It’s not the other way around. Ideology of money is a higher priority than code. Code “codefies” the ideology, and sometimes it’s not precise enough and needs modification.

    Bitcoin is money, not an arbitrary data transfer protocol. If arbitrary data happens to tag along, it might not be an issue, so be it - it doesn’t necessarily have to be 100% eliminated, but when it’s becoming an issue, it’s not “censorship” to stop it. This is valid because the purpose of Bitcoin is NOT speech (nor arbitrary data transfer) - instead, free speech protects Bitcoin. These are different things.

    It’s exactly the case in law - if the law is wrong, it changes (when the system is working, of course).


    dathonohm commented at 9:07 pm on October 26, 2025:
    I don’t think we should be creating even more barriers to running a node when so many already exist.

    rdouma commented at 1:49 am on October 27, 2025:

    By running a node you consent to the consensus rules of the network. If you don’t consent, you can simply not run a node.

    Therefore we need to make the consensus rules such that people are willing to consent.

  24. in bip-????.mediawiki:231 in 3c71823707 outdated
    385+This softfork itself also specifically targets a certain subset of abuse of Bitcoin as an arbitrary data storage and distribution system, which has never been its intended purpose.
    386+It does not attempt to impose restrictions on financial activity or the validity of monetary transactions themselves.
    387+This clear distinction between mitigating a systemic risk from non-financial data abuse and interfering with actual financial use cases provides a strong barrier against future overreach.
    388+
    389+The explicitly temporary nature of the softfork further reinforces that this is a targeted intervention to mitigate a specific crisis, not a commitment or proposal of a new direction of development.
    390+If no further action is taken by you, it will expire in a year.
    


    jlopp commented at 4:00 am on October 26, 2025:
    Needs further rationale as to why it’s safe to automatically remove protections that are supposedly needed to stop an existential crisis.

    Bitcoinfinity commented at 5:35 am on October 26, 2025:
    Disagree.

    BitcoinMechanic commented at 8:34 am on October 26, 2025:
    Making the new rules permanent immediately creates the need for a hardfork to ever undo them. It makes sense to do this temporarily for reasons explained elsewhere as they (or a subset of them) can be extended/made permanent if not proven undesirable during the temporary period.

    ekzyis commented at 12:45 pm on October 26, 2025:
    What could be undesirable effects of this temporary softfork?

    kwsantiago commented at 5:12 pm on October 26, 2025:

    The temporary nature allows three things:

    1. Immediate protection while better long-term solutions are developed (avoiding “perfect is the enemy of good”)
    2. Evaluation period to see if these limits harm legitimate use cases (if they don’t, make it permanent; if they do, refine)
    3. Avoids forcing future softforks to be hardforks by allowing the community to extend and/or make permanent, otherwise it expires. This is prudent given the BitVM tradeoff and upgrade hook limitations.

    dathonohm commented at 9:09 pm on October 26, 2025:
    If this BIP gains consensus and activates, it seems likely that, when it expires, there would be consensus at least for extending the restrictions, if no better solutions are found.

    jlopp commented at 10:37 am on October 27, 2025:
    Speculation is not a great specification.

    kevkevinpal commented at 2:23 pm on October 27, 2025:

    Can this instead be measured in number of blocks?

    it will expire in a year


    kevkevinpal commented at 2:27 pm on October 27, 2025:
    sorry just saw that it would expire on block 987424 after activation. I suggest mentioning that here.
  25. in bip-????.mediawiki:76 in 3c71823707 outdated
    68+'''What about OP_RETURN? Why not get rid of it entirely?'''
    69+
    70+OP_RETURN outputs are provably unspendable, and nodes do not need to store it in the UTXO set.
    71+Historically, up to 83 bytes have been tolerated only to avoid unprovably unspendable spam in other output scripts, and no legitimate uses have ever been found.
    72+With the advent of pay-to-contract and Taproot, it is now also possible to commit to external data in the Taptree, making even hypothetical use of OP_RETURN deprecated.
    73+However, to avoid breaking legacy protocols that still include such outputs, this proposal allows these outputs.
    


    GregTonoski commented at 9:40 am on October 26, 2025:
    Also I am raising objection to the fragment of the proposal. I think that the presumption of existence of “legacy protocols” is false. There isn’t any BIP of such a protocol. Also, I haven’t seen any implementation of a hypothetical undocumented one. Last, but not least - arbitrary data storage doesn’t belong to Bitcoin and the “OP_RETURN” bug that is exploited by abusers must be fixed.

    dathonohm commented at 9:43 pm on October 26, 2025:

    Unfortunately, 80 bytes is the standard on the network now, at least until 100kB OP_RETURNs start being reliably mined, so there are many use cases, including privacy-related protocols, that would break if we set OP_RETURN to zero. Hopefully this BIP will encourage a migration away from such inefficient protocols, but invalidating such uses does nothing to help this BIP’s goals, as 80 bytes is too small for legally risky content.

    Also, segwit would break: https://github.com/bitcoin/bips/pull/2017/files/3c718237072c107ced8c3531a487354fbdae55df#r2463933146

  26. ekzyis commented at 11:48 am on October 26, 2025: none

    Will or can this softfork affect lightning or currently planned upgrades of it?

    btw, fwiw, there’s also some discussion at https://stacker.news/items/1265553 (sorry for the shameless plug, I work at SN)

  27. in bip-????.mediawiki:230 in 3c71823707
    225+If the chain split is prolonged, it may be worth considering closing any high-value channels with untrusted counterparties.
    226+
    227+'''Is this unprecedented?'''
    228+
    229+No.
    230+Bitcoin has deployed emergency softforks, including chain splits, in at least two past occasions:
    


    ekzyis commented at 12:18 pm on October 26, 2025:

    Is there an emergency regarding spam on-chain? If there was an emergency, wouldn’t fees be very high?

    What am I missing?

    Or is this softfork only motivated by legal concerns, not spam?


    BlakeJones9449 commented at 12:42 pm on October 26, 2025:
    It seems to be motivated by both legal concerns and spam. This is not necessarily something that would be reflected in fees.

    MalachiRevolts commented at 12:55 pm on October 26, 2025:

    Or is this softfork only motivated by legal concerns, not spam?

    I wouldn’t minimize the legal aspect. If you want:

    • exchanges not to be forced by regulators to close off/on ramps
    • businesses and institutes to be able to hold Bitcoin on their balances

    You should want to support every proposal that protects Bitcoin from regulatory strain or worse.

    Why address it now at consensus level? => Because you don’t want regulatory bodies to get the impression you are just allowing something to happen.

    What about money laundering? => You can defend money but you can’t defend illegal files.

    Bitcoin isn’t designed for files, so it’s no issue => If you allow contiguous file storage, in Bitcoin’s current state, it would be use of the protocol. If, however, you discourage contiguous file storage, and spam happens, it’s abuse of the protocol. Regulatory bodies make the distinction. The social layer also makes that distinction. You don’t want Bitcoin to get a bad reputation if you want more adoption.

    There is already bad stuff on the blockchain => Yet another reason to address further use of the blockchain in that way. Times have changed and regulatory actions against platforms that host data happen daily. Saying Bitcoin is immutable wouldn’t help. They’d just go to the exchanges and close the off/on ramp. Nobody should want to risk this.


    ekzyis commented at 1:10 pm on October 26, 2025:

    This is not necessarily something that would be reflected in fees.

    Why would spam not reflect itself in fees?

    Because you don’t want regulatory bodies to get the impression you are just allowing something to happen.

    I don’t want to give regulatory bodies the impression developers are responsible for what happens on the network


    MalachiRevolts commented at 1:28 pm on October 26, 2025:

    I don’t want to give regulatory bodies the impression developers are responsible for what happens on the network

    They wouldn’t take that path. As I said, they’d go to exchanges and lawmakers to enforce their regulation at that level. So, it’s about navigating Bitcoin through the real world and protect it.

    Do we rather want to give opportunists the impression we can make developers do their bidding? Lately it’s going that way and that also ain’t the good path forward.


    kwsantiago commented at 5:00 pm on October 26, 2025:

    Is there an emergency regarding spam on-chain? If there was an emergency, wouldn’t fees be very high?

    The emergency is existential, not economic. Low fees make the attack cheaper, since a malicious actor can embed illegal content for under $10 in fees. Once in the blockchain, it’s permanent and every single node operator is forced to store+distribute it. Ultimately this is not about fee-market spam, it’s about how a single bad actor is able to create legal/reputational liability for every single node operator. That’s a fundamentally different threat model.


    dathonohm commented at 10:09 pm on October 26, 2025:
    @ekzyis This BIP specifically targets forms of spam that are so legally toxic that having even a single instance in the chain represents a significant legal liability for users who run nodes. It might lead to a reduction of other forms of spam as well, but that would merely be a side effect. Spam without legal risk for users is best fought in policy rather than consensus.

    ThymeKeeper commented at 3:19 pm on October 27, 2025:

    It seems to be motivated by both legal concerns and spam. This is not necessarily something that would be reflected in fees.

    i’d like to add that there is a third risk: allowing large op_returns will cause mempool congestion. if legitimate monetary transactions take longer to get written, we will be heading towards a second blocksize war.

  28. in bip-????.mediawiki:255 in 3c71823707
    250+'''Is this like the BIP148 UASF?'''
    251+
    252+In some ways, yes:
    253+it only requires a significant minority to succeed;
    254+miners need to upgrade to continue mining, and are incentivised to do so;
    255+actual rejection requires a counter-softfork (aka URSF); etc.
    


    Rob1Ham commented at 12:40 pm on October 26, 2025:

    How is a counter soft fork required?

    I’m not following how following existing consensus would require an additional code change to reject this proposal.

    Maybe it will become clear when there is code?


    kwsantiago commented at 5:37 pm on October 26, 2025:

    How is a counter soft fork required?

    Old nodes follow the chain with the most proof-of-work. If upgraded miners build a longer chain enforcing new rules, old nodes automatically follow. To resist requires active counter-measures, such as checkpointing the data-storage chain OR running code that rejects blocks signaling this softfork (URSF). Simply “doing nothing” isn’t enough, same dynamics as BIP148.


    average-gary commented at 2:07 pm on October 27, 2025:
    From my understanding, a >83byte OP_Return would be considered valid by old nodes but rejected by new nodes? Would this not create a chain split?

    Rob1Ham commented at 2:21 pm on October 27, 2025:

    From my understanding, a >83byte OP_Return would be considered valid by old nodes but rejected by new nodes? Would this not create a chain split?

    Yes, it would cause a chainsplit. The assumption of there not being a chainsplit is all hash rate and most economic nodes to update.


    murchandamus commented at 5:21 pm on November 10, 2025:
    The unstated assumption here appears to be that this soft fork will be enforced by a majority of the hashrate. Soft forks that are not enforced by a majority of the hashrate simply strand the enforcing nodes on a shorter chaintip as the rest of the network proceeds with the more lenient consensus rules.

    dathonohm commented at 11:43 pm on November 11, 2025:
    This text has been removed and is no longer applicable.
  29. in bip-????.mediawiki:31 in 3c71823707 outdated
    26+
    27+# New output scriptPubKeys exceeding 34 bytes are invalid, unless the first opcode is OP_RETURN, in which case up to 83 bytes are valid.
    28+# OP_PUSHDATA* with payloads larger than 256 bytes are invalid, except for the redeemScript push in BIP16 scriptSigs.
    29+# Spending undefined witness (or Tapleaf) versions (ie, not Witness v0/BIP 141 nor Taproot/BIP 341) is invalid.
    30+# Witness stacks with a Taproot annex are invalid.
    31+# Taproot control blocks larger than 257 bytes (a merkle tree with 128 script leaves) are invalid.
    


    mononaut commented at 2:16 pm on October 26, 2025:
    This would be confiscatory, as there are coins known to be secured by taproot script trees with greater depth, e.g. https://mempool.space/address/bc1pxmvwu0rv0vx6l8m7l5x5fxyjcyypch42d2pym0fuepjkzd0p34nslx2vhh

    BitcoinMonk commented at 2:32 pm on October 26, 2025:
    Agreed on the confiscation risk. How about a height-based exemption for pre-activation UTXOs? Wouldn’t it be as simple as ‘if (input_height < activation_height) skip_size_limit’?

    dathonohm commented at 9:33 pm on October 26, 2025:

    @mononaut Unfortunately yes, this proposal in its current form almost certainly will result in funds being at least frozen for a year. I don’t see any easy way around this (other than just loudly warning users to migrate their funds ASAP) but I’m open to suggestions.

    Do you happen to know the use case for such a large tree?


    bitcoin-eagle commented at 0:30 am on October 27, 2025:

    @dathonohm Multisig 6-of-11 or greater implemented as 462 seperate 6-of-6 scripts (all combinations of 6 key subsets from 11 quorum). Which is the efficient way of doing multisig in taproot to save number of checksig operations and to avoid publishing unused pubkeys

    I find it a bit ironic to confiscate bitcoin specifically from people that use script in a way to minimize spamming the chain with unused pubkeys in a big multisig


    BitcoinErrorLog commented at 2:55 pm on October 27, 2025:
    This makes it a non-starter. BIPs should not include confiscatory qualities as it obviously disrupts the user space and undermines all similar use cases reputationally.

    john-moffett commented at 5:08 pm on October 27, 2025:

    this proposal in its current form almost certainly will result in funds being at least frozen for a year

    “At least” is a big hedge, since you could absolutely lose funds. For example, if you had to spend a leaf to claim funds after a hash-reveal, but it’s too deep to actually spend from, your counterparty might be able to key spend (or shallow-leaf spend) a ‘refund’ before the temporary window ended.

  30. Rob1Ham commented at 2:47 pm on October 26, 2025: none

    According to BIP-2:

    Once the champion has asked the Bitcoin community as to whether an idea has any chance of acceptance, a draft BIP should be presented to the Bitcoin development mailing list.

    When will this be posted to the mailing list as its own thread so it can get greater attention & review?

  31. in bip-????.mediawiki:27 in 3c71823707 outdated
    22+
    23+==Specification==
    24+
    25+Blocks with a height from (TBD) until and including 987424 are checked with these additional rules:
    26+
    27+# New output scriptPubKeys exceeding 34 bytes are invalid, unless the first opcode is OP_RETURN, in which case up to 83 bytes are valid.
    


    benthecarman commented at 3:03 pm on October 26, 2025:
    this basically does nothing unless you limit the number of op returns on a tx. you would however probably want to make a carve out for the coinbase tx

    unknown commented at 3:26 pm on October 26, 2025:
    It increases the cost (multiple outputs) and discourage the use of OP_RETURN for arbitrary data.

    dathonohm commented at 9:26 pm on October 26, 2025:

    This BIP’s main goal is to require users wanting to store large unencrypted files in the blockchain to disguise the data as financial data and/or break it up into multiple data pushes. Obviously doing so is considered an abuse of bitcoin and should be avoided, but if it does happen, this BIP strengthens the argument that data storage is not a supported use case, thus minimizing legal liability for users who run nodes.

    Yes, there will always be ways to hide data in the blockchain, but we don’t need to make it easy by giving users 100kB of OP_RETURN (which is explicitly intended for arbitrary data), and any harmful data that does end up in the chain at least requires third-party software to decode.

    However, I wouldn’t be against invalidating multiple OP_RETURN outputs in a single transaction if that has support.


    benthecarman commented at 1:42 am on October 27, 2025:

    This BIP’s main goal is to require users wanting to store large unencrypted files in the blockchain to disguise the data as financial data and/or break it up into multiple data pushe

    if that is the goal, why not just get rid of op_pushdata2/3


    john-moffett commented at 5:00 pm on October 27, 2025:

    Invalidates signed but unbroadcast txs with P2PK or bare P2MS outputs (compressed or not). P2PK is currently standard, and so is bare P2MS up to x-of-3.

    P2PKH has a bigger lifetime size footprint than P2PK.


    ThymeKeeper commented at 5:26 pm on October 27, 2025:

    Invalidates signed but unbroadcast txs with P2PK or bare P2MS outputs (compressed or not). P2PK is currently standard, and so is bare P2MS up to x-of-3.

    P2PKH has a bigger lifetime size footprint than P2PK.

    what if instead of a hard 43 bytes, we do the following:

    1. OP_RETURN: Limited to 83 bytes (as proposed)
    2. Taproot witness data: Limited to reasonable script sizes (~400 bytes?)
    3. Ban specific inscription patterns (OP_FALSE OP_IF …) in Taproot
    4. All other transaction types: Unchanged

    Rationale:

    • Ordinals/inscriptions use specific patterns in Taproot - we can target those
    • No need to restrict ALL scriptPubKeys to 34 bytes
    • P2PK, bare multisig continue working
    • Pre-signed transactions remain valid
    • Implementation is simpler (pattern matching vs size checking all outputs)

    setzeus commented at 6:00 pm on October 27, 2025:

    what if instead of a hard 43 bytes, we do the following:

    1. OP_RETURN: Limited to 83 bytes (as proposed)
    
    2. Taproot witness data: Limited to reasonable script sizes (~400 bytes?)
    
    3. Ban specific inscription patterns (OP_FALSE OP_IF ...) in Taproot
    
    4. All other transaction types: Unchanged
    

    As @portlandhodl pointed out in his own mailing list post a few weeks back a natural limit for witness data could be 520 bytes since it’s downstream from the max script element size.

    Though NACK on eliminating OP_FALSE & OP_IF. These are fundamental script primitives. Justifying eliminating them because they’re ‘specific inscription patterns’ seems foolhardy since it’s set the precedence that any future storage pattern should also have contributing op codes eliminated.


    dathonohm commented at 8:49 pm on November 11, 2025:

    Invalidates signed but unbroadcast txs with P2PK or bare P2MS outputs (compressed or not). P2PK is currently standard, and so is bare P2MS up to x-of-3.

    If someone can show me a pre-RDTS example of someone actually doing this, I will consider amending the BIP.

  32. ghost commented at 3:25 pm on October 26, 2025: none

    Blocks with a height from (TBD) until and including 987424 are checked with these additional rules:

    New output scriptPubKeys exceeding 34 bytes are invalid, unless the first opcode is OP_RETURN, in which case up to 83 bytes are valid. OP_PUSHDATA* with payloads larger than 256 bytes are invalid, except for the redeemScript push in BIP16 scriptSigs. Spending undefined witness (or Tapleaf) versions (ie, not Witness v0/BIP 141 nor Taproot/BIP 341) is invalid. Witness stacks with a Taproot annex are invalid. Taproot control blocks larger than 257 bytes (a merkle tree with 128 script leaves) are invalid. Tapscripts including OP_SUCCESS* opcodes anywhere (even unexecuted) are invalid. Tapscripts executing the OP_IF or OP_NOTIF instruction (regardless of result) are invalid.

    It is possible to write the motivation, rationale etc. for these proposed changes without legality non sense. That would make it easier for reviewers and reduce the noise in the pull request.

  33. jonatack commented at 3:50 pm on October 26, 2025: member

    When will this be posted to the mailing list as its own thread so it can get greater attention & review?

    I reached out yesterday to suggest this and apparently the post is currently in the ML queue for acceptance/publication.

  34. benthecarman commented at 4:14 pm on October 26, 2025: contributor
    why no limit on witness or tx size?
  35. in bip-????.mediawiki:32 in 3c71823707 outdated
    27+# New output scriptPubKeys exceeding 34 bytes are invalid, unless the first opcode is OP_RETURN, in which case up to 83 bytes are valid.
    28+# OP_PUSHDATA* with payloads larger than 256 bytes are invalid, except for the redeemScript push in BIP16 scriptSigs.
    29+# Spending undefined witness (or Tapleaf) versions (ie, not Witness v0/BIP 141 nor Taproot/BIP 341) is invalid.
    30+# Witness stacks with a Taproot annex are invalid.
    31+# Taproot control blocks larger than 257 bytes (a merkle tree with 128 script leaves) are invalid.
    32+# Tapscripts including OP_SUCCESS* opcodes anywhere (even unexecuted) are invalid.
    


    Rob1Ham commented at 4:37 pm on October 26, 2025:
    This effectively prevents any other soft fork functionality for tap script to occur while this fork is active.
  36. in bip-????.mediawiki:180 in 3c71823707
    175+===Activation===
    176+
    177+Due to the unpredictable nature of the crisis this BIP addresses, we should move to limit on-chain data as quickly and orderly as possible, while being ready to react immediately in case illegal data appears in the chain before the new rules activate.
    178+Thus this BIP presents two parallel methods of activation: the first proactive, the other reactive.
    179+The proactive method involves a flag day activation of the rules, some time in early 2026. If no troublesome content appears in the chain, this BIP will activate smoothly via this proactive method.
    180+If, however, some content appears in the chain that causes significant risks, we can fall back to the reactive method, which is a retroactive chain reorganization to invalidate the offending block (and any subsequent blocks) while immediately activating the new rules.
    


    Jeremy-coding commented at 5:14 pm on October 26, 2025:

    This “reactive method” is essentially a preplanned 51% attack, to initiate at an unknown time and according to very vaguely specified triggers?

    What data can be produced showing miners will actually support or agree to such a chaotic rollback - especially given their history of apathy/unpredictable behaviour around other previous contentious forks?


    Rob1Ham commented at 5:17 pm on October 26, 2025:

    Also - what are the conditions of the “reactive method”? Organizing on something that isn’t block height or BIP-113 MTP is hard to coordinate.

    Are we relying on one person to give the signal to then have the fork enforcement happen at a moments notice?


    kwsantiago commented at 5:35 pm on October 26, 2025:

    This “reactive method” is essentially a preplanned 51% attack, to initiate at an unknown time and according to very vaguely specified triggers?

    This isn’t a 51% attack, it’s an emergency consensus change with historical precedent: examples being the 2010 inflation bug (16 hour rollback) and the 2013 accidental hardfork (5-day reorg). The trigger here isn’t vague, it’s illegal content creating immediate legal liability for node operators (specific block hash would be identified when/if it occurs). The BIP’s existence likely deters such attacks, likely making reactive deployment unnecessary. The proactive path (Feb 2026 flag day) is primary, while reactive is backup if illegal content appears first. The alternative, which is abandoning node operators facing legal jeopardy, is unacceptable.

    what are the conditions of the “reactive method”?

    Reactive activation could trigger when:

    1. Contiguous data >10KB (not steganographic)
    2. Severe legal risk (CSAM being clearest example)
    3. Broad community consensus for reorg observed on mailing lists/social media.

    This is necessarily subjective since this would be a content-based adversarial attack. Objectivity comes from nodes voluntarily choosing to enforce, and no one can force reorganization.


    Jeremy-coding commented at 5:42 pm on October 26, 2025:

    This isn’t a 51% attack, it’s an emergency consensus change with historical precedent

    Potato, PoTAHto. What you believe is an “emergency consensus change” is someone else’s 51% attack. Both require sudden intervention of a coordinated majority of hashrate under chaotic conditions.

    1. Broad community consensus for reorg observed on mailing lists/social media.

    Haven’t altcoin communities been heavily mocked for making use of such “proof of social media” decision making? This seems quite ludicrous for a segment of the BTC community to feel like social-media based polling is ok for determining consensus upgrades (“when we do it, it’s ok/justified/necessary - otherwise it’s centralised shitcoining”).


    kwsantiago commented at 5:48 pm on October 26, 2025:

    Haven’t altcoin communities been heavily mocked for making use of such “proof of social media” decision making? This seems quite ludicrous for a segment of the BTC community to feel like social-media based polling is ok for determining consensus upgrades (“when we do it, it’s ok/justified/necessary - otherwise it’s centralised shitcoining”).

    False equivalence. Altcoins use social consensus for governance decisions (features, monetary policy). This is about coordinating an emergency response to content that’s objectively illegal to possess in virtually all jurisdictions (CSAM). Not “should we add this feature?” but “there’s illegal content creating immediate legal liability, do we respond?”

    The same coordination mechanism was used when the community faced the 2010 inflation bug (IRC/forums) and 2013 chain split (mailing lists). Emergency response always requires rapid coordination, the alternative is paralysis while node operators face prosecution.


    Jeremy-coding commented at 5:53 pm on October 26, 2025:

    Altcoins use social consensus for governance decisions (features, monetary policy). This is about coordinating an emergency response to content that’s objectively illegal to possess in virtually all jurisdictions (CSAM). Not “should we add this feature?” but “there’s illegal content creating immediate legal liability, do we respond?”

    This isn’t a real distinction though. The scope of proposed change would certainly impact on BTC’s “features”. I’m not defending those features, I’m not really a fan of them myself (even the ones for supposedly “legitimate Layer 2s”), but it’s undeniable that this change materially impacts elements of BTC outside of CSAM prevention. BitVM is even mentioned in the document as potentially being affected, no doubt there are others too.

    So really this is proof of social media.


    arejula27 commented at 5:57 pm on October 26, 2025:
    Still none defined ilegal content on bitcoin, it should be at least a clear definition not just “everyone knows what is illegal” because people has different ideologies and ethics.

    dathonohm commented at 10:01 pm on October 26, 2025:
    @Jeremy-coding I think it’s very unlikely that anyone, especially mining pools with large, prominent nodes, will want to stay on the old chain once it activates. Anyone, including mining nodes, is free to stay on the old chain. I just don’t expect that chain to garner much hashpower (nor industry support) once miners understand how much this new rule set lowers their liability with respect to the old chain. @Rob1Ham Indeed, coordinating the reactive method will be difficult. Large mining pools will ideally be paying close attention until this BIP activates, in order to react quickly if needed.

    Jeremy-coding commented at 11:03 pm on October 26, 2025:

    Maybe, maybe not. The history of Bitcoin is littered with chaos over supposedly predictable things - especially when it comes to any kind of fork (let alone an “emergency” one with an extremely short proposal > activation window).

    In the case that the majority of miners ignore this sudden re-org (for their own inscrutable reasons, lack of time to be “properly educated” or whatever), what then? There will be no permanent damage to UTXO holders that are not transacting at the time of the crisis (which could occur at any moment) - but the reflection on BTC’s stability could be considerable. It’s also possible for unfortunate or foolish users to get scammed out of BTC in a variety of ways, ending up on a short-lived withering chain. Surely this kind of change requires not only miner buy-in, but probably also vocal support from exchanges as well - at a minimum?


    bitcoin-eagle commented at 1:00 am on October 27, 2025:

    Not “should we add this feature?”

    This is softfork is confiscatory for taproot scripts.

    Confiscation should have even greater depth of understanding and rationale than adding new features.

    Currently we don’t even know which taproot scripts are subject to confiscation or how much bitcoin is already in taproot addresses that will become unspendable after this softfork


    JackTyler4444 commented at 3:36 am on October 27, 2025:
    This is the same template Canada state used to eventually supercede their charter of rights and freedoms and forcefully shutdown lawful protest-emergency act.

    MarkJelic commented at 11:46 am on October 27, 2025:

    If, however, some content appears in the chain that causes significant risks, we can fall back to the reactive method,

    I have some real concerns about this… Who is going to be watching every transaction, detecting if there is a large Op_Return, and then trying to discern what type of data it is (PDF? JPEG? MP4?) and then making the call that it is reprehensible? That is a LOT of effort and transactions could be missed and still end up on the chain.

    And then…

    the reactive method, which is a retroactive chain reorganization to invalidate the offending block

    I’ll be the first to admit that I am unsure of what this entails in full, but it doesn’t sound easy to do or free of cost. And I’d imagine the longer the offending transaction takes to discover, the larger the re-org will need to be.

    Meanwhile, while the emergency has not been triggered, I would be very nervous to put any transaction on the chain.

    I guess what I’m saying is: Screw this “emergency option”. It causes uncertainty as to how and when it will be activated and if Bitcoin will work during the re-org. I would rather, if the consensus is there, to immediately put it into action. Get it out there. If people are worried about the lockup (confiscation?) of funds for any length of time, then maybe make it shorter than a year… But make it happen ASAP.

    We are all holding our breath and crossing our fingers that this doesn’t happen. I am dead set stressed about it. But let’s not “pray for good luck” before v30 gets too broadly deployed and triggers this by someone happening to find it. Let’s implement immediately (as soon as consensus is reached) so there is less anxiety about it, less work for the “watchers”, and send a clear signal to any bad actors.

  37. in bip-????.mediawiki:25 in 3c71823707
    20+
    21+This document is licensed under the 3-clause BSD license.
    22+
    23+==Specification==
    24+
    25+Blocks with a height from (TBD) until and including 987424 are checked with these additional rules:
    


    kwsantiago commented at 5:16 pm on October 26, 2025:

    May want to add some language along the lines of:

    These rules apply to all transactions equally, regardless of sender, receiver, or content. Enforcement is automatic and content-agnostic.

    This preempts “selective censorship” arguments.

  38. in bip-????.mediawiki:271 in 3c71823707
    266+No.
    267+While it isn't viable to merely continue running old nodes as-is, if users truly wish to reject this softfork (and explicitly endorse forcing other compatible nodes to store and distribute the illegal content in block <TODO:hash>), they can do so simply by checkpointing that block.
    268+
    269+There are certainly practical concerns to take into consideration:
    270+rejecting this softfork may subject you to legal or moral consequences,
    271+or could result in you splitting off to a new altcoin like Bcash.
    


    Jeremy-coding commented at 5:22 pm on October 26, 2025:
    Suggest “Bcash” -> “Bitcoin Cash (BCH)”
  39. in bip-????.mediawiki:71 in 3c71823707 outdated
    63+scriptPubKeys must be stored indefinitely in quick-access memory (often RAM) by all fully validating nodes.
    64+It generally cannot be pruned.
    65+It is also a direct cost to the sender rather than the receiver. For these reasons, modern usage is all 34 bytes or smaller in practice:
    66+actual spending conditions have been moved to the witness, and the scriptPubKey simply commits to them in advance with a hash.
    67+
    68+'''What about OP_RETURN? Why not get rid of it entirely?'''
    


    pinheadmz commented at 5:30 pm on October 26, 2025:

    OPRETURN is a required component of Segregated Witness:

    https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#commitment-structure

  40. in bip-????.mediawiki:86 in 3c71823707
    81+'''Won't spammers just spread their data over multiple fields?'''
    82+
    83+While it is impossible to fully prevent steganography, limiting data sizes ensures such abuses are non-contiguous and obfuscated within another intended meaning (script code, structure, etc).
    84+As far as Bitcoin is concerned, the data has some meaning other than the spammers' misinterpretation, and any external code to "reassemble" the unintended data is responsible for producing it
    85+(it is possible to write code that transforms *any* data into any other data - what matters is that Bitcoin has a well-defined meaning that is distinct from the unsupported one).
    86+This proposal also sends a clear message that data storage abuses in general (legal or otherwise) are unwelcome rather than sanctioned or supported.
    


    thewrlck commented at 5:42 pm on October 26, 2025:
    I’m not convinced that restricting or discouraging non-transactional data is the right approach. While limiting data size may reduce certain abuses, it also constrains legitimate use cases that leverage Bitcoin’s data-carrying capabilities (e.g. commitments, metadata, or novel protocols). From a consensus-layer perspective, Bitcoin should remain neutral about how data is interpreted or used, as long as it follows the defined rules and pays the required fees. Imposing normative judgments about “spam” risks introducing subjective policy where objective validation should suffice.

    BitcoinMechanic commented at 6:13 pm on October 26, 2025:
    It should suffice, but clearly doesn’t.

    thewrlck commented at 6:57 pm on October 26, 2025:
    Consensus validity plus the fee market are the intended mechanisms for resource allocation. If that model now seems insufficient, the problem may not be with neutrality itself, but with participants expecting consensus to enforce policy preferences.

    dathonohm commented at 9:50 pm on October 26, 2025:

    “Neutral interpretation” is the precise risk this BIP mitigates. Bitcoin does not, and should not, support arbitrary data storage for anything larger than 80 bytes (and even this is potentially too much. “Support” for up to 80 bytes in OP_RETURN does not exist because Bitcoin officially supports data storage as a use case; it merely exists in order to prevent more harmful methods of data storage, such as fake pubkeys).

    All non-OP_RETURN data should be officially interpreted as financial data.


    thewrlck commented at 4:55 am on October 27, 2025:

    The claim that only “financial” data should be valid assumes a shared definition of “financial”. A hash pre-image in a covenant, a commitment to an external state, or even a Lightning channel anchor is arguably non-transactional data that still underpins monetary functionality.

    Bitcoin’s strength lies in not having to interpret these distinctions. Neutrality doesn’t endorse arbitrary storage; it avoids turning consensus into a content filter.


    dathonohm commented at 8:44 pm on November 11, 2025:
    My belief is that non-Bitcoin-related data storage will always have more economic demand for block space than payments, so it is necessary to bias towards Bitcoin-related data in order to make sure Bitcoin stays money for the long term. The line is fuzzy, and there is no permanent way to resolve this, so I believe it will always be an ongoing debate. However, it is quite straightforward to periodically prune the most easily abused data-stuffing vectors, which is what the current proposal does.
  41. thewrlck commented at 5:45 pm on October 26, 2025: none
    I don’t think it’s a good idea to outright prevent content or actions that are not 100% certain spam
  42. in bip-????.mediawiki:189 in 3c71823707
    184+
    185+TODO
    186+
    187+===Reactive Deployment===
    188+
    189+'''Doesn't this proposal activate too soon?'''
    


    arejula27 commented at 5:50 pm on October 26, 2025:
    It has deep implications for Tapscript and should be reviewed carefully before merging. Doing things hastily and following predictions from developers without allowing the whole community to analyze the implications is not prudent and should not be done. The BIP does not clearly explain what would happen to current scripts on the chain (as @mononaut pointed out before) or to future Tapscript updates. All implications should be studied and explained to the community instead of trying to quickly propose a soft fork because of developer pressure or perceived urgency

    dathonohm commented at 10:04 pm on October 26, 2025:
    See reply to @mononaut
  43. in bip-????.mediawiki:402 in 3c71823707
    397+
    398+If there is community support for reducing block sizes, it should therefore be done separately and calmly, after the network has settled down.
    399+
    400+'''Why not activate CTV at the same time?'''
    401+
    402+CTV is still controversial with a minority of the community, and bundling it with an emergency softfork could be seen as an attempt to trick/force it on the network.
    


    shocknet-justin commented at 5:54 pm on October 26, 2025:
    This minority comment is backhanded and misleading. CTV has no monetary purpose, it’s only achieves delegation to centralized applications and therefore application stack “Bithereum” use-cases, not monetary ones. The overwhelming majority of the community sees Bitcoin as money, consistent with this BIP.

    Rob1Ham commented at 6:27 pm on October 26, 2025:
    Factually incorrect, as CTV can be used for vaulting.

    BitcoinMechanic commented at 6:36 pm on October 26, 2025:
    CTV certainly has monetary uses.

    shocknet-justin commented at 6:44 pm on October 26, 2025:

    Factually incorrect, as CTV can be used for vaulting.

    Vaults are applications, not money.


    shocknet-justin commented at 6:45 pm on October 26, 2025:

    CTV certainly has monetary uses.

    Not a single one, the entire premise is delegation to apps.


    Rob1Ham commented at 6:46 pm on October 26, 2025:

    Factually incorrect, as CTV can be used for vaulting.

    Vaults are applications, not money.

    In the sense that lightning isn’t money, but an application of money, and that multisig is an application of money doing joint custody, and in that sense the definition isn’t useful at all.


    arejula27 commented at 6:52 pm on October 26, 2025:
    Same es rollups and side chains

    shocknet-justin commented at 6:58 pm on October 26, 2025:

    In the sense that lightning isn’t money, but an application of money, and that multisig is an application of money doing joint custody, and in that sense the definition isn’t useful at all.

    If your implication is that ancient past changes justify any and all future changes that’s a logical fallacy. Lightning and multisig are also not centralized applications requiring delegation, a user with control of their own funds has no use for covenants, they are merely a boundary for remote control.


    Rob1Ham commented at 7:01 pm on October 26, 2025:

    In the sense that lightning isn’t money, but an application of money, and that multisig is an application of money doing joint custody, and in that sense the definition isn’t useful at all.

    If your implication is that ancient past changes justify any and all future changes that’s a logical fallacy. Lightning and multisig are also not centralized applications requiring delegation, a user with control of their own funds has no use for covenants, they are merely a boundary for remote control.

    That also is untrue, as you can be in control of all keys within a CTV vault.


    shocknet-justin commented at 7:07 pm on October 26, 2025:

    That also is untrue, as you can be in control of all keys within a CTV vault.

    The premise of vaults is clawing back unauthorized remote control, which either complicates Bitcoin’s use as payment or the conditions for accepting it as payment also apply to attackers thereby undermining the vault.


    shocknet-justin commented at 7:10 pm on October 26, 2025:

    Same es rollups and side chains

    Centralized apps. Not money.


    dathonohm commented at 10:13 pm on October 26, 2025:
    @shocknet-justin This BIP officially offers no stance on CTV, other than to point out that it appears to be popular, and that if it indeed has consensus, a year from now could be a good time to activate it.
  44. bitcoin deleted a comment on Oct 26, 2025
  45. bitcoin deleted a comment on Oct 26, 2025
  46. jonatack commented at 8:43 pm on October 26, 2025: member

    When will this be posted to the mailing list as its own thread so it can get greater attention & review?

    Hi all, a mailing list post by has been published by the BIP author at https://groups.google.com/g/bitcoindev/c/nOZim6FbuF8.

    Post conceptual feedback and meta-commentary there, and focus here on:

    • expert technical review of the specification
    • specific, concrete, helpful proposals for the other sections

    Please refrain from personal or heated commentary in both venues. I’ve attempted some minor moderation here above.

  47. in bip-????.mediawiki:179 in 3c71823707
    174+
    175+===Activation===
    176+
    177+Due to the unpredictable nature of the crisis this BIP addresses, we should move to limit on-chain data as quickly and orderly as possible, while being ready to react immediately in case illegal data appears in the chain before the new rules activate.
    178+Thus this BIP presents two parallel methods of activation: the first proactive, the other reactive.
    179+The proactive method involves a flag day activation of the rules, some time in early 2026. If no troublesome content appears in the chain, this BIP will activate smoothly via this proactive method.
    


    Ali2kCom commented at 8:47 pm on October 26, 2025:
    I believe that if this softfork is deployed as a Proactive Deployment with a mandatory Flag Day signaling, we would no longer need to worry about the risk of a chain split in the event of a CSAM incident (or any other large data payload abuse).
  48. petertodd commented at 10:25 pm on October 26, 2025: contributor

    NACK

    The fact that transaction txid 8e2ee13d2a19951c2777bb3a54f0cb69a2f76dae8baa954cd86149ed1138cb6c contains the full text of this BIP as of writing, while also being compliant with this BIP shows how utterly ineffective this approach is.

  49. saltduck commented at 11:02 pm on October 26, 2025: none
    Concept ACK
  50. NEEDcreations commented at 11:38 pm on October 26, 2025: none
    Bitcoin is money!
  51. wizkid057 commented at 1:23 am on October 27, 2025: none

    Concept ACK

    The fact that transaction txid […] contains the full text of this BIP as of writing, while also being compliant with this BIP shows how utterly ineffective this approach is.

    By needing to resort to data obfuscated as code vs using the only sanctioned method of data carrying (OP_RETURN) in order to comply with the BIP, you’ve in fact actually just proven that the BIP can be completely effective at mitigating the outlined risks. So, thanks for proving that point for everyone.

  52. bitcoin-eagle commented at 1:26 am on October 27, 2025: none
    NACK confiscatory for existing taproot addresses
  53. Rob1Ham commented at 1:38 am on October 27, 2025: none
    I’ve run some initial tests, the miniscript compiler will use OP_IF and OP_NOTIF for taproot descriptors if you don’t break it out spending conditions into specific tapleafs explicitly, so this would be freezing those funds on chain (or confiscating if this was extended indefinitely).
  54. Rob1Ham commented at 1:40 am on October 27, 2025: none

    Concept ACK

    The fact that transaction txid […] contains the full text of this BIP as of writing, while also being compliant with this BIP shows how utterly ineffective this approach is.

    By needing to resort to data obfuscated as code vs using the only sanctioned method of data carrying (OP_RETURN) in order to comply with the BIP, you’ve in fact actually just proven that the BIP can be completely effective at mitigating the outlined risks. So, thanks for proving that point for everyone.

    If that was the point, the proposed soft fork would only be narrowly limiting to OP_RETURN, and not MAST and OP_IF.

  55. wizkid057 commented at 1:55 am on October 27, 2025: none

    If that was the point, the proposed soft fork would only be narrowly limiting to OP_RETURN, and not MAST and OP_IF.

    It’s one point of many.

    Addressing simple low hanging fruit currently exploited or that could obviously be exploited makes perfect sense for a soft fork intended to limit arbitrary data.


    To be clear as well, there is no confiscation risk here at all. At worst there is a potential inconvenience risk to some outlier edge cases that may or may not exist. But as a temporary soft fork those issues can be addressed without the need to hard fork to refine these changes.

  56. kwsantiago commented at 1:59 am on October 27, 2025: none

    I’ve run some initial tests, the miniscript compiler will use OP_IF and OP_NOTIF for taproot descriptors if you don’t break it out spending conditions into specific tapleafs explicitly, so this would be freezing those funds on chain (or confiscating if this was extended indefinitely). @Rob1Ham Important finding. Can you share which miniscript implementations and provide example descriptor/s that generates OP_IF/OP_NOTIF?

    Two possible solutions:

    1. Pre-activation UTXO exemption (which could also be used for the taproot control block issue where coins can become unspendable)
    2. Narrow restriction to OP_IF with unexecuted push data >256 bytes (targets spam, not legitimate branching)
  57. Rob1Ham commented at 2:06 am on October 27, 2025: none

    I’ve run some initial tests, the miniscript compiler will use OP_IF and OP_NOTIF for taproot descriptors if you don’t break it out spending conditions into specific tapleafs explicitly, so this would be freezing those funds on chain (or confiscating if this was extended indefinitely).

    @Rob1Ham Important finding. Can you share which miniscript implementations and provide example descriptor/s that generates OP_IF/OP_NOTIF?

    Two possible solutions:

    1. Pre-activation UTXO exemption (which could also be used for the taproot control block issue where coins can become unspendable)

    2. Narrow restriction to OP_IF with unexecuted push data >256 bytes (targets spam, not legitimate branching)

    Miniscript as is will use fragments that leverage OP_IF/OP_NOTIF if you don’t break out each spending conditions (where you’d use an OR) into a separate leaf.

    If you declare each spending condition to be its own tap leaf, it won’t use OP_IF/OP_NOTIF (from my limited testing, reviewing the rust-miniscript compiler would determine if they do appear with tap script).

  58. OpenSauce21 commented at 4:16 am on October 27, 2025: none

    NACK. This proposal provides an economic incentive for on chain CSAM.

    A bad actor who wants to conduct a double spend attack, could put CSAM on chain to cause a re-org and succeed with the attack.

  59. BitcoinMechanic commented at 9:17 am on October 27, 2025: none

    I think the language needs work.

    The original draft offered by Luke assumed a post-hoc fixing of a block containing untenable content which this BIP does not offer as the preferred approach thereby making the multiple references to legal implications needlessly inflammatory.

    Therefore I suggest removing them so that we can focus on technical concerns around what these new rules would limit - of which there are a couple but are getting drowned out.

    Certainly for me the benefit of reducing arbitrary data is that it makes Bitcoin a more efficient monetary system and helps preserve decentralization of nodes so this BIP makes sense on that basis alone.

  60. BullishNode commented at 11:51 am on October 27, 2025: none

    The following are unrelated to the stated motivation of the BIP (and its sense of urgency) which is to address potential issues from OP_RETURN relay policy changes introduced in Bitcoin Core 30

    • Spending undefined witness (or Tapleaf) versions (ie, not Witness v0/BIP 141 nor Taproot/BIP 341) is invalid.
    • Witness stacks with a Taproot annex are invalid.
    • Taproot control blocks larger than 257 bytes (a merkle tree with 128 script leaves) are invalid.
    • Tapscripts including OP_SUCCESS* opcodes anywhere (even unexecuted) are invalid.
    • Tapscripts executing the OP_IF or OP_NOTIF instruction (regardless of result) are invalid.
  61. MarkJelic commented at 11:59 am on October 27, 2025: none

    The fact that transaction txid 8e2ee13d2a19951c2777bb3a54f0cb69a2f76dae8baa954cd86149ed1138cb6c contains

    Does it? I followed that link to the transaction on Mempool. I can’t see anything other than a lot of inputs into a transaction and it costing $110… How can I see what you are claiming?

  62. MarkJelic commented at 12:01 pm on October 27, 2025: none

    A bad actor who wants to conduct a double spend attack, could put CSAM on chain to cause a re-org and succeed with the attack.

    If this is the case, then I suggest to implement this ASAP, rather than give a bad actor the ability to plan the attack.

  63. MarkJelic commented at 12:09 pm on October 27, 2025: none

    Concept ACK

    However, if the Code consensus approved, I suggest deployment immediately, rather than watching (and possibly missing) and waiting for an attack that could well be co-ordinated with a double-spend, in anticipation of the “reactive deployment”. If the code is sound, deploy ASAP.

  64. ArmchairCryptologist commented at 12:57 pm on October 27, 2025: none

    Does it? I followed that link to the transaction on Mempool. I can’t see anything other than a lot of inputs into a transaction and it costing $110… How can I see what you are claiming?

    That’s the point, isn’t it? This is exactly how the theorized CSAM and any other “illegal data” would look on the blockchain, no matter if it’s encoded in an OP_RETURN, or multiple OP_RETURNs, or in the witness using the OP_FALSE OP_IF trick, or in the 20-of-20 tapscript multisig theorized by Anthony Towns on the mailing list which supposedly is more effective than OP_RETURN but indistinguishable from a “real” tapscript multisig, or any of the other of the myriad of ways you could possibly encode data into a transaction.

    You can block some of them, but it is literally impossible to block all of them. And crucially, no matter the method used to encode the data, you would always need some sort of viewer that knows how to assemble and present the data - the only difference is how complicated it would be to reassemble. And without said viewer, you cannot generally be be said to “possess” the data legally.

    Fun fact: for any randomly generated data, there exists a decryption algorithm and a decryption key to turn it into literally any data you want. Simplistic example: XOR-based “encryption” with an “encryption key” that is just the random data XOR’ed with the data you want to turn it into.

  65. OpenSauce21 commented at 1:10 pm on October 27, 2025: none

    A bad actor who wants to conduct a double spend attack, could put CSAM on chain to cause a re-org and succeed with the attack.

    If this is the case, then I suggest to implement this ASAP, rather than give a bad actor the ability to plan the attack.

    Can you explain how implementing now would stop that from happening?

    Also the problem goes beyond the one hypothetical attacker. Anyone that transacted in blocks that get re-orged can also double-spend their transaction with RBF, not just the attacker.

  66. MarkJelic commented at 1:36 pm on October 27, 2025: none

    Can you explain how implementing now would stop that from happening?

    As I have stated, I cannot review the Code itself. But assuming the Code works as intended, without any detriment… Then doesn’t implementing it immediately remove any uncertainty as to how the chain is being constructed from that point forward? Am I missing something?

    Also the problem goes beyond the one hypothetical attacker. Anyone that transacted in blocks that get re-orged can also double-spend their transaction with RBF, not just the attacker.

    Agreed. And hence it is best to just make it Go Live immediately (assuming Code is good) rather than waiting for some objectionable material to surface and hoping it gets detected/caught quickly.

  67. OpenSauce21 commented at 1:45 pm on October 27, 2025: none

    Can you explain how implementing now would stop that from happening?

    As I have stated, I cannot review the Code itself. But assuming the Code works as intended, without any detriment… Then doesn’t implementing it immediately remove any uncertainty as to how the chain is being constructed from that point forward? Am I missing something?

    Also the problem goes beyond the one hypothetical attacker. Anyone that transacted in blocks that get re-orged can also double-spend their transaction with RBF, not just the attacker.

    Agreed. And hence it is best to just make it Go Live immediately (assuming Code is good) rather than waiting for some objectionable material to surface and hoping it gets detected/caught quickly.

    The detriment comes from the proposal itself. There is currently no economic incentive to put illegal material on chain. Activating this would change that. So i’m not sure how activating immediately would address this. Again this creates a much larger surface area than a single attacker(anyone who transacts in the re-org block).

  68. Rob1Ham commented at 1:52 pm on October 27, 2025: none

    Why does this request not block P2PK & P2MS for future spends?

    Putting data in raw pubkeys using these payment methods is the most harmful way of embedding arbitrary data by bloating the utxo set.

  69. in bip-????.mediawiki:220 in 3c71823707 outdated
    393+'''Why not reduce the block weight/size limit too?'''
    394+
    395+It is possible this softfork may activate before miners have fully upgraded.
    396+To ensure continuity of Bitcoin through a potentially low-hashrate period, we must assume there's a possibility of each block taking 10 times as long as intended (ie, ~2 hours per block), which would mean 4 MWU per block would be a mere 333 kWU per 10 minutes.
    397+
    398+If there is community support for reducing block sizes, it should therefore be done separately and calmly, after the network has settled down.
    


    kevkevinpal commented at 2:24 pm on October 27, 2025:

    I think the wording at the end is fairly subjective. And the community can still fork not calmly, and if the network has not settled down.

    0If there is community support for reducing block sizes, it should therefore be done separately.
    
  70. BitcoinErrorLog commented at 2:47 pm on October 27, 2025: contributor

    NACK

    I move to remove this BIP from consideration due to breaking the user space, explicitly requiring a hard fork, being obviously contentious, being anti-consensus, and being entirely motivated by subjective and speculative predictions about how uninvolved entities may behave outside of the protocol.

    BIPs are for specifying methods of applying Bitcoin and adding rules to its protocol afaik. This BIP, and Ocean’s efforts, are about disrupting Core, bringing attention to the Ocean team, and legitimizing a need for regulation on miners.

    If it doesn’t already exist, BIP reviewers should be obligated to define & enforce policies that reject BIPs that are toxic, without alienating BIPs that are merely unpopular.

    I am not convinced that anyone here cares about spam or lawyers, or that there is a spam problem at all.

    If they want a hard fork, they can also hard fork this BIP repo for their new blockchain and stay out of this one.

    Please close this, thank you for your patience and work.

  71. in bip-????.mediawiki:3 in 3c71823707 outdated
    0@@ -0,0 +1,437 @@
    1+<pre>
    2+  BIP: ?
    3+  Layer: Consensus (soft fork)
    


    BitcoinErrorLog commented at 2:52 pm on October 27, 2025:
    Adding then removing rules requires a hard fork.

    Rob1Ham commented at 2:55 pm on October 27, 2025:

    I think technically, to have a soft fork with a predetermined height for how long it is active is a soft fork. Because the loosening of the rules are predefined in the tightning of the rules aspect of the BIP.

    That said, any soft fork activated during this ~1 year window this BIP would be active using an OP_SUCCESS, the annex, larger op_returns, or tap trees larger than 128 leaves during this window WOULD be a HARD fork when they would otherwise be a soft fork.


    BitcoinErrorLog commented at 6:07 pm on October 27, 2025:

    A soft fork narrows the valid block set (S -> S′). Reverting back expands it (S′ -> S). Expansions are hard forks. It doesn’t matter if the expansion is predefined. Consensus isn’t about intentions in a BIP, it’s about what nodes actually enforce at that time.

    Once the temporary rules are active, nodes are validating under S′. When the window ends, those same nodes will reject blocks valid under S unless they upgrade. That’s coordination risk, and a hard fork in practice.

    Consensus changes are economic not semantic. The market decides what’s valid. Any rule that requires synchronized expiry or scheduled reversal is governance, not consensus.

    So … adding rules is a soft fork. Removing them later is a hard fork.


    Rob1Ham commented at 9:01 pm on October 27, 2025:
    We’re both just speculating as to what nodes would actually do because there is no code yet. The implementation of how this is enforced indeed would be important to understand ultimately if it is actually a soft or hard fork.

    gmaxwell commented at 9:04 pm on October 27, 2025:

    @BitcoinErrorLog I think right in your conclusion that the proposal isn’t well considered or constructed. But it does appear to limit its scope “Blocks with a height from (TBD) until and including 987424 are checked with these additional rules”.

    This means that if blocks past 987424 don’t apply those rules they will be accepted by this proposal. In effect it is never ‘removed’ but becomes inactive. And so it isn’t a relaxing of a rule but a limitation on scope of the rule, temporally.

    Of course, without an implementation there is uncertainty in what an implementation actually would do– perhaps there is another way to read the text.


    remcoros commented at 12:26 pm on November 9, 2025:
    I agree with @BitcoinErrorLog here. Having also looked at the implementation, now that it is available. Relying on a BIP and/or code that deactivates restrictions in the future, even when bundled with the activation code, puts trust in what clients are actually running in the network. How do I know, for sure, that the deactivation of these rules are actually enforced in the future? By watching clark moody dashboard to see if everyone is on a client that enforces the deactivation in the future?

    dathonohm commented at 4:05 pm on November 9, 2025:
    I don’t think that’s an issue, for the same reason I don’t think it’s likely that miners would suddenly stop enforcing the rules of a softfork once the softfork chain becomes longer than the non-softfork chain. Consensus is the path of least resistance.
  72. in bip-????.mediawiki:4 in 3c71823707 outdated
    0@@ -0,0 +1,437 @@
    1+<pre>
    2+  BIP: ?
    3+  Layer: Consensus (soft fork)
    4+  Title: Reduced Data Temporary Softfork
    


    BitcoinErrorLog commented at 2:52 pm on October 27, 2025:
    Temporary Soft Fork AND Hard Fork
  73. in bip-????.mediawiki:37 in 3c71823707
    32+# Tapscripts including OP_SUCCESS* opcodes anywhere (even unexecuted) are invalid.
    33+# Tapscripts executing the OP_IF or OP_NOTIF instruction (regardless of result) are invalid.
    34+
    35+==Motivation==
    36+
    37+The recent release of Bitcoin Core 30 presents a severe threat to Bitcoin's viability.
    


    BitcoinErrorLog commented at 2:57 pm on October 27, 2025:
    Subjective judgements are off-topic to BIP specifications, particularly lacking evidence. There is no consensus this is true. Fallacious.

    v4v2 commented at 6:56 pm on October 27, 2025:

    It is not subjective judgment because it can be logically deduced by analyzing the statement:

    • “release of Bitcoin Core 30”. What this release does? Expand default settings in such way that it makes it easier to include large arbitrary data in a transaction output.
    • “Bitcoin’s viability”: What is it? It means the set of factors that make Bitcoin viable to exist. For example, if Bitcoin had a rule that require mines to be mined every 10 seconds instead of 10 minutes, this would lead to extreme network requirements for nodes to be synced and make it not a viable peer-to-peer decentralized system. Therefore, anything that makes it harder for the p2p system to exist (such as rules that make the network unstable, or that make it harder to run a node, or harder for nodes to sync) makes it less viable.
    • “threat to Bitcoin’s viability”: What is this? It is any factor that will contribute to make the Bitcoin network less viable, as discussed in previous item.

    The release of Bitcoin Core 30 introduces default settings which facilitate the insertion of arbitrary content in transaction outputs, which makes it more likely that such content will occur and consequently increasing the blockchain size with non-financial data, which puts more storage requirements for node runners, more time for the node to validate the blocks, and more network requirements. Besides, it also adds legal risks for some (not all) node runners that could be legally pressured or prevented to run a node. It also introduces the potential for mining pools to actively monitor and asses content of transactions, which may eventually be used as an opportunity for governments to try to force mining pool organizations under their control to censor any sort of transaction. All of this contributes to make Bitcoin less viable.

    Thus, one can only conclude that “release of Bitcoin Core 30 presents a severe threat to Bitcoin’s viability” is an objective statement and not subjective interpretation. No one is saying “this is good or this is bad”. It says the release introduces threat for the Bitcoin system to become viable, which some may think “this is actually good” and others may think “this is bad”, but it does not change the fact the statement itself is objectively accurate.


    gmaxwell commented at 9:12 pm on October 27, 2025:

    If it’s an objective statement– it’s simply a false one. As during the discussion about increasing the op_return default many people demonstrated that it was trivial to get such op_returns mined already as major miners had already removed the limit (and many such examples can be found in the blockchain too). E.g. https://blockstream.info/tx/3183bd6ceebc2d39c0a3cfa0d06eb84d1161eaac1c26605e2eab62bfe48c1420

    BIPs should not contain known falsehoods either, so arguing that it’s fact not opinion here. I don’t think it’s reasonably disputable that it was trivial to get larger op_returns mined before Bitcoin Core did anything. The project’s actions were a reaction to a reality that had already changed.

    A document doesn’t need to list its authors or proponents every thought on the subject, and a successful document will avoid dubious or controversial claims unless they’re absolutely acceptable. If someone wants to write an opinion piece one the subject– even one with dubious claims– they should feel free to do so on their blog… but not in a BIP.

  74. NoSandMan commented at 3:30 pm on October 27, 2025: none

    There is no code.

    Concept ACK

    However, if the Code consensus approved, I suggest deployment immediately, rather than watching (and possibly missing) and waiting for an attack that could well be co-ordinated with a double-spend, in anticipation of the “reactive deployment”. If the code is sound, deploy ASAP.

  75. ThymeKeeper commented at 3:32 pm on October 27, 2025: none

    Economic Sustainability Concern: Risk of Reigniting Blocksize Debate Beyond the legal considerations, there’s an underappreciated economic risk to allowing unrestricted OP_RETURN data that warrants discussion:

    The Mechanism:

    • Large OP_RETURN transactions (up to 100KB post-v30) consume significant block weight
    • At current adoption rates, even modest inscription activity can fill blocks (we’ve seen 90%+ of block space consumed by inscriptions during peaks)
    • This creates persistent mempool congestion, driving fee rates from 1-5 sat/vB to 50-200+ sat/vB
    • Legitimate monetary transactions, especially lower-value transfers, become economically unfeasible

    The Systemic Risk: When monetary use cases are consistently priced out by data storage, we face the exact conditions that triggered the 2015-2017 blocksize war:

    • Users demanding larger blocks to reduce fees
    • Businesses threatening to fork if capacity isn’t increased
    • The fundamental question of “what is Bitcoin for” becomes existential rather than philosophical

    Empirical Evidence:

    • During Ordinals peaks in 2023, median fees reached 400+ sat/vB
    • Payment processors reported 60-80% reduction in Bitcoin payment volume during high-fee periods
    • Multiple businesses publicly called for “Bitcoin scaling solutions” - eerily similar to 2016 rhetoric

    Why This Matters for BIP-444/PR-2017: This temporary restriction serves as a circuit breaker, preventing the fee market from reaching levels that historically triggered governance crises. By maintaining block space primarily for monetary transactions (even temporarily), we:

    • Preserve Bitcoin’s primary use case accessibility
    • Prevent conditions that lead to emergency blocksize increase proposals
    • Buy time to develop proper consensus on data storage standards

    The alternative: unrestricted data storage leading to another contentious scaling debate - poses a greater threat to network stability than this temporary restriction.

    Suggested Addition to Rationale: Consider adding to the BIP text: “This proposal also serves to prevent fee market conditions that historically led to contentious scaling debates, maintaining network stability while long-term data storage standards are developed.”

  76. in bip-????.mediawiki:433 in 3c71823707
    428+
    429+We propose a flag day startheight of 934864 (2026-02-01), with mandatory signaling leading up to activation. This implies an expiry day stopheight of 987424 (2027-02-01). These heights were extrapolated from block 920464 which occurred near 00:00 UTC on 2025-10-24.
    430+
    431+===Reactive===
    432+
    433+We propose, in the event of an emergency, for miners to reject the offending block and immediately activate the new rules. In this case the new rules are effective on the very next block confirmed at the same height as the rejected block, and the soft fork expires at the same height as in the proactive case; that is, block 987424.
    


    onyxcoyote commented at 5:23 pm on October 27, 2025:

    Reactive - This means it would “activate and enforce”, correct?

    I think the emergency activation is very risky. To simplify, I actually suggest removing that as an activation path. But if you don’t prefer that, here are some additional questions and comments.

    1. A time frame will certainly exist where some miners would be running the software, but not a majority. a. Is there a minimum block height for this emergency activation? Or a signaling for readiness to enforce?
      b. Offending block identification would be done manually or in code? I assume in code because I can’t think of a way to make it work otherwise. c. How would an offending block be identified in code? How to ensure everyone is running the same rules identifying the offending trigger block?

    2. Need a mitigation for someone intentionally triggering the emergency activation, either to do so before it’s ready (minority of hashrate) to cause a hard fork/general chaos, or to trigger it at a specific time in order to double spend.

    3. What would the end block height be in case of emergency activation?


    dathonohm commented at 8:54 pm on November 11, 2025:
    The reactive deployment method is now removed from the BIP.
  77. jonatack commented at 5:30 pm on October 27, 2025: member

    As appended to the PR description and stated in #2017 (comment), please post conceptual feedback and meta-commentary to the mailing list thread, and focus here on:

    • expert technical review of the specification
    • specific, concrete, helpful proposals for the other sections

    Please consider beforehand whether a new comment will add signal or noise to the discussion – thank you.

  78. maxpaxdownlow commented at 5:31 pm on October 27, 2025: none

    Why don’t we just quickly soft fork to disallow large OP_RETURN outputs (i.e. keep them capped to 80 bytes) only, with forward-looking activation (no retroactive block invalidation)? This would give the market a clear and simple way to decide whether such transactions are acceptable or not. It wouldn’t have any of the issues mentioned so far in the discussion like creating an incentive to put CSAM or other illegal content to attempt a reorg double spend due to the complex deployment mechanism proposed in BIP-444 or like putting in jeopardy existing Taproot functionality by touching other primitives. We don’t actually need to remove all the mechanisms that can be used for embedding data (which has been demonstrated to be impossible). Rather what we need is to give users the opportunity to signal whether arbitrary data is welcome or not.

    If the legal concerns are compelling enough to warrant consensus changes, miners should support a clean soft fork immediately. If the market quickly adopts the new consensus-level OP_RETURN restrictions it would announce sufficiently clearly to the world that arbitrary data is not welcome and deter future attempts to bring that to Bitcoin by showing the network’s readiness to resist such efforts. I believe that this PR is too dramatic and needlessly complicated for what we need: letting the market decide whether to accept or reject the explicit invitation for arbitrary data storage that Core v30 has created. Technical changes should be limited to this question only and simple enough for people to make a decision without being distracted or overwhelmed by adjacent issues.

  79. ThymeKeeper commented at 5:57 pm on October 27, 2025: none

    @BitcoinErrorLog

    I move to remove this BIP from consideration due to breaking the user space, explicitly requiring a hard fork, being obviously contentious, being anti-consensus, and being entirely motivated by subjective and speculative predictions about how uninvolved entities may behave outside of the protocol.

    BIPs are for specifying methods of applying Bitcoin and adding rules to its protocol afaik. This BIP, and Ocean’s efforts, are about disrupting Core, bringing attention to the Ocean team, and legitimizing a need for regulation on miners.

    If it doesn’t already exist, BIP reviewers should be obligated to define & enforce policies that reject BIPs that are toxic, without alienating BIPs that are merely unpopular.

    I am not convinced that anyone here cares about spam or lawyers, or that there is a spam problem at all.

    If they want a hard fork, they can also hard fork this BIP repo for their new blockchain and stay out of this one.

    Please close this, thank you for your patience and work.

    I respectfully disagree:

    Technical Corrections

    1. “explicitly requiring a hard fork” - This is factually incorrect. This is explicitly a SOFT fork. Old nodes continue to validate the chain. This is clearly stated in the proposal.

    2. “breaking the user space” - While there are valid concerns about P2PK transactions, calling this “breaking user space” overstates the issue. P2PK represents <0.1% of current transactions.

    On the Spam Problem:

    “I am not convinced… there is a spam problem at all”

    Empirical data disagrees:

    • December 2023: Inscriptions consumed 85% of block space
    • Fee spikes to 400+ sat/vB pricing out payments
    • 300GB+ of blockchain growth in 2024 alone
    • Median transaction fees increased 10x during inscription waves

    On Motivations:

    “entirely motivated by subjective and speculative predictions”

    The economic risks are neither subjective nor speculative:

    • We’ve already seen payment processors disable Bitcoin during high fees
    • The 2017 blocksize war was triggered by similar fee conditions
    • If monetary transactions are consistently priced out, we risk another scaling crisis

    The motivation is preservation of Bitcoin’s utility as money, not disruption.

    On Being “Anti-Consensus”:

    Exploring solutions to contentious issues IS the consensus process. BIPs exist precisely to discuss difficult trade-offs:

    • BIP-91/141/148 were all contentious but necessary discussions
    • Technical debate ≠ anti-consensus
    • Dismissing concerns without engaging the merits is what breaks consensus

    Constructive Path Forward:

    The question isn’t whether there’s a problem, but what solution best preserves Bitcoin’s properties.

    Claiming this is about “bringing attention to Ocean” or “legitimizing regulation” is ad hominem that avoids engaging with the actual technical and economic issues raised.

    Bitcoin has always had difficult debates about resource consumption (CPU, bandwidth, storage, UTXO set). This is another such debate. Dismissing it as “toxic” doesn’t make the underlying issue disappear.

    Can we focus on the technical merits rather than speculating about motivations?

  80. in bip-????.mediawiki:133 in 3c71823707 outdated
    125+
    126+OP_IF/OP_NOTIF originated in pre-Taproot Bitcoin script language as a way to execute different subscripts based on a condition.
    127+With Taproot, the conditions can instead be evaluated off-chain, revealing only the intended verification execution path.
    128+Furthermore, when the conditions are met, the intent is that the keypath spend path should be used instead, avoiding publishing any scripts at all.
    129+
    130+OP_IF is not only redundant for Tapscript, it is also commonly abused today to inject spam that gets skipped at execution.
    


    setzeus commented at 6:10 pm on October 27, 2025:
    Neutral on the redundancy argument (it’s unclear to me that there are strictly zero monetary reasons to publish the conditional when spent) but this second argument seems particularly dangerous as it suggests that any op_code seen as a storage method protocol in the future is up for elimination?

    dathonohm commented at 8:52 pm on November 11, 2025:
    Yes, disabling OP_IF in Tapscript involves tradeoffs. The benefits most likely outweigh the risks. Happy to be proven wrong if someone demonstrates actual instances of pre-RDTS usage.

    Rob1Ham commented at 8:58 pm on November 11, 2025:
    The burden is on you who is looking to change consensus. Liana wallet has already said they use OP_IF/NOTIF in their taproot descriptors.

    dathonohm commented at 10:22 pm on November 11, 2025:
    @Rob1Ham pre-confirmed UTXOs are exempt. Are you claiming they are using pre-signed transactions with OP_IF?
  81. BitcoinErrorLog commented at 6:14 pm on October 27, 2025: contributor
    I also move to moderate replies that are ai slop.
  82. in bip-????.mediawiki:429 in 3c71823707
    424+
    425+As mentioned above, there will be two activation methods deployed in parallel: proactive, and reactive.
    426+
    427+===Proactive===
    428+
    429+We propose a flag day startheight of 934864 (2026-02-01), with mandatory signaling leading up to activation. This implies an expiry day stopheight of 987424 (2027-02-01). These heights were extrapolated from block 920464 which occurred near 00:00 UTC on 2025-10-24.
    


    onyxcoyote commented at 6:14 pm on October 27, 2025:

    Proactive -

    As of right now, I would say there is high risk of loss of funds related to the activation path.

    Activation is challenging, but also crucially important to get it right. The intention of my comments are to try to get this to a state where I could say there is zero risk of loss of funds.

    1. Mandatory signaling. I suggest removing the mandatory part of the signaling (which would eliminate over half of my concerns), but if you don’t prefer that for your PR, here are some questions or comments related to that a. is this a 2 step process with activation and enforcement happening at 2 different blockheights? I assume mandatory means enforcement occurs whether or not signaling is in place? b. The mandatory nature of it assumes that a supermajority of hashrate would be running the update by the enforcement date, correct? c. If it’s assumed a supermajority would be running the update (and if we’re wrong anyone running the update would be forked off). If we are confident about it, does it need to be mandatory, or could it just rely on signaling? d. Or alternatively, why have signaling at all if it is mandatory? e. Do you have a reasonable belief that a supermajority of miners will choose to run the software (considering they would be forked off and lose money if they are running the software, but a majority is not)? I.e. a letter from a majority of hashrate in support of the proposal, or at least stating that they will acquiesce. Have there already been discussions? Doing a mandatory enforcement without hearing some input from big hashrate seems risky to the point of being a non-starter. f. Is a majority of hashrate in agreement with the timeline? Do they have enough time to make code updates and do sufficient testing (since it seems many of them run custom software, they would need to integrate this)? g. Is a majority of hashrate in agreement with the specific rules to enforce. If there is any difference in rules, activation block height, end block height, it’s almost a guaranteed accidental hard fork.

    2. General hard fork concern. a. What mitigations are there if node runners start running the software and enforce, but miners do not enforce. It is not reasonable to assume 100% of noderunners who update would be able to roll back the software. They would be at high risk of losing funds a chain split. b. The more complex the rules for data reduction, the more risky the activation is. I have some general questions about the rules: what percentage of transactions would be excluded by the new rules? What percent of fees would be excluded by the new rules? Which major protocols would be affected?

    3. Temporary I understand the reasoning behind making the rules temporary, but I think it actually increases the risk in some ways - additional coordination and testing needed before the update is released. The block start and block end numbers can’t be change after it’s released. A few options might be to either only make rules which have a very high likelihood to have no impact (or have some other benefit like portlandhodl’s DOS block) and just make the changes permanent, or to push for opt-in activation by miners but not enforcement, and no enforcement by noderunners.

    4. Noderunner pre-emptive update Something to consider is if a noderunner updates the software too early, like a pre-release version of the code or something like that, and started enforcing before the rest of the network/miners, they would end up forking themselves off. There are some mitigations that could be done for this but I wanted to mention it just to try to reduce any source of risk.

    5. A little game theory. a. The safest approach for miners would be to either do nothing, or activate but not enforce. Doing nothing reduces the risk of being “the first to jump off a bridge”; why not just wait until everyone else has done it first. Activating without enforcing could lose some income (omitting some transactions), but would not introduce a hard fork risk for them or the network. Enforcing, especially being the first 49% to enforce, there is a fork risk for themselves and for the network. b. Noderunners however, can only either enforce or not. They don’t get the activation choice since they aren’t putting the block together. The safest thing for noderunners would be to not update (not enforce). If miners enforce, everything is good. If miners don’t enforce, they are still good. Whereas if a noderunner runs the update (to enforce) and miners don’t enforce, noderunners would lose money. Or even if miners did enforce and then had to rollback due to a bug or major breakage, again noderunners running the update would lose money.

    Let me know if I’m off base on my assumptions or fork understandings here.


    dathonohm commented at 11:50 pm on November 11, 2025:
    The activation is not nailed down yet. I will update soon.
  83. DimiH2025 commented at 6:24 pm on October 27, 2025: none

    I ACK this proposal.

    There is some nuance needed and which needs to be added. More in-depth review on what “services” can be impacted by (re-)imposing hard limits on consensus level (in regards to OP_RETURN) and what the other proposed limitations can lead to.

    ACK on it being mainly about anti-spam measures and its intent being temporary. Spam is an issue. Time to come clean and keep Bitcoin as a pure monetary system as intended.


    Edit 9/11/2025 now that code is available and the BIP updated.

    • Main concern of possible confiscated coins looks addressed and corrected. Full ACK on my part.

    Seeing plenty of people talking about possible hardfork with deactivation. –> Not seeing that happen as the majority of nodes still maintaining established “old” limits from before Core V30. –> Only hard fork I see occurring are those nodes who keep OP_RETURN uncapped…. which I do not find worrisome due to being a marginal minority.

  84. TheYOLOSpirit commented at 6:32 pm on October 27, 2025: none

    I think a temporary fork is a bad idea; Bitcoin consensus changes should be as slow and with as little risk as possible. I think there is too much changes in this proposition. I also think that the “Reactive” deployment make no sense. I would support a final and decisive UASF that limit only OP_RETURN ScriptPubKey to 83 bytes to begin with. Bitcoin is about consensus. If this simple consensus change is adopted, then it signal to developers that arbitrary data is not welcome to Bitcoin. Further UASFs could be adopted later on if necessary. This would end the controversy about Core change and bring the community together instead of split it in 2 by going too far on the restriction side.

    This would solves the arguments of Core about block propagations while preventing spam and preserving an healthy UTXO set. It would demonstrate that the Bitcoin community is still active and it would be a step towards optimizing Bitcoin as Peer-to-Peer Electronic Cash in respect to Satoshi.

  85. in bip-????.mediawiki:2 in 3c71823707 outdated
    0@@ -0,0 +1,437 @@
    1+<pre>
    2+  BIP: ?
    


    thesheepcat commented at 7:41 pm on October 27, 2025:

    Why are you wasting your time here while you could be investing your time running K , The decentralized social network based on PoW network (https://github.com/thesheepcat/K)?

    a hug.

  86. gmaxwell commented at 8:18 pm on October 27, 2025: contributor

    I’m concerned about this PR. I’ve been told by someone present at recent closed room meetings that this PR is being tendered on behalf of Ocean Mining but that they’ve used another account to conceal their involvement. In a further conflict of interests, luke-jr now proports to have assigned it a BIP number entirely out of process and is gunning for some emergency merge.

    Directed more squarely to its subject: The PR message makes numerous unambiguously false claims such as asserting that it had no opposition when it does. (just to give a few examples note the posts pointing to the confiscatory treatment of presigned transactions, and the posts demonstrating the ineffectiveness of the proposal at the goal of preventing data embedding).

    Legal representatives associated with ocean are now also contacting and acting coersively towards other miners and using the false claims on this PR as backing “information” for their claims. As such I believe leaving this PR open is contributing to fraudulent claims and conduct, and it should be promptly closed. Discussion can obviously continue on the list.

  87. kanzure commented at 8:39 pm on October 27, 2025: contributor
    @luke-jr, would you please close this pull request for now? I would do it myself but I think closing the pull request would be more meaningful to the bitcoin community if you did it & this action would give time for the proponents of this proposal to revise (or collaborate on other ideas) in response to the discovery of the abovementioned technical issues and other problems with BIP PR 2017. Thanks!
  88. onyxcoyote commented at 8:41 pm on October 27, 2025: none
    Added some comments and questions about activation risk.
  89. in bip-????.mediawiki:28 in 3c71823707 outdated
    23+==Specification==
    24+
    25+Blocks with a height from (TBD) until and including 987424 are checked with these additional rules:
    26+
    27+# New output scriptPubKeys exceeding 34 bytes are invalid, unless the first opcode is OP_RETURN, in which case up to 83 bytes are valid.
    28+# OP_PUSHDATA* with payloads larger than 256 bytes are invalid, except for the redeemScript push in BIP16 scriptSigs.
    


    lifofifoX commented at 8:49 pm on October 27, 2025:

    It’s unclear if multiple OP_PUSHDATA of 256 bytes each are allowed or not.

    Also:

    0OP_PUSHDATA Is this
    1OP_PUSHDATA contiguous?
    2OP_PUSHDATA Would OCEAN
    3OP_PUSHDATA laywers allow
    4OP_PUSHDATA this?
    

    Are consecutive data pushes considered contiguous for legal/moral purposes?

  90. GregTonoski commented at 9:04 pm on October 27, 2025: none

    @luke-jr, would you please close this pull request for now?

    Censorship by @kanzure ?

  91. jonatack commented at 9:14 pm on October 27, 2025: member

    I’ve been told by someone present at recent closed room meetings that this PR is being tendered on behalf of Ocean Mining but that they’ve used another account to conceal their involvement.

    The BIP draft here credits @luke-jr. I agree that it would have been better for Luke to open it himself, but his involvement doesn’t seem overly concealed.

    In a further conflict of interests, luke-jr now proports to have assigned it a BIP number entirely out of process and is gunning for some emergency merge.

    I proposed 444 to the editors for feedback and made an entry in the internal notes. Unless an assignment is made publicly here on the PR, I don’t consider it formally assigned, including now. I am not aware of plans by any of the BIP editors to do some emergency merge.

    Legal representatives associated with ocean are now also contacting and acting coersively towards other miners and using the false claims on this PR as backing “information” for their claims. As such I believe leaving this PR open is contributing to fraudulent claims and conduct, and it should be promptly closed.

    I am not aware of such actions. Best for Luke or Ocean to respond there.

    Discussion can obviously continue on the list.

    I agree that much of the discussion we are seeing on this PR would be better sent to the list.

    I’ve repeatedly suggested above to please focus here on technical review.

  92. bitcoin locked this on Oct 27, 2025
  93. jonatack commented at 9:31 pm on October 27, 2025: member
    I’ve provisionally locked this as too heated for now to give people time to cool down.
  94. bitcoin unlocked this on Oct 28, 2025
  95. jonatack commented at 8:00 pm on October 28, 2025: member

    Re-opening the discussion.

    Please read the mailing list thread and send conceptual feedback and general commentary there, and focus here on:

    • technical review of the specification
    • concrete helpful proposals for the other sections

    In the list thread at https://groups.google.com/g/bitcoindev/c/nOZim6FbuF8/m/dfWJd1puAwAJ, @dathonohm wrote: “I am working on a new draft of the BIP that will hopefully address everyone’s concerns”

    Please consider beforehand whether a new comment will add new signal or noise, and perhaps give the author the opportunity to update in response to the existing feedback. Comments that do not add new signal or that do not follow the guidelines in the PR description will likely (reluctantly) be moderated.

  96. gpu7 commented at 8:47 pm on October 28, 2025: none
    The Bitcoin protocol is designed for monetary transactions only, not as a file storage protocol. Reset OP_RETURN to 83 bytes.
  97. encloinc commented at 9:46 pm on October 28, 2025: none

    Nothing short of tyranny.

    It wont solve anything, after the filter is removed the space will probably be reborn again because the economic incentives will always be there. All that this will have managed to do by then is destroy confidence in the network - because if one guy “doesnt like how bitcoin works” they can censor you ANY time they want.

    Where is the decentralization in that?

  98. lifofifoX commented at 10:19 pm on October 28, 2025: none

    As it turns out, there are many other problematic op codes that spammers could utilize to store arbitrary data. I propose we go ahead and disable them all as part of this temporary UASF.

    Below is the list of opcodes we need to disable to protect node runners from legal and moral consequences.

    0OP_DROP
    1OP_2DROP
    2OP_NIP
    3OP_TOALTSTACK
    4OP_0NOTEQUAL
    

    This list, however, is not complete. It’s our duty to remain vigilant and roll out further emergency UASFs to protect node runners from the law.

  99. marsspitsbars commented at 10:25 pm on October 28, 2025: none
    If we get this thing passed do I get an airdrop?
  100. ThymeKeeper commented at 10:56 pm on October 28, 2025: none

    Nothing short of tyranny.

    It wont solve anything, after the filter is removed the space will probably be reborn again because the economic incentives will always be there. All that this will have managed to do by then is destroy confidence in the network - because if one guy “doesnt like how bitcoin works” they can censor you ANY time they want.

    Where is the decentralization in that?

    Your assessment of the fee market balancing itself out is incorrect. The spam transactions will fill blocks because there is revenue to be made in scammy ethereum-like contracts.

    Meanwhile, small accounts won’t be able to transact because the fees are too high for them, raising the floor on “dust accounts”

  101. dathonohm commented at 10:59 pm on October 28, 2025: none

    Originally posted to the bitcoindev ML, but since it hasn’t escaped the moderation queue yet, posting here:

    There is a wild misconception floating around that the BIP I am proposing is a “legal threat from Ocean Mining”. This could not be further from the truth, and I suspect this nonsense is being pushed by people who would love to see Bitcoin become a data storage service.

    I would like to take this opportunity to correct the record.

    Though I am in direct communication with some Ocean employees (and the BIP was originally drafted by one of them), I am not affiliated with Ocean in any way. I am just a Bitcoin dev who is concerned about the implications of Core 30 having been released and gaining adoption.

    The references to “legal risks” in the BIP are not “threats”. They are warnings about a major legal and moral threat that has been created by Bitcoin Core 30’s officially designating Bitcoin as a storage service for files up to 100kB. Specifically, there is an unknown level of risk that node operators could be classified as sex offenders (or some other type of criminals depending on the content) for possessing and distributing toxic content.

    This threat does not come from me, or from Ocean, but rather from Core 30 and its effect on node operators themselves, their consciences, and the communities in which they live. Core 30 forces every single node operator, from the moment toxic content is posted to the blockchain until the end of time, to be complicit in sexual (or other) crimes via possession and distribution of illegal data.

    So now that Core 30 is gaining adoption, it’s very likely that, given the choice of whether to participate in Bitcoin or not, most normal people will simply choose not to participate, and then Bitcoin becomes just another BSV. If Core had just left the OP_RETURN limit where it was, no significant legal threat would exist, and no consensus changes would be urgently needed.

    I am not saying “I’m going to sue you if you don’t support the fork”. That is ridiculous.

    I am saying “you probably want to support this fork if aiding and abetting sex offenders (and potentially being one yourself) does not appeal to you, and you may not want to run a node once Core 30’s new default policies become the standard (which is about to happen).”

    Most Bitcoiners I know signed up for permissionless money, and believe strongly in the freedom to transact, even for people who do things we don’t like, since the vision of a maximally neutral monetary standard is why we’re all here in the first place. Because Bitcoin’s purpose is to be permissionless money, simply storing and forwarding a record of an “illegal” purchase is acceptable to most node operators, because that is the price of entry for trustless, digital money.

    Storing and forwarding actual illegal content, in the clear, however, is not a problem Bitcoin was ever intended to solve, nor something in which Bitcoin node operators are interested in participating. Indeed, permissionless censorship-resistant data storage is probably not a sustainable idea, without some kind of periodic payment to the person tasked with storing the data.

    In any case, forcing all Bitcoin node operators to knowingly commit crimes totally unrelated to the operation of Bitcoin as permissionless money, for the rest of eternity, is obviously a foolish idea and will quickly lead to node centralization and irrelevance if we do not act. Yet this heavy-handed and completely unnecessary imposition is precisely what Core 30 achieves, unless it is enthusiastically opposed by the community. Even in the best case, Core 30’s new default policies set a terrible precedent that must be immediately reversed.

    Since almost all forms of illegal data can be avoided by limiting data fields to 256 bytes, BIP-444 seems like a no-brainer to me, because it neatly dodges the dark fate that awaits us down the data storage path.

    Having engaged many principled Bitcoiners on this topic for a long time, I can confidently say that Bitcoiners overwhelmingly support keeping Bitcoin as permissionless money, and overwhelmingly oppose Bitcoin’s block space being used for data storage. Limiting large data storage in consensus, as BIP-444 does, is the easiest way I can see to give everyone what they want.

    So even if BIP-444 does not activate in its exact current form, I am dedicating myself to helping Bitcoin re-affirm its commitment to permissionless money while re-affirming its opposition to data storage. I am incorporating all feedback I am hearing (which is a lot!) into the next draft of the BIP.

    Thanks again to everyone for your thoughtful and respectful engagement on this matter critically important to the future of Bitcoin. Together we will find the way forward.

  102. jonatack commented at 11:13 pm on October 28, 2025: member

    @dathonohm Please keep that for the mailing list and wait for the queue to be processed.

    Here on the PR, I would humbly suggest (feel free to ignore):

    • compiling, evaluating and addressing the technical review so far
    • if your goal is to reach rough consensus, the text itself probably needs to reach much more across the aisle (per some of the feedback above)
  103. dathonohm commented at 11:28 pm on October 28, 2025: none
    Hi @jonatack - Apologies for the misstep, and thanks for the advice. As I mentioned earlier, I’m working on a new draft. I’m planning to put together a focused discussion group for this BIP, to make sure everyone’s concerns are heard and addressed. Rough consensus is absolutely the goal.
  104. Rob1Ham commented at 11:34 pm on October 28, 2025: none

    Hi @jonatack - Apologies for the misstep, and thanks for the advice. As I mentioned earlier, I’m working on a new draft. I’m planning to put together a focused discussion group for this BIP, to make sure everyone’s concerns are heard and addressed. Rough consensus is absolutely the goal.

    Given the “reactive activation method”, I’d advise getting a pull request based off a recent version of Core (and knots as I assume that is the client you run) as your most urgent priority.

    There will not be rough consensus to chain split/roll back the chain using the reactive activation method without well reviewed code that has been available for some time.

  105. levintofu commented at 1:05 am on October 29, 2025: none
    If anyone is interested, a few weeks go we did a risk analysis of Bitcoin Core v30 implementation with the possible introduction of malicious data on the Bitcoin blockchain. Here is the report
  106. ThymeKeeper commented at 1:10 am on October 29, 2025: none

    As it turns out, there are many other problematic op codes that spammers could utilize to store arbitrary data. I propose we go ahead and disable them all as part of this temporary UASF.

    Below is the list of opcodes we need to disable to protect node runners from legal and moral consequences.

    0OP_DROP
    1OP_2DROP
    2OP_NIP
    3OP_TOALTSTACK
    4OP_0NOTEQUAL
    

    This list, however, is not complete. It’s our duty to remain vigilant and roll out further emergency UASFs to protect node runners from the law.

    I find it interesting that the core moderators are marking everything as off topic except this sarcastic mockery of the pro filter stance

  107. lifofifoX commented at 1:50 am on October 29, 2025: none

    I find it interesting that the core moderators are marking everything as off topic except this sarcastic mockery of the pro filter stance

    This BIP proposes making OP_IF and OP_NOTIF invalid. Why do you think spammers won’t simply switch to another mechanism? Disabling more op codes is well within the technical scope of the BIP.

    TX fcf2142e324ffc4511bb033bff0f20fb4d02f1a9476562168a734089277f29ab is an example of arbitrary data spam using OP_DROP.

  108. petertodd commented at 1:55 am on October 29, 2025: contributor

    The BIP claims that OP_IF/etc. need to be removed due to their use for data publication. If that is in fact true, then indeed, many other opcodes with clear use for data publication need to be removed as well (note how my BIP-compliant transaction was constructed as a commit reveal, similar to how lightning HTLCs work).

    On the other hand, if the real motivation is simply to ensure that “naughty bytes aren’t contiguous”, then the only thing that needs to be done is to ban long pushdatas and similar constructs; banning opcodes is unnecessary.

  109. angusbid commented at 2:03 am on October 29, 2025: none
    Bitcoin is money, not a data storage dump. Why are we risking CP to be potentially mined on the network permanently? I approve of a softfork as a node runner.
  110. Gumpreza commented at 3:53 am on October 29, 2025: none
    I approve of a soft fork. Bitcoin’s excellence is tied to the simplicity of its purpose, which is anchored to its core functionality. Ironically, “Core” has rejected this principle with v30, now seeking to dilute the power of Bitcoin’s purpose by flooding its chain with spam. Every law discriminates in order to uphold a civil society (speed limits discriminate against speeders, homicide laws discriminate against killers, etc.). Similarly, Bitcoin should discriminate against spam to uphold the narrow purposes of Bitcoin. A soft fork will not only prevent unspeakable evil from being memorialized in the Bitcoin blockchain permanently, but it will also prevent Bitcoin from devolving from the hardest money ever invented into a bloated, contaminated data storage network. This soft fork is absolutely necessary.
  111. oj43bc commented at 1:51 pm on October 29, 2025: none
    Building a mile high tower needs to be done on the most solid of foundations. That foundation needs to be simple and not underminable. I’ve been building software for a quarter century - Onion skin architecture affords abstract inner most layers and complex, opinionated outer layers. As a node operator, I have been deterred from running a node from fear of propagating illicit images - this is a mind boggling statement. Keep the foundation as a simple, abstract and dumb. Layer on top of that. Undo the large capacity of arbitrary data - be it inscriptions or OP_RETURN. Bitcoin is the one chance Humanity has had or will have at freedom.
  112. jonatack commented at 3:11 pm on October 29, 2025: member
    Hi all, given that the guidelines in the OP and in #2017 (comment) are generally not being followed, and to save everyone’s time, let’s lock this until @dathonohm posts to the list that they are ready to push a significant update. I understand that people with conceptual or general commentary need an outlet to be heard, but here on the PR, where actual technical review needs to be possible, isn’t a good place. The PR discussion is already slow to load (at least, for me, making it difficult to follow) with several hundred comments, and the author already has plenty of feedback above to work with. Thanks for your understanding.
  113. bitcoin locked this on Oct 29, 2025
  114. bitcoin unlocked this on Nov 8, 2025
  115. jonatack commented at 1:26 pm on November 8, 2025: member

    Re-opening per this mail list post: https://groups.google.com/g/bitcoindev/c/nOZim6FbuF8/m/d4tkNi0DAQAJ

    Please read the mailing list thread and send conceptual feedback and general commentary there, and focus here on technical review of the specification.

    Comments that do not follow the guidelines in the PR description will reluctantly be moderated. @dathonohm you can push the updated draft here now.

  116. jonatack renamed this:
    Reduced Data Temporary Softfork
    BIP draft: Reduced Data Temporary Softfork
    on Nov 8, 2025
  117. dathonohm force-pushed on Nov 9, 2025
  118. in bip-????.mediawiki:138 in dc2fe584bd
    133+'''Are there any tradeoffs?'''
    134+
    135+Yes:
    136+
    137+# Limiting Taproot control blocks to 257 bytes directly constrains the size of the on-chain, consensus-enforced script tree. This could complicate or possibly even impede advanced smart contracting like BitVM, which relies on a large number of executable scripts. In the worst case scenario, these use cases may just need to wait until this softfork expires. As they are still in early development, testnet and sidechains should be sufficient for the next year while a more scalable rule is implemented.
    138+# Upgrade hooks are not available for other softforks. As softforks need at least a year to activate, this shouldn't be a practical issue.
    


    lifofifoX commented at 1:27 am on November 9, 2025:
    If softforks need at least a year to activate, why is this stated to activate in less than 3 months? Why the urgency?

    dathonohm commented at 2:06 am on November 9, 2025:

    Thanks for catching that, it’s been clarified now.

    The proposed softfork is urgent because popular node software has recently changed the default policy limit on OP_RETURN outputs to allow up to 100kB of data storage, and the longer we wait to rectify this, the longer we risk data storage becoming an officially sanctioned use case on the Bitcoin network.

    In contrast to a softfork that adds new opcodes, this softfork addresses problems introduced in previous softforks.

  119. dathonohm force-pushed on Nov 9, 2025
  120. in bip-????.mediawiki:62 in df3ca79c6a outdated
    39+
    40+To reduce arbitrary data stored on nodes, and to reject the standardization of data storage as a supported use case at the consensus level.
    41+
    42+==Rationale==
    43+
    44+===Specification nuance===
    


    knocte commented at 7:58 am on November 10, 2025:
    @dathonohm I like this faq-style ample section, thanks for adding it; can you add two more questions to it? I would love to have a “Why not rather eliminate the witness discount?” (so that this BIP still acknowledges that spam in the UTXO set is worse than OPRETURN-based one) and a “Why not make OPRETURN transactions cheaper but not contiguous, to make them at least more attractive to spammers than UTXO bloat, but mitigating a contiguous-objectionable-data risk?”. These are not disingenuous requests; as I genuinely want to understand the trade-offs that this BIP is choosing, in order for me to ACK or NACK it. Thanks

    dathonohm commented at 4:42 pm on November 10, 2025:

    The witness discount was introduced in order to incentivize UTXO consolidation, and eliminating it would significantly alter the network, as well as introducing unnecessary code complexity. As currently written, this proposal achieves its goal, which is to strongly reject data storage at the consensus level.

    Likewise, making OP_RETURN cheaper or non-contiguous increases complexity without meaningfully increasing this proposal’s effectiveness. In fact, one of the primary motivations for this proposal is the fact that the current 1-megabyte consensus limit of OP_RETURN (or the 100-kilobyte policy limit imposed by Bitcoin Core) appears to sanction large arbitrary file storage, because OP_RETURN has no other uses besides arbitrary data storage and cannot therefore be reasonably interpreted in any other way.

    But I will review a code suggestion if you submit one.

    If the community decides that eliminating the witness discount or making OP_RETURN cheaper is a good long-term solution, this softfork provides an opportunity to do so once it expires.


    knocte commented at 3:53 am on November 11, 2025:

    Look, I’m myself a dev that is of the opinion that the “aim” of Core to try to move the spammers to use OPRETURN instead of UTXO bloat is good; it’s a worthy goal to aim for, because, ultimately, spam cannot be eradicated completely. In this part I agree with “Core v30”, so to speak.

    But I disagree on the way this goal was pursued, because if OPRETURN is still more expensive than UTXO bloat, what is the point? You didn’t incentivize spammers to move out from UTXO-bloat, you just created a new avenue for spam. And the worst of all: spam that is much more easy to extract from the blockchain data because it is contiguous. Sure: you still need a tool to extract it, I give them that; but these days the difference in how you extract data is not how much LOCs you need to achieve it, but maybe how long is the prompt you need to give to your $AI to cook it for you, and with OPRETURN set to 100KB, maybe we’re talking about a couple of sentences here.

    So I would support a BIP that tries to stir the boat to a proper way of trying to direct the spammers to both prunable and non-contiguous approaches, but not a BIP that tries to curtail features that were already introduced by Taproot (as that boat has long sailed), and that’s why I was thinking eliminating segwit discount might be a good start to achieve it this way, but I don’t understand the technical details enough to know if it’s viable, and by suggesting you put this question here I was hoping that you give clear technical details of why that would be a bad idea, but you seem to not be willing to get into this, unfortunately.


    ArmchairCryptologist commented at 12:33 pm on November 11, 2025:

    But I disagree on the way this goal was pursued, because if OPRETURN is still more expensive than UTXO bloat, what is the point? You didn’t incentivize spammers to move out from UTXO-bloat, you just created a new avenue for spam.

    The point is that there are protocols that rely on including data that is on the order of hundreds of bytes; that is, larger than the old OP_RETURN limit of 80 bytes, but not at the “embedding JPEGs on the blockchain” levels of data. One example is Citrea’s Clementine bridge, which uses a 144-byte ZKP-based fraud proof. Such protocols may also rely on the data to be included in that transaction, so they cannot use the commit-reveal scheme required for storing it in discounted segwit data like inscriptions do. So the only practical solution with the old OP_RETURN limit would be to encode this data as unspendable (and unprunable) UTXOs, which all nodes would then have to store in perpetuity - unlike OP_RETURN data, which can be pruned by all non-archiving nodes.

    Core v30 specifically fixes this by removing the OP_RETURN limit so this type of data can be stored in a sane and pruneable way, with transactions that can be reliably broadcast. And since it is completely pointless to bikeshed on the exact value of a limit that can be bypassed anyway by delivering a transaction directly to a miner (which is bad for the network for several reasons), and which specifically does not enable storing more data than could already be stored in discounted segwit data, and that also is not “more contiguous” than such data for whatever that is worth, it was instead set to be practically unlimited - the 100KB limit should never be reachable without hitting the overall transaction size limit.


    knocte commented at 12:49 pm on November 11, 2025:
    If that was the sole point, then finding a compromise limit instead of just removing it (which effectively creates a new avenue for spam as a result) would have made more sense. Like 256bytes for example? Enough for Citrea or similar companies while not allowing transactions with big blobs to be standard. And yes, before you throw again your wisdom about the other acclaimed reason to have policy align with consensus here in order to have fee estimations be more accurate, I’m also aware of that nitpick. But those are just nitpicks that don’t deserve the risk that these changes introduced IMHO. Again, I say that reducing UTXO-set bloat in favour of prunable blobs is a sensible goal (and addressing those 2 nitpicks too), but before doing a change like this, maybe finding a way to make OPRETURN cheaper and non-contiguous would have been better to address first. So I think this BIP should try to do things properly and not just take the diametral opposite stance by trying to filter everything while curtailing script capabilities or risking confiscation.

    dathonohm commented at 9:12 pm on November 11, 2025:

    @knocte

    So I would support a BIP that tries to stir the boat to a proper way of trying to direct the spammers to both prunable and non-contiguous approaches

    Feel free to submit a BIP that outlines your approach. I don’t think your suggestions help this BIP achieve its goals any better. This BIP’s purpose is to strongly reject the data storage use case while being easy to review in order to gain consensus quickly, which it achieves in its current form. @ArmchairCryptologist Core 30 does not “fix” anything; the 83-byte limit is a hard-fought and long-established gentlemen’s agreement, specifically crafted to discourage non-Bitcoin use cases. If an application requires more than 83 bytes, it is either poorly designed, or its creators should lobby the Bitcoin network to officially support it, if it’s a valuable use case. Just charging ahead and building it anyway is abuse, and the Bitcoin network should not tolerate abuse.


    ArmchairCryptologist commented at 10:35 pm on November 11, 2025:

    @knocte As I mention in my previous post, there is literally no reason to add an arbitrary limit to OP_RETURN, since having an unlimited OP_RETURN does not enable any arbitrary data storage that you cannot already do with inscriptions and/or unspendable UTXOs, it just lets you do it in less harmful ways. What happens when the next system that builds on top of Bitcoin needs 300 bytes for their on-chain commitment? You’re back to unspendable UTXOs, and you just do the same pointless song and dance all over again. @dathonohm You seem to fundamentally misunderstand the concept of “permissionless”, which is one of the oldest core tenets of Bitcoin. Citrea didn’t have to lobby anyone for official support to build a ZKP-based rollup scaling solution on top of Bitcoin; it’s very much not a “non-Bitcoin use case”, and they simply made use of the facilities available to them to do so. Storing data in unspendable UTXOs is not a good thing, but you cannot prevent it - and this is specifically why Core v30 fixes the OP_RETURN limitation, which did not stop people from embedding whatever data they wanted, but prevented Citrea from embedding this particular data in a pruneable way that does not permanently clog the UTXO set.

    You keep insisting that a scorched-earth approach to fight data storage is somehow warranted, but you simply cannot have flexible and programmable money, and at the same time prevent people from using it to embed arbitrary data, because data can always be encoded into whatever structures are available. And Bitcoin is flexible programmable money, from its very inception. If you want to add a lot of restrictions to how other people are allowed to program their money, I would suggest that you fork it off as Knotscoin or whatever - that way you can add whichever rigid committe-approval-only whitelisted template restrictions you want.

  121. in bip-????.mediawiki:127 in df3ca79c6a outdated
    104+
    105+'''Why make OP_SUCCESS* invalid?'''
    106+
    107+OP_SUCCESS* is meant for future upgrades. See above regarding undefined witness versions.
    108+
    109+'''Why make OP_IF/OP_NOTIF invalid?'''
    


    Rob1Ham commented at 4:48 pm on November 10, 2025:

    There is an internal consistency issue here. This will create circumstances where you are publishing more data on chain. There are circumstances where the use of an OP_IF/NOTIF uses less bytes on the stack if the addition of those bytes saves you having to traverse down the control block at an additional depth (32 bytes).

    This means there are legitimate reasons as to why you’d have OP_IF/NOTIF in a stack to save on bytes, the simple hueristic of “if ithere is an if/notif just use another leaf” is not correct and will result in more data being put on chain.


    dathonohm commented at 9:23 pm on November 11, 2025:

    This was discussed in the previous draft:

    In some hypothetical cases, OP_IF could require less data than additional tapscripts. If such a use case is discovered, this simply increases the fee until the softfork expires.

    I can add it back if necessary.


    dathonohm commented at 1:18 am on November 13, 2025:
    Anyway, I don’t think this is inconsistent. This proposal’s goal is not to save bytes in every possible edge case; its goal is to discourage arbitrary data.
  122. in bip-????.mediawiki:67 in df3ca79c6a outdated
    44+===Specification nuance===
    45+
    46+'''Why limit scriptPubKeys to 34 bytes?'''
    47+
    48+scriptPubKeys must be stored indefinitely in quick-access memory (often RAM) by all fully validating nodes.
    49+It generally cannot be pruned.
    


    murchandamus commented at 5:47 pm on November 10, 2025:
    This is false, not all output scripts have to be stored indefinitely. For example output scripts starting with OP_RETURN and output scripts larger than 10,000 bytes are generally invalid and therefore not stored in the UTXO set. Further, BIPs 181–183: Utreexo specify a fully validating node that does not need to store UTXOs.

    dathonohm commented at 9:25 pm on November 11, 2025:
    What new language would you suggest? The word “generally” here is intended to communicate that there are some exceptions.
  123. in bip-????.mediawiki:50 in df3ca79c6a
    45+
    46+'''Why limit scriptPubKeys to 34 bytes?'''
    47+
    48+scriptPubKeys must be stored indefinitely in quick-access memory (often RAM) by all fully validating nodes.
    49+It generally cannot be pruned.
    50+It is also a direct cost to the sender rather than the receiver. For these reasons, modern usage is all 34 bytes or smaller in practice:
    


    murchandamus commented at 5:50 pm on November 10, 2025:
    It is news to me that outputs being a cost to the sender has been cited as a motivation for small output scripts in any of the proposals for modern output types.

    dathonohm commented at 9:28 pm on November 11, 2025:

    I can remove this sentence if you consider it redundant.

    This section can probably be updated to include mitigations for “poison blocks” as well. Thoughts?

  124. in bip-????.mediawiki:51 in df3ca79c6a
    46+'''Why limit scriptPubKeys to 34 bytes?'''
    47+
    48+scriptPubKeys must be stored indefinitely in quick-access memory (often RAM) by all fully validating nodes.
    49+It generally cannot be pruned.
    50+It is also a direct cost to the sender rather than the receiver. For these reasons, modern usage is all 34 bytes or smaller in practice:
    51+actual spending conditions have been moved to the witness, and the scriptPubKey simply commits to them in advance with a hash.
    


    murchandamus commented at 5:50 pm on November 10, 2025:
    This is also false, the witness program in P2TR is a public key, not a hash.

    dathonohm commented at 9:34 pm on November 11, 2025:
    I don’t think the sentence is false as written. The Merkle root of the Taptree is a hash. How would you word it differently?
  125. in bip-????.mediawiki:75 in df3ca79c6a outdated
    52+
    53+'''What about OP_RETURN? Why not get rid of it entirely?'''
    54+
    55+OP_RETURN outputs are provably unspendable, and nodes do not need to store them in the UTXO set.
    56+Historically, up to 83 bytes have been tolerated only to avoid unprovably unspendable spam in other output scripts, and no legitimate uses have ever been found.
    57+With the advent of pay-to-contract and Taproot, it is now also possible to commit to external data in the Taptree, making even hypothetical use of OP_RETURN deprecated.
    


    murchandamus commented at 5:52 pm on November 10, 2025:
    It is not clear why the possibility to commit to data in a Taptree is supposed to “make even hypothetical use of OP_RETURN deprecated”.

    moonsettler commented at 1:53 am on November 11, 2025:
    If anything replaces OP_RETURN in use, it would be the Annex. Taptree requires pre-commitment, same as witness script payloads.

    dathonohm commented at 9:38 pm on November 11, 2025:
    @murchandamus There is a technique called “pay-to-contract” or “pay-to-contract-hash” which tweaks a public key with a hash, enabling data to be anchored into a payment with no additional data storage requirements. I can track down more info if you like. @moonsettler This proposal invalidates the annex.

    petertodd commented at 11:01 pm on November 11, 2025:

    @dathonohm “anchoring” is an ill-defined term that should not be used, especially in technical contexts.

    What you are talking about is a commitment. Commitments are notoriously insufficient for many use-cases. For example, for Lightning to work there is a hard requirement to publish data in HTLCs. Mere commitments are insufficient. If you take away OP_Return and the Taproot annex, people will simply publish data in scriptPubKeys instead - the exact issue that lead to the creation of the OP_Return mechanism in the first place.


    dathonohm commented at 0:01 am on November 12, 2025:

    What you are talking about is a commitment.

    This demonstrates that you understood what I meant.

    Commitments are notoriously insufficient for many use-cases.

    Use cases that need more than 80 bytes of arbitrary data have been rejected by the Bitcoin network since 2014.

    for Lightning to work there is a hard requirement to publish data in HTLCs. Mere commitments are insufficient.

    The HTLC preimage is 32 bytes, so it meets the limits decided in 2014. Hashes are generally also 32 bytes.

    If you take away OP_Return and the Taproot annex, people will simply publish data in scriptPubKeys instead - the exact issue that lead to the creation of the OP_Return mechanism in the first place.

    This should be dealt with in policy. The BIP explains this already.

  126. in bip-????.mediawiki:134 in df3ca79c6a outdated
    111+OP_IF/OP_NOTIF originated in pre-Taproot Bitcoin script language as a way to execute different subscripts based on a condition.
    112+With Taproot, the conditions can instead be evaluated off-chain, revealing only the intended verification execution path.
    113+Furthermore, when the conditions are met, the intent is that the keypath spend path should be used instead, avoiding publishing any scripts at all.
    114+
    115+OP_IF is not only redundant for Tapscript, it is also commonly abused today to inject spam that gets skipped at execution.
    116+While it is impossible to fully prevent steganography, closing this gap eliminates one common abuse today basically for free, and sends a message that such abuses are not welcome.
    


    murchandamus commented at 6:00 pm on November 10, 2025:
    This paragraph is false. There are wallets that use script leaves with OP_IF in their default wallet setup (e.g., Liana) and more wallets that support Miniscript which makes use of OP_IF. This breaks user space and has confiscatory potential.

    dathonohm commented at 9:41 pm on November 11, 2025:

    As I’ve stated elsewhere, I am open to amending this BIP’s spec if a single example of a pre-RDTS use case that uses pre-signed transactions with Taptrees deeper than 7 levels or OP_IF/NOT_IF can be demonstrated.

    If not, I don’t think it is valid to claim that this proposal “breaks userspace” in any harmful way.


    murchandamus commented at 5:23 am on November 12, 2025:

    I was corrected on Liana using OP_IF by default in Tapscript. OTOH, @Rob1Ham already reported two weeks ago:

    I’ve run some initial tests, the miniscript compiler will use OP_IF and OP_NOTIF for taproot descriptors if you don’t break it out spending conditions into specific tapleafs explicitly, so this would be freezing those funds on chain (or confiscating if this was extended indefinitely).

    And it is my understanding that at least Ledger, Bitbox, Coldcard, BDK, Specter, MyCitadel, Liana, Nunchuk, Bitcoin Keeper, Blockstream Jade, AnchorWatch, and Bitcoin Core have support for Miniscript. I’m not sure how many of these support Tapminiscript, but it is hard to fathom that the proposed protocol change doesn’t create undue problems for any of these wallets and services.

    Claiming that “OP_IF is redundant” is insufficient to address this concern.


    Rob1Ham commented at 2:00 pm on November 12, 2025:

    Indeed, the miniscript compiler will use OP_IF & OP_NOTIF, as shown here on signet.

    Specific tapleaf here.

    On that list of companies murch, to my understanding the following use tapminiscript:

    • Ledger
    • Bitbox
    • Coldcard
    • BDK
    • Liana
    • Nunchuk
    • Bitcoin Core

    dathonohm commented at 4:37 pm on November 12, 2025:

    Thanks for the investigation @Rob1Ham and @murchandamus.

    I remain open to amending the spec if any wallet software habitually creating Tapleaves with OP_IF are found.

    If not (and potentially if so), I believe it should be sufficient to warn wallet developers to avoid doing this in the near future.


    dathonohm commented at 4:54 pm on November 12, 2025:

    I should note that @mononaut discovered what appears to be a valid use case for an HTLC-like construction using OP_IF in a Tapleaf, which raises concerns.

    Hopefully this was just a one-off experiment, and not something that is likely to occur again.

    If anyone has more detailed information about what software created this and whether users might commonly be using it, that would be extremely helpful.


    dathonohm commented at 0:51 am on November 13, 2025:
    Also note that Liana wallet developers say that the current version of Liana does not generate Tapscripts with OP_IF, so I think as long as they don’t proceed to implement that, we are fine.

    bitcoin-eagle commented at 4:10 am on November 13, 2025:
    That’s incorrect. Here is a counter example. Liana devs just don’t understand miniscript compiler because it’s not their job to. https://x.com/pythcoiner/status/1988478857876529648
  127. in bip-????.mediawiki:155 in df3ca79c6a outdated
    132+
    133+'''Are there any tradeoffs?'''
    134+
    135+Yes:
    136+
    137+# Limiting Taproot control blocks to 257 bytes directly constrains the size of the on-chain, consensus-enforced script tree. This could complicate or possibly even impede advanced smart contracting like BitVM, which relies on a large number of executable scripts. In the worst case scenario, these use cases may just need to wait until this softfork expires. As they are still in early development, testnet and sidechains should be sufficient for the next year while a more scalable rule is implemented.
    


    murchandamus commented at 6:03 pm on November 10, 2025:
    This breaks user space. Other commenters have already provided examples of transactions with deeper script trees confirmed in the blockchain.

    dathonohm commented at 9:42 pm on November 11, 2025:

    @murchandamus do you consider breaking inscriptions “breaking userspace”? If so, that is this BIP’s intention.

    Freezing users’ funds is not the intention, however. Just invalidating pathological use cases that make Bitcoin worse money.

  128. in bip-????.mediawiki:157 in df3ca79c6a outdated
    134+
    135+Yes:
    136+
    137+# Limiting Taproot control blocks to 257 bytes directly constrains the size of the on-chain, consensus-enforced script tree. This could complicate or possibly even impede advanced smart contracting like BitVM, which relies on a large number of executable scripts. In the worst case scenario, these use cases may just need to wait until this softfork expires. As they are still in early development, testnet and sidechains should be sufficient for the next year while a more scalable rule is implemented.
    138+# Upgrade hooks are not available for other softforks. As softforks adding new opcodes typically need at least a year to activate, this shouldn't be a practical issue.
    139+# Some wallet software such as Miniscript habitually create Tapleaves containing OP_IF. To mitigate the risk of freezing these funds for a year, this proposal exempts inputs that spend outputs that were created before activation.
    


    murchandamus commented at 6:06 pm on November 10, 2025:
    Since there is no way to prevent sending to previously provided recipient addresses, or to ensure that all these users are aware and cease usage of software using Miniscript, it would have to be expected that this will cause users’ funds to be locked up unexpectedly. This breaks user space and is unacceptable.

    dathonohm commented at 9:45 pm on November 11, 2025:
    Please provide a single non-pathological example and I will amend the BIP.

    murchandamus commented at 1:18 am on November 13, 2025:
    That’s not how responsible protocol development works. There are at least seven software projects that use Tapminiscript. You are proposing to break fundamental functionality in their software. Even if they all become aware in time, they would need to accommodate your breaking their software, and then there is still no guarantee that their users become aware and update in time. Beyond that, there could be other software projects that rely on Tapminiscript that we are not even aware of. I don’t particularly care whether you amend the BIP, but keeping this would constitute obvious grounds to oppose adoption of your proposal.

    dathonohm commented at 1:39 am on November 13, 2025:
    How long do they and their users need to update?
  129. in bip-????.mediawiki:176 in df3ca79c6a outdated
    153+'''Aren't Taptrees intended to be unbalanced?'''
    154+
    155+While it is true that optimal use of Taptrees may often be unbalanced to favour more-likely-executed scripts, this is optional, and the full capacity (in this case, 128 scripts) can still be used if needed.
    156+Additionally, in ideal/ordinary circumstances, neither the Taptree nor a merkle branch through it is ever published:
    157+all counterparties ought to evaluate the conditions for spending off-chain and rebroadcast the transaction using the keypath spending.
    158+Tapscripts are intended to only be used when one or more parties is unreachable or uncooperative; their existence mainly only serves to deter intentional non-cooperation by making it pointless.
    


    murchandamus commented at 6:13 pm on November 10, 2025:
    While being able to spend any output per its keypath was a design goal of Taproot, BIP 341 explicitly introduces the notion of using a NUMS point instead to restrict an output to only being spendable per the script path. Therefore, it is untenable to rely on every P2TR output being spendable by keypath.

    dathonohm commented at 9:46 pm on November 11, 2025:
    I will update the BIP to reflect this.
  130. in bip-????.mediawiki:186 in df3ca79c6a outdated
    162+
    163+The fee market is designed to prioritize transactions based on economic urgency.
    164+
    165+However, the market for data storage on the blockchain is a completely different market from the market for payments, with completely different incentives.
    166+
    167+Specifically, the fee for a monetary transaction incentivises a miner to include the transaction in a block, representing a one-time transfer of one or more UTXOs. The miner thus provides the one-time service of securing a payment, for a one-time fee.
    


    murchandamus commented at 6:17 pm on November 10, 2025:
    This description is false. (On-chain) transactions do not transfer UTXOs, they consume UTXOs and reassign their amounts to new outputs and fee.

    dathonohm commented at 9:47 pm on November 11, 2025:
    I think this is a pedantic nit but, fine, how would you word it better? I think it’s clear what I’m trying to say. Bitcoin is for payments, not for storing data.

    rdouma commented at 0:34 am on November 12, 2025:
    What about “representing a one-time verification of correctness for a requested entry in the ledger that consumes existing UTXOs and produces new ones, thereby reallocating monetary value on the Bitcoin ledger under new spending conditions.”

    dathonohm commented at 11:54 pm on November 12, 2025:
    @rdouma: What about just “representing a one-time transfer of monetary value, i.e., a payment”?
  131. in bip-????.mediawiki:192 in df3ca79c6a outdated
    168+
    169+Once the payment is secured, the payor does not receive any additional benefit from the Bitcoin network, besides the integrity of Bitcoin's transaction history (a service to which all node operators are happy to contribute, because Bitcoin would not function as money otherwise).
    170+
    171+Conversely, the fee for a data storage transaction still goes only to the miner who includes the data in a block, but the burden of storing the data falls on all node operators, who never received even a part of the fee, yet are forced to continue downloading, storing, and serving the data forever.
    172+
    173+In this case, the miner accepts a one-time fee, and in exchange, the priceless service of highly-available, uncensorable data storage is provided in perpetuity ''for free'' by node operators.
    


    murchandamus commented at 6:22 pm on November 10, 2025:
    This distinction is unconvincing, because all blockchain data is retained indefinitely by nodes with a full copy of the blockchain.

    dathonohm commented at 9:49 pm on November 11, 2025:
    Yes, it appears you either did not read my argument or I argued the point poorly. I am uncertain how to explain better, but I think the distinction is very important.
  132. in bip-????.mediawiki:224 in df3ca79c6a outdated
    200+However, these schemes are best countered in policy rather than consensus, and besides, this proposal does not aim to eliminate spam entirely.
    201+
    202+'''Is this a slippery slope? If we make rules against data today, will we start banning use cases we don't like tomorrow?'''
    203+
    204+No.
    205+These rules may be new at the consensus level, but they are merely enshrining long-standing principles of Bitcoin, as necessary to address a threat to the decentralization of the network and its usability for monetary purposes.
    


    murchandamus commented at 6:24 pm on November 10, 2025:
    This document has failed to demonstrate threats to either of these. Please substantiate the cited threats.

    dathonohm commented at 9:51 pm on November 11, 2025:
    Again, you seem to have just jumped right over my arguments, which I think were well constructed. Bitcoin node operators store the blockchain forever because that’s absolutely mandatory in order for Bitcoin to be money. If Bitcoin degrades into something that is no longer money, then the incentive to run a node disappears. If incentives to run a node disappear, then so do nodes. If nodes disappear, then so does decentralization.
  133. in bip-????.mediawiki:226 in df3ca79c6a outdated
    202+'''Is this a slippery slope? If we make rules against data today, will we start banning use cases we don't like tomorrow?'''
    203+
    204+No.
    205+These rules may be new at the consensus level, but they are merely enshrining long-standing principles of Bitcoin, as necessary to address a threat to the decentralization of the network and its usability for monetary purposes.
    206+
    207+This softfork does not attempt to impose restrictions on monetary activity or the validity of monetary transactions themselves.
    


    murchandamus commented at 6:26 pm on November 10, 2025:
    This is false. This softfork proposal proposes to restrict established wallet descriptor patterns.

    dathonohm commented at 9:53 pm on November 11, 2025:
    Again, no non-pathological, pre-RDTS, real-world examples have been demonstrated.

    john-moffett commented at 5:23 pm on November 12, 2025:
    Care to edit/delete this comment in light of #2017 (review)?
  134. in bip-????.mediawiki:234 in df3ca79c6a outdated
    223+
    224+CTV is still controversial with a minority of the community, and bundling it with this softfork could be seen as an attempt to trick/force it on the network.
    225+
    226+However, this softfork does "set the stage" for a followup softfork in a year, which would be an ideal stage to include CTV if the community deems it appropriate.
    227+
    228+==Backwards compatibility==
    


    murchandamus commented at 6:28 pm on November 10, 2025:
    The Backwards compatibility section needs to address how the deliberate breaking of established wallets’ modus operandi should be addressed.

    dathonohm commented at 9:53 pm on November 11, 2025:

    bitcoin-eagle commented at 8:54 am on November 14, 2025:

    That’s not sufficient answer.

    1. People need to validate if their wallet is BIP444 compatible.
    2. They need to migrate to BIP444 compatible wallet if they are using incompatible
    3. They need to actively prevent receiving new coins to BIP444 incompatible wallet (both change and receive addresses)
    4. There needs to update to miniscript compiler

    https://x.com/mononautical/status/1988953736774053920


    bitcoin-eagle commented at 11:26 am on November 14, 2025:
    Sometimes OP_IF makes transaction smaller https://x.com/salvatoshi/status/1989270625454584132
  135. in bip-????.mediawiki:17 in df3ca79c6a
    12+  Post-History: https://gnusha.org/pi/bitcoindev/aN_u-xB2ogn2D834@erisian.com.au/T/#mb71350c5dfb119efeb92c5ee738b6c8225bf15b6
    13+</pre>
    14+
    15+==Abstract==
    16+
    17+Temporarily limit the size of data fields at the consensus level.
    


    murchandamus commented at 6:33 pm on November 10, 2025:

    While attractively concise, this abstract is too short to provide a meaningful overview. As BIP 2 specifies, please elaborate to:

    Abstract – A short (~200 word) description of the technical issue being addressed.


    michaelfolkson commented at 10:07 pm on November 10, 2025:
    I can only speak for myself but I am personally dead set against temporary consensus changes. If a consensus change is worth doing and has overwhelming community consensus then why not make it permanent? It doesn’t impact the finalization of this BIP but just stating that I’d personally be against an attempted temporary consensus change activation regardless of the proposal. If the community is unsure whether it should be activated and this is the reason it is temporary then I don’t think it should be activated at all. Mempool and transaction relay policy can be changed on the fly, especially in an implementation like Knots, but consensus changes are a totally different animal.

    moonsettler commented at 1:38 am on November 11, 2025:

    Hmm. It has to be temporary, because it disables a whole bunch of upgrade hooks and upgrade paths that are already planned to be used. I would hard NĀCK-it as a permanent change and I think I’m not alone. However, while they are not yet in use, they allow for arbitrary payloads into blocks which this proposal tries to restrict. It would be seen as an extremely destructive and hostile move proposed as a permanent change. As a temporary change it could in theory be gradually reduced in scope to give way to new features activated that otherwise restrict those upgrade hooks.

    This is not an endorsement, just an explanation.


    dathonohm commented at 9:55 pm on November 11, 2025:
    I will expand it to 200 words in the next draft per BIP-2.

    dathonohm commented at 10:12 pm on November 11, 2025:

    I’ve warmed to the idea of temporary soft forks since I first heard about them. They seem particularly effective for discouraging spam, which is a cyclical phenomenon that is nonetheless very sensitive to community sentiment.

    The danger of permanent forks, of course, is that if there are non-pathological use cases that are affected, then people’s money is permanently burned, rather than just temporarily frozen.

    Permanently forking also means that we would need to hardfork in order to get those use cases back. Though this could probably be worked around with new Segwit/Tapscript versions.

    But if the community wants this change to be permanent, then I’m not necessarily opposed.


    michaelfolkson commented at 10:39 pm on November 11, 2025:
    The rationales against temporary soft forks/consensus changes are not spam related. There has never been a soft fork (in post Satoshi’s time at least) that was motivated by spam. There are multiple dangers in addition to the one you describe which is obviously a key one. There are chain split risks every time you make a consensus change (bug in the code, bug in the activation code, clients with different activation methods, UASF/URSFs etc). The more consensus rule changes you apply (and/or revert) the more centralizing it is. The community can’t spend all their time monitoring and reviewing consensus changes and so they are forced to rely on a smaller and smaller group of “trusted” developers to make the right decisions on consensus rule changes and review the code. It becomes easier and easier for a malicious consensus bug to be introduced without the community realizing. It starts to resemble consensus rule changes on other blockchains like Ethereum where a small number of protocol developers make regular changes on everything from difficulty bombs to the monetary policy/mining rewards. That isn’t how consensus rule changes have been treated for over 8+ years as it has been widely understood that Bitcoin consensus rule changes should be rare with maximum community review and buy-in.

    dathonohm commented at 6:02 pm on November 12, 2025:

    There has never been a soft fork (in post Satoshi’s time at least) that was motivated by spam.

    Indeed, this would be the first, since perhaps the 2010 Great Script Disabling. But it is not completely without precedent. I think it is a positive rather than harmful precedent to occasionally fork in order to amend the consensus rules because of problems introduced in previous forks. This precedent allows the Bitcoin community to be more confident adding new functionality, preventing permanent ossification.

    There are chain split risks every time you make a consensus change (bug in the code, bug in the activation code, clients with different activation methods, UASF/URSFs etc).

    Chain split risks are a very valid concern and forks should be approached with the utmost caution.

    It starts to resemble consensus rule changes on other blockchains like Ethereum where a small number of protocol developers make regular changes on everything from difficulty bombs to the monetary policy/mining rewards.

    Avoiding turning Bitcoin into something resembling Ethereum is indeed a primary goal of this proposal.

    I don’t think this temporary softfork creates a significant precedent of more frequent forks. If the proposal’s rules prove unpopular after a year, the expiry will not create a fork and will not require coordination, as all old node software will simply revert to the unrestricted rule-set upon expiry.

    I do share your concern that the proposal sets a precedent of creating temporary softforks in urgent situations, to then be amended upon expiry with a more permanent fix. I agree that this could be undesirable; however, I think this situation is unique in that the maintainers of the most popular node software blindsided the community by suddenly switching from anti-spam to pro-spam. As long as this never happens again, I don’t see a valid reason emerging that would justify it being used again. We should always attempt to remain vigilant to make sure we catch and filter data abuse early, rather than letting it metastasize into a well-funded industry as it did this time.

    But I’m not convinced that temporary softforks aren’t a useful tool to have just in case.


    john-moffett commented at 6:11 pm on November 12, 2025:

    This precedent allows the Bitcoin community to be more confident adding new functionality

    On the contrary, this proposal eliminates useful functionality. If anything, this will discourage addition and adoption of new features and functionality in the future because people might “not be using it right” and their coins get confiscated/lost in another softfork like this.

    the maintainers of the most popular node software blindsided the community by suddenly switching from anti-spam to pro-spam

    This is a specious characterization.


    dathonohm commented at 10:10 pm on November 12, 2025:

    BIP-341’s Abstract section is: “This document proposes a new SegWit version 1 output type, with spending rules based on Taproot, Schnorr signatures, and Merkle branches.”

    So, 200 words seems excessive.


    dathonohm commented at 1:19 am on November 13, 2025:
    Updated the Abstract and Motivation sections
  136. in bip-????.mediawiki:29 in df3ca79c6a
    24+
    25+Blocks with a height from 934864 until and including 987424 are checked with these additional rules:
    26+
    27+# New output scriptPubKeys exceeding 34 bytes are invalid, unless the first opcode is OP_RETURN, in which case up to 83 bytes are valid.
    28+# OP_PUSHDATA* with payloads larger than 256 bytes are invalid, except for the redeemScript push in BIP16 scriptSigs.
    29+# Spending undefined witness (or Tapleaf) versions (ie, not Witness v0/BIP 141 nor Taproot/BIP 341) is invalid.
    


    murchandamus commented at 6:41 pm on November 10, 2025:
    Please describe the exact syntax and semantics. Consider e.g., that P2A outputs also use native segwit v1 outputs.

    dathonohm commented at 10:02 pm on November 11, 2025:
    What’s not clear? Taproot is not being disabled; I think that is evident. Can you suggest a wording change?

    petertodd commented at 10:54 pm on November 11, 2025:
    As @murchandamus noted, your wording implies that P2A outputs will be disabled. You should state exactly what is allowed.

    dathonohm commented at 0:20 am on November 12, 2025:
    I see, that is indeed unclear. Will update in the next version.

    dathonohm commented at 1:19 am on November 13, 2025:
    Done.
  137. murchandamus commented at 7:06 pm on November 10, 2025: contributor

    I gave this proposal a quick first pass.

    Overall, key issues with this proposal are that it:

    • Breaks user space and introduces confiscatory surface
    • Is missing proper motivation and rationale
    • Fails to address backward compatibility
    • Does not obviously represent a net improvement

    Several sections are underdeveloped:

    • The Abstract fails to describe the issue being addressed and does not provide a proper overview of the proposal
    • The Motivation section is insufficient to explain why this BIP is being written, how the existing situation presents a problem and how this proposal improves the situation.
    • The Specification needs to describe the exact syntax and semantics of all the newly introduced rules.
    • The Rationale should be extended to discuss alternative approaches. Multiple reviewers have suggested simpler changes that could achieve goals stated by the author in this pull request, and this proposal does not make a case of why exactly the proposed protocol changes are sufficient, necessary, or most likely to achieve the intended outcome. Several reviewers have suggested alternative approaches or pointed out gaps in the proposed rules.
    • The Backwards Compatibility section insufficiently addresses that this document intentionally breaks user space in multiple ways. These incompatibilities must be described explicitly, and the document must provide instructions on how implementers and users should deal with these incompatibilities.

    For the readability of this pull request, please mark review comments as resolved when you have fully addressed them.

  138. in bip-????.mediawiki:25 in df3ca79c6a outdated
    20+
    21+This document is licensed under the 3-clause BSD license.
    22+
    23+==Specification==
    24+
    25+Blocks with a height from 934864 until and including 987424 are checked with these additional rules:
    


    murchandamus commented at 7:15 pm on November 10, 2025:
    The flag day activation without any mechanism to control for the amount of hashrate enforcing this change introduces a game of chicken for miners who in case of the hashrate being split between enforcing or not enforcing are likely to produce blocks that will not be part of the best chain on either side. This interesting design decision should be motivated and explained in the rationale.

    moonsettler commented at 1:59 am on November 11, 2025:

    A flag day activated restrictive (not feature) soft fork can’t be be opposed with an other soft fork (can’t effectively URSF).

    Not sure if that is the motivation, just something that came up in the discussion previously.


    dathonohm commented at 10:03 pm on November 11, 2025:
    I am leaning towards a different activation with hashpower signaling in the next version of the BIP. I am also leaning towards extending the activation date.

    dathonohm commented at 1:20 am on November 13, 2025:
    The Deployment section is removed. I am leaning towards a MASF with a long signaling window.
  139. in bip-????.mediawiki:222 in df3ca79c6a
    217+It is possible this softfork may activate before miners have fully upgraded.
    218+To ensure continuity of Bitcoin through a potentially low-hashrate period, we must assume there's a possibility of each block taking 10 times as long as intended (ie, ~2 hours per block), which would mean 4 MWU per block would be a mere 333 kWU per 10 minutes.
    219+
    220+If there is community support for reducing block sizes, it should therefore be done separately and calmly, after the network has settled down.
    221+
    222+'''Why not activate CTV at the same time?'''
    


    michaelfolkson commented at 9:39 pm on November 10, 2025:
    This BIP draft is entirely orthogonal to scripting opcode proposals such as CTV. Proposed BIPs referring to other totally unrelated BIPs is not a practice that should be encouraged. Not least for the BIP author’s sake. Why not X, why not Y, why not Z becomes farcical when X, Y, Z have nothing to do with the initial proposal.
  140. in bip-????.mediawiki:224 in df3ca79c6a
    219+
    220+If there is community support for reducing block sizes, it should therefore be done separately and calmly, after the network has settled down.
    221+
    222+'''Why not activate CTV at the same time?'''
    223+
    224+CTV is still controversial with a minority of the community, and bundling it with this softfork could be seen as an attempt to trick/force it on the network.
    


    michaelfolkson commented at 9:43 pm on November 10, 2025:
    I think this whole question/subsection should be removed but if for some reason it was to stay in commenting on whether a non-related proposal is controversial or not and speculating on whether it is controversial with a majority or a minority seems highly speculative and not relevant.

    Rob1Ham commented at 9:49 pm on November 10, 2025:
    and I’m pretty sure the CTV contingency doesn’t want to be associated with this effort with a 10,000 foot pole

    dathonohm commented at 10:07 pm on November 11, 2025:
    Leaning towards removing this section in the next update.

    dathonohm commented at 1:20 am on November 13, 2025:
    Done.
  141. in bip-????.mediawiki:226 in df3ca79c6a
    221+
    222+'''Why not activate CTV at the same time?'''
    223+
    224+CTV is still controversial with a minority of the community, and bundling it with this softfork could be seen as an attempt to trick/force it on the network.
    225+
    226+However, this softfork does "set the stage" for a followup softfork in a year, which would be an ideal stage to include CTV if the community deems it appropriate.
    


    michaelfolkson commented at 9:50 pm on November 10, 2025:
    Again “set the stage”? What is this, a theater production? Whether this proposed consensus change activates or not it does not set the stage for another consensus change in a year, 2 year or 5 years. An alternative proposed consensus change would have to be considered independently by the community regardless of whether this consensus change activated or not.

    stutxo commented at 2:07 am on November 11, 2025:
    Why would you need to wait a year?

    moonsettler commented at 2:44 am on November 11, 2025:
    Right. In general you can’t activate new soft forks on the current menu while this is active, but CTV is an exception being a NOP upgrade.

    dathonohm commented at 10:05 pm on November 11, 2025:
    Great point.
  142. in bip-????.mediawiki:238 in df3ca79c6a
    233+
    234+https://github.com/bitcoinknots/bitcoin/compare/29.x-knots...UASF:bitcoin:29.2.knots20251010+UASF-ReducedData
    235+
    236+==Deployment==
    237+
    238+We propose a flag day startheight of 934864 (2026-02-01). This implies an expiry day stopheight of 987424 (2027-02-01). These heights were extrapolated from block 920464 which occurred near 00:00 UTC on 2025-10-24.
    


    Rob1Ham commented at 8:51 pm on November 11, 2025:

    @dathonohm on the telegram channel has now shared he is looking to change this as well as add activation. I’d encourage updating this documentation ASAP.


    dathonohm commented at 10:15 pm on November 11, 2025:
    I will update once I’ve decided on a better option.
  143. petertodd commented at 11:17 pm on November 11, 2025: contributor

    This draft continues to disable OP_IF/OP_ELSE/OP_ENDIF in Tapscript for no particular reason. The response by to me using my decade old, pre-segwit, https://github.com/petertodd/python-bitcoinlib/blob/master/examples/publish-text.py script to publish the BIP contents in a BIP-compatible way was to say that the objective is to ensure that data is non-contiguous. For that objective, all that is necessary is to limit the size of contiguous data.

    Why is the confiscatory removal of OP_IF still in this BIP?

    Indeed, I have to ask the same question about the disabling of OP_Success: that has nothing to do with contiguous data, and addresses no common transaction pattern. The only thing it accomplishes is to delay further soft-forks.

    And again, why is the taproot annex entirely disabled, rather than length limited? Again, the only goal this BIP could possibly achieve is to restrict the length of contiguous data. If the taproot annex is, say, limited to 256 bytes that goal would still be achieved.

  144. dathonohm commented at 6:16 pm on November 12, 2025: none

    Hi @petertodd -

    Why is the confiscatory removal of OP_IF still in this BIP?

    OP_IF in Tapscript is responsible for a more than doubling of the size of the UTXO set, and a spam flood that prevented normal monetary usage of Bitcoin for more than a year.

    This proposal does not “confiscate” anyone’s funds as far as I am aware. I am still investigating a few cases of what appear to be experimental usage from several months ago. But the fact that UTXOs created before the softfork activates are exempt from the rules means that it’s very unlikely anyone’s funds will be frozen, let alone “confiscated”.

    But even if a few sats are frozen for a year, the community may find this tradeoff worth it in order to eliminate the spam industry that has parasitically attached itself to Bitcoin.

    Indeed, I have to ask the same question about the disabling of OP_Success: that has nothing to do with contiguous data, and addresses no common transaction pattern. The only thing it accomplishes is to delay further soft-forks.

    Arbitrary data can be inserted into a Tapscript after an OP_SUCCESS, because no data afterwards is checked, and no size limits enforced.

    And again, why is the taproot annex entirely disabled, rather than length limited? Again, the only goal this BIP could possibly achieve is to restrict the length of contiguous data. If the taproot annex is, say, limited to 256 bytes that goal would still be achieved.

    I will consider this proposal.

    EDIT: I don’t think the added complexity of limiting the annex to 256 is worth it, since it’s already not being used for anything. What is your argument for keeping it?

    EDIT2: OP_SUCCESS allows uncapped contiguous arbitrary data, so your claim to the contrary is wrong. And the fact that it disables upgrading Tapscript while the deployment is active is already addressed in the BIP.

  145. john-moffett commented at 6:45 pm on November 12, 2025: contributor

    OP_IF in Tapscript is responsible for a more than doubling of the size of the UTXO set

    To be clear, OP_IF itself has little to nothing to do with the ability to push arbitrary data efficiently. With OP_IF under the rest of the rules of this draft, you can insert approximately 396,393 bytes of arbitrary data payload in a standard tx. Without it, that only drops down to approximately 395,640 bytes, a ~0.25% decrease.

    But the fact that UTXOs created before the softfork activates are exempt from the rules means that it’s very unlikely anyone’s funds will be frozen, let alone “confiscated”.

    This does not address the risk of chains of presigned transactions being confiscated/lost.

    in order to eliminate the spam industry that has parasitically attached itself to Bitcoin

    This draft does not even significantly increase the burden for spammers let alone eliminate the entire industry.

  146. dathonohm force-pushed on Nov 13, 2025
  147. Reduced Data Temporary Softfork 903d2fd5ed
  148. dathonohm force-pushed on Nov 13, 2025
  149. dathonohm commented at 1:35 am on November 13, 2025: none

    Hi all -

    I’ve updated the BIP document to address the feedback so far.

    • The Abstract and Motivation sections have been extended a bit per @murchandamus’ request.
    • The Specification section clarifies some details.
    • The Deployment section has been removed. I am leaning toward an MASF with a long signaling window, to give the ecosystem more time to prepare.

    Next I will extend the Rationale section with more alternative approaches, again as requested by @murchandamus.

    Here are the “alternative approaches” I gathered. Please let me know if I have missed any:

    1. Ban pushdata instead of limiting pushdata size
    2. Apply a length limit to the Annex instead of invalidating it
    3. Add limits on overall witness or transaction sizes
    4. Make softfork permanent rather than temporary
    5. Change activation to miner-activated
    6. Removing the witness discount/making OP_RETURN cheaper

    I will also update the Backwards Compatibility section to address some monetary use cases that are potentially affected. So far it seems the biggest concern is OP_IF being used by Miniscript, though thankfully it seems as though no popular wallet software is generating such scripts currently. Liana was the one wallet mentioned as most likely to include such scripts, and its developers have confirmed that it does not do this.

    However, @mononaut discovered what look like HTLCs that use OP_IF in Tapscript from several months ago, and I am requesting more information about this use case if anyone has it, to determine whether it is likely still being used today.

    Depending on the result of the investigation, this could end up affecting the spec of this BIP, or the community might decide to accept the risk that some small amounts in such constructions could be affected.

    In any case, I think the longer activation timeline will mitigate practically all concerns about confiscation/freezing risk.

    I am grateful to everyone for your feedback and support so far.

  150. murchandamus commented at 1:39 am on November 13, 2025: contributor
    Especially in this early draft phase and the immense count of comments, it would be common courtesy to avoid force pushes since it makes it unnecessarily arduous for your reviewers to keep track of whether their review comments have been addressed. Please instead add commits to evolve your draft. The commit history can be squashed before the merge, if found to be advantageous.
  151. dathonohm commented at 1:40 am on November 13, 2025: none
    @murchandamus Understood.
  152. pinheadmz commented at 2:32 pm on November 13, 2025: member
    Serious question: why not just prohibit the magic bytes in data fields? FFD8FFE000104A4649460001 is astronomically unlikely to “occur naturally” in a bitcoin transaction, and prohibiting this exact sequence of bytes would by definition keep the blockchain clear of jpgs forever.
  153. petertodd commented at 3:25 pm on November 13, 2025: contributor

    Prohibiting magic bytes can be used adversarially in multi-party protocols, e.g. to make it impossible to recover funds in Lightning. For example, by using that prohibited sequence in a HTLC, or in a scriptPubKey in the commitment transaction.

    You can’t just rely on chance for this. The problem isn’t random failure. It’s targeted attack.

    On November 13, 2025 8:33:14 AM CST, Matthew Zipkin @.***> wrote:

    pinheadmz left a comment (bitcoin/bips#2017)

    Serious question: why not just prohibit the magic bytes in data fields? FFD8FFE000104A4649460001 is astronomically unlikely to “occur naturally” in a bitcoin transaction, and prohibiting this exact sequence of bytes would by definition keep the blockchain clear of jpgs forever.

  154. elmeriniemela commented at 3:52 pm on November 13, 2025: none
    don’t break user-space
  155. BitcoinMechanic commented at 4:36 pm on November 13, 2025: none

    don’t break user-space

    This is a principle lifted from OS design (something Linu{s,x} Torvald is known for yelling at people) which is not applicable here.

    Bitcoin is not a general purpose operating system, it is a network. People using Bitcoin for arbitrary data storage are not “users” in the typical sense as they are using a monetary network and tricking it into believing they are monetary users in order to hijack its resources for a different and unintended purpose.

    Now you are free to consider preventative measures to be counter productive, but the vast majority agree - even those against this BIP - that the overall goal of reducing arbitrary data is desirable.

  156. katesalazar commented at 4:54 pm on November 13, 2025: contributor
    PLease dont post offtopic comments and please dont answer to offtopic comments, or the thread will get moderated once again… cheers
  157. in bip-????.mediawiki:214 in 903d2fd5ed
    209+
    210+'''Does this proposal solve spam completely?'''
    211+
    212+No.
    213+It is impossible to solve spam completely, and typically spam is best fought with policy/filters, not consensus.
    214+What this softfork does is require users wanting to store large unencrypted files in the blockchain to disguise the data as financial data and/or break it up into multiple data pushes. Obviously doing so is considered an abuse of bitcoin and should be avoided, but if it does happen, this BIP strengthens the argument that data storage is not a supported use case.
    


    defenwycke commented at 9:22 pm on November 13, 2025:

    The explanation in lines 210–214 basically admits the proposal doesn’t prevent spam at all — it just forces the exact same payloads to move into more obfuscated channels. That isn’t spam mitigation; it’s displacement. And the displacement is strictly worse for the chain because disguised payloads end up bloating scripts, fragmenting pushes, and making policy enforcement harder.

    So the net effect of this soft fork is: no reduction in data, no reduction in spam, just a reshuffling of where the bytes get hidden — with added overhead.

    If anything, it freezes genuine protocol progress while handing spammers a blueprint for how to pack the same data into financial-looking encodings that are even harder to detect or classify. It doesn’t solve the problem; it just guarantees the next wave of spam will be heavier, more fragmented, and less transparent.

    A soft fork that admits it can’t stop spam, and instead pushes it into forms that further degrade Bitcoin’s data model, isn’t really a mitigation — it’s just an expensive stall button on actual solutions.

  158. in bip-????.mediawiki:23 in 903d2fd5ed
    18+
    19+==Copyright==
    20+
    21+This document is licensed under the 3-clause BSD license.
    22+
    23+==Specification==
    


    bitcoin-eagle commented at 7:53 am on November 14, 2025:

    Since the proposed consensus changes don’t achieve stated goal of minimizing data storage and especially don’t stop the most harmful method of embedding data that is using unspendable ouputs that will pollute utxo set forever. And have many negative side effects like confiscation and future upgrade centralization.

    I propose to remove actual consensus changes from this BIP. Let’s keep it just as a motivational manifesto. That will send message to spammers without harming monetary users of bitcoin.

    The list of potential changes can stay here just as a potential threat to spammers so they will become afraid to use bitcoin for data storage.

    Later after someone suggest actual good consensus change that handles incentives of fake pubkeys correctly and doesn’t harm monetary users we can create another BIP


    bitcoin-eagle commented at 2:29 am on November 15, 2025:

    Know thy enemy. Casey is committed to update ord once per week to evade filters.

    Are you willing to fork every Sunday?

    https://x.com/rodarmor/status/1989511464839942336

  159. defenwycke commented at 2:05 pm on November 14, 2025: none

    The explanation in lines 210–214 basically admits the proposal doesn’t prevent spam at all — it just forces the exact same payloads to move into more obfuscated channels. That isn’t spam mitigation; it’s displacement. And the displacement is strictly worse for the chain because disguised payloads end up bloating scripts, fragmenting pushes, and making policy enforcement harder.

    So the net effect of this soft fork is: no reduction in data, no reduction in spam, just a reshuffling of where the bytes get hidden — with added overhead.

    If anything, it freezes genuine protocol progress while handing spammers a blueprint for how to pack the same data into financial-looking encodings that are even harder to detect or classify. It doesn’t solve the problem; it just guarantees the next wave of spam will be heavier, more fragmented, and less transparent.

    A soft fork that admits it can’t stop spam, and instead pushes it into forms that further degrade Bitcoin’s data model, isn’t really a mitigation — it’s just an expensive stall button on actual solutions.

    I personally don’t believe this proposal, if implemented would be a valid solution.

  160. vukolic commented at 1:53 am on November 15, 2025: none

    OP_IF in Tapscript is responsible for a more than doubling of the size of the UTXO set, and a spam flood that prevented normal monetary usage of Bitcoin for more than a year.

    This is nonsense. First of all - for practically a year, mainnet Bitcoin tx fees range from 0 to 2 or 3 sats/vB practically every day.

    Second of all, there are projects such as ours at Bitcoin Scaling Labs (https://www.bitcoinscalinglabs.com/, https://github.com/bitcoinscalinglabs/) which actually use OP_IF arbitrary text embedding to actually increase the possible throughput of monetary transactions on Bitcoin L1. We were able to get up to 160 tps with this technique on Bitcoin L1 (as oposed to 7tps of standalone Bitcoin L1 throughput).

    You basically have no clue what arbitrary text embedding can be used for and how beneficial it can be to the entire ecosystem.

  161. TomzBench commented at 1:59 am on November 15, 2025: none

    Second of all, there are projects such as ours at Bitcoin Scaling Labs (https://www.bitcoinscalinglabs.com/, https://github.com/bitcoinscalinglabs/) which

    You basically have no clue what arbitrary text embedding can be used for and how beneficial it can be to the entire ecosystem.

    Dude, even if bip fails, your rink a dink project gonna get dwarfed by other solutions. Stop doing whatever you’re doing

  162. vukolic commented at 2:07 am on November 15, 2025: none

    Dude, even if bip fails, your rink a dink project gonna get dwarfed by other solutions. Stop doing whatever you’re doing

    Amazing suggestion “dude”. Mind your own business and go censor some other network - not this decentralized one.

  163. in bip-????.mediawiki:58 in 903d2fd5ed
    53+
    54+It also reinforces Bitcoin's core principle of censorship resistance, because data storage competes with payments, making Bitcoin harder to use without trusted third parties, degrading its quality as money.
    55+
    56+Finally, it improves decentralization of the node network by re-establishing the long-held commitment towards minimizing the cost (financial or otherwise) of operating a node.
    57+
    58+By rejecting data storage, this BIP liberates Bitcoin protocol developers from having to cater to all possible use cases in perpetuity, enabling them to focus on what's really important: Bitcoin's success as money.
    


    thewrlck commented at 11:14 am on November 16, 2025:
    Even if certain inscription methods are restricted, inscriptions will simply migrate to new encodings. The entire inscriptions ecosystem relies on ord, and new versions are released frequently. If censorship workarounds become necessary, a new ord release implementing them would be adopted quickly. There are effectively unlimited ways to encode inscriptions on Bitcoin, and if required, they could introduce new encoding schemes on a weekly basis.

    dz2nt commented at 5:57 pm on November 16, 2025:

    Then what is the problem? everybody is happy, right? Those who do not want to see arbitrarily long contiguous non monetary data on chain or on the mempool will get exactly that thanks to the strict size limits here imposed. Those who want to add non monetary data still can, as you say. They will just have to chunk it and encode they data harder…

    …Or they could move to an L2: For instance, if you did want to create a decentralized Name Service Protocol you can just leave a less than 40 bytes pointer in an OP RETURN including the protocol id, version and hash of the L2 record. The L2 record might be arbitrary large but it is not tracked by bitcoin nodes but by name service nodes. Bitcoin just serves as the layer that makes the record “real” or confirmed in the L2.


    thewrlck commented at 1:18 pm on November 17, 2025:

    The real problem is not that the proposal restricts data heavy encodings, because, as acknowledged, inscription methods can always mutate, adapt, or migrate to L2s. The problem is that the BIP attempts to fix this issue by confiscating funds while failing to actually solve the underlying problem it targets.

    If arbitrary data insertion can trivially adapt to new encodings, then restricting certain patterns does not eliminate the behavior.

    It merely breaks existing outputs and punishes current users while leaving the door open for the same activity to resume in a slightly different form.

    So the contradiction is that you don’t stop inscriptions. They evolve, migrate, or re-encode.

    But you do destroy or freeze funds, which undermines one of Bitcoin’s core principles, that validly created UTXOs remain spendable according to consensus rules.

    Therefore the cost of confiscation is real and permanent, while the benefit, stopping data abuse, is temporary and ineffective.

    In that sense, the BIP resolves nothing, yet introduces a precedent that is far more dangerous to Bitcoin’s monetary assurances than inscriptions themselves.


    csuwildcat commented at 1:42 pm on November 17, 2025:
    Agree, and this whole situation highlights why protocols that aim to serve as ubiquitous utilities serving critical functions should, virtually without exception, ensure backwards compatibility. The Web is a great exemplar of a system that follows this principle, and it is one of the reasons it’s been such a robust, reliable medium. I’d argue Bitcoin should take its backwards compatibility/operational promises to coin holders far more seriously than the Web does for content publishers, given the Web is mostly centralized site operators who can make updates to their own content without breaking the user’s experience. If anyone in this community hasn’t already been treating Bitcoin’s coin-reliant surface area as a virtually ‘in stone’ promise to coin holders, they should quickly disabuse themselves of any notion to the contrary.
  164. thewrlck commented at 11:15 am on November 16, 2025: none
    If required, ord could introduce new encoding schemes on a weekly basis.

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bips. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-11-17 16:10 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me