# ZK House at ETHDenver Retrospective Written for PSE by Vivek/Aayush, with contributions and notes from Andrew/Aditya/Kali/Florent. Final deliverable from the original house grant [here](https://hackmd.io/@RiverRuby/Denver-ZK-House). ## Overview At ETHDenver, we ran a hacker house involving 7 PSE grantee and full-time developers, covering 4 different projects: * Vivek Bhupatiraju (Cursive grantee) * Andrew Lu (Cursive grantee) * Kalidou Diagne (Design team full-timer + Cursive) * Aayush Gupta (zk-email grantee) * Aditya Bisht (zk-email grantee) * Florent Tavernier (proof-of-passport / PoP) * Marcus H (ETHSim) All of our projects involve very similar motivations and technologies. Three of the projects involved making ZK proofs over signed data (Cursive, zk-email, proof-of-passport) and three projects were focused on NFC/JavaCard hardware (Cursive, PoP, ETHSim). And each of our projects was presenting, demoing, or doing other outreach at Denver. ### Goals We decided to get together in one place for the following goals, listed out in the [original grant proposal](https://hackmd.io/@RiverRuby/Denver-ZK-House): 1. Getting in-person time to discuss developments in our projects and sharing results of research we have done 2. Spending most of our days in focused co-working time to advance each of our projects, and use each other as resources to move faster 3. Practicing demos and talks with each other in the house and getting detailed feedback 4. Hacking together on collaborations as part of informal hackathons at the house, and formal hackathons as part of ETHDenver's BUIDL Week 5. Inviting other ZK-interested folks to the house to discuss our projects and promote other work happening at PSE 6. Connect with other aligned PSE grantees in-person to build deeper friendships! We're happy to share that each of these goals were achieved (minus participating in the formal ETHDenver hackathon, which we didn't have time for)! ### Retro structure We cover how we accomplished each goal over the next few sections. We start by reviewing **individual project outcomes** (goal #2), **collaborations and shared learnings** (goals #1, #3, #4), **new project ideas** (goal #4), and other **overall team bonding anecdotes** (goals #5, #6)! We conclude with a section of **reflections** on the overall experience, looking forward to what we can keep/change for the Signature Singularity Residency (SigSing) in Japan! ## Individual project outcomes This section covers the major advances that each individual project was able to make outside of collaborations. ### Cursive - Primarily working on BUIDLQuest, an app built in collaboration with [IYK](https://iyk.app) that was made available to all ETHDenver ticket holders through a chipped badge they'd receive at registration - 12k badges given out, 50k taps total - 2k users with at least 1 tap - 3k quests completed - For 625 people that did at least 1 quest, 4.675 average quests completed - Also built quests.cursive.team, a fork of the main BUIDLQuest app for more general quests - Used for Edge City and ETHDenver scavenger hunts - Incredibly productive coworking sessions between Andrew/Vivek/Kali, able to move significantly faster being co-located and able to ask each other questions - Able to test functionality of the app with other house members and get their feedback - Fully integrated (the first?) consumer deployment of two party private set intersection (2P-PSI), where two ETHDenver attendees could Main tab | Quest tab | Stamp collection :-------------------------:|:-------------------------:|:----: ![IMG_8366](https://hackmd.io/_uploads/rJn8gOU0a.png) |![IMG_8368](https://hackmd.io/_uploads/BkhKg_8Rp.png) |![IMG_8367](https://hackmd.io/_uploads/HySJZd8C6.jpg) ### zk-email - Major new frontend developed for emails that people receive about receiving NFTs - Aayush and Aditya able to progress significantly faster by coworking, and getting constant feedback + testing from housemates - Could combine this work with the relayer upgrades that Aditya was doing - Developed new OAuth direction for Email Wallet through conversations with IYK and Curisve - Able to get feedback on talks from the house, and use as a space to invite folks to develop relationships with new collaborators - Able to get direct help from Kali on frontend debugging and improvement ### Proof-of-passport - Rigorous passport testing with US and Italy passports, debugging NFC reading and other signature setups - First on-chain proof with a US passport! - Got Mopro / mobile proving working, which took significant engineering and integration work! - Got feedback from ETHDenver people on the UI/UX for the ETHGlobal London release - Got a new lead from Marcus to understand if governments can store the embedded private keys of e-passport chips outside the chips - If they can’t, which seems to be the case, it means our current best guess at a nullifier scheme for Proof of Passport is privacy-preserving, c.f. [this article](https://ethresear.ch/t/privacy-preserving-nullifiers-for-proof-of-identity-applications/18551). - Set up a potential Worldcoin <> Proof-of-passport collaboration ### ETHSim - Housemates helped test SIM card compatibility with our different mobile devices - House was close to ETHDenver venue to allow Marcus to frequently commute and set up his infrastructure there - Able to talk through implementation difficulties with current version of SIM cards ## Collaborations & shared learnings Covering specific project collaborations/overlaps, as well as learnings and experiences we were able to share with each other. ### Email wallet NFTs in BUIDLQuest - Primary project collaboration during ETHDenver between teams - Allowed ETHDenver attendees to collect an email wallet NFT upon tapping location chips - Actualizing a deeper integration between the signatures provided by NFC chips and NFTs that we've wanted for a whlie - Signatures provide the private, non-transferable layer of personal data that people can actively make proofs about - If the signatures are ZK-friendly, can easily link them to on-chain connections - Was a lower stakes way for the zk email team to actualize the first demo of email wallet for ticketing and login and incorporate Instanbul-inspired changes ### Cryptography policy discussions - Discussing policy advances in cryptography adoption and ways we can push legislation towards accepting zk proofs - Andrew was able to meet with one of the 5 SEC commissioners in Denver, and had an exceptional conversation with her about our ZK projects - Verifiability is interesting, but less potent and not even in the conversation at all in government circles - She was actually quite into privacy, mentioned it as personally important, lots of long term thinking - Not happy to hear that a lot of innovation is getting stopped before it begins - Thought meeting with local lawmakers and reaching out to cftc/sec innovation branch would be useful - Invited her to our hacker house in the future, she’s very down - Made initial plan of action to continue conversations with policy-related folks here ## New project ideas A number of new project ideas were formulated at the house, which will hopefully become collaborations down the road (especially during the Japan residency!) ### Off-chain apps to build on top of proof-of-passport - Anonymous speech from anyone whose name and birthday and potentially birth state is public - democratic/republican congresspeople - gov’t officials - fortune 500 CEO, etc. - Social app proving which generation or age group you’re in - Social app proving which state you were born in or current address - Using ZKML and information on your passport to derive other information - ZKML face matching between the photo retrieved from the passport and a photo you would have to take live, signed by the phone’s Secure Enclave - The photo can be hashed with the current Ethereum block hash before being signed for timestamping - Still in ideation phase as there are attack vectors ### Email wallet OAuth ideation - Were able to use the whiteboards to collaborate with Cursive and IYK in person to come up with the primary May direction for zk email team, Oauth for Wallets - Realized that you could authorize client-side ephemeral keys into specific scopes to a user's main email wallet -- you can start with ERC20s but then use it for any identity attestation permission, via a completely permissionless system with a magic-link level complexity of UI. - We think iterations of this can become the next big unlock in using pseudonumous identity to login, and has immediate product demand allowing rapid feedback loops. ### TLS-Notary using secure enclave and signed APKs - We brainstormed ways we might be able to use a combination of signed libraries in apps, signed APKs for app updates, and signatures from the secure enclave to verify program computatation. Unfortunately, you need TLS notary for all the meaningful ideas we had beyond i.e. proving videogame high scores. ### Eigenlayer oracle ideas - Having TLS Notary-style https requests done over MPC and slashing over Eigenlayer for any node that would reveal their secret part of the symmetric TLS encryption key - This could allow for better oracles network design and better slashing models than minority slashing which isn’t good at preventing large scale attacks ## PSE team bonding ### Specific stories - We were able to host a number of other PSE grantees and full-timers at our house for ideation, bonding, and coworking: Jayaditya, Jack, Hodlon, Althea, Tyler - We had an all-house lecture on the 2PC + FHE project that Cursive implemented alongside Gauss - Helped deepen understanding of the technology and educate housemates on how 2PC+FHE is set up - We had a generative brainstorming session for the signed APK/TLS notary brainstorming - We were able to get a bunch of planning and coordination done for the Japan residency between us, including budget discussions with Tyler, and jointly deciding the people that would have the most interesting overlaps with our projects ### Specific testimonials "General vibe of having 5 people sprinting on their projects for two weeks straight was incredibly motivating and encouraging" - Andrew "Lot of enlightening discussions on ZK along with an attempt at ZK TLS-notary." - Aditya "Waking up not to an empty room but to people working all the time kept me on my toes and working hard, and jamming with Aditya was super generative for our team and direction." - Aayush ## Reflections for Japan - What was effective - We liked the main teams each having a representative in the joint working/living house - We liked that the norm was to avoid workshops, events, and lengthy external meals to maximize productive time - We liked the generative nighttime brainstorming sessions, only possible if the work space is directly connected to the living space - An extended period (3-4 weeks) allowed a lot of ideas to be fleshed out - What could be improved - We spent a lot of time with Sara trying to make it work, but a combination of her high salary and her lack of understanding of PSE's relationship with the EF made it hard for continued work to be a good fit - What would we like to try next time - We want to have the ability to invite older folks, which mandates the neccessity of seperate dedicated airbnbs with single rooms for them - We want to have a demo day if there is no concurrent conference, so that each team is still beholden to a tractable deliverable and deadline