I was checking out what’s going on with Bitcoin Core (still stuck on an old version since I haven’t updated) and saw some upcoming changes that left me scratching my head. I knew there were folks who wanted to morph Bitcoin into some kind of all-purpose Ethereum-like coin for ages, but I always thought logic would win in the end. Turns out, this idea is gaining some ground. They basically want to mix in non-Bitcoin stuff with Bitcoin. Not sure what the upside is. It’ll just add unnecessary weight to the blockchain. Bitcoin was made to transfer value from one point to another, anything beyond that is just fluff. There’s a detailed discussion about it here:
https://github.com/bitcoin/bitcoin/pull/32359
I really can’t wrap my head around why these devs would risk so much messing with people's money. Why complicate things that should just be straightforward and efficient? The main goal should be to keep the funds secure. Bitcoin isn’t some gadget where you can just toss in 'cool features'; it feels like trying to adjust a nuclear reactor without proper checks. You’re dealing with people’s hard-earned cash, and gambling with their savings is a bad idea. Any additions that complicate the system, instead of ensuring stability and allowing money to flow securely or sit still as long as the holder wishes, just doesn’t help BTC at all. I wouldn’t want to be the one who messes up Bitcoin in the long run. Innovations should really focus on solid foundations.
Lifting OP_return limits could be a big mistake
19 replies 397 views
Concept ACK.
I support removing arbitrary limits on Core. Sometime, people need to acknowledge that the nature of Bitcoin is to be a permissionless network, where information can be embedded in many forms, and trying to stifle all of them creates more problems than it solves. For example, the Ordinals could be implemented far more efficiently if certain limits were removed, than by bloating the chain with UTXO dust that will remain unspent forever.
Also, the true reason why people oppose these proposals is because they don't want to see fees skyrocket. They don't care what's being added in the chain, just as they don't care for every other transaction that is not "data-only". Opposing the free market from finding innovative and efficient ways to make use of Bitcoin is contrary to the spirit of Bitcoin, and raises concern for the security budget problem. The more obstacles we place to the way information can be spread, the more we push ourselves towards declining on-chain usage.
The demand to store and move money from A to B will always be there and will be increased in the future as governments remove physical cash, then you will see an organic demand for the monetary usage in the form of more transactions, which is more important than storing arbitrary crap on the blockchain. The network needs to be ready for the monetary usage for when that demand happens. If you add more complexity, you add a higher risk that something goes wrong. Who cares about Ordinals or anything else but storing money and moving it around, and guarantee that it remains there 20, 50, 100 years from now. The way you do this is the opposite of adding things that have another goal beyond the monetary usage. If you want to store data decentralized, there's other networks, like I think usenet or whatever else. The point is, Bitcoin's blockchain should be isolated for the monetary purpose, because we don't get another chance. What you are adding here is an attack surface that will be exploited, you are gambling with people's savings from all over the world.
SwiftMinerSenior Member
Posts: 259 · Reputation: 1036
#4May 24, 2023, 10:58 AM
Actually, while the intention behind the proposal is kinda framed around enabling specific use cases without bloating the UTXO set, the actual technical impact on the network's overall resource consumption like storage, bandwidth, processing is still kind of a point of contention.
There are valid technical arguments on both sides of it and the long-term implications are not definitively settled yet , as I like to call it a 50/50 thing.
However I think removing the limit may actually introduce a couple of risks. While OP_RETURN data isn't part of the UTXO set, larger and more frequent data outputs will still increase the overall size of the Bitcoin blockchain and still demand more storage for full nodes and also increase initial synchronization time for new participants too.
By that metric, that's what the PR does. It removes more complex code than it adds.
I don't understand why everyone is flaming us for someone who doesn't frequently contribute to Core opening a PR advocating for a change they'd like to see. Just because there is a PR doesn't mean that it's a good idea or that will be merged.
I agree with @Mia Chloe.
You can't prevent arbitrary data to be stored on the Bitcoin blockchain, there are way too many methods even if you remove OP_RETURN completely. The purpose of this proposed change has to do with incentives: if those using Bitcoin for data transactions switch to technologies which pollute the UTXO set (Stampchain and friends), then the cost of running a full node will increase.
This was also the reason why OP_RETURN was introduced at all. Because things like Ordinals (NFTs and tokens) already exist since 2013 or 2014, but the first variants of coloured coins and similar stuff were often polluting the UTXO set.
I however don't know if I really agree with this limit removal. It takes away a method to control the contents of the own mempool. I was quite happy with the current standardness rules, which should incentive OP_RETURN usage enough to prevent Stampchain-type mechanisms to become more common, but not enough to create incentives for additional bloat. So from my (advanced but not expert) point of view, NACK.
@novmbill: again a newbie post with overly intellectual wording which smells very AI-ish, can you actually explain what you wrote? ;P
Per usual, a controversial suggestion by a well-known figure in Bitcoin is being over-sensationalized for the sake of creating engagement & grabbing attention; not here so much as Twitter, where the VP of Ocean Mining has gone so far as to say that the change will turn Bitcoin into a "worthless altcoin." There are all these people saying its the "end of Bitcoin" but in reality it looks like the proposal will fail to achieve any kind of consensus among the people whose opinions actually matter.
Has anyone actually done a case study on how quickly you can write data into the OP_RETURN payload? If you can't publish more than a few bytes per second because of the mining difficulty schedule, then I don't see who can cause a problem with this, besides mining pools generating vanity blocks like the Trump block and the AI Satoshi block.
I don't like this PR. But without also proposing to make OP_FALSE OP_IF ... OP_ENDIF become non-standard or invalid, some people will continue to use Ordinals and similar protocol that bloat UTXO.
IPFS and BitTorrent protocol does better job for that.
Just report such post with reason "spam & AI generated text".
I'm afraid this PR is a lot worse than what it appears at first. It is not just removing the OP_RETURN limit (which is bad enough on its own since bitcoin is not a cloud storage!), but also it is removing the option user had to set/change that limit as well. In other words if this PR is merged and if you run the next version of bitcoin core you will no longer be able to choose which OP_RETURN size you want to relay (that choice should be yours to make), and instead you will be forced to use what the default setting is!
In fact things like this are the reasons why I've argued for the benefits of having a strong alternative implementation of the Bitcoin protocol to be used instead of core... At some point when the core devs keep refusing to fix exploits like what allows the Ordinals Attack to take place and then limit users' ability to set their own standard rules, the benefits of having an alternative implementation outweighs the disadvantages of it...
It won't be merged.
But jpeggers wouldn't have the prestige of having their jpeg on Bitcoin. Ordinals-type inscriptions are already being done on a dozen different chains and people still would prefer to do it on Bitcoin (when fees are cheap enough).
BTC reached all-time highs in terms of price, transactions per day & hash rate after the introduction of Ordinals. Perhaps the wisest move was doing nothing at all, as the "Ordinals attack" seems to have been the least effective attack on Bitcoin of all-time.
Bitcoin's price, hashrate and tx/day have been on the rise for the past ~16 years. There has been a handful of large scale spam attack against it in those 16 years (including the Ordinals Attack) all of which have slowed down its adoption and growth, more so during the attacks.
I agree to this. We already had the mess with inscriptions and what not on taproot. I fear that this will make that spam return.
On the other hand, cleaner code and more lively mempool to keep the miners happy is also a possible point, plus... maybe, just maybe, people got bored of inscriptions and similar crap.
I find it unbelievable that this happens after so many years of block size debate. Somehow I fear we are going on the wrong direction (for some while already).
Back to current change: technically there are pluses and minuses, many of of them not technical and hard to assess their long term impact.
There are fair amount of alternative Bitcoin full node software, but for better or worse Bitcoin Core is still very popular. I've tried few alternative in past, but still prefer Bitcoin Core.
Bitcoin L2 isn't that popular though, with varied degree of trust/centralization[1] and even falsely pretending as Bitcoin L2/sidechain[2].
[1] https://www.bitcoinlayers.org/
[2] https://www.lxresearch.co/starting-to-define-layers-a-year-later/
Looks like Bitcoin Knots may be a good way to protest against this. It has Bitcoin Core functionalities and you are actively voting against this PR by running a node. We should do that but also try to stop this on Bitcoin Core itself from being merged. Bitcoin is not some experimental blockchain to host jpegs. It's clear to me now that the whole argument for this PR is, "the blocks are empty so we must come up with ideas to fill the blocks". This is just linear thinking. The demand for using BTC for it's real use case, which is to move and store money, will be an S curve, and when it happens, you don't want the blockchain cluttered with jpeg spam. This is a huge mistake and anyone involved will have their name next to this when it becomes evident.
Good videos:
https://www.youtube.com/watch?v=zgsiDAhq4d4
https://www.youtube.com/watch?v=o7kCqwR9x24
No. In reality it's the opposite. As far as I interpret the idea, the purpose is "if you want to fill the blocks with data, then please don't clutter our UTXO set and don't misuse Taproot for that purpose".
The PR probably tries to make OP_RETURN the most attractive way to store data on the chain. From the point of view of full nodes OP_RETURN is the cheapest way, i.e. the one with lowest resource consumption, because everything behind an OP_RETURN opcode can be pruned and is ignored.
The problems are mechanisms which use fake public keys to store data. You can't prevent these methods without drastically changing the Bitcoin transaction format. These transactions look the same as any regular transaction, but they can contain dozens of fake public keys, i.e. hundreds of bytes of JPEGs and other shit. These methods are highly undesirable in various ways.
However, as I already wrote, the removal of -datacarriersize is imo too invasive and thus I'm still NACK. I would probably support it if only the default standardness setting was removed.
But I don't like how this discussion is evolving. It seems people get really emotional on this topic, just like with Segwit, and forget the facts.
I generally try to first give the benefit of the doubt to the potential offender. But the answer was again looking like AI. So I'm okay with this post to be deleted.
The demand for blockspace is expressed exclusively through the fees paid per byte. If jpeg encoding transactions pay more fees, then profit driven miners will include them and they will clutter the blockchain. You can only slow them down slightly by making them jump through hoops like sending them directly to willing miners.
I don't believe this is a mistake. It is a clear and deliberate act of sabotage or attempted sabotage.
Even the most reputable devs can become corrupted by money, perhaps coming from scamcoin companies like Ripple, Consensus, Solana, etc.
How else would you expect a scamcoin competitor to behave? Shitcoiners are going to shitcoin. Scammers are going to scam.
Throughout its history attacks and threats to bitcoin have always existed, and should be expected to keep popping up in the future.
Be vigilant for them, be prepared and act accordingly. Recognize them for what they are. That is how bitcoin has always survived. Trust but verify.
So you prefer the blockchain spammed with Stampchain's SRC-20 tokens and "Stampchain art"?
A Stampchain transaction looks like this:
While the first output is an OP_RETURN, it is not really necessary, they could also use another format. And the OP_RETURN data is 34 bytes only. The image sits in the rest of the outputs, which are the typical Stampchain fake addresses, they look like P2WSH outputs but aren't scripts.
That's the image:
The worst thing is that these UTXOs can't be pruned, ever. If one of these outputs contained illegal information, it will stay forever both in the blockchain and in the UTXO set! I prefer the usage of OP_RETURN or even Ordinals instead.
Which creates serious collateral damage by making it more profitable to be a large high profile miner. No one is going to bother tracking down and distributing directly to someone with 1% of the hashpower. This hurts beyond just the lost income but because mining is always driven towards 0 profit by difficulty adjustment so little cuts can be the difference between breaking even on mining and slowly going bankrupt.
I encourage people to read my reddit comments on the subject: https://old.reddit.com/user/nullc/
The sensible policy is that relay should never be more restrictive than what is reliably getting mined in practice. Anything more restrictive has the collateral harm of increasing centralization pressure by seriously hurting block propagation performance and by driving transactions to direct miner submission. Many design decisions in Bitcoin assume that this invariant is largely upheld-- that what nodes relay will match what gets mined. Even if the transactions are particularly harmful, like slowing nodes down with some resource attack then something must be done (e.g. fixing the resource usage, convincing miners to stop) just continuing to not relay in that case doesn't help and may make matters worse (you want to validate a slow-to-validate transaction in well in advance).
Relay matching mining can, of course, be achieved by miners not allowing these transactions... but they're getting paid millions of dollars to do so, and the protocol assumes that they'll profit maximize more or less up to the limit of consensus rules. You're not going to convince them to turn away the income and that's a *good* thing, generally because if they can't/won't resist some angry online mob how could you possibly convince them to resist efforts that were even more persuasive and which targeted transactions you liked? Filtering out only works to prevent mistakes and casual stupidity, it's a gentleman agreement that kinda worked when Bitcoin was small and more unified but that isn't the world we have today and in most respects we're better off for it.
As d5000 points out, advocacy on this point is misdirected-- this is a less harmful means while much more harmful means are (1) currently in use and no less attractive, (2) impossible to block. So the extent that some of these users may intentionally be attacking rather than just idiotic, making sure that the least damaging avenue is available helps make their intentions more clear.
Moreover, the argument that the filtering isn't censorship or at least a means that would work equally well for censorship only works because the filtering doesn't work. Defending something that is only not bad because it doesn't work seems like a total folly to me. And ultimately it gives the activity free press, which for some may even be the primary reason they were transacting in a wasteful way to begin with. Over and over again these activities have gone away when people ignore them.
The spam sucks, but Bitcoin is already designed to handle it, it's one of the reasons that there is and must be some block capacity limit. That's (part of) what it's there for, and it support's bitcoin's core value of minimizing subjective human influence on the ways that third parties can interact. It's always the case that you could make something better by injecting a good human judgement call, but in doing that you take the risk of a bad human judgement call. Better to minimize human judgement, and set crisp content neutral boundaries at the points where some decisions must be made.
Related topics
- Could Innopolis Tech launch a 51% attack on the testnet? 19
- Bitcoin Core displaying coins (UTXOs) in a new tab 13
- Are you in favor of BIP-110? Let's get a Bitcoin poll going. 0
- Erlay seems to have some issues here’s a better proposal for a bitcoin protocol without invites 3
- New Optional Hourglass Implementation is Live 3
- Ways to earn some sats by contributing to bitcoin core development 5