This section explains how people started storing non-financial data inside Bitcoin transactions and why that created a technical problem. In the early days, users embedded text (like a tribute message) inside transaction outputs by replacing the public key hash (PKH) field with ASCII-encoded text. Although these outputs looked like normal spendable outputs, they were actually fake because no real private key existed to spend them. Since Bitcoin nodes cannot prove that such outputs are unspendable, they must treat them as valid and keep them forever in the UTXO set (the list of all unspent outputs stored in memory for transaction validation). This unnecessarily increases memory usage and bloats the UTXO set. To reduce this problem, Bitcoin introduced the OP_RETURN script operator, which creates provably unspendable outputs. Because nodes can clearly detect that OP_RETURN outputs cannot be spent, they do not add them to the UTXO set, preventing memory bloat while still allowing limited data storage in the blockchain.












