ZKV presents Privacy in Cosmos: Scalability Edition - Data Availability and Rollups Panel
14 Jan 2022 · 40:51
Anna Rose moderates a Zero Knowledge panel on data availability and rollups, recorded at ZKValidator's Privacy in Cosmos event. She is joined by John Adler of Celestia, Zaki Manian of Sommelier, Dean Tribble of Agoric, and Henry de Vallence of Penumbra to compare approaches to data availability, modular rollup design, and cross chain security within the Cosmos ecosystem.
Speakers
Topics
Transcript
all right so i think the way that i want to do this uh panel is actually to do part of it kind of continuing on the conversation of data availability and we have with us a number of kind of leads of projects that have zones and we can talk a little bit about more more what that would look like uh in terms of data availability to explore into it and then i wanted to also use this panel to explore just general private blockchain scaling something that we we've talked about privacy in the context of bridging but i wanted to talk about it a little bit more broadly and so here on the panel we have dean returning thanks for coming back dean from mcgorrick zucky also returning thank you for joining again from sommelier and we have henry de valence
who just is joining for the first time henry is from penumbra henry since we haven't heard from you yet do you want to just say a few words about the project sure um so penumbra what we're building is basically a fully shielded proof of stake network uh within integrated multi-asset decks so this is uh supposed to sort of act as a private zone for the whole cosmos ecosystem value comes in over ibc it's shielded and then people can you know trade in a private way within that zone cool penumbra is all about private yield
yeah that's the tagline sure i mean there's a lot sure i guess like well anyway we could just i don't want to sort of steal the you know uh panel but there's a lot of useful things that come out of building like genuinely private infrastructure and so i wouldn't say that there's like a single tag line because it turns out that if you like build the right infrastructure actually it has a lot of uses ah okay could be one of many taglines of the future then yeah okay let's start with this concept of data availability
uh john right at the end kind of near the end of your presentation like you talked about zones potentially being able to use something like celestia i've mostly understood it as sort of the base chain for roll-ups and roll-up like technologies uh but like zucky had said maybe roll-ups are are just l ones or their own block change and there's a bridge between them can we can we go into now that we have three teams here who actually will you know who are projects running zones launching zones i kind of want to explore what that would look like so maybe to start where does the data currently live in any of the zones zucky where is the data like data availability the data availability lives in
tendermint so like the client software so tendermint is a vft consensus layer yes um and tendermint is responsible for gossiping out the blocks to all of the net full nodes on the network via it's the tender bit gossip protocol uh all of the blocks then execute those transactions in those block and propagate them onward uh validators are responsible for providing those blocks and validators are not supposed to sign uh to have consensus on a block that they do not have access to okay so you're saying it's just built like this concept of data availability currently it's just built into the consensus mechanism itself one of the things that i think is
interesting is satoshi was really one of the first distributed systems thinkers to think about data availability and bft as like independent properties if you kind of look at all the the sort of pre-blockchain classical bfd things this question of like was the is the data available do you can can the client witness uh was sort of alighted or ignored um and so tendermint has like a particular approach to it i don't think it's particularly advanced um celestia is clearly the next generation of that approach um but tender bit is what is responsible in the cosmos each sovereign tenderness zone is responsible for its own data
availability um if you're like running a relay or an ibc you have to you have to spend hundreds of thousands of dollars a year running validate running full nodes and archive nodes for every single chain and in the individual zones could the data availability be corrupted if there was some specific like kind of what you were talking about john with like the valid if the validator set like is is it actually possible for action i have been waiting for this attack for two years okay i've been trying to pay people but it gave us stakes it gave up zodes for pulling off this attack okay uh uh this attack is the thing that was most
the advantage of the work that you know the agora team has done is they build a system that fails somewhat gracefully if you have a data availability attack like which is what i think is cool about agoric uh as an interrupt protocol now i want to know how so i was going to say with respect to data availability um i think actually you know several of us up here have you know at the foundation is that the merkle tree the tendermint maintains where data is stored replicated must be reported the block data and so forth but
um we have an additional challenge and then i want to go back to the thing that the ducky just pointed at where at the at the limit um you know we do deterministic replicated execution of javascript and what that means is a message comes in from a client that must be recorded it must be remembered and then it causes some arbitrary amount of computation the sort of the surface area is where is what i have to remember and then i can replay all the computation that then has long-lived persistent state that is not in the merkle tree and thus is not available unless you have a full node and can talk to that javascript engine by sending messages in and that gives us one of the directions where we get some
privacy that you know that there's sort of a you know until penumbra right or you know and and you know z cash to a lesser extent right that that you know data availability didn't mean you could get at the data because yeah it's all shielded you've got nothing unless you're unless you're part of the game being played executing transactions and having in-memory states similarly you got nothing unless you're part of the game being played and so so data availability is a little um is you know is more complicated as a result but i now want to go back to what where let's find out how you fail gracefully that's right so
one of the ideas in cosmos is that data availability failures can happen um if if you have more than two-thirds plus one of the validators that is is malicious they can create blocks that appear valid but are not uh available um and so you could have like arbitrary corruption of this of this sort of interchange state um and so i expect stuff like that will happen the idea is is that you should be able to so you know we do this thing with the ibc dnoms right for instance where we're like where we uh say like oh this this this token was like
came from here was wrapped here then here and so if you have a data availability failure in between you should be able to actually figure out like what tokens were affected by this data availability good okay seeing you oh so that makes sense i mean partly being able to replay the model from any point to figure out what happened um and anyone's in a position to do that um you know all those elements give us give us recovery you know decentralized recovery from from those kinds of of attacks you know as i said until until zucky can manage to get someone to actually attack one of these systems you know uh um uh
everything's theoretical right um there's a nice data availability attack against osmosis that you could do um where you could uh create like get a cr like create a new chain do it like create get an osmosis pool created get a bunch of value into it and then do a data availability attack on the source chain to drain the osmosis pool of the like foreign asset the osmo or the atoms or whatever that's in that pool and then walk away with all of them i want to actually explore this really quickly what would that like a data availability attack does that mean basically making the data unavailable and then if you're able to
do what you will with what is underneath and there's no way to prove it yeah exactly able to like come in and say oh um i have minted an infinite amount of of you know you know foo coin uh from my militia from the food chain that i took over uh no one can actually see the blocks of foocoid but we have the we are outputting ibc packets we created infinite amount of food coin and we just drain the uh uh the osmo pool okay it's interesting that connection between like data availability and that i'm still i i can tell i'm still getting because like you can't get slashed you don't know what's going on yeah
like you you've withheld all the evidence of who did the malicious thing who is stealing the coins all of this stuff it just gets black holed and you don't know where anything is but somebody shows up and walks away with all of the atoms that are in the pool i'd have to hmm more about this to understand what the actual what the practical vulnerabilities are and what could be sort of trivially mitigated by you know debt limits and or debt ceilings or what have you but but that the the it is it is this is one of those things where where it takes long enough to be prepared for challenges like this that we need to start now even though the actual attacks are likely to be a long way away you know so so so these these frameworks that can that can
you know mitigate these things you know we need to all keep pushing on that i want to explore with henry the idea of data availability in the context of a privacy chain privacy zone is it different is it actually like the idea that the data is available is that also something that's inevitably made private in a zone like yours or is the fact that it's available public but the underlying data private um i guess i would say two things so the first thing is um if you okay so if you imagine like you're you have a transparent blockchain um like zachary was saying there's these blocks
they're full of these transactions which are really you know state changes and those get sent around everybody applies those state changes that could um you know do whatever like say it's the the javascript on a gorek right it can touch all these different parts of the state but at the end sort of everybody can just sort of do those changes to this like one big global state that's being replicated by this system and in a a private or shielded chain you have a very different data model where instead of having this like one big global state your global state is shrunk to just being this like uh set of commitments to
these tiny little state fragments right so you have your big global state and then instead of having that be you know one big global public thing you shard it into these like million tiny fragments which with like each user or each contracts uh data inside them and those fragments are committed to unchain but they're not actually uh part of the public chain state so all the existing sort of shielded chains that have ever been made have had a structure where oh and also we include you know an encryption of this data onto the chain because that's like a convenient way for people to access it but the
separation between the actual like state the state transitions happening and what those states are is actually much more explicit in a shielded context than in a private all right then a transparent one is this when you talk about the shielded like what i start to think of is it because it's not a state what is it not a state model it's like the utxo model or is it does it not matter like even if it's even if it's not using because like every time you say shielded i i kind of go to the zcash version which is you know just a different data structure so i'm wondering if in your and i actually would need to explore this anyways but like in your
case like is it because of the way the privacy is actually being because of the way that blockchain is actually built that you don't have it or is it is it because it's private um it's it's mainly because it's private so if you just think of like a transparent utxo system like on on bitcoin right you can think of each utxo as being like a little fragment of the chain state and actually all of those fragments are you know public and you know so that's uh everybody can see them um yeah right when you're in uh like a more private model generally the the way to think about it is that instead of having each transaction have you know the state
change directly each transaction is going to have you know here's some way that i'm consuming a previous state that was committed to without revealing which one for privacy and then i'm also going to prepare a new state and then what my snark proof is doing is it's establishing privately that the transition from the old state to the new state is in accordance with the consensus rules of the chain so previously if you're in this transparent model the validators that are running the chain are actually able to check the consensus rules that's sort of the point of what they're doing um and the
sort of functional piece of what the snarks are doing in a shielded chain is it's allowing you to push the consensus rules out to the untrusted clients without having to include them into the kind of trusted part of the system got it cool um i wonder so it's i guess on sort of my last question here and by the way john i just want to check are you are you able to hear everybody i know deborah was having some issues in the previous panel yeah you can hear everybody okay perfect um do each of you imagine using something like celestia like is this like besides
what you're doing right now in the validator sets you have and the way that you're doing data available a bit availability locally like kind of as proposed is this something that like you would do or do you lose something by working by putting your data availability making your data availability on celestia i don't know if i'm saying that right john can i start by answering sure okay perfect i mean obviously representing celestia there wouldn't be a project running on top of last year but i can talk about the trade-offs okay uh so the benefit of using celestia as a data availability layer is twofold the first is you don't have to re-implement all the complex data availability sampling and logic and
uh that could be that could be like quite cumbersome uh for example e2 their roadmap they push data availability something all the way at the end this is their current roadmap you know like potentially three four years from now it's a non-trivial problem i thought the celestial team is among the best in the space there's a lot of very bright people there brighter than me uh who are working on implementing this so not having to re-implement this is good uh the second thing is you share security with all other native roll-ups on celestia and everyone else who's using celestia for data availability so rather than you having to essentially bootstrap your own security your own
validator set you can share security in a way that doesn't hurt you it's like purely additive security benefit and this also ties into this honest minority assumption that i was talking about the honest minority assumption is that you need depending on the how big your blocks are it could be a few dozen or it could be a few hundred nodes that perform these checks in order to be secure so this means you want to have the you want to have a network with a lot of nodes and ideally to benefit from the scaling properties that are sublinear but not constant you want to have as large blocks as possible right because the the scaling is the square root of the block size so this means you know let's say you have a block size of one well the square root of one is one so you get no scaling
whatsoever the block size is very large you get much more scaling proportionally so you want to be in a system where there's a huge number of nodes and blocks are as large as possible to get to get the maximum benefits and the way to do this is to have one or a few of these data layers as opposed to everyone building their own because everyone building their own would have more overhead potentially more more there would be more challenge to get that minimum required number of nodes for the honest minority assumption and so on so those are kind of the trade-offs and celestia has this sort of like that is it's built purely for this one task and therefore can make best use of these large blocks and doesn't have kind of the issues that other standard l1 that are trying to do a lot of things
that are more generalized platforms would have exactly by having a minimal state machine that just manages the validator set it's what we call a general purpose data availability layer which i guess i didn't really explain too much in my talk but the general purpose being it can be used by any application with a minimal overhead for instance if you wanted to use e2 as a data layer for your cosmosome you couldn't do it without running an ethereum full node and we all know that running an ethereum full node is pretty damn expensive with celestia we've minimized the state machine to basically as minimal as you can possibly get so that the overhead of using celestia for your zone for your roll out free application what have you is as minimal as possible and as i remember from an interview i did with your co-founder you end up
running a node in your like in your own kind of client software if you want to use celestia am i right like you would basically you'd be running your local node software and then also the celestia one so if it's light it doesn't add too much to your existing sorry that's great you you just run a celestial light node and then you connect it with an rpc to make sure all the blocks are valid and let's just submit your submitter roll up blocks to it okay and i don't i'm not working with celestia i'm not trying to sell it to the three zones here but i am curious i mean just since there are now kind of zone operator like news like zone project leads what like you already have validator sets a lot of you or are in the process of building these does it actually make any sense
for you to work with something like this or do you see this more for like upcoming zones i really like the metaphor for celestia where celestia is to like building virtual like blockchains as virtual machines to like right now like blockchains are like servers so you could i think of us as like the population of people who are like we have a rack we have our servers of the rack like why do we need aws and then celestia comes along and they have an sdk for building new blockchains on top of you know they'll have one or more software development gets a building on top of celestia for data availability that you
could adapt and use for your use case it says now suddenly building a blockchain instead of becoming this like multi-year efforts is like oh i pushed a button on my computer and now i have a blockchain but would you need to do it or is it sort of too late for any projects until the sun burns out so i assume i will be building blockchain but like something like i'll be running on a blockchain it'll be uploaded centralized you know okay sorry i should say to deena like as as a zone you're right because sucky yes so maybe i guess it's more like using lots of them but um dean what would you use something like this would it make sense or are you too far along in your process to need this or is there
still some benefit for you doing it even if you have a validator set right so so what's funny is the data data availability part of celestia you know today is kind of the first time i've been absorbing it i'll have to hear it you know several more times i've been paying attention to celestia you know as a or or or or don't tell him a celestia clone no no um uh you know that technology as a backbone for future regards so most of the igor stack is above the consensus layer we use cosmos tendermint it's great it's wonderful it's battle tested and and it's completely insulated from the execution you know in the same way that that that that you know react programs really
don't care which javascript engine they're running they're just fine um and we need key things that so that that that tendermint consensus brings at well but as does hot stuff as does as well celestia one of the ways we intend to do scaling you know we start with you know tendermint's fast it's fine it's great it can handle plenty of plenty of transaction volume but it fundamentally can't handle adding more machines add capacity right that's something that you know for any given blockchain in order to scale how does adding more machines increase capacity if it can't then you can't scale and for us because we have asynchronous coupling we can stand up parallel sets of validators that are all asynchronously messaging between them
it's a little like sharding but it's not the you know it's not as strange as the stuff that he's planning there it's just i've got multiple servers and i'm running different different uh contracts on those different servers and they all communicate uniformly with different lanes well celestia the backbone of it gives a much better potential coordination of all those you know sub agoric zones that we're using to spread out and scale the work transactions and so you know my view of the the world a few years from now is that yep we're working that so so i absolutely hugely interested in the in the um uh in in in in what's going on in celestia it had you know having our data of current blocks go there in you know now or in
the near term certainly not before the run protocol launches probably not before the permissionless execution but our design is such that migration to new technology platforms is is straightforward and and it's one of the two you know top two technologies that i'm interested in absorbing zero knowledge uh um uh uh infrastructure on the other side being being the complementary one and these are these are sort of some of the two most novel directions that are that are not in the engineering that that my team is already expert at and and so i'm very excited about that cool okay now henry so this is now a privacy like going back to what we had talked about before like is it impossible to use something like celestia or is it
possible like yeah so i guess for us i'm not sure that that using celestia it would provide as much benefit as it might for other people because i we should say general uh data availability layer we don't we don't need to make it oh sure i mean i i did it too i'm i guess i'm just using like celestia as kind of a stand-in for like i guess that's actually kind of a credit to the um the thing that you're building but um uh for us the amount of public chain state that we're going to end up with
is much much much less than uh you would have on a sort of more conventional chain because most of our activity is going to be done privately and i think that trying to do data availability in a private way is like certainly not impossible but it's just a different set of design constraints and i don't know exactly what that would look like it might be that you know you have something like the design of celestia but you have this additional modeling of like who gets to see what the data is or maybe you're doing data availability but only
for like encrypted blobs um what does that look like um i don't know i think it's it's a very interesting thing to think about though um i guess and this is like maybe like a very half-baked analogy or like quarterbacked or even less because i just thought of it while um uh listening to the panel but um there's this analogy in defy of like okay so you have this kind of like maximally adversarial environment for people who are building smart contracts and there's like every week there's like a new
like big implosion or something and the effect of that is that although this is like you know it's much harder and for an individual project much kind of riskier there's this kind of like forcing function that like everything that is left you know has to be much more um robust and resilient and i wonder whether the constraint of trying to build a shielded chain actually makes some of that has a similar kind of effect on the design for data access and data availability because for instance right if you have a
shielded chain you can't just go and like ask you know somebody who's running a full node can you please tell me what my account balance is that's supposed to be private and so every user has to be sort of doing some amount of their own client state and one of the big challenges is like you know how do you actually propagate data to the users so they can like you know understand what parts of the chain state they have visibility into et cetera um and and i'm i'm kind of now wondering whether there's some kind of like long-term interplay there yeah where rather than just thinking about this context of oh well we assume that
we have these like full nodes right it's kind of this like subsidy i guess it's part of this this analogy where like if you think of like trad phi there's kind of this like trust subsidy where it's like oh well we don't actually need our system to be secure because like if someone does a bad thing we can just like phone them up and yell at them right and then when that goes away now you actually have to build something that's much more robust similarly i think trying to build fully private systems where you don't just have the ability to kind of have these big full node archivers that are subsidizing everybody else's data access you have to have every
sort of end to end you know client be able to understand what parts of this shielded data relate to me uh i think there's some interesting interplay there yeah sounds like a whole new field of study by the way i think we are and susanna maybe you can say something in the chat i think we're getting close to time but i actually wanted to chat a little bit more about just general privacy scaling is do we have do we have a little bit of more time does everyone on the panel have like five minutes more 10 minutes more maybe i know we were supposed to end now
if you have to drop if you have to jump no stress but um i did kind of want to bring it to a more kind of general topic which was that of just like general private blockchain scaling when we talk about you know blockchain scaling we have a lot of techniques that are being used and i think this idea of a data availability layer is one just the general idea of cosmos is one but i wanted to kind of survey all like all of you how you think you are approaching scaling blockchains and if privacy can play into that and exactly how and i know that this is we're going to take a little bit of a pivot away this isn't about data availability anymore this is actually a little bit more broad so i actually wanted to maybe start with
dean and you and agorik like you mentioned you wanted to do some zk stuff but is it in the purpose of making a faster you know blockchain isn't more just to add privacy like are you thinking about zk for scaling are you thinking about zk for privacy and how do you see yourselves as scaling blockchain so the first the first you know three scaling steps are are you know we're starting with something reasonably fast um we can port to enhancements of it uh reasonably straightforwardly but it's this thing i mentioned for for that potentially celestia having an impact on is is i can stand up to gork one two three four and five and the and and the same smart contract components asynchronously
communicate with other smart contracts it's completely transparent and now we've got horizontal scaling like we're already used to in more traditional settings interesting even within just your system not with other you're not thinking of scaling because there's other zones doing that's kind of good things always killing of the platform so it can handle more and more transaction volume and more and more use cases with the same model um and then get and then that same technology leads to privacy where now you know a cons a consortium zone or a private chain it's running the same model it's interoperating with contracts that are running on the public chain and so forth that's not ideal privacy we want better than that but it gets you some level of you know it means you can
have a consortium chain for freight that's got private bill of lading um for transactions between shipping companies and now you get access to that 900 billion dollar market okay that'd be useful right but but um but it's not it's not the level of privacy that we really think about here with technology now the two uses for zero knowledge for me um the one that's most interesting is is the um uh where we would be able to execute javascript transactions you know the javascript vm execution model which is extremely well specified as it turns out on a single node and produce a snark proof there or you know proof of some flavor that it executed correctly there's people
working on doing that for evm you know there was there was a simple uh c execution model where they did that and you know there are reasons why doing that uh for the javascript bbm is actually more plausible than either of those because just got a a more partitioned memory model and so i'm very interested in that happening that's something that you know a year and a half from now i really want to see you know as available and that would give the simple scaling of the more machines you have the more transactions you can process the more independent contracts you can run because you no longer need 100 machines all looking over each other's shoulder to execute each transaction so i'm really excited about that as a as a zero knowledge for scaling and then you know we're talking you know about how to be able to
integrate um you know i'd love to see an ibc that had the recursive snarks so that you can do uh proofs of client uh you know like client verification in a way that you would be able to do inside of a browser and be able to have a chain all the way back um you know history of a chain or whatever that's stuff that's you know a little bit above my uh my crypto head um so i'm really looking forward to other people producing that and that's integrating it in okay zucky i want to throw to you um what is your like i don't i don't know if i don't know if you see still amelia as a scaling solution so much but like how are you yeah i didn't think so but like are you are you looking into scaling or like you've been working on i
assume other projects in that direction what is exciting for you in terms of scaling are there privacy or i think the specific question about scaling and privacy that interests me is we do not know what form of privacy has product market fit so it is extremely hard to know what form of scaling to employ um you know like is it you know is it you know this like uh uh there's there's a lot of different possible ways of scaling different privacy solutions um that have that have existed um and rydo like i think the only the only like uh uh uh team that has
really like really gone down the rabbit hole of like trying to scale a private seat solution is the is the mobile coin team um but it is very much around this assumption that we want private payments um and we have no idea if private payments have product market fit or not um okay i wanna then go so like because like if if what what what my guess is what has product market fit is private trading and private yield uh-huh and not private payments that's my guess um and and but we're gonna find out again um and like the scalability architectures around private payments and private yield if you wanted to scale something like what if you want to add privacy to
civilian i think our options at this point are pretty much all in the enclave domain and then like scaling via enclaves is is another interesting domain and like some like actually mobile coin has done a bunch of really good work there henry i wanted to ask you a bit about this yeah well do you agree with that that private payments is not a pro there's no product marketplace so so here here's like a another use case for privacy it's like preventing zaki from like front running my panel answer um so maybe i'll just kind of like elaborate on that a little bit more like thinking about i actually have
you know i've thought about this a bit because you know it's pretty relevant to our choice of like what we decided to build um thinking about private payments um it's it's interesting i feel like payments are often held up as this kind of like be-all end-all of like blockchains and like especially among kind of like crypto skeptics so here we're like oh can you like use this for payments and like if not then like this clearly has no value whatsoever right um and the thing that's interesting to think about with payments is okay you have this blockchain it's recording some economic transactions and you have these transactions that are on the blockchain
like what actually is the connection between the transaction that's on the chain and the actual like economic transaction and the thing that's interesting about payments is that the data that's recorded on chain is only ever one side of this like actually sort of economically meaningful transaction people don't just like send payments just like because or like for fun or whatever they're sending a payment as one half of this larger economic transaction and so if you want to use a blockchain for doing payments you have this super
super hard adoption problem where you have to have this whole sort of in addition to building and scaling your technology on the computer you have to build and scale this like social infrastructure for you know people who are interested in using this thing for payments and when you do that you run up against like extremely strong network effects um and what's interesting effects like like it's hard are you trying to create a network effect or you're when you say run up against i'm picturing it's like you don't have networks like like the reason that people like to like make payments with like
fiat dollars using like credit cards or whatever is because like it just you know it it's a very like universal thing you don't really have to worry about it yeah dean i think wanted to jump in i this is relevant oh you're muted you have to unmute there we go okay i've been muting people who have little background noises sometimes yeah i have a view and i forgot to push um so so uh and this is i'll start with a statement and then i have a question for to follow up with what henry just said which is um one of the things that would be that is valuable around that
simply having shielded payments um and asset holding can give us a way into some privacy that i think that is that is somewhere between payments and yield where if i had a pool of of of shielded payments and i want to go and participate in a smart contract on a gorek or buy an nft or something like that you know i take it to an unshielded address but not one that's associated to me it's a newly minted unshielded address now suddenly you know a thousand dollars and you know a thousand run or a thousand zach or whatever it is appears transfer over go buy something and now some pseudonymous identity owns this nft paid for by you know by by someone that we have no idea because they're effectively protected by
the insulating layer of the shielded assets and and payment pool that's what that means is is is and that means that in a much larger defy ecosystem you know anyone who has an account in zcash bridged over whoops we all went away um uh or um well yeah i just got the thank you for attending the event i just finished what you're saying and then i think we might on penumbra or in zcash that can bring assets over can take advantage of privacy for yield or for d5 simply by having that first step of payments and so i'm curious whether you're set up for that on penumbra because that'd be exciting to be able to interoperate oh i think we're losing the panel so that's an unfortunate right yeah we're
all being like gently shown the door by this server but yeah so it's interesting i actually um kind of disagree with with that but we'll save it for a future panel i guess we'll have to we'll have to come back and do this again when yeah when we're not getting booted up quite often now we learn what happens if you go too long over anyway thanks to everyone for coming to the event and thank you all for being on the panel we'll have to continue we'll put a pin in these and we'll bring them up for the next one uh yeah just a quick note if anyone's still listening there is a feedback form we're also going to email that out to you and i apparently you can also uh answer
this little form to help us know how to do this better next time cool thank you for an awesome panel as usual bye yes thanks see you later