There are 2 things to store in Bitcoin:

- the blockchain, 655 GB and always increasing

- the UTXO set, 11 GB and can vary

The blockchain has all the blocks, the UTXO set has all the UTXOs.

The UTXO set varies in size because transactions spend UTXOs and originate new UTXOs. If a transaction spends more UTXOs than it creates, it decreases the UTXO set and vice-versa.

The UTXO set is needed for transaction validation: when a new transaction appears, all inputs must be on the UTXO set, or else the transaction is invalid (because it is spending a non UTXO). When a transaction is confirmed on a block, its inputs are removed from the UTXO set and the new outputs are added to it.

When a UTXO is an OP_RETURN, we know for sure that it is unspendable, so we can remove it from the UTXO set or never add it in the first place.

There are some protocols that use the Bitcoin network to inscribe data. And they can do it almost everywhere: on the pubkey, on the witness, on the locking script or in an OP_RETURN.

The problem here is a protocol that decided to inscribe its data in the locking script, i.e. in the transaction output. They lock a very small amount of sats to a fake public key. Actually, the public key is the payload they want to inscribe. Of course it’s impossible to unlock this UTXO, so it will be unspent forever, i.e. it will never be removed from the UTXO set.

This protocol doesn’t use OP_RETURN because these are limited to 80 bytes, and they need something like 160 bytes for their payload (don’t know details)

So, since we cannot stop them, the idea is to allow them to do their inscription on an OP_RETURN. We don’t stop the spam, but at least they will not inflate the UTXO set.

Reply to this note

Please Login to reply.

Discussion

We CAN provably stop 99% of them if we update the filters occasionally and patch the datacarriersize bug in Core. But Core devs are either cucks or Feds, so instead they decided to remove the working filter on OP_RETURN to invite spammers to use it. Instead of fighting the terrorists they decided to negotiate with them. It’s fucking pathetic.

Can you explain me what is the "datacarriersize bug in Core"?

I'm not familiar with it. Thanks.

This seems almost too simple to believe. Can anyone confirm this is actually what’s happening?

nevent1qqsq9ye630nt3n5xgwzf6nf4r8qxqaxhmtandv852lsjsykdlt6u32spzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgl68a6n