Managing Identity with a UI for ERC 725
At Origin, we’re building a platform for decentralized, peer-to-peer marketplaces. You can imagine a future Airbnb-like DApp allowing users to rent out their homes, accept payment in crypto currencies and save up to 25% in fees. But you don’t want to rent your home out to just anyone… you want to be sure the person is reputable and won’t trash your house.
So how do we identify someone on the blockchain? How can we build a mechanism into our smart contracts to only allow interactions from reputable people? One potential solution to this problem is ERC 725 (and 735) — a proposed standard for managing identity on the blockchain from Fabian Vogelsteller. Fabian works on the Ethereum project and is well known in the community as the creator of the Mist browser and Web3.js. He was also the creator of the widely successful ERC 20 token standard.
So how does it work? To explain it, let’s use the Airbnb example from above. Before you can rent a property on Airbnb, you must verify your email and phone number and optionally your Facebook, LinkedIn and Google accounts. In this case, Airbnb acts as the trusted intermediary… both buyer and seller trust that Airbnb has gone through the verification process properly and that if they say a user has a verified email and phone number, that it is true.
This is no different in the ERC 725 world… we need to trust a third party to issue verifiable claims about someone, and we need a way to verify those claims on-chain. If we can do that, we can protect a contract by having it verify that a claim exists on an identity before allowing execution to continue.
Let’s walk through an example. Imagine there’s a DApp built on Origin called BlockBnb, which allows buyers to rent properties from sellers. For a buyer to interact with a BlockBnb listing contract, they must do so via an identity contract containing a valid claim issued by BlockBnb. The whole process would look like this:
- Buyer deploys a new identity contract (or reuses one they deployed earlier)
- Buyer visits blockbnb.com/verify and obtains a cryptographic signature proving that they control a particular email and phone number
- Buyer adds this claim to their identity contract
- Buyer tries to rent a property via a BlockBnb listing contract
- Listing contract looks at buyer’s identity for a claim issued by BlockBnb
- Listing contract recovers the public key from the claim signature and verifies it is still valid on the Blockbnb issuer contract
- Transaction is allowed to proceed
Now that the buyer has a verified claim on their identity from BlockBnb, they can interact with any other contracts also accepting claims issued by BlockBnb. Taking this a step further, imagine the US Postal Service deploy their own claim issuer contract, offering verifiable claims about an identity’s postal address. Any contract requiring a verified address can simply look for a claim issued by the US Postal Service contract before allowing interaction… and do so all on-chain.
Although ERC 725 is still at an early stage, we believe it has great potential and our intention is to use it as the basis for managing identity and trust at Origin. The above is a simplified example, and ERC 725 allows for many more use cases, such as multi-sig execution approvals and verification by contract call instead of key validation. We look forward to being a part of the continuing evolution of the standard.
Like everything we build at Origin, the smart contracts and Identity Playground DApp are open-source and available to all under the MIT license.
Watch our demo video below for an in-depth look at how it works:
Identity is an incredibly important component of the decentralized marketplaces that we’re enabling. We’ll be working hard to integrate ERC 725 into the Origin Demo Dapp in the coming weeks. We’re excited to be among the first projects in the world to support this open standard and are proud to have built the first working user interface to help other developers get up to speed. We hope other projects and developers will join us in supporting this standard as we make user identity portable across the apps of the future.
Learn more about Origin:
- Web: originprotocol.com
- Telegram: t.me/originprotocol
- Discord: originprotocol.com/discord
- Reddit: reddit.com/r/originprotocol/
- Facebook: facebook.com/originprotocol
- Instagram: instagram.com/originprotocol
- Twitter: twitter.com/originprotocol
- YouTube: youtube.com/c/originprotocol
- Email: email@example.com