gubsheep

@gubsheep

Joined on Jan 1, 2020

  • For this week's exercise, you will write a spec for one of the following proposed applications. If you are working on a project, you're automatically "exempt," as you'll already be building one of these! In your spec, you should: Outline precisely the ZK circuit(s) you'll be using. You can use our template from class if you'd like. Describe the business logic of the major components of the application: the server (what it stores, what it verifies, etc.) smart contracts (if applicable), clients (what they store, what they prove, etc.), and any additional services (for example, an auxiliary server that stores, verifies, and serves Merkle groups). WhaleChat
     Like 1 Bookmark
  • ZK Passwords In this exercise, you will implement a ZK-based password verifier! Instructions can be found in the README of the scaffolding repo. You are aiming to produce something that looks like this video demo. You can start with the scaffolding repo, or you can roll your own from scratch. If you use the scaffold repo, make sure to check out circom-starter, the base repo which this is based on! Extension: make proving happen in-browser. We’ll go over this during next week’s Monday optional session. You may also find this circom and snarkjs diagram useful.
     Like 1 Bookmark
  • This week's exercises are hands-on coding exercises. Try writing the following circuits on your own. If you get stuck, you can check the solutions. We'll go over these circuits in the second Optional Session in Week 2. If you need to look up circom language features or syntax, take a look at the circom docs. I recommend trying to build these circuits in zkREPL, for fast iteration. I recommend doing these exercises in order, as later circuits may build on previous ones. References Field Size All signals in circom are treated as numbers modulo this big prime:
     Like  Bookmark
  • Zupass Official Repo: https://github.com/proofcarryingdata/zupass The README provides a starting point for devs. Usage Examples for Devs: https://consumer-client.onrender.com This page contains examples for devs on how to integrate Zupass into various application flows, such as authentication, proof generation/consumption. Code for these examples is in the official Zupass repo. Example Application: Zuzalu Confessions: https://confessions-client.onrender.com/ This is a fully-functional anonymous message board built on Zupass, demonstrating authentication and identity-hiding proofs. For development/demonstration/reference purposes only! Zuzalu Confessions Reference Code: https://github.com/proofcarryingdata/zuzalu-confessions
     Like 1 Bookmark
  • The Zuzalu Passport is an app that lets you prove that you are a Zuzalu resident or visitor (using zero-knowledge cryptography!). You'll use it to access both digital and physical spaces at Zuzalu. For example, your Passport will generate a QR code that you can show on mobile, that can be scanned for access to Zuzalu co-working spaces. Your Passport also allows you to log into the Zuzalu website, to sign up for Zuzalu events. Once you've created your Passport, if you want to use your Passport on a device other than the one you first logged in on, you'll need to follow two easy steps. Step 1: Copy your Passport Key from your original device To do this, hit the settings icon in the top right-corner of the Passport app, and then tap "Copy Key for Sync."
     Like  Bookmark
  • Subject: [ACTION REQUIRED] Zuzalu Passport Migration Hi Zuzaluans! Last night, the .eth.limo service stopped working, taking down Ethereum-related websites including the Zuzalu Passport, multiple DeFi apps, and Vitalik's personal homepage. We've moved the Zuzalu Passport to a new domain. You'll need to re-generate your passport on the new domain in order to access the Zuzalu website and events. Get your new Zuzalu Passport here:
     Like  Bookmark
  • Subject: [ACTION REQUIRED] Set up your Zuzalu Passport before arrival! Hello Zuzalu residents! We’re in the final countdown of welcoming new residents to Zuzalu! Zuzalu activities are gated to Zuzalu residents. So to access Zuzalu spaces and activities, you'll need to set up your Zuzalu Passport: a simple digital pass that will grant you entry to events and spaces. Please follow the instructions in this email to set up your Zuzalu Passport; without a Passport, you won't be able to access venues in the village or the website! Your Zuzalu Passport is associated with your email address. The address you're receiving this message from is the email address we have on file for you.
     Like  Bookmark
  • Note: This flow is only for adding new resident emails, not visitors. Visitors should sign up on Pretix for a subevent or visitor pass, and then they will be automatically permissioned to create a Passport. First, go to the Pretix Imports spreadsheet, and navigate to the "Residents (INCOMPLETE) sheet." This sheet has been pre-populated with all residents who have incomplete {firstname, lastname, email} information. Screenshot: Pretix Imports spreadsheet Find the entry (or entries) that you want to permission as resident(s). Each entry needs an email, firstname, and lastname.
     Like  Bookmark
  • The MacOS Commands that Aayush Ran brew update && brew install pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc source ~/.zshrc pyenv install -v 3.9.1 curl -sSL https://install.python-poetry.org | python3 - echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
     Like  Bookmark
  • How to use these notes: These notes are meant to go along with slides and recordings. If you're following along with either the slides or the course recordings, and want to dig deeper into some topic mentioned, look for the appropriate header below for additional links or context. What is a zkSNARK? This will be covererd in more detail later, but there are plenty of great resources to understand how zkSNARKs work, their academic lineage, etc. For folks coming from complexity theory: a succinct story of zero-knowledge ZCash: What are zkSNARKs? (intro section only; the rest of this starts going deeper into the math) circom/snarkjs/zkREPL Demo If you're interested in infrastructure or developer tools, zkREPL is a really cool example of a useful ZK dev tool.
     Like  Bookmark
  • Today's exercises are hands-on coding exercises. Try writing the following circuits on your own. If you get stuck, you can check the solutions. If you need to look up circom language features or syntax, take a look at the circom docs. I recommend trying to build these circuits in zkREPL, for fast iteration. I recommend doing these exercises in order, as later circuits may build on previous ones. References Field Size All signals in circom are field elements in the prime field of order
     Like 3 Bookmark
  • Today's exercises are mostly taken from this ZK Topic Sampler. ZKP for 3-coloring Demo Visit http://web.mit.edu/~ezyang/Public/graph/svg.html and play around with the interactive demo. This is a programmatic version of the 3-coloring example we went over in class. Answer Exercise 1 at the bottom of the page. Optional - ZKP for DLOG Implement a non-interactive ZKP for discrete log in code! To do this, you'll need to read and understand the first section of this handout, as well as the Fiat-Shamir heuristic.
     Like 5 Bookmark
  • How to use these notes: These notes are meant to go along with slides and recordings. If you're following along with either the slides or the course recordings, and want to dig deeper into some topic mentioned, look for the appropriate header below for additional links or context. Why are we interested in modern ZK? For an overview of high-level topics and trends in modern ZK, and why the technology is important we highly recommend this hour-long panel. This panel is aimed at an audience with technical literacy but no ZK-specific background. What is this course about? You can find all of this information on the course homepage. Logistics You can find all of the information in these slides on the course homepage.
     Like 1 Bookmark
  • to cover: motivation why is building a zk app now possible? snarkjs, circom. some considerations around what is involved in building a zk app what are the guarantees that zk provides / contrast when you don't have a ZK system (you have to trust the server) background on "existing work" - group and ring signatures - contrast cryptographers writing specific protocols vs. zk devs who have access to a programmable "cryptographic computer" quick intro to how zk works / what zk is (maybe some light version of https://blog.zkga.me/intro-to-zksnarks) the protocol / the circuits themselves relationship to blockchains: most zk apps we've written have been on-chain apps; this is not on-chain, but benefits from blockchain as a credibly neutral ledger of identity components (asset ownership, dao membership, etc.) that can be integrated into this offchain system protocol extensions: deniability, ability to reveal the individual signer post facto, accumulator vs. hardcoded max # of signatories
     Like 2 Bookmark
  • Thanks for helping out with ETH Summer! Here is a summary of what we'll need from you before and during the program. Unlike during ETH Winter, we're distinguishing between two types of mentor roles: Topic Leaders and Project Mentors. Topic Leaders will guide a group of students on a specific topic on one or both weeks. Project Mentors will be matched to one or more students (or groups of students) in the final two weeks, and help guide students as they work to ship a project. Previously, "mentors" served in both roles, but this time around we're giving you the option to take on only one role if you'd like. Topic Leaders Preparation To be done in advance of program. Build out a reading list and "quests" list that can be shared with students, by a week before the program start. Example from ETH Winter, ZK Crypto Track: ZK track resources (Note from Brian: I recommended that students pick 1-2 of the subtopics to go through asynchronously each week, and then ask me questions during office hours. However, you're free to structure your resource lists however you'd like - see here for more examples). Plan ~2 workshops or lessons for your topic during the week. We're hoping to make hands-on experience a substantial part of the curriculum; students won't just be reading about ethereum or decentralized systems abstractly, they'll actually be interacting with protocols and dapps.
     Like  Bookmark
  • All of this code is highly experimental and has not been audited. Use at your own risk. This set of tools allows you to run a trusted setup ceremony for zkSNARKs. We are using a fork of AZTEC's trusted setup repository. Our coordinator server is an HTTP(S) server with a fairly straightforward API that allows clients to register, query for ceremony state, download the latest parameter file, and upload a (signed) parameter file when it is their turn to do so. The server also allows admins to perform various administrative functions (setting ceremony parameters, adding participants, etc.). The server also automatically verifies the integrity of contributions and exposes a history of all contributions for independent verification. In this coordinator guide: Ceremony lifecycle: An overview of how ceremonies work with setup-mpc-server. Get, build, and run a server: How to build and run the trusted setup server code.
     Like 2 Bookmark