KZG Ceremony Breakout #8

KZG Ceremony Breakout · 15 Sept 2022 · 1:01:17

KZG Ceremony Breakout #8, held on 15 September 2022. Researchers and developers working on the KZG ceremony, the trusted setup that EIP-4844 relies on, meet every two weeks on its progress. This call covers the conclusion of the Secbit audit and its fixes, progress on the sequencer and the interface, preparation for the Sigma Prime audit, the timeline and Devcon preparation.

Topics

From KZG Ceremony Breakout, hosted by Ethereum Foundation.

Transcript

and i guess we can just get started everyone's here and we're already recording um the agendas in the chat it's very rough so we'll just kind of jump around into whatever needs to be talked about uh first i'll say apologies i've been a little preoccupied these last two weeks um but now that the merge is done most of the projects that have occupied my attention are done so i'll be back full force on this um so yeah let's uh do quick round robin and i know i've been at least like keeping up with the chat so i have an idea of what people are working on general concepts but it would be good to

get a summary of the current state of things from everyone uh anybody want to start maybe the sequencer slash coordinator whatever we're calling it now uh what's the latest on that yes so we're calling it sequencer we we basically combined the code that kev produced and [Music] reproduced in a repo that now lives under slash ethereum kcg ceremony dash sequencer um and we're basically working on that one and finishing it up there's not a whole lot left to do

all the major parts are there um i guess the the main thing to be done is a couple of open um open design discussions or um questions or suggestions around the design i posted some of them in the issue for this call okay great yeah um carl do you want to get into the design issues or should we just do quick updates from everybody first you have a preference i'm easy either way okay yeah why don't we uh uh

you could just go right into that discussion and make sure to leave time for the other bits but yeah go ahead i'm cool if you want to start um so one of the things that uh that struck me and i also um talked this through with kev is that right now the uh the sequencer uses an rsa public private key pair for signing the contributions um i would prefer if the coordinator doesn't hold any private key material and operates trustlessly and there are a couple of ways we can do we can work towards that um one of them is for the ethereum address authentication we can do a double

signature approach that doesn't involve a coordinated key for github there are alternative approaches that involve challenge response and having the user post some item under their account somewhere and like it's common to like for example we could open an issue on the kcg ceremony sequencer repo and have everyone post a message on this issue um but this might be a little bit like too bad ux the github option is already like the easy way in yeah i'd worry a little bit about the that getting just a chaotic thing and it's very centralized then via that one particular thing i think maybe github gifts or

better ways of doing it if we are trying to post things for users yeah despite they're not having a centralized reference for all of that uh also we have github api is uh kind of bad with its rate limits so if you are not using per authenticated user requests you only get 5000 requests per hour so that may not be enough on launch day uh if we are doing what we are doing right now which is every user authenticates with oh if we get 5000 requests per user per hour so that's going to be more than enough that should do it yes another idea i have is that we're basically using these rsa signatures and

jwt as a signing message signing method so that the coordinator can produce signed messages stating that hey i saw this github all out and i attest to it being an authentic contribution um signed using a jwt um the reason uh um is kev on the call yes so yeah i can quickly recap but kev explained that he picked the particular rsa because it was the most widely supported uh but then i was thinking maybe we can just have the coordinator have an ethereum private key and just use an e-sign message to sign these messages because that might be a more ethereum

native way of signing messages yeah i mean given that we don't have to like if you're implementing a participant you don't have to verify this yourself then you can always do it later or like that that that should be fine i i like this approach um i don't care if you've got stuff to add there uh yeah i think i spoke with remco um yeah i don't mind this either uh because uh the only reason i chose jw2 is because of the canonical format then uh it's just why the available libraries but if we're assuming ethereum then you sign should probably be a prerequisite [Music]

yeah okay yeah plus somehow something about combining rsa and pairing typography hurts me yeah it was hurting me as well while i was [Laughter] oh yeah cool um okay that's that was the first point i had uh uh jelly asked if this is the final official version um uh i'm assuming they're asking if there's just any other

design iterations they'll have to take into account for specifically for the the signing of messages here from the the sequencer that's a good question uh yeah the sign method yeah uh did you say sign in or sign in uh sign in okay sorry uh i mean i don't think the sign in is changing that's the same so yes final official tm uh what's been in the repo for quite a while i guess um the the the change here is just well basically adding uh we can verify stuff from the sequencer

