pull down to refresh

Given the debate around the issue I think this is probably an opinion-based question, but I'd still like to try to clear up some misconceptions.
Disclaimer: I'm a Bitcoin Core contributor, argued in favor of dropping the OP_RETURN restriction, and co-authored a document on the matter that was signed by several other contributors and got published on the bitcoincore.org website (which I recommend you read). While I'm only going to give my own view below, I think I have a good idea on at least the proponents' opinion on the matter.
I agree that Bitcoin is money, not a storing database, and strictly only monetary data should be on the blockchain.
I agree with this, and have argued strongly in the past against developing solutions that relied on using the chain purely as a publishing mechanism for non-financial data. Blockchain space can be expensive, slow, unreliable, and costly (in terms of bandwidth/processing by nodes). It should be used for what it's good for: proving that censorship-resistant payments are valid to the world; a use case for which no better alternative exists, as opposed to many data-publishing use cases that have no such requirements.
I believe that in the long term, such (in my view) sub-optimal use will be driven to alternative solutions anyway as on-chain space grows more valuable, and that deviations to this, like we see now, are temporary convenience solutions driven by hype. It's worth warning people that they likely won't persist with changing economics, and provide some discouragement for it - but not when that discouragement becomes harmful on itself (see further).
However, as developers and community of node runners, we also do not really get to decide what people use the chain for, beyond agreeing on consensus rules(*). The contents of blocks is decided by miners, who are - by design - driven by economic incentives. And if people are willing to - hopefully temporarily - pay more for "dumb" data storage on chain than real payment activity, there is little that can be done about this, for a multitude of reasons:
  • Data can always be disguised as payments, making attempts to stop or even discourage it a cat-and-mouse game, which at best pushes those who pay for these use cases to slightly less efficient techniques (like encoding the data in addresses, amounts, signatures, ...).
  • Given enough economic demand for data storage, nothing prevents submitting transactions directly to willing miners (which fundamentally can't be prevented(*)), bypassing non-mining nodes, the software they choose to run, and thus ultimately, their influence entirely.
  • Philosophically, would you want a Bitcoin in which some (significant, but far from universal) subset of node runners get to decide which transactions are allowed or not, given that that, if effective, the same mechanism could be used to block "undesirable" payments, while providing a censorship-resistant payment system was the very thing Bitcoin was designed to enable? Of course, ultimately the agreement of all Bitcoin users (the consensus rules, see below(*)) determines what transactions are allowed, but this being hard to change is a feature, not a bug.
I still find it hard to understand the argument on favor to this change. As far as I understand the OP_RETURN will be relaxed from 80 Bytes to 100k bytes, allowing the storage of arbitrary data, like images and even small videos. Why ?
I hear often "Arbitrary data is already been placed on the blockchain", but then why the complacent attitude towards it ? and not fight the spam instead ?
To be clear, Bitcoin Core v30 lets node runners configure the OP_RETURN size limit (the -datacarriersize config option). The only change is that its default value is increased (to effectively unlimited). It is marked deprecated, which means the option is expected to be removed in a future version, but given the current political dispute around it, I do not expect that will happen any time soon.
The reason for changing the default isn't just that OP_RETURN is already used, and data storage through other means is already possible (including through ways that are cheaper than through OP_RETURN); it is that attempting to address this at the relay level is not more than a mild discouragement, and given enough incentives to bypass it (as we've seen exist) is harmful on itself, both for the ecosystem at large, and for individual node runners, in addition to being ineffective.
The reason it is harmful for the ecosystem at large is mining centralization. Given enough demand for transactions that the network of nodes shuns (for whatever reason), large miners are incentivized to develop means for users and companies to submit these shunned transactions directly to them (this is already happening to some extent). If these "out-of-band translation relay rails" end up becoming economically relevant enough (through the out-of-band fees they involve) that miners not using them become uncompetitive, the ecosystem has a huge problem, far bigger than some temporary JPEG hype drivel: the inability for new small miners to enter the ecosystem (because who would bother sending transactions to a tiny miner), especially anonymously (the best protection the ecosystem has long term against miner censorship). In addition, it incentives the development of one or a few centralized "payment submission network" companies that all big transaction creators and miners contract with (something we've seen in other blockchains), imposing a large censorship risk on this company, and making the entire goal of decentralization a shim of what it was supposed to be.
The reason it is harmful for individual node runners is that the entire point of participating in transaction relay is having a reliable view of what transactions will be mined in the future, for at least these reasons:
  • For performing decentralized fee estimation (avoiding the need for centralized services for this).
  • For accelerating relay of blocks. When a node already has (most, or ideally all) transactions that are included in a block downloaded and/or validated, it does not need to redo those things when transactions actually appear in a block. The BIP152 compact blocks protocol relies on this principle. The faster the node network can propagate blocks through the network, the more it reduces the benefit of large miners over small miners (this is related to selfish mining), contributing to decentralization by not hurting new small miners entering the market.
  • When miners accept transactions that a node shunned, the node is still required to download, process, validate, and store its result, forgoing any benefits related to moral stance or resource usage the shunning might have had in the first place. Of course, nodes are in no way required to participate in transaction relay. They can use whatever policy they like, including not relaying transactions at all (the -blockonly setting), if they are uninterested in having a reliable view of future transactions.
I also hear the argument "Blocks are empty" so Miners need generate revenue. To which I also respond; Bitcoin mining is a free market and the difficulty adjustment helps miners set their output accordingly to balance their electricity bill. They could partially set their output off/on.
Miners have huge capital investments in their hardware that needs to be paid off, the actual electricity costs of running the miners are only part of their bill. In the long term you're right of course that miners can and will shut down if they are unprofitable, and this will result in the difficulty compensating for it, making costs lower for the remaining miners. But even then, those remaining miners in the new equilibrium will prefer earning more fees over less fees! And if people are willing to pay those, for whatever reasons, including ones you and I dislike, they'll find ways to do so.
So is this changed being pushed by people who want to put a storage business model on top of bitcoin, like the altcoins do ? What does will affect Node runners (like me) who don't want to store dumb JPGS and possible illicit material on their hard drives.
Speaking for myself, I hope you believe me when I say that is not the motivation at all. I think these use cases are temporary hype cycles, and not rational use of blockchain space, but the market can stay irrational for a long time. However, I believe that attempts to discourage these use cases through node relay policy, in the presence of widespread evidence that miners accept these transactions anyway, are ineffective, akin to making nodes bury their heads in the sand, and ultimately harmful to the decentralization of the system at large.
(*) One small note however, the ecosystem does have an actual means of blocking transactions: consensus rule changes. If there is widespread agreement throughout the ecosystem that a certain class of transactions is harmful, the possibility exists in theory to adopt a consensus rule change that makes these transactions outright invalid, forcing miners to reject them (because otherwise they'd be producing invalid blocks, forgoing all revenue). This process is slow, should be used very carefully not to undermine fundamental properties (like censorship!) and is unsuitable for anything resembling a cat-and-mouse game like this, in my view. However, I do want to bring this up to make it clear that in the presence of widespread, fatally-harmful behavior, node runners are not entirely powerless in this matter.
1143 sats \ 32 replies \ @LibreHans 2h
Yeah, the usual nonsense.
  • "Data can always be disguised as payments", yeah, bitcoin can be abused, so we legalize the abuse
  • "Given enough economic demand", it's obviously not given when looking at the current fee market, and which specific demand anyway
  • "For performing decentralized fee estimation", fee estimation is not a computer science problem and not something a node can do for users in the first place, and certainly not a reason to relay spam
  • "speeding up block propagation for the transactions we expect to be mined", that's the point of filtering spam, to slow down the propagation
  • "but accepting that as a censorship-resistant system" - bitcoin is a censor ship resistant monetary system, not file storage or database system
reply
135 sats \ 9 replies \ @optimism 2h
If you disagree with every single point of someone that has literally written more than half of the critical code that you use also when you run Knots, does that make it nonsense?
reply
231 sats \ 7 replies \ @LibreHans 2h
Argument from authority
reply
Maybe you're right, but then, is it really nonsense? Or a different view from your own? For example, how do you estimate fee in the face of different miner policies?
reply
100 sats \ 5 replies \ @LibreHans 1h
The same way I've estimated fees since before the feature existed. And it doesn't matter if it's optimal or not anyway since we got RBF.
"You have to relay spam to have a computer give you economic advice for fees you can replace anyway" - really makes no sense.
reply
The same way I've estimated fees since before the feature existed
"the feature" being estimatesmartfee?
How do you estimate then?
PS: you don't have to relay. Just have to have knowledge about it.
reply
100 sats \ 3 replies \ @LibreHans 1h
It seems like you're missing the point. How I personally estimate fees is irrelevant, the point is that it's not a computer science problem and that a computer can't solve it, and that it doesn't matter because of RBF anyway.
reply
102 sats \ 2 replies \ @optimism 1h
Oh, well, I'm sorry to be a noob. Apologies for asking questions.
deleted by author
100 sats \ 18 replies \ @Scoresby 1h
yeah, bitcoin can be abused, so we legalize the abuse
policy is poorly compared to legality. If you want to make "the trade" illegal, you need to make such transactions invalid. Changing policy is akin to saying "we don't want people to do this, but we will still accept it when it's in a block"
This is what I don't get about what I believe is your argument: Bitcoin is a permissionless network. Run any code you like. Why do you care so much what Core changes when it comes to policy? Just run Knots. Problem solved as far as you are concerned.
reply
this debate reminds me of those stupid times from plandemic, so a better way to explain is with a meme 😂😂😂
Just run Knots. Problem solved as far as you are concerned.
just wear your mask, what's your problem if I do not wear it?
reply
Indeed, lots of stupidity, like the idiots who pretend that anybody says that filters solve all problems.
reply
reply
I'm not surprised you don't understand the problem, after all you're a long time bitcoiner and can maintain as many nodes as you like, and spend an unlimited amount of sats for hardware upgrades, and you can't related to people in emerging markets who dream of running a node one day.
reply
so my meme is true: if I do not run Knots I am killing people in "emergent markets" now LOL
reply
“More babies are dying in countries around the world because they have less economic freedom” https://odysee.com/@HardcoreCrypto:f/babies-are-dying-because-of-bitcoin:c (Not my video, just found through search).
Wow, how things never change. Knots drama is Bcash all over again.
Cute, so you pretend I said something I didn't say to make a point, maybe because you have no point LOL
33 sats \ 3 replies \ @Scoresby 54m
Why would I want to maintain more than one node?
Last I checked, my 8-year-old laptop is still keeping up with the chaintip.
reply
100 sats \ 2 replies \ @LibreHans 50m
Hurr durr my 8 year old computer is good enough to sync the spam chain. Just stop being poor fuckface.
0 sats \ 1 reply \ @sudonaka 28m
Surprised to see you tricked here Darth.
Every node currently defaults to filters. The change is upcoming in Core v30.
reply
To be clear, Bitcoin Core v30 lets node runners configure the OP_RETURN size limit (the -datacarriersize config option). The only change is that its default value is increased (to effectively unlimited). It is marked deprecated, which means the option is expected to be removed in a future version, but given the current political dispute around it, I do not expect that will happen any time soon.
reply
0 sats \ 1 reply \ @fourrules 1h
In law there is a concept of malum in se, and malum prohibitum. Malum prohibitum is the policy layer, where nodes regulate the network, malum in se (bad in itself) is the layer of strict validity.
Because of the basics facts about information theory it's impossible to deterministically ban spam at the validity layer, you have to do it based upon rough consensus at the policy layer, which is how it's been since Satoshi.
Its just an engineers autism that leads people to believe that if things are not deterministic then they are not valid. Perfect is the enemy of good enough.
reply
100 sats \ 0 replies \ @Scoresby 1h
if Bitcoin has to rely on "rough consensus at the policy layer" for anything of very much importance, it isn't censorship resistant.
reply
“ yeah, bitcoin can be abused, so we legalize the abuse”. It’s already “legal” in this analogy.
“ it's obviously not given when looking at the current fee market, and which specific demand anyway” Current is not future. Things can change quickly. Good engineering needs to anticipate future conditions.
“ fee estimation is not a computer science problem and not something a node can do for users in the first place, and certainly not a reason to relay spam” Why isn’t it a computer science problem?. Many many new cryptoeconomic and distributed computer science concepts are being invented from Satoshis discovery. Calculation of optimal fees in a decentralized mempools in distributed ledgers is absolutely an emerging computer science problem, and will be studied in academic contexts for years to come.
“ that's the point of filtering spam, to slow down the propagation”. But it doesn’t. It’s in the block. I would encourage you to learn more about how clients handle the peer to peer traffic for tx and block propagation. It’s not as simple as an ultimately non controversial single client-side flag.
“bitcoin is a censor ship resistant monetary system, not file storage or database system”. I agree with you here, however the way to achieve this is through economic incentives, not through arbitrary filters. Do you see the irony of asking for censorship resistance while arguing for filters?
reply
  • "It's already legal", yeah, so the core argument is that core devs were wrong for the last decade, and have finally understood filters.
  • "anticipate future conditions", indeed, they are doing guesswork and selling it as good engineering, but they have lost my trust. Knots is also doing some guesswork but looks more attractive to me by now
  • "Why isn’t it a computer science problem?" Estimating fees needs knowledge of the future, or a risk based prediction, users have to be educated if they want to solve this, they can't rely on a machine. And RBF.
  • "Do you see the irony of asking for censorship resistance while arguing for filters?", me not transmitting a message is not censorship, and nobody wants to censor financial transactions
reply
You are welcome to run bcash or knots or whatever alternative client you like.
Don't complain to us when it breaks.
reply
This was useful. What was most useful for me is hearing the arguments about out-of-band relays, and relay consistency.
reply
131 sats \ 1 reply \ @gregtonoski 2h
"You can't have nothing burger without word salad". TL;DR Run Bitcoin Knots https://bitcoinknots.org/ if you like.
reply
... and mine spam-free either solo or with Ocean.xyz if you want to improve Bitcoin.
reply
I think you should reconsider: A) whether or not empty blocks are a sign of a healthy or a suboptimal condition B) whether or not non-monetary transactions would be driven out by the desirable monetary transactions
If we take you on your word, as a good faith actor, that core contributors are not overly influenced by the market for putting graffiti and smut on the bitcoin blockchain, neither of these positions seem well-founded as far as I can tell.
We're at all time highs in hashrate in the context of incumbent governing systems that are both powerful and hostile to bitcoin as a medium of exchange, but the transition from SoV to MoE doesn't have to slow and incremental. It is more likely to be like a dam breaking, and if not we are decades away from it being problematic given the quantity of bitcoin mining hardware that has already been manufactured, even if hashing innovation were to stop tomorrow and miners competed on energy cost alone.
The desire to force a fee market is frankly impatient hand-ringing dressed up in a veneer of technical acumen.
On the second point, entire networks, such as Steemit (now Hive) found traction by putting content on a Blockchain. It seems in principle that Bitcoin's robustness, immutability, and market dominance in terms of crypto mindshare that makes it an attractive place to put permanent multimedia content, and that this demand will always outstrip monetary demand for block space if hostility towards it by system design and policy defaults are not upheld. Why wouldn't someone construct a new kind of Steemit on lightning, then "settle" all of the text every 10 minutes, taking up the entire block to create an immutable Twitter? Why would that commentary necessarily be low value junk, maybe the scarcity of block space creates a popularity contest, where someone ports a qualitative voting system onto the chain, that starts to scale as only the highest voted messages get added to the chain. Why is that inherently less valuable than monetary transactions? And on the other side, why would content that is chased off all other communication media, like promulgators of CSAM or other contraband, not wish to use our monetary media just to stain it?
It seems to me that the unfounded fee market anxiety generates a need to feel like block space has a base layer of demand that is not monetary, and that this is both the root of the fatalism about spam and the (unnecessary) cope that monetary transactions will outbid content transactions, but there is no evidence for free latter, it's just a baseless assertion that has taken root in a closed circle of core developers who refuse to listen to anyone outside the clique.
You don't have to be fatalistic about spam, because the fee market doesn't need to be forced, we don't need a base layer of non-monetary demand for block space, and spam doesn't need to be deterministically solved to be inhibited by an ongoing pursuit of memepool hygiene.
Let the spammers collude with miners directly, because then nodes can spin up their filters and force a cost egregious abuse based upon the level of spam through the risk of orphaned blocks.
reply