Unlocking On-Chain Privacy: An Intro to ZKP and ZKML - Dr.Cathie So

Foresight X OpenBuild Series HackerHouse@HK 2023 · 43:33

Cathie So of the Ethereum Foundation’s Privacy and Scaling Explorations team introduces zero-knowledge proofs and zero-knowledge machine learning for on-chain privacy.

Speakers

Topics

From Foresight X OpenBuild Series HackerHouse@HK 2023, hosted by OpenBuild.

Transcript

foreign [Applause] so I think I'm gonna go ahead and start they just say start whenever uh so my name is Kathy I am from the ethereum foundation in particularly we have a team that works on all the CK stuff so privacy or Roll-Ups we all work on that and for myself I actually work on what we call ckml so zero knowledge machine learning so that's what I was supposed to be talking about today but I also

realized that not everyone has the background in ckp so we'll also do a little bit of intro before we dive into ckml right so um just a little bit background about me you will have that in a bit as well so I am not a cryptographer so don't worry I won't be talking about all the mathematics and stuff uh in fact I'm more of an applied ckp engineer so I only do the applied application and that's because I came from a background of data science uh so I am a machine learning engineer for many years I built models you know train models Etc so that's my expertise and right now I'm working to basically put CK into machine learning right so just to begin with is

what is ckp so you might have heard about it a lot in a lot of L2 Roll-Ups but today the main focus is not roll up so in accidents uh on blockchain what we usually do is What's called non-interactive ckp the idea is that you have a person called a prover and a person called a verifier so the approver will generate something like for example to prove that I am above 18 years old okay and then this proverb will send a proof a ckp to the verifier who will then verify the result so he will get a true or false from that proof okay so that's just an accent right so uh basically the approver has some mathematical statement

and then he has to work to convince that the verifier is the statement is true okay so that verifier uh we save verifier and we put a person here but in reality this could be just a smart contract okay so that could be a smart contract that basically is called the verifier contract and then we put it on chain uh whenever we submit like a bunch of numbers which is a mathematical statement to that verifier contract then we get a true or false statement uh true or false outcome based on that contract okay so more complicatedly uh sorry so with the following properties so what is zkp really we use ckp for four different reasons um the first two I will explain in a bit the third one is what usually

people think about is zero knowledge age right so we don't know anything about the actual underlying information and the fourth thing is actually not a official property of ckp but we often use it okay so let me explain them one by one okay so completeness and soundness sound pretty dumb give you okay the name sounds very fancy but if you think about it it's pretty dumb okay so essentially it's saying that okay this proof is valid so if the approver is honest so if we have a valid proof the verifier should eventually say that this is proof this proof is true okay so it's just kind of a mathematical thing very obvious but that's that's just how one of the properties should be and then the other property is basically

soundness saying that the verifier will not say something is true unless it's actually true okay so it will not verify false statement essentially okay so you can think of this as like no no false negative and no false positive essentially okay so that's two just a mathematical statement the third one that's more important the third one is other than the fact that the statement is true the person is not does not know anything other than that okay so for example for example as my age or my decentralized ID okay I want to prove that I'm above 18 years old all the verifier is going to get is only the fact that I'm above 18 years old nothing else okay so nothing about what

the actual number is it's not going to know that I am for example 30 or 40 or 50 just the fact that it's above 18. so that's what we mean by zero knowledge so except the thing that I want to prove to you nothing else is exposed okay so that's the first thing and then the last thing is actually quite important and that's why um you might have heard of like CK row up like CK sync Scrolls Dark Net etc etc you often heard that it's a CK row up but I want to make sure that you don't misunderstood is that most of the CK robot is not CK okay most of the CK row up use the fact that it's succinct meaning the size of the proof is actually much smaller than the actual computation being done okay so that's

why the roll up works so you have a L2 chain you try to compress the information and then commit it to L1 okay this is what roll up means and there's nothing private about Rob okay so that's why it uses the fourth one which is seeness or you can think of it as compression okay so like sipping a pile if that makes it easier to understand okay so that's the um four properties of ckp uh that's as theoretical we will get into next up we will talk about some application before we talk about application I just want to show you how formally it is done okay it's okay if you don't understand this graph yet but just a more complicated version of what is actually being done is you again you have approver a

