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

Loading player…

Bandada Workshop | Vivian Plasencia | Bandada: Managing Privacy-Preserving Groups | ETHDam 2024

CryptoCanalMon, Oct 7, 2024, 12:00 AM

Build applications using privacy-preserving groups with Vivian Plasencia from Privacy & Scaling Explorations supported by the Ethereum Foundation. https://twitter.com/ViviPlasenciaC https://twitter.com/PrivacyScaling https://pse.dev/en ETHDam - a conference and hackathon held in the heart of Amsterdam, Netherlands from April 12th to 14th, 2024, celebrated its second edition, gathering more than 600 participants. In the dynamic space of ETHDam, privacy and security took center stage, featuring groundbreaking discussions on hacks, recovery, and the revolutionary work of figures like Pertsev. Privacy is dead in crypto, people that know, know. People who don’t know, should know. ETHDam is powered by CryptoCanal, an education and events platform growing in Amsterdam, spreading its roots to Rotterdam and Zürich. Keep up with us to see updates on future events: https://www.cryptocanal.org/ Follow CryptoCanal on X: https://twitter.com/CryptoCanal Join CryptoCanal TG Community: https://t.me/CryptoCanalCommunity Join CryptoCanal Discord: https://discord.com/invite/XJVjpCqQBz We would like to thank our partners that made this event possible. 🌷 Battleship Partner 🛳Oasis Network https://oasisprotocol.org/ Jet Ski Partner 🛩⛷ NEAR https://near.org/ Canoe Partners 🛶WAKU https://waku.org/ 🛶Trail of Bits https://www.trailofbits.com/ 🛶Avalanche https://www.avax.network/ 🛶Privacy + Scaling Explorations https://pse.dev/en 🛶Threshold https://threshold.network/ Our Canoe Partner & Official Node Provider 🛶dRPC https://drpc.org/ Sponsor 🤝EF Ecosystem Support Program https://esp.ethereum.foundation/ Paddle Partners 🚣ChainSecurity https://chainsecurity.com/ 🚣Lido https://lido.fi/ 🚣Cyber Capital https://www.cyber.capital/ 🚣Diva https://www.divastaking.net/ 🚣Firn Protocol https://firn.cash/ 🚣Beefy https://beefy.com/ 🚣0xbow https://www.0xbow.io/ 🚣Obscura https://obscura.build/ 🚣Panther https://www.pantherprotocol.io/ 🚣Maven 11 https://www.maven11.com/ 🚣Zama https://www.zama.ai/ 🚣zkSync https://zksync.io/ 🚣Secret Network https://scrt.network/ ETHDam AfterParty Fren 🥳Bitvavo https://bitvavo.com/en Chapters: 00:00:00 - Bandada: Managing Privacy Preserving Groups 00:00:59 - What is Bandada 00:01:34 - Use cases 00:02:20 - Infrastructure 00:03:57 - Functionalities 00:04:32 - Credential Groups 00:06:01 - Ways to use Bandada in your project 00:06:55 - API 00:07:37 - API SDK 00:09:48 - Boilerplate 00:10:58 - App Infrastructure and Backend Setup 00:12:35 - Roadmap 00:13:52 - Hacker Guide

Transcript

