# Designing Public Goods Using ZKPs by Rachel | Devcon Bogotá

- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2023-10-07
- Duration: 24:37
- Watch: https://streameth.org/watch/yt-qWcU2saOlw4
- YouTube: https://www.youtube.com/watch?v=qWcU2saOlw4

## Description

Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more.
https://archive.devcon.org/archive/watch/6/designing-public-goods-using-zkps/

In this talk, designers reflect on the common threads that run through a constellation of tools and applications built with ZKPs. We share mental models being explored and strategies for fluidly navigating an evolving space. By offering real examples from our design workshops and dApps, we will explore the question – How might we materialize abstract concepts to enable internal and external teams to build with ZKPs?

Speaker(s): Rachel
Skill level: Beginner
Track: ZKPs: Privacy, Identity, Infrastructure, & More
Keywords: public goods,approachability,design patterns

Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum
Learn more about devcon: https://www.devcon.org/
Learn more about ethereum: https://ethereum.org/ 

Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. 
Devcon 6 was held in Bogotá, Colombia on Oct 11 - 14, 2022.
Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/

## Transcript

foreign [Music] our team is about as a growing team a bit over 60 people now and they're six of us who make up the design and Communications team we all work really closely with our devs and have weekly meetings to facilitate remote collaboration on CK apps and protocols and we used design to align teammates from various technical backgrounds creating this common understanding internally allows us to communicate the value of our open source protocols and apps to the ecosystem so that you our community Can Dream up and build your own ZK products when I started working with PSE designing public goods it took me some time to wrap my head around the idea of not designing for profit because almost all of my previous design experience involved aligning ux strategy with business goals it was a big mental shift to move from designing to increase sales or signups to designing to attract participants who can use what we have built to build their own thing on my team designers developers writers product owners we're all using design as a tool to make the unfamiliar familiar in this presentation I'll start by addressing the value of Designing for privacy share some design challenges highlight a few ZK apps discuss the ways design can be used to facilitate conversation and touch on mental models the PSE we're building privacy and anonymity infrastructure using zero knowledge proofs so that you can choose how much of your identity you want to expose when going about interacting with others on the ethereum blockchain put simply a zero knowledge or ZK proof is a method by which one party can prove to another party that something is true without revealing anything besides the fact that it is true we call our zero knowledge protocols and apps public goods because they're open source and free for anyone to build with or use I believe that we need to design for privacy so that we can evolve beyond our current challenges understand our material more deeply involve more people as collaborative co-creative participants and in turn fortify privacy Solutions with greater anonymity sets so yes privacy resources are difficult to opt into true user experience for these apps has a lot of room for improvement sure the material is abstract and complex and to some of us zero knowledge feels like incomprehensible witchcraft but design can help people from any technical background make sense of the things that they don't understand the only way to create better more usable interfaces is by exploring and iterating our work we're only at the very beginning there are many design Cycles in our future which to me is super exciting the design process is a Hands-On way for anyone to learn on my team contributors from all kinds of backgrounds are finding alignment by cycling through phases of Discovery problem definition prototyping and testing together when the abstract can become something physical Concepts can sink in and Inspire the next cycle the more that we understand the protocols that we're working with the easier time we will have communicating their value more and more people are understanding how our information is collected and how our data is used to influence our thoughts and actions but they're apathetic imagine if by default we had privacy and anonymity online If people could make an informed decision to opt out they wouldn't be saying well they have all my data anyway what can I do instead of creating extractive applications that use users we can choose to design participatory environments where people consent to how much personal information they reveal about themselves and although there may not be a high demand for zero knowledge public goods or products yet I believe the more that we design the more people will come to understand the magic of ZK and want to use it we're still in really early stages of research and Design the experiences we create will become more usable more accessible the more cycles that we go through and the more people that we can talk to about their experiences and this part's really cool to me the better the experiences are the more participants there will be which will result in larger sets of anonymous participants and increase privacy for everyone if this material still feels conceptual and you're wondering what an experience with zero knowledge would be like here's a relevant example say you want to anonymously share feedback about this event with the event organizers but in order to do so you have to prove that you attended the event an app built with ZK could allow you to prove that you did in fact attend the event without revealing Who You Are giving you the opportunity to truly share feedback anonymously can you think of other instances where you might want to prove that something is true without revealing additional personal information a few other ones I've also heard are speaking out against systems of power and engaging in conversation and discourse so a lot of our protocols have the potential to structure or manage Anonymous or private environments for these purposes there are plenty of challenges that arise when designing ZK apps we like to use how might we questions to help us explore problem spaces without immediately jumping to Solutions so I'd like to share some of those with you some of our challenges reframe does help mightweight statements how might we balance approachability and transparency an ever-present challenge that we're facing is deciding how much information to share in our apps and other resources we want to be true transparent and help curious individuals learn more about CK products while they're using them but we also want to avoid overwhelm and cognitive overload here's some screenshots from our zko Prue a private wallet this is a browser extension my teammate bionder came up with these designs and I included them because I think they're a really nice example of progressive disclosure where users land on the primary screen that's on the left and they just see the tokens in their wallet when they want to get more information about a specific token they can click the Chevron to open up this secondary window where you see more information about the track transactions and also like the full functions of that app how might we give users the freedom to choose how much they reveal about themselves because ZK apps give us Anonymous identities it's up to us to preserve or break the level of anonymity that we start with when we're Anonymous our identity is unknown but our actions are public Trails of actions we have taken can be Clues to our real identities ZK apps can expose you to the idea of controlling how much you reveal or when you reveal it in one of our applications in Europe social um this user in this screenshot the user is about to post um to the feed of an anonymous social app you can see that they have 30 rep and you can see that before they post um five points are required to post and they can choose from three different personas and they can also choose on a sliding scale how much of their rep they want to display so my teammate chiali created this sliding scale model for giving people that opportunity to decide how much to reveal about the reputation they have and that's like a cool way to show people making a decision about how they want to appear in this group how might we craft environments for anonymous users to build trust with one another a lot of people ask me why I would ever design apps where people can be anonymous online because they feel that a non-environments are often hostile um and I would argue that anonymity can also create places where everyone has an equal voice and they're not limited by potential uh judgments that they might experience if their identity was revealed however an interesting way to create trust is by creating groups where everyone has to prove that they belong and if they qualify to join a group they can trust that everyone else who qualified um also had to go through the same qualification process this per um project that we've worked on interop is a good example of bridging reputation from centralized applications um to your on-chain identity to be able to prove that you qualify for a certain group with other people so in this example the person qualifies to be a Twitter Gold Member because they have a certain number of followers um and they can join how might we represent identity in communities of anonymous individuals if a non-environments are not all going to necessarily have like profile pics and user bios uh what will the identities look like it's fun to think of the different ways things could be represented like will handles always be the same will they change if they change how often could handles instead be tied to reputation my teammate sukino created skitter this is a social app where um people have the option to decide how they want to be displayed by username by their ens address or saying that they're a member of a group so you can see at the top of the screenshot like a Tas member posted that's someone who signed up for our temporary Anonymous Zone downstairs so you guys should all check it out um and then they were able to take their identity from that app and use it in skitter and say like yeah I'm a non but I'm also associated with this group and another clever thing I think tsukino came up with was um saying a Twitter user with 500 plus followers said XYZ but what gets us to the point of creating designs that address these hell might way statements I believe it's environments that Foster collaboration and discovery and processes that facilitate conversation as much as design is about creating objects or interfaces that people can interact with it's also about creating containers where people from different technical backgrounds can explore ideas and find alignment we create containers for conversation by frequently hosting workshops in digital whiteboards it's in these workshops that people from different technical backgrounds can develop common language and create Bridges between their domains of understanding foreign here's an example from like one of our fig Jam files um I am obsessed with the digital whiteboards um I feel like it's so cool to allow people to support their words with um you know markers sticky notes shapes cursor gestures or chat bubbles it's way more comfy spending time with unknowns when everyone can visualize the discussion and I've noticed that when a group of people are all looking at the same thing on you know their different screens and wherever they are in the world it's easier to identify misunderstandings uh with the visual aids in this created environment there's less room to miss what someone said or to not understand what they mean we've been hosting a bunch of workshops and so I wanted to share with you some principles that have helped us lead successful ones uh we're opening our workshops to teammates from various uh backgrounds uh different technical backgrounds and experience levels we offer people multiple ways to contribute because you need to think about different personality types different technical circumstances not every Workshop should just be people verbally exchanging ideas with each other there needs to be time set aside for writing or drawing as well um we also make sure we always have a dedicated notes Taker and before we synthesize results at the end of the workshop we preserve what we had like the workshop results because you don't want to have one or two people synthesize and be left with the bias of their synthesis for workshops that involve a lot of people and have a tight time limit I highly suggest collaborating with someone else as like a co-host um and like time box yourselves and have a dress rehearsal um I encourage anyone to explore using digital whiteboards in this way and watch how it gets people thinking and talking through challenges for us we've learned a lot about some of our protocols like zkl Peru semaphore and unirub through these digital whiteboard sessions no matter how Lo-Fi visuals help us move from abstraction to something concrete translating a protocol into an approachable user interface takes time it takes time because our initial means to understanding what a protocol can do usually starts with documentation this kind of writing reflects an implementation model necessary for development because it reflects the technology back to the use the reader when we begin designing we can create other kinds of models to better understand protocols that instead reflect familiarity back to us uh represented models reflect the designer's vision because they know some stuff about the protocol and mental models reflect the user's understanding they know nothing about the protocol most likely um I really like this chart for visualizing the difference it's adapted from the book about face there's five shapes on this scale can you identify any of the shapes I heard Circle so while we might um some of us might be able to identify the potato um most of us are going to identify the circle and it's a representation of how users mental models take recognizable shapes however the closer we get to the other side of that scale the the model that reflects technology it's a less recognizable form or at least one that we are probably not going to agree on what it's called and a really interesting aspect of this is that developers on my team encounter a similar Journey when they create programmable cryptography they start with mathematical proofs which they abstract into simple and familiar code so both developers and designers on our team are on this similar Journey transforming abstraction into something familiar and usable let me give you an example of how this plays out back to some screenshots of unirf social I could describe this with an implementation model and say that uni rep social was built with two ZK protocols uni rep and sentma 4. and when you register and a tester will give you three Epoch keys and a set number of reputation points every Epoch to interact with other users positive reputation points are used to post and comment you can give positive reputation points to content that you like and give negative reputation points to content that you don't like at the end of every Epoch a user State transition occurs where the positive and negative reputation points are recalculated and your epoc keys are swapped for three new ones that might have made sense to some of you but for me when I first heard this it made literally no sense at all the language is Niche and uncommon but I I do understand it now but it's only because we created mental models to understand it we could have trained ourselves to learn the system vocabulary but instead we came up with a new way to describe the app by asking ourselves questions like what does this remind me of what do I know that is similar to this if we want to create usable ZK products we cannot ask people to just get used to a machine's language we have to put time into deepening our understanding so that we can create approachable applications that mirror the familiar so let's try this again what if I said unirup social is a place to build communities based on ideas rather than identities if you sign up for the app you get three personas and 30 rep to interact with other users rep is like points or currency it's needed to post in comment it's also used to boost the content that you like and squash the content that you don't like every cycle about one week you receive three new personas and your rep total is calculated based on what you have used and what you received from other members you must have a positive amount of rep to interact with the system I think that that was probably more except accessible but the thing to point out is that it's not a user's mental model we're still not at that stage it's a design team's represented model and this just goes back to iterating the point of like we need to keep cycling through uh and iterating on the work putting the work in front of people and getting feedback this is true for any of the designs in the space so although I could only share a few of our challenges there are many um but that means there's lots of opportunity for design with more people designing CK public goods I believe that we can Empower more Builders and product teams reduce friction when onboarding to privacy apps help developers create protocol resources that are informed by user research educate users by providing transparent information that evolves with them as they learn and reduce the stigma and normalize online privacy and anonymity if we want to see privacy normalized and made accessible to everyone we must continue to collaboratively design people from all kinds of technical backgrounds design by approaching challenges with curiosity getting comfortable spending time with the unknown aligning strategy to audience objectives testing potential Solutions and iterating their work I want to thank my team members who helped me collaboratively uh with this presentation we worked really similarly to the way we work on other things um our the QR code goes to our PSE Discord where you can find all of us um my handle's in the top left and we started a designing for public goods channel so if this content resonates with you please um join our Channel and start a conversation if you want to get involved this week like I mentioned earlier the temporary Anonymous Zone Community Hub is downstairs on the first floor and then on Thursday from 10 to 6 uh there's the adoption day ux unconference where we'll do some ZK design lightning talks and then have discussion groups later in the day we also want to um start some uh learning groups for people who are designing in this space and we'll keep you updated in our designing public goods channel on the PSC Discord thank you so much
