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.

Replies (61)

OCEAN's avatar
OCEAN 2 years ago
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.
Cyber Seagull's avatar
Cyber Seagull 2 years ago
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 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.
Default avatar
nobody 2 years ago
Hey @Luke Dashjr 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?
Default avatar
nobody 2 years ago
Luke isn’t really trustworthy or likeable. Jack may have backed the wrong horse here.
mark tyler's avatar
mark tyler 2 years ago
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?
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?
Cyber Seagull's avatar
Cyber Seagull 2 years ago
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.
waxwing's avatar
waxwing 2 years ago
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.
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.
Replacing Core with Knots makes Luke the sole developer of #Bitcoin for every miner on Ocean.xyz.
Cyber Seagull's avatar
Cyber Seagull 2 years ago
In that case yes. Your node should do what you want it to.
snowflake's avatar
snowflake 2 years ago
Does it mean that blockchain size of my node will grow at an slower rate with this flag set?
if they're paying the fees then they're valid transactions my friend, stop censoring bitcoin users for your own ideologies
Default avatar
Beiner 2 years ago
You a threat to bitcoin.. who made you the leader.. agian you and jack are the feds
Default avatar
Beiner 2 years ago
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 →
Default avatar
Beiner 2 years ago
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 →
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...
What's the best way some one with software experience xan help you move the forward? Bitcoin Core Pr reviews and testing?
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
Cyber Seagull's avatar
Cyber Seagull 2 years ago
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 ?
Default avatar
Anonostr 2 years ago
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
rieger_san's avatar
rieger_san 2 years ago
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.
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.
snowflake's avatar
snowflake 2 years ago
Is it possible to install bitcoinknots without need to download full blickchain again? Is there a guide to read?