Gitcoin Passport: Identity Verification Built on Ceramic
Passport uses Ceramic to store personal credentials—allowing them to be portable across ecosystems and applications.
Gitcoin Grants Round 15 (GR15) wrapped up at the end of September, resulting in the distribution of almost $4.4M to 1,495 grants for public goods. In order to ensure that each vote was linked to a human, Gitcoin created Passport—a reputation system built on Ceramic. Gitcoin introduced Passport during GR14 in June; by the close of GR15, in September, the number of passports rose to 33,515.
This article covers Gitcoin’s recent quadratic funding rounds (GR14 & GR15), the challenges of sybil resistance and how Gitcoin built with Ceramic—the data layer powering Gitcoin Passport. It also explains how any application can leverage Gitcoin Passport on Ceramic—adding robust anti-Sybil protection and a proof-of-personhood reputation system.
What is Gitcoin Grants and Passport?
Gitcoin Grants is the largest Quadratic Funding (QF) application in Web3, having contributed over $72.5M in funding for a variety of hackathons, bounties, and open source projects since its inception in 2017. The Gitcoin Passport and the Trust Bonus are grants mechanisms that provide identity verification, improve Sybil resistance, increase the cost of forgery, and increase the weight given to grants donations from verified funders.
Passport is an identity verification utility that uses Ceramic to store personal credentials—making them self-sovereign to the user and allowing them to be portable across ecosystems and applications. By connecting their internet identities to Gitcoin Passport (Facebook, Twitter, ENS, etc), donors were able to receive up to 150% matching bonuses during GR15. The team launched Gitcoin Passport for GR14 and added 11 more verification methods or “stamps” to this most recent grants round.
Sybil Resistance Improves Public Goods Funding
Quadratic Funding is the mathematically optimal way to fund public goods in a democratic community. At the core of QF is its matching pool of funds provided by partners, companies, or protocols supporting public goods projects. The matching pool of funds is used to amplify the individual contributions to different projects. In short, projects undergo a crowdfunding campaign that is matched with funds according to the QF algorithm, where the number of contributors is weighed more than the amount funded.
For example, imagine Project A receives a total of $1,000 in funding from five contributors ($200 each) and Project B receives a total of $1,000 from 20 contributors ($50 each). Assuming a matching pool of $10,000, according to the QF algorithm, Project B would receive over $7,000 of the matching funds while Project A receives about $2,000.
Essentially, QF incentivizes individuals to contribute small amounts and pushes decision-making powers away from whales who donated a much larger amount. This ultimately creates more democracy in public goods funding.
While QF is the most optimal way to democratically allocate funds to projects that a community cares about, it is susceptible to Sybil attacks. Sybil attacks happen when an attacker pretends to be multiple people at the same time, manipulating a distributed peer-to-peer network and its incentives to their benefit. In Gitcoin Grants, the Sybil attack could mean that a user spreads their funds across multiple wallets and donates to the same project. Since QF weighs the number of donations over the total amount donated, attackers can game the system to receive a larger slice of the QF matching pool.
To build in Sybil resistance, the Gitcoin team asks users to verify their “proof of personhood” by proving ownership over various accounts and data. Gitcoin Grants integrates with a variety of identity providers (Proof of Humanity or BrightID), Web2 services (Google, Twitter, or Facebook), and Web3 accounts (ENS). The more providers that users link, the higher their ‘Personhood Score’ and the more eligible they are for a ‘Trust Bonus’. Contributors begin with only 50% of their eligible matching funds actually being matched. As they verify more providers, they are eligible for up to 150% of their eligible matching funds being matched.
While the Trust Bonus helps to minimize the impact of Sybil attacks, it isn’t the end solution. Gitcoin has long subsidized these payouts (called a Fraud Tax) to ensure that no grant has received less than it was supposed to due to any detected Sybil attacker. Since Grants Round 7, identity verification has evolved to take several variables into consideration, including training a Machine Learning model to detect adversarial behavior. By introducing these mechanisms, between Grants Rounds 9 to 11, the Fraud Tax paid out by the Gitcoin team has decreased from 6.6% of the pool to about 0.6%.
Why Gitcoin Built Passport on Ceramic
In addition to reinforcing the algorithms behind the Trust Bonus, the Gitcoin team long explored the concepts behind Passport as it is today. Primarily, Passport has been designed to adhere to two principles: the data generated must be sovereign to the user, and the app must be built on open standards to be composable, programmable, and portable. Aligning to this vision, Gitcoin built an alpha version of the Passport to issue NFTs attesting to the user’s identity claims that are sovereign to the user and built on the ERC-721 open standard.
The Gitcoin team believes in the World Wide Web Collective (W3C) standards, specifically that Decentralized Identifiers (DIDs) and Verifiable Credentials (VCs) are the best place for personhood information to live; this is what initially drew them to Ceramic. DIDs are globally unique identifiers, mapping a blockchain-specific address to a chain-agnostic identifier that can be used to collect and attest to verifiable claims and credentials.
It’s particularly attractive that these standards are not blockchain specific, and in-fact, exist across Web2 and Web3 technologies, promoting high levels of interoperability between technology stacks. In addition to being chain-agnostic, VCs are cryptographically signed when they are issued, leading to useful tamper-resistance properties. Finally, DIDs and VCs are abstractions on top of user information and can be leveraged to secure Personally Identifiable Information (PII).
Ultimately, Ceramic aligns with Gitcoin’s driving principles for Passport: Self-sovereign data stored on a chain-agnostic protocol supported by open standards.
How Gitcoin Built With Ceramic
Ceramic is a decentralized data network that brings composable data to Web3 applications. Applications use Ceramic’s shared infrastructure and open API to store, modify, and retrieve data that can be reused or repurposed within other applications—across any blockchain, wallet or account. Therefore, any JSON data can be stored in streams, each controlled by an authenticated DID.
Gitcoin Passport leverages Ceramic to link a user’s Ethereum address to a DID, enabling users to create and control data streams on the Ceramic network. If a user already has a DID linked to their Ethereum address, the application will not prompt them to create a new one. Users will specifically generate a DID method called did:pkh, which generates a DID from the Ethereum address’s Public Key Hash. Ceramic recently adopted this DID method to align with the Sign-In With Ethereum (SIWE) specification—leading to a clean, standardized authentication flow with minimal user interaction and greater clarity around what data is being requested and transferred.
From the Passport application, as users verify their online identities with various trusted third-parties (BrightID, Google, Facebook, ENS etc), Gitcoin signs and issues “stamps” to the user’s Passport. Since Gitcoin is acting as a signatory in this relationship, these stamps verify and publicly attest the user’s identity claims. Each identity that a user attests is assigned a weight and is used to calculate a weighted Personhood Score that secures the Quadratic Funding mechanism.
Behind the scenes, both the Passport and stamps are stored as a Ceramic Data Model, which specifies a schema on what the data stored in those streams look like. The stamps are issued as Verifiable Credentials that include information about the identity that has been verified (Google, ENS etc.), to whom they are issued (user’s DID), and the signatory (Gitcoin). Once a VC is issued, it’s then stored on Ceramic streams and controlled by a Gitcoin DID. A reference to the VC is stored on the streams controlled by the user’s DID. The user’s Passport streams are simply a collection of references to the stamps assigned to them.
The Gitcoin team runs Passport as an app that assigns pre-determined weights to each account a user verifies. In the future, the Passport app will be progressively decentralized as a public utility so that any application can assign custom weights to the issued credentials and calculate its own Personhood Score. For example, a decentralized exchange may weigh a KYC (Know Your Customer) credential higher than a social media verification. On the other hand, an online community for developers may prefer to heavily weigh a Github verification stamp. Since the Passports and credentials are stored on Ceramic, it makes it simple for any application to leverage this data.
The Results
Gitcoin Grants Round 14, from June 8-23, was record breaking on all fronts: 44k+ community members contributed $1.7M to over 1250 grants, with a total of $3.2M ultimately matched. In this round, a total of $4.9M was distributed as part of the Quadratic Funding mechanism.
It was during Grants Round 14 that Gitcoin launched Passport, encouraging users to verify their personhood so that their matching contributions could be increased. Gitcoin users created over 22,000 individual Passports during the two-week grants round.
During that time, Ceramic and Gitcoin co-hosted the Passport Hackathon, encouraging collaboration among identity owners, issuers, and field experts to find solutions to pressing identity verification issues using Gitcoin Passport. This hackathon brought together 270 participants from around the world and 50 submissions to build interfaces, integrations, and educational materials for Passport.
During Grants Round 15, from September 7-22, almost $4.5M was distributed to public goods as part of the round, of which $3.1M came from the combined matching pools and $1.3M was contributed by the community.
This round also saw strong community participation. The number of passports that had one or more stamps by the end of GR15 was 33,515 passports (up from 22,000 passports created during GR14).
This means that 33,515 users are now able to travel across the Web3 metaverse with their Gitcoin Passport and prove to other applications that they are in-fact a human being. This information can be treated as a public utility—moving DAOs to adopt a one-human-one-vote policy and unlock use cases like quadratic funding, quadratic voting, sybil-resistant airdrops, and improved spam resistance for any decentralized application.
Are you building a reputation system?
Ceramic is a solution that seamlessly integrates DIDs and VCs along with robust database-like features for users and applications to issue, store, and share their credentials. Accruing credentials in a multi-chain metaverse and associating them with a chain-agnostic DID allows users to portray an accurate picture of their digital reputation and carry that with them into any application they use.
Here are a few projects using Ceramic to build robust identity and reputation systems.
Gitcoin Passport on Ceramic can be leveraged by and integrated into any application, adding robust anti-Sybil protection. If you’re working on a project on identity, credentials, and reputation, Ceramic might be a great fit in your tech stack—join the Discord and we’d love to chat!