Human ID (by human.tech)
  • Introduction
    • Private Credentials
    • The Issue of Regulatory Compliance & Non-Consensual Data Sharing
    • Need Support?
  • For Users
    • FAQs
    • Verifying Identity with Human ID
    • Verifying ePassport
    • Using Human ID with NEAR
    • Getting Refunded
  • For Developers
    • Integrating Human ID
    • Custom Sybil Resistance
    • API Reference
    • Dry Runs
    • Sign Protocol Attestations
    • Verax Attestations
    • Off-Chain Proofs
    • Clean Hands Attestations
  • For Node Operators
    • Run an Observer
  • Architecture
    • Overview
    • Flow of Data
    • Flow of Data: KYC Proof of Personhood
    • Where Data Is(n't) Stored
    • VOLE-based ZK
    • On-Chain Proofs
    • Clean Hands Architecture
  • How it Works
    • Modularity of the Stack
    • Issuer
    • Credentials
    • Hub
Powered by GitBook
On this page
  • Standard Sybil Resistance
  • More Advanced Sybil Resistance
  • How to set an actionID
Export as PDF
  1. For Developers

Custom Sybil Resistance

Political, social, and economic systems often need Sybil resistance. Sybil resistance is anything of the form:

1 person => 1 x

e.g.,

Standard Sybil Resistance

To just see whether a unique person owns a wallet address, you may visit Integrating Human ID

More Advanced Sybil Resistance

Sometimes you want to prove Sybil resistance for a specific action. E.g., if a user wants to vote in multiple elections from different addresses as to not reveal their voting history. This can be done by giving each election a unique actionID.

Importantly, this also means bribery would be easier. Imagine an action somebody doesn't care about. That person can provide a new address thatactionID. One can imagine a DAO vote where a bad actor is passionate about the outcome, and can create 1000 new address, then bribe 1000 random people to register one of those addresses for that specific actionID. Since the random people don't care about the vote outcome, they don't mind giving away their uniqueness to the new address for that particular actionID.

For the default actionID, it's far harder to launch a large-scale bribery attack, as giving up a vote to a briber is giving up everything to a briber: all future votes, universal basic income, and airdrops will go to the briber. While some people would gladly give up these rewards for the right price, doing so would require the presentation of government ID in order to participate in a black market. This risk far outweighs any rewards, so we assume such bribery on the default actionID will be negligable.

How to set an actionID

To prove uniqueness with respect to a specific action, you must create an actionId. Please use a large random number less than 21888242871839275222246405745257275088548364400416034343698204186575808495617 (the bn254 scalar field order). Let's say your actionId is 11223344556677, and after your users are done proving uniqueness, you want to them to be sent back to yourwebsite.com/yourcallback.

You can then view their verification status with respect to the custom actionID by the standard steps in Integrating Human ID. Simply replace the actionID in the code examples with your custom actionID.

PreviousIntegrating Human IDNextAPI Reference

Last updated 1 year ago

Then, they may visit

https://holonym.io/prove/uniqueness/11223344556677/yourwebsite%2E
com%2Fyourcallback