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

Loading player…

BLS-Wallet: A Smart Contract Wallet for L2 & Transaction Aggregation

Ethereum MalaysiaSun, Oct 9, 2022, 12:00 AM

We host Kautuk Kundan who shares with us what BLS-Wallet is, how it works, and why it is useful for transactions on L2. --- Timestamps: 00:00 ​Introduction to BLS-Wallet 25:40 Q&A --- Guest: Kautuk is a team member of the BLS wallet team and a scaling enthusiast with a goal of making Ethereum mainstream and accelerate adoption. --- Target audience: Anyone interested to learn about how wallets could look like in L2's!

Transcript

all right thanks everyone for joining uh this is our Zoom Meetup for September 2022 uh we are blessed to be hosting kotok from the uhm Foundation from the privacy and scaling Explorations group uh is a team member of the BLS wallet uh which is a wallet that is for L2 and we'll let go to share a lot more about that for all of us so according to close yours yeah uh thank you so much for having me uh thanks see and thanks edit like uh you guys have been like amazing and yeah uh so uh should I start the presentation like uh yeah go ahead okay uh all right so yeah hey everyone so I'm from the PSE team and we are working on a project called BLS wallet so BLS wallet is a L2 smart contract wallet and it also has a bunch of cool features like transaction aggregation account abstraction and some other things which we'll be gonna talk about shortly so yeah before we begin I would like to introduce my team with you so we have Jake we have James who's leading the project then we have Andrew and quite recently uh it was just four of us but like quite recently John and Blake joined us and they are also like uh helping us uh build the extension and trying to uh like build uh adapters for external wallet providers as well so yeah this is our team and yeah so let's talk about why do we need a BLS wallet in the first place like there are so many wallet options why we are building yet another one so one of the core problems that there is that is like cost per transaction so if you see like uh on this access we have the feasibility and on this access we have like the transaction cost and the feasibility of any application like decreases like quite rapidly as the cost increases like obviously if if uh doing transaction costs more then there will be a lot of friction and the users won't want to do that uh on top of that like uh it also has like an impact on top of it so like again like if you have cheaper transactions if you have more meaningful interactions with the applications more users will be joining it and the impact that they'll create is like much higher uh as compared to uh increased transaction cost so some of the use cases for that is like uh you know uh if if you see on the graph we have casual games which has like a moderate amount of transaction costs but as we go up for a more sophisticated application so high valued asset transfer or like D5 front running or like if there is like a cool new nft drop coming up the gas price just shoots up uh like like anything and also like if you want to develop like microfinance uh applications like microtransactions or smaller smaller scale transactions so we would require the transaction cost to be actually less than what you are actually doing so it doesn't make sense if you are doing a microtransaction and the gas is even higher than that so that's something uh we have been focusing on and like to solve that there have been like quite some attempts so we have Roll-Ups uh we have arbitrum optimism uh which is like evm compatible optimistic rollups then we also have a bunch of zika Roll-Ups coming up like ZK AVM those those talk about like uh evm compatibility and stuff so what are solution where our solution lies on is within the same a layer of Altos which is uh building on top of evm compatible roll up so that we have the additional advantage of DLS compression so okay so what exactly is BLS wallet and why do we want that so everyone is aware of L2 fees dot info it shows like how much uh how much average cost is uh for for like particular transaction so if we compare uh over here so a single a single token transfer on arbitrum one costs like 45 cents normally but if you use like a BLS bundle which the wallet provides you can do it in 10 cents it's even better like for optimism so it's like uh like around 20 25 percent uh decrease in transaction cost so uh this is that and like this is a data from like three or four months four months ago uh we know that the gas prices have gone down significantly in the couple of weeks so but still like we we still can do better than that so L2 smart contracts what they are so for L2 smart contracts we have BLS signature scheme we can even support gasless transactions we can have account recovery recovery built in we can have upgradability so if your wallet uh some some features are added you can just migrate your existing keys and one of the coolest thing is multi-action which we'll be talking about shortly and all of these points that are mentioned are a part of uh the The Proposal which is eip4337 which is the account abstraction proposal and we are also working uh closely like GMC is actually uh contributing to the reference implementation of 4337 so that is a really nice thing for us as well all right so standing on the shoulders of giants so we are not starting out from scratch we have uh we are actually building on top of existing things that the PSE team has already built and we are just like using some of the existing Tech to like build uh some interesting stuff so BLS uh the the event in the room the BLS signature scheme which stands for bonelin and shashan I'm sorry for the pronunciation uh so it is a cryptography pairing pairing based signature scheme so what happens is like you have a curve and on that curve you have several points and you can have message and uh it actually appears to uh you can have multiple uh messages like paired with each other so yeah so where it is being used so like the consensus layer is using the BLS 12 381 curve and like the execution layer is uh working on like bn254 curve and this is also the curve which we are actually using it is not the one uh which the consensus layer uses but it is like beneficial to us because uh there is already a pre-compile for this uh with the eip197 release at 0x8 address so this is what we are using right now so what happens is when l2s are writing new states to L1 what they do is for every transaction there is like an ecdsa signature for each transaction and if you take into account the number of transactions coming in if each transaction has uh like if there are X transactions then there are like 2x amount of data going on uh on L1 because of all the ecdss signatures attached with each transaction and also if you see for multi-call so for multi-call you can do like one transaction and it will actually do like multiple of them but it does not uh easily allow for like a batching of transactions so it will still be like independent transactions from there uh so how it actually works like in a very very uh generic sense so let's suppose each of the shape over here is a transaction and the Box in closing the shape is the signature so if you are uh doing it in a traditional way what you'll do is like you'll post this on chain uh on L1 you'll post this on L1 you'll post this on L1 and it will be like three different things but what BLS allows you to do is that you can have all these all these transactions together uh like kind of like superimposed on top of each other and you can have like one single signature that is like uh in incorporating all of all of these transactions and this is how like the signature you have like message one message and like you can have n number of messages and you can sign it with different uh private keys and what would happen is that you can actually use uh one signature to actually verify if all the messages were signed correctly so you can read more about it like uh going in depth would be like uh read very time consuming so you can read more about it at this particular link all right so it started out like I said we have been building on like lot of existing uh work which uh the PSE team has been doing so I was also like part of this project which is the Hubble optimistic roller project so what this was it was an erc20 focused optimistic roll up it wasn't evm compatible but it provided a very very cheap way of actually uh transferring ERC token from one uh one address to another address and it used BLS uh signature uh underneath it and it also had like a signature aggregation built into it which actually helped it to become the one of the cheapest solution for erc20 transfers and like right now the world coin project is using BLS uh Hubble uh optimistic roll up as their underlying uh transfer layer and the library is created during this time was actually like uh the the core libraries which I used for the BLS wallet itself so yeah coming to our project so like I talked about the core components are smart contract wallets uh aggregation Service uh we have also a client module for which any other application can use to build their own system and we also have a reference browser extension which is called quill so what quill allows you to do is you can actually replace uh the existing uh browser extension let's say metamask if you're using that and just install quill and it will actually help you uh do BLS based uh transactions so yeah uh yes L2 data per transaction lesson guys uh so yeah we already talked about that and yeah this is these are some of the numbers uh which we uh this around yeah these are some of the numbers which we ran uh during the during the estimation part so if you see over here like uh BLS uh once again yeah I'm sorry about that the zoom thing is like coming in between anyway so on in the top row it's the BLS uh transactions and uh in the bottom it's the normal transactions and we have done the gas cost estimation on arbitrum and these are like uh based on 31 token transfer from one address to the same address on orbitrum and uh the duplication of sender token address anyway so if we see like the total amount of call data used for BLS signatures is like significantly lower than a normal transaction however like the transaction units uh on L2 is more because we are doing a lot of pairing and those kind of thing so this is actually greater than uh normal transactions but however since lto computation is so cheap that in the long run and by actually aggregating so many different signatures this actually comes out to be at a lower cost than normal transactions so if you see over here uh for the total cost you can see that total cost of all the 31 token transfers was this much whereas for normal transfers it was this much which is like a 25 Improvement uh over the total uh gas cost consumption and yep uh yep uh you can read more about it by scanning this QR code it will take you to this link and it has like a detailed analysis of gas cost estimation so how the project is set up today uh for the configuration right now so we have the browser uh extension so the browser extension actually embeds the client module which I talked about and this client module is actually responsible for making the connections uh from the client module we have the aggregator service running so what whatever transactions that you want to do in the browser goes to the aggregator and then the aggregator actually like combines all of these transactions into a bundle and then the bundles is submitted uh on an L2 node and which goes through the BLS verification Gateway this contract is actually responsible for verifying BLS signatures if all the transactions coming in together I signed properly or not and once that is verified like the individual smart contract wallets are then uh used to execute those transactions so this is the entire flow right now and like for scaling integration it's like uh you have a Dap and the DAP has like a bunch of operations so this is the multi-action thing which we are going to talk about shortly uh what you do is like you have an operations array and you send that uh to the BLS client module it will actually sign all of these and then send to the aggregate aggregator so the interesting thing is that these operations need not be coming from a single wallet what would what you can actually do is like a bunch of different wallets with different public keys and private keys are actually gonna send these operations however like the aggregator will actually combine these together so it need not come from the same Source you can uh actually leverage like the more the merrier so if there are more transactions coming in the amount of uh data saved would be even greater and then the aggregator like submits a bundle of transactions uh yeah this is the operation flow for the for the contract side of things so the bundle is submitted uh on chain uh and on the evm what happens is it goes through the expansion first so all the compressed uh signatures is uh expanded to to extract the individual transaction then the signature verification takes place and then based on whatever action is going on whatever operation has been submitted it will be transferred to the contract wallet and once the contract valid while it gets the transaction it will send the action to the DAP interaction or whatever interaction that is going on great so let's see a small demo of whatever I just saw lots of words and like nothing uh interesting that until now so let's check out some cool stuff so this is the uh wallet which I talked about this is like the reference wallet uh it needs we are just building like a reference implementation so that all of the functionality that is there uh we can like uh demo it to whoever we want to demo it and it includes like aggregation and like BLS uh signature verification built into it so just to demonstrate like uh let's take this address and you don't have to do anything differently so we have metamask uh right over here and if you just do like try to do like a simple transaction just to this address let's say I'm going to send 0.18 to the outside world even though this is a smart contract wallet let's wait for a few seconds so even though if this is a smart contract wallet it there is no noticeable difference between these two so it will just act like as any normal wallet so we have some ether and if we want to send each from here to back to the original wallet let me just copy it is so the interaction will also look uh exactly the same like we have like a similar pop-up to metamask and it will show you a bunch of things but uh like the interesting thing will come next so once I confirm this and I go to so this is the aggregator running in so this aggregator is actually like collecting all the transactions coming in so if I refresh this real quick these are some of the old transactions so yeah you could see a bundle being created over here so the aggregator sees the bundle it will actually wait for more bundles to come in but right now since there is only one bundle it will just try to aggregate that so it makes a submission attempt over here and once the submission is like confirmed you will see a submission confirmed message and right now this was this one only one transaction in the bundle so it will just give bundle hash for one but actually like if there are multiple transactions going in it will show the hashes for each one of them and if we see over here later we can see that the transaction was confirmed and this is a very similar thing a similar transaction uh layout as any L1 transaction uh with one difference which is uh not sure if it's here uh yeah it's it's in the aggregator itself so you can see over here so you can see that the hash is the aggregator hash whereas the L1 hash is a little different than this okay uh moving forward the other thing is how it actually interacts with normal uh dabs so this is just a demo application which I built to demonstrate ERC to 20 transfers from BLS wallet so this is like a token contract over here and this is like a spender contract over here so what we can do is we can just call a mint function and you can see like a similar uh interaction over here so it will just send this and just waiting for a couple of seconds everything is running on go early right now we have the contrast deployed the verification Gateway deployed on this thing uh this network so once some tokens are minted what we do is we can approve this spender contract to actually like pull try to actually give permission to pull the tokens uh and let's wait for it oh uh I'm sorry there is a there has been a power cut no worries uh so once this goes through we will be able to pull tokens into the Splendor contract so I think it was successful and now if I do a pull so you will be able to see that the tokens will be pulled from the user into the spender contract uh waiting is not interesting yeah how many contracts are there in total so there are just two contracts one is the token contract and one is the spender contract so it's just that uh like pulling tokens requires an approval step so I just wanted to demonstrate that right now there are three steps inward which is mint then approve and then pull tokens and if we check out the aggregator so we can see that three transactions would have been submitted over here so this is the usual way of doing things so submission confirmed uh submission confirmed and submission confirmed so three transactions took place right now but with what we can do with BLS wallet is that we can bundle all these transactions together so over here this is the coolest thing so there are like three transactions so we'll just verify each of them so we see that there are three transactions coming in which is mint approved and pull tokens and if we just confirm all of these together this is just one transaction that's gonna get submitted uh over here so you can see that bundle added and this bundle was just uh one transaction but submission confirmed so over here you can see that all of these three uh Atomic transactions took place in like just one transaction and only one transaction was submitted on chain so this was a demo for like simple multi-action thing which the extension can do all right so coming back to the topic how we can actually use the client so this Library which we have posted on npm is just like npm install BLS wallet clients and you'll get like a wrapper for aggregator you'll get a wrapper for BLS wallet so what you can do is you can create a wallet this way and uh you just give it a private key uh just the verification gateway address and the provider so it would be uh like in the browser it would be the wallet in the in any other application it could just be like a Json RPC provider and then for the aggregator how we actually submit the transaction is just that we call wallet dot signer dot Aggregate and then we give it a bundle or another bundle or however many bundles that we want to give it to and then we call aggregator.add and it will send the request to aggregator the aggregator will combine it and then submit it on chain so it's very user friendly a developer friendly so yeah connect to the Wallet create and sign a bundle of operations aggregate multiple bundles together and send it to the aggregator and this is how you actually create a transaction so inside this we call wallet DOT sign and this is the signing uh process taking place and for multi-actions so instead of like doing the actual transaction you just call the encode function data on the transaction so right now it's approved and give it the Give It Whatever details it needs and just the call data is required so you just say add a call data in one of the array and another call data in another of the array and you just call approve and swap in a single transaction uh all right why should you use BLS wallet so we have use cases for dapps we have use cases for external wallets and we have use cases for Led nodes so the apps and wallet what you can do is like you can have multi-action support uh so like I just demonstrated over here and you can also have like cheaper or even gasless transactions so right now if you saw uh in the demo uh I had like 0.1 enter in my wallet and I still have 0.1 ether in my wallet because the aggregator has been like uh sponsored to actually aggregate my signatures so you can also run it in like a sponsored mode or you can actually like fund the aggregator yourself and it can actually do like a gasless transaction and yeah uh it has uh bundling support as well so if you are familiar with normal meta transactions with relayers that doesn't like bundle transactions together so that would still like have multiple steps inward but over here we have bundling so instead of submitting multiple meta transactions you can just submit one uh for smart wallets or for like a third party wallets what we can actually do is uh let's say we have no sales we have Argent they can actually like use the client module within their own wallet and then they can take advantage of account recovery and upgradability so right now if you lose your private Keys it's done you can't recover it back but for us you can actually like sign a message with that keep it stored and then what if you want to change your wallet to a different address you can still do that for L2 nodes uh let's say for arbitrum or for optimism what you can do uh is like you can reduce the gas on uh evm transactions so if you might have observed during the arbitrum or DC events the gas prices are shot up like anything and it was so bad that they had to like shut down the entire operation but if they had used transaction aggregation so they could have like a combined a bunch of transactions together into a single one and that would have actually like uh help them uh run their uh event much better and we would also encourage adoption of dapson wallet by actually making the applications sponsored so for any users who's like a first time user of an application they require they they are required to have some amount of ether in their wallets but uh that creates a lot of friction right so what they can actually do is uh the dabs can sponsor some of the transactions for them and once they are like okay that this is the application that they want to use they can actually like recover their uh wallet they can actually recover their wallet to an extension and then just start using it normally right so future configuration options so right now we have like a browser embedded model we can also do mobile wallets so the mobile wallet will uh include like the client module which will just talk to the aggregator and then like talk to the third party contact wallets which is like uh anyone uh running a wallet uh yep uh next steps are like to facilitate like faster adoption into the apps and wallet so we are like working on like some nice integration docs we already have like a repo uh up which anyone can check out and like uh start using the application uh start using the client and we are also working on like uh solidifying four three three seven and like talking with uh external wallet providers so we have been talking with a couple of them and they are actually quite excited about like including BLS wallet with their own wallet so yeah and you can join the Discord channel for web freewell so web3well is an organization which we discard Channel which we created where like uh you can discuss about uh development of uh BLS wallet and actually like provide ideas contribute Etc and yeah this is the project link so you can go to the GitHub and check out the project uh yep uh open for questions all right thanks thanks um so as per usual uh we generally uh welcome any questions from anyone in the audience you can ask in the chat and I can ask it on your behalf or you can unmute and ask uh yourself but before we get into other questions uh we always like to start with getting to know our speaker a little bit more uh so recorded just like can you kind of describe to us your experience falling down this ethereum Rabbit Hole uh like how you fed came into ethereum and then how you came into uh the Italian foundation and the privacy and scaling Explorations group right yeah so my journey has been like quite interesting one because I did not actually start here so back in 2018 or so I got into like ethereum development through hackathons uh but at that time you must remember the tooling wasn't very great and the application development experience wasn't very nice so right now you can just do like a console log in the hard at it a hard hat code itself but back then you had to like do some stuff like put in some break points and like run everything to the getth node and that kind of discouraged me from actually pursuing it further so I got into machine learning and data science so I did my internship at that time I went uh I went ahead I even had like plans to uh like do some research in machine learning but then I thought that the space has been like quite uh it got quite saturated really quick so I thought that okay this is not the thing and then back in 2019 I believe or 2020 uh like around that time I got interested back uh into the ethereum into the ethereum community because you know the uh market and everything that got me interested honestly speaking it was in the development side of things yeah but then I realized that um like it's not just about the market it's about building applications and how things can actually work uh work within the ethereum ecosystem so I got really interested in that and like uh my first ever uh like full-time gig was actually like a combination of machine learning and ethereum where I was working with spectral Finance to build like on-chain Credit Credit scoring models but then I got into scaling and then I started working uh uh with the Hubble roll up team and from there like building on top of that then we switched gears and then like moved to BLS wallet so how I got into EF was uh so basically I created a small project which was a POC for a pessimistic roll up so everyone was doing optimistic so uh there was this post on each research by uh Barry and I thought that it would be good to build a POC then I posted it and like it was uh well received by everyone and then I got into uh working uh with uh the team so yeah that's how I got sorry could you just in like maybe two minutes describe what is a pessimistic rollout right so it's it's just a so for optimistic ruler what we do is we just post data on chain and we just uh optimistically assume that it's gonna be correct until someone comes and proves it that it is not so for pessimistic roller we have an approach wherein like you post the data on chain and while posting the data function you actually run through the entire data so basically like running the fraud proof during the time of submission itself so by doing that will actually give you like instant finality at the at the cost of gas obviously because that's what optimistic rollups do that they don't run the data coming on chain so that had like several use cases it was obviously not very gas efficient or not very uh good for scaling but it had like other applications like you can build like a super wallet of some sorts wherein uh like people are uh people who want to do a uni swap transaction they can like a bunch of people can come together put in their tokens and then just wait until prices are fine and then they can just execute it and then like they can take out their share so it's good for very specific use cases but like not not very great in general for scaling it was just a fun project I helped you get into EF so uh that helped a lot uh and you mentioned for the BLS wallet team uh that it's standing on the shoulders so Giants uh can you describe a little bit more like the history behind BLS wallet right uh so I mentioned Hubble optimistic roll up right so Hubble was the first roll up I think which used uh BLS signatures and the work done at that time like uh building the BLS client library and the BLS pairing libraries and those kind of things were those were the steps that we took at that time and then we are using the same libraries like the exact same libraries for BLS wallet all right and um like what was the kind of uh the end goal of like starting out a BLS wallet um project uh like um the ZIP code there's a bunch of other projects under uh PSE Bobby that's what what's the kind of the the vision of this project right so like we all know like uh good things about contract wallets right so we just realized like it was James who came with the idea and he was like okay we can improve contract wallets and by improving contract wallets we can actually let existing uh infrastructure support this so for ZK approve or for like new projects you need to go to a different network right but with BLS wallet you can stay in the same network and just like use a new wallet instead of like migrating so it's good for everyone in the existing Network and it also can act as an inspiration for like newer projects coming up who and uh James Zaki is an inspiration for uh me personally at least because he was running a bunch of uh meetups I think in Sydney uh so yeah that's uh this was a long time ago yeah one of the people that inspired uh us doing ekl in Malaysia uh before we go further um SRI just ask a quick question whether you have any links to that um pessimistic roll up like any blog or maybe a GitHub all right uh I have a repository it's not a very well maintained or well written book I'm kind of embarrassed sharing that but I'll still do that one second uh actually it's great uh when our speakers have those kinds of embarrassing reports because then the people who are uh here who don't feel as intimidated you know that you know maybe they also have a chance yeah I just shared that in the chat thanks thanks uh okay cool then uh before I jump into I think a lot of the questions are kind of uh related uh but before I get there uh so one of the key things with having an L2 wallet is that um it's multi-chain right um you can cover not just a minute but also other robots but can BLS Wallet work for other chains like are non-l tools or even non-evms like uh what would be the the range that it can cover right uh I mean it can work only on evm James uh evm chains right now but it can definitely be on non-l2 so you can run the same uh same setup on ethereum mainnet and it would still give you gas benefits but if you run this on arbitrum so arbitrum is already like doing a lot of compression with BLS itself within their uh within their sequencers so that would actually have like a boosted advantage to run on our bedroom so I'm not exactly sure by how much in terms of number but like you can run it on non-ltos but running it on l2s would be much more like much much more uh cost effective and um or ZK Roll-Ups uh is it any better or worse uh I haven't like I I don't think we have worked on that yet uh you cannot like James uh I'll ask James and like let you know if we are like planning to go over there as well yeah and and like all the zika EVMS aren't actually live yet so yeah it's probably you have to wait until it's live before we know for sure um yeah so um getting into some of the audits uh questions um and chichon asked um so how many transactions can one bundle contain uh how many transactions can one so it's there is no limit to that like the limit is like how many transactions a particular block and L2 can hold so if uh like if I'm not wrong arbitrine doesn't have that kind of a system you can have like uh there is no uh small limit to uh no hard limit to how many transactions can go in a L2 block so that's the limitation of the ls wallet itself so it's how many transactions can a block on L2 handle would be the same as how many transaction can be LS aggregate and the flip side to that question uh from two is um is there a rule for like a minimum number of uh transactions inside and one load yeah there is no rule you can just have a single transaction so I just demonstrated like a single one so there have been cases wherein like existing applications I have to modify their code a little bit to have multi-action support but if you are doing just a single transaction then there is no need to do that uh let me in fact and do you actually get cost savings uh I guess is one way to another way to ask a question like at what amount of transactions does it like become apparent the cost savings uh so like since it's bundling like just one transaction would also be cheaper than doing one transaction without this so the cost obviously multiplies as uh like the cost reduction multiplies as more number of transactions go into the wallet but like doing a single transaction also like if you are doing it on arbitrum it like reduces the entire call data size because there are some things involved for compression itself so if you check out the code uh I mean like you can go over the court to do like uh check that out yeah okay cool um and then um so chichon asked uh how fast does is it to generate a bundle and Kevin asked I guess a related question like does the signing duration scale uh linearly over time uh no uh there is no cost to the transaction so I realized that for ZK like running it through a circuit takes some amount of time but for like uh signatures it's instant all right um and that concludes like multiple like obviously it it has some delay uh like I don't know exactly in an amount of time it has some delay but like for actually verifying one signature it's the same as for verifying like a thousand signatures so verification is like instant and and talking about bundles uh I don't know how much you follow the whole Mev uh um thing going on uh so does having these kind of like aggregations uh bundles with BLS wallet um does that affect an EV or how does that how does Mev affect it uh in any way given that you know you can combine different transactions from different people uh and basically just send that one bundle uh right so on that note like since the transactions are expanded during submission so obviously like uh uh these are Atomic as well like uh if uh what happens is like in a bundle if there are like 10 transaction and one of the transaction fails then like the other transaction would still like succeed it's not the case for an action but for a bundle it is so like uh obviously I could see that it's not possible to sandwich uh transactions in between but like for Mev like the entire bundle could be treated as a single transaction so I think in terms of that it's like somewhat Mev resistant but not not really like on that case um so let's say this 10 transactions inside a bundle like um who or what is a mechanism that orders uh these transactions is it like first come first serve um uh so it's it's based on the aggregator so like if if you're sending uh the aggregator a bundle so since the bundle has like uh some amount of transaction it's the aggregator who actually like bundles all the transaction together so if you are running an aggregator you can bundle it differently than someone else running the aggregator so in that case yes obviously at that time like ordering is important and then that actually can some maybe stuff going on so so how um how do aggregators work or like um is it like anyone can choose their aggregator or is there some sort of like voting mechanism or um yeah like who gets to be a aggregator yeah so this is not a network of aggregators is just one aggregator you can just uh like the aggregator has a single URL and you choose which aggregator you want to work with so it's it's that way Okay and like but but multiple people can create their own aggregated contracts um is that how it works or there's one specific educator okay yes yes like uh but like the thing is if you are submitting your transaction to one aggregator then the other aggregator won't be able to like work with it so it's like anyone can run an aggregator but you'll have to point your transactions towards that aggregator to actually get it yeah okay so I can imagine I mean it's probably not so soon but I can imagine a future where people kind of compete to become aggregators that people submit transactions to and then there might be some Mev um happening there yes uh on that note we are actually like working on this exactly so we have a vision that in the future there nobody there there won't be any aggregator right so there will be me Bots who will be competing to like get your bundles submitted uh on sale so like that's something which we are working on through the payment so right now like we are uh the aggregator just like for the test net it just like doesn't accept any payments right so we are actually like working on like uh a wrapper so that like uh anyone can sponsor transaction for someone else so that way like obviously Mev Bots would see that see this as an opportunity and they'll just grab the transaction and just submit it themselves bypassing the aggregator completely and um again speaking of bundles but I guess in terms of actions uh there are projects like uh furokomo where you know the whole point of it is you can like uh put pieces of transactions or actions together uh and then like submit uh one transaction um is there a a key difference uh on the user experience side of uh using BLS wallet aggregations versus um kind of a D5 app like Photo combo if you're familiar uh like are you talking in terms of building the application or uh something else or from a user's point of view like um let's say I want to make a bunch of transactions uh atomically like I want to make a a swap on a decks and then right after that uh lend the uh token that I've swapped and then after that deposit um the other token into some sort of um Farm or staking contact UM got it so yeah I think it's uh pretty much uh like it's it's very easy like so I'll just show an example over here so this is how a normal transaction works let me find it yep uh so this is like a simple way of like a normal transaction how it works right you just like call the provider and just like send a transaction but over here like for the extension specifically we have modified some of the irpc methods so this is like the bundle one so instead of just calling in the transaction directly you just like do a populate transaction call uh and like for populate transaction you'll just get the call data of the particular function that you want to do and if you are familiar with like the say in transaction method so this is a simple uh send transaction method which just submits the transaction with call data signed call data and everything on chain so in a normal context this is the case wherein like uh for the params array you just send in one transaction right and this is the usual uh like conventional not convention this is the I forgot the word like this is the way how how it happens right this is the de facto way but we have modified the RPC inside the extension such that you can like put in like however amount of transactions that you want to do in this array and just like call this each send transaction and it will actually like de-bundle it together and then just perform the bundling itself so for your question like you can like one of them could be like getting some tokens one of them could be like using it on another uh sending it to some other thing then it's like just you can just keep building it uh within this array itself okay okay and I guess beyond that it's more like the the client-facing interface uh the user-facing interface uh to make it even more uh user-friendly for the user to do yeah yeah yeah so like uh one of the things which uh I like calling it you can have like a shopping cart experience Twitter and the application provides your stuff you just look click click click click and it just keeps it in a card and once you are done with the adding of the transaction you can just check out and like that will actually submit all of the transactions together but there are some limitations to it right now what dabs do is that they expect uh like if you did a transaction if you click on a transaction it will actually return your bundle hash uh a transaction hash and then only you can do another uh another transaction but over here if you are doing like multiple one of them there is no transaction house until all of them are submitted so that is a user experience which we are trying to like uh improve and like probably in the coming releases of the coil extension we will hopefully have like better ux on that so that the apps don't really have to modify their own code yes um so to ask a good question about uh ux as well for the user so when aggregated um for these transactions does the user need to request or do some sort of extra action to get the transaction uh information um let's say on a block Explorer like you do need to do something to decompress the transaction before yes yes yes so that is like yes uh so we are actually planning to build like a Explorer for the aggregator because right now if you have 10 transaction every transaction will go on chain and there is no like easy way to actually decode it like you can decode it but like since it's everything is in one transaction it's not uh really uh possible to it is possible it's not very user friendly to actually decouple that so we might uh be building something for that but as of now it's it's difficult for From ux perspective all right nice um and so um is the VLS wallet like um in a ready state or I think you mentioned something like um waiting for uh for 337 to be out like um what was the current status of the BLS model uh it is out you can just use it it's not live on mainnet or anything but uh if you want to check it out with testnet applications it's there live on go early it's live on uh rinkaby uh arbitrum basically and arbitrary so you can just like go around and play with it uh everything is mentioned in the repository docks so and like in case if someone has any questions or want to reach out further I would advise like joining the Discord server for uh web 3 well so this is the link or maybe if someone wants to do a hackathon project uh using this I'm not like we will really appreciate it like if you wear something nice with it like we are obviously looking for people to because this is a new paradigm like up until now dapps have been like one transaction one result one transaction so this is entirely a new paradigm and we want people to build user experiences with this type of transaction scheme so I think like it will be a really nice idea if you hack something and like build something and please share it with us uh so when midnight natural question I think once we finalize four three three seven and like have everything in place with that EIP I think after that we'll be aiming for mainnet um do you know when 437 is slated for it's not for the next like Shanghai is it uh I am not sure about that okay but basically it's a prerequisite before BLS wallet can can go Fully live uh uh yeah like for us like I think you can definitely deploy the BLS wallet right now in its existing state to any of the chains for mainnet but like we want to have like the added benefit of or 337 recovery and those kind of things before actually like making it live and um so for uh when Once up was here last month to talk about Jacob two um so he he specifically clarified that the corporate is a uh not an implementation it's a meant to be created as a research project as a reference um so does that same thing apply to BLS wallet are you guys going to create your own condition or it's more for like a public good for other people to build on top of right so the BLS client module is something which we built so that uh like other wallets can actually integrate that in the client itself so we don't have any plan of like creating like sort of a product with this obviously this is public good everything in like EF we do is for public good only we don't actually aim for running stuff ourselves so the cool extension also we just provided we just built it to provide a reference implementation to how extension how extension could look like but since we already have put in so much effort so it's just uh like you can just use Google directly right away but we would actually like recommend other wallets to integrate BLS client like let's say urgent or no CSR uh like a scaffolding project so we are actually working with them and trying to get them integrate the clients module so we don't have like the way of doing things you can obviously do it do things your way but the contracts and like how the verification Gateway and those kind of things are built that is like uh one of the uh that is like how we'll push uh people to build that way but obviously this is for public good only nice it's so cool to talk to uh people like you and what's up uh doing these kinds of things uh so we have about five minutes left I guess uh we probably can go a little bit uh over time if people are okay with that uh so if you have any questions uh that you have please feel free to uh put it inside the chat um I think we can go to some kind of like more wider ranging higher level questions um so um TC asks as role technology becomes increasingly prevalent due to cheaper transaction fee and faster transaction speeds do you think that all future Business Solutions will fully shift to L2 and derive the functionality of ethereum uh L1 only as a base layer for security and decentralization yeah I mean that is uh like that is a very uh good topic of discussion I think it was mentioned in the roll-up specific role of centric roadmap blog post as well like ethereum will and like this is my personal opinion now that ethereum will mostly work as a settlement layer and like applications will be built like separately while you while like deriving security from the main layer so in fact there is one more project that I am building on which does this which does similar things I think like it's not the right time to share it I'll share it afterwards maybe separately uh this is about BLS but like uh in general I still feel that that that is true and that should be the case you for yeah I'd love to and um so again on the kind of like wider level things so you mentioned having um uh like scaling making transactions uh a lot easier um for people such as uh those doing microfinance um in your opinion like what what would be one like use case of of having let's say BLS holder it's like completely out there and adopted and ethereum has scaled like what would be one favorite use case of yours that you can use this technology that you've built for okay so I'm not sure uh like you guys might be aware of Life peer so what life player does it it does video transcoding and for each segment of transcoded video it actually does a small payout to the uh to the to the node which does the uh does the transcoding part so over there the size of uh the transcoding is like very small so the payment related to the work is also very small so if all of these can be bundled together so it doesn't make sense to submit a transaction on chain with such a low amount of payout because the gas will eventually be higher than the payout itself so that doesn't make sense so this is a nice use case wherein like you can like have multiple tickets bundled together and you can just submit one one once and like take the payout for all of them so this is one of the good use cases which I can think of nice and um so before we end just quickly um we know there's a bunch of PSE projects uh that are happening um you know always looking to invite more to ekl so maybe what's one of your favorite other project that's happening uh maybe not one that you're involved in uh that um might be cool for you to share with with us all right uh so I think like ZK AVM was one of my favorite projects but you all guys already have like a talk with them so if I had to choose another one uh there are so many projects I'm just looking for uh uh guests to invite next yeah I mean like you can check out interrupt Maybe sorry uh interweb interrupt uh yeah so you can check them out and those those are like those guys are doing like pretty good work there so yeah one of the I can recommend that yeah all right thanks uh okay and um yeah so thanks a lot uh for sharing your time um unfortunately we can't uh see each other in Defcon but if you're ever around in KL or even in this region uh feel free to drop by in KL and like we have a relatively big Community here who would be uh happy to welcome you and show you around yeah thank you so much I'll definitely like if I visit you will be the go-to people to actually like show me around as well yeah and if uh we ever get to doing that happy house that chichons I've been uh talking about then you can even have a free place to to stay oh awesome awesome totally I'm sorry all right thanks a lot everyone and uh we'll see you at the next Meetup which is um TBD um let me say something a bit about the next potential Workshop we're having so uh the next Workshop we're having is for probably it's mostly going to be on the 8th of October it's gonna be a Saturday uh it's going to be a rush Bookshop so uh it's gonna be we are going to write out trading algorithms in Russ so for those who are interested in trading algorithms or Russ or both so feel free to sign up for our Workshop uh keep an eye on the telegram group because I am going to share the uh the form now so yeah uh just register slots are limited uh so be quick so we are still deciding on the venue but it's going to be around the klpg area so so yeah and thanks so much uh it's a pleasure having you here yeah and thanks so much for you both to actually like organizing it and like having me around so thank you so much oh we love having the PSC team uh yeah like very cool and futuristic program uh projects and they're not so friendly so I'm always happy to have this income right right Harris yeah Heroes of ethereum yes I agree all right so thanks a lot everyone and yeah thanks again bye

Automatic transcript — names and jargon may be misspelled.