--- tags: sourcenetwork --- # Source Network Primer The following is a non-exhaustive primer document on the background and technologies we build on or with to enable the Source Network. ## DefraDB DefraDB is the core database of the Source Network. It is a decentralized peer-to-peer, user-centric, privacy focused document NoSQL database. #### IPLD *MerkleDAG based linked data model* - [IPLD](https://ipld.io/) - stands for InterPlanetary Linked Data. It is an ecosystem of formats and data structures for building applications that can be fully decentralized. - [What is IPLD](https://hackernoon.com/understanding-ipfs-in-depth-2-6-what-is-interplanetary-linked-data-ipld-c8c01551517b) #### LibP2P *Peer-to-Peer networking stack* - [LibP2P](https://libp2p.io/) - [Intro to (slides)](https://max-inden.de/static/introduction-to-libp2p.pdf) - [Why Libp2p](https://medium.com/paritytech/why-libp2p-13085ed0c9c8) ### CRDTs *Conflict-Free Replicated Data Types* - [Conflict-free replicated data type](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) - [State of a State-based CRDT (Conflict-free Replicated Data Types)](https://bartoszsypytkowski.com/the-state-of-a-state-based-crdts/) - [CRDTs are the Future](https://josephg.com/blog/crdts-are-the-future/) #### State Compaction - https://martin.kleppmann.com/papers/snapdoc-pets19.pdf #### MerkleCRDTs *CRDTs based on MerkleDAGs* - [Merkle-CRDTs: Merkle-DAGs meet CRDTs](https://arxiv.org/abs/2004.00107) ### Database Internals - [A Busy Developer’s Guide to Database Storage Engines — The Basics](https://blog.yugabyte.com/a-busy-developers-guide-to-database-storage-engines-the-basics/) - [A Busy Developer’s Guide to Database Storage Engines — Advanced Topics](https://blog.yugabyte.com/a-busy-developers-guide-to-database-storage-engines-advanced-topics) ### Misc - [Replicate Your Database to the Client](https://josephg.com/blog/replicate-your-database-to-the-client/) - [ The database I wish I had ](https://euandre.org/2020/08/31/the-database-i-wish-i-had.html) ## SourceHub SourceHub is the trust protocol of the Source Network. It is an application-specific blockchain built with the CosmosSDK and uses Tendermint consensus. ### Application Specific Blockchains (ASBC) *Custom blockchains that serve single application purposes instead of generalized blockchains like Ethereum/Polygon that host many many applications.* - [Intro](https://www.coinbase.com/cloud/discover/dev-foundations/application-specific-blockchains) - [Smart Contracts vs ASBC](https://www.figment.io/resources/smart-contracts-vs-application-specific-blockchains) - [Shortcomings of Smart Contracts](https://medium.com/onomy-protocol/application-specific-blockchains-addressing-the-shortcomings-of-smart-contracts-84662e4d4843) ### Authorization Engine *Decentralized implementation of the Google Zanzibar. Relationship Based Access Control (RelBAC).* - [Google Paper](https://research.google/pubs/pub48190/) - [SpiceDB](https://github.com/authzed/spicedb) - [Zanzibar From Scratch](https://www.osohq.com/post/zanzibar) ### Cosmos Network & SDK *Cosmos is an ecosystem of application specific blockchains built using the Cosmos SDK. By using the InterBlockchain Communication protocol, a network of blockchains form the Interchain.* - [Cosmos](https://cosmos.network/) - [What is the Internet of Blockchains](https://forkast.news/what-is-cosmos-the-internet-of-blockchains/) - [Value Prop of Cosmos](https://blog.cosmos.network/understanding-the-value-proposition-of-cosmos-ecaef63350d) - [Module SDK](https://v1.cosmos.network/sdk) - [Cosmos SDK Github](https://github.com/cosmos/cosmos-sdk) #### InterBlockchain Communication Protocol (IBC) - [Overview](https://ibcprotocol.org/) - [TCP/IP Protocol of Blockchains](https://johnniecosmos.medium.com/inter-blockchain-communication-protocol-ibc-the-tcp-ip-protocol-of-blockchains-bridges-trends-b38ed700c681) #### Tendermint - [Website](https://tendermint.com/) - [Tendermint Explained 1](https://academy.binance.com/en/articles/tendermint-explained) - [Tendermint Explained 2](https://blog.cosmos.network/tendermint-explained-bringing-bft-based-pos-to-the-public-blockchain-domain-f22e274a0fdb) - [BFT in the Age of Blockchains](https://atrium.lib.uoguelph.ca/xmlui/handle/10214/9769) - [Proof of Stake Primer](https://blog.cosmos.network/tendermint-explained-bringing-bft-based-pos-to-the-public-blockchain-domain-f22e274a0fdb) #### General Blockchain Consensus - [A-Z of Blockchain Consensus](https://medium.com/tendermint/a-to-z-of-blockchain-consensus-81e2406af5a3) - [Consensus Algorithms in Blockchains](https://www.geeksforgeeks.org/consensus-algorithms-in-blockchain/) ## Orbis *Decentralized custodial secrets management engine.* - [Threshold Cryptosystems 1](https://en.wikipedia.org/wiki/Threshold_cryptosystem) - [Threshold Cryptosystems 2](https://cryptography.fandom.com/wiki/Threshold_cryptosystem) - [Proxy Re-encryption 1](https://medium.com/@teamtech/decentralized-identity-granting-privacy-with-proxy-re-encryption-e0bf68ad465c) - [Proxy Re-encryption 2](https://medium.com/asecuritysite-when-bob-met-alice/proxy-re-encryption-allowing-alice-to-share-her-protect-secret-key-with-bob-e2a7d0f9d4dd) - [Threshold Proxy Re-encryption](https://github.com/nucypher/umbral-doc/blob/master/umbral-doc.pdf) - [Distributed Key Generation](https://medium.com/toruslabs/what-distributed-key-generation-is-866adc79620) - - [Distributed Randomness Beacon](https://spec.filecoin.io/libraries/drand) - [Digital Signatures](https://spec.filecoin.io/algorithms/crypto/signatures/) - [Towards Web3 Signatures](https://medium.com/asecuritysite-when-bob-met-alice/towards-web3-ed25519-ed448-and-ed2551-dilithium-32d36b06f499) ### Example Reference Implementations - [CHURP - Dynamic Committee Proactive Secret Sharing](https://www.churp.io/) - [Calypso - Auditable Sharing of Private Data over Blockchains](https://github.com/dedis/cothority/tree/main/calypso) ## Zero Knowledge Key Management System (Zk-KMS) *Zero Knowledge based system designed for ease of use end-user authentication and key management.* - [Zero-Knowledge Primer](https://blog.cryptographyengineering.com/2014/11/27/zero-knowledge-proofs-illustrated-primer/) - [PAKE](https://blog.cryptographyengineering.com/2018/10/19/lets-talk-about-pake/) - [DLEQ - Proof of Discreet Log Equality](https://billatnapier.medium.com/non-interactive-zero-knowledge-proof-of-discrete-log-quality-f6f543d2ba2e) - [Keyless - Passwordless ZK auth](https://medium.com/@keylesstech/how-keyless-uses-zero-knowledge-proofs-to-protect-your-private-data-255d936be4fd) - ## Web3 & Miscellaneous Decentralized Infrastructure (Vision of Source Network) - [Local First Software](https://www.inkandswitch.com/local-first.html) - [Privacy & Data Ownership](https://thetoolsweneed.com/privacy-is-just-the-first-step-the-goal-is-data-ownership/ ) - [The Web3 Stack](https://multicoin.capital/2018/07/10/the-web3-stack/) - [Vectors of Decentralization](https://multicoin.capital/2019/07/25/unbundling-vectors-of-centralization-in-web3/) - [Why we need web3](https://breakermag.com/why-we-need-web-3-0/) - [The Database I wish I had](https://euandre.org/2020/08/31/the-database-i-wish-i-had.html)