What is Nostr?
u7xo / Marcus
npub12jj…0n3x
2025-04-28 22:38:39

u7xo on Nostr: ...



šŸ”” šŸ”” NEW OP_RETURN šŸ”” šŸ””

Unfortunately, as near as I can tell there is no sensible way to prevent people from storing arbitrary data in witnesses without incentivizing even worse behavior and/or breaking legitimate use cases. If we ban "useless data" then it would be easy for would-be data storers to instead embed their data inside "useful" data such as dummy signatures or public keys. Doing so would incur a ~2x cost to them, but if 2x is enough to disincentivize storage, then there's no need to have this discussion because they will be forced to stop due to fee market competition anyway. (And if not, it means there is little demand for Bitcoin blockspace, so what's the problem with paying miners to fill it with data that validators don't even need to perform real computation on?). But if we were to ban "useful" data, for example, saying that a witness can't have more than 20 signatures in it, then we are into the same problem we had pre-Taproot: that it is effectively impossible construct signing policies in a general and composeable way, because any software that does so will need to account for multiple independent limits. We deliberately replaced such limits with "you need to pay 50 weight for each signature" to makes this sort of analysis tractable. There's a reasonable argument that this sort of data is toxic to the network, since even though "the market is willing to bear" the price of scarce blockspace, if people were storing NFTs and other crap on the chain, then the Bitcoin fee market would become entangled with random pump & dump markets, undermining legitimate use cases and potentially preventing new technology like LN from gaining a strong foothold. But from a technical point of view, I don't see any principled way to stop this. - apoelstra -michaelscott -cbspears

https://mempool.space/tx/8b5dee2b310381822525e43d22501637cd8142582dcccf45ca966b6b526e9f89
Author Public Key
npub12jj8capltsgkkgmj2c5ad0vzeezx33v3cyh2yt2jxhe3j6ygzjtsfv0n3x