uPort is fully open-source now!
Since the early days of uPort, we have always strongly believed in open sourcing all of the code that we have written. Now, we can proudly say that we have been able to do it.
Open-source software means anyone can look at the code, learn how it works and modify it. Think of it as the recipe for a cake. In some cases, you only get the cake (closed source). In others, you also get the recipe for how to make it, in which case you can determine what ingredients it has and learn how to make it on your own.
For us at uPort, open-sourcing our code is essential for two reasons:
1. Open source code is all about communities
The open source movement started at the very beginning of computer history. Mathematicians, among the first programmers, were the first ones to write code that runs on computers. In the academic culture of that time, it was common to share new knowledge like mathematical theories, formulas, algorithms and also code, so other peers can review, suggest changes and even add improvements with some modifications.
The original authors were recognized in the community for their contributions, and all the community was able to benefit from them. Mathematicians (and in general all academics) understand that knowledge is co-created, and to succeed in their field, they need to work and cooperate with their communities. This was a deeply embedded culture that rewarded collaboration and openness in the pursuit of knowledge.
Fast forwarding to present day, we see that many of the software we use have either been co-created in an open source way or built using open source components.
The Apache web server, Firefox browser, Linux and Android are just a few examples of this. The success of all this software relies on the fact that they were built by many developers around the world which exceeds in headcount any software company.
Developers built it because they need the software and are actually going to use it. They joined communities that share their same needs and worked together on improving it. These communities are composed of a diverse set of people with different skills but all sharing the same goal.
There was no need for market research since the community was the market. There was no need for customer support since the community provided the customer support itself. This was co-creation at its best.
At its core, identity is also about community. A person’s identity is not only about the personal information that makes up that person, but also a sum of connections to the different communities he or she is part of.
At uPort, we recognize that to build the next generation of identity tools, we cannot build it by ourselves alone. We neither have all the answers nor do we have the capacity to do it ourselves.
The new identity paradigms and platforms of the future should be co-developed by a strong community. Open-sourcing our code is a must for us if we want to be part of this community.
2. Open source code is a requirement for self-sovereign identity
Self-sovereign identity is about returning control to the users to own their identity. Private keys and the blockchain allow a user to control his or her identity without a third party provider to manage it. However, in order to do so, that person needs a piece of software that signs, encrypts and interacts with the blockchain or any other service in a way that is easy and convenient for the user.
If that software cannot be audited or reviewed by the user, then the user doesn’t really have full control over his/her identity. If you don’t know what the software actually does, you are at the mercy of the software developer — a third party again — whom now you must trust.
The only way to build trust is giving our community of users the ability to look at the code and build their own version. Following the cake recipe example, if you are deathly allergic to nuts, then the only way to be safe is to build the cake on your own and make sure not to add any nuts in it. To do so, you need the recipe.
Every product decision we make at uPort goes through the question: “how does this make the user more in control of his identity?” Open sourcing all our components will give the user more self-sovereignty.
I thought uPort was already open source. What are you open-sourcing then?
For historical reasons, one of our main components, the uPort Wallet (mobile app), was in a private repo. All the rest of the components were open-sourced from the beginning. But the uPort Wallet was not, and we recognized this to be a very heartfelt community debt. Many in our community asked us why it was not open-sourced, or how they can contribute if we didn’t provide them with a way to read and understand the code.
While developing how the concepts of self sovereign identity can be embodied in a Wallet, we hesitated to open source what we were building, concerned with the rise of copycat bad versions. In addition, we were more focused on building new features than to open the code to the community.
We have realized however that the “copycat bad version” problem should not deter us by closing the source code. So we decided to put some effort into open sourcing the uPort Wallet, so now we can proudly say we have everything open source.
What’s next?
Since we have everything open now, all members of the community can review and send modifications to every single part of the uPort identity solution including the mobile app.
This will help build a much better decentralized identity solution than before. Also, it will allow us to incentivize the development of some parts of the software through bounties. We are very happy with this milestone that will help us engage much better with the self-sovereign identity community, which if you think about it, is all of us!