In the sixth session of this 12 part series, join status' core contributors as we discuss and debate to which degree we uphold our principles, how we can improve our performance, and what we're adding to our Wall of Shame.

Decentralization:

We minimize centralization across both the software and the organization itself. In other words, we maximize the number of physical computers composing the network, and maximize the number of individuals who have control over the system(s) we are building.

Slide Deck:

Seminar Opening presentation

Seminar Index

Decentralization (people) Session Notes (reprinted below)

Youtube:

Wall of shame

  • What is our path to getting rid of the cluster?  Is that clearly outlined somewhere?
  • No incentive to run Whisper nodes
  • Zero people running Status nodes
  • We run specialized/priv nodes (mailserver)
  • Be able to run all all services on node (even if practically so-so)

Notes:

[Graeme]
Is the vision that we're building a comms protocol that's apart from Whisper?  Status client has been able to show that running a chat app doesn't break it, maybe it needs its own protocol, are we the people to make it?

[Corey]
We use Whisper because it aligns with the Principles, aligns with the Ethereum stack. Breaking Whisper is trying to figure out how far we can go, how do we move forward from that? The process of decentralising the computers relies on us running Whisper servers outside of Status, means we need a larger privileged node operating as mailservers. What if we find a better protocol giving us everything Whisper does?

[Igor]
Don't know the history behind it, think Whisper is just a legacy thing versus being a deliberate decision. There are better protocols.

[Oskar]
Want to reiterate that this is an active discussion. We have a WoS, want individuals to contribute to it.

[Barry]
Question on Breaking Whisper - how will we know if Whisper is breaking and dropping messages, especially with lots of us leaving Slack. How do we know if we're hitting capacity?

[Corey]
Working to figure that out.

[Ned]
Is it possible to use multiple paths?

[Igor]
Might be useful to have more than one at the same time with, e.g. one good for offline messaging. For each additional protocol implemented, there's a support penalty.

[Jacek]
Focused very much on chat application. What is missing right now to develop apps as you would develop on a traditional operating system that we could do better?
OS offers communication in general, including communication for apps to establish a service for the user. We haven't focused on other things that are needed in order to fulfil vision of Ethereum as world computer dealing with storage and state. As much as I like log-based things for chat as failures are local, are we missing something by not addressing it from a DApp perspective.

[Iuri]
Not a fan of Ethereum as world computer analogy, I see it more as a consensus mechanism. DApps have different component, Ethereum is one component. The main goal is really to have a consensus mechanism, something everyone agrees on what is the truth. Not quite the same as a decentralised world computer. Depends on your interpretation of that. In terms of DApps, one big thing that's missing is a good transport layer. If people want to do things like decentralised communication, it's not easily accessible to the average DApp. Something that Status could do and serve as open platform. If you want to call Ethereum a world computer, imagine Status as the world communication network. Many possible DApps we couldn't even imagine. Talking of Status as a platform not a mobile app.

[Ricardo]
Status from a user perspective looks more like Facebook. FB has apps, but Status is way better because it is more open than FB. We have chat and apps, so it's an evolution on what FB is trying to do. For users it should be the same final tool - for communication and for finding DApps. People play games, conduct business, etc. For users this is Status's function.

[Graeme]
Notification service - something that's tabled for Prague - how can we create the possibility for DApps to send notifications. This is needed.

[Igor]
It can't really notify you about anything that happens in the background. This is critical for the user. May take the form of notifications via Whisper.

[Jacek]
I'm thinking of it like are there other use cases of Whisper that we're overlooking? Maybe we could use a different protocol for the chat specifically.

[Iuri]
Anything that relates to communication is a possibility. Talked to Raiden about this, they experimented with it, didn't work too well. Maybe not as experienced with Whisper as Status is. There could be other cases where DApps communicate with each other. I think we'll see decentralised services that make use of Whisper. Chat is really just one possible application.

[Oskar]
I thought Whisper was about communication between DApps?

[Igor]
Can use it as part of the chat, might be a way to notify people about messages faster if both people are online.

[Iuri]
Communication is not just chat.

[Iuri]
Can combine Whisper as a real time machine-to-machine communication layer. What else can we think of that requires darkness in real time?