verifier so the proofer will take some inputs and also a key we'll talk about that in a little bit and then it will output some proof and sell public outputs to send to the Firefox verifier where the verifier will say okay yes this is a valid proof or no it's not a value proof okay so that's just a kind of a more complicated cater version of how it is actually done but don't worry about that because we'll look into some applications instead okay so why ckp with blockchain so ckp is not something new actually it has been around for many years but it has some very good properties that can be used with blockchain in particular so we I assume we all know about the blockchain already

right with blockchain having two problems one is the limited box size in in particular not only limited plus size also limited contract size if you have written solidity contract you might realize there is only 24 kilobytes that can happen on the smart contract right at least for evm okay so 24 kilobytes uh also the block size is limited the other thing is the transactions are totally transparent okay so that's two big problem for people coming from web 2 or people coming from uh yeah web2 right so we are not used to having transparent transaction we're not used to having limited block size well what ckp can offer as a solution here is two things so first of all it can compress so

that's the fourth property we'll talk about ceciness so we can compress some of the computation into a proof and then it can be proof on the blockchain so that means the computation is done off chain but then we just submit a proof of what we have done correctly onto the on little blockchain okay so that's the first thing the second thing is that we can also prove some ownership or data while maintaining privacy right so let's go with the transparent Point usually it's transparent how do we not have transparent C is to have some privacy and then just use a ckp to prove something okay so to put it more concretely well actually I will skip this for now so what we do is we will

focus on something called a circuit for CK's knocks okay um so this is something that you will see which is just one system so you can think of that as there's two versions of CK proof that you can construct one is snark the other one is Stark as in start net so we'll just do CK snacks for this talk and whatever SDK snack stands for is not important there okay so well what is a circuit a circuit is something that you might have seen in your perhaps like electronic engineering class or something like that basically it's a circuit okay it's really what you think of as an electronic circuit where you have some gates and stuff so

unfortunately nowadays if you're writing ckp you have to write something that is a circuit okay so it's not a turing complete program it's not the same as if you're writing JavaScript or typescript it has a lot of functionality that does not exists in JavaScript or typescript okay so this is the reality right now but later there are a lot of companies already working on something called a ckvm okay and the idea is once there is zkvm then you can just write ordinary programs and make it CK okay but that does is not that it's not realized yet so we still have to write some kind of circuit uh that does like some gates like class or addition or multiplication

Etc to in order to get like what we have to do so the disadvantages that you need to write a custom one for every single kind of computation that is being done okay so let's say if I want to write a circuit for a model to classify pictures I have to write a custom circuit if I have to write uh another one that does maybe like proof of membership I have to write a new circuit okay so that's a disadvantage um but then again we're only focusing on this part today okay so let's start with something that is more I guess practical okay so now we're done with the theory part basically let's go into the Practical part of kind of writing a ckf you know in accents okay so a lot of

time people think that I want to hide something so I need CK but actually if you um are familiar with some of the techniques in blockchain you do need CK for example if you only need to keep the secret for once and then review it you can use commit review scheme right so hash it and then review it later okay so that's one thing you can do so that's one thing that you need to confirm before you even need uh to uh well even start developing your CK app okay so let's say you confirm that you need CK for whatever application that you're writing then most likely at least for now you need to learn a new language okay and the new language could be basically some DSL domain specific

languages like circum or Leo etc etc most recently you can also write CK circuits in Rust but most likely you're going to learn a new language at least it's not done in solidity okay and then actually each circuit needs some kind of a setup okay so this is the nitty-gritty thing but it's actually quite important I don't know if anyone have heard of the kzg ceremony of ethereum foundation there's like a page where everyone just go in and play around with the cursor and basically they contribute some Randomness to this kind of ceremony so essentially this is called a trusted setup so a trusted setup is let's say each of us give out a random number and we've all put it in a

