Sybil-Resistant Voting on Snapshot

An Introductory Tutorial for Integrating ZK Identity into your dApp with Holonym

Caleb Tuttle
Holonym
Published in
3 min readJan 14, 2023

--

This tutorial shows how to add Sybil-resistance to DAO governance on Snapshot using Holonym for proof of uniqueness. Learn more about to how to integrate zero knowledge identity verification into your dApp with two lines of code at https://docs.holonym.id

Using the Holonym API, we ensure that a user who has proven their uniqueness gets voting power of exactly 1, and a user who has not proven their uniqueness gets voting power of exactly 0.

Note that at Holonym we have taken great care to ensure that all user information is kept private. Read the docs to learn more about how Holonym makes privacy-preserving identity possible.

Steps for DAOs

  1. Create Snapshot Space. You can find instructions here. If your DAO already has a Snapshot Space, you can skip this step.

2. Use the validation and API Snapshot strategies to call Holonym’s API.

  • Go to Settings.
  • Go to the “Strategie(s)” section.
  • The “Network” and “Symbol” fields can be set to anything.
  • Click “Add strategy”.
  • Find and click the “validation” strategy.
  • Set the strategy parameters to the following JSON object:
{
"symbol": "DAI",
"validationStrategies": [
{
"name": "api",
"params": {
"api": "https://api.holonym.io/snapshot-strategies",
"symbol": "",
"decimals": 0,
"strategy": "sybil-resistance/gov-id"
}
}
],
"validationThreshold": 1,
"votingStrategies": [
{
"name": "ticket",
"params": {}
}
]
}
  • Click “Add”.
  • Click “Save”.

Steps for voters

Follow the tutorial above to mint a Holo and produce a proof of uniquness

1. Mint your Holo. To prove that you are unique, you must first retrieve your credentials. Navigate to the mint page for government ID, and follow the instructions. After you use your government ID to verify yourself, Holonym signs your credentials (attesting to their veracity) and encrypts them using Lit Protocol. With your credentials, you can mint your Holo so that you can generate proofs about your identity. Holonym servers never store your plaintext information. You control your crypto keys and therefore have complete control over who sees your data.

2. Prove your uniqueness. Navigate to the uniqueness page (https://app.holonym.id/prove/uniqueness), and follow the instructions. When you generate the uniqueness proof, you will get a Soulbound Token (SBT) proving that your blockchain address is associated with a unique person. No other blockchain address can be associated with this specific unique person (you) in the Holonym system. When you prove uniqueness, no information about you is revealed other than the fact that you are a unique person.

3. Vote in Snapshot. You can now vote on DAO proposals in Snapshot just as you normally would. Since you have proven your uniqueness, you will have voting power of exactly 1 when voting on proposals that use the Snapshot strategy described above.

Conclusion

Holonym’s zero knowledge identity technology allows strong Sybil resistance on the web, including the use-case outlined here: Sybil-resistant voting on Snapshot.

Please reach out to us if you would like to see different kinds of Sybil-resistant strategies or if you have any questions.

Learn more about Holonym by reading the docs.

Join the Holonym Discord server or learn more at https://holonym.id

--

--