[Music] Hey guys, um we are Mo and if you are interested in uh uh this slides, you can scan this QR code and there is also like GitHub link and Telegram or Axel documentation and also price details in this link. inc. And I'm Viv from PSC team which is uh uh a team within EUM foundation and we focus on like exploring ZK solutions on on Ethereum. Yeah. So if everyone is ready then
let me introduce what is Moro. So Moro is short for mobile approver. So our goal is to help the developers to build ZK mobile app easy. And here we use like privacy preserving because we we don't uh you can also use like for example MPC FH something like uh cryptography protocols in mobile app
and what provides so we provide a rust wrappers for different proving systems. So this um this ROS code can run natively in mobile with Uni FFI and we also provide crossplatform bindings for iOS, Android and wasn't with uh UNFI and like wasn't ben. So you don't have to like write different code for iOS and Android. You just use the Rust code and then you can uh use it in different platforms. And we also provide CLI tools for developer and this is ideas inspired from like phoneree or uh create react app.
So you can just easily type some easy commands to start a new project. And also we use temp uh provide some starter templates to quickly start uh projects. For example, if you don't have experience in ESCO or Android Studio, you can just download the uh templates and just getting started with that templates. And we also provide mobile SDK management. For example, we have several ZK protocols like SIM uh semapform or ZK email something like that and Moro is uh can help you like Revit as a mobile native uh package like you you install MPM install and you can use the similar way to install on your iOS or Android application.
Yeah. So here's how you can getting started with Moro CLI. So we publish on cargo. So you can use cargo install Moro CLI to install the Moro CLI and then you can use Moro-Help to see all the uh comments that we provide and you you can just follow the step um or or or you can use like a moro init help. So, it's the specific help uh instructions for for this comment.
Yeah. And here's how you can use the Moro CLI to create an example app. So, first you you can use like Moro in it and choose the adapters you want to use. For example, Cir, hello to or noir is currently what we provide. And also more build.
So you can choose the platform you want to build for for example iOS and Android and you can choose the if it you want to build for a simulator or device during this step and there's a mo create so you you can use this command to create a templates for for example Xcode Android Studio rig native or flatter which you want to build your mobile app four.
And if you use want to use the templates and want to update for example here is uh you want to update circum circuits and then you you just put the wasome and z key in the folder you create uh with mopro init update the rust witness function. Uh for example, here is a ketchup 256 and uh uh yeah, you you have to like define your witness function like this. For more detail, you can you can see in the documentation. Just make sure you update this uh witness function to match your Z key and was file. And if you want to customize more functions for example uh generate proof is not enough for your application and you want to use simopform- rs to generate semaphore identity.
So you can just import a rust qual RS and you can use the simophone RS identity in in the Rust code and use unit FFI export uh this kind of macro procedural to export the function in uh in your iOS and Android app. So you can define your customiz function But make sure your like input type and output type matches the UniFi documentation. And here we suggest that you use like uh like uh string or int or um just as simple as possible to make it more compatible with UNFI. And after you update the circuits and also customize the function, you need to run MOO build again to update the bindings for your platform. And then you can use MOPro update to update these bindings in the folder you generate um you want to build.
For example, the S code or Android Studio. And here we provide several examples to um to inspire you or you can just clone or fork this repository to get more idea. So this is uh steals node mobile and it is built from uh uh steels node is built from uh no team and then it it is uh no zkjwt circuits. So you can use google Google google to log in with your uh organization account. For example for us we we have psc.
dev death domain email and then you generate a ZK proof to prove that you are within their organization and then you can uh publish a post in this platform as like someone from PSC.dev staff and you can also create a like internal chat with uh the the people from your same organization. And another example is Zuma. So it is the ZK version of Luma. So imagine that you went to a event and you want to show your uh uh name or email to the host.
Um it might somehow reveal your like information. So the Zuma is built on uh with semaphore. So after you register an events you will be a member of the mer tree. So you you just need to prove the membership of the event without revealing your name or email. And it is a good also a good example that you can use your mobile native app to access like camera or photo gallery.
And another example is like an adar. So anadar is um circum circuits. So if you have a DAR identity, you will have a QR code of it and then you can use another to scan the QR code to prove that you are the identity is signed by Indian government and you can just build any um any app up above this Adar identity system. And here is another example that built by a community member. Uh so it is a proof of ge location.
So it also use like GPS in your mobile to generate a proof to but without revealing your uh your real true GPS uh location. And here's another example you uh because right now um uh because the proofs can be verified on chain. So we want to use like reown apps key to connect to a wallet to uh call a onchain verifier. So if your application want to interact with onchain verifier or any other uh protocols, you can use this template to see how to uh you how to call an onchain how to send a onchain transaction or call on trend verifier. And of course
and here are also some ideas to inspire you how you can view. So uh here here I list are some ZK uh protocols but they they maybe they don't have mobile native app or it can be improved for example semifor self protocol and GK passport also some of them have some have their mobile native app but we can improve features on their their app and also reputations like Rory mo zk ts to no 3 and messy
because they have already their their circuits. So you don't have to worry about uh you you have to write your own circuit again. You just need to build a like front end to interact with the circuit and also transactions like tornado cash2p uh fruity rail gun some of them already have their circuit. So you can use and do is also a interesting example although you don't have like ZK features but you can um try to figure out how to en enable uh ZK feature in DO because we know DAO is a very successful app in in the uh web three.
Yeah. And also you can uh thinking about social social app or gaming. Yeah, like the previous uh steals note is also a social uh social app. And here are several social related um protocols you can uh refer to and gaming like D forest. Yeah, imagine you can just play D forest on your mobile.
So let me introduce our price. So we have five 5K and we separate to three three places first, second and third. And what is the qualifications? You have to build a mobile native app. And actually if you want to use a browser in mobile native app, I I think it should be fine.
But you you you need to call a mobile native prover with mro. So you have to figure out how to use the web app in in mobile native and and call the mobile native prover. Yeah. So the second uh requirements is that you have to use uh mobile providings or SDKs and third the proof should be generated in on client side. So you cannot relate to server or TE or other place.
You can um try to like make the proof generated on on client side. Yeah. I also want to share our price. Yeah. Um uh because uh also we are from like privacy and scaling exploration but on the price uh website we are from like Ethereum foundation.
So uh just look for like Ethereum foundation price uh descriptions and also want to mention that because there are se so many mobile capacibilities comparing to browsers for example you can access to biometrics GPS NFC camera photo gallery Bluetooth and also push notifications they are pretty hardly to access by browser app. So um we can enable more features in in mobile.
Yeah. And if you have any questions, they are our document GitHub, Telegram X and my personal like uh GitHub and Telegram. And if you have any question you can go to the telegram there will be more people like in the community can help us to uh help you to answer this questions.
Is there any question?
Hello. uh when you said like push notifications, what's like the use case for ZK in there?
Yeah. So for example, imagine that you have a like ZK transaction app and then you want to send push notification to the receiver say oh you you got like uh 10 USDC received this kind of notification but it doesn't have to be related to CK it just then like app
just mobile thing.
Yeah. Yeah, yeah, yeah, yeah.
Thank you.
Any other question? Thanks.
You you mentioned that the the private transaction protocol can be some uh can be the idea but like there's already like tornado cache fluid key on the web uh there has web app right so why do we need a mobile app on that like what what's advantage of use just building this on mobile
um because I I think for a mobile native you will have like better user experience like imagine that you are um you are outside without laptop but you want to send transfer transfer to your friends in the restaurant something like that and you don't want to like open your laptop and like uh connect to Metam mask you just want to use your phone to um handle this transaction so um we want to um provide better user experience for users.
Yeah.
Thank you.
So I think you mentioned to qualify for the bounty it has to be a mobile application but like for example if our project we we would want to have like both web app and mobile app. Is it okay if we just wrap it with expo like with our react native expo and then the other one the receiver like the other user use case for our project will be on web. Will we still qualify for the bounty?
Uh yeah, I think XO is a React native.
Yeah. Yeah.
Yeah. Yeah. It should it should work. Yeah.
So it will also count as a mobile app as long as we do the demo.
Yeah. Yeah. But you have to use the like mo prover to generate zk proof instead of like snarjs or like js prover.
So we have to use mo prover. So because now we're on snark js and circom. So yeah. Yeah. Yeah.
Yeah. Okay. Cool. Thank you. Thank you.
Any other question? Uh so you didn't mention what are the limitations like what type of proofs I can generate like for example can I generate recursive proofs with more pro
what what what
can I generate recursive proofs
cursive proof is to be
um um right now I think like ZK4 has already like do some research on cursive proof but I think it's not that um realistic because it requires several uh many like gigabyte of memory on your phone. So if you have better device, I think it should be possible.
So could work. It's like a luck thing.
And thank you [Music]
Automatic transcript — names and jargon may be misspelled.