pool okay in a setup so this is to ensure that unless the hacker knows every single one of our number that we give out otherwise they can't really break our CK proof okay so they need to know every single Randomness that everyone contribute in the world so the bigger the set of ceremony the better uh in the ethereum one I think there's like 80 000 people joining so you need to know all the 80 000 Randomness in order to break the system um yeah and then the rest of the things you should be familiar which is then you of course also need to write a smart contract with the front end etc etc just like a normal diab right so the right hand side is just like the normal the app the left hand side is the additional

part that you have to write about CK any questions so far well if there's no question then let's dive into some application uh well okay last note on truster setup if you don't know what these words means is totally normal the idea is just that you will see these words quite often if you start working in CK and the idea is just that there are a lot of proving systems okay and each proving system basically have its own trade-off okay so this is just two of the most common one but the idea is then you also have to learn about all the trade-offs it's like using different back end you know using different backends choosing your back end has different trade-off so that you will have to choose each of them and see like which ones is the most suitable for your

application okay but other than that um don't like I'm pretty sure two years later no one is going to use these schemes anymore so don't get into the names but just remember that you have to think about like which back end to use for your ckp all the time okay right okay as promised application so before I go into ckml let's talk about some more common application that you probably have seen so the first one is about scaling which is all the L2 um so well first one is you can probably do signature aggregation so I don't know if uh anyone has used multi-sig or she knows it's safe or have heard of those before okay yep I guess

most of the companies right at least if you're working on some kind of project you have naughty SEC uh there's a limit on how many multi-sex signatures you can actually put on genosis Save I don't know if they have extended it but I think it was like not um it's like 16 or something like that and that's because as you aggregate the signature the code data gets huge right and that doesn't get accepted into the smart contract but then what if we can use ckp to aggregate the signature then we can essentially have small defects of 50 people 100 people 1 000 people well I'm not sure why would you need that but at least that enables it right so that breaks the limit of the smart contract and that's the purpose of

one of the purpose of using ckp on blockchain and the other one is CK row UPS okay so cke edms layer 2 systems again I just want to mention that just because it has ZK in the name it's only used for scaling it's not used for privacy okay so CK robot doesn't give you privacy so that's the first major area of application and just some of the typical CK evm just really for demonstration I'm not going to go through this but you can see that basically this these are the like a few of the big players in the CK evm space right now and they all use CK for the succiness the compression part okay second major area of application is

privacy okay and that's actually what my where my passion is is I really want to do all the Privacy related application um some of the ones that you might have heard about is mixers so we'll give a some some um examples in a bit so mixers is is essentially where people can hide their identity by mixing with a bunch of people okay we'll see a more concrete example in a bit or decentralized ID okay so this is one thing that you might have heard a lot about especially with the polygon ckid already rolled out which is essentially the same thing uh the same technology that they're using again is to find a group of people that is similar to you and hide you within a bunch of people so for mixers the most

perhaps the most famous application is tornado cash which is now sentient if you haven't heard of it essentially for tornado cash it will be how it works is each of you like each of the person who uses tornado cash put in exactly one is or exactly 10 East or exactly 100 East into tornado okay so now your identity is mixed with all the other people and then you get your other address and then submit the proof to say that I have deposited one if before but then you are getting that one if out with another address okay so imagine if it's 100 people in 100 people out that's like 10 000 com well not exactly 10 000

combination but you get it around ten thousand uh 10 000 combination right so that makes it very hard to track which account is related to which so that's the idea so that's the first kind of most used application in practice tornado cash similarly uh there's something that is actually developed by the ethereum foundation called semaphore the idea is the same but this time we don't use it for money we use it for Signal broadcasting okay so you can imagine uh for example for a Dao okay so a group of people in the Dell they can all join this so-called semaphore group okay so then now they are hiding their identity among the style each person

gets maybe one vote okay so when you're casting the folds all they know is you're from the style okay nothing else so they don't know which address is coming out from uh and in fact this is quite used quite often right now and build extended so um for example noun style uh the the one with like the noggles non-style is um having like a private voting proposal working with a bunch of companies trying to build private voting for their users as well so private protein is a huge thing in Dallas and that's one of the techniques to do so uh so and then there's a bunch of derived application that you can use for semaphore for example you can build your reputation

