Peergos Curriculum
Phase 1 of a video curriculum on Peergos: an end-to-end encrypted file system with sharing, sync and apps, built on content-addressed storage, signed pointers, a cryptree of keys, capabilities, block access tokens and an append-only username log. Idea map, one unit card and script per idea.

Peergos Curriculum

Phase 1 output under the Video Curriculum Guide. Every unit is one video plus one post and carries exactly one idea.

What the series is. Peergos is "a peer-to-peer encrypted global filesystem with fine-grained access control designed to be resistant to surveillance of data content or friendship graphs." The series teaches the model as the Peergos book describes it on 2026-10-22: how files become sealed blobs under random labels, how signed pointers and writer keys make them mutable, how the cryptree and capabilities make sharing a matter of handing over keys, what block access tokens and the username log add, what a server can still see, and how apps, private websites and sync sit on top. The audience is people who build local-first or encrypted software.

Recorded source statements. Every claim in the scripts rests on one of these, quoted from peergos.org, book.peergos.org or the Peergos GitHub README (read 2026-10-22).

    Home page: "Post-quantum end-to-end encrypted storage, sharing and sync. Not only your files, but their names, their sizes, and who you share them with, stay yours." "Encrypting the contents is the easy half." "0 file names, sizes or contacts visible to us." Sharing uses "a hybrid of X25519 and MLKEM-1024, so what you share today is no good to someone who records it now and waits for a quantum computer." You can "run the whole thing yourself, for nothing, and still share with everyone else." "Sync any folder, in both directions, on as many devices as you like."

    README: "a peer-to-peer encrypted global filesystem with fine-grained access control designed to be resistant to surveillance of data content or friendship graphs"; the data layer is IPFS; "Files use symmetric encryption with independent 5MiB chunks"; the social layer works "without exposing the friend network to anyone"; storage can be IPFS, S3-compatible or PostgreSQL, with optional mirroring.

    Book, logical architecture: content-addressed storage is "a data store with a mapping from the hash of a block of data to the data itself"; mutable pointers are "a mapping from a public key to a hash"; the PKI is "a global append only log for the username <==> {identity public key, storage public key} mappings"; "each user designates a server for sending follow requests for users to (the server can't see the source user)."

    Book, physical architecture: each user has at least one Peergos server with an IPFS instance, mutable pointer storage and pending follow requests; "Communication between IPFS instances is done over encrypted TLS 1.3 streams"; "There is also the global append only log for the PKI which is mirrored on every node."

    Book, immutable data: "The immutable data store is provided by IPFS and allows anyone authorised to retrieve cipher text from its hash through any Peergos node." "Each block specifies which BATs are allowed to retrieve it. Any node that retrieves such a block enforces the same auth on it." "Every hash and signature is checked client side during reads and writes." "The underlying storage can be provided by the local harddisk or any S3 compatible object storage without loss of privacy."

    Book, mutable pointers: "Mutable pointers in Peergos are just a mapping from a public key to a root hash." Each signed update contains "a pair of hashes (previous, current) and a monotonically increasing sequence number"; sequence numbers let "clients to cache the most recent version of a pointer to defend against being served stale older versions"; an IPFS node id derived from the public key is the synchronisation point for a user's writes.

    Book, writing subspaces: "Each user has a randomly generated writing key pair which controls writes to their filesystem. They can create new writing key pairs for any subtree, for example when granting write access to a file or folder." "If desired, a given writing key can be quota controlled, to prevent users to which you've granted write access to a file from filling your data store."

    Book, Merkle-CHAMP: "a merkle compressed hash array mapped trie, or merkle-champ" that is "a mapping from random 32 byte labels to cipher-text blobs"; "Each 5 MiB section of a file is stored under a different random label in the champ, and similarly with large directories."

    Book, usernames: "The public keys and usernames are stored in a global append only data structure, with names taken on a first come first served basis." The Corenode is "the public key infrastructure (pki) server" and stores "the ipfs node id of the server(s) responsible for synchronising the user's writes"; "This needs consensus to ensure uniqueness of usernames."

    Book, Merkle-CHAMP (continued): "All the data under a given writing keypair has its own merkle-champ." A Merkle trie changes only the path from a modified leaf to the root (general property, not a page quote).

    Book, PKI security: "Mirrors reject updates that are not append-only, so the pki cannot tamper with the mappings"; a username comes with "a claim to a username along with an expiry"; the log is "similar to certificate or key transparency logs", but "key transparency logs are not normally used as the source of truth, but only checked retrospectively ... So this gives much stronger guarantees."

    Book, follow requests: "Follow requests contain no unencrypted data visible to the network, or server, apart from the target user"; they are stored on the recipient's server; the request carries a read capability to a directory the sender made for the recipient; "a challenge protocol to mitigate against someone logging them all now and decrypting them with a large quantum computer."

    Book, social graph: "The read capability is sent encrypted from a random single use keypair to the target user's public key." "Once retrieved, the receiving user stores the capability in their own storage, symmetrically encrypted and deletes the follow request from their server." Requests are planned to go over Tor hidden services.

    README: "A User must have at least one Peergos instance storing their data for it to be available"; "There is a pki node which ensures unique usernames."

    Book, trust-free layers: "you do not need to trust a server to interact with it"; "A Peergos client verifies the hash of every block read from or written to a Peergos server"; "Peergos clients also verify the signature of every signed piece of data received"; "once you have obtained a trustworthy copy of a Peergos client you do not need to trust a server"; availability is the README's residual (above).

    Book, threat models: casual user "Trusts the SSL certificate hierarchy and the domain name system"; slightly paranoid user does not trust DNS or certificates but runs JavaScript locally; more paranoid user distrusts those and JavaScript and uses native or self-built clients. A home or mirror server can see "total space used (rounded up due to padding before encryption)" and "total number of secret links and any expiry, use limit and use count" but not file names, sizes, thumbnails, chunk relationships, access permissions or social connections. A logged-out device holds only ciphertext.

    Book, login: "To login your password + username + public salt are hashed using scrypt hashing function (with parameters 17, 8, 1, 64)." "The output of this is your login keypair and a symmetric key." "The login keypair is used to auth with your home server and retrieve your encrypted login data, which is decrypted using the aforementioned symmetric key." Login data "contains your identity keypair, social keypair, and the root capability to your filesystem." "The public salt and encrypted login data are stored on your home server, and any mirror you have authorised."

    Book, encryption: "salsa20+poly1305 (from TweetNaCl)"; files are "split into chunks of up to 5 MiB, padded to a multiple of 4 KiB, and each chunk is independently encrypted"; keys are random 256-bit values "not derived from the contents of the file"; "Different chunks of a file are not linkable unless you have a read capability for that file"; sharing keys are "asymmetrically encrypted with a hybrid of X25519 and MLKEM."

    Book, block access control: a BAT is "an optional auth string paired with every CID", like "an S3 V4 signature, which is time-limited, includes the CID, and is tied to the requesting node's public key"; two kinds, an inline BAT per block and a mirror BAT per user referenced by hash, for mirroring and migration; "Each 5 MiB chunk of a file or directory has its own unique BAT, so the server still cannot link the different blocks of a file to deduce the padded size"; raw blocks are "fragments of ciphertext with no additional structure"; on plain IPFS "any node that has the content can serve it up"; the BAT is the secret: "Such a secret key would grant the holder access to the block, so we call it a Block Access Token or BAT for short, and each is 32 bytes long"; "any instance that retrieves such a block (after being authorised) can continue to serve it up and enforce the same access control"; "we also need to support raw blocks that do not have a BAT (either legacy blocks or ones specifically made public)"; "When someone's access to a file or directory is revoked, the BATs are also changed, making it impossible to retrieve the new ciphertext even with previous access."

    Book, cryptree: "a tree of symmetric keys, where the holder of one key can decrypt all the descendant keys"; access to a file does not reveal its siblings or their names; write access is a parallel tree of signing key pairs, and granting write access moves the item to a new key pair. The page does not discuss revocation.

    Book, sharing: "A file or folder can be shared with any user who is following you. This access can be read only or writable. Access can be revoked at any time whilst maintaining access to anyone else the item is shared with. This is all achieved cryptographically with capabilities and lazy re-encryption."

    Book, social: "Peergos users can send follow requests to each other. If accepted, the other user can then share files or send messages with you." "Files your friends share with you appear in your newsfeed." "Your friend list is kept encrypted in your own Peergos space, hidden from other users and the server."

    Book, sending a follow request (dev): "Create a directory /our-name/shared/friend-name. Encrypt a read capability for that directory using a random key pair to the target's following key"; "The target can then either allow and reciprocate (full bi-directional friendship), allow (you are following them), reciprocate (they are following you) or deny"; on receipt "you add the capability in the request to a file in your home dir ... before deleting the follow request"; once friends, "you can grant read or write access to any file or folder by adding a read or write capability in their directory in your space." Encryption page: "Sharing files with other users is done through follow requests. Follow requests are asymmetrically encrypted with a hybrid of X25519 and MLKEM."

    Book, capabilities: "The owner is a public key, which is used to lookup the host public key from the PKI. The writer is a public key for the mutable pointer. The map key is 32 bytes which form the lookup key in the champ, the BAT is 32 bytes which are used to control access to the ciphertext by the server," plus 256-bit symmetric read and write keys. "With a mirror capability you are able to retrieve the raw ciphertext of a chunk. The read capability allows you to decrypt and read the chunk, and the write key allows you to modify the file/directory."

    Book, metadata: hidden are "the name for directories and also the filesize, modification time, any thumbnail and mime type for files"; sizes are obscured by "splitting files into 5MiB chunks, which are padded to a multiple of 4 KiB"; "The metadata around access patterns will be hidden by hosting files behind a tor hidden service once Tor is integrated"; "The metadata around access patterns will be hidden by hosting files behind a tor hidden service once Tor is integrated. This will ensure that when one user reads a file shared with them by a friend this access does not leak to the network the fact that they are friends."

    Book, quantum resistance: "Files that you store but don't share with anyone are already resistant to quantum computer based attacks" because they rely on "hashing and symmetric encryption, neither of which are significantly weakened by a quantum computer"; shared files use "a post-quantum hybrid of X25519 and MLKEM."

    Book, secret links: "The password (the fragment of the URL) is then used to decrypt the link to get the capability to the file or folder." "The host applies any expiry or n-use restrictions before returning the encrypted link." "The password based encryption on each link is designed to take 100 years to brute force if you have 1,000,000 GPUs, each of which can do 1M scrypt hashes per second." "A secret link doesn't expose the file to the network, or indeed to anyone who doesn't have the link itself (and any password) because the key material isn't sent to the server."

    Book, mirroring: "This will keep an uptodate copy of all your data on another server," including login data, through a mirror BAT; server-wide mirroring repeats "once a day."

    Book, migration: "Your identity in Peergos is not tied to any particular server"; you can "transparently migrate between servers and storage providers without any action required from your friends and without any data loss"; the CLI migration will "update the PKI so this is your new home server"; "no one you've shared with needs to do anything."

    Book, proxying: "Any modifying request needs to be proxied to the correct destination server... using an ipfs p2p stream," "an end to end encrypted stream through the ipfs network to the destination node", opened by "the http p2p proxy exposed locally on the ipfs gateway" of the server the client talks to; a client can connect to any Peergos server. Peer-to-peer page: "There is no central surveillance point" and "no central dns name or TLS certificate authority".

    Book, custom apps: an app runs "in a unique hostname (sha256(app path).$peergos-domain)", "isolated from the main peergos domain in a separate OS process, and from other apps"; a service worker turns its requests into post messages to the main Peergos tab where "requests are checked for validity and permissions are enforced"; "By default, an app has no permissions and can only read its own assets"; "Most permissions are declared in the app's manifest, but access to folders in the user's drive is granted at runtime instead: the app asks, the user chooses a folder and approves it in a dialog, and they can revoke it at any time"; apps are "plain HTML/Javascript/CSS packaged in a folder"; running an app "doesn't reveal its assets to the server"; the app domain "cannot make any external requests which could be used to exfilrate data [0]" with footnote "[0] This is currently not true until browsers implement webrtc CSP which blocks any webrtc connections ... So only install apps from authors you trust for now, unless they don't require any permissions which is safe"; an app with folder access "stops working when the folder's keys change: when the user unshares the folder, or any folder above it, with anyone."

    Book, private websites: "You can turn any folder in Peergos into a private website"; sites open in a built-in browser isolated by subdomain; "external communication is impossible [0] ... 3rd party tracking is impossible ... browser fingerprinting is irrelevant for such websites because no information can be exfiltrated", with the same WebRTC footnote; sites link by file path and are shared like folders.

    Book, file sync: "Peergos can do bi-directional syncing between a local folder and a peergos folder. It keeps both folders in sync including deletes (optional) and empty folders." "If a large file changes it only copies the changed chunks of the file, rather than the entire file." Deletes can be synced locally, remotely, both or neither.

    Book, upload: for each section up to 5 MiB, "Pad plaintext to a multiple of 4096 bytes. Encrypt the padded 5 MiB file section with a random symmetric key. Split the cipher text into 1 MiB fragments."; "Add the FileAccess to the champ of the writing key pair (under a random 32 byte label ...)"; "A modification, such as uploading a file, can be done through any Peergos server as the writes are proxied through an ipfs p2p stream to the owner's storage ipfs node."

    Book, signup: "Hash the password and username through scrypt to get the auth key pair, and symmetric root key"; "Generate a random identity keypair"; "Generate a signed username claim including an expiry, and the ipfs node id of the storage server"; "Send this claim to the pki node for confirmation"; "Generate a random key pair to control writes to the users filesystem."

    Blog, "2025 - What a year!" (27 Dec 2025): "In 2025, we shipped 20 releases, more than double last year's 8"; "upgraded sharing in Peergos to use a hybrid key-exchange based on Curve25519 and MLKEM-1024"; "Keep a local folder fully in sync with a folder in Peergos"; "Sync multiple devices to the same remote folder"; "Native desktop apps (Windows, macOS, Linux)" and "A full-featured Android app"; "50-150x Faster folder loading"; "We now have automatic concurrent modification handling in most circumstances. Previously, if you uploaded a file whilst editing a totally unrelated file, then saving the changes would result in a concurrent modification exception from the server. Now we handle these automatically if there isn't a genuine conflict, i.e. a concurrent change to the same file or dir"; "we tripled our number of paying customers"; "We don't have investors. We don't take Venture Capital. Peergos is a non-profit funded directly by the people who use it"; "2026 will be about polish, usability, iOS and deeper OS integration."

    Blog, "Security audit 2024" (18 Nov 2024): "our 2nd security audit", by Radically Open Security; no extreme, high or elevated findings; 2 moderate and 6 low, all remedied.

