Stub out preexisting work overview

This commit is contained in:
Jay Graber 2020-02-25 00:17:09 -08:00
parent 10c4164eea
commit 8909f6a6a6
7 changed files with 161 additions and 0 deletions

62
overview.md Normal file
View File

@ -0,0 +1,62 @@
# Ecosystem Overview
We can structure the overview by topic and by protocols. It is easier to write up overviews by protocol, but organizing information by topic will be more helpful when making design decisions and evaluating relevance.
## Protocols:
The protocols directory contains summaries of existing projects. Anyone can add new files summarizing a project or subject area they find interesting. The lists below are of current projects, but there is also value in summarizing historical projects that are no longer in use.
Lists of decentralized web projects.
[Redecentralize](https://github.com/redecentralize/alternative-internet)
[Decentralized Web projects by gdamdam](https://github.com/gdamdam/awesome-decentralized-web)
[DIDs](https://github.com/didecentral/didecentral.github.io)
Overviews of decentralized social networks
[Decentralized Social Networks](https://medium.com/@jaygraber/decentralized-social-networks-e5a7a2603f53)
[Blockchain Social Networks](https://medium.com/@jaygraber/blockchain-social-networks-c941fb337970)
## Topics:
This is a suggested list of how we could organize by topic. Under each topic, we can address how existing protocols and projects have addressed it.
#### Network structure
- Federation
- P2p
#### Identity
- Decentralized identity
- Key management
- Reputation, Trust
- Account recovery
- Privacy
#### Data
- Data models
- Data availability
#### Money
- Business models
- Payment
#### Filtering
- Queries
- Curation
#### Moderation
- Protocol level
- Server level
- User level
- Content level
#### Governance
- Upgrading protocols
- Organizational structure

19
protocols/activitypub.md Normal file
View File

@ -0,0 +1,19 @@
# ActivityPub
ActivityPub is a federated protocol that defines a set of interoperable social network interactions through specific APIs. Any server that implements this protocol can communicate with the rest of the network.
Mastodon, built on ActivityPub, is a popular federated alternative to Twitter with around 2.2 million users. Prior to Mastodon, projects like GNU social and Diaspora tried and failed to get federated social networks to scale. Mastodon succeeded in large part because it created a familiar user interface that looked and behaved like Twitter, allowing users who were dissatisfied to find a new place to land with minimum effort.
Identity
Users create an account on a server (an “instance”), but can communicate with users on other instances. The entire constellation of instances that can interoperate is called the “Fediverse”. A full username is a users handle plus the name of the instance the user belongs to, for example:
`@arcalinea@mastodon.social`
Account credentials are managed by the users instance, so if users forget their password, they can ask for a password reset.
Moderation
Each instance sets its own moderation policies, either through the unilateral decisions of an admin, or through some sort of collective vote. Admins can ban entire instances, cutting off their visibility. If an instance gets banned by many others, its users can still talk with each other, but they will be isolated from the rest of the Fediverse. This happened to Gab.com, which set up an instance.
Monetization
Federated social networks require both hosting and development costs to maintain. Each instance is funded by its own administrator and community. Mastodons development is funded through a Patreon run by the main developer. It currently brings in about 70k a year, which supports him working on it full time, and covers hosting costs and a moderation team for the mastodon.social instance.

0
protocols/dat.md Normal file
View File

3
protocols/ipfs.md Normal file
View File

@ -0,0 +1,3 @@
# IPFS
[IPFS and Dat comparison](https://medium.com/decentralized-web/comparing-ipfs-and-dat-8f3891d3a603)

5
protocols/matrix.md Normal file
View File

@ -0,0 +1,5 @@
# Matrix
(stub)
Matrix is a protocol designed more for chat than for social networks, but it is worth mentioning because it has achieved a federated chat experience with good UX at scale, and has done valuable work on improving identity and moderation. The protocol currently has around 11 million users who use a variety of clients. It is developed by the company New Vector which raised an $8 million series A in 2019. Matrix has a more flexible identity solution than most decentralized protocols — users have a Matrix user id, but can also use 3rd party ids. A Matrix account links to ids such as email addresses, social accounts, and phone numbers. A globally federated cluster of trusted identity servers verify and replicate the mappings. The Matrix team has also been working intensively on tools for moderation, detailed here, and plans to release a p2p implementation soon.

29
protocols/ssb.md Normal file
View File

@ -0,0 +1,29 @@
# Scalable Secure Scuttlebutt (SSB)
[ssb repo](https://github.com/dominictarr/scalable-secure-scuttlebutt)
Ssb, or secure-scuttlebutt, is a distributed gossip protocol designed for social sharing. Every node has a partial view of the network, which makes it hard to get a count of how many total users there are, but according to a network crawl run by a developer in Nov 2019, there are around 16,000 nodes on ssb. Users are distributed across a few different client apps that work on desktop (Patchwork) and mobile (Manyverse, Planetary).
Data Model
Each post is appended to the last, in an append-only log establishing chronological ordering from the very first. Because every post is chained to the last, theres currently no way to delete or edit posts. When you follow a user, you will begin to store and sync their posts. An ssb application is constantly sharing data with other nodes in the background while you use it.
Identity
Every user has a public/private keypair which is used to sign posts, verifying their authenticity.
In ssb, users are identified by public keys. My public key is:
`@3QHXrXl762sf7P/Q1RMtscA7IRipfUFnE5tpie5McvE=.ed25519`
Users can pick a human-readable nickname that is associated with their key, but nicknames are not unique since there is no global registry. Others can mention me by my nickname @arcalinea, but someone else could also use the same name.
Key management is one of the biggest challenges, as users inevitably lose and forget their passwords. Users are in complete control of their identity. That means if they lose their cryptographic key, they can permanently lose access to their account. Keys are also currently stored on devices, which makes it impossible to sign in to one account across multiple devices — a basic feature of social networks users have come to expect.
To attempt to address the problem of key management, a project in the ssb ecosystem, Dark Crystal, has implemented a social key recovery system. It splits keys into shards to store with family and friends who can be trusted to help reconstruct a lost key.
Moderation
At the ssb protocol level, there is a “flag” feature to send a strong negative signal about bad actors. There is no global moderation, and no specialized moderators. Applications built on top of ssb allow users to “block” and “ignore”. A block in ssb functions more strongly than a block in centralized networks because it means that blocked users no longer have their data passed through those nodes. If enough people block a user or group of users, their part of the network will become cut off from the rest.
Monetization
Maintainers of p2p networks do not have to pay for hosting costs, since there are no servers and the network naturally grows in capacity as new users join. Developers who want to work on more than a volunteer basis need to find their own funding. The ssb ecosystem is supported through a variety of grants, donations, income from side projects and consulting, and a few companies that have raised money to build applications on ssb.

43
topics.md Normal file
View File

@ -0,0 +1,43 @@
# Topics
This section will be structured as comparisons between how protocols handle these core topics. Can evaluate pros and cons, as well as include concepts from projects not covered more in depth elsewhere. If this section expands a lot, it can also be organized into separate files in a directory.
#### Network structure
- Federation
- P2p
#### Identity
- Decentralized identity
- Key management
- Reputation, Trust
- Account recovery
- Privacy
#### Data
- Data models
- Data availability
#### Money
- Business models
- Payment
#### Filtering
- Queries
- Curation
#### Moderation
- Protocol level
- Server level
- User level
- Content level
#### Governance
- Upgrading protocols
- Organizational structure