Noir the zkDSL | Savio, Aztec | ETHTaipei 2023
ETHTaipei·Mon, Oct 9, 2023, 12:00 AM
Transcript
[Applause] thank you and gmgm um I'm Savio from the Noir team at Aztec before we jump into the sharing itself let's do a show of hands just to warm things up um is there anyone from the crowd that is interested or has had the urge to learn about CK development can I see your hands cool cool is there anyone from the crowd that has actually had the experience of developing in CK can I see your hands awesome awesome um is there anyone from the crowd that is happy and satisfied with the SDK development Tech stack can I see your hands interesting cool um today in this session I will be diving a bit deeper on Noir The Secret Language bringing you guys through it we will be shredding things pretty lightly so um hopefully we will it will be helpful as well as like enjoyable to you guys um just a quick rundown of today's sharing and we'll be first covering an overview of the language itself then a bit on the features of the tech stack that the language offers a quick glimpse into the project landscape of Noir then on some things that we might be interested to keep an eye out for in the New Orleans but the starting things off um just to make sure we are on the same page syncing up and we all know CK proofs are powerful both for shielding information ccash as one of the Pioneers using CK to enable private transactions Dark Forest if you are familiar with the game uses CK to hide away planet information Planet coordinates within the game while on a public chain and CK proofs are also powerful in compressing computations so CK is saying go all the layer twos um CK row UPS specifically uses CK to compress State transitions between old States and new States Axiom if you're familiar with the project uses CK proofs to compress the retrieval of historic ethereum data etc etc so CK proofs are powerful for two main features but developing in CK has been hard it often requires an advanced degree of knowledge in cryptography as well as manually crafting your circuits manually crafting your code and despite perhaps not intended but CK development has been pretty Broad in terms of development it's often tied at the tooling is often tied to say specific proving back ends as well as tied to maybe ecosystems or specific chains depending on the two stack that you pick which brings us to Noir the CK language before we dive into the language let's do a five second quick spot this difference challenge um you don't have to answer me but um can you actually Spot the Difference between the left side and the right being just the color um but Jokes Aside um left side is actually a Noir excerpt and right side is a Ross excerpt which brings us to the killer I would in my personal opinion and the killer value proposition of Noir as well as our original intention to develop Noir is that we think ckt development should be about writing code like a developer instead of writing circuits like a cryptographer and we believe that Seagate development is meant for everyone well except the guy in the middle of the curve but um let's take a look of what Noir itself offers then I want to know that we are still in Alva so um syntax system we are seeing today could change down the road but let's see what's available in the language starting off with primitive types we have fields we have integers we have booleans we have strings also compound types you can Define arrays Define tupus define structs but we also have control of those if statements for Loops in this example that would be and if Boolean condition turning down into a for Loop that's doing account incrementation and we also have operators both comparative and bitwise as you can see here not equal to as well as smaller than comparative bit wise n and bit shifts etc etc and there are a lot more features in the language itself too to name a few more juice for you to organize your code logging for basic debugging features comments well just like any other language out there but what's in addition to the language is also interesting you can write tests in Noir so instead of like learning and managing another language for testes you can write them natively in Noir Noah programs also comes with the capability of generating a solidity for Via for those programs which enables you to compose to deploy as well as like compose the first wires on evm chains to enable web fee or depth compatibility and Noah also comes with a JS TS package which allows more of the developers to prove verify compile compile Noir programs in typescript environments which could be very valuable if you are building say a browser or adapt that requires a front-end interface and Noir is also proving backhand agnostic um what does that mean um the typical compilation pipeline of the Noir program starts with well developing the Noir program itself which is then compiled to an intermediate representation which we call Asia abstract circuit intermediate representation to be specific but you can then be compiled down to different proving systems plonkish proofing systems narc graph 16 Etc so developers can actually pick their like favorite proving system or decide which of the proving systems they would like to tap into the values and advantages that they offer um having covered like what Noir itself office let's take a quick glimpse of the project landscape of projects that are built on Noir starting off with games we have supported the battleships team on building and on chain implementation of battleships the game living on a public chain but with hidden Festival informations hidden vessel possessions using Noir we are also partnering with Aragon on researching and developing a private Dao governance solution based on ethereum storage proofs for announced out specifically but down the road yeah we can definitely extend that to support different dials we have also been supporting Knox a company building out a hiring platform for hiring pseudonymous talents also using Noir and there are a lot more different projects too just to name a few there's CK trivia CK capture and there's also one guy building out a mini ckvm in Noir um pretty cool and what are some of the things that we might be interested in keeping an eye out for to perhaps enable you guys building out CK programs or ck projects one of the things being recursion so our engineering team has been taking a look into how how we can enable recursion within Noir if you're less familiar with what recursion is you can interpret it as like a proof of proofs or down the road a folding proofs into a single proof that feature alone unlocks like CK programs that are of infinite sizes and or it would enable you to compress multiple proofs aggregate multiple proofs into a single proof that you can then provide say on chain another thing that our Engineers has been have been heads down building with is introducing smart contract syntax in Noir which extends Noir to not being only a proven back-end agnostic language but also a chain at North Tech CK smart contract language which theoretically can be pluggable with any programmable L1 l2s that supports private and public States and this is actually a pretty important feature and a big unlock in our viewing point that for developing CK depths houso so developing a secret app today starts with building out your Noir program which you can then generate a solidity for Via for it as I mentioned which you can then Deploy on say ethereum or any ebm chains which makes it composable with other evm devs out there what's the problem or what's the caveat for this though is that evm doesn't understand evm doesn't manage its private States so if you have information to hide say developers ticket apps today deploying on EVMS each of the tab itself would actually have to manage its own private States and if you haven't had the experience of managing like normal device managing Merkle trees I can tell you that it's definitely not an enjoyable experience as well as It's tricky to securely Implement those as well imagine what if a developer don't actually have to worry about writing more but in addition also managing local trees sparse Miracle trees nullifiers solidity logic they can just simply write into our smart contract more elegantly and that's what we are extending Noir into to be a CK smart contract language that CK depths can actually be deployed on chains that support private and public states where the chains can then abstract away all the local Tree Management storage management just like how you develop develop solidity tabs today you don't actually have to deal with like vocal Patricia tries storage tries Etc but um before we wrap the sharing up oh yes there's a quick glimpse of um the smart contract language too you don't have to peek into it too much um just wanted to show you that you could Define like secret states there would be contract Constructor um and constrained functions etc etc um more to come afterwards but um before we wrap the sharing up and one more thing um we are very proud to announce that we have completed our Ultra Funk integration literally two days ago within East Taipei and the auschia plan proving system itself comes with very efficient implementation of cacaq and ecdsa for vacation which means the integration actually unlocks developers to prove in browser KAC and ecdsa and if you are less familiar with those Primitives being able to prove cacaq enables developers to build out CK programs that could benefit from very guest efficient for vacation for vocation of hashes and trees you can actually build like a cat trees now and being able to prove ecdf saver vacation means CK program secret developers could benefit from a much smoother signing experience where the users can only can sign with their like EOS or their metamask using ecdsa signatures but um on that high note this wraps up the quick sharing today feel free to scan the QR codes um the slide that is available here and a small tip is that level you can zoom in your camera to like snipe for each of the QR codes if you guys are interested but in the meantime yeah happy to answer questions if there are any from the crowd and [Applause] any questions foreign what's in the future for Noah like what do you think it's kind of important that you want to highlight or I guess like how does it really put up with adult or well I guess like what do you want it to be known for and how does it put up with other languages yeah DSL right yeah um that's a very good question thank you for it um the fashion of Noir is to be an agnostic and flexible CK language um that includes both like the traditional sense of building a CK program with it within it down the road it will also be available despite like despite mentioning about like extending Noir to support um like smart contract Noah itself will still stay and be improved on being a CK CK language that you can write off chain apps or like non-web three apps um using Noir but we're also extending it to be a like chain agnostic CK smart contract language as well so it will be the division is for it to be the CK language that um suits all the developers needs both web 2 and web3 for CK yeah anyone has any questions no okay ladies thanks again to Savio thank you oh okay cool
Automatic transcript — names and jargon may be misspelled.