The invisible billion, also known as the 1 billion people worldwide that don't have basic ID credentials, struggle every day to complete basic signups and register for government services. In Sub-Saharan African countries, less than 50% of children have a birth registration. Since these people have no way to prove their identity, they cannot access healthcare and social services, open a bank account, get a job, or even vote in an election. After learning about these people that are left without any form of identification, we wanted to make a way for them to obtain identification so that they can find jobs or enroll in school.
What it does
Crypto Identity allows a user to create a digital identity that they can use whenever they need to provide identification. You first register for an account using an email and password and are then prompted to take some pictures of yourself doing various facial expressions. We used a facial recognition API that can detect various emotions, which allows us to verify the user is actually trying to sign up for an ID and not just using someone else's picture. From there, the user is prompted to fill out a form that contains all the information that will be on their ids such as their date of birth and gender. We made a conscious decision to make certain fields optional to accommodate people from all socio-economic backgrounds such as a phone number and mailing address. Our project is meant to be used in a sort of office setting where you would set up your account with the help of an employee in case you don't have access to the internet or a computer at home.
Once all this information is gathered, the user receives a prompt from their digital crypto wallet that their identification is being minted as an NFT. An NFT is known as a non-fungible token, and typically represents some sort of digital media like a photo or video. Each NFT has its own unique ID, can not be copied. They are also very secure since they run on the Etherum blockchain, where all transactions can be seen publically. For this reason, we decided that NFT's would be the perfect option to put someone's personal information on. Their personal NFT stores their first name. and an encrypted version of all the private information they filled out in the form. This encrypted data can only be decrypted on our specific platform, ensuring the user's information is secure. Since our NFT's are stored on a blockchain, the IDs would be widely available for employers, financial institutions, and government agencies to verify a user's information. It also reduces the likelihood of theft or forgery due to the secure nature of NFT's as well as the lack of a physical ID.
How we built it
For the front end, we started off by using React to create the different components. For user authentication, we used Firebase Authentication and stored the data using the Firestore database. The facial recognition is done by using the Face-API.js, while for the NFT portion, we used Solidity and created a smart contract for a personal ID token for each user. For this demo, a local blockchain was used, but in reality, these identification NFT's would be stored on the official Ethereum blockchain.
Challenges we ran into
The main challenge we ran into was connecting the NFT program to the rest of the code, and how we would pass the information from Firebase into the NFT. Since this needed solidity, learning a new language in 24 hours was difficult, but we ended up doing it!
Accomplishments that we're proud of
Our team is definitely proud of the fact we were able to finish this whole project in 24 hours. Learning new languages and having to understand the whole NFT concept was super challenging but also rewarding!
What we learned
We learned how difficult it was to connect our Firebase data with both the NFT's and also the facial recognition software. However, we also did learn a lot about how NFT's work, and how this recent rise in popularity can be continued in the future. Our research into how many people don't have digital identities was also very mind-opening, and we became more aware of the situations some of these people are in.
What's next for Crypto Identity
The next step for Crypto Identity would be to connect our product to the official Ethereum blockchain so that users are able to share their IDs with other people. We also want to work on improving the dashboard ability on our website, and maybe provide more information on how people can use this identity in more opportunities.