TLS Notary Cafe Hour

PSE Café Hour 2024 · 12 Mar 2024 · 54:13

A research presentation on TLS Notary Cafe Hour. The session explains the construction, its security or performance properties, and where it fits within modern privacy and proof-system research.

Topics

From PSE Café Hour 2024, hosted by Privacy Stewards of Ethereum.

Transcript

all right I'm recording yeah okay hi Ryan welcome hi Philip hello guys hello hello welcome everybody Welcome ring I see not I'm joing from a bunk bed in Taiwan so you guys

know you're on a bunk bed in Taiwan did I hear yeah yeah the ZK Hacker House put us up in like a 20% hostile like five bunk bed 10 bunk beds nice and are you top or button I propose we wait one more minute and then get started I'm not sure if if I'm the only one but I cannot hear you very well [Music]

Henrik better yes that's much better thanks I have to learn to speak into the microphone hello everybody hi Chie hi okay it's 6 o'clock somewhere so I propose we get

started um welcome to the cafe hour uh this is uh again a weekly session with the with our community uh from psse so it this is the perfect opportunity for questions and feedback uh note that this session is recorded um on the agenda today we have TLS notary and data portability so I propose we start with uh updates from the TS notary team what we've been working on and what you can expect next and then once we get through that we uh open the mic for questions uh from everybody uh let's try if it works by

just interrupting Us by unmuting uh if that doesn't work then I propose or it gets too chaotic then I propose we type questions in the chat and then I will unmute you so that we can uh get some order if necessary um yeah so uh maybe a quick shout out to the TLs notary people in the group so we have the the the green frog crap uh that's Ceno our our technical lead and then I also see Chris uh

Dan Thomas uh I don't see tukino yet but I see uh uh trauma or tenor who also joined the team so um let's get started um maybe first uh cenu can you give an update on what was new in our latest Alpha 4 release sure yeah so I think we released Alpha 4 either what was that two or 3 weeks ago now don't remember the exact date but it had some fairly large features in it um one of which is called

deferred decryption um the gist of this is that TLS notary is a network bound interactive protocol so it involves a lot of communication between the prover and verifier improver notary uh Ander decryption essentially just reduces um the communication that's required in order to prove some data um by deferring decryption until after the TLs connection is closed and we're able to just use a trick there that that which lets us use um just ZK to decrypt the uh server response data uh as opposed to using full-blown MPC um additionally we have uh we

exposed more in our API so now um again the prover and um the notary or you could call them the mpct TLS verifier um once they've completed the TLs session with the server the approver is holding commitments to the server data and we've just exposed in our API the ability to just directly reveal um parts of the data uh to that to that party um so you can just reveal things directly off chain without having to go through a SE separate process um afterwards for example if a notary signs uh the blind commitment to the data

normally you have to go through an extra step to generate a proof which reveals parts of the data uh the interactive verifier feature just lets you do that directly um in the same process and we also made some changes to the um API for Selective disclosure um mostly around um making it easier to uh generate commitments to http data um so I think our first API was really just you specify ranges in in the in the transcript um but that's not very ergonomic cuz now you're dealing with Rex or statically um specifying ranges in in

the data that you want to commit to um so yeah we've re redid our API which allows you just specify like header names and uh it also supports uh Json at the moment and we'll be at add more data formats in the future and that's most of what was in Alpha 4 as far as the core Library goes thank someone like yeah go ahead hendrik yeah I was going to ask if there are already specific questions about what cenu just said don't be shy

okay then uh we move on to the browser extension so that was also updated for Alpha 4 um we also did some internal cleanup and it's also worth mentioning that um we added uh also a quick start for using TLS notary in the browser so uh depending on your plans that might be a good place to um to have a look there is not really updates from the public notary server that we run except maybe it's a good time for a

reminder that um so the psse hosted notary server is for testing purposes only so you can use it to test and bootstrap your application try out stuff um but please don't build your business on it um we don't want to be uh responsible there have you guys got any people trying to abuse it yet or no um well so it's mainly used for uh in in heatons for the quick start and also for internal testing um I'm not aware of um people using it in uh po uh on higher uh bandwidth applications yet

so we still have lots of room um on the on the server side so it's still uh under used at the moment um so that was a a quick update on um the past so uh maybe it's uh interesting to also have a to hear what upcoming improvements we can expect so um first thing is a de code senu do you want to give an update there or uh maybe Dan or

