public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Greg Maxwell <gmaxwell@gmail.com>
To: Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
Subject: [bitcoindev] Re: Relax OP_RETURN standardness restrictions
Date: Mon, 5 May 2025 07:05:02 -0700 (PDT)	[thread overview]
Message-ID: <8cb5c012-e28a-466d-b444-9083bf1a486cn@googlegroups.com> (raw)
In-Reply-To: <rhfyCHr4RfaEalbfGejVdolYCVWIyf84PT2062DQbs5-eU8BPYty5sGyvI3hKeRZQtVC7rn_ugjUWFnWCymz9e9Chbn7FjWJePllFhZRKYk=@protonmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 6018 bytes --]

It might be helpful to reflect on how reality has changed since the 
OP_RETURN behavior was originally rolled out in February 2014.

At the time blockfile pruning would not be deployed to the public for 
another year and a half,  so everyone that ran a node was forced to store 
and serve anything that made it into a block.

In 2014 people were proposing protocol additions that would allow basically 
random access to the transactions/txouts over the P2P network, potentially 
outright allowing file trading applications that abused bitcoin nodes as 
their server.  Today there are no such proposals and any would be DOA 
because the abuse potential is well understood.

At the time miners were almost entirely driven by subsidy, fees were fairly 
insignificant.

With the exception of a rare joker block standardness rules were highly 
effective, and short of mining a block yourself or talking a highly 
community connected mining pool operator into it  (or being that operator) 
you couldn't bypass any of them.

Blocks were on average running at 16% of the consensus capacity limit.  
Absent some kind of adhoc non-consensus restriction the cost to dump in 
large amounts of data would have been nothing.  Today the _average_ block 
is essentially full and the costs are considerable.

A minimum feerate of 1s/vb has increased in buying power by a factor of 171 
from Feb 2014 to now.

Users were much more ignorant about what they got out of putting data in, 
it was common to hear things that would better be served with a commitment 
(or something like OTS, which wouldn't be available for another two and a 
half)-- they didn't have much reason to think hard about their application 
because stuffing in data was cheap (or, even free if not for limits).  
Today's data stuffers cases generally do make sense on their own terms even 
if many would agree that they're not an appropriate use of Bitcoin.  There 
are more alternative communications channels than ever now, ipfs, nostr, 
other blockchains.  Stuffing data in is expensive. Those who still do it 
are willing to pay, which also means miners are willing to let them. The 
parties that do it are technically sophisticated or at the very least can 
afford the services of people who are and can and have implemented evasions 
to adhoc restrictions.

Today there are implementations of concepts like assumeutxo, which while 
subject to their own limitations would allow people to bring up fully 
validating nodes without ever downloading or processing spam data (and 
pruining as mentioned is real now and lets you not store it).  While not 
yet completed and deployed it clearly could be, but back then that sort of 
idea was highly theoretical.  Today the highly theoretical thing are stuff 
like ZKPs over the history.

At the time compact blocks as a protocol feature hadn't been conceived and 
earlier block relay improvements were only just being developed--- any 
additional data in blocks slowed their propagation.  Today the extra data 
only slows their propagation when it wasn't well relayed in advance.  So 
the limit back then benefited block propagation, today it hurts it.

At the time the understanding that delays in propagation don't hurt the 
miner that added that data as much as they hurt small miners relative to 
very large miners was less well understood. Eyal&Sirer's paper had only 
been published a couple months before and it contributed to understanding 
of communications delay as a factor in centralization pressure, though even 
today many don't understand it or don't think about it.

At the time, many of us had an understanding that these sorts of limit were 
unstable equilibrium at best-- and wouldn't stand once miners were being 
driven by fees, wouldn't stand if there was significant demand that wasn't 
just confused, ... today we've long since reached that world and found that 
that understanding was correct.

At the time no one had any reason to be concerned that they might be hauled 
before congress or even prosecuted because some state blacklist wasn't also 
a standarness rule or because it wasn't working well enough to block 
transactions.

The limit was somewhat popularly unpopular at the time and became 
extraordinarily unpopular later,  I feel a little irony that for merely 
defending the limit on its merits I was multiply subjected to threats of 
physical violence not too many years ago.  A common thread underlies much 
of the opposition to remove it: a knee jerk reaction to some perception of 
authority, which was largely unaware of or indifferent to the reasoning and 
the same false smears of conflicts of interest and whatnot have been 
deployed.  Fortunately for OP_RETURN it's initial addition added something 
entirely knew so even though it was limited it was more than nothing.  The 
really vigorous attacks on it came only after it was forgotten that it 
wasn't previously unlimited.  Similarly, instead of being based on the 
substance the driver appeared to be parties weaponizing it for other 
purposes.  Back then as a general means to attack the bitcoin project to 
promote forks,  this time because of anger about nft/shitcoin traffic which 
this change actually has little to no bearing on.