um so that we can sort of you can point to things if the sequencer quote unquote lies okay thank you so it's it's it's more for like safety after the fact and for like arguing about what what what happened here um if if you if you think the sequencer cheated you or is trying to censor you in certain ways you can try catch that or uh they're trying to trick you by giving you bad points that kind of thing um we'll then have proof that this happened okay got you thank you cool um yeah that was actually my my main discussion point on like um how can we make it such that the transcript that

results from this can be trustlessly verified i mean the actual contributions and everything that's already guaranteed by the ceremony but these are sort of extra things on top so you can verify who made the contributions by linking it to other identities um i'm not sure like what is the process for finalization here because i feel like we're breaking up a little bit we're breaking up a little bit the spec that was already in a more or less final form um do we want to revisit more things or is it just a couple of last minute changes or like how how do we feel about

i used a lot so i think the current queuing implementation diverged uh quite significantly from the original spec there is there is no queueing mechanism we don't care about the ordering the the mechanism that is implemented right now is is much simpler um yeah so um you tried to up well you try to merge that into the the specs you open the pr for that number 22 that you closed uh so there should be another so there are two pr's one is one just changes the structure of specs so it's a bit easier to follow um that one doesn't have any material changes and then there is another

another pr that i uh posted on telegram which is in my personal repo because i don't have access to um to the specs repo and i wanted to separate it from the structure and what it does like with this other pr let me find the link does is um it describes the queueing strategy so instead of sorry again is this the lobby branch give me one second yeah

so uh okay so from lobby into your local master and your master is the one with uh the the other changes that you have open in pr21 on the main specs right yeah correct okay okay um i see i see so can i reopen then your branch your pr22 because then that should just be on top of this other one your your other changes you're trying to make restructuring yeah it it it works it's just it was confusing to review because the pr22

depends on pr21 yeah and that's why i close 22 so that you can okay sure uh that sounds good um the the only reason i haven't merged uh 22 is i was a little bit confused as like what things get broken out into the api spec like to me the transcript schema for example is not really a part of the api uh i don't really care where it goes but like um wait it should just be renamed schemas yeah uh yeah sure schemas or something like i just sort of what's api and what's not like

there's under the sequencer the sequencer api dot md um it just feels like this got a little bit muddied in all these changes yeah so the the only thing i did was i took the original files um the i haven't really changed their names i i followed uh whatever they had in the past and i uh moved them to a separate directories to categorize by function so we have like four main themes here one is the contribution format the other one is con the the cryptographic stuff and then we have participant and sequencer yeah and then i haven't really renamed

any of the original files i just rearranged them so that they go um to the folder that describes that concept okay um yeah i guess i'm just trying to point out that i'm a little like i just found a little confusing as to what's supposed to be where in terms of apis or not but uh look i'm not gonna i'm i'm i'm not gonna bike shed those i'm pretty happy enough with this the the the this new structure yeah the the i guess the point here is that i was also confused so i started rearranging it so that it makes more sense but also i didn't want to rewrite everything and i didn't want to you know yeah yeah i think in the name of good enough and

moving forward uh let's let's start there and if i want to change things in the future i can open another pr to do that sounds good awesome thank you okay so you mentioned there were changes in the way the queue works um could you like yeah and your lobby pr or your lobby branch so uh kevin i discussed and the current idea is that you have a capped lobby so let's say you could you can accept up to 10 000 people in the lobby and those 10 000 people can ping sequencer say every 10 seconds um can be of course configured and then whenever a new spot opens up whoever pings first

they get to contribute the one important piece is we don't want people to cheat so we don't want them to ping them to ping sequencer too often because this way they could starve other users so what we do is a we do rate limiting and we expect them to ping um you know 10 seconds plus or minus a second or two because of like random network issues and stuff like that and then the second thing is if they don't ping uh within specified time window we remove them from the lobby uh to make space for others and the only reason why the lobby is capped is to have some sort of memory constraints so that it doesn't grow indefinitely

okay um so what was that that all sounds pretty reasonable to me um what is the um ping interval before you get kicked out of the lobby that you had in mind uh so there is nothing documented right now uh it is a specified interval uh what we have in the repo is 30 seconds plus or minus like two seconds of tolerance um one thing i was thinking about like a good number could be around the average time to contribute a file um or like the expected time to contribute a file so that you know people don't think too often

