# Decentralization Reading List (Not) curated resources, materials, interesting links, "to reads", etc. I will continue to add to/update this list as I explore. ## Protocols ### Hypercore Similar goals and design as IPFS, but does not use content-based addressing (instead uses an append only log of hashes under a POSIX file system abstraction indexed by public key). * https://hypercore-protocol.org/ * https://github.com/tradle/why-hypercore/blob/master/FAQ.md#how-is-hypercore-different-from-ipfs - comparison of hypercore and ipfs ### Secure Scuttlebutt Gossip-based protocol, mostly used for microblogging / social media. Works over multiple networks (even LAN and bluetooth!) * https://scuttlebutt.nz/ * https://ssbc.github.io/scuttlebutt-protocol-guide/ - very very good protocol documentation ### ActivityPub Decentralized (federated) social networking protocol. Used by the "fediverse" suite of applications (pleroma, mastodon, misskey). Mostly communicates node to node over HTTP. Identity is centralized at the node level. * https://activitypub.rocks/ - high level overview * https://socialhub.activitypub.rocks/pub/guide-for-new-activitypub-implementers ### Others * https://cabal.chat/ - p2p chat, uses symmetric encryption (chat url is key) * https://gitlab.com/cal-coop/netfarm/netfarm - "distributed hash table, digital signatures and a portable bytecode interpreter" * https://ceramic.network/ - DID, mutable streams on top of IPFS, "decentralized functions" * https://matrix.org/ - decentralized chat, VoIP, etc. federated ## Decentralized (and "Self Sovereign") Identity * https://www.w3.org/TR/did-core/ * https://github.com/christianlundkvist/rebooting-the-web-of-trust * https://github.com/WebOfTrustInfo * https://github.com/WebOfTrustInfo/self-sovereign-identity ## Distributed Databases * https://orbitdb.org/ - built on IPFS (& IPFS pubsub), uses CRDTs * https://gun.eco/ - CRDT graph database, indexed by public key, javascript focused * https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf - Kademlia, the DHT (distributed hash table) literally everyone (bit torrent, ipfs, hypercore) uses ## CRDTs & "local first" * https://www.inkandswitch.com/local-first/ - Essay and exploration of using CRDTs for "local first" software * https://martin.kleppmann.com/papers/bft-crdt-papoc22.pdf - "Making CRDTs Byzantine Fault Tolerant" * https://automerge.org/ - JSON CRDTs (no network layer) * https://github.com/automerge/hypermerge * https://mattweidner.com/2022/02/10/collaborative-data-design.html - on designing CRDTs from the ground up intuitively * https://crdt.tech/implementations - list of CRDT implementations * http://archagon.net/blog/2018/03/24/data-laced-with-history/ * https://jaredforsyth.com/posts/in-search-of-a-local-first-database/ ## Content Moderation * https://cblgh.org/trustnet/ - Exploration of trust-based moderation systems, accompanying masters thesis and POC code (designed for use with ssb) ## Philosophy * https://applied-langua.ge/software-and-anarchy.pdf - "Software and Anarchy" * https://applied-langua.ge/posts/here-is-a-loud-announcement.html - "Maximalist Computing" ## Blockchains / Cryptocurrency ### Light Clients * https://arxiv.org/pdf/1809.09044.pdf - Fraud and Data Availability Proofs: Maximising Light Client Security and Scaling Blockchains with Dishonest Majorities ### Inter-Blockchain Communication Protocol (IBC) * https://ibcprotocol.org/ - high level overview of IBC * https://interchainacademy.cosmos.network/academy/ibc/what-is-ibc.html - ibc details in a digestible format ### Tendermint * https://tendermint.com/static/docs/tendermint.pdf - the original tendermint paper ### Ethereum Related #### Ethereum POS Consensus * https://eprint.iacr.org/2019/415.pdf - Refinement and Verification of CBC Casper * https://hackingresear.ch/cbc-finality/ - CBC Casper: an introduction to consensus and finality #### MEV * https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177 - "mev-boost" aka flashbots under ethereum POS (proposer builder separation) #### Data availability (and sharding) * https://notes.ethereum.org/@vbuterin/proto_danksharding_faq - FAQ about early danksharding designs * https://polynya.medium.com/danksharding-36dc0c8067fe - overview of danksharding * https://notes.ethereum.org/@dankrad/new_sharding - the original danksharding proposal * https://hackmd.io/@vbuterin/sharding_proposal - An explanation of the sharding + DAS proposal #### EIPs * https://eips.ethereum.org/EIPS/eip-4844 - "Shard Blob Transactions"