New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Avail 101 Workshop - ETHGlobal London 2024

ETHGlobalWed, Oct 9, 2024, 12:00 AM

Join Prabal Banerjee from Avail for a workshop titled, “Avail 101 Workshop.” Avail accelerates the unification of Web3. Starting with Avail DA, a robust data availability layer born from the need for blockchain solutions that scale with modern demand, Avail DA serves as a powerful base layer for next-generation trust-minimized applications. Learn how you can get started building with Avail today! This workshop took place at ETHGlobal London 2024, a 3-day hackathon held at the Truman Brewery in London from March 15 to 17, 2024. The event brought together the most skilled web3 developers, designers and product builders from all around the globe for a weekend-long adventure to advance the Ethereum ecosystem! ----------------- Follow us: https://x.com/ethglobal Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

[Music] uh so today we will be covering you know the very basics of what is aail and how to exactly use it and what are the different tracks that we are we have here so I mean the big picture we all know uh that rollups are taking Center Stage there are you know we are already seeing an huge explosion of the number of rollups in the space and these rollups are all hungry for data availability and that is why we are building a wda it's the data availability Focus blockchain powered by kg polinomial commitments and validity proofs and also data availability sampling which is one of its superpowers now in this world of hundreds of general purpose rollups and app specific ones how will the user experience look like we think that it will be very fragmented because you as you can see there are with many different l2s what's happening with the user experience with different wallets and such it's very easy to see that there needs to be a force which composes all these uh experiences together to provide a unified experience and that's where we come with aail Nexus it is a way to unify the rollups across the ecosystem via proof aggregation and data sampling how it works is that we create a coordination rollup on top of the a DA which has two main functions the sequence of selection and proof composition by unifying then one rollup can talk to the another by verifying proofs rather than by you know relying on the other for executional correctness so it can verify both executional correctness through validity proofs that the rollups generate and data sampling uh proofs to know that the that that data is available now once you have the Nexus and the aail da you need a very robust security which anchors the entire protocol and that is where it comes with a fusion where we want to have extra uh external assets like a BTC an e and so on to power the base Lo so that's the what we call as the AIL Trinity it composes of the AIL da the Nexus and the fusion today we are going to mainly talk about a DA because that is the one which have been you know developed for some time now we have been developing it for around 3 years uh that's what we are going to launch on mainnet very soon and it would be very useful if you guys try it out let us know have any feedback on top so what is this DN how does it work so essentially it's a very very simple it's a dumb blockchain it doesn't do anything fancy what it does is that when you submit a data blob it keeps it available that's the only job almost what it performs so what how you can think is that there are this plethora of rollups which are building on top you take the transactional data or the state Deltas from these rollups and put it on aail and then you have a verifiability you have verifiability so which means that you get a guarantee that the data is indeed available how you do that is you check the availability against kg polinomial uh polinomial commitments and you do that using sampling so you don't need to download the entire data again and then verify whether it's available what you do is you just check the commitment and then sample bits and pieces of it and by by the cryptographic guarantees that we give you'll be able to get a very very high confidence that the data is indeed available Nexus again I will probably skip a little bit on this because this is not probably very very relevant but I'm happy to you know discuss further with you guys uh after this presentation because I've have been put on a very tight schedule here same with Fusion just that one of the core features that we want to have here is that all these assets should play a role natively inside the consensus and that is going to be extremely important because we don't want to create externus forces outside the consensus system that affects the outcome of the protocol we want to bake it all inside the protocol and that's one of the code differentiators from other uh Solutions in the space and that's how we think that aail will acceler at the unification of web 3 let's talk about the da a bit more uh as I said it's just a modular blob space right so it it has a very simple way of publishing the data each rollup build that is built can interpret and Define its own transactions so we as aail do not interpret transactions we do not you know decode it or anything you can build anything completely custom you can have your own State transition functions bu on top you can have anything from evm to no VM at all and we will probably come a bit on that as well today one of the you know like a good thing to note here is that you can segregate the transactional data per application based on something that we call application ID so if assume that there's this Avail block and uh all of you here uh use the same block to submit all the data then to know which part of data is important for your application you don't want to download the your pece application data right so how you segregate is that you create an application ID and against that application ID you send the data so that you can you know you can get back only the those parts which are relevant to you and not the entire block because the block can be pretty big for your application as I said we use uh polinomial commitments and data a sampling what you can what what you can think of here is there are two or three modes in which the light client can work one is what we call as a sampling mode in the sampling mode how it works is as I mentioned you randomly select a few parts of the data get them back and check it against the commitments that's your guarantee that almost entirety of the data is available this guarantee only comes because of the Eraser coding there so for a block producer it's extremely hard to send parts of the data because if you censor a single part of the data you have to hide a lot of them and if you hide a lot of them then by sampling you will get you will be getting caught and that's one of the reasons why data a sampling is so you know powerful there's another mode in which you can run which is called application full nodes in which as I said you can download only the part of the data which is relevant to you so you run a light client but you Fe like you feed it a particular application ID which is relevant to you so that you download only the Parts which are relevant now what this all allows is that there's a vibrant ecosystem waiting to be built on top right now we have all seen about you know the validium the evm general purpose chains but there's a lot more that you can build you can build an infrastructure on top like an L3 sequencer you can build a validum you can build State verifying Bridges and and use asynchronous composability among these rollups you can have shared security because your a da as the source of Truth for for the entire ecosystem roughly speaking again not super relevant but it's good to keep it in the back of your head if you are building something on a veil what the what the AIL blog does is that you take the original data you extend it that's the Eraser coding part which makes it highly uh hard for a block producer to suppress parts of the data you encode them all up inside the header the header goes onto all the validators and if you if you suppress if you suppress only a part of the data then also you can catch it because that's how sampling will work I'll probably ignore a bit of these things here but again one of the things which are relevant here again is how we compute those commitments if you have the data blobs like this you we we take it as a matrix and we create commitments how many commitments do we create we create 256 commitments uh if you if you you know you have seen the latest EIP 4844 and we will come to a bit of it how EIP 4844 works is that you have at most six blobs each of 128 KB here we have 256 blobs each of 256 cells and each cell is 32 bytes is the same cell size is the same curve that e 4844 uses so that's one of the you know uh the good things that has happened because currently all the rollups have switched to blobs or are switching to blobs and blobs are the native data structure which is supported by our chain and it uses the same kg commitments which are used in E 4844 we use a consensus called babe and Grandpa and there are of course tons that I can talk on top of it but the main thing for you to know is that if you send a particular uh uh data to a block the block will get finalized in almost around 60 seconds so 20 second is our block time around 40 seconds to finalize that block so it gets a total of around 60 seconds if you use any other D ler that is any other D you will get a guarantee of data availability much much later than this orders of magnitude later because ethereum finalizes every 12 to 15 minutes and any other protocol might rely on fraud proof so they have much uh delayed guarantees of Da no need to go into the staking details but that is one of the core you know decentralization factors that we have on our chain we use something like nominated proof of stake which uses a fragment election algorithm on uh behind the scenes and that's what keeps our validator said very much decentralized and you cannot you know even if you try to centralize it using a huge amount of stake on all delegated into a single validator this the algorithm will not select your stick this is one of the major parts where the differences lie this is a light client Network there are a blocks as I was mentioning there is sampling but these light clients form a peer-to-peer over network of their own which means that the light clients can can host a entire block replica not going into much of the details we will see a little bit of that but what can you build on a will right we will give you some more examples but you can build anything from validum to optimistic chains to and rollups to app specific ones to general purpose ones to even l3s l4s uh God knows what right so anything which needs a transactional data on to to be secure you will be needing a d and you can try out a veil this is the part about the bridge how aail and ethereum talk to each other is through an attestation Bridge it's a ZK verified light client based bridge that we have built in in collaboration with sassing um it uses like the ethereum blocks are verified inside a whale and vice versa that means you can have the attestations that you get on a veil you can propose them to the ethereum and that is one of the ideas that we have for you guys is to try out the bridge either to make a JavaScript SDK on top or to make uh this validum using the bridge probably you guys know all about what are you know Sovereign uh rollups and how it works and so on and so forth let me get into concrete details right now about the tracks that we have this is track one the track one is has almost nothing to do with a will what we want you is that create the best visualizer that we have for pre and post EIP 4844 and compare the cost and the benefits that we have after EAP 4844 came into place there is a $2,000 Bounty which we want we want to give to two people the criteria for evaluation is the number of rollups that you can support now mind you that there is a certain diversity types of the different rollups that you can build so for example if you take a look into something like let's say L2 beat and maybe I can open it as well for you to see if you see l2b and you go through all the all the rollups that are mentioned you will see that arbitrum one is a type of its own so it uses the arbitrum orbit stack behind if you see the op menet and the Manta Pacific they are both using the optimism stack so by looking at the optimism stack only you can cover a lot of these chains that are there similarly you will see that ZK sync era is a chain of its own but there are others like for example the Stark net uh dydx utable EGS they are right now using the stack and how do you know the stack you will see that this with what stack was it built so when you support a particular stack you can support multiple of these rollups so you can take your pick about how do you show how do you build the best visualizer and make the most of the chances that you have we will be evaluating by the diversity in types of the stacks that you support but also the number of l2s uh whose cost are being visualized of course the design and presentation is going to be key because we want it to be the best visualizer that we have there are a few others that are there in the space and that's also good to see for example there is this blob scan which you can see that for every block how many blobs did did it contain and I was as I was mentioning on ethereum right now you have six available blobs but only three on average because because of AIP of 1559 I 1559 which says that at an average the capacity will be half just like in the transactional gas estimation things you have around 30 million block gas limit but only 15 million on average here also you have six blobs in total but only three blobs in average and that's something to see here also one of the things that to mention here is that even if rollups are using the blobs they are not using it completely they are using it partially and that's also something that you can show because if they are not using a blob completely and this has been happening in Stark net so from from EIP 4844 we kept on in they they kept on increasing the the capacity utilization and right now they are reaching around 60 to 70% of the block space utilization and that's very good to see on a on on an Explorer like this so that's something that you might want to consider right now as if as of today as far as I know zync uh starnet has already an optimism has already started using blobs arbit from DA has already approved may have been already included I have not seen the latest but these are all using EIP 4844 so there's a lot of comparison that you can make one of the bonus points that we want to give here is the simulation of congestion so suppose you have all the all the rollups sending all them not as call data but as blobs if that happens then the amount of congestion and the cost estimation if you can provide that inside the visualization then we will give you bonus points there hopefully that makes sense if not let's talk outside or after the presentation to discuss some more of these details um last thing here yeah I think here also as you will see that zking optimism base they have all started using blobs in each of these blobs is 128 KB uh you can you see the there this is a fixed size of blobs this data sometimes you will see a lot of zeros amended of course this is a filled up blob so might not like it might be fully utilized or almost fully ized but sometimes you might have padding on the on the end which will tell you like how much of it is being actually used now comes the interesting track which is around $3,000 three each of ,000 I guess here build anything with a will and we are not trying to give these as uh you know pointers of what you should build but these are just you know some suggestions about what are the kind of things that you can build using a will the first is build a custom application specific rollup what that means is use any stack any stack of your choice be that Madara on Madara we have docks you can just pass a command line argument while using the Madara stack by the starkware guys and you can use ail da out of the box when you use Madara then build something cool on top and uh show that it is using aail and let's uh let's see the impact that you can make by uh using something novel roll kit also we will have all of them in the docs you can check out the docs and see step by step about how to use a veil using roll kit what roll kit enables is that you can use any Cosmos SDK chain on the latest version any Cosmos SDK chain can be uh used to build a rollup on a wh risk zero and sp1 both of our both of our you know Partners what they do is that you can take any cc++ rust mainly rust I would say program which compiles into llvm and make a verifiable compute on top what that means is that with this you can have any arbitrary logic as a rust program and building that as a roll up on top right and that's one of the powerful Primitives that you have today what you can build on this let's say an order Book Exchange roll up right now make like if you if you think about an order Book Exchange till now evm had severe limitations of the type on the kind of things that you can build the amount of state that it can support the number of loads like the number of reads and wres that it can do the amount of order matching that you can do offchain and the verification that you can do onchain and so on and so forth because you didn't control the protocol you do not control how your transactions are selected from the meol you only control the e VM compatible logic here uh with an application specific rollup you can control everything starting from your sequencer which decides which transactions get in what order to uh the executional guarantees that you want what do you want offchain what do you want on chain what are the verifiability verifiable parts what are non-verifiable parts you can decide and that makes you you know able to build a lot of different things which you couldn't have been building in a general purpose chain of course to be this for this to be eligible I think you will have to use ail as a DA of course and uh I think there are other tracks uh from many of our partners who have also had bounties if you build something on the DS space you can build a liquid staking protocol for aail one of the core problems in a liquid staking protocol is that aail is not does not support smart contracts what that means is that if you have to build something either you will have to build it directly on the Node as a pallet or you'll have to use ethereum to build something and then Bridge Assets Now While bridging assets you will have to also think about how your tokens which have been staked on ethereum how they will be bridged through the bridge and then directly staked on the protocol so that's one of the tricky parts of building a liquid staking protocol for a will but that you can be Innovative there is there might be things that we have not you know think thought about and uh you might be able to unlock one of them again take a look into other tracks maybe some of them are also eligible for other prices elsewhere this is something pretty cool in my opinion if you check out our light client our web light client our web light client is a simple you know page what it does is it does the sampling so as you can see here it's a very small block that we have here but again you see that it got changed and the next block was pretty big this of course inflates and deflates per demand and this is the live sampling that is happening one of the things that are lacking here is that of course everything happens here but there's no peer-to-peer connection and we definitely want to rely on peer-to-peer more than we want to rely on rpcs this is all built in rpcs all the kg verification is happening inside the browser and that's one of the cool features that we have here what you can do is you can build will add peer to-peer peer-to-peer uh support on top and here you can use a JavaScript Li peer-to-peer library to make it on the JavaScript side or you can use it on the rust Side by using wasm and this application right now already uses wasm to verify and rust code again more and more ideas we have a bridge API which is powered by rust it connects and uses the like people can use this API to Central transactions from one to the other one side to the other you can build a JavaScript SDK on top so that wallets can use that for bridging these are these are some of the more advanced if you are interested in peer-to-peer there's an address book that you can build uh you can detect the addresses you can store it all there are the bonus points about how they how you keep the mapping the webset communication versus a TCP communication versus a bootstrap node or a non- bootstrap node and so on and so forth there are other things which you can build if you are more interested in something like iot if you play around with raspberry pies and others if you can build uh you can if you can Ambit the a light client inside the Raspberry Pi uh and build a web app on top that would be a cool thing to build uh for the entire Community because our decentralization depends on the number of light clients and the ability to run light clients because we give the highest form of guarantees to our light clients I think these are all Q&A but before I go there let me be a little bit more Hands-On so how to run a light client it's very simple this is a there is a repo called aail up in that this is a simple script if you run the script it will automatically fetch the latest it will run the light client it will generate addresses it will do all the things that it needs to do to be able to run a light client when you run a light client right now on the Goldberg incentives test net that we are running right right now you might get an error on a warning on the bootstrap ignore that warning for now we have multiple bootstraps the first bootstrap is giving a warning here ignore all of that this is a light client running when you are running a light client you can also use the HTTP interface on top I think this so what you can do is on the light client you can yeah yes yes so you can see the status what network is it connected to what versions are it using everything this is the V2 interface the V2 interface is somewhere here so you see the API version V2 it it you can you know see the blocks the the sync sets the block numbers etc etc you can even go and submit a data using our light client so this is all happening through the light client you are not connected to an RPC directly you're connected only to a light client and you can post a particular data here I'm posting this data this is all base 64 encoded you can use this data to go ahead and submit uh um onto aail uh why are we waiting here it's because this is getting submitted once the submission goes through you will get a transaction hash using the transaction hash you can go to an Explorer we have two explorers that we have right now uh one two have two have different properties so if you if you put the transaction hash here you will be able to see the submissions it would look something like this um yeah I think uh yeah you will be able to see what kind of data that it had what kind of you know proofs that it generates and so on and so forth you can do the same but using something like goang I think this so you just need to you know put in this and then the data can be submitted directly uh on aail and this is the data that got submitted right now you can also use something like JavaScript so this is Javascript example just do an npm run data submission using our a JS SDK we'll have to wait till it gets submitted but once it submits and again these are warnings and other information you might will be able to see something like this here uh again this is the data that got submitted the transactional details the payments and all you can ignore most of it but once you have all of this you you can also use rust by the way our rust examples are here these are the examples about how to generate account from a neonic how to use the brinch to send messages how to you know synchronize a latest header how to acquir approve submit a data and and a few other things that are there again all the examples and how to run are all here you can check it out the same goes for go examples the go examples are here how to connect to a node how to submit how to submit and then wait for its inclusion how to you know query the proof data listen to new blocks transfer funds from one note to the other and so on and so forth right so all of these are go examples the same with JavaScript you can see here like connecting creating an application ID as I was mentioning and so on and so forth so yeah these are all examples all done okay cool uh so yeah I think that's almost it uh there is a telegram chat there's a Discord this is a Discord server uh where you can that where we can chat a lot more there's a telegram chat there uh we can discuss and if you have any questions uh reach out to us this is me on Twitter uh that's is a will project thank you [Music]

Automatic transcript — names and jargon may be misspelled.