Oooops, my contiguous image file got misinterpreted as a transaction WITHOUT OP_RETURN by the Bitcoin network and now it's forever contiguously stored in the chain!
knotslies.com
(BTW, I only logged in to post this don't expect me to use X again anytime soon.)
So, let's do it backwards. Starting with @BtcpayServer
In CADR, I made it so that it would only ever get access to invoice+readonly macaroon. I had since doubted that decision a few times knowing it would restrict use cases. It was just proved to be a good decision!
I wouldn't have picked those technologies and that's what the article will be about.
Here's an example of good design: github.com/rust-bitcoin/rust…
That thing checks the assumption right at the place that relies on it and it's in a function that is then used in the code.
If someone builds it on wrong architecture a compile error will be thrown (and much more reliably than #ifdef) If someone changes the code, merely seeing the surrounding code will make it easy to review. And in all other code it is obviously correct - the `as` cast is not used.
One of the things I wanted to share is this absolutely great video: youtube.com/watch?v=p7XNQeJn…
Even if you're anti-BIP-110, watch it. Get inspired by the ways of explaining, drive up the views and share.
And full disclosure: I helped fact check that thing.
This is soooo much fun! I had to come and check this here.
I also planned to give some thoughts on the recent events but I have not finished some stuff yet and it's already quite late.
MⒶrtin HⒶboⓋštiak [BEFORE! Jan/3➞₿🔑∎, LNP/BP] retweeted
Replying to @hodlonaut
You are a clown, a hack, and a deceptive person.
A Grok summary (that I fully read and verified) on why this whole thread is misleading bullshit distorting context:
In summary, by fixating on Citrea as the linchpin and portraying the change as arbitrary or corrupt, hodlonaut manipulates the narrative to suggest undue influence from one entity, while underplaying the policy's role in mitigating real risks of bypass-induced damage.
This could appeal to purists worried about "non-Bitcoin" projects, but it distorts the reality that such changes aim to standardize practices for a wider ecosystem of builders, preventing fragmented or abusive workarounds that could harm the network long-term.Hodlonaut's thread, particularly in the highlighted post (part 27), constructs a narrative that centers Citrea as the primary, if not sole, driver behind the Bitcoin Core change to remove the 80-byte OP_RETURN relay limit (via PR #32406).
He does this by compiling a series of quotes from developers like Peter Todd, Poinsot, Corallo, instagibbs, and Towns, all acknowledging Citrea's role in sparking or justifying the discussion. This creates an impression of a targeted "co-opting" of Bitcoin Core's development for one specific project's benefit, complete with allegations of conflicts of interest (e.g., Jameson Lopp's undisclosed investment) and procedural irregularities (e.g., muting critics, locking PRs).
However, this framing distorts the broader context in several ways:
Overemphasizing Citrea as the cause rather than an example: While Citrea's technical needs (related to embedding ZK proofs for their Bitcoin layer-2 bridge) were indeed the initial trigger mentioned in early discussions and PRs like #32359, hodlonaut downplays evidence that it was treated as illustrative of a larger class of issues. For instance, in the May 1 IRC meeting logs he references, instagibbs explicitly advocates for an unlimited cap to "future-proof" for ZK rollups in general, citing uncertainty around proof sizes so the issue wouldn't need revisiting. Similarly, Towns notes the conversation "started with Citrea," but broader community resources (e.g., instagibbs' public gist on retiring the limit) frame the change as addressing longstanding inefficiencies, not just one project. By cherry-picking quotes that name Citrea without balancing them against these generalizations, hodlonaut implies a narrow, self-serving motivation, ignoring how Citrea exemplified emerging use cases for data-heavy applications on Bitcoin.
Ignoring the technical rationale for bypass risks and network health: A key distortion is hodlonaut's dismissal of the relay policy's inherent softness and the "damaging ways" it can be bypassed. Bitcoin's relay rules (like the OP_RETURN limit) are not hard consensus rules; they're defaults in node software that operators can modify. If a limit is too restrictive, builders (e.g., for ZK rollups, covenants, or other innovations) will often work around it using more harmful methods, such as embedding data in fake P2PKH/P2SH outputs, bare multisig, or other opaque formats.
These alternatives bloat the UTXO set, increase node resource demands, or make spam harder to filter, potentially fragmenting the network or raising costs for all users. Instagibbs' gist explicitly argues that the 80-byte cap "channels [large data] into more opaque forms that cause damage to the network," and removing it encourages cleaner, provably unspendable OP_RETURN usage instead. Hodlonaut retroactively questions the necessity (e.g., citing Lopp and Back's claims that Citrea could use witness data or that limits are arbitrary), but this sidesteps how refusing the change could push more projects to these damaging bypasses, undermining Bitcoin's usability for legitimate builders without solving the underlying spam issue.
Selective timeline and omission of counterpoints: The thread's chronology highlights "52 days" from Citrea's issue being raised to the merge, framing it as rushed and captured. Yet it omits that similar proposals (e.g., Peter Todd's earlier PR two years prior) were discussed long before Citrea, and the change aligns with evolving views on policy vs. consensus (e.g., Bitcoin Core v30 making the limit configurable via -datacarriersize, with deprecation planned). Hodlonaut also notes the gist's omission of Citrea/PR history as suspicious, but doesn't acknowledge how this document speaks "for the project" to explain the merits broadly, not the origins—consistent with viewing Citrea as a non-unique example. This selective focus amplifies drama around process flaws while minimizing the "broad support" instagibbs claimed, even if not unanimous.
MⒶrtin HⒶboⓋštiak [BEFORE! Jan/3➞₿🔑∎, LNP/BP] retweeted
Replying to @kwsantiago
You are conflating relay policy changes with criminal possession. The datacarrier size increase does not make the images viewable to the node operator.
The CSAM statutes require knowing possession of a visual depiction of a minor engaged in sexually explicit conduct, with actual knowledge of its illicit character and dominion/control over it.
Passively storing unrecognizable raw bytes during automated blockchain validation does not satisfy knowing possession.
Awareness that illicit content might exist somewhere in the chain (from articles or people saying it on X) doesn't create actual knowledge under the law.
Even if it did, knowledge isn't enough. There needs to be dominion and control, which fails because the data is inaccessible without a deliberate, multi-step reconstruction that node software never performs.
The immutability you point to as problematic actually strengthens this defense. Since a node operator can't access, manage, retrieve, manipulate, or exclude transactions, it can't exercise dominion or control.
I didn't reference Section 230 in my article because itdoesn't don't apply to federal criminal law. Likewise, DCMA 512(a) is copyright, not CSAM.
The question remains: Did the node operator knowingly possess an illicit depiction with dominion/control that it never renders, selects, or accesses? No.
Stop attacking bitcoin with speculative fearmongering.
MⒶrtin HⒶboⓋštiak [BEFORE! Jan/3➞₿🔑∎, LNP/BP] retweeted
UTXOs, Spam & Bitcoin's Integrity with Martin Habovstiak | SLP729
Bitcoin developer @kixunil joins me to discuss his site Knotslies, Bitcoin blockchain data storage controversies, filtering illegal content, BIP 110, and Bitcoin's resistance to government influence.
(00:00) - Intro
(01:10) - Why did Martin create Knotslies?
(07:46) - Controversies around data contiguity in Bitcoin transactions
(12:04) - The standard way to interpret Bitcoin data?
(20:24) - Can filtering protect node operators from illegal content?
(25:37) - Various methods of data spamming in Bitcoin
(33:01) - What is the Knotslies calculator?
(40:20) - Analyzing spam costs
(48:28) - Alternative solutions instead of BIP 110
(54:25) - Role of Bitcoin mining in resistance to government influence