Scope. The model and what it promises, as the book describes it. Not covered: the Java and JavaScript implementations, the server API, the exact on-disk formats, payment and quotas, the WebDAV bridge and drive mount, streaming and seeking, file viewers, email, chat, the calendar, Tor integration (planned), and comparisons with Willow or Hypermedia.

Status. Revision 2, 2026-10-22, after the independent text review. Thirty-two accuracy findings and nine groups of structural findings were resolved: five wrong claims fixed, the sharing mechanism re-anchored on the follow request, the block access token corrected, the book's own sandbox caveat carried, three misquoted sources corrected and two missing pages recorded, ten metaphors now spoken. See "Review notes".

Idea map


    Peergos: a server you do not have to trust. Encrypted storage, sharing and sync; names, sizes, folders and contacts hidden; self-hostable; non-profit. needs: nothing

    Your password never leaves your device. Scrypt on password, username and salt gives a login key pair and a symmetric key; the server returns a sealed bundle with your identity key, social key and root capability. needs: 1

    Blocks are found by their hash. Content-addressed storage from IPFS; the client checks every hash; any node can serve ciphertext; disk or S3 underneath. needs: 1

    A file is chunks, each with its own key. Up to 5 MiB, padded to 4 KiB, each chunk encrypted with a random key; copies look different; chunks are unlinkable. needs: 3

    The server sees a bag of blobs under random labels. A Merkle-CHAMP maps random 32-byte labels to blobs; every chunk under its own label; the folder shape is inside the ciphertext; one root hash. needs: 4

    A pointer is a signed arrow from a key to a root. Signed updates carry previous, current and a rising sequence number; servers reject bad ones; clients remember the highest; one home node per pointer. needs: 5

    A writer key owns a subtree. One random writing key pair; a new key pair for any subtree you let others write; its own pointer and bag; quotas. needs: 6

    The cryptree: one key opens everything beneath it. A tree of symmetric keys for reading; a file key reveals no siblings; a separate tree of signing keys for writing; sharing is handing over a key. needs: 7

    A capability is the address and the key together. Owner key, writer key, label, block token, read key, write key; mirror, read and write grades; no account needed. needs: 8

    Sharing seals the card to a friend's key. The one asymmetric step: the capability to a per-friend folder sealed with hybrid X25519 and ML-KEM-1024 against record-now-decrypt-later; later shares go into the folder; unshared files are already quantum-safe. needs: 9

    Taking access back means new keys. Keys cannot be un-given; the subtree is re-keyed and rewritten; the old key opens only what it already saw. needs: 8

    A secret link keeps the key after the hash sign. The URL fragment never reaches the server; it decrypts a sealed capability; expiry, use count, password with a hundred-year brute-force target. needs: 9

    Even the raw blobs need a ticket. A block access token is a secret from which a node signs time-limited requests tied to its key; one per chunk; inline and mirror kinds; a node that fetched a block can serve it on under the same token. needs: 4

    What the server can still see. Total space, writer keys and timing; not names, sizes, folders, thumbnails or contacts; access patterns are the open item. needs: 13

    Usernames live in one append-only log. Signed claims with expiry and home node id; first come first served through the PKI node; mirrored everywhere; mirrors reject non-append-only updates. needs: 2

    Your home server is where your pointers live. IPFS node, pointers and follow requests; talk to any server; writes are proxied through an encrypted stream; no central server; a home server at home. needs: 6, 15

    Moving home takes your identity with you. Copy the data, update the claim; friends do nothing; mirrors do the copy continuously. needs: 16

    A follow request reveals only who it is for. Sealed with the hybrid to the recipient, sent from a single-use key, held on their server, deleted after reading; it carries the capability to the sender's folder for you. needs: 10, 16

    The social graph is folders. Friend lists are encrypted data; a shared folder per friend; shared files appear in the newsfeed; a share is a write into your own space; two friends reading one file is the leak Tor is meant to close. needs: 18, 14

    Trust nothing you did not verify. Every hash and signature checked by the client; servers can only store, serve or refuse; the remaining trust is getting an authentic client. needs: 6

    Apps run in their own origin with no permissions. A folder of HTML and a manifest, under a hashed hostname in its own process, locked down from outside requests, calls checked by the Peergos tab, manifest permissions plus a dialog for folders; one WebRTC gap remains. needs: 9

    A private website is a folder. Any folder with an index page; opened in the built-in browser; shared like a folder; nothing can leave the page. needs: 21

    Sync copies only the changed chunks. Bidirectional; chunk-level; deletes optional; many devices; concurrent modifications handled since 2025. needs: 4

    Where Peergos stands. Twenty releases in 2025; post-quantum sharing, native apps, sync, faster folders; the 2024 audit; non-profit; 2026 plans. needs: 1