Chris I can give like a high level summary of what's coming up both near term and and further further term without dragging on too long about it uh so our near-term focus is really just on supporting applications that want to do onchain proofs um so for example in the notary configuration you have a signature on some commitment to data that you queried and got a response to offchain and now you want to do something with it on chain uh the commitments that we support right now aren't able to be efficiently opened on chain uh involves a lot of data um so we have a protocol called off decode authenticated decoding and

essentially What it lets you do is um during for example the notorized into commitments which are more efficient to use um in zero knowledge proving systems uh so opticut specifically is going to um give you a posiden hash commitment to um the the server data for example so then you'll be able to um write yourself a circuit with your uh DSL of choice uh that does some sort of selective disclosure and a public input to that circuit will be a besid hash commitment to the data and uh it's it'll be up to you to to figure out what the actual circuit logic is to to

prove that with an Integrity but at least um we we'll have a start or you'll have a commitment that you can actually use um but yeah just the more General thing there is just reporting doing onchain proofs with this stuff um it's everything selective disclosure and all that is uh quite doable offchain today but again lots of people that want to do things on ethereum obviously um so that's near term that's our primary focus right now uh we do have a bunch of lwh hanging fruit regarding uh performance improvements so that's another thing that we need to uh get down

so the protocol like I mentioned before is both Network bound and it's highly interactive um so there's some things we can do one of which is we can just move more of the MPC computation uh to before the TLs connections even opened uh we do most of that um in the prior phase right now but there's more pre-processing that we can do um and the impetus there is that if it takes too long long to do that in the online phase um the server sometimes closes the connection it's not patient enough to wait for us to like encrypt the request for example um and yeah we've also been doing a little bit of profiling and

we're pretty sure that the round complexity of the protocol is higher than it needs to be so when you have a high latency connection uh that really affects uh proving performance um and yeah I believe we're going to be able to bring it down at least 2x it's hard to say it all depends on network conditions and things like that but uh yeah there's definitely some low hanging fruit there and on the the uh longer term um once we've kind of got a good story for I guess onchain proofs and being able to do selective disclosure there uh we have more performance improvements that we want to do one of which is just um upgrading the ZK

proving system that we use for for the protocol internally um so right now we use garold circuits for Zer knowledge proofs uh within the TLs notary protocol um and they are very bandwidth expensive as well uh so we have it on a road map um to switch to newer interactive Z knowledge proving systems that are about 100 to 200 times more bandwidth efficient than that uh and that will allow us to really like bump up the um the like the total amount of data that you're able to prove uh so right now you're kind of looking at you know low kilobytes under 10 kilobytes will be

pretty good experience but as soon as you start getting past that you're going to be waiting um uh once we upgrade this um proving system in our internal protocol uh you'll be able to start looking at um proving on the order of megabytes uh but that's uh yeah again that's going to be coming later in the year and once we've got that in place uh we will be looking at exposing uh this proving system too so in the offchain scenario when you're wanting to dis proove offchain you'll be able to to leverage this um proving system back end that we use internally we'll expose an API so you'll be able to do selective disclosure using it as well and I think that's most of what we

have on our mind right now for core core protocol is that interactive but upgrade to your internal improving system is it like are you guys going to create something new or is there some can you give me like a name I can like look it up or something quick silver uh so it's a newer more recent class of uh proving systems that are um based on something called Vector oblivious linear evaluation um it's completely different type of proving system that you would expect what you see in snarks that are based on elliptic curve and and things like that um and uh because it's um because it's

interactive uh well not because it's interactive but it's not succinct uh and it requires interaction uh and with those concessions uh in the offchain scenario uh it's it's extremely efficient you're talking about um yeah like linear uh memory requirements and um and things like that it's it's really good Quicksilver is the name to look up uh thanks C there were a few questions already maybe I read them out loud so Chelli asked is there a dock for

that already I think that was when OD de code was mentioned um so a code is not merged yet but uh maybe Dan or Chris do we have some documentation already um uh regarding our the code I would say no we used to have like a description but we changed it up so it's not up to date yeah but as soon as yeah that's part of the uh this the pr that I'm working on I'm going to be providing uh comprehensive explanation of what what the protocol

