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

Loading player…

zkBob 🛠 How to Use zkBob Cloud in Your Application - Kirill Fedoseev

ETHGlobalMon, Oct 9, 2023, 12:00 AM

Speaker

Kirill Fedoseev

Join Kirill Fedoseev from zkBob for a workshop titled "How to Use zkBob Cloud in Your Application". And that wraps up 2022! ETHIndia 2022⎯the biggest Ethereum hackathon to this date with over 459 projects built within 36 hours. 🫂 2000 attendees from 🌆 321 cities that were 🌱 44% new to web3... ...joined forces in Bengaluru to write history. Thank you for taking part in it 🫶🔥 ----------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

foreign [Applause] [Music] project so today we're going to talk about next Generation stable coin with optional privacy so we'll start first by just brief introduction to our project by privacy is important whatever we're trying to build what's on our roadmap and then we'll talk about what tasks we prepared for the hackathon what ideas you can use for hacking something together with us and just yeah in the end we have a small live demo of the API we're trying to propose to you to use during hackathon ecosystem projects we have three main products so the Bob itself is a multi-chain multicolateral stable token with what we call optional privacy then the ziki Bob UI itself is a basically a d-app for private micropayments which could be done at the zikibo protocol and then for a simplified Integrations with another projects and some easier hypothesis testing we also developed the ziki Bob Cloud solution which is basically some semicustodial wallet for integrating private transfer and making them sort of private transfers as a service so in our use cases for Bob we are currently exploring the main dominant use cases related to the payroll and invoicing so there's a big problem with the Privacy related things when when it comes to making payrolls in stable coins so that's kind of a big hit for making it a private use case for making salary transfers within the Privacy pool then we're also exploring some other use cases like vendor purchased in donation trade fire use cases for example like for uh crypto off-ramp and on-ramping from Bank deposits or something like that and minor emittances so when we talk about for example employee cellularis management so how it can potentially work so we have our employer which would like to distribute salary on for example a monthly basis so he has some probably already stable coin allocated for salary payments he can convert his usdc for example for interbop at a one-to-one ratio then you can deposit this Bob into the Privacy pull ziki Bob the employer can deposit his swapped Bob into the Privacy pool then pay privately salaries within the pool to all other employees for the SDK addresses they provided and then employees can withdraw the Bob and use the use it for their everyday expenses whenever we need that so others case includes vendor purchasing organizations so basically here the idea is that you can organize easily some peer-to-peer payments within the Privacy pool you can buy some things you can sell some things to other peer-to-peer participants for some small amounts with ease so so far we have acquired a few important Partnerships with our protocol and we are working hard on expanding at least so we are working on Integrations with additional amm protocols landed markets and different invoicing providers and so on so now a few words about the Ziggy Bob and how it works technically so as I said before Ziggy Bob is a day up for private micro payments so it accepts only Bob stable coins for deposits once these table coins are deposited into the ziki Bob application they can be anonymously transferred between participants of the pool by using the ZK addresses and once you desire to withdraw from the pool you can withdraw it to any public address preserving an Amity and you can withdraw any amount and no one will know the direct link with your deposits or private transfers you did before so in order to facilitate this kind of activities as their knowledge proofs to authenticate transaction details without disclosing them publicly on chain like sender receiving addresses transaction amounts so the Ziggy Bob application has been the pool itself has been deployed on polygon so that's the main network of the project and the yeah the simple UI allows you to abstract abstract from the complexity of the CK snark sent to easily access your ZK accounts and to use the ziki balance for every year everyday activities so here's how the UI looks in basic yeah so zero knowledge proof confirms the validity of X of each action so the action might be either deposit transfer or withdrawal from the pool without revealing the particular details of the action on chain and only the actual sender and the receiver of the particular operation is being able to actually decode and access the private fields and metadata of this particular transaction so and a few words about the zikibo cloud so that's actually the API we're going to propose you to use Pro without the hackathon so basically it's a semi-custerial API which is offering private payments as a service so it's important point is that it shares the same underlying Tech and infrastructure as the executive of the app and the UI itself so and the main intent here is that we wanted we want you to use it to smooth Thunder transition from web to web pre-ops to simplify potential Integrations and speed up testing of new ideas hypothesis and so on so a few words about our roadmap so we plan to work hard in the future for hard development of new use cases will expand salary use cases and explore new ones will work hard on the different technical protocol improvements like migration to a new zika snack Technologies adding some new business features through the protocol will plan to work on the decentralization of the protocol and each and every part in that and also work something work around some Innovations in the field of anti-money laundering and kyc processes and see how it can seamlessly integrate with our protocol so now let's jump into the hackathon so the task for the hackathon for you to be eligible for Bounty application is simple we want you simply to make some solution which will help us to increase Mass adoption of the Bob's table coin and the zikibo protocol and to overall strength and and broaden the ecosystem of the broad of the ziki Bob project then so we want you to do it by integrating the keyboard Cloud API with basically any service product or application of your choice either it's already exists or you plan to develop your own so in order to be enable to access to ziki Bob Cloud API feel free to reach us reach out to us in our official Ziggy Bob sponsor Discord Channel for getting access to the production keys for the zikibo cloud apis so you'll get some pre-funded policies for that feel free to just say your team name include the list of members and we'll send out you the necessary keys so just a few ideas for what you can hack during hackathon and where you can integrate This Cloud API so it could be any donation of fundraising platforms it could be something related to the dial accounting problems it could be also related to payment splitting between friends when payment when paying for dinner for example it could be also some technical Integrations with an existing wallet so the developments of new browser extensions or something like that you can also work on integrating the keyboard different social media bot platforms like telegram Bots Twitter Bots you can write your own browser extensions and so much more so of course this list is not complete feel free to add any idea you want so we don't want to limit here here basically any legit and viable use case for the zikibo cloud will be highly appreciated in case it just actually have some potential to be used by real users so a few words about requirements and prices so what we are offering is the five bounties of 2000 USD equivalent which will be paid in Bob so also feel free to get or already have the swag for everyone who uses the ziki Bob successfully use the sticky Bob API internet projects so in order to qualify the only actual criteria is to just use the ziki Bob API you are free to use to any other tools and qualify for other sponsor submissions please indicate the keyboard project in your final submission as well and during the judging process we'll consider of course creativity novelty usefulness and the general implementation details of your solution we'll see how integral is the usage of the zikibo cloud API within your project we also will see how your project aligns with the overall vision of the ballpeka system we have so that's what we call General bobiness and also just taking out that extra credits might apply in case you want to natively integrate with ziki Bob SDK libraries which directly operate with snarks snark circuits and proof generation so this might be a more advanced topic but in case you successfully did something like that that would be definitely considered and rewarded with some extra credits for the for the grading so yeah now we'll try to see some live demonstration of the protocol and how it works so we'll start from the UI so once we log in into the UI application we'll see that we have public and private account on the public account we currently have 10 Bob which is equivalent of 10 USD so what we can do here is we can just click Max and make a deposit into the Privacy pool so we'll sign some requests into our metamask wallet we'll wait until the UI and SDK Library generates less proof for the ziki shortcut evaluation we'll wait until the proof has been sent to the real layer until the relayer sends his transaction the pool itself as I said is deployed in polygon so we'll wait until the transaction is mined so hopefully it will take just a few more seconds here so yeah here it is and in a few seconds we'll see that our public balances actually decreased by 10 Bob and our private balance actually increased by the amount we deposited and if we go into the history we'll see that we just made a 40 seconds ago deposit of 9.9 bobs so that's the how simple the deposit looks through UI and now a few words about the cloud API we want to use so all the methods I described in the docs we provide for the hackathon so you can explore it in a textual format but for some practical you know testing we also developed this insomnia collection of API requests which is the simplest way we thought it would be for you to try to integrate with the and play around with the API we're providing so in order to use that you will need the API key so I just prepared one of the API Keys We we could try to use so yeah it's already here let me see if I can increase the font yeah this one should be better so the API key provides you access to one of the basically ZK accounts which has been held in the custody of the API service we provide so that's in that sense these accounts are being managed by some semicustodial solution so we have a few requests through this you can interact with your ZK account on the API service so you can request basic information about your account like balances and transaction history since the account is new we see that we do not currently have any balance we cannot transfer anything and we don't know transaction history so in order to just get some funds into account we'll go to the third request and generate the receiving address we'll copy that and go back to the UI to the transfer Tab and now we'll send from a UI account to the ZK Bob cloud account for example six bobs so we'll confirm the action wait again until the proof is generated the transaction is being submitted through the real layer and been processed by the polygon Network validators so it will again take a few seconds here all right so our transaction went through if you go back to the history we'll see that we just sent my six Bobs to someone else to the ZK address and if you go back to the the keyboard Cloud collections collection of API requests and request once again the account information we'll see that our cloud account just got his balance increased we'll see that in the transaction history we now have this entry which is telling us that we just got some incoming transfer in this transaction hash for this amount which happened on this timestamp and be received it on this ZK account so now the remaining parts is basically how do we make the transfers outside of our Cloud accounts so here we have a two basic scenarios so we can either make some transfer to the to ourselves by which is called basically Loop transfer so we can do that um so we'll just enter that we want to send I don't know two Bobs so here we use nine decimals of precision so that's why we add nine zeros in the end so we'll send the request to make a transfer for our own shielded address so no funds actually get out of the account but we'll just see how it looks in the history and what actually how it's been represented by the API responses so now we can request the status of the recent listen transaction the recent reset request now tells us that the job is being relayed by the by the service so we'll wait a few seconds until it goes through so it should take probably the same amount as it takes through the UI so as the underlying infrastructure the technology is the same it's used the same pool the same smart contracts and the same uh just the same infrastructure okay so now we see that the transaction went through successfully we see the transaction hash we can actually copy that transaction cache go to polygon scan enter it here and see that actually something happened something was sent to the pool smart contract address uh so yeah and if you now go back to the account info we'll see that our balance only decreased by the amount of the small fee we paid for the transfer to ourselves and if we go back to the transaction history we'll see that we got a new action which actually tells us that we just transferred money from ourselves to ourselves just to play around yeah and the second thing we might try is just to send money to some other account so we'll need some external ZK address for that so for that we can go back to the UI click on the ZK account tab generate the receiving address for our UI account and um basically make a transfer here so we'll again enter some some amount of like four Bob for example we'll enter the CK address here we'll submit the requests and then you'll again wait until the request goes through so we'll see that request is being now processed by the relayers so just another 10 or 20 seconds and it will be marketed successful [Music] and after the request goes through we'll actually see that our fans came back to our UI account where we initially send them out of okay so the transaction is completed if you go back to the account balance we'll see that our balance uh actually decreased if you go to the transaction history we'll see that we now have the transfer round event for some amount some fee we paid and yeah so basically all the information we have for our transfer and if you now go back to the UI click this little refresh button we'll see that now we got some okay we accidentally said 0.4 Bob but okay no problem so yeah we just got some incoming transfer for a UI account which is outbound transfer for our Suzuki Bob cloud account so I guess that's it about the basic functionality of the zikibo cloud API and the UI so yeah now go back to the presentation just a few quick links for you to check it out and be prepared for the hackathon so the first link is just the link three of all the links related to the project to the UI to the docs the second thing is just the general resources of the Hawk Down the description the bounties the suggestions for the ideas yeah feel free to reach us in the sponsor cable channel Discord for requesting API keys or any other questions or just came by our booth to ask for some questions in person in case they are there and just in case you want to receive some small airdrop for our team in for your private personal GK account just feel free to scan this QR codes and we'll distribute some small present for all participants of this Workshop in a in the next hour yeah if you guys have any questions probably have time for one or two so uh I was wondering so um not that long ago uh tornado cash had some like legal trouble in uh the United States I believe and uh I'm wondering if your or your concern or I'm wondering how is the k-pop's situation different like are you guys concerned about uh Regulators not really being such a fan of privacy yeah so that's the question everyone asks so we think that's important to not forget about the existence of regulators and to make such kind of protocols in a way that we want to cooperate with regulators and prohibit illicit activities so there are a couple of heuristics you can apply for that so we started by setting very strict limits on the amounts you can process by the pool so the deposit size is very limited so you cannot deposit a lot of money into the pool you cannot withdraw a lot of money into the pool at once the pull size itself is very limited by one million Bob price now so it's not very interested for hackers with big bags of stolen money to try to launder them through such kind of thing we're also thinking in a way of how we can integrate some zkyc solutions like polygon ID or something like that and we also continue our research in the ml and kyc Integrations and we'll see how and what we can develop here or in case you guys can potentially suggest something throughout the hackathon this also would be highly appreciated and highly graded for from our site yeah I wanted to know about the stable coin how is it back in how do you maintain usdc tools yeah so stablecoin model is closer to the over over collateralized one so for now we started with a simple approach of backing the stable coin just one to one with the existing stable coins like usdc or busd so but in the future and we are already working on that we'll add this collateralization in kinasex where you can print and mint new tokens with the collateralization of other volatile assets like ethermatic or some more complex derivatives like LP positions or something like that yeah uh the relayer fee is always 0.1 Bob or is it 0.1 ZK bar the relayer fee between multiple parties the transactions that happen yeah so the relator fee is 0.

0.1 Bob and when you send that amount back like the 0.4 Bob which was from the cloud wallet the ZK Cloud II the one which is non-custodial would that be somehow tracked on chain or that is something something cannot be linked together that this was one you sent to and this is one you got back so yeah the only thing that could be tracked on chain is that you paid the fee of 0.1 Bob but that's that's it yeah nobody knows from which amount you paid it so no one knows the actual amount transferred and since everyone has the same feed that's actually doesn't click anything and last question is if I may the the API key can that be some sort of like multi-signature like can I get it to share with other and then sign it on behalf of them or how does that API key really work I mean is that going to be transitioning to any other model where we can have multiple signatures yeah sure we don't have any solution for multi-party thing kind of uh for now but that's definitely a good idea we'll work in the solution so I have personally a couple of thoughts on that so we just it's not ready yet but definitely we'll be edit in the future if if we'll see the sufficient demand for this cloud like applications and from projects which are not willing to directly integrate with the SDK which can be complex for someone so yeah I think that makes sense yeah

Automatic transcript — names and jargon may be misspelled.