Parts: 1 to 7 storage; 8 to 14 keys and access; 15 to 20 servers and identity; 21 to 24 what sits on top and where it stands.

Parking list. The 1 MiB fragment split and stream secrets; the exact WriterData and cryptree node formats; CHAMP internals; the server API; quotas and payment; streaming, seeking and resumable uploads; file viewers; email and chat; the calendar; the WebDAV bridge and drive mount; Tor hidden services; the challenge protocol in follow requests; the Java, JavaScript and Android implementations.

Shared visual language


    A blob is a hatched square with a short hash under it. A chunk is a slice of a file; padding is a grey tail.

    A key is the key icon; a key pair is a key beside a padlock. A symmetric key is amber; a signing key is purple; a sealing key is green.

    The bag is a sack of labelled blobs; the Merkle-CHAMP is the same bag drawn as a hash tree with one root.

    A pointer is an arrow from a key to a root hash with a signature squiggle and a counter.

    The cryptree is a folder tree where each node carries a key; lit nodes are readable.

    A capability is a card with two regions, where and how, lit one at a time. A ticket (block access token) is the ticket shape.

    A home server is a box with three slots: IPFS, pointers, requests. The log is a ledger strip. A friend is a person icon.

    A sealed thing is hatched; a URL is monospace text with the fragment in amber.