and then if we have full lobby so my my only concern here is that you have to re-log in then if you don't meet these timing requirements um which i guess um like uh so so my fear is it becomes annoying to use if you uh like lock your laptop or something or whatever now you you open up again and it's been more than whatever three-minute contribution time-out kind of thing and now you're out of the lobby and you got to relog in so i'm trying to think if we can reduce the timing on that or we'll reduce the the

requirements on that um so one option would just be to kick the oldest people out of the lobby whenever we like the furthest ping in the past so the lobby is always of size 10 000. um or something like that i think i think it makes sense to clean the lobby a bit sooner because then people can see um how many people are trying to get a spot right now so you know if you want to contribute but you don't want your laptop to be open for three days uh you can just you know make sure that there is a reasonable number of people in the in the lobby

okay uh so that's one thing and then the other thing is in theory um i don't know how we want to do it in the front end from the user experience point of view but in theory you can log in but not join the lobby and not being the sequencer so like you you have a valid session and that session could be separate from oh oh if that's possible then the completely changes my opinion on this then then i think that's that's that's fine we don't we don't do that right now i think right for now uh to keep things simple lobby and the sign-in mechanism um yeah yeah so that was my understanding but it's so this this basically means removing

the queue all together yeah yeah there is no queue right now what are the things the queue was providing that we wanted that we are now missing out on like one thing the queue did was uh line people up so that people can really start back to back like it would let's say you have a queue of 10 people one is currently computing then at the moment this one is done like the the the people in the queue would be on a much higher polling interval or they would be on a websocket or whatever um is necessary to like reach out to them quickly and they can be started immediately after um the previous results are in and if they don't respond and are offline they are on much um faster timeouts so

they immediately get um get kicked and the next one is called on basically the it doesn't change uh you can you can have like a high frequency um pinging for for this lobby mechanism and it's gonna be the same kind of throughput and latency yeah but also queue accumulates a better ux uh in that if i'm in a queue i know how long i'm going to spend in the queue so so when i when i join and i'm 10 in the queue and the average contribution time is 15 seconds i know that i'm going to be in the queue for 150 seconds stops uh so i have some predictability right but

like the queue breaks down from that perspective once it gets very long and that's that's where the issues start coming in yeah yeah so so i think we're not missing anything in the queue versus lobby land but i'm just a little bit worried about the sort of login flow here if there's no like if you're gonna have to relog in if you go offline for whatever three minutes um if we can push that up to i don't know three hours then i think we're starting to do okay again um that should be that should be a very simple change i think we can have a separate timer for your um let's call it a session and separate time for uh yeah one caveat there is that well actually do we want the actual

contribution process to be non-interactive is that a hard requirement what do you mean by that by um i'm i go to the website i log in i leave the tab open make sure my laptop doesn't go to sleep or get disconnected and i go to bed and i wake up and i contributed i think that's yeah that's the deal that seems desirable yeah but it does have some requirements about when we collect entropy if we want keyboard meshing as an entropy source yeah it's gonna unless i understood we were including that and in particular if we want to do the double signing mechanism um then we actually need to assign the tau g2 point um or at least a fraction like a factor

of the tau g2 point uh we can do that wait wait wait it's a little bit more the double signing i don't think we can do i think we can actually but it involves a little bit more cryptographic trickery uh i'd be nervous of that just from a then like implementation complexity standpoint um i mean one way you can do it is to just have the uh tower g2 point have the towel basically in memory and ready to go the moment you log in but then it stays in memory for a long while which is like not super desirable yeah another thing we can do is have oh oh sorry this is a pub key oh yeah yeah

oh no then it's fine then i'm final thought again you're fine with having the um well no not the pop key the actual towel yeah needs to be in memory for the duration that you're waiting because you don't you don't know like the previous contribution you need to add it to yet so so my my argument here oh okay okay so i was gonna arg that the the double signing means we need them to sign this ahead of time yeah yeah yeah yeah you need to do all the interactive stuff up front yeah like collect entropy and eat sign we could sample additional entropy at the last moment but we can't do that actually not with this not not with signing you

can but then you need to um then then these then the bls signature changes a little bit in that um you you basically have a towel one and a tau two yeah where the towel one is generated on login and you can bls sign using your towel too and then you uh sorry using the towel one you know and then when you actually contribute you um non-interactively collect additional entropy at the moment and your final contribution will be tau one times tau two yeah and then you just do um you just do a proof that you know a factor of tau one times tau two yeah uh i i need to like write out the exact name

