Hi all,
I’ve had an issue floating around in my head for a month that could pose some severe issues for ETH (or any other Turing complete distributed chain) though I haven’t yet discussed it publicly as I wanted to at least have a starting point for a possible solution available before pointing out the problem.
The issue: A turing complete blockchain can do about anything a traditional computer can do (though not in practical terms). One of these things is storing files. For example, consider this image of Vitalik. It is about 18 KB. It is practical to store files of this size or larger on ETH. As an example, I have a copy of Alice’s Adventures in Wonderland (~50 KB zipped) and stored on the mainnet. I had made utilities to facilitate these uploads, but have (hopefully) temporarily removed them from public locations online.
The point I’m getting to is that it is not hard to store images or other files on the chain, and that a malicious actor could upload something such as child pornography, and have it distributed nearly instantaneously to every node in the network.
I am going to focus on US law heading forward but I’m sure this could be extended to other countries.
According to the DOJ, “electronically stored data that can be converted into a visual image of child pornography are also deemed illegal visual depictions under federal law” and “Federal law prohibits the production, distribution, reception, and possession of an image of child pornography using or affecting any means or facility of interstate or foreign commerce (See 18 U.S.C. § 2251; 18 U.S.C. § 2252; 18 U.S.C. § 2252A).” (Source). This would effectively make it illicit to run an Ethereum node should an actor upload this material to the chain.
My thoughts on solutions: Now, the first and simplest solution I thought of would be creating a list of prohibited ETH addresses that contained illicit material, however, that would also effectively act as a list of the illicit material, which would make it very easy to access.
The solution I am leaning towards now is generating hashes from addresses and storing them in a smart contract or directly in node software, which would mean that you couldn’t generate a list of these materials so easily, but individuals could choose not to host the contracts that have addresses which resolve to these hashes. The issue I see with this is it would be easiest to be done in a centralized manner, but this would potentially allow censorship by a rogue centralized actor of anything, including non-illicit materials. The solution to me then seems to be a decentralized list of hashes, perhaps in a smart contract with some method to post them. That’s where I’ve gotten to outlining a solution, but I think this issue needs to be discussed more seriously at this point before ETH (or blockchain in general) becomes more prevalent.