Breaks, each said once in the script: a card works for whoever holds it, so the seal is what keeps it private (unit 10, beat 1); a bag has no shape, which is the point (unit 5).

Units

Unit 1: Peergos: a server you do not have to trust


    Idea. Peergos is an encrypted file system with sharing and sync whose servers cannot read contents, names, sizes, folders or contacts; it can be self-hosted and is a non-profit.

    Why it matters. It frames what every later unit is protecting.

    Context assumed. Nothing.

    Metaphor. None; a framing unit.

    Misconception. "Encrypted" means only the file contents. Addressed at beat 2.

    Visual language. Server box, hidden fields, house, jar, four blocks.

    Target length. 55 to 65 seconds.

    Check question. Name three things besides contents that Peergos hides from its server.

Script:

    Peergos is an encrypted file system, with sharing and sync built in. The server stores your files. It cannot read them. (Screen: a server box; a locked file inside it.)

    Encrypting the contents is the easy half. Peergos also hides the names, the sizes, the folders, and who you share with. (Screen: the file's name, size and sharing list, all hidden.)

    You can run the whole thing yourself, for nothing. And still share with everyone else. (Screen: a home server under a house.)

    It is open source, and a non profit. No investors. Paid for by the people who use it. (Screen: no investor icon; a jar of coins from users.)

    This series takes it apart one idea at a time. How files are stored. How keys work. How sharing works. And what a server can and cannot see. (Screen: four blocks: storage, keys, sharing, servers.)

Unit 2: Your password never leaves your device


    Idea. The password never leaves the device: scrypt on password, username and a salt the home server keeps yields a login key pair and a symmetric key; the server returns a sealed bundle holding the identity key pair, social key pair and root key, which only the device can open. This unit defines key pair and symmetric key for the series.

    Why it matters. It is how an account exists without the server ever holding a secret.

    Context assumed. Unit 1.

    Metaphor. A sealed bundle the server stores but cannot open.

    Misconception. The server checks your password. Addressed at beat 1.

    Visual language. Laptop, hash funnel, key pair, bundle; the opened bundle with three contents.

    Target length. 55 to 65 seconds.

    Check question. What does the server receive at login, and what does it never receive?

Script:

    You log in with a username and a password. The password is never sent anywhere. (Screen: a username sent; the password stays on the laptop.)

    On your device, the password, the username and a public salt your home server keeps go through a slow hash. Scrypt, tuned to take a moment. (Screen: password plus username plus salt into a slow hash.)

    Out come two things. A login key pair: a public half that names you, and a secret half that proves it. And a symmetric key: one key that both locks and unlocks. (Screen: out come a login key pair and a symmetric key.)

    The login key pair proves who you are to your home server, the server that keeps your data. The server hands back a sealed bundle: your encrypted login data. (Screen: the login key fetches a sealed bundle from the home server.)

    The symmetric key opens the bundle, on your device. Inside: your identity key pair, your social key pair, and the key to your root folder. The server stored the bundle. It never had the key. (Screen: the bundle opened: identity key pair, social key pair, root key.)

Unit 3: Blocks are found by their hash


    Idea. Storage is content-addressed through IPFS; the client checks every hash; any node can serve ciphertext; disk or S3 sits underneath.

    Why it matters. It is why a server cannot alter data and why any server will do.

    Context assumed. Unit 1.

    Metaphor. Asking for a block by its fingerprint; spoken at beat 1.

    Misconception. The server stores files. It stores sealed blobs by hash. Addressed at beat 4.

    Visual language. Blob with hash, fetch arrow, re-hash check, disk and bucket.

    Target length. 50 to 60 seconds.

    Check question. What does the client do with every block it reads?

Script:

    Underneath Peergos is a content addressed store, provided by IPFS. Every block of data is named by its hash. Its fingerprint. (Screen: a block of bytes; its hash label.)

    Ask for a hash, get the block. Any Peergos node can serve it, if you are allowed to have it. (Screen: a hash goes in, the block comes out.)

    The client checks the hash of every block it reads or writes. A server that changes a byte is caught at once. (Screen: the client re-hashes the block and compares.)

    What is in a block? Ciphertext. The store holds sealed blobs. It never holds a plain file. (Screen: a block that is a sealed blob.)

    Where the blobs sit does not matter. A local disk, or any S3 compatible bucket, with no loss of privacy. (Screen: disk and an S3 bucket under the node.)

Unit 4: A file is chunks, each with its own key


    Idea. Files are cut into chunks of up to 5 MiB, padded to 4 KiB, and each chunk is encrypted with its own random key, so copies look different and chunks are unlinkable without the read capability.

    Why it matters. Chunking plus random keys is what hides sizes and structure, not just contents.

    Context assumed. Unit 3.

    Metaphor. Cutting a file into slices and sealing each separately.

    Misconception. Encrypting a file once is enough. Addressed at beat 4.

    Visual language. File slices, padding tail, keys, two ciphertexts, scattered pieces.

    Target length. 50 to 60 seconds.

    Check question. Why is a chunk's key random rather than derived from the chunk, and what does the server learn about a file's size?

Script:

    A file is cut into pieces of up to five mebibytes. (Screen: a file cut into 5 MiB pieces.)

    Each piece is padded to a multiple of four kibibytes. So the server never learns the exact size. (Screen: each piece padded to a 4 KiB boundary.)

    Each piece is encrypted with its own random key. (Screen: each piece sealed with its own random key.)

    The key is random, not derived from the contents. Two copies of the same file look nothing alike on the server. (Screen: two identical files, two different ciphertexts.)

    And the pieces of one file are not linkable. Without the file's key, nobody can tell which blobs belong together. (Screen: the pieces scattered; no line joins them.)

Unit 5: The server sees a bag of blobs under random labels


    Idea. A Merkle-CHAMP maps random 32-byte labels to sealed blobs; every chunk and large folder is spread across labels the server cannot relate; the folder shape lives inside the ciphertext; each bag hangs from one root hash.

    Why it matters. It is the shape the server actually sees, and it has no shape.

    Context assumed. Unit 4.

    Metaphor. A bag with no shape. Break, spoken: the bag having no shape is the point.

    Misconception. Folder structure is visible to the server. Addressed at beat 4.

    Visual language. Bag, hash tree, labels, root.

    Target length. 50 to 60 seconds.

    Check question. How many labels does a 20 MiB file occupy, and can the server relate them?

Script:

    So what does a server hold for you? A map from random thirty two byte labels to sealed blobs. (Screen: a bag of sealed blobs, each with a random label.)

    The map is a Merkle champ. A hash tree that works like a dictionary. Change one entry, and only the path to the root changes. (Screen: the map drawn as a tree of hashes: the merkle champ.)

    Every five mebibyte piece of a file sits under a different label. A big folder is spread the same way. (Screen: one file's pieces under unrelated labels.)

    Your folders have a shape. The bag has none. The shape lives inside the ciphertext, where the server cannot see it. (Screen: a folder tree on the left; a flat bag on the right.)

    A bag has one root hash. Everything in it hangs from that one hash. (Screen: the bag with one root hash on top.)

Unit 6: A pointer is a signed arrow from a key to a root


    Idea. Every write is signed by a writing key pair, and each writing key has a signed pointer to its current root; updates carry previous, current and a rising sequence number; servers reject updates that do not follow; clients remember the highest; one home node orders each key's writes.

    Why it matters. It is the only mutable thing in the system, so it carries all the ordering.

    Context assumed. Unit 5.

    Metaphor. A signed arrow that only moves forward; spoken at beat 1.

    Misconception. The server decides the latest version. Addressed at beat 4.

    Visual language. Key, arrow, root hash, update card, counter.

    Target length. 50 to 60 seconds.

    Check question. What stops a server from serving you last week's root?

Script:

    Every write you make is signed by a writing key pair. Hashes never change. Your files do. So each writing key has a pointer, a signed arrow: public key to current root hash. (Screen: a public key; an arrow to a root hash.)

    An update is signed by the key. It names the previous root, the new root, and a sequence number that only goes up. (Screen: the pointer update: previous, current, sequence number, signature.)

    The server checks the signature and the sequence. An update that does not follow from the current root is rejected. (Screen: the server checks the signature and the sequence.)

    Clients remember the highest sequence they have seen. A server cannot quietly serve an older root. (Screen: a client remembers the highest sequence it has seen.)

    One node is the home of each pointer. That node is where your writes line up, one after another. (Screen: one node holds the pointer; others ask it.)

Unit 7: A writer key owns a subtree


    Idea. You start with one random writing key; to let someone write to a folder, that folder gets its own key pair, pointer and bag; the guest can change only that subtree, under a quota if you like.

    Why it matters. It is how write access is delegated without sharing the root key.

    Context assumed. Unit 6.

    Metaphor. Cutting a branch onto its own key; spoken at beat 2.

    Misconception. Sharing write access shares your whole account. Addressed at beat 2.

    Visual language. Tree with a key, cut subtree, new key and pointer, quota.

    Target length. 45 to 55 seconds.

    Check question. What does a friend with a subspace key control?

Script:

    You start with one random writing key pair. It controls writes to your whole file system. (Screen: one key over the whole folder tree.)

    To let a friend write to one folder, you do not share that key. You cut that folder off, onto its own new key pair. (Screen: a subtree cut off under a new key.)

    That key gets its own pointer and its own bag of blobs. A writing subspace. (Screen: the new key with its own pointer and bag.)

    Your friend holds the subspace key. They can change that folder. Nothing above it. (Screen: the friend holds the subspace key only.)

    A subspace can carry a quota. A guest cannot fill your whole store. (Screen: a quota on the subspace.)

Unit 8: The cryptree: one key opens everything beneath it


    Idea. Read access is a tree of symmetric keys where a folder key decrypts its children; a file key reveals nothing about siblings; write access is a separate tree of signing keys; sharing for reading is handing over a key and the data stays where it is.

    Why it matters. It is the access-control idea the whole system is named for.

    Context assumed. Unit 7.

    Metaphor. A key that opens every door beneath it.

    Misconception. Sharing copies or moves data for the recipient. Addressed at beat 5.

    Visual language. Folder tree with keys, lit subtree, dark siblings, second tree, handed key.

    Target length. 50 to 60 seconds.

    Check question. You hold the key to one file. What do you learn about the folder it is in?

Script:

    Read access is a tree of symmetric keys. Each folder's key decrypts the keys of its children. (Screen: a folder tree where each node holds a key.)

    Hold the key to a folder, and you can read everything beneath it. Peergos calls this the cryptree. (Screen: one key lights the whole subtree below it.)

    Hold the key to one file, and that is all you get. Not its siblings. Not even their names. (Screen: a key to one file; its siblings dark and nameless.)

    Write access is a second tree, of signing key pairs. The two trees are separate. Reading never implies writing. (Screen: a second tree of signing keys beside the first.)

    To share a folder for reading, you hand over its key. The data stays where it is. (Screen: a key handed from one person to another; the data unmoved.)

Unit 9: A capability is the address and the key together


    Idea. A capability names the owner key, writer key and label, carries the block token and the symmetric key, and comes in mirror, read and write grades (write adds the write key); whoever holds it can use it.

    Why it matters. It is the thing that is shared, linked and stored everywhere else in the series.

    Context assumed. Unit 8.

    Metaphor. A small card with an address and a key on it.

    Misconception. Access is a server-side permission. Addressed at beat 5.

    Visual language. Capability card with two regions, where and how, lit one at a time; three grades.

    Target length. 50 to 60 seconds.

    Check question. What does a write capability have that a read capability does not? What does a mirror capability let you do?

Script:

    What exactly do you hand over? A capability. A small card that says where a thing is, and how to open it. (Screen: a capability card with empty fields.)

    Where: the owner's public key, the writer key whose pointer to follow, and the label in the bag. (Screen: the where region lit: owner key, writer key, label.)

    How: a token the server wants before it releases the blob. And the symmetric key that decrypts it. (Screen: the how region lit: block token, read key.)

    Three grades. A mirror capability fetches the ciphertext. A read capability opens it. A write capability adds the write key. (Screen: three grades: mirror, read, write.)

    A capability needs no account and no permission list. Whoever holds the card can use it. (Screen: a card checked with no server.)

Unit 10: Sharing seals the card to a friend's key


    Idea. The one asymmetric step in sharing is sealing the capability to a per-friend folder to the friend's public key, with a hybrid of X25519 and ML-KEM-1024 so that recording it today is useless to a future quantum computer; later shares go into that folder; unshared files need none of this.

    Why it matters. Sharing is where long-term secrecy is at risk.

    Context assumed. Unit 9.

    Metaphor. Two locks on one seal. Break, spoken at beat 1: the card itself works for whoever holds it, so the seal is what keeps it private.

    Misconception. Post-quantum means every part of the system changed. Addressed at beat 5.

    Visual language. Card, friend's key, recorder and clock, two locks, unshared file.

    Target length. 50 to 60 seconds.

    Check question. Which files are already safe from a quantum computer, and why?

Script:

    Sharing starts with one sealed message: the capability to a folder you made for that friend. A card works for whoever holds it. The seal to their public key is what keeps it private. Everything you share later goes into that folder. (Screen: one sealed message: the capability to a folder made for the friend.)

    Here is the catch. Someone can record that sealed card today, and wait for a quantum computer. (Screen: a recorder box between the two; a clock.)

    So the seal uses two locks. X twenty five five nineteen, and ML KEM ten twenty four, a post quantum scheme. (Screen: two locks on the seal: X25519 and ML-KEM-1024.)

    An attacker must break both. What you share today stays sealed if one of them falls. (Screen: both locks must open.)

    Files you never share need none of this. Hashing and symmetric encryption are not much weakened by a quantum computer. (Screen: an unshared file: symmetric only; already safe.)

Unit 11: Taking access back means new keys


    Idea. A given key cannot be un-given, so revocation re-keys the shared subtree; new writes get new ciphertext and new tokens, old blobs are not rewritten, the old key opens only what it already saw, and others you shared with keep access.

    Why it matters. Revocation is the honest cost of key-based sharing.

    Context assumed. Unit 8.

    Metaphor. Changing the lock after lending a key; spoken at beat 2.

    Misconception. Removing a friend from a list revokes access. Addressed at beat 1.

    Visual language. Friend with key, new key, old blobs kept beside new, untouched tree.

    Target length. 45 to 55 seconds.

    Check question. After revocation, what can the former friend still read?

Script:

    You shared a folder. Now you want it back. The friend still holds the key. Keys cannot be un-given. (Screen: a friend holding a folder key.)

    So the folder gets a new key. The lock is changed. Everything beneath it is re-keyed. (Screen: a new key on the folder.)

    New writes get new ciphertext. The old blobs are not rewritten. The old key simply opens nothing new. (Screen: old blobs stay; new writes sealed under the new key.)

    The friend's old key still opens what they already saw. It opens nothing you write from now on. (Screen: the friend's old key opens nothing new.)

    Only the shared subtree pays the cost. Others you shared it with keep their access. The rest of your files are untouched. (Screen: the rest of the tree untouched.)

Unit 12: A secret link keeps the key after the hash sign


    Idea. The URL fragment holds the key and never reaches the server; it decrypts a sealed capability on the reader's device; links can expire, count uses, and carry an extra password; the fragment's own lock is built to resist a hundred years of a million GPUs at a million scrypt guesses a second.

    Why it matters. It is sharing with someone who has no account, without giving the server anything.

    Context assumed. Unit 9.

    Metaphor. The part of the address the postman never reads; spoken at beat 2.

    Misconception. A link on a server means the server can open it. Addressed at beat 2.

    Visual language. URL with amber fragment, server, sealed capability, three limits.

    Target length. 45 to 55 seconds.

    Check question. Which part of a secret link does the server never see?

Script:

    A secret link is a URL. The part after the hash sign is the secret. (Screen: a URL with a fragment after #.)

    Browsers never send that part to a server. Like a note the postman never reads. So the server hosts the link and cannot open it. (Screen: the browser sends the URL without the fragment.)

    The server returns a sealed capability. The fragment decrypts it, on the reader's device. (Screen: the server returns a sealed capability; the fragment opens it.)

    A link can expire. It can allow a fixed number of uses. It can also need a password. (Screen: limits: expiry, use count, password.)

    The fragment is a password too. Its lock is built to take a hundred years to break, with a million GPUs each doing a million guesses a second. (Screen: a hundred years; a million GPUs.)

Unit 13: Even the raw blobs need a ticket


    Idea. Your blocks are paired with a block access token, a secret from which a node signs each request (time-limited, naming the block, tied to the node's key, not lendable); one token per chunk, inline and mirror kinds; a node that fetched a block with a valid token can serve it on under the same token.

    Why it matters. It closes the gap between "encrypted" and "unobservable".

    Context assumed. Unit 4.

    Metaphor. A ticket with your name on it; spoken at beat 3.

    Misconception. Ciphertext can be public. Addressed at beat 1.

    Visual language. Blob, ticket, three ticket fields, per-chunk tickets, two kinds.

    Target length. 55 to 65 seconds.

    Check question. What cannot be lent: the token, or the request signed with it?

Script:

    On plain IPFS, anyone who knows a hash can fetch the block. Ciphertext is still a leak. Sizes, and which blocks go together. (Screen: a sealed blob; anyone can ask for it by hash.)

    Peergos pairs your blocks with a block access token. No valid token, no block. A node that fetched a block with a valid token can serve it on, and enforces the same token. (Screen: a ticket paired with the hash.)

    The token is a secret. From it, your node signs each request. Time limited, naming the block, tied to your node's key. That signed request cannot be lent. A ticket with your name on it. (Screen: the signed request: time limited, names the block, tied to the asker's key.)

    Every five mebibyte chunk has its own token. So the server still cannot tell which blobs make one file. (Screen: every chunk has its own token.)

    Two kinds. An inline token, for one block. A mirror token, for a whole user, so another server can copy everything you own. (Screen: two kinds: inline per block; mirror per user.)

Unit 14: What the server can still see


    Idea. A home or mirror server sees total space (rounded up by padding) and the count, expiry and use counts of secret links, plus by construction which writer keys exist and when they write; not names, sizes, folders, thumbnails or contacts; access patterns are the planned Tor work.

    Why it matters. A privacy claim is only credible with its leftovers listed.

    Context assumed. Unit 13.

    Metaphor. A short list beside the server.

    Misconception. The server sees nothing at all. Addressed at beat 1.

    Visual language. Server, list, crossed-out items, onion.

    Target length. 45 to 55 seconds.

    Check question. Name two things the threat model says the server can see and two it cannot.

Script:

    Be honest about the leftovers. A home server, or a mirror, still sees some things. (Screen: a server with a short list beside it.)

    How much space you use in total, rounded up by the padding. (Screen: total space used.)

    How many secret links you have, with their expiry and use counts. And, by construction, which writer keys exist and when they write. (Screen: secret link counts; writer keys and times.)

    What it does not see: file names, sizes, folder shapes. (Screen: crossed out: names, sizes, folder shapes.)

    Not thumbnails. Not who you share with. Access patterns are the open item. The plan is a Tor hidden service. (Screen: crossed out: thumbnails, contacts; then a Tor onion.)

Unit 15: Usernames live in one append-only log


    Idea. A username is a signed claim with an expiry and a home node id, taken first come first served through the PKI node, mirrored on every node, with mirrors rejecting anything that is not append-only.

    Why it matters. It is the one global thing in the system, and it is built so that no one can rewrite it.

    Context assumed. Unit 2.

    Metaphor. A ledger copied to everyone; spoken at beat 1.

    Misconception. Usernames are accounts on a server. Addressed at beat 1.

    Visual language. Ledger strip, signed claim, first-come queue, copies, transparency log.

    Target length. 50 to 60 seconds.

    Check question. What does a mirror do with an update that changes an old mapping?

Script:

    A username maps to an identity public key. The map is a global, append only log. A ledger copied to everyone. (Screen: a ledger strip: username, identity key.)

    To take a name, you sign a claim. It carries an expiry, and the id of your home server. (Screen: a signed claim with an expiry and a home node id.)

    Names are first come, first served. That needs consensus, so one node, the PKI node, confirms each claim. (Screen: first come, first served.)

    The log is mirrored on every Peergos node. Mirrors reject any update that is not append only. (Screen: the log copied on every node.)

    Mirrors do not just notice a rewrite. They refuse it. Like a key transparency log, a public record of keys, but used as the source of truth. (Screen: a key transparency log.)

Unit 16: Your home server is where your pointers live


    Idea. Each user's home server runs an IPFS node and holds their pointers and incoming requests; you can talk to any server because writes are forwarded to the home node, and what travels is ciphertext and a signed pointer; users on different servers share directly; no central server stores or watches your data; a home server can be at home.

    Why it matters. It is what makes "any server" literal.

    Context assumed. Units 6 and 15.

    Metaphor. A home with a forwarding address; spoken at beat 2.

    Misconception. Peergos has a central server for data. Addressed at beat 4; the PKI node of unit 15 is the one global service.

    Visual language. Home server with three slots, any-server client, tunnel, two servers, house.

    Target length. 45 to 55 seconds.

    Check question. What does the server that forwards a write actually see?

Script:

    Every user has a home server. It runs an IPFS node, holds your pointers, and keeps the requests other users send you. (Screen: a home server box: IPFS node, pointers, follow requests.)

    But you can talk to any Peergos server. Your home has a forwarding address. (Screen: a client talks to any server.)

    A write is forwarded to your home node over an encrypted peer to peer stream. What travels is ciphertext and a signed pointer. The server that forwards it learns nothing it can use. (Screen: the request tunnels through; ciphertext and a signed pointer inside.)

    Users on different servers share with each other directly. No central server stores your data or watches it move. (Screen: two users on two servers sharing.)

    And a home server can be at home. A small machine, on your own connection. (Screen: a house with a small server inside.)

Unit 17: Moving home takes your identity with you


    Idea. Identity is not tied to a server; migration copies the data and updates the claim, friends do nothing, and a mirror keeps a continuous copy of your data (and your login data if asked).

    Why it matters. Portability is the difference from federated systems.

    Context assumed. Unit 16.

    Metaphor. Moving house and keeping your name.

    Misconception. Changing servers means a new account and lost contacts. Addressed at beat 4.

    Visual language. Username, copy arrow, log update, unchanged friends, mirror.

    Target length. 45 to 55 seconds.

    Check question. What must your friends do when you move servers?

Script:

    Your identity is not tied to any server. The name, the keys, and the files are yours. (Screen: a username not tied to a server.)

    To move, you copy your data to a new home server. (Screen: the data copied to a new server.)

    Then you update your claim in the log: this is my home now. (Screen: the PKI claim updated with the new home.)

    No one you share with has to do anything. Links keep working. Friends stay friends. (Screen: friends unchanged.)

    A mirror does the same copy continuously. If your home goes down, the mirror has your data, and your login data if you asked it to. (Screen: a second server mirroring.)

Unit 18: A follow request reveals only who it is for


    Idea. A follow request is sealed to the recipient with the X25519 and ML-KEM hybrid, sent from a single-use key, held on the recipient's server and deleted after reading; it carries the capability to a folder the sender made for the recipient, who keeps it on accepting and may send one back.

    Why it matters. It is how connections form without a server learning who knows whom.

    Context assumed. Units 10 and 16.

    Metaphor. An envelope with only the recipient's name on the outside; spoken at beat 1.

    Misconception. The server sees who sent a request. Addressed at beat 2.

    Visual language. Sealed request, single-use key, recipient's server, capability, deletion.

    Target length. 50 to 60 seconds.

    Check question. Which way does the capability travel in a follow request?

Script:

    To connect with someone, you send a follow request. An envelope sealed to their public key, with the two locks from before. The only thing on the outside is who it is for. (Screen: a sealed request addressed to one user.)

    It is sent from a fresh, single use key pair. The server cannot see who sent it. (Screen: a fresh single-use key as the sender.)

    It waits on the recipient's home server, not in the public store. (Screen: the request waits on the recipient's server.)

    The request carries a capability to a folder the sender made for you. Accept, and you keep it. Send one back, and you are friends both ways. (Screen: the request carries a capability to a folder; accepting keeps it.)

    Once read, the request is deleted from the server. The capability lives on in your own encrypted store. (Screen: the request deleted after it is read.)

Unit 19: The social graph is folders


    Idea. Friend lists are encrypted data; each friendship is a shared folder; files friends share appear in the newsfeed; a share is a write into your own space, so the server does not learn who follows whom; two friends reading one file is the remaining leak that Tor is meant to close.

    Why it matters. It is the privacy claim about contacts made concrete.

    Context assumed. Unit 18.

    Metaphor. A friendship is a folder.

    Misconception. The social feed needs a server that knows the graph. Addressed at beat 4; beat 5 states the honest remaining leak.

    Visual language. Sealed list, folders per friend, feed, a write into your own space, two friends and an onion.

    Target length. 45 to 55 seconds.

    Check question. What is a friendship in storage terms, and what is the one access pattern that can still leak?

Script:

    Who are your friends? That is data, and it is encrypted like any other data. (Screen: a list of friends, sealed.)

    Each friendship is a shared folder. What you share with them goes in it. (Screen: a shared folder per friend.)

    Files your friends share with you appear in your newsfeed. That feed is those folders, read together. (Screen: a feed assembled from shared folders.)

    A share is a write into your own space. The server sees you write. It does not learn who follows whom. (Screen: ['a share is a write into your own space'].)

    Two friends open the same file. Today, that pair of reads is the one thing that could give them away. Hiding it is the Tor work. (Screen: two friends reading one file; a Tor onion, planned.)

Unit 20: Trust nothing you did not verify


    Idea. The client checks every hash and signature, so servers can only store, serve or refuse; what remains is availability and getting an authentic client, at three levels of care.

    Why it matters. It states the security claim precisely, including its edge.

    Context assumed. Unit 6.

    Metaphor. Checking the seal on everything that arrives; spoken at beat 1.

    Misconception. "Trust-free" means nothing can go wrong. Addressed at beat 3.

    Visual language. Client checks, server crossed, refuse, client source, three users (web over TLS, the downloaded app, built from source).

    Target length. 50 to 60 seconds.

    Check question. What is the one thing a malicious server can still do to you?

Script:

    A Peergos client checks the seal on everything that arrives. The hash of every block. The signature of every signed thing it receives. (Screen: a client checking a hash and a signature.)

    So a server cannot alter your data, and cannot forge a pointer. It can only store and serve. (Screen: the server unable to forge or alter.)

    What a server can still do is refuse. Availability is the trust that remains. (Screen: what remains: availability.)

    The client you run is the last piece. You have to get a real copy of Peergos from somewhere. (Screen: the client itself: where did it come from.)

    Three ways to get one. Trust the web and its certificates. Download the app. Or build it yourself. (Screen: three users: web over TLS; the downloaded app; built from source.)

Unit 21: Apps run in their own origin with no permissions


    Idea. An app is a folder of HTML and a manifest, run under a hashed hostname in its own process and locked down from outside requests, its calls passing through a service worker to the Peergos tab; permissions are declared in the manifest and folder access is granted in a dialog; one browser gap (WebRTC) remains, so install only trusted apps for now.

    Why it matters. It is how third-party code runs on private data without becoming a leak.

    Context assumed. Unit 9.

    Metaphor. One door and a doorman; spoken at beat 3.

    Misconception. Apps can phone home. Addressed at beats 3 and 5, with the book's own caveat.

    Visual language. App folder, hostname, service worker, manifest, server.

    Target length. 50 to 60 seconds.

    Check question. What does an app have access to before you grant anything?

Script:

    A Peergos app is a folder of plain HTML and JavaScript, with a manifest. (Screen: an app folder: HTML, JavaScript, a manifest.)

    It runs under its own hostname, the hash of its path. Isolated from Peergos and from every other app. (Screen: the app under its own hostname, isolated.)

    Its requests go through one door: a service worker to the main Peergos tab, which checks them. A doorman. It is locked down so it cannot make outside requests. (Screen: requests pass through a service worker to the Peergos tab.)

    By default an app has no permissions. It can read its own assets. Other permissions are declared in its manifest. Access to one of your folders you grant in a dialog, and can revoke. (Screen: the manifest: no permissions by default.)

    Even the app's files never reach the server in the clear. One browser gap, WebRTC, is still open. So for now, install only apps you trust. (Screen: the server never sees the app's assets; one gap labelled WebRTC.)

