When you attempt to make something that "no one can control," then things like this happen. Same thing with child porn on Tor .onion addresses.
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)?
Theoretically speaking, if you have the cooperation of 50% of the network (in terms of computational power), then you could remove 'in-appropriate' transactions. However, after you decide to remove them, their will be 2 versions of the block-chain until yours becomes longer than the original again. Obviously, this is never going to be attempted.
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.
Could you just set up 8 accounts then transfer bitcoins between then, with the chosen recipient indicating the value of a byte?
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.
Yes. You could also establish and publish a simple protocol for this, so that someone could run a program and extract all the hidden messages the way we can currently by looking for plain-text. Granted this would provide a means of detecting the messages (and therefore filtering them). This could be counteracted by first posting the data, then posting in the block-chain the fact that you posted the data (along with relevant meta-data). If you do this in a probabilistic way (IE, a single transaction has a 5% chance of being an advertisment of your data), then any would be filter would need to make a trade-off between false-positives, and ease at which a reader could operate.
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?)
It should be pointed out that doing this wouldn't be free. Fees are mandatory when transaction amounts are very small or the funds were spent recently.
If I understand correctly, these people are using special software to encode data in transactions, namely the output addresses. You can only embed arbitrary data in blocks if you're able to mine a block (like Satoshi's headline in the genesis block and Dan Kaminsky's Ben Bernake ASCII art), otherwise you need to encode it in the transaction data.
What if A) your comment was preserved as a part of the block-chain that could not be removed without doing serious damage to bitcoin. And B) the cipher you are using is a publicly known cipher recognized as the standard way of encoding data into the block-chain.
That almost certainly cannot work. You'll have false negatives, people will sneak the words of synonyms in (just think of how many web forums has people saying "fcuk", or "f*ck"), and false positives, legitimate transactions being banned. Will anyone from scunthorpe be able to use it?
I don't know about that. With care there is a hell of a lot to be learnt here and at least the crap gets down voted, where news site promote popular stories. Link bait versus quality comments and voting.
The aspect that worries me about this is that links to child pornography websites concealed within transactions could make it theoretically possible for people to share child pornography in a somewhat anonymous way. Given the anonymous nature of the currency it appears it could be used to transmit highly illegal content within the transaction.
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?
You can't put arbitrary data in a transaction, at least not very easily. The bitcoin devs are pretty clear that the bitcoin network and blockchain should not be used for messaging or store non transaction related data.
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.
Satoshi included a headline in the blockchain to serve as a timestamp to prove that mining had only started at the time of his public announcement about the project. However, the particular headline chosen as a timestamp was probably not selected at random.
The Bitcoin community could agree on one block to be the "last" block and compute all balances reached so far. Then start a new block chain with a special first block which initializes the balances.
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.
You should read about the Tor Project[1] where there is easy to share things like child pornography and other stuff fully anonymous.
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.
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?
Bitcoins are somewhat traceable. But if you're not spending them, and just want to inject some bitcoin transactions into the network, there won't really be any link to a person. The main thing you'd have to be careful of is not to send the transactions from the same wallet you normally use to buy things.
I was surprised when I didn't see this on HN first. I wonder what would happen if an organization like wikileaks began injecting documents into the blockchain.
If I understand this correctly, the blockchain transaction file is already pretty big (i.e. a couple of GBs). When you first setup Bitcoin on your machine you are basically required to download this file, and it is then kept up to date using Bittorrent, presumably with partial updates?
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?
The header only download is a client side thing and can be done already (with a client that supports it). The Unused Output Tree (UOT) - the second thing you mentioned - needs amendment to the blockchain (adding checkpoints).
Short sell bitcoin; then insert base-64 encoded child porn. (or perhaps salt multiple transaction and then leak decode process of higher res image) bling criminal mastermind or future jailhouse bitch...
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)?