it shouldn't be too hard no no but yeah it's it's a little bit yeah but like it's not like the q anything helps it this is just the fundamental thing of trying to have this double sign-in mechanism yeah um all right so we've spent like 20 ish minutes on this um okay and i don't have we gotten anywhere concrete or is it just more discussion um which is fine i've just i mean i think we've discussed a few things in these these these 20 minutes okay yeah how much more time do we have we have an hour right yeah yeah an hour much more to cover to be honest um like uh i guess after this we can we can talk about next steps and audits um yeah

the uh like this morning the scroll team reached out and said they wanted to contribute and uh kevin were also there and they they offered to audit or what was that i asked them if they i asked them if like i think we're kind of good on engineering but we definitely need auditors and they're a very capable team so like i asked them if they maybe wanted to audit and they seemed open to it okay the implementation yeah oh cool very nice um and speaking uh speaking with uh the the es crypto team they were also talking about uh at the very least doing a sanity check so rough audit i guess of

this as well so excellent like not of the just of the crypto side of things not of the full implementation but enough that we should be able to sanity check everything that i'd be comfortable still going live without the quad full audit and this that wouldn't uh the crypto stuff includes what's already been audited is that correct yes but that doesn't include sort of like entropy generation and and like maybe doing some other silly things here or there um and then uh yeah so i guess re reorder to what was done plus some of the periphery things okay and did they was it just a general offer did they have a specific timeline or did is very very initial

very very initial very initial okay good to know yeah but um i think ideally we we get that going as early as next week okay which thing um like a auditing of the um sequencer codebase and sorry by scroll or the ef crypto team both either is fine um depends on like how much uh time everyone wants to uh sync in it but i i think the other the other thing with auditing is that like the common process is code freeze and then throw it over the fence and have them look at it for two weeks and then you get a report back

but that's not necessarily how audits need to work and actually a lot of auditors prefer to be along for the ride and like criticize designs before you implement them uh it's a little bit more involved but it is also faster ultimately pipeline so carl have you have you gotten them in the discord channel do you have contacts for them uh i'll grow so the scroll team no that's that's the thing i wasn't involved for that was oh oh right uh and i guess the yes uh crypto team we can i i know some stuff i can reach out but um i don't know uh for the person that just reached out to you this morning

yeah he said he's going to open up a chat uh to into to basically start doing start the introduction okay cool yeah ideally if you can have them just work in the public channel that's uh i feel from my perspective yeah that's what i tell them awesome cool uh yeah we can also some more um ci stuff we can do some cd stuff as well um we can spin up another fly i o and have a server instance a staging environment up and running at all times so people do front-end development um i

um i've had to discuss discussions with them also in terms of uh like the actual final deployment and whatever beefy machines we need so that's that should all be lined up um it's basically not the point of just tell them exactly what we want in slash need and go from there so that's also looking good for the final deployment we can get that a bit early so that we can uh yeah do you want to use that for staging we're basically ready for staging right now the the current pipeline builds up into a docker container it just doesn't get the point yet so we can do that absolutely um i guess it's just a question of like how much like this is overkill i'm happy to run it for an extra month um so we'd be really happy if that was up and

running so um so it'd be great okay um yeah do we need like the production grade performance yet um it will be useful for benchmarking but other than that for testing i don't think we need to have a super expensive server but then again like a month of whatever it's not going to cost yeah exactly um so i mean it depends already you are to sort of already deploy it the dev devops team is kind of burnt out from the whole merge thing so i'm probably going to need at least until the weekend before i can get them to be on my side okay so maybe next week we can get the the full machine if we wanted but they had a good reset yeah but if if if the thing is just to get an

endpoint up and testing it's probably better if we do that on our own separately um okay we can we can spin that up for sure yeah yeah should we remove the fly dot io stuff it was sort of really simple to push uh it's a deployment just like two like one command i liked it by the day i looked into it i can i can add that to the uh to the ci pipeline easily i probably just need some access token and the github secrets yeah yeah okay if everyone's happy with this then let's run a thought yep cool um it's a bit backwards but could we do introductions because there's a lot of new faces and i just want to make sure everybody knows who's who and where they're coming from

um i guess we can start with the faces uh to the right of carl okay um i'm philip i'm also working with franco together it's broadcast usually but for the last two weeks i've been mostly working on the participant and i mean at the beginning start like just using vanilla arc um artworks and then at this point i think i've implemented like three different versions with one frame cosmo optimized version of arc and one pst and one vanilla art so this would be also my next topic like how do we participate in that part and also making use of what kef did there and the cryptography that's been audited

