Self Protocol Workshop
summary
A decentralized identity system that registers passports, Aadhaar or biometric IDs into an onchain Merkle tree to produce a unique nullifier and prevent duplicate sign‑ups, then uses Groth16 + Circom ZK proofs (generated in TEEs because some zkeys are ~5GB) to disclose single attributes via a QR flow and SDK. Example contract extends SelfVerificationRoot, verifies proofs on chain, emits events; hackathon bounties prioritize onchain work up to $5,000.
AI-written summary · about
chapters (30)
- 0:00Start
- 0:02Introduction to Self Protocol and session overview
- 0:29Problems with current KYC systems and data security risks
- 0:54Why Self eliminates unnecessary KYC through selective disclosure
- 1:19How Self uses passports as trusted, machine-readable identifiers
- 2:08Nullifiers and civil resistance via identity-based proofs
- 2:43Selective disclosure of personal attributes for privacy
- 3:03Custom claims: age verification and OFAC exclusion checks
- 3:56Aadhaar and biometric ID support for broader global coverage
- 4:26Two-step process: registration and disclosure explained
- 5:10How registration ensures anonymity and prevents duplicate identities
- 5:41Role of trusted execution environments (TEEs) in proof generation
- 6:14Overview of ZK proof stack (Groth16 + Circom)
- 6:42Developer integration using QR codes and SDKs
- 7:04Onchain vs. offchain verification and trust assumptions
- 7:35Hackathon bounties and prize structure for Self integrations
- 8:14Live demo setup: QR-based disclosure of age and country attributes
- 9:23Using the Self app to scan and verify attributes in real time
- 9:56Explanation of Self app builder config and parameters
- 10:31Verification process walkthrough with test network
- 11:09Smart contract example: extending SelfVerificationRoot
- 11:53How to override hooks for proof verification and event logging
- 12:36Matching frontend and contract verification configs
- 12:56Contract deployment setup and configuration example
- 13:26Repository overview: frontend QR code + Solidity contracts
- 13:55Handling multiple ID formats and disclosure data differences
- 14:21Specification nuances: passport vs. Aadhaar data formats
- 15:13New SDK improvements: programmatic config setup and scope handling
- 16:01How the latest update simplifies verification configuration
- 16:20Final notes, Q&A, and booth invitation
related talks
42mVerify Identities Onchain Using Self SDK
20mShow Me the Proof! ZK Identity with Self Protocol
56mUtilizing national IDs in the Ethereum ecosystem
39mSelf-Sovereign Identity: How Will it Look in Practice?
21mZero-Knowledge Proofs and Self Sovereign Identity
10mDigital Identity & Protection
23mHow to overcome AI threat to user authenticity
21mBootstrapping Global Scale Proof of Human PoH with Self