Unit 22: A private website is a folder


    Idea. Any folder of pages is a website, opened in the built-in browser under its own origin, shared like a folder, with nothing able to leave the page except through the same WebRTC gap as apps.

    Why it matters. It turns the sharing model into publishing.

    Context assumed. Unit 21.

    Metaphor. A website that is just a folder.

    Misconception. Publishing means a public server. Addressed at beat 3.

    Visual language. Folder with index, browser, share, no-exfiltration, path link.

    Target length. 45 to 55 seconds.

    Check question. How do you publish a private website?

Script:

    Any folder in Peergos can be a website. Put your pages in it, and it is one. (Screen: a folder with index.html inside.)

    It opens in the built in browser, under its own origin, like an app. (Screen: the site viewed in the built-in browser.)

    To publish it, you share the folder. Directly, or with a secret link. (Screen: sharing the site like a folder.)

    Nothing can leave the page, with the same one gap as apps. Third party tracking is impossible. Fingerprinting learns nothing. (Screen: no exfiltration; tracking impossible.)

    Sites link to each other by file path. A private web, with the same locks as your files. (Screen: a link between two private sites by path.)

Unit 23: Sync copies only the changed chunks


    Idea. Sync keeps a local and a Peergos folder the same in both directions, sends only changed chunks, treats deletes as a choice, serves many devices, and since 2025 unrelated concurrent writes no longer fail (same-file conflicts remain conflicts).

    Why it matters. It is the everyday feature that the chunk model makes cheap.

    Context assumed. Unit 4.

    Metaphor. Two folders kept equal by sending only the differences.

    Misconception. A changed file is re-uploaded whole. Addressed at beat 2.

    Visual language. Two folders, changed chunk, delete toggles, three devices, merge.

    Target length. 45 to 55 seconds.

    Check question. A 1 GB file gets one byte changed. What is sent? And what still counts as a conflict?