um but yeah that's a brief intro yep uh ramko also with world point um at sbc i asked dan grad what i can do to make sure proto downgrading gets in asap and he told me to build a uh to build a trusted service ceremony so here i am okay great can i see one more i'm dc builder um i'm also with both right now i'm looking to like different places where i can contribute so i really care about the kcg very well so i think that the best point where i could contribute is probably the front end for it and uh maybe like look over at the well the actual server or the

yeah also from the worldpoint team not in this call is miguel who um probably also helped out with the front-end yeah and we do have uh some existing people working on the front end subreddit is that nicholas or am i misremembering yes yes yes yes we are working the front end with the pse team um right now i i get the last this last pull request has the latest specifications so we are gonna try to to do like a mock server so when do you guys think you're gonna have the sequencer code ready to try and test it

today or tomorrow oh wow that that uh probably not like entirely complete yet but we'll have some sort of an api endpoint up and running okay okay that will that will be great so yeah we we will coordinate with jeff to to see how we go i i have a question well two questions the first one is that uh according to to the specs it is say that the client needs to input some entropy right and i was talking with philip about if we could use this entropy i don't know i

a string or whatever the the client sends i use it and use that like a seed right um we were thinking philip told me that he was thinking on doing like the string but also something random but they i don't know if the client will be able to replicate it later and or maybe i am just confusing how how that works uh that's the question number one and question number two uh if i am not wrong we are doing like four computations right so we will need to to input four entropies right and the api will work so i will just call one ap

request to contribute or i will have to call four times so on the api side it's once with four protocol sub-ceremonies so all the files have like four sub-components right there will be abstracted by the crypto libraries yeah in terms of entropy contribution um we can just expand as long as there's sufficient entropy in in a single contribution that should cryptographically be fine there's no no reason to like have four separate um especially like four separate smash the keyboard things that that doesn't seem that doesn't make much sense for me we do plan to have to mess up

contributions right not virtual towers they didn't need to have different towels but yeah that will like you can just hash chain or do whatever you need to do to make that happen right great i i guess you could just reuse the user generated entropy and just use different cryptographically generated entropy instead of sort of introducing a pseudo-random generator yeah standard key derivation stuff yeah exactly if if you really want you can mix in some additional some like one like just the number of the um the the sub ceremony or something like

that if you need to make sure that doesn't conflict but yeah i ideally something additional randomness anyway so it shouldn't matter all right all right all right all right uh maybe maybe jeff i think you were putting on your camera if you wanted to i don't know if you've intro to the rest of the people uh feel free if you want to hi yeah i'm jeff from the oh you muted yourself there you go um yeah um okay yeah i'm jeff from ef's privacy and scaling um team

so um uh we're we're we're focusing on the ui aspects of this um uh so yeah great to work with all you you guys awesome uh greg yeah hi i'm greg um i also work for for world coin uh i'm based out of poland and i was i joined last week i was working on the sequencer part of things so making sure that each gets a contribution slot and that we have high throughput cool uh martin is that how you pronounce your name yes that is exactly how we pronounce it

uh right so i'm martina i work with raid apps which currently is working with wired coin and also trying to push the back end across as soon as possible awesome um i guess we could just go all around uh this is the first call with everybody so i'm on the protocol support team which is typically does network upgrades this is more of like a focus project that i've taken on um so i would say co-leading with carl carl does a lot of the technical stuff and i'm doing more of the coordination type activities um [Music] yeah that's that's about it for me at the ef

uh who wants to go next maybe kev uh yeah i am mostly software development yeah currently going over the client this current moment uh just to make make it work with the new api awesome and you are typically with well you have a number of affiliations you can pick one uh yeah i i work at aztec and the pretty ef i usually do vocal try um stuff

and this is your side project um i don't know if i'd call it i'm just being facetious you've got a lot going on takamichi yeah i'm takamichi and i am also from psc team in the epf and i i'm mostly working with jeff nico and shelley and building uh from then for the the ceremony all right awesome so we've got a lot of front end people

uh which is great but yeah i have a feeling there might be not enough work to go around um but uh i guess we'll get there when we get there or we'll find out quickly where people can be used and where uh you know where people can be productive uh charlie hello i'm charlie i'm also from pse team i'm a designer so i try to make the interface beautiful awesome yeah and you've been doing great work uh yeah i will probably be working with you

