Document verification is an expensive and tedious process. In our current system, you must prove your educational accomplishments and employment history from scratch every time you submit a new application. This means requesting transcripts from your university, sending them to a third-party verifier, wait for them to be sent back, and pay a fee. But it doesn't have to be like this--that's where Yovo comes in.
What it does
Yovo verifies your documents once and for all: you only verify once. After you set up your account, you can allow educational institutions and employers to upload official copies. You verify the documents, and a public record of this two-party consensus is added to the Ethereum ledger. Then, when you need to prove your educational or professional accomplishments to new institutions, they can verify that the documents you send are valid.
How we built it
The issuing institution, which could be a university for transcripts or a hospital for a birth certificate, uploads an official copy of the document to IPFS and obtains a unique hash. Then, they use our web interface to send a request to your Solidity smart contract address, asking you to approve the document. You compare the hash to your own records, and approve the request. Now there is a permanent record of the document hash in the ledger, agreed on by you and the issuing institution.
When a new institution wants to view existing documents, they can send a request to your smart contract, which you can approve or deny. If you approve, they are sent a copy of the requested document. Since there is a two-party verified hash of this document in the ledger, the new institution can verify that the document they received has not been altered.
Challenges we ran into
We wanted to include enough information in the ledger to allow a sound proof of document validity, without including an encrypted version of the document in the ledger. This is because, if there ever arises a malicious party with a decryption oracle, we do not want them to be able to access encrypted versions of user data. Our solution is to use a hash of the document as a unique identifier. This way, the user retains the ability to withhold their encrypted information.
Accomplishments that we're proud of
Our platform increases the efficiency of document verification without compromising the reliability. Since the ledger is immutable, institutions can always reference the two-party consensus hash to detect if they are given falsified documents. This reduces turnaround time (no more mailing hard copies!) and removes the burden of unnecessary cost for repeated third-party verification.
What we learned
We learned that distributed ledger technology can be used to store a permanent, verifiable record of two-party consensus. Our team wrote and deployed our very first contract using CyberMiles, and learned to use AdobeXD.
What's next for Yovo
Improved UI integration and user account registration system.