Principles Seminar - Session 3: Censorship-resistance

Third session of principles seminar today. Let’s keep discussion open about this principle here, as well as add stuff to our wall of shame in this thread.

Opening talk

Principles Seminar v0

Session 3 - Censorship-resistance

Oskar, 2018-10-10

II. Censorship-resistance

We enable free flow of information. No content is under surveillance. We abide by the cryptoeconomic design principle of censorship resistance. Even stronger, Status is an agnostic platform for information.

What is censorship?

  • Discriminatory treatment of information
  • Layers: transactions, network, social
  • Goal: make it costly


  • Wikileaks financial blockade (VISA, Paypal, etc)
  • Internet outage during protests
  • WeChat, FB, YT, subreddits…

Decentralized web

  • Largely what Web3 etc enables
  • Huge competitive advantage
  • Let’s use it!

Freedom of speech

I disapprove of what you say, but I will defend to the death your right to say it – Evelyn Beatrice Hall (The Friends of Voltaire)

Censorship-resistance is a prerequisite.

Cryptoeconomic design?

Use cryptography and economic incentives to raise cost of censorship. Mostly about transactions in Ethereum, but also tool for making our network harder to censor.

Single points of failure

  • Pressure point, just poke a little
  • Related: coercion-resistance
  • E.g. reliance on: Infura, etherscan, cluster, etc.

Agnostic platform

  • Literally: don’t know (double meaning)
  • Not our role to decide; battle of ideas
  • Abiding by quote on Voltaire

In the war between true and false, the false lose by being false, not censored.

(also see Streisand effect)

Pairing and wall of shame

Up to you.

  • Idea Generator 1: List pairings and think about positive and negative interactions.

  • Idea Generator 2: Think like adversary - how can Status be censored?


Raw notes


Wall of shame

1 Obviously, which already exists, cluster

2 Release channels Play store and App store

3 Assume Ethereum is operational

4 Assume an internet connection

5 Whisper easy to DDoS (maybe not censorship)

6 Reliance on Infura quite a bit

7 Legal entity provides attack vector

8 We rely on a small number of (fiat) bank accounts to compensate core contributors

9 Organization design is somewhat centralized (not a DAO)

10 We don’t have a strong open source community (dependence on CCs)

12 Non-standard ports make ISP blocking super easy

13 NAT traversal isn’t implemented for Desktop to be bootnodes

14 GitHub as a single point of failure (node.js)

  1. Requires Internet to operate
  2. keeping failure local, right now more system on/off

Post notes

Oskar - intro - looking at how the principle came into existance
Everyone-adding WoS thoughts

let’s start from single points of failure

platforms and search engines - able to censore at ISP level, dictatorship.
How do you get around something like that?
That’s what we are solving at a first level

Ned and I talked about onramping people right from your phone - something needs to be done at connection level, P2P

Mesh network

Let’s not get too deep into technical implementations

the way we use the internet is too centralized, and that’s prime terrain for censorship

Bigger problem than the ISP

Focus on building something that would only fail locally - mesh is cool but use could still be penalized or blocked

What can we do?

Specific swarms working on it - ultra light client

Move the conversation to App Store

Economic incentive vs enthusiasm
specialized nodes that do these things
incentivize people to run these services
distribute through something like swarm
users get access that way, doesn’t matter where the service is distributed

Apple doesn’t allow downloads outside of their app store

Different distributions we can try

People who need it will find a way to have it - how much time should we spend building so many options?

How about the social aspect?

At this moment we’re mostly relying on CC’s. It’s hard for others to work/build on Status

Go and see what others need - what blocks, where to start. Find the bone structure of all these elements, in these places where tech and language are different from what we use. Enable them to use their framework - rethink/reshape these elements

Contributors come when something is useful to them, hard to come into the project unless you’re an ETH enthusiast.

Some dev switched from looking at Status to develop for Status. Can’t recall the exact details but they had more documentation available. Perhaps we need to focus more on that - we have lots more available now, and Studio can also help

We have ENS documentation now, we should be pushing more blog content

in voting we filtered out poles that were created twice - so every pole, when you create a new one is just sequential

We can’t give up user data if we don’t have the data. If we work to NOT have any power whatsoever, we can’t be forced into anything

How would people react if at some point we can’t have a legal company and can only be paid in crypto?

I rely on the legal company to live a normal life

We shouldn’t even have one :slight_smile:

Hmm classic compromise - same as Slack vs Status, you need to compromise in the sake of efficiency, up to a certain point

Can we be honest with ourselves - maybe we need these legal companies and can’t exist otherwise

Maybe we should decentralize that too, and have a lot of legal companies

Is the DAO an extention of our legal entity?

Let’s table that til tomorrow - we’ll have a session on that

What are we gonna do if someone turns off our cluster?

we could (very hackey) run stuff locally, Adam and others are relatively close to have a contingency plan if need

As soon as we have the option, we should kill the cluster, the same way we’re doing with using Status vs Slack. Even if it’s cranky at the beginning it will force to improve it faster.