i know i keep saying this but this time i'm serious i'll be helping you with it with the copy uh hopefully to make this uh more than just a you know a dry explanation of what trusted setups are give it a little bit of spice and some magic yeah yeah so that'll be fun yeah thank you and then we have ahmed um i think last time you said you were just here observing but if you want to give an intro feel free i'm ahmed i'm from [Music] netherlands cryptographic research team i'm a cryptographer so and i keep observing the improvement of your construction and

very happy today thank you very much awesome thank you and the last name i see is j.a hello guys i am into the fellowship protocol apprenticeship is apply i am also the contributor for the eip bot into the eip editor editors group i contribute via ecs i'm very interested in the in all this development for the what we are actually you guys are doing

i mean i'm i'm observing i but i'm really interested in this uh this part of the ecosystem and we'll see how it goes with the application for the for the fellowship i was into the core one not funded and i work into the apis comparison between clients and basically a a brief comparison between apis between get and nevermind um well thank you and just here to learn and contribute awesome yeah we're very glad to have you

and ahmet uh along for the ride so um yeah thanks everybody for doing intros hopefully uh this group doesn't grow too much larger otherwise it'll get pretty difficult to keep track of everybody but um this is great there's a ton of uh people that we can put on different parts of this project and this is important because the goal is to have an mvp by devcons but that's in four weeks ish four weeks okay yeah merge was today the 15th uh def con is a little bit before it so yeah let's say three weeks um

and the goal is to have an mvp we have a slot on the main stage um and so you know this doesn't have to be the full presentation or the the full interface all we need is a simple uh gated access we enter a code what's up part of the discussion we've been having is to drop the whole gated access thing just go all out yeah coordinator is good sorry sequence will be good to go okay so then the big thing would be making sure we're comfortable with the interface and it's you know works well enough exactly we don't need open any awards for second bill uh but we do we do need it stable enough

that we're not gonna hurt people and most of like we can't have the the coordinator sorry sequencer uh rejecting people or the worst would be if it accepts an incorrect um contribution right yes that would be bad yeah yeah uh so like slightly slightly buggy or like you fail to log in or whatever if that happens once in a while that's okay as long as that's not the the predominant experience um but yeah that's okay awesome um oh so a while ago when when it was not looking like this was going to be shippable by devpen the idea was to do a

gated version where there was like a login screen where you'd do this and you'd get a specific token which would only be valid for one contribution and then you could do it and we'd hand this out to some people in the space to sort of test it out and have a close closed beta kind of thing before you open it up to everyone um yeah i was thinking of still doing something like that but the week before death yeah yeah that's fine yeah okay that the idea here be that we wouldn't necessarily keep this all super secret but it's not available at um address that we publicize it's just people we trust anyway to to to not do this um particularly then because we can give the low contribution numbers to

um the big names in the space such that if you go over the contribution file and just open it it's going to list the names you'd expect first um just easier for sanity checking or yeah press generator got it okay uh so the big thing next steps was defcon it sounds like that's going to be manageable and then following that would be the sigma prime audit which is sort of scheduled a couple months ago and there we intend to have them review sequencer i guess that's what we're calling it now um and i guess that would fall after defcon

we had slated it to start during death time but that's not gonna work so i guess it'd be after defcon when in fact we're already receiving contributions i guess this is okay um given we would also be receiving some sort of review from scroll and uh also from the crypto team so feels like uh four four reviews is probably sufficient for this project um and if some bugs make it through that then i think we've got bigger problems i mean in theory you only need to audit the transcript file at the end yeah yeah the the failure cases here are

either so terrible everything collapses and it will be obvious um or we should be able to recover from them without too much uh technical and more importantly political um damage right exactly yeah so i think um given the boost of having this live at devcon it's it's worth worth targeting that that's actually a good point um we should make sure we emphasize uh reliability and stability in the audit and not hyper focus on the cryptography aspects of it because that that's auditable after the fact yeah that point we just want to make sure people are not going to ddos or deface the um okay yeah good point

um is the double sign-in gonna be for deathcorn as well ramco i can sketch something out um i i consider it like a very nice to have and i'll uh i'll try and get it in um but we can launch without it well launching a thought means that the the people we have with the low contributions of putting people in the space means they won't have it and if anything they're the most important people to have it so fair enough yeah okay i i think let's have a discussion after this call um yes hash out exactly what it would look like see if it's something we can like implement now um yeah put in the specs today kind of thing um and if not then can it

