Within this document I talk about specific concepts within DAS-Playground.
Required Reading: What is Danksharding?
Ethereum's rollup-centric roadmap requires extra blob data to be placed on chain. The more blob data that can be placed on chain, the more Ethereum can scale.
But… Extra data = extra cost to run a node = reduced decentralization = : (
With Danksharding, the Ethereum chain is split into n
sub-chains, where n
sets of committees (randomly chosen validators) each verify that blob data is available within its sub-chain.
This increases the amount of blobs that can go on chain, without increasing the hardware requirements for any individual node.
Q:
-But what if a validator committee takes over? Now only one subset of validators is needed to pass invalid blocks!
A:
-Honest validators in each subnet can verify their own blob data is available by downloading all blob data specific to the shard (full computation) AND, verify blobs in other subnets are available through data availability sampling (light computation).
Data Availability Sampling is the process of randomly asking nodes within other shard subnetworks for small pieces of blob data (samples). After responding to a small number of requests, one can be statistically confident that all blob data for that shard is available.
The goal for DAS Playground is to create a simple peer to peer networking simulation that models a possible solution (Secure Kademlia DHT discv5 overlay) to the Data Availability Sampling Networking problem.
Our Secure Kademlia DHT discv5 overlay network is a set of validator-only nodes that are connected to one another through a secondary routing table. Validators are incentivized to behave!
Best case: Our main DAS discv5 overlay network is used to communicate DAS data. Any node can participate.
Worst case: If our main DAS network is under attack, nodes switch to our SecureDAS discv5 overlay network. This network relies upon validators to control DAS information flow.
This repository is where I learn how to make the DAS and SecureDAS overlay networks a reality.
Once the Secure Kademlia DHT overlay is operational, I'll instantiate it within a forked version of DAS Prototype to measure performance benchmarks.
Ethereum is made up of a bunch of individual nodes that run multiple networking protocols (the networking stack) to facilitate communication.
Write about blockchain being composed of two parts. See Networking Layer
Ethereum's Consensus Layer networking stack needs to be changed to allow validators to come to consensus on this new set of data being available on the blockchain. (Link Data Availability things here?)
There are different p2p architectural designs to pass around this blob data that researchers are investigating. See Danny's blog post: DAS Building Blocks. I've chosen to explore utilizing discv5 overlays to solve the DAS Networking problem.
See writings on Danksharding within my Notion Board, Wonderland.
Mention Portal Network more!
Discv5 (Discovery version 5) is a protocol that Ethereum nodes run to discover other peers participating within the network.
Discv5 also allows for custom subprotocols to be built upon it via the TalkReq/TalkResp message
An overlay is a subset of nodes from a specific network (in our case, the Discovery v5 network) agreeing to come together to share information about a specific topic (data availability sampling), forming a "subnetwork".
A node participating within an overlay network contains a base protocol routing table and an overlay routing table
Arbitrary overlay networks can be created atop discv5 by passing messages to one another via TalkReq/TalkResp.
Details on discv5 overlays:
Model DAS is my project which aims to utilize Eric and Timofey's p2p testground, DAS-Prototype, to measure benchmarks on implementing a secure K-DHT discv5 overlay.
DAS-Playground recreates a simplified version of DAS-Prototype while integrating an additional overlay network (our Secure DAS overlay) to create our possible solution to the DAS Networking Problem.
See project proposal.
If you're already proficient in these three topics, feel free to go into DAS Playground Explained. If not, I'd highly suggest you read these articles:
The Internet explained from first principles - Basics of computer networking
Ethereum's Networking Layer - Basics of Ethereum's network stack
Tokio Tutorial - Networking in Rust
(WIP)