[Music] please welcome Vivian from the psse hello everyone H my name is viian Placencia and I'm a software engineer in the privacy and scale expiration team at the the foundation so the title of this presentation is H bandala managing privacy preserving groups let's start H so this is the structure of the presentation so we will start with what is bandada some use cases then some functionalities H we will talk a bit about credential groups um how to interact with bandada how you can use bandada and a bit about the road map and also H share the hacker guide uh for hackers so that's start with what is bandada so bandada is an infrastructure to manage privacy preserving groups it also provides an anti-il mechanism H by using credential groups so that you can only join a group if you meet a specific criteria so bandal is a public good project H so it's free and open source you can use it contribute to it and bandal is a Spanish word h that means group of beards H is the same as as the English word flock so here are some use cases for bandal H you can build platforms for those a group of people in a private organization group with members who have contributed to a specific GitHub repository a group of wallets holding a specific nft group of members with more than 500 Twitter followers for example or it can be different another number and also group of people with a specific number of transactions on a specific Network there are more use cases but and you can find a BRI ideas in this link here and yeah check it out there so this is the banda infrastructure so bandal has a dashboard app so you can interact with the infrastructure using it h you can get some information there H create groups and do some things there and it also has a client app which is like a demo app to interact with the infrastructure and to join a group and things like that it also have has an API a and a group of endpoints to interact with the infrastructure and the database to save the data and also some contracts um right now it supports some for but the idea would be to H work more on onchain groups and onchain stuff and support more protocols and there are some JavaScript libraries and you can see the API SDK which is a wrapper of the API I will talk a bit about it later and also the credentials um the credentials package uh which is the one used by the credential groups you can H you can see all the type of credentials we support and you can ex you can contribute to it too if you have an idea to add another credential and there is also the hard hard package to deploy the bandal contracts is easier and and also a util package with some utility functions there are some functional ities there are more but these are the main ones you can create groups H update groups one or many remove groups H join a group using invite code and also join a group using credentials and add members and remove members so right now all these functionalities are supported by H the option groups but uh only the create groups and AD members are part of of the onshine groups regarding credential groups H we called providers and validators so providers will be H we have some we we will say like a web two providers and web 3 providers and C custom providers so GitHub and Twitter will be Web Two providers so right now blockchain is web through providers and ethereum attestation service is a custom providers so the for example the validators can be followers and personal stars and repository comets for GitHub so you can create groups ER with more than specific number of followers or personal stars or comments on a specific repository and also followers on Twitter ER if a user follows a spe a specific user and also for blockchain provider H we have the the balance H for example if an account has more than specific balance or also more than specific number of transactions and for a the attestation service H you can create groups with a specific if you meet a specific criteria regarding the attestations so you can find more information about the credential package here in this link so to interact with bandala you can use the API and also the API SDK and the dashboard right now forchain groups everything is supported by for onchan groups only you can do all these functionalities H using the dashboard so right now the onchan groups are just semaphor groups H you can know more about semaphor here in this link but uh if you want to use onchan groups you can use the SEMA for packages so that should work fine to start using bandal there are three ways you can do it um you can use the API the API Decay or the voilet plate H here is this QR code is the bandal documentation and I will talk a bit about each of this so if you want to use H the API you can go to to this link here so you will see something like this and the list of endpoint this is the documentation for that H you can see the list of endpoints here you can run it here H the API is just a list of endpoints as you can see to interact with the band infrastructure so it is compatible with any programming language that supports press API frequest so you can use it with any other not just JavaScript or typescript so for example you can play around with it here you can execute it and get data and see the groups here when you go to the API documentation regarding the apis SDK this is a wrapper of the API and it is a JavaScript package H that provides a list of functions to make it easier to work with the bandada API here is the API sdate demo QR code and this is a project H with some of the API SDK functions you can use it and play around with it too it has the main functions from the apdk you can install the package like like so using any H package manner you want and PM CH pnpm here is more information in the documentation if you want to check it out here is an example of code ER for the apis SDK you can when you after installing the package you need to create an instance of that H this instance will use the production application by default H then if you want to to create a group for example there are some functions that need the API H API key so you will need to to take it from the dashboard there are some others like getting groups that you don't need the API key but for this one if you want to create a group you need that then you need you have have the the group info and you just call the create group function and and you create the group then the if you want to add members you will need the the you can do it H with using an inut code or an API key in this case h this function is using API key you just H send the members and the group ID and the API key and that's be fine and then after that you can also REM remove members using API key too so that will be the way to do it just an example of code in the demo app there are more examples and also H in documentation and yeah so you can also start a project using the boilet plate the boilet plate is just a Anonymous feedback app is H is us in semap for H which is a a protocol for anonymous interaction is using semaphor for the anonymous part but is using bandala for H to save the group information H this is the Lea app you can scan the QR code and um try it out and regarding the boilet plate you can Fork it clone it or use it as a template to start your project if it's compatible with that I mean if you just want to to to from some functions you don't need to use a boilet plate you can just create your own app using the API SDK but if you want to have this kind of functionality it's better to use the boiler plate the boiler plate this is like the boilet plate infrastructure so to have more idea of where how is everything organized here we have where it is the bandala infrastructure and then this will be the app H and then the app will create request to the banda infrastructure and the infrastructure has here the database and also the back end with the API endpoints and also the dashboard as I said before and the app your app will be will have a probably a database if you want to save other kind of information if it's just group information you don't need it but you will probably need to save more information so you you will have probably a database and then you we will have a back end to talk to this database and in the case of this app we are using H the the SEMA for protocol proof H package to to verify the proof in the back end and the Bandai SDK to to call the functions to add members and all these things regarding the front end we have have some packages because the app what is doing is creating an identity then you join a group and then you send your Anonymous feedback and and that's why we need the identity package in the front end also the group package to manage the group part and create the proof and the proof package to create the proof too H the proof should be always created in the front end and verified in the back end so that's why we have the proof package both places and the band API SDK to get group information and things like that uh I will talk a bit about the road map so we always want to improve the user experience and developer experience ER we want to add uh improve the documentation add uh templates and improve the packages H we would like to integrate other protocols like pop supas H Etc if you have more ideas please uh create issues or discussions and let us know H we are working h on logical operators for credential groups so that you can create a group with many credentials at the same time if you me and then users will join this group if they meet the criteria um and they need to meet H to have all these credentials and we will we will work on onchain groups to have the same functionalities that on groups have now like invite links to join a group credential groups Etc and we want to build a modular architecture to support many uh other data structures we are using an incremental mry now but we would like to support others so in this link you can find like the entire road map here is the the hacker guide H this has the main main information of pandala for hackers to build on top of it here is the presentation slides in case you want to check it out is open source and yeah you can check it out here and thank you so much uh you can ask questions here and also I will be at the booth and yeah feel free to always ask question thank you wonderful thank you is there any questions for Vivian yes thank you so much for the talk I'm a huge fan of PSC my project SL company you seen some of your libraries like CK kit and so on my question regarding bandada would be H what are the challenges you are facing with onchain groups yeah um yes right now seap for is solving onchain groups pretty well so H semap for is not saving any offchain data so that's why if you want to save offchain data is better to use Pand out directly but for onchain groups SEMA for is solving that part so uh we will need to think about a good way to create that part and it's not H it's not because H something specif specific is more like it's part of the road map and we started with this offchain part because it's not is something that se semaphor is not solving so we needed that part but it's part of the road map is not yeah it's not like there is something we prioritized offchain groups because seap for was not solving onchain of chain groups and we need that part but uh we will work on that later but we will need to think about a good way to solve that because seor is solving that part pretty well thank you so much any other questions hi maybe one question who is running the infrastructure for that the API end points yes uh we are running that is on AWS but we are running that but you can H run it using Docker if you want you can just run it too if you want to to use it for your project hey could you maybe explain explain like maybe EAS is a good example of the credential group so yeah I guess how that works of like okay I want to create a group of like you know coinbase gave onchain es attestations for like their users like I want to create a bandata group for this e attestation like are is bandata just like fetching that from some some node to like build a list of addresses basically yes H everything that can be feds H from a specific place can be used as a credential group for example if the data is there H we just fetch it so for example that's why we are using GitHub and Twitter with the API so if you need other credentials and the data to check it is out there we can add it easily and you can also add it yeah so like you mentioned yeah like blockchain transactions I think as a credential of like okay I want like I mean maybe people would have to extend it themselves but like any address that's like received funds from like a known binance account or like that's ever transacted on Unis swap you could in theory just build these group sets to like have people get access to that yes as long as the data is there yes H for example the transactions we are just using ethers to check if the account has specific number of more than a specific number of transactions and also the balance for GitHub is a GitHub API for Twitter the API for EAS the tools too so yeah in the end um just using the the data that is there so yes cool thanks all right thank you very much that was excellent thank thank you [Music]

Automatic transcript — names and jargon may be misspelled.