Script:

    Sync keeps a local folder and a Peergos folder the same. Both directions. (Screen: a local folder and a Peergos folder, arrows both ways.)

    Change a big file, and only its changed chunks are sent. The rest of the file stays where it is. (Screen: one chunk of a big file changed; only it is sent.)

    Deletes can follow in either direction, or neither. You choose. (Screen: delete toggles: local, remote, both.)

    Several devices can sync the same folder. A laptop, a desktop, a phone, each holding a copy. (Screen: three devices on one folder.)

    Two devices write different files at once? Since twenty twenty five, that no longer fails. The same file changed in two places is still a real conflict. (Screen: two writes to different files; both land.)

Unit 24: Where Peergos stands


    Idea. Twenty releases in 2025 brought post-quantum sharing, native apps, sync and much faster folders; the second audit, in 2024, found nothing high; it is a user-funded non-profit; 2026 is polish, usability and iOS.

    Why it matters. Builders need to know how live and how funded the project is.

    Context assumed. Unit 1.

    Metaphor. A year in numbers.

    Misconception. Peergos is a research prototype. Addressed at beat 1.

    Visual language. Release count, three features, audit badge, jar, 2026 list.

    Target length. 50 to 60 seconds.

    Check question. Who audited Peergos in 2024, and what did they find?