I fear at times there is a tendency to look at anything that came before 
you and assuming that it was some kind of holy solution.  But standardness 
limits aren't holy, they're a hack... sometimes a very useful hack. They 
should only exist when their benefits well outweigh their costs. Given the 
history I don't think it was wrong to limit at the time, but it was a very 
different world then.



-- 
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/8cb5c012-e28a-466d-b444-9083bf1a486cn%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 6738 bytes --]

  parent reply	other threads:[~2025-05-05 14:12 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-17 18:52 [bitcoindev] Relax OP_RETURN standardness restrictions 'Antoine Poinsot' via Bitcoin Development Mailing List
2025-04-18 12:03 ` Sjors Provoost
2025-04-18 12:54   ` Greg Sanders
2025-04-18 13:06     ` Vojtěch Strnad
2025-04-18 13:29     ` 'Antoine Poinsot' via Bitcoin Development Mailing List
2025-04-18 21:34       ` Antoine Riard
2025-04-20  8:43 ` Peter Todd
2025-04-26  9:50 ` Luke Dashjr
2025-04-26 10:53   ` Sjors Provoost
2025-04-26 11:35     ` Luke Dashjr
2025-04-26 11:45       ` Sjors Provoost
2025-04-26 12:48       ` Pieter Wuille
2025-04-28 16:20         ` Jason Hughes (wk057)
2025-04-29 14:51           ` Sjors Provoost
2025-04-30 15:37             ` Nagaev Boris
2025-04-30 16:30               ` Sjors Provoost
2025-04-29 19:20           ` Martin Habovštiak
2025-04-30  0:10             ` Jason Hughes
2025-05-01 17:40               ` Andrew Toth
2025-04-30  5:39             ` Chris Guida
2025-04-30 16:37               ` Anthony Towns
2025-05-01  4:57                 ` Chris Guida
2025-05-01 19:33                   ` Nagaev Boris
2025-05-02  6:34                   ` Anthony Towns
2025-05-02 18:29                     ` Peter Todd
2025-05-03  5:14                       ` 'nsvrn' via Bitcoin Development Mailing List
2025-05-01  3:01         ` Anthony Towns
2025-05-02 18:56   ` Greg Tonoski
2025-05-05  6:04     ` Bitcoin Error Log
2025-05-01 22:40 ` [bitcoindev] " 'Antoine Poinsot' via Bitcoin Development Mailing List
2025-05-02  0:14   ` PandaCute
2025-05-02 11:16     ` [bitcoindev] " Sjors Provoost
2025-05-02 14:37       ` 'nsvrn' via Bitcoin Development Mailing List
2025-05-02 16:43         ` Greg Maxwell
2025-05-02 13:58     ` [bitcoindev] " Bob Burnett
2025-05-02 20:03   ` [bitcoindev] Removing OP_Return restrictions: Devil's Advocate Position Peter Todd
2025-05-02 22:58     ` [bitcoindev] " Greg Maxwell
2025-05-03  2:02       ` Martin Habovštiak
2025-05-05 21:45       ` Peter Todd
2025-05-05 23:55         ` Greg Maxwell
2025-05-02  6:29 ` [bitcoindev] Re: Relax OP_RETURN standardness restrictions Greg Maxwell
2025-05-02  9:51   ` Anthony Towns
2025-05-02 17:36     ` Greg Maxwell
2025-05-05  9:18       ` Anthony Towns
2025-05-05 21:34         ` [bitcoindev] Weak blocks give an advantage to large miners Peter Todd
2025-05-06  8:56           ` Sjors Provoost
2025-05-02 20:43     ` [bitcoindev] Re: Relax OP_RETURN standardness restrictions Peter Todd
2025-05-02 19:04   ` /dev /fd0
2025-05-02 20:10     ` Peter Todd
2025-05-04 20:04       ` Nagaev Boris
2025-05-05 11:42         ` Greg Maxwell
2025-05-05 14:32           ` Nagaev Boris
2025-05-05 21:30         ` Peter Todd
2025-05-05 14:05 ` Greg Maxwell [this message]
     [not found] ` <20250502064744.92B057C0EE2@smtp.postman.i2p>
2025-05-07  1:20   ` pithosian

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8cb5c012-e28a-466d-b444-9083bf1a486cn@googlegroups.com \
    --to=gmaxwell@gmail.com \
    --cc=bitcoindev@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox