How porn links and Ben Bernanke snuck into Bitcoin's code
money.cnn.com
money.cnn.com
I'm curious what the implications of making some of these removable from the block chain though. Would it just end up being some central authority deciding which transactions are 'appropriate?' Is there a deterministic way of filtering out these 'data spam' transactions (without side-effects)?
I would assume so.
Perhaps adding a word-checker to bitcoin clients that looks for recognizable words (or attempts to validate a URL found inside the most recent block).
If block contains words or URLs, disregard it. If not, accept it.
Now Namecoin on the other hand...
You could create a link to child-porn from this very comment I just posted using the right cipher. I am sure of it.
Unfourtuantly, there is theoretically no way to prevent people from coding arbitrary data into a transaction. Assume you do have a filtering mechanism. It seems obvious that at any point in the block chain, there is at least 2 legal, non-suspisious, transactions. Using just this, Alice can encode 1 bit of information by saying that the first legal transaction is a '0', and the second legal transaction is a '1'. Transactions can be ordered in a deterministic way (for example, look at them as a giant binary number and sort numerically). The psuedo-anonomous nature of bitcoin means that attempting to filter spamming by the source would not work, as you cannot differentiate a new account that is part of a spam attack from a new account that spent at a bad time.
Obviously it wouldn't be readable to anyone who didn't know what to look for so it couldn't be used for spam/memorials/etc but it could store information.
Also, even when posted in plaintext, I wouldn't say that the messages are readable by people who are not looking for them. (How often do you look at the block chain?)
(This is more criticism of CNN than praise of HN, understand.)
http://www.nytimes.com/2013/03/24/magazine/the-3-10-13-issue...
Although having said that, the same could be said for the Tor network and onion addresses contributing to the same thing. That's the name of the anonymous game, people will do illegal and questionable things that's just the way it will always be.
How would these injectable pieces of data be removed from transactions without exposing transactions to attacks?
What actually is happening here, is that miners have the opportunity to put a small amount of arbitrary data in a block when they mine. Ideally this is should be random data, its purpose is to change the data being hashed so you get a different hash each time you try.
In my view the author of bitcoin set a bad precedent by including a newspaper headline referring to bank bailouts in the very first block. However I can't begrudge him for that too much. Since 2009, people have included prayers and accusations of illegal activity (trolling) in blocks.
Assuming increased bitcoin adoption, I see mining getting more and more centralized, already I don't think any of the major mining pools would be silly enough to include CP or other illegal content. It would take many blocks to store a non trivial sized image in the blockchain, and if they put a link in instead then of course the host could be taken down.
No; it's very easy. Anyone sending Bitcoin can add arbitrary data in his transaction; no need to be a miner: https://en.bitcoin.it/wiki/Script#Transaction_with_a_message
This requires a protocol change and lots of coordination, but may be preferable to a situation where mere possession of a copy of the block chain qualifies you for jail.
Could you elaborate on that? I thought Bitcoin was less anonymous than say, cash money. Unless you mine the Bitcoins yourself (which is getting harder every day) you would have to buy them somewhere or get someone to give them to you, right?
If you browse to a index site like The Hidden Wiki, you'll see that it already exist ways for people to share exactly what they want, even illegal stuff.
I believe that there is a way (within the bitcoin design), such that the file size can be limited, firstly by only downloading the transaction headers, and / or secondly, by removing historical transactions (by breaking off branches from the Merkle tree [http://bitcoin.stackexchange.com/questions/10333/blockchain-...).
However, when do those measures come into play? Do they have to be switched on? If so how, the whole thing is decentralized? Are the full transaction histories already being pruned?
https://en.bitcoin.it/wiki/Thin_Client_Security#Header-Only_...