system like everyone that has like 10 stars on GitHub goes into the same group and then you can cast your votes based on your reputation um or Twitter so a CK version of Twitter would be let's say if I know that I am reputable on GitHub I can all join into the same group right and then I can basically tweet anonymously right so all the people will know is that I come from a group that is reputable on GitHub or reputable on Twitter but they don't know who I am okay so this is a version of like CK Twitter and then you can use it for folding Etc okay so a note is that if you make the best use out of these applications the key is actually to have

a large anonymity set right so it all depends on how many people is in that group together with you if there's only two people putting money in and two people getting out that's not anonymous because there's only that much combination right there's only two possibilities so to have more than you know two or a lot more than two uh be it ten thousands um 100 000 that's the key to use this kind of application hey um so actually these um ckps all actually all use the same type of circuit which is called a Merkel proof so in my opinion uh sorry for all my teammates that have worked on this but I think it's pretty boring so actually if

you look at each CK project each new CK project and then you build take a look under the cover and see what it actually does most of them are doing a Merkel proof okay so it's important to know that but it's not useful for ckml which we'll be talking about in a bit but it's important to at least know what is a miracle proof okay so if you have some computer science background you might at least know what is a Merkel tree okay which is really a hashing data structure that allows you to um you know hatch a bunch of lumber right so hashing hashing and then you get to a root and then you can use this roots to represent basically all the data that's under it okay so this is a miracle tree

so what is a miracle proof is that well imagine now at the lowest level these are all the people that have deposited one is okay so H3 has been positive one if H4 has the positive one if etc etc okay when they want to get the money out of tornado cash for example what they need to submit is these four numbers okay so they only need to prove rules that they are part of the tree by submitting the relevant proof so the relevant path okay so for example H2 for H3 you can hash it to get H1 but then you also need H2 to go with it and then you can hash it to get h0 okay so this is called the Merkel path so in Accents

in if you have this then you can prove that you're part of the membership okay but Miracle proof itself is not CK in fact open supplement has a if you have if you know about nft air drops you can use Miracle proof for nft air drops as well right however you can also put this whole thing into a CK proof so that it even hides all the information in between right so if I have this phone number of course I know it's from H3 there's nothing zero knowledge about it because I know exactly where the path goes but the key is I can actually hide everything with CK proof and only shows that I have some number that goes through the roots okay so this is called a membership proof just prove that

you're part of the trade and that's how most of the CK applications nowadays uh relies on okay so a miracle proof um so yeah so that is um I think if you know what a Merkle tree is it should be quite easy to understand what the local proof is great so um well finally then we get to ckml so that's a huge long introduction I'm sorry for those who already know ckp but the idea is that while Miracle proof is useful for a lot of applications but building custom circuits is also useful so especially building custom circuits can allow us to have some applications in outer space such as zero knowledge machine learning so how to understand

zero knowledge machine learning in particular you can think of let's say we have some model okay so forget about the word circuit we have some model which is a neural network that performs some inference right so a neural network for example GPT okay gbt it will take some input data it also has some model weights and it will give us some output right that's just how every single machine learning model works okay so for civil knowledge proof it wouldn't be useful if we hide both the input data and the neural network why is it not useful well if I had both the input data and the neural network weights then I'm just telling you that I have some model that does some computation and here's the result okay that's not useful at all so we have two scenarios actually so we

have to expose some of the information two scenarios either you have private input data and public model okay so for example you can think of it as for example I have a circuit that does face recognition Okay for example okay so then well in order for me to trust that is a very good model I need to expose the model weight so I need to know that it's a good model because like 95 accurate okay with the model weights and then now I will have my face recognition model to Output my face my picture into this face recognition model and the output for example I don't know my age my gender

Etc okay and then I want to hide the input because I don't want everyone to see my face on the internet right so now what I can tell you is that I have used this very credible model to prove to you that I am first of all I'm a human right and then I'm a female I am several several years old okay so this is one possibility that you can do with ckml the second one is the other way around okay I have some public data and I have some private model weights okay so what is that gonna be good for so um I don't know if anyone come from the AI or machine learning space but there is this famous platform called Kegel which you

