 Hi, I'm Frankie from the R&D group or R&D group of your friendly extension MetaMask today We're going to present to you our vision for a network of Ethereum like clients You may know some of us from other projects in the decentralized space. We've been involved in infura MetaMask IPFS LibP2P So I'm sure some of you are wondering how long does it take to sync a full Ethereum node? Great question in our experience It takes anywhere from a couple hours to well over a week to sync a full node from scratch Ethereum nodes are becoming more resource intensive a full node uses gigabyte of storage It uses significant amounts of IO so much so that it requires an SSD at the very least Also synchronizing state takes a long time to network issues and having to process every block to reconstruct the state This and other issues is forcing users to rely on centralized infrastructure What about like clients you must be asking current like client implementations provide solutions to some of these challenges But it's also introduces its own limitations Relying on good nodes for most of its data like clients are leachers in a peer-to-peer network sense They don't seed any data They require a syncing state before becoming usable this isn't as resource intensive as syncing a full node But it's still an important limitation that regular users aren't necessarily willing to bear Imagine a user having to wait minutes before using her favorite depth in a time where web page loads are measured in milliseconds This is not acceptable UX On top of that devP2P relies on UDP and TCP for data transfer and node discovery which Makes it inherently incompatible with the browser MetaMask is an important part of the ecosystem. It's responsible for helping drive the adoption of Ethereum Users rely on MetaMask to interact with the Ethereum blockchain from dApps to tokens to transferring ether directly But MetaMask as well as other similar tools rely heavily on centralized infrastructure such as things like infura and other other services This was instrumental for bootstrapping the Ethereum ecosystem But this breaks the premise of decentralization and now we need to do better The problem is building decentralized client that has the same performance characteristics that centralized infrastructure offers So what are our like current requirements? We need a light client that is fast ready to use in seconds Seeds its data to other peers so that it's not also relying on centralized infrastructure Has native and has native browsers support of course because we're MetaMask So now I'd like to bring on Dima to talk about our solution Mousticala. Thank you Mousticala, it's a light client for the browser and more It's a way of partitioning the Merkle tree into convenient units. We call slices It's a network of browser-based peer-to-peer notes that help find and distribute slices And it's a network of full notes that provide the slices to the light client peers right now These are dedicated notes, but in the future we're hoping to get this functionality To become part of the full clients stay tuned for any EIP So slices, what are they? They're convenient portions of the tier Merkle tree They're composed of the stem Sure, the notes traverse to reach the beginning of the slice. We call it the head the Merkle tree notes leave notes which contain accounts and a branch notes and For convenience, we also pack the evm code and storage route for each smart contract account. So how do we identify a slice? We use the path which is an offset into the tree the first four nibbles of an address or storage key The depth of the slice which tells us how many levels we descend from the head The state or storage routes tell us which block the slice belongs to now. What's the kids a net network? Kids a net is a network of peer-to-peer notes that collaborate in distributing slices We're using leapy-to-pea a modular peer-to-peer network stack with native browser support It allows using a variety of mechanisms from hybrid to full distributed to create a peer-to-peer browser based network And not only that it also enables the diversity of devices to connect to this network From high-performance servers to low-resource devices think IOT We're also using pops up for near real-time data propagation in the kids a net network We've been using leapy-to-pea floods up for internal prototyping We were exploring more efficient alternatives such as episode gossip sub both from leapy-to-pea as well Epidemic rock the streets and other and others So how does data propagation works in the kids a net network? Each peer in the network tracks a subset of slices and also seats them to other peers This is crucial to enable data availability across light nodes And this also reduces reliance on full ethereum nodes We use a combination of parameters to determine which slice the peers track in The user's account Daps and tokens to the user interacts with and Also arbitrary slices that the client gets assigned based on a notion of cryptographic distance of the peers hash and the slice hash So how secure is this? When querying the state the key is to know what's the canonical block header? It's a critical operation, but it's not necessarily a very intensive one Resource intense one There are several ways to accomplish that We can ask a bootstrap note for a canonical block header for example Beacons number five five million nine hundred thousand or something and then start syncing from there or Just receive the block headers verifying the number in the seal Of course and then ask for its parent and a parent of its parent so on and so forth until you reach a trusted point Or you can subscribe to some of the network to some network of trust Not my favorite one Or you can always run your own node and request data or RPC That's a joke We maintain the security guarantees provided by Merkel creates Slices contain all the required information to perform cryptographic verification So what are the takeaways? We have slices which are convenient conveniently packed Merkel's trees that contain state We had we have kids a net which is a peer-to-peer network of flight clients sitting slices And we have full notes it your clients synchronizing state making slices available for kids in it. Thank you