does although we simplified it and it's going to very simple right now yeah perfect something to look forward to and then not sure if I pronounce it correctly Wi-Fi yes asked if uh will the hash be of the encrypted data or of the decrypted data it will of the plain text Data uh sent and received to the server and the hash itself will be um obviously blinded uh Wi-Fi yes Does this answer

your question or you can also unmute and ask followup questions so I was wondering then how does the notary get the plain text Data uh like if if it has to produce the hash because it's involved in MPC so yeah so during the TLs session um the prover um gets commitments to the plain Tex data and uh in such a way that the notary doesn't see it uh and then the atic code protocol converts these commitments to a different kind of commitment which is besid hash and we do that using a Zer knowledge proving

system which again preserves the Privacy so at no point is the is the notary ever going to to see the plain text they do of course see the cipher text so they they are aware of the the the length of the messages but um not of the text content itself okay and then there was also a question for which proofing system was used so

that was Quicksilver and Thomas also shared the link to the uh the article on U ePrint so that's uh also some uh homework to do maybe um next up um another thing we're working on is uh we're building an Explorer or a visualizer for uh TS notary proofs and um tenner uh you prepared a quick demo uh I hope screen sharing works on Discord uh let's give it a try

yeah yeah yeah this will be quick I'll give it a second for people to join can everybody see uh the shared stream yep all right cool well yeah this is the Explorer if you've messed around with TSN before you've probably seen the proof visualizer that we already have but we are rewriting it just to make it

guess uh more robust but you can drop your proofs in and you can see all of the data that the proof contains and you can also share your proofs they get pinned ipf s and you can share your proofs people can view them yeah any questions about the Explorer at all feel free to ask but that's about it for the Explorer smooth could you give like a quick summary of what the I guess end to end flow there is like what why do we have an Explorer and what can it be used to

do uh well we want to do a few things with it um we want to do uh integrate like a plug-in system using exotism for it so uh other people can provide like their own proving system and their own um like well I guess not verifying or yeah their own verifier for it and can verify it and prove their own proofs but for right now it is just a proof vision so the high level idea there is you query a server you get a signature from a notary on that data um and you need some way to

be able to distribute that data one way to do it would be to email a proof to someone um but the Explorer is kind of being a an in between utility there um where instead you could give someone any ipfs link and they can pull it up in their browser and the browser contains the code to do local verification um so yeah the highle idea here is just make it easier to just share uh proofs with other people and uh Tanner you're saying I guess plug-in system as well um so the one thing that the Explorer does right now is you can just do a very simple selective disclosure where you reveal a substring of the data but you can

imagine that you want to do more uh complex proofs with it than just revealing parts of the text you might want to prove things about the contents of hidden text um so with the plug-in system you'll be able to uh write your own like integrate your own um proving and verification logic and distribute that as well and so this new Explorer is written in typescript so that it's easier for uh for all of us to extend it and improve it to reuse Parts uh whatever uh is useful to

you any questions on the uh Explorer or on the uh browser extension that we have for TLS notary okay then uh oh there is [Music] one uh there um maybe you can unmute and just ask the question J yeah so like in the Explorer we saw that there are some parts that were uh

like in plain text While others were like XXX redacted so uh so is it is it more cheaper to have uh a lot like things let's say if we Bunch up everything in plain text and together whatever needs to be in PL text together and whatever needs to be redacted together in the HTTP response headers um like like does that reduce the complexity or like the number of reductions is like independ like it doesn't affect complexity uh like did I make sense yeah I think I understand your question um it's not that much of a factor is the

the simple way to put that in the end it's going to depend on what kind of commitments you have um but at least for the the commitments and the technique that we're using right now just for simple redactions um it's essentially just a a meracle proof that you can batch uh so in order to reveal some substring uh you essentially just have to provide that substring and then you have to provide a uh Merkel inclusion proof um but for redacting the data that's free you you just simply don't provide that information but yeah it it doesn't

really um having multiple partitions like uh breaks in the text that that it really doesn't increase complexity all that much yeah thanks okay then uh other uh uh use and updates from TLS notary so there are a few events on the agenda there was also one that just was last week so Chris gave a very nice presentation on TLS

