Baby Woolball
A name system for humans. In Baby Woolball only humans can register names. Each person can have exactly one name. It is based on ZK proofs of personhood.
Created on 17th May 2024
•
Baby Woolball
A name system for humans. In Baby Woolball only humans can register names. Each person can have exactly one name. It is based on ZK proofs of personhood.
The problem Baby Woolball solves
Baby Woolball is a blockchain name system where only humans can own names; one name per person.
This enables knowing if you communicate with humans or AIs, adults or minors. It also prevents name speculation or Sybill attacks, a problem that some blockchain name systems suffer from.
I encountered this problem often in my projects. As a community manager, you get plenty of messages and offers where you don't know if they were written by an honest human or an AI, a minor or an adult. It makes it difficult to decide how to respond.
Baby Woolball is an example of making qualitative reliable private statements on a person using ZK.
When you get contacted by someone with a Baby Woolball name, you know, at a high probability, that they are humans. If your voting system uses Baby Woolball, you will not suffer from large-scale Sybill attacks. All of this without violating privacy.
Challenges I ran into
There were two main challenges.
The first was how to define an identity. If your identity is your blockchain address, then losing your identity means losing your funds, and vice versa. I wanted to avoid this risk by disconnecting the two.
Baby Woolball IDs are composed of both a name registered on a blockchain and a public key. The public key is external to the blockchain and is composed of elements on the Baby Jubjub curve that Noir uses. The blockchain ensures each name is owned by exactly one person, and manages verifications of proofs of personhood.
The second challenge was combining the technologies. Certificates are created by Safect (written in Rust), but the proofs are made with Noir and then verified in Solidity. This workflow, Rust->Noir->Solidity was a time-consuming challenge.
Tracks Applied (2)
Product Path
Aleph Zero
KYC & Proof of activity transfer
zkLighter
Cheer Project
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