okay uh a couple other things came to mind so the first audit is complete and they've written up a file kev i believe you reviewed it is there anything else outstanding from that engagement that we need to take care of no i think everything's been taken care of um and they yeah they did a good ride up to say what they looked for what they couldn't find as well so yeah um they didn't train anything uh sort of significant um so yeah as i said i don't know if that's a good or bad thing [Music] but uh yeah

yeah okay great and um is there analysis available somewhere um there are still some changes we would like to do in the crypto end or some performance further performance optimizations that can be done um would be good to look at what they are looking for yeah the report link i can paste it in the public channel awesome great um i think that my video let me double check the agenda i think that's everything um [Music] is it uh i guess one thing that comes to

mind do is there a single person who's leading the interface or is it sort of different people are touching different parts wasn't difficult to multiple teams yes my understanding is they're multiple multiple interfaces uh oh yeah okay uh so uh at the moment it's my my understanding and there's something happened while i wasn't speaking to people is that there's the the interface you're working on and then the pse interface is that is that correct that line up for everyone's sounds what are what are the two different interfaces for if we're only going to have one sequencer

so the like the interfaces are actually where we get the security from and bugs in the interface then propagate like if the setup is broken it's going to happen because of the interface okay the sequence so we can always audit that not not ordered we will verify that like all the clients will do this that's like what we'll know is something went wrong there the the risk of breaking the setup would be if there's a bug in the participant so we want as many as many implementations as possible um of of the participants so that's that's why having two sort of commonly used interfaces would be fantastic here and sort of i mean we're gonna have to point it we're gonna have to use one url though right so right so there'd be

i mean that there are two options here one is a single url and then it presents you with a uh to choose choose your own adventure style link a or b and we can just randomize the order the buttons show up in there um the alternative uh is to have two urls um and then like they link out to the sequencer which is always at a single location i i like the formula one i have linked with separate links one is going to be very dominant yeah yeah yeah i'd prefer to if it's just a toggle of choose your own adventure yeah i'd prefer that rather than two different links so then how what what would the

what does it look like and how does the deployment for that look like is that is that a link separate web page from there um because um i guess that this is not a thing that needs to be hosted yeah i guess i have not considered what two interfaces are these are sub domains um i think we should try to keep them as like isolated like isolated deployments uh or isolated servers serving the files so i guess like where do you get linked to from this i think it depends on what the requirements are for hosting it like i can imagine an implementation to just be a static website yeah that should work

but maybe people want to do something a little bit more fancy and have a back end how are we going to ensure that like they're stylistically the same the ux is at least similar i don't think we do i don't think we want to yeah again more diversity here [Music] okay um as kaz says there's also he's he's got his uh cli uh part of what i'm wanting to do here at zk8 is to show more people to write their own little implementations that kind of thing uh re like really i think we can get up to i don't know tens of implementations like more than 10

implementations here with at the very least these two ones being nice and robust and then the cli kfcli which is hopefully also a reasonably nice issue to use and other ones can just be sort of one-off use cases that people wrote yeah um related point actually that is still on the agenda if we if we still have time for a trend yeah sure go ahead um so right now uh we move some of the crypto codes to the uh ceremony sequencer but my idea is to turn this into a shared library that can also compile to wasm also does a little bit of the json encoding stuff and then

the clients can share this code obviously the downside of that is that we remove some of the diversification in terms of crypto implementation however we can make this shared library have multiple backends we can implement it on both artworks and both and blsd that should be doable so um yeah it's generally bringing this idea of of uh creating a tcg ceremony lib i guess um repository where we will have a crypto core and then some utility functions around it around the file formats that can compile the wasm that will be really easy for the front-end uh

front-end to integrate so note this was kind of already the design a bit with the whole sdk this is just i guess formalizing into its own repo now uh that's already what like the work kev did initially when he started writing his own little crypto thing and it's what we've audited with the idea of it being used um i guess this is just now being slightly more formal as to what that is you can make powers of style one of the um back-end options for sure we'll keep the chest recorded but we have a merge package and just yeah it just needs a little bit of

refactoring and thinking about the architecture to make it i i do want to like split it up into separate um crates within the repo where the crypto is like its own its own separate thing which just makes auditing a lot easier so i i guess then the only really important thing to make sure here is that we just remain consistent with the sdk or um i don't know if there's a additional interfaces that uh jeff you guys are using um on the like what that looks like when you're interacting with with kev's wasm stuff yeah so we've switched to philips welcome stuff um which is a similar uh

interface and it's just starting the the srs in and the entropy right yeah [Music] speaking of entropy do we want to offer some sort of um key stretching primitive like argon 2 as part of this crypto toolkit what is key stretching so sorry the key stretching is where you take something low entropy user input like a password and make it computationally harder but by doing a lot of hashing on top sure i mean i guess it depends on how

much work it is and whether it would just whether it's a nice to have or uh it should be trivial there there are existing robust crates we can just like compile them in as a add them as a dependency and offer up like a nice api for it and then it will be easy for the front-end team to integrate it if they if they end up using this crypto library already the reason this is relevant is basically if you're taking user input you have to do this anyway in order to do it in a reasonably secure manner because user input is not really random it's somewhat random but not like uniformly random even if there were two keyboards smash really well um or wiggle mouse really well so it's just how do you turn that user input

into something that looks more uniform in its randomness and this is would be a standardized way of doing it i guess the only thing is now this is another thing in the pipeline which would be common to both implementations and would touch the secret um so just need to be a little bit careful as to what we do here um but it's not like you don't have to use it if it's there right it is an option but realistically if you ask trying to standardize this would be common um i don't know what you guys have done in the past for this jeff um in terms of turning user input into something proper what was your approach there or did you take user input no uh

no we don't take don't generally take user input uh we just uh use dev slash random okay i mean that's that's also a valid approach um but with a right now we have the front end that charlie design where users have to well the idea was to spell some to to input some magic spell right so put a string and later on we were thinking of doing entropy with the mouse or something like that um yep yeah so it would be how do you exactly that how do you take that and turn it into this thing and

yeah it's actually it's pretty straightforward just take everything you can collect so x y coordinates of the mouse but also um the the the time stamp you receive the events which contains a lot of entropy and you just throw all of that in a big hash function and outcomes like your blended refined entropy function um i think one thing might be worth discussing is how do you determine how much you need to collect whether you collect sufficient entropy that's actually a very very hard problem um and we probably just want to do some dumb heuristics here like we want to collect i don't know at least a thousand

mouse events or something like that yeah just have a little meter that fills up nico you guys started doing this already uh started doing the the wiggly mouse stuff in terms of actual implementation a text box i think that's what we what we mentioned before okay yeah so we we can do i guess length checks on the text box and then for everything else but again this can this can differ between the two implementations these are the kinds of things where i think it's like good to do you're saying implementation do you mean interface

yes activated implementations with keyboard especially most of the entropy is not in which key you pressed but in when you pressed it so there it's like very important to collect the timestamps all right all right awesome we are go ahead kev we're down to one minute so i'll just wrap up yeah i'm just gonna quickly say the way that i did it was i just uh hashed uh the user input and then just x sort it with a random whatever i got from like you random random yeah yeah there is a web crypto standard that should give you an equivalent of defu random in the browser but with the

with hashing and xor in it means that it doesn't matter if the user does rubbish uh input like it was just a is it doesn't matter because your xor in it with dev random xoring is not the best way of combining entropy you can just concatenate it and then hash it all together yeah you can do that as well yeah all right so yeah i'm gonna wrap up here this is a very fast-paced productive call i think um thank you everybody for contributing and um sounds like everybody has an idea of what they're doing if not please put it in the public channel um while everyone is at zk summit carl you

reminded me that yes we do need to start thinking about this special i mean there's two sort of special cases outside of the public ceremony which is anybody who wants to roll their own implementation um if we're not already there we should start thinking about how to make it as easy as possible for somebody to do this what do they need to know what sort of docs do they need access to um yeah that basic pitch um and then the other thing is uh we want to start getting the special contributions of you know somebody doing it on a satellite or whatever yeah wacky stuff uh that will be a part of part of the story the

narrative of where we're getting our randomness from so you can show that to people which i'm sure you're probably already gonna do but um yes okay summit's a great place to do that i think in terms of opening up rfcs for really insane special contributions i think we should also launch that at devcon as a part of a bit of a hype ceremony hype um and so yeah let's discuss this async but yeah that'd be a basic idea but always welcome to these things and i think the channels have been public channels becoming more and more useful but between that and issues on all the repos i think that's probably the best way to keep communication going excellent um all right yeah thank you again everybody and um

we will talk in two weeks at a minimum and in the discord definitely all right fantastic thanks all right see you bye thanks bye bye guys