notary in quala lur so if you follow us on Twitter or foraster um you might have seen it already so it's um it was recorded uh and posted on YouTube so if you haven't seen it yet uh I definitely recommend to to give that A View to then for upcoming events uh next month April uh the TLs notary team is traveling to Amsterdam for eam uh where we have uh lots of plans so first uh there is uh a presentation on Tas notary we are also sponsoring a

prize at the hackaton so if you're in Amsterdam at that time uh I think there's still time to um to register uh so yeah there you could hack to win um TS notary prize if you uh have a project that uses DLS notary of course and we also plan to have some fun ourselves so we also subscribed for participating in the hackaton ourselves but in a special track in the utter track and so that's kind of outside of the main competition um but it's a it's a track for existing projects and so um we also

want to hack together and uh the plan is to um add a new feature to thls not Tre in uh in just the weekend so the we're still planning this but uh this will be exciting we're really looking forward to this and then I also as announced on our Discord um after eam we uh we move to a different location together with uh 10 early adopters of TS not Tre um where we will uh sit together in a shared space to to work on TS notary and the TS notary uh applications together so that's an

exciting uh opportunity um for us to to Network and and get feedback work until let notary and and uh and shape the future of of our project so that's a very exciting month uh April and then um a bit further in the future there is uh eat Global Brussels where we will also participate in the eat Global hackaton uh that's the weekend after etcc and the only thing that's then planned for now is then um uh Defcon of

course the end of the year uh in Southeast Asia so um yeah exciting stuff to uh to look forward to and then um maybe one special mention too so Ryan just had to leave the to call but so to he worked together with Joo on an ethereum Foundation Grant using TS snow tree where they um prototyped uh tlsn on ramp or damp um where they um used TS notary to uh onboard people on chain and exchange Fiat for crypto uh stable coins uh very

exciting project and it was was also the first time I saw uh TLS notary used on mobile so that's also good news that uh all of that works so that was the uh all the the topics I could think of that were uh useful to share with you guys so um maybe we do a first of questions again first uh did this trigger any questions uh from any of you don't be afraid to

unmute right I have I got one so I'm curious what you guys going to hack together in uh Amsterdam as a team uh that's not decided yet okay all right I'm too early yeah yeah yeah we have plenty of IDs but um only limited time so uh we'll have to choose what was uh the most interesting project you guys see uh from all these hackaton so far oh it's always difficult to pick favorites uh so I just mentioned um DLS onramp um because they

uh did uh they started at the hackaton and then uh um continued their work on it so they're definitely the the most advanced I think that I know of uh but we also had like also some uh project that um that we didn't expect so for example there was a in New York at the hecaton there was a zero trust Bounty that used steal as notary in a way that we couldn't have thought of ourselves so just to have a a fair Marketplace to um kind of disclose um vulnerabilities in websites

and then make sure that also the wh hat hackers um get rewarded for uh for reporting that so that was a very uh Innovative use of of THS notary uh but maybe it's a a good idea to do a tour here of all the people listening in um so who is uh actively using TS Notre in a project right now yeah actually that's a great

idea that you ask this because um it would be nice to have like um some user cases as you said c is commenting all our users are asep yeah Ina I thought you uh you were working secretly on a project yeah yeah definitely I I am a very very uh big developer uh hid like a hidden one but yeah like I'm very curious to understand because uh I'm not uh I have

I haven't got such a technical background like if you can uh give some examples of user cases where people as you said if nobody's wants to give an answer to henrik's question I would like uh any any examples to you know to understand a bit more but maybe I can go through the names as I see them on my screen here and then uh if if you feel comfortable with it just uh tell us what what you're doing with it so chali I know you're not building or am I

wrong now the only thing I do is uh t-shirt iside for you guys I think she she printed the the code on the T-shirt okay then I have H de hun no okay yeah Dan is building tet n itself so um um maybe Phillip no not really I'm here just to to learn ah okay uh

Jake I am not but um I actually did just think of a question have have you seen anyone try to use TLS notary for more like Oracle oriented things so is I getting off on offchain data onchain and uh I assume there would be trade-offs with using TLS notary versus say something like chain link or uh definity I think is another big one yeah so I've seen well actually a lot of people come looking with the Oracle use case in mind uh the first thing I always say is that one TS notary is not an oracle protocol itself which some people think it is um but also the

