LiteID is an identity system based on Ethereum Contracts. It allows people who don’t have access to normal forms of ID to identify themselves, in order to access resources that would be otherwise unavaliable to them.
Currently, there are over three billion people in the world who lack an official form of identification. This is such an important problem holding back the devloping world that the World Bank has created a progam specifically to address this: Identification for Development We wanted to make a difference, and so we chose to develop an easily accessible identification system.
The first thing we did was look to at what others had done in the past. We found many projects that tried to solve this problem by leveraging the blockchain, most of which were webapps. However, we wanted somthing that would be accessible to as many people as possible.
We found that while only around 15.5% of African households have access to the Internet, more than 80% have a cellphone or smartphone. We wanted to find a way to reach out to thease people, and connect them to a secure, scalable, and flexable identity system.
LiteID is an identity ecosystem based around a core Ethereum contract, which contains only a few simple functions. It stores only salted hashes, their associated salts, and a timestamp, allowing the utmost flexibility for the documents being stored. This allows us to have selective disclosure, where a user only reveals the documents that they choose. Additionally, the salted hashes dramatically slow down attackers, such as tyrannical regimes, from brute-force searching the block chain for names or other information.
The mobile application is based on the cross platform Xamarin framework, allowing us to target a broad range of devices, including iOS, Android, and Windows Mobile. We took care in developing our application to ensure it is able to run on very early versions of Android (down to API 9/Gingerbread), which are prevalent in the regions we are targeting.
The SIM application is based on Oracle’s JavaCard, and is intended to include most of the functionality of the Mobile App. However, because of the limitations of SIM cards and MMS, we are not be able to process document files larger than 300KB.
The text interface is designed to be easy to use and accessible to anyone with a texting-capable phone, in order to enable as many people as possible to interface with LiteID and therefore be able to create a secure identity for themselves. While it is not as fully featured as the app, it has the greatest reach of the current interfaces. It is also designed to be easy for governments or other sponsoring organizations to run their own nodes with a texting interface. Using this system, an entire country could be able to use LiteID at a fraction of the cost of a traditional eID system.
Mark Omo: I worked on the SIM App and the Text Interface
James Rowley: I worked on the Mobile App
Daniel Werth: I helped shoot and compose the video
The SMS server is built using Python 2.7 and the Twillo API.
The Ethereum integration is accomplished through a Python module we devloped called LiteID Contract Tools, based on a custom version of ethjsonrpc that we modified to allow for better cross platform support.
The Mobile App itself is built on a cross platform mobile devloment framework called Xamarin, which allows us to target the vast majority of mobile devices in use in the world today.
We originally set out to write a lightweight client implementation of Ethereum in Xamarin, however unfortunately due to a lack of documentation on the behind-the-scenes protocols used, and a creeping deadline, we were not able to reimplement it from the source of geth like we had planned.
Mark Omo: The implementation of the text server and ethereum interface, as it was my first published pypi package.
James Rowley: I’m very proud of how the app turned out, since it is my first.
Daniel Werth: The project video.
Mark Omo: Much more about the inner workings of the JavaCard implementation, as well as the intricacies of how Ethereum nodes communicate with one another.
James Rowley: I learned quite a bit about app development, as this was my first experience with mobile apps, as well as more about the blockchain.
Daniel Werth: How subtle differences in video production can make huge differences in the outcome.
We want to continue to expand the implementation of the Mobile, SIM, and Text applications in order to get LiteID in the hands of those who need it most, and so that we can get feedback about what we’re doing right or wrong. We would also like to work with African mobile carriers to get the SIM app rolled out to their clients, which would greatly accelerate adoption.