Decentralized Media Releases

Premise

It ought to be possible to do completely distributed crowd-funded media releases where:

  1. No publishing company or middlemen are involved in the release.
  2. The artist gets paid a fixed-fee at the time when the work is released to the public.
  3. The work is distributed by fans on a peer-to-peer network before it is released.
  4. The release mechanism is done by bots who have a financial incentive to not share early (ideally not fans).

Mechanism

The artist takes the release that they wish to sell and opens up a web-based tool. The tool is written in plain old JavaScript, ideally hosted on IPFS.

The tool creates an archive, a tar file containing a json file that describes the contents, and a bunch of files/fragments of files that have one of the following encryption statuses:

  1. Not encrypted.
  2. Can be unlocked by one of several groups of “M of N” release keys.

The user now solicits escrow bots in a p2p fashion. Once the bots have been found, the file is encrypted so that they can unlock the encrypted chunks. The bots sign the final contract, and the file is released on IPFS.

Users download the file and examine the plaintext contents. If they like the previews, they submit money to the contract. Once the funding goal is met, bots release the keys that allows the content to be decrypted. Once this step is complete, the author finalizes the contract and their money is released.

Attacks, failures and mitigations

Colluding keyholders

Two keyholders get together and share their keys, unlocking the file early.

Vanishing keyholders

Once the funding goal is met, the keyholders don’t show up to release the keys.

Author never releases the file

The author solicits the bots, but never releases the file. So it’s not available on IPFS.

Author sends a brick in a box

The author publishes a different file to what was agreed, ripping off their community.

Failure to fund

The funding goal is never met, the keyholders have money locked up in the contract.

Releasing keys after failure

I don’t need to pay, I can just wait until it fails and the keyholders get their money back, then get keyholders to leak the keys.

Cashing out reputation

I’ve built up this reputation fund. I’ll spend it by snitching on myself.

Reputation farming

I can get reputation by farming Sybil contracts, and get more future contracts than others because I have more reputation.