|
| 1 | +--- |
| 2 | +title: Introduction |
| 3 | +sidebar_label: Introduction |
| 4 | +slug: / |
| 5 | +sidebar_position: 1 |
| 6 | +--- |
| 7 | + |
| 8 | +# Polycentric |
| 9 | + |
| 10 | +Polycentric is an open-source, distributed social network. Content is published to |
| 11 | +multiple servers at once. If one server stops serving a user's content, clients |
| 12 | +fetch it from another server that holds a copy. |
| 13 | + |
| 14 | +The [web client and app](https://polycentric.io) and the |
| 15 | +[source code](https://gitlab.futo.org/polycentric/polycentric) are public. |
| 16 | + |
| 17 | +## Model |
| 18 | + |
| 19 | +- **Distributed.** No single server owns the network. A user picks which servers |
| 20 | + store their data, and clients read from whichever servers have it. The servers a |
| 21 | + user publishes to can be entirely disjoint from the servers used by the people |
| 22 | + they follow. |
| 23 | + |
| 24 | +- **Self-sovereign identities.** An identity is a set of cryptographic keys, not a |
| 25 | + server account. Every event is signed by a key the user controls. Servers cannot |
| 26 | + forge or alter a user's events, and a user's data survives as long as one server |
| 27 | + still hosts it. |
| 28 | + |
| 29 | +- **Server-provided discovery.** Search and recommendation feeds are computed by |
| 30 | + servers, because they are impractical to do on the client alone. Clients query |
| 31 | + several servers, deduplicate the results, and attribute each result to the server |
| 32 | + that returned it. This limits how much any single server can manipulate what a |
| 33 | + user sees. |
| 34 | + |
| 35 | +## Compared to federated networks |
| 36 | + |
| 37 | +Polycentric shares goals with federated networks like |
| 38 | +[Mastodon](https://joinmastodon.org/) (built on ActivityPub): no single company owns |
| 39 | +the network, anyone can run a server, and users can follow each other across servers. |
| 40 | + |
| 41 | +The main difference is where identity and content live. |
| 42 | + |
| 43 | +- **Identity.** On a federated network your account belongs to your home server |
| 44 | + (`@user@server`); losing or leaving that server means migrating, and your old |
| 45 | + address breaks. On Polycentric your identity is a set of keys you hold, independent |
| 46 | + of any server. |
| 47 | +- **Content location.** Federated servers each store their own copy and push updates |
| 48 | + to each other. On Polycentric a user publishes to several servers at once, and |
| 49 | + clients read from whichever server has the data — so one server going down or |
| 50 | + refusing to serve content does not take a user offline. |
| 51 | +- **Trust.** Federation is server-to-server: you trust your home server, and servers |
| 52 | + trust each other to relay accurately. On Polycentric every event is signed by the |
| 53 | + user, so a server cannot forge or alter content, and clients verify it directly. |
| 54 | +- **Moderation.** Federated moderation is per-server, including defederating whole |
| 55 | + servers. Polycentric servers curate their own discovery feeds, but content stays |
| 56 | + reachable from other servers regardless of any one server's choices. |
| 57 | + |
| 58 | +## Cryptography |
| 59 | + |
| 60 | +Each event is signed with a key held only by the user's device. Servers never hold |
| 61 | +private keys. An identity can authorize multiple keys (for multiple devices) and |
| 62 | +revoke them, so a user can move between devices without handing control to a server. |
| 63 | + |
| 64 | +## Why not a blockchain |
| 65 | + |
| 66 | +Polycentric provides distributed synchronization and censorship resistance without |
| 67 | +consensus. There is no global ordering requirement and no proof-of-work, so the |
| 68 | +network avoids the latency and throughput costs of blockchain consensus. |
0 commit comments