[Barry]
I looked at the paper that outline Whisper use cases recently, one of them was Dapp-2-Dapp communication, another case was whistleblowers who want to stay anonymous and reveal info to the public. Thought that was interesting.

[Igor]
Yes - instead of e.g. mailservers

[Iuri]
Let's not limit ourselves only to things that need darkness, it's a default and a good one, but privacy should be the default. There's no incentive to shut it down, you can't really shut down the internet because it's being used for bad things. The vast majority is for good use cases. So if that's the default, it makes the network much more useful.

[Igor]
Darkness limits scalability of the network.

[Barry]
In terms of using a messenger, do you always need darkness? It makes sense in public chat rooms, but in a DM between two known people who are contacts of one another, do they need Whisper to communicate? Is there a less resource-intensive alternative?

[Igor]
Depends.

[Rachel]
When explaining decentralisation to people, use analogy with no middle man. Not the most ideal example, mention Airbnb but not using Airbnb to handle the transaction/money. Use a "directly from me to you" example.

[Rajanie]
Example of when you want to sell something, what platform do you use, e.g. Amazon. Rather than Amazon, you log into a portal and sell your goods directly p2p directly.

[Rachel]
Mention benefits, less fees.

[Rajanie]
Benefits from not involving middle men.

[Lalo]
Refer to decentralisation as freedom - freedom to control your data, financials, communicate more easily. Eliminating middlemen in transactions or user experiences. Mostly I use freedom. In LatAm, that really empowers us and we see a benefit of freedom.

[Oskar]
How do we bridge these two ways of looking at it?

[Jacek]
In the real world a lot of these things are intuitive. If I sell you a banana and you give me money, I don't think about the centralisation.

[Ned]
Becomes a bit more technological. Can try to explain a world without Apple or Google, how to build your own tools that will give you an equivalent. Take people on a slow journey. Give them an idea of how the tech works. Create visual applications that help people see their choices, rather than having technical details that don't come into it.

[Graeme]
Showed app to friends, they understood it as chat app. Tried to explain decentralised, i.e. that they can't block your IP address. Gives the product resilience.

[Mamy]
No one that filters the news out for you to direct your thinking.

[Rachel]
That's a great example related to communication. People don't quite feel the benefits of decentralisation, because they don't feel their communication is insecure. More people can relate to being fed a skewed perspective.

[Ned]
Need an understanding of what people value and how to address their needs.

[Jacek]
Talked in Basel that the tech we're building is not necessarily for today, built with a perspective on how it can be used when things go wrong. In a situation where things go bad, how will this technology behave. Litmus test on whether to implement something, if this was taken over by a bad actor, what would happen? We are spreading a tech throughout the world that we will not be in a position to change when things go wrong. Need to make the changes now.

[Oskar]
Even if a few nodes are compromised, can still get darkness with Whisper (I think)

[Jacek]
Whisper - if nodes around you are compromised, then you are compromised too. Another important Litmus test, the more special nodes you have in the system, the weaker it becomes. The mailserver is a specialised node and it performs a task that none of the other nodes are capable of, and that's why we intuitively feel that there's an issue with this. These are things I look for when looking at criteria to evaluate permission.

[Ned]
Special nodes/mailserver - is that for storage?

[Jacek]
You also need another mechanism in place to incentivise them to behave correctly. In blockchain, the miners are incentivised to make sure the network works well. The network becomes more fragile.

[Graeme]
Nodes don't need to become the new normal, the regular Whisper network isn't reliable.

[Oskar]
re mailservers, they are specialised because of a high availability requirement. If you're offline and delegate the ability to store messages when offline, that goes to one node, and if its offline you lose messages.

[Jacek]
Not all nodes need to perform a task, they need to be capable when no one else who can do it is around. Maybe this is where an economic model comes in, maybe it's reasonable in some cases to use money. Nonetheless it's an interesting property to evaluate the system by and me cognisant of what constraints you're introducing to the system. As long as you can measure the impact of your decisions, you can make rational ones.

[Igor]
Also - we shouldn't underestimate the power of mobile devices in general, especially modern ones. Two concerns - battery consumption and traffic. Everything else is not much slower than your computer. Maybe we should think about how we empower mobile nodes much more. There are many more of them.