Script:

    In twenty twenty five Peergos shipped twenty releases. More than double the year before. (Screen: twenty releases in 2025.)

    Post quantum sharing. Native apps for Windows, macOS, Linux and Android. Folder sync, and folder loading up to a hundred and fifty times faster. (Screen: post-quantum seal; native apps; sync.)

    A second security audit, in twenty twenty four, by Radically Open Security. No high or elevated findings. Two moderate, six low. All fixed. (Screen: audit badge: 0 high, 2 moderate, 6 low, all fixed.)

    It is a non profit with no investors, funded by its users. Paying customers tripled in the year. (Screen: non profit; no investors.)

    The stated plan for twenty twenty six: polish, usability, iOS, and deeper OS integration. (Screen: 2026: polish, usability, iOS.)

Review notes

Phase 1d text review, 2026-10-22, by an independent reviewer with only the guide, the curriculum and the Peergos pages. Full report: Peergos Curriculum Review. What changed:

    Five wrong claims. The username is sent at login, only the password stays (unit 2). The block access token is a secret, and the signed request made from it is what cannot be lent (unit 13). Two friends reading one file can still leak today; Tor is the planned fix (unit 19, now agreeing with unit 14). A follow request carries the capability from sender to recipient; accepting keeps it, sending one back reciprocates (unit 18). The post-quantum hybrid seals the follow request, not every share; later shares go into the per-friend folder (unit 10, now agreeing with units 8 and 19).

    The book's own caveats carried. The app and website lockdown is stated with the WebRTC gap and the advice to install only trusted apps for now (units 21 and 22). Concurrent sync writes: unrelated writes no longer fail, same-file conflicts remain (unit 23). The server-side list follows the threat model page: total space rounded by padding, secret-link counts and use counts, and by construction writer keys and times (unit 14).

    Terms and order. Key pair and symmetric key are defined in unit 2 before use; the writing key is introduced at the top of unit 6; "the file's key" replaces "read capability" in unit 4; the capability card is drawn as two regions so no screen exceeds four things.

    Precision. One root per writing key (unit 5); the proxying server sees ciphertext and a signed pointer (unit 16); no central server for data, with the PKI node acknowledged (unit 16); the hundred-year figure attaches to the fragment's own lock with its scrypt qualifier (unit 12); old blobs are not rewritten on revocation and other sharers keep access (unit 11); the mirror holds login data only if asked (unit 17); a second audit (unit 24).

    Sources. Three misquotes corrected (cryptree revocation, follow-request acceptance, friends-reading metadata) and the sharing, social, BATs-revocation, apps-footnote, README and concurrency sentences recorded.

    Metaphors. Ten card metaphors are now spoken on the beat whose screen draws them, and unit 10's break is spoken.

Kept against the reviewer's suggestion. Unit 11 stays before unit 13 for the narrative; the token change on revocation is in the card and the post rather than the script. Unit 1 keeps no metaphor, as a framing unit.

Do you like what you are reading? Subscribe to receive updates.

Unsubscribe anytime

Comments