Verifying identity in Venezuela through the TPL

By Alejandro Machado

Venezuelans are at the heart of the Americas’ worst-ever refugee crisis, most of them unable to obtain passports and other crucial official documents. Identity is paramount for accessing aid, including cryptocurrency airdrops, and for participating in forums where nationals could take decisions collectively.

Taking some inspiration from what has worked in a Jordanian refugee camp, Sebastián Delgado, Eduardo Medina and I developed the foundations for a blockchain-based Venezuelan ID system at ETHBuenosAires, using the Transaction Permission Layer (TPL) protocol as one of the building blocks.

The TPL project was started by the same engineers who brought us OpenZeppelin, so the codebase is very easy to understand. The Jurisdiction contract has a record of Ethereum addresses and their respective attributes. We extended this contract to create a digital jurisdiction that helps identify Venezuelan nationals. This jurisdiction keeps track of three attributes for every Ethereum address:

  • is this address holder a natural person?
  • is this address holder a Venezuelan national ID holder?
  • is this address holder able to vote in official elections in Venezuela?

We deployed the Venezuela Jurisdiction contract to the address 0x24e2… on the Rinkeby test network. As we controlled the address that created this contract, we became this jurisdiction’s Governance Collective.

Governance Collectives may want to outsource the tasks of gathering and certifying information to Certificate Validators. Shortly after creating the “Venezuela” Jurisdiction, we granted Certificate Validator status to the Democracy Earth Foundation, with address 0x7017…

José is a natural person, a Venezuelan national ID holder, and able to vote in elections, so he privately asks Democracy Earth to verify him. After an off-chain identity verification process where José sends them an Ethereum address that he controls, but isn’t publicly tied to him, Democracy Earth checks that Jose’s ID matches a recent picture of him, that his ID is unique, and that he is indeed in the Venezuelan voter registry. Then it sets the relevant attributes in the Venezuela Jurisdiction on the Ethereum blockchain.

José’s address has been whitelisted for services that use TPL to verify citizenship and ability to vote. For example:

Participating in airdrops

An airdrop is an event where cryptoassets are distributed, for free, to a set of addresses. They’re typically orchestrated by well-funded projects who want to grow their user base to leverage network effects. Airdrops typically require certain verifications to prevent a handful of actors from receiving most of the loot through Sybil attacks.

Let’s imagine GivETH organized an ether airdrop only for Venezuelans. José wants to participate, so he needs to prove he’s a national. No problem! Since the TPL Venezuela jurisdiction is live on the blockchain, GivETH can check whether an address belongs to a national ID holder by querying the contract’s holdsANationalID method. If they trust the Certificate Validator to have performed the checks of nationality and uniqueness, or the Governance Collective to have properly vetted the validators, they won’t need to ask for more data from José — his pseudonymous address suffices.

Or let’s take a real-world example. Byteball recently offered $10 in cryptocurrency to people affiliated with Venezuela’s Universidad Simón Bolívar (USB). Using TPL, the system would look like this: a few trusted members of the USB community form a Governance Collective and choose a Certificate Validator to check whether an address holder is affiliated to the university, perhaps by checking for ownership of an email address. José can privately ask Byteball to participate in the airdrop, and Byteball can perform a conditional transaction after checking whether José’s address was validated.

Engaging in political conversations

Using TPL, José can prove that he’s eligible to vote in Venezuelan elections. We’re still a long way from developing secret, untamperable voting systems on the blockchain, but pseudonymous address holders that have been validated as voters could use platforms like Sovereign or Aragon today to participate in political conversations without fully disclosing their identity. To get started, service providers just need to implement support for private channels limited to addresses with the holdsANationalID attribute validated in the Venezuela Jurisdiction.

What’s next?

TPL is still in its infancy, but it’s ready for the first experiments involving conditional transactions. Try it out yourselves, and tell us what you’re buidling with it!