Anonymous Signalling on Ethereum by Cedoor | Devcon Bogotá
Devcon·Sat, Oct 7, 2023, 12:00 AM
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/anonymous-signalling-on-ethereum/ Semaphore is a protocol, designed to be a simple and generic privacy layer for Ethereum DApps. Using zero knowledge, Ethereum users can prove their membership of a group and send signals such as votes or endorsements without revealing their original identity. The talk will describe the protocol, the main concepts and some use cases. A simple demo will also likely be used to show how Semaphore can be used to create DApps and solve real problems in the ecosystem. Speaker(s): Cedoor Skill level: Intermediate Track: ZKPs: Privacy, Identity, Infrastructure, & More Keywords: zero-knowledge proofs,semaphore,groups 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] and I work as a software engineer with a privacy and scanning Explorations team so I'm going to talk about Anonymous signaling on ethereum and I would like to start with an important question why anonymity is important I don't know why people are so Keen to put the details of different life in public they forget that invisibility is a superpower we cannot be sure if this quote is from Banksy but even if it was Anonymous the message is still very important invisibility or anonymity is a superpower because intercouples an idea from the density of its owner because it allows flowers to be thrown without the identity of the thrower being known so all talk ideas are intrinsically connected to the hotel sometimes the message is more important than the messenger and sometimes preserving the identity of the messenger is even more important so anonymity can therefore become an important tool because it limits power those with a lot of power derive much of that power from Knowledge from information the more someone knows about us the more power they can have over us keeping our data or our identity private decentralized that power anonymity promotes freedom of speech the first step in censoring an idea is to attack its author and the fear of suffering repercussions for what we say or write also limits our thinking so knowing that our data and identity are safe encourages us to think freely anonymity safeguards reputation it is important that people are held accountable for their actions and especially for their mistakes particularly when these people have a lot of responsibility when they have an important role but it is also important that our ideas are not judged based on who we are but either on what we have to say anonymity allows an idea to be shared regardless of its author's reputation which allows people to consider and evaluate ideas for a more objective perspective most of us are aware of the importance of anonymity and privacy but what about our challenges what are the main drawbacks right now and how can we solve them there are probably many reasons but two of them deserve particular attention the first one is complexity of Technology in recent years we have seen a constant growth in the development and use of cryptographic Technologies data knowledge proofs for example are now being used in many applications proving you have a certain information without revealing the information itself is a really powerful concept by the way these Technologies work is not trivial for people without a background in mathematics or cryptography in addition the availability of simple and practical development tools is still Limited well a lot of progress has been made actually but I believe one more step is needed in order to further abstract some technical Concepts so the second drawback is the indifference of people one of the reasons why some people don't care enough about privacy and anonymity might be that there is not enough awareness and education about how our data is used and why anonymity is important in ielt society so what can we do then there are many solutions but I would like to focus on free Solutions the first one is privacy by default the right to privacy is mentioned in most natural constitutions but it has often been neglected in the name of National Security issues or to make the applications we use every day smarter and more efficient privacy and cryptography should be the backbone of the internet infrastructure protocols and applications should be supported all user data by default and in addition users should be free to change the settings not the opposite another point is education explaining to people why privacy is important and how we can build privacy focused applications are very valuable challenges it is important to choose the right words build effective designs and convey information as simply as possible however simplify things is not enough making people aware of the technological and social complexity of the work we live in is equally important because we don't just want users to enjoy an experience we want new friends helping us build a new web free so the fear point is the developer experience the growth of our community and the adoption of our technology depend heavily on how clear the goals are and how easily the main values and Concepts can be conveyed however another extremely important aspect is the quality of the code the call should be tested documented formatted with Atmos care it is extremely important to use the right partners and to follow the best practices like dry and kiss so developers need to be able to rely on robust easy to use tools that allow applications to be built in a short time while also allowing them to be extended customized and adapted for the specific uses so developer experience and education is what we have focused on in the last few months of work is some of her but many of you may be wondering summer for his semaphore is a zero knowledge protocol that allow people to join a group and then to send signals such as messages endorsements or votes without revealing the original identity in addition it also provides a mechanism to prevent double signaling which basically means you cannot create the same proof twice or the proof cannot be verified so what makes them a powerful tool is the Simplicity of the protocol and the flexibility it can be used to build many applications like private voting applications whistle borrower applications or the knowledge dials semaphore is made of three different parts vehicle circuits solidity contracts and JavaScript libraries my work has focused more JavaScript JavaScript libraries and solidity contracts so I would like to show you the main sum of our Concepts and how our libraries and contracts works and how they can be used to build private applications so creating a consumer for identity is the first step to interact with the protocol each identity is made up of two secret values trapdoor and nullifier and one public value commitment so the positive hash of the identity nullifier and tractor is called the identity secret and the ash of the identity secret is the identity commitment so although in this case we are not using asymmetric encryption an identity commitment can be considered something like an ethereum address it is a public value used to represent people in the protocol and in particular commitments are used in some of our groups to represent the identity of a group member the secret values are like ethereum private keys and they are used to generate semaphore zero logic proofs and authenticate signals some of our identities can be generated off chain with our JavaScript library and quite simple and you can generate it in two ways randomly or deterministically you can generate a random identity without passing any parameters and a deterministic identity passing a secret message like a password or a silent message groups are an important concept when we speak about privacy and zero knowledge Technologies they can be fought as anonymity sets and they are a way to establish necessary trust among participants in semaphora group can be people who have an account on some web tube platforms with high reputation employees of a specific company voters in an election or people with specific sbts or nfts essentially any set of individuals who are eligible to participate participate in something so groups can can use several types of data structures but Miracle trees are particularly efficient since since they can prove that a leaf belongs to a tree by using just one portion of that tree so some of our uses binary medical trees in which the leaves are the identity commitments and all the other nodes in the three hard dashes of their child nodes when a user join a group their public identity is added to that group's Miracle 3 which is therefore used to allow users to generate proof of membership and then send anonymous signals so groups can be created off chain with our JavaScript library or Unchained without with our semaphore Contours when a group is very large and is updated very frequently and of chain group might be a valuable alternative or solution this solution is cheaper faster but tended to be more centralized on the other hand if you need correct execution or sensitive resistance groups can also be created on chain for each unchain groups there is an admin which can be an ethereum address a smart contract or a modific world for example if you want to create a fully decentralized on chain group you could create a group um a group and send your contract as admin or your E3 models which can which called used to allow people to join that group only if they own specific nfts or sbts so after creating the identity and joining a group users can anonymously prove that they are members of that group and send signals such as voice endorsements or any message signals are part of a zero knowledge proof which must be generated by users preferably in their home device as they need to use their private identity so secret values and it's something like client-side encryption in this case and it allows proofs to be generated in a protected environment locally so that proof can then be made public and verified by everyone on chain or off chain to generate a valid proof we also need an external amplifier and the ash of this value and the identity nullifier is the nullifier ash which can be used to avoid double signaling so imagine you have a group you are using to vote on some proposals and you want all members of that group to vote only once you can use the ID of the group as an externalifier and when a user was the first time you can save the ash of their identity nullifier and your PD and afterwards block any double votes by checking if that Ash already exists also in this case we have a JavaScript library which can be used to generate proofs proofs must be generated of chain and those proofs can be verified on chain or off chain off chain with our JavaScript library the same library and on chain with our smart contract also in this case the way you use them depends on your application on your use case so verifying kind of chain proofs allows the verifier your server or you to be certain of the validity of the proof so it's more centralized and verifying it on chain on the other end allows everyone to consider that proof value because the smart contract is public so semaphore is already being used by some projects like unirap unirap is a protocol or a reputation system built on top of semaphore where users can anonymously give receive and prove reputation it is a great way to allow people to build reputation over time while giving them total control over how much they reveal about themselves in a given interaction so another interesting project is the guitar which is an anonymous social network where people can post and chat without using their real life reputation and um temporary Anonymous zone is like an experiment we have a booth on the first floor you can try our applications and there is like there are like two applications you can use where you can answer questions and ask questions anonymously with one application and make art anonymously with the other application Collective art it's like an experiment to allow people to learn more about our Technologies and about semaphore so stem of 4 is still in its early stage and some of the ideas for improving it are the following create an infrastructure to manage groups the idea is to have a cloud or self-hosted dashboard where people can create groups add members remove members or update members and they they can create many kind of groups like permission at groups or permissionless decentralized groups and also reputational groups similar to prep so another point is create attestations contracts for decentralized groups Lydia here is quite simple uh it is to create on-chain contracts smart contracts where people can join groups directly without any external approval based on Unchained attributes like sbts or nfts or just the amount of money you have we will investigate our zero knowledge Technologies and public systems of course and we will continue improving the developer experience and our documentation website the idea is to create like an educational website and last but not least we want to create a strong community we have many ideas here one of them is our guns round so we are launching a summer foreground round um you can scan the core code on the left and uh yeah if you are interested in building privacy preserving applications with semaphore um you can scan that QR code we will we will be really excited to know more about your ideas and projects whereas if you want more information about semaphore or if you have any questions please visit our website where you can also find our disc the link of our Discord server or come come to our touch boot on the first floor so I of my talk has been helpful and I really want to thank you all for listening thank you we have eight minutes for any question that you have for cedor no no questions okay so you can go to those QR and continue the conversation on the website and the grants
Automatic transcript — names and jargon may be misspelled.