the benefit of using TLS notary for data which is public is very limited so if something can be queried just by anyone online such as like a price feed or any publicly available information um using TS notary in that process really doesn't provide all that much there's some very narrow cases where you can you can prove that at a certain time the server responded with something but past that uh General uh public data um there's not too much there um but the the part where TS notary is interesting from an oracle perspective is that now you can prove um non-public data um either data that is

behind Access Control uh such such as something that like a uh API key gated um service or um anything of that nature uh in which case TS notary is useful but the the thing there is that TS notary also doesn't solve the quote unquote Oracle problem um the NP yeah the notary or the NPC TS fifier is still going to be a trusted Authority in that process um so can use TLS notary but you're immediately confronted with this issue where oh now I need to set up a committee um and do some sort of uh

consensus on top of that so on and so forth which is all totally possible and people are interested and are looking at that exact use case um but uh yeah just to clear up the confusion that often comes up there it's it's not like this enables trustless a trustless like Oracle onchain um yeah one way go ahead Jake oh yeah right because you have to want as you mentioned trust that notary but also you don't have some sort of consensus amongst end machines that that data is what the first Oracle reported to say it was right as you mentioned yeah right it would be really nice if MPC were good

enough uh to basically have multiple parties involved in this TLS multi-party TLS session um it is theoretically possible there is a paper out there that basically demonstrates that this can be done but the the processing and communication requirements to do so is also enormous and if the data volume like the the size of like the response uh is large it it really just enters in Practical territory very quickly um so TLS notary is a two-party protocol between approver and uh the npct TLs verifier notary whatever you want to call them and uh yeah so that

that offchain npct TLS verifier is always going to be um trusted to not either just forge something themselves they can sign whatever they want or perhaps collude with um the prover uh one one way to mitigate that is to just run this offchain party in a trusted execution environment um and like a lot of people are starting to look more seriously at at secure enclaves like sgx and so on and so forth um and the the one benefit the TS notary would provide in that case also is that um the privacy of the data the Privacy for the prover doesn't rely on the

secure Enclave um really just the Integrity of the attestation relies uh is is bound to like Intel's signature for example um so in which case uh at least you you have better guarantees about privacy for the users but you still are always going to have like this offchain trust component involved there so cool yeah that all makes uh sense thanks for diving in okay next next Matty do you have a

microphone I think he or she wasn't here before they didn't listen to the question yeah sorry sorry I just managed to unmute myself uh yeah uh not yet I I'm not building anything anything yet but I'm learning and I I will be at the Amsterdam Hacker House so hopefully soon will'll be building something nice to meet you yeah nice to meet you as well Rachel do you have questions I don't think so I um just wanted to drop in and learn super thank you uh

rapael um likewise thank you uh Senor hey hey I no I haven't I'm still learning I didn't know about TLS not3 half an hour before so still going to the website so yeah my question would be too basic but me perhaps next time thanks yeah okay yeah we probably went a bit too fast for you but uh yeah this this is like nerd level 10 no offense like even the website you go through it and very not obvious what this is about but now I which section I finally found yeah

the motivation section is a little more so that I'm going through this one now and I think I get it but not quite fully yet perfect maybe then a quick question how did you find us than to sh I just got it I just got to meet sh uh recently and saw this Discord join the PSC Discord um I just recently learned about eth Sim the project this like just I understand more and like years and years ago I studied a bit zero proof knowledge and zcash and this stuff but that's been years so um it's a good refresher uh but yeah that's how I got here nice nice

interesting thanks thanks for coming yeah yeah thanks that's cool let's keep learning thanks yeah like if I understand correctly the idea is just to like that provance I understand but just like maybe yeah one question is like out TLS because I have t certificate for my website and like or just S I understand that but by where and I understand ethereum a bit so these like onclave and stuff like that but like if you could like in one sentence explain what what does LSS to do with it you okay C do you do it or do I uh are you wanting to do it you can go

ahead what you're the the the big expert uh what TLS has to do with it is it's just a convenient existing cryptographic protocol that is already widely adopted on the internet so the ideal scenario is that the server just signs the data directly but servers don't do that so we have all of these uh warehouses of data already sitting there and available and the question is how can we um how can we essentially prove the Providence of that when you query it so TLS already exists basically every deployment on the internet uses TLS um

