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

Loading player…

MPC, ZKP & FHE: Which Cryptography to Bet On (Hint: All) | Guy Itzhaki - Fhenix.io

Ethereum DenverWed, Oct 9, 2024, 12:00 AM

In this session, we will explain the key benefit of each cryptographic branch, the main differences, and how they work together to solve Ethereum’s data confidentiality problem. APPLICATIONS FOR ETHDenver 2024: #YearOfTheSpork ARE OPEN APPLY NOW https://ethdenver.com/apply

Transcript

[Music] hey all um good morning or good afternoon I'm gaki I'm the CEO of Phoenix and I'm going to talk about MPC zkp fhe and even a Sprinkle of tees um and in the context of which cryptography to bet on um before starting to talk about the different Technologies I just want to give a brief overview about myself uh I'm not a crypto native guy I used to work at Intel for many years um recently left Intel and my job at intel was the director of homomorphic encryption and uh as part of the day job I had to meet a lot of people out there uh some of them were developers but some of them were just business-oriented and every time I tried to explain the difference between uh zkp fhe and and MPC I got a really vague look on on their face so I decided to try and and explain this systematically but actually try to keep it at a bit of a high level uh to make sure that people do understand now we've all heard about these three-letter uh cryptography some in the context of scaling some in the context of privacy I'll try to make a little bit of a order uh in that space so um before explaining what these uh cryptographic are all about I want to set uh take a minute and just explain why do we care about them and I'm going to talk about it in the context of data confidentiality so every time people hear about data confidentiality they think about privacy they think about protecting the users and it's all true but actually we believe at Phoenix that there is is a massive problem on the blockchain space today which is that everything on chain is public now for some people they may see it as kind of a feature of how blockchain works but uh what I believe is that actually this is a limiting factor and the reason is that this doesn't just expose users to their data being public it also reduces our ability to develop new use cases that can that can actually uh grow the blockchain ecosystem so I'm going to talk a little bit of a few examples and then I'm going to talk about the the different solutions so um I'll start with ones that are actually quite easy to understand and I'll take an example of confidential transactions where we're doing transactions on the blockchain everything is uh on chain you can actually see everything that's been ongoing there um which exposes users and if we can get encryption on chain we can actually enhance the user security if you take another example of onchain gaming like poker that can't really operate in a trusted way if everything every bet that you make is public on chain and all the way to confidential voting which I don't think I even need to understand why you need encryption on chain but this is just you know the the I would say the basic use cases things starts to become way more interesting when we're going into to the defi space when we're trying to look at problems like me when you want to look at solutions for me and today there are two paths to solve the me challenge one is by encrypting the mempool which clearly requires encryption and the other path is also by using me auctions and and even then when you do auctions you need to have encryption to make the auction uh uh viable and and and there are compliance pool and decentralized entities and account obstructions all of these use cases would benefit from uh encryption and data confidentiality so let's start about the the cryptography that people heard the most which is zero knowledge proofs um I want to make sure that I I use the term zero knowledge proof versus just ZK because people tend to forget that ZK is actually aing mechanism so what zkp is for folks who don't know it's basically a cryptography method that enables one entity to prove to another entity that they know something without actually revealing what it is that they know kind of hard to understand how you can achieve that but if you take that example that people typically tend to provide which is uh uh an entity a that has two balls in their hand one blue one red and another entity that wants to show that entity that they know they have balls with two different colors but without revealing that they have a red ball on the right hand and a blue ball on the left hand what they can actually do with zkp is tell that entity to take the balls put them behind their back and flip them or not and show them again and since they're able to see the color they'll be just be able to say yeah you've flipped them or you've not and if you do it a several amount of time you can actually prove that you can see that this entity has their balls in their hands without actually revealing the colors of the balls so that's like a a very basic example but uh when we think about zkp in the blockchain space typically it's being used in two domains the first one is the one that everybody heard about which is enroll up validation for scalability being used by Stark net and ZK sync and scroll and polygon but when we start talking about using zkp to address data confidentiality it it is actually quite Limited in what it can offer because remember zkp is a proving mechanism it does not enable you to do computation on data while it's encrypted and as such can provide confidentiality to a very small amount of use cases if you want to do auctions if you want to calculate on data that's coming from multiple entities zkp is not the solution another cryptography that's being mentioned is multiparty Compu ation or MPC and MPC in short is basically a technology that enables a group of different owners to jointly compute a function of their private inputs in layman terms we can take a private key take this private key split it into shares and then have each party do computation with that shair and only once everybody has completed their computation with that chair then the computation itself can can actually be executed MPC today in the blockchain domain is used mostly in digital asset custody wallet uh uh with with fire blocks and Zeno and and coinbase and others and the reason is that it has a limited set of entities um let's take the scenario of a custodian that you don't necessarily want to give uh a custodian full control over your private key you actually want to have the ability to sign it and have another entity sign it together with you and only then the transaction will be executed that's where MPC is being used and it's being used quite widely the problem with MPC is that it requires significant communication and the bandwidth especially when you're trying to work on the internet so it is limited to use cases with a small set of participants um this picture here is taken from the storm last year in I5 port where I'm at and I was stuck 4 hours and that storm and the car um so I'm not saying MPC takes 4 hours but it is definitely slow and limited to a small set of of uh of users and um not to forget there is also trusted execution environments a tees which are a secure environment typically within a CPU that enables you to do computation in a secure fashion inside that trusted Hardware um are great they have good performance but their security guarantee is lower than a cryptography guarantee uh and they're prun to side Channel attacks so uh now I'll introduce the new kid on the blog and that is fully amorphic encryption um or FHA in short um what FHA is for those who don't know is really a very novel cryptography actually anybody who googles FHA will see the term it's the Holy Grail of of encryption Technologies because what FHA does it enables you to do computation on data while it's encrypted take a minute and absorve this you can do computation on data while the data is encrypted so unlike any other encryption technology that requires you to decrypt the data before you can do computation on it with FH you can actually do the computation on it so how does it work um I've tried to explain to many people how FH works and I try to use like eliberate mechanisms and I think everybody after 30 minutes 30 seconds just went you know to sleep so I'm not going to try and explain it in a uh mathematical representation uh I'll give an example but I do want to uh make sure that people understand that the ful homomorphic encryption comes from the mathematical terms of homomorphism which basically means that you're maintaining the same mathematical formation when you're moving from one structure to another so I thought hard about the best way to explain what f is I was on the plane I saw Spider-Man enters the Multiverse and I thought you know what that may not that may be a good a good example so in in essence what we're doing when we're encrypting data with homomorphic encryption is we're basically transitioning it from one domain to another that the data is encrypted but it actually maintains the same mathematic values that it has before the encryption so given that we're maintaining the same mathematical uh uh formation we can now actually do computation and uh after that uh decrypt the data it's very similar to like when Spider-Man uh crosses the Multiverse so that's like the encryption part of it uh when he's in the other realm he's still maintaining the same information you can do whatever you want with Spider-Man and then when he comes back he gains all the insights that he learned uh um and at the other realm so why do we care about FHA um well as I said it's the Holy Grail of encryption uh it's been discussed for many many years and uh there's been constant progression uh around uh FHA actually um people tend to think that it's slow and compute intensive and it is compute intensive but there has been constant progression that actually makes FHA ready for prime time today but the second part of it it's actually that it's very easy to use so uh with Phoenix we're supporting solidity so we're evm compatible we're using a library from uh Zama and uh what you can do as a developer is basically just use the same solidity language that you use today but you just have an additional function to encrypt or decrypt assets you don't need to learn a new language you don't need to understand what f is it's basically just an ability to encrypt and decrypt uh very easily and very natively um now it's not just us that are excited I think the market shows that I I've just put a picture here from the marsari report about top 10 Trends to focus on in 2024 and FH is one of them so it definitely is transformational and and going to make a whole lot of new use cases uh maturing so uh in short I'll talk briefly about Phoenix and then I'll give an example of how all of it glues together so Phoenix and itself is a layer to uh um ethereum compatible platform we're buildt on top of the arbitrum stack and uh we can actually enable computation over data while it's encrypted solidity based very easy to use so who should I bet on I talked a lot about FH and and maybe you think that FH is the best solution and I do think it's great but actually for solving the challenges we need need all three of them we need the combination of zkp fhe and MPC and the reason for that is that we need zero knowledge proofs to prove the correctness so when a user encrypts data we want to make sure that the data that encrypted is proved and is verified and that's where zkp comes into place we need FHA to do the computation on the data while it's encrypted and we need MPC to protect the network key so with that I'll give just one example of private voting uh we'll take an example of a private voting contract that initializes a new private and public key cares uh these private Keys Never exist in oneplace thus usage of MPC the users can encrypt their votes with one or zero and that is through using the homomorphic encryption that I described we use zkp to prove that there is actually no double spending that's happening and uh we have the validators that can actually tally all the votes without seeing these votes and that is the usage of amorphic encryption again and at the time of reveal of the results basically the validators decrypt the vote with uh uh uh no other data gets licked and again this is using MPC so with that um I'll end here U more than welcome to come and ask me questions after the presentation follow us on on Twitter um and and thank thanks for [Applause] joining

Automatic transcript — names and jargon may be misspelled.