can basically people will uh well companies will post their data out and then you're supposed to build a model for that data right and then the only way for you to get the price is actually to submit your source code because only by running your source code then they can know that your model is 95 accurate 98 accurate etc etc well what if we actually am able to hide at least the model weights maybe not the architecture but the model weights from the uh from the Bounty like provider right so instead of giving my whole source code to them I just give ackp I just give a Serial knowledge proof of I have this model I have some hidden rate weights

but then you know that it's gonna give out 95 accuracy right so I put the whole data set through my model and give out all the model output so you can check the result the only thing I'm not giving you is the weights okay so this is one application that you can do um and that is also um kind of one um direction of research as well right then well these two scenario what is it good for well it could be good for multiple things so for on-chain application it can be good for on-chain trading model so I know that there's actually some trading model going between like the cosmos ecosystem and the ethereum chain and right now how

people are doing it as they trust like a relayer in the middle to do the inter interoperability right so for uh you get like for example some trading model result on the cosmo side and then you're supposed to have a one person that really that information to the ethereum chain right so what if we can have a trustless way to do like all these AI models so that's one thing um or as simple as what if we can have a biometric authentication for a smart wallet right so let's say I have uh I have a very good model for fingerprints or for face recognition I can do that and then have my smart wallet which is a verifier contract to prove that I own

some fingerprints or to prove that I own some face face ID okay so that's one application as well and also you can have a lot of different tools um basically running AI on ethereum even though the smart contract doesn't allow it by size right because now you can run it off chain and then just submit the proof on chain so that's uh the on-chain application for off chain uh there is actually a lot of things you can do as well so for example Outsourcing inference computation right so I have some data I really want to run a model through it but I don't have the GPU to do so if I want to give the data to someone else I also want to make sure that they run the computation correctly

right it's not just like okay I upload the data and they say they run it so I need a source I need the verifiable way to know that they actually did what they promised to say so that's um one way you can use it off chain and also uh benchmarking so measuring model performance that's also one that of the application kind of like kaggle how do I actually how do I actually believe that you have certain models Without You handing it over so that's also one thing and also proving model training correctness so this is something that is really in progress right now is that can we also do decentralized model training using ckml okay so um just to kind of wrap it around and

let at least this is a hacker house so I realized I should mention some of the tech stack as well so actually uh I kind of just say that okay we can put a neural network into a ckp circuit but in reality it's not that simple in particular there's two challenges so the challenges is first of all uh ckp circuit is actually fixed point in particular integers okay whereas you uh all our neural model neural network actually exploit on the fact that it's floating point right so you have all the gradient all the weights it's actually floating point so to convert floating point to fixed Point uh there's a kind of a trade-off there and also model size okay so um just to kind of credit on my fellow

ckml Earth in the um in the past two years so actually two years ago this is the first time we have seen ckml which is just linear regression okay which is already useful for a lot of application if you think about it a lot of the real world thing we can actually use linear regression to achieve but that was the first that's kind of starting point two years ago okay and then one year ago there's actually a group saying that they did a neural network on mnist so for those of you who don't know Ms is a bunch of handwritten digits so it's a koi data set for machine learning for computer vision it's a bunch of like black and white numbers okay and for one year ago they kind of cheated they

didn't put the whole neural network into a circuit they just put the last layer okay so the whole layer is public until the last layer so that's the one year ago and then we fastly advance to putting a whole model onto a ckp circuit and then actually we also started doing AI Arts generation circuit um and then two weeks ago there is a group that claims that they can do 100 million parameters of models onto ckp and then also last week at the CK Summit uh brand news groups say that they can actually run gpt2 on a ckp circuit okay of course it's huge okay just saying that it can run doesn't mean that it runs on your laptop in fact you actually

