# 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"