Language
Docs

Documentation

Contributors: Jack Frain, PBillingsby
Last Updated:

Vouch

Overview

Motivation

Vouching provides a decentralized approach to Sybil resistance. A Sybil attack is when an attacker subverts the network by creating a large number of pseudonymous identities to gain a disproportionately large influence.

Vouch Protocol

Arweave introduced the concept of the ANS-109 Vouch (Assertion of Identity). It is a standard that uses a specific transaction format along with some tags to allows anyone on the permaweb to "vouch" for the identity and humanity of any Arweave address.

Adding a standard such as the ANS-109 to the permaweb will help minimize Sybil attacks and bad actors, making it a safer experience for permaweb users.

VouchDAO

VouchDAO is a community led, decentralized verification layer built on top of the Vouch standard. Developers create vouch services and members of the VouchDAO community vote on which of these verification services are deemed trustworthy.

How It Works

Developers have the ability to create different Vouch services to attest to a user's Arweave wallet based on a given set of requirements. A current example of this is the Twitter service which is the first vouch service, which has vouched over 180 Arweave addresses so far.

The VouchDAO smart contract state has an attribute vouched. This state gets updated whenever a user gets verified. The vouched object stores a list of vouched addresses in the following format:

VOUCH_USER_ADDRESS:[
  {
    service:"SERVICE_ADDRESS_1"
    transaction:"TX_ID"
  },
   {
    service:"SERVICE_ADDRESS_2"
    transaction:"TX_ID"
  }
]

Users that get verified will have the ANS-109 token sent to their wallet to indicate that wallet has been vouched for by that service.

ANS-109 Transaction Format

Tag NameOptional?Tag Value
App-NameFalseVouch
Vouch-ForFalseArweave address that is being vouched for in this transaction
App-VersionTrue0.1
Verification-MethodTrueMethod of verification of identity for the person. Example - Twitter/In-Person/Gmail/Facebook
User-IdentifierTrueAn identifier for the user based on the Verification Method. Example - abhav@arweave.org

Resources