need one terabyte of ram I believe to run the gbd2 as a ckb circuit okay and then also last week we also started experimenting with other machine learning models right so that goes back to the challenges where you know the current neural network Paradigm doesn't really go with this two challenges here in particular the fixed point and the integer part so actually um Beyond neural network there's a lot of other machine learning paradigms out there that is less discovered because of the whole neural network hype for the recent years so for example there's something in the 70s called the waitlist neural network which people actually use to recognize fingerprints okay and that

should be quite CK friendly there's a lot of things that is way more CK friendly than a lot of other like floating Point models so just to kind of like see the trend of really transforming over a lot of the past two years really right so that's the kind of wrapping up the last bit of my talk so um this is kind of a POC that I've built before just to kind of let you visualize how you can potentially build a CK kaggle I call it the sea kaggle just to write on the word so the idea is that well how would a kaggle look in a decentralized point of view so you have some companies posted a bounty

essentially they will split their data set into public data and private data just like the normal cargo his property data is used to train a model in Python and then there is this toolkits that I built that basically translate your model also then into a ckp circuit okay so this is already done by many groups you can transform a Keras model you can transform a tensorflow lite model you can also transform a pi torture model so that's always done okay once you have that model basically you submit it for a verification and you submit the proof to the verify contract right and also at the same time while you submit the proof you also encrypt your model to be submitted as well right

the reason why you want to encrypt it is you want to delay it when the bounty provider is going to get the model okay and then once you encrypt it at the end you also check your model with the private data so once everything checks out the accuracy looks good the verifier say yes it's a valid proof then at the end you release a bounty okay so this is a kind of a high level diagram but in excellence you can think of it as at least four to six transaction back and forth in a way so it's a little bit like a SQL contract really so you're putting down your model kind of putting down a bit and then there's a bunch of verification going on before releasing so when the bounty is releasing a

release then the person also get the decryption key to decrease your model right so that's how it's done and at least there are three major components which is you have kind of a circuit library that does all the common operations in machine learning uh you'll have a transpiler which converts the machine learning model to circuit and then you have uh well the actual platform which is a DF right so it includes all the smart contract Etc so this is already a proof of concept on my GitHub which I will link to later right so that's kind of a just a proof of concept what can be done of course right now the model size is

pretty still pretty small that you can try to fit on it right so if anyone is more interested in the previous project here's the more detail write-up if you really want to check out the details it's not too technical it's more of a description of like the development process and Etc hey right so um since we're at a hiker house I might also mention all the tech Stacks that you can possibly need for ckp so circum is one of the more I guess basic language to write circuits this is one thing that you see often when you're starting out um it has like an option to prove with different proving system and also most

importantly export as a verifier smart contract which is some of the circuit language actually don't okay so this is one thing when you want to if you really want to have an unchain verifier this is probably the language to go to um Cairo which is the language for stocknet is a more general purpose during complete language it might not necessarily provide you privacy okay unless you actually know what you're doing right so you can do a lot of things on start net with Cairo without privacy okay just just because you're coding on start net just because you're coding on Cairo doesn't mean that you're writing ckp okay so be careful of that but you could at least with Cairo one I think you could um and then there's also rust

uh which is there are quite a few libraries to do so like a Halo 2 plunky 2 Etc um these usually have the latest proving schemes so it's the fastest uh the problem is first of all you have to be familiar with rust itself you also have to be familiar with something called a punkish arithmetization which I'm not going to explain here but in essence you're no longer writing even a program you have to lay out your circuit in a way that fits like their aromatization so that's again uh I think in here it's kind of like a well from here to here is an increase in difficulty level let me put it that way right oh that's uh but the important thing is also that's where

the most exciting things usually happen is to uh is in the rust language so that's the of the tech stack right and so how do you actually get started if you want to write ckp so these are several kind of more um introductory well I wouldn't say zero X Park and CK hack whiteboard series is necessarily introductory but uh they are very all very good resource to start through um there's a lot of tutorial on zero X Park uh this is actually a open source course that is built by me focusing on more on the applied side and if you want to have a kind of if you like videos more than the CKY board session is the perhaps the yeah the channel to go to

