Empower users to upload their videos in the public domain while upholding privacy via AI-powered encryption scheme
We wanted to allow users to upload their videos to IPFS or similar public distributed storage networks, while allowing them to still have control over who can see their videos. Traditional encryption methods such as PGP tend not to work well with large files, so we came up with an alternative encryption scheme which is not based on cryptography at all.
Instead, we use Generative Adversarial Networks, specifically CycleGAN, to create a steganographic mask which modifies videos to the extent that an AI cannot recognize them as the original video. These steganographic masks can be thought of as "keys", though they bear no relation to cryptographic keys.
It works like so:
Our project's name, !PiedPiper, is an homage to HBO Silicon Valley's Pied Piper, which was a fictional startup which enabled the secure storage of large files on a new, decentralized internet.
We built our encryption/decryption system, including the CycleGAN implementation, in Python 3 using PyTorch and NumPy. We built a NodeJS server to store and retrieve video files from Powergate localnet, although it seems to have broken with the latest Powergate API update so we reverted to using pow cli commands. We also have a React+Web3.js frontend for uploading masks in JSON format to IPFS mainnet, based of Austin Griffith's eth-scaffold boilerplate.