PSA: βInscriptionsβ are exploiting a vulnerability in #Bitcoin Core to spam the blockchain. Bitcoin Core has, since 2013, allowed users to set a limit on the size of extra data in transactions they relay or mine (`-datacarriersize`). By obfuscating their data as program code, Inscriptions bypass this limit.
This bug was recently fixed in Bitcoin Knots v25.1. It took longer than usual due to my workflow being severely disrupted at the end of last year (v24 was skipped entirely).
Bitcoin Core is still vulnerable in the upcoming v26 release. I can only hope it will finally get fixed before v27 next year.
Thread
Login to reply
Replies (58)
Hope together with this fix, we allow Drivechains, so people can explore new kind of sidechains.
I'm not a fan (so far) of drivechains, but they and other BIPs deserve to be judged on their own merits.
The current griftfluencers shook the confidence of regular Bitcoiners, now extra concerned with uncertainty risk.
That's not fair to any BIP, DC included.
FOH respectfully
lol
We are happy to announce testing of Bitcoin Knots v25.1 has completed successfully, and is now deployed to production. Among other improvements, this upgrade fixes this long-standing vulnerability exploited by modern spammers. As a result, our blocks will now include many more real transactions and help to bring an end to the DoS attack being performed on the #Bitcoin network.
So, in addition to our already-established benefits (transparency, non-custodial, and permissionless), we now also offer honest miners the first easy option to contribute toward blocks full of real transactions, effectively a several times larger block size in terms of transaction confirmations, without actually making the blocks any larger.
View quoted note β
Thank you for your service.
You and others continue to build the cathedral, while others spray paint graffiti as if it's something to be proud of.
And honest BIPs suffer from the unintended consequences of recent activations.
If the purpose was to allow more functionality, and it did, isn't this a personal opinion ?
Demand is not a bug or spam.
It's one thing to opt in to Knots, it's another for core to continue to decide changes like this.
This and Future changes that exclude large segments of use that otherwise follow the rules of supply, ect are vulnerable to politics.
Political money is fiat money.
Today, you consider this spam. Tomorrow what ese will be considered spam. To the death of bitcoin.
One mans free speech is anothers hate speech. Who are you or core , to decide ?
Iβm still undecided - but what if we look at it like a bug. We actually do fix the bugs in bitcoin and nobody says itβs censorship. What we have here is just a disagreement in what is and isnβt a bug, right?
yes. It comes down to what one person or faction feel is a bug and what others do not. These opinions hampered by the limits to that one individual or groups values and life experience, attempting to speak for millions of others.
The real bug is in how we arrive at the definition of what a bug is, in the first place.
On a private project, a team lead decides.
On a public project, it becomes political.
There is a third option, market choice.
People who subscribe to Luke's worldview and vision for Bitcoin can download and run Knots.
Another way to let the market decide is to reduce the scope and importance of core, and move features to a layer 2, where consumers choose.
Some bugs and upgrades are not political of course. Things such as a flaw in SHA that requires emergency fork. Other bugs are maintenance or efficiency types, as languages and procedures backing the project improve. These can keep being pushed to core, but the surface area can be further reduced, along with ossification.
The history of projects shows that when political and technical become confused, the project will eventually alienate so many people, despite the best of intentions and logic, it dies.
If you tell your node not to allow extra data beyond 40 bytes, and it then allows 40k, how is that ever not a bug?
In that case yes. Your node should do what you want it to.
Unless i'm missing something however, what you are trying to get core to adopt is not an optional toggle, but a hard size limit, where legacy or non-complient nodes cannot participate or are shunned going forward ? Thus the blocking of "spam" network wide.
The wording leads me to believe that's your intention. Or would it still be optional to inscribe if you want ?
It's one thing to run Knots/Ocean and gather/market support for it. It's another to frame it as a bug and push it to core as a new defacto standard.
By the way, unlike the blocksize debate, this change affects proven profits by motivated network participants. Since adoption and use appear to be increasing unabated despite the "spam", are you fully cognizant of the down stream impact such a change would have ? The second order effects and blowback ?
Plot twist. I was missing something. Fix is good.
View quoted note β
πππ§‘π
Hey @npub1lh27...a9nk this is the first I've heard of it. Thanks for putting this out there.
Is Bitcoin Knots a drop in replacement for core or do I need to build a different config and redownload the chain?
Luke isnβt really trustworthy or likeable. Jack may have backed the wrong horse here.
Drop in replacement
How did you fix it?
I need more explanation on π
"Vy obfuscating their data as program code, inscriptions bypass this limit"
View quoted note β
Send it πͺ
Are OP Codes Other than OP_RETURN affected by '-datacarriersize'?
Thank you your Great work π«
Ok, let me try to understand this.
So Bitcoin core has an option to set a data limit for extra data in each transaction but since inscription obfuscate 'extra data' as program code, ie, putting data elsewhere, like in the signature, for example, they were able to bypass this limit.
So this 'fix' is not about limiting or blocking inscriptions, but rather, to give a choice to node runners to choose wether they wanted to relay transaction with large 'extra data' or not as they should have always been able to (well, at least 2013) by making -datacarriersize to also apply to inscription data.
Is that correct?
Do inscriptions take up more blockspace for the same price as a normal transaction?
Yes and no
By the byte, yes
But they also enable miners to make the blocks larger (which is a second bad effect)
Program code is data. You cannot control how people interpret it.
Isn't the fundamental issue here, the witness discount? Apart from that i can't see anything else worthy of discussion. If people are prepared to pay for data encoded in txs, they will always be able to - even in the most disruptive way - see 'Stamps'. I can't see any ethical basis to tell them they can't, nor any technical way to prevent it.
not a bug
I prefer to let the fee market price those nitwits out, but I'm glad you did this with Knots so we can see the difference in performance between clients.
Myth: Ocean.xyz decentralizes mining.
Reality: Luke is the sole developer of Knots.
View quoted note β
Does it mean that blockchain size of my node will grow at an slower rate with this flag set?
Your node has limited impact by itself, but the more people who fix this, eventually yes
Is it possible to install bitcoinknots without need to download full blickchain again?
Is there a guide to read?
Yes, it can use the same data directory as Core so long as both aren't running at the same time
if they're paying the fees then they're valid transactions my friend, stop censoring bitcoin users for your own ideologies
Exactly this!
Make it a great payment system again π
The bitcoin blockchain is not a payment system. Itβs a base layer which secures the basic rules. Itβs great in doing this. Itβs not good for day to day payments.
Not to forget that when luke forces his ideology maybe we are becoming a security budget problem in the future when side chains are ready to use and lightning support grows even more.
Inscription is not a vulnerability or a bug. Itβs a valid transaction and as long as transactions are valid people can do whatever they want with bitcoin.
Itβs not a bug, itβs a feature!
You a threat to bitcoin.. who made you the leader.. agian you and jack are the feds
Who made this little bitch ass nigga the leader of bitcoin.. yall now he sold his soul to the feds just lime jack did right
View quoted note β
This guy shouldn't even have followers on here. Because a few years ago he was telling everybody not to self custody because it doesn't work. Y'all be sucking the wrong Dick.
View quoted note β
En la versiΓ³n de #BitcoinKnots v25.1 ha sido lanzada y segΓΊn @npub1lh27...a9nk implementa una correcciΓ³n o modificaciΓ³n para que tu nodo no tenga en consideraciΓ³n las tx tipo ordinals
No es recomendaciΓ³n para nadie, es conocer que si te interesa, existe esta alternativa.
πππ€π€π€ππ
View quoted note β
Decentralisation in Bitcoin's codebase comes from the ability of anyone to release their own reference client, that enforces the consensus rules, as they see fit.
Users are divided, at this time, over the legitimacy of 'inscription' transactions.
All Bitcoin Knots is doing, is giving users a simple way to vote with their feet.
This is the free market, in action.
If you do not agree with the consensus implementation, don't run the code.
This applies equally to all Bitcoin reference clients. Be it Core, Knots, or otherwise...
It's worth noting you still can configure the limit however you want in Knots. This fix just means it will actually honour your choice.
I would like those two limits to be separate.
Good to understand that this is a bug.
Ordinals respectors can go fork themselves
What's the best way some one with software experience xan help you move the forward? Bitcoin Core Pr reviews and testing?
The more you know.
View quoted note β
Knot gonna make it
Ocean's use of Knots will exclude all Samourai Whirlpool Tx0's (in their current form) due to the OP_RETURN restrictions.
Tx0 OP_RETURN = 46 bytes
Knots OP_RETURN relay max = 42 bytes
Gtfo
If this is widely adopted and they encode their data inside dust transaction addresses it will take more space and be unprunable. High fees are enough disincentive
this is great work
and it's not one of the notable changes?
π.md
That's Bitcoin Core. It's only fixed in Knots so far
Hey Luke! Sent you an invite to the 24hr frog talk!! Check DMs πΈ
Hi, Luke. Do I understand the issue correctly that unreachable script code is being filled with the inscriptions? If so, could the transactions be included with the unreachable code optimized out, like what compilers do when producing a binary?
If organics are going to start telling machines what they can or can't do just to conserve resources, maybe the machines will start telling organics what they can or can't do.