DIP: 42
Title: Backpocket, MPC for human connection using NFC social graphs
Status: Draft
Themes: Social, Purchases & ID, Art & Beauty
Tags: Event Production, Software
Instances: Devcon 7 in SEA
Authors: vivek@cursive.team, andrew@cursive.team, rachel@cursive.team
Resources Required: Communication support, Operational support
Created: July 9th, 2024
Summary of Proposal
Cursive, a PSE funded R&D lab, would like to give all Devcon attendees NFC wristbands to connect with each other and check into events by tapping. The social graph created will be ported into Backpocket, an app using MPC (multi-party computation) for human connection. This includes discovering common interests, querying your connections, and visualizing communities formed through the Devcon PWA.
Abstract
This proposal has two components: giving every Devcon attendee an NFC wristband, alongside an open-source MPC app for human connection called Backpocket.
NFC wristbands would serve three main purposes for an attendee: (1) easily share socials with other attendees, (2) tap into talks to save your Devcon experience, and (3) build a user-owned social graph of people you met in-person. Each tap produces a digital signature in Zupass POD format, backed up to Zupass to enable developers to build ZK apps using GPCs.
MPC apps that enable more intimate yet privacy preserving forms of human connection are a perfect fit for the NFC social graph. The three main apps would be (1) seeing common interests to find your tribe at Devcon, (2) visualizing how different tribes interact in the Devcon PWA, and (3) sending out queries to friends or friends-of-friends like “Who is attending ETHBerlin ‘25 that wants to split a house?” and “Who is a ZK builder in SEA looking for a job?” for efficient and privacy-preserving discoverability.
We would also like to work with the Devcon team, PSE, 0xPARC, and other interested orgs to incorporate more experimental MPC features into Backpocket. Some ideas include: importing more useful personal data using PSE funded projects like zk-email and TLSNotary, settling debts in a community with full privacy, MPC-ML group recommendations, and more.
Motivation & Rationale
We hope combining NFC & MPC technologies will enable Devcon to be the source of more fulfilling relationships and communities. This includes better connection during the event (easily sharing socials, documenting your event experience, learning about overlapping interests) as well as post-event (seeing when people will be at future conferences, finding connections looking for jobs, finding housing/sublets while traveling).
The cryptography involved ensures the social data is private to the attendees + interoperable with other platforms like Zupass for developer friendliness. This can all be done off-chain, avoiding wallets and gas fees, while maintaining important properties like verifiability and ownership. And using MPC for queries ensures full user consent — no information is revealed unless both parties are comfortable sharing and there’s a valid match.
Finally, we hope to expose more developers and enthusiasts to the cutting edge of NFC and MPC technology to inspire builders and generate new app ideas. Past deployments have been an immediate hit, as many folks didn’t know NFC was so smooth, or that it was possible to run advanced techniques like MPC and FHE on mobile phones!
Past work
NFC activations
We have done 5 major NFC activations incorporating signed data and ZK: ZuStamps at Zuzalu, Sigmoji at FtC Berlin, Jubmoji at Devconnect 23, BUIDLQuest at ETHDenver 24, and ZK11-NFC at ZKSummit.
The largest activation was at ETHDenver, where we gave out 12,000 NFC chips to attendees who produced 50,000 taps and 3,000 ZKP quests completed! So we’ve built experience with large operational + technical deployments and feel confident in handling the scale of Devcon. We also increased engagement with a leaderboard + prize store gated by ZKPs, which we could replicate if there’s interest from the Devcon team:
The most technically advanced activation was ZK11-NFC, where we deployed an icebreaker that revealed common contacts/talks with MPC (further described below), ZK proofs of event engagement for Twitter bragging, and a Spotify Wrapped-like summary of your event experience using Nova folding proofs:
Each of our activations has included a generative art representation of your taps, as a commemorative art piece for attendees to mint as an NFT. We can also include this if there’s interest from the Devcon team:
Generative stamp collection by Stefano Contiero | Generative art flower garden by Vivek |
---|---|
MPC research
We have been doing MPC work since September 2023, working with Janmajaya of Gauss Labs and Enrico of PSE to build out a production private set intersection using MP-FHE (multi party fully homomorphic encryption).
We deployed this tech to 500 users at ZK11, to enable conference attendees to connect over mutual contacts and talks. It worked very smoothly on poor internet and a range of different mobile devices, and was an instant hit with technical folks who didn’t know MPC/FHE could be so efficient on a mobile device.
We extended this technique to do a larger range of comparisons at the Signature Singularity Residency in a Backpocket MVP. This included comparing over self-attested interests/travel plans + verified past events from your email; you can find a demo here. We’ve been exploring more advanced MPC techniques over the past few months using toolkits like MP-SPDZ, aiming to ship some PoCs in time for a presentation at EDCON.
Devcon implementation
Core NFC work
- NFC chips for all attendees
- We will order wristbands for all attendees to wear, either NTAG424 (cheaper, better tap UX, not a wallet) or SLJ52s (more expensive, worse tap UX, but a full self-custody wallet)
- We may also give out phone stickers, rings, and necklaces as alternatives or prizes if users would prefer them
- Ensure the chips have value after the event + can be reused, so we don’t create a ton of waste
- NFC chips or QR codes for checking into events
- Ensure attendees can collect proofs of attendance across Devcon events, either from NFC chips outside the venue
- Use it to determine your web3 interests to share upon tapping other people
- Can help Devcon team understand which events are most attended, have the most diverse audience, attract certain nationalities more than others, etc.
- Signature generation and storage
- We will use Zupass’s POD toolkit to generate signatures for all taps at the event, encoding user information in a JSON
- By default, we will store an encrypted version of their social graph that they unlock with FaceID/TouchID
- If users connect their Zupass, they can back up all PODs to their account which can enable them to use apps built by Zupass developers using GPCs
Core MPC work
- Overlap icebreaker: seeing common contacts, interests, coffee chat availability
- Use our existing private set intersection toolkit, expand to larger sets of overlap
- Ensure users can easily self-attest to personal info or import from another source
- Ensure users have full control over what they share, potentially gating information by # of taps you’ve shared (1 tap = Twitter, 3 taps = coffee chats, 5 taps = future travel overlap, etc.)
- Tribe social graph visualization in Devcon PWA
- Work with Devcon team to visualize how different tribes are interacting and meeting each other in the Devcon PWA
- Build leaderboards and competitions to engage more deeply
- Ensure user privacy is maintained while still giving attendees/organizers meaningful insight into how Devcon positively impacts the Ethereum social graph
- Feature also requested by Edge City, will be tested there
- Querying your social graph during and after the event
- Building out a robust UX to send/receive queries from your NFC social graph
- Experimenting with natural language / ML based queries to make UX as smooth as possible
- Ensure maintenance after the event so this can be a utility post Devcon
Potential experiments
Outside of the core offerings, we would like Backpocket to be a testing ground for other teams looking to build advanced cryptography features, especially with MPC. We will closely assess if features will be cohesive with the rest of the Backpocket experience before including them.
- Importing data with zk-email and TLSNotary
- We’ve already built an E2E flow using email data and zk-email toolkits to prove attendance to a number of past web3 events
- Will improve UX to ensure users can import single emails instead of giving access to entire inbox
- Will work with TLSNotary + ZKP2P team during July to build out
- Settling debts within Devcon community / individual tribe with full privacy
- Experimental research from Enrico of PSE to cancel out cycles of debts within a community to minimize the amount of transactions/liquidity required
- Use MPC to ensure full privacy of transactions
- Can start with something low stakes like clearing out “coffee debts”
- MPC-ML recommendations for pairs or groups of people
- Based on group interests, recommend discussion topics or restaurants for a group to use
- PoC of “local algorithms” instead of “Big Algorithms” governed by big tech companies
Operational Requirements & Ownership
- What actions are required to implement the proposal at Devcon(nect)?
- Order NFC wristbands for all attendees and set up wristbands to issue signatures in POD format
- Build app for contact sharing, shared interests icebreaker with MPC, and finding social connection and community from one’s Devcon social graph
- Distribute wristbands at Devcon, work with Devcon team to communicate this activation to attendees
- Who will be responsible for the proposal to be implemented effectively? (i.e. working on Day 0)
- Cursive will be responsible for procuring NFC wristbands and building the contact sharing and MPC-based applications on top
- Cursive will work with the Devcon team for on-the-ground logistics at least 1 week before the event to set up wristbands and communicate with attendees
- Cursive will test MVPs of this experience extensively at ZKSummit12 (10/08) and Edge City Lanna (10/10-11/10) to ensure the Devcon experience goes smoothly
- What other projects could this proposal be integrated with? (Bonus points for collaboration across teams :))
- Zupass — One major component of this concept is allowing user data to be custodied across data stores of their choice. An integration with Zupass would allow attendees to back up their data using Zupass in the form of PODs (Provable Object Data). This would also help developers build cool ZK apps using GPCs (General Purpose Circuits) on in-person data!
- zk-email — NFC wristbands can be used for payments, where an attendee could purchase food by simply tapping their wristband. Here, zk-email combined with account abstraction wallets would ensure that all purchases above $10 would require 2FA email approval. In addition, zk-email could also be used to mint NFTs proving one had attended Devcon, or even a specific talk.
- TLSNotary — Can be used to verifiably export valuable personal data from existing silos in a privacy preserving manner. This would enable richer social matches to be formed based on say, two attendees proving to each other they are fans of the same musical artist.
Links & Additional Information
- Cursive blog: https://cursive.team/blog
- Cursive GitHub, all work is open-source: https://github.com/cursive-team
- Previous DIP: JubJub
- Backpocket MVP demo: https://cursive.team/bp-demo