cool uh so yeah so just to credit all the projects that I've mentioned so far in case you want to check out any of them um and here's the projects that I've mentioned so far so I think it would be a good time to take questions if anyone has any questions it doesn't have to be the talk related can be anything CK related can be anything you heard about and be like I don't understand what that means yes correct correct yes so all the calculate uh yeah so this part is in Python and then you put it in the circuit before you submit it actually you also do the computation of the proof of chain so you just submit a result so a circuit

you can think it of us as a list of operations that needs to be done to the data so um why we don't call it a program is because those operations are quite limited so you can only do addition and multiplication up to quadratic terms right so that's why we call it a circuit now program but yeah but you can think of it as a program that you write for ckp a simple one yeah basically a bunch of operations that you need to do yeah good go ahead these like uh foreign

right so that's a very good question um the funny thing is I'm actually not a cryptographer so I'm not very familiar with it as well I think for us as if you're writing an applied CK app most importantly is to understand the trade-off so when I say it's going to face out that's just because there is some benefits to it okay so for example actually polygon ckids still use growth 16. if you look at their Tech stack um but the idea is as I said go 16 you need a trusted setup for every single circuit so imagine you have to invite a bunch of people to contribute Randomness every single time but what they get is small blue size which means the verification is very fast so how polygon

ckid actually does it is they have some very generic circuit to prove identity in fact I think they only have three right now so if they only have three kind of identity proof then they can do a transfer set up at the beginning but that also means you can't add new types of identity basically because if you want to add new types of identity then you have to do a whole truster setup again yeah so uh yeah so I think when I say it's going to move away from Punk it will mostly be moved away from these but not the whole punkish scheme so the Palm kitchen schemes is pretty much where everyone is looking at right now oh uh the I think the reason why everyone is

looking at it right now is probably this second property here where you don't need a setup or even no setup so that's why people have been looking at it it's also way more efficient actually than actually writing a circuit so in this case they are aromatizing a circuit instead of writing a circuit itself so that's why um yeah the second one is becoming more and more popular but that's not saying that the first one is not used actually it's still used in a lot of places is that possible like for one circuit to several yes but no so even for different sizes of CNN like the

different fields yeah the different convolution size uh you actually that that parameter there is already a need for a new circuit so that's the annoying part um it's not saying that it's impossible so if you use like um this punkish scheme what you can do is basically trying to fit all the machine learning model into like one giant what we call lookup table okay so instead of just Computing everything everything is a local table then essentially you could do multiple different machine learning models over there but I'm not sure how efficient that would be so yeah so the idea is still at least for now for each model you have like one custom built

circuit for it no not yet so I have the Benchmark for for example a waitlist model versus a weight for model so a neural network purchase what I say the 70s when they use a weightless model that is five times less efficient than like convolutional convolutional model so for every like yeah for every lookup table you have five times more parameters than the convolutional model at least for now so yeah but there are more benchmarks that we'll be doing yeah but in in that case what they have is uh so for easy KL um what they have is a transpiler that transpiled the onnx which is the pi torch Network graph to a circuit but

it's still a different circuit like it's a transpower which helps you easier to get a circuit but it's still a separate circuit for each each model cool well if there's no further question I don't know if any one of you are into Co-op collection here um but I do have a collab that I have here uh hold on let me get to that part uh so while I'm not just doing a lot for pull up stick so the idea I thought was that it's actually quite difficult to maintain contact afterwards it's like yeah you got my Twitter or something down but you don't really remember how to find me because you don't know my username Etc so I thought poab could be a good way to let you recall that okay you have heard

about this ckml talk in April 2023 right so you just go to your pull app and scroll to April 2023 and then find me so I haven't given a lot of codes but I don't know if any one of you actually call a lab pull up you can go ahead but yeah so inside the web other than the Arts you also get a link to my link tree which includes all the GitHub uh repository that I have or by Twitter or my telegram so that if you anyone wants to find me to talk about ckml you're welcome you might have to because they don't really support multi-scan so you might have to scan what I want to see if you guys Clash that's the bad thing luckily we only have around 20 people here but otherwise it will be pretty annoying right I will take any last

minute question if there's any otherwise that would be the end of this talk thank you [Applause]