Let's say I'm running a BitMessage node. One possible attack against me would be to upload illegal content to my node, and once someone knows it's there, to tip off the authorities, who would then search my computer and discover illegal content.
However, all the content is supposed to be encrypted, and unless you have the private key because the message was addressed to you (or you want to try all possible combinations of all public keys to look for broadcast messages) then you can't actually read the content.
That being said, an attacker could send a message to other nodes that had an unencrypted payload. Receiving nodes assume all messages are encrypted, and they try to decrypt every message with all of its private keys (or public keys of broadcast senders you want to subscribe to). In order to defend against such an attack, the receiving node has to be able to reject messages that have an unencrypted payload.
Is this possible? Will a test for randomness work? What if the data was zipped, would that still work?
@Gilles - it's true that they could upload any message, even encrypted, and give the cops the key. However, then you have plausible deniability.
However, there are ways to undermine plausible deniability. First, an attacker can do what I described above and find some way to transmit lots of unencrypted content. They could perhaps even release a customized BitMessage client that lets you read the messages easily. Second, I can just send encrypted broadcast messages on the network and publicize the heck out of my BitMessage address, so everyone who wants to subscribe will find it easy to do so. In both cases all you need to "read" the illegal content off my hard drive is a free and easily available piece of software.
The only way to fight that is with a BitMessage address blacklist, which isn't feasible because in order to check if a message should be blacklisted, I have to attempt decryption using every known blacklisted public key. That would bring the network to a crawl.
Now let me ask you, if you had gigabytes of CP images on your hard drive, but you didn't have any software installed that could view them, even though you knew about the existence of said software if you wanted to view it, do you think any judge would not find you guilty of possession?
I don't see how this isn't a fundamental flaw in the BitMessage protocol. (Technically it's a flaw in our laws, I realize that, but such protocols exist and are necessary because of such law.)