yeah so you look at that and you go okay well we got this this it uses cryptography how can we mangle this thing sufficiently to to get a proof of Providence out of it yeah it might also be a good idea to watch the recording of Chris talk last week so that gives a nice uh highlevel overview of what DS not Tre is about yep that's like I said I'm sure I'm missing most basic component so but thanks thank you I think I get a little more like yeah why not use what's existing already instead of and then somewhere I I'll get this Z proof part yeah I know anyway thank thank you next

time bye H then I see a few TLS Notre psz people so maybe uh Yash yeah so I haven't uh used DLS notary so I I have a attended the Istanbul uh session that TLS notary had there I built something with the team but it was mostly the team building for me I was asking for help so that's one thing and the second thing is like I've worked with reclaim protocol so yeah I built some so reclaim protocol is quite similar to TLS notary uh so rather than using MPC it uses like uh decent it

decentralizes uh the notary part and having proxies in place so yeah so I've used that so I've built some interesting applications using reclaim so yeah at some point I want to build using DLS notary to nice can you give an example yeah so using reclaim protocol there was like I've built um one one application for example was uh finding the citations of a of a person like so the user can claim how how many citations they have on Google Scholar so that was one application uh yeah that's one example

so okay nice thank you um other questions so we're uh 45 minutes in that's the time budget we allocated sorry to interrupt you there are two new people that joined us um maybe they can maybe they can tell if they're using already the TLs notary it's Eric and erer am I pronounce it correctly uh Oiler I think it's German the the

mathematician so er Eric is with the EF so I know Eric so maybe Oiler lrange we're we're doing a tour asking everybody U who's building what with dless sry yeah yeah um so well first off I'm not actually German I just studied physics and my my username is like my favorite equation from physics um but I've been obsessed with Tey for like many many years now I start actually started a company like based around it back in the fall um and like we're building a mobile app that will'll be releasing soon along with like a bunch of fun forecaster frames I'm also uh

working with the igen layer team to set up TLS notary notes as a as a ABS so yeah yeah I'm super excited about t one question I did have I think like I've asked like send you about this in the Discord is like the timeline for more ZK friendly notarizations yeah so we spoke to that a little bit earlier essentially the a the code protocol um is what we need for the commitments to it um Dan just opened up basically a PR so we're starting the review process on the implementation of that protocol we also have to work on integration

into um the like existing notary data structures and so on and so forth uh Tak a little bit longer than we initially thought but uh certainly within the next month we we definitely want to have it ready for um The Hacker House um because I know that a lot of people are looking at onchain use cases um and that that's just for the optic code integration we're also going to need to uh well we're going to want to provide some I guess solidity examples for how to write a verifier as well um so yeah both of which were definitely going to I mean it's highest priority at the moment so it's hard to give strict timelines on

these sorts of things but uh really gunning to have it ready for uh eom uh and is there any like any specific proof system that you guys are targeting like uh I'm really excited about like planky 3 and you know the work done on Bas for example um so they work with optic code gives us um it's to produce Poseidon hash commitments um we're using psc's Halo 2 Fork to support I guess doing that over b254 um I don't see any reason why we can't support uh other fields as well uh but just to start with it'll be over

over that did you say ER that you're building an app right uh yes do you mind sharing more about it or is it not already is it just in the initial phase uh well right now we're just trying to get the app out into the App Store and like the initial use cases is not like solid business uh like problems that we're trying to solve is mostly just to get people excited so like a like I'm pretty big on a farter so when

we release the app probably like the first frame we're going to release is like a a Tinder like a performance competition where people can just like compete on their performance on Tinder uh which is just more of like a meme thing but like eventually the goal is to make it like a self- sovereign play Oh interesting thanks for sharing okay um are there other questions I guess I have one

question is there any challenge that you guys are facing lately that you're trying to resolve yeah just I'm curious about it like what sort of challenges you might face and how you go about it well so the biggest challenge for me is because I'm building like a mobile apples like we to like deliver a really good user experience you need fast client side okay and uh and ZK in general has like a million P overhead over just like the like the regular computation and uh so that's like the biggest thing I've been racking my head

against for like the like the past month or so but recently I've devised a strategy that you can get like a 10 to 20x speed up and it works like for any proving system so we moving along okay then I think uh we'll wrap up here um but good news uh next week there's already another Cafe hour and the topic will be Halo 2 so um also interesting for most people who are here today I

think so um thank you very much and uh we'll see each other again bye thank you guys thank you thank you coming bye you