Identities are important in a blockchain environment. As the blockchain concept in itself does not provide for an identity solution, an interesting challenge lies ahead of us: defining an identity scheme for a blockchain environment covering semantic definitions, usability and technical aspects. An additional challenge is the opportunity to make this scheme privacy-friendly, as it would have to comply with privacy laws and regulations and at the same time offer business users a comprehensive, scalable solution for attribute assessment and verification.
The blockchain is the ideal basis for a self-sovereign identity mechanism, as there is no need for a central controlling party and every participant has the same amount of control. Several parties have already invested in providing solutions in this area. Members of the Dutch Blockchain Coalition have been conducting research based on the ten principles of self-sovereignty. As an example, a use case featuring the Self-Sovereign Identity Framework (SSIF) will be discussed in this article, but it is still too soon to consider this a preferred solution.
As a teaser we will also cover the Personal Communication Channel (PCC) solution. Although this does not rely on blockchain technology, this solution applies more of the blockchain principles than any solution on the market today. All of these solutions create dynamic and flexible business opportunities and manufacturing possibilities as stated in the emerging industry 4.0 marketplace.
R3 blockchain community
The R3 blockchain community was founded in 2014.
It consists of about 200 institutions worldwide who engage in exploring blockchain solutions using the Corda blockchain infrastructure. This members-only community has produced some interesting projects in the identity field that are worth a quick glance.
As mentioned in an earlier article in this publication, it all starts with identity. The blockchain cannot flourish without a solid identity implementation. As the central PII (Personally Identifiable Information) store, the blockchain gives users control of their data, avoiding data proliferation, which is a common issue nowadays. This user control is defined as Self-Sovereign Identity Management. The principles of self-sovereignty have previously been defined by Christopher Allen and other authors.
There are several initiatives that adhere to those principles. However, representing individuals in the digital world is becoming increasingly complex. This paper describes a Self-Sovereign Identity Framework with a proof of concept based on registering a company at the Dutch Chamber of Commerce and opening a bank account. The registration process shows a blockchain implementation of identities that facilitates business using smooth, fully digital processes for identification and authentication.
Many blockchain applications require some form of identification. This can involve personal identities, identities of legal entities, or Internet of Things identities. Several companies are working on identity solutions, each with their own characteristics in order to meet specific requirements. There are, however, certain common requirements which each of these solutions try to meet. Christopher Allen defined ten principles of self-sovereign identities for respecting the privacy of individuals, which form a solid basis for any well defined blockchain implementation.
These ten principles give insight into the way privacy and user concerns are dealt with. In order to realise business opportunities, an identity scheme should have the following properties:
- It should be relatively simple to connect to using application programming interfaces (APIs) or standardised interfaces.
- The implementation should be blockchain technology agnostic and supported cross-platform.
- The identity information should be standardised, trustworthy and easy to use and verify.
- The information should be extensible, and obtaining information should be cheap.
Several solutions on the market today meet most of these requirements. Examples (in alphabetical order) are: Blockauth, Cryptid, Dappre (Digitalme), DIMS, IPv8 (TUD), IRMA (not specifically blockchain-related), OpenID, Selfkey, Sovrin (Evernym), SSIF and uPort. Although the Dutch Blockchain Coalition is testing all of these solutions, in this paper we will only discuss SSIF in more detail to illustrate a possible implementation of identities in the blockchain.
Self-Sovereign Identity Framework
Techruption, a coalition which includes TNO, Rabobank, the University of Maastricht and Brightlands lab, has created a Self-Sovereign Identity Framework (SSIF) that aims to satisfy all stated requirements and demonstrate its viability as a solution. Together with the Chamber of Commerce, a proof of concept was developed based on the thesis of Djuri Baars of the University of Twente and uPort.
The solution comprises an ontology on identity to demonstrate that knowing the definitions is paramount to a functional infrastructure. However, as the blockchain never forgets, storing PII on a blockchain is a bad idea. The SSIF solves this dilemma by storing the information as hashes. The SSIF aims to store the identity information in a central place in such a way that:
- the information cannot be examined by just browsing the blockchain information;
- the information can be verified and attested;
- the attested information is publicly available;
- the owner of the ID is in control of the above mechanisms;
- the information is stored in a blockchain technology agnostic way;
- the information components are sufficiently encrypted from brute force attacks.
In the SSIF solution the following parties play a role:
- a party who has an ID along with attributes to store – the client;
- a party who supports the specific blockchain functions – the operator;
- a party who issues attestations of the attributes that are under their control – the attesting party (AP);
- a party who uses the attested information to offer services – the relying party (RP).
The minimum viable product (MVP) created uses Ethereum. The information stored is depicted in Figure 2. The list in Figure 2 is an example of what the blockchain represents, although these are not the actual values stored in the blockchain.
In Figure 3, an identity is digitally present in the form of a private/public key pair. The main ID identifier is of course the private key, which is held by the owner of the identity. The public key is stored as one of three attributes that constitute one single entity. This example uses the entity ‘Surname’. So there are three items stored: the public key, the topic ‘Surname’ and the content of the topic ‘Hoogendoorn’.
All these items are hashed using the public key as the ‘salt’ in the hashing algorithm. These hash values are stored in the blockchain. In order to maintain privacy, every topic has its own key pair. The topic keys are Hierarchically Derived (HD) keys to facilitate management of all these keys.
The final element of the solution is the personalised app (see Figure 4). After the app has been downloaded and installed, it will require a code, which is sent separately. This code will allow the app to connect to the initialised data in the blockchain and get the content of the personal information along with the position of that information in the blockchain. The content of the personal information stems from the IDIN database. As banks have a Know-Your-Customer (KYC) process to verify personal information, the data obtained will be reliable. Please note that this proof of concept also demonstrates the use of KYC information by other institutions. This saves financial institutions a lot of money and effort.
Attestations to ascertain correctness of identity information
The next question is: How do we know we can trust these attributes? Trust can be established when an attesting party (AP) declares that the information is correct. Depending on the attributes in question, this declaration of trust or ‘attestation’ can be given by parties such as banks, municipalities, chambers of commerce, driving licence authorities, government agencies and universities.
To do this, the user selects the fields in the data set that need attestation (see Figure 2). A QR-code will appear that can be scanned using the scan function within the app. After a successful scan the request is submitted to the AP who verifies whether the data is correct, and subsequently signs the fields using its private key. In Figure 2 a signed field is represented by a tick in a box.
The user can choose which AP is allowed to perform the verification on which attributes. For some attributes this is limited to the legally authorised institutions. At this point the information is attested and can be used by relying parties.
Using the identity information in the blockchain
A relying party (RP) usually requires information in order to perform a task or deliver a service. The SSIF supports this by enabling the RP to ask for the required information by simply generating a QR code that can be scanned by the user with the SSIF app. A successful scan results in the app displaying the requested fields to the user along with the corresponding information as stored within the app. The user can approve or reject the request at this stage. If they approve the request, the information is transferred to the RP along with the correct address in the blockchain. When the info is received, the RP is now able to check if that information resides in the blockchain, verify whether the information is correct and check if the information has been attested by a party who meets the required trust level. Once the information is validated, the RP can decide to either confirm the information or invalidate the request.
Registering a company in a few minutes
An example might clarify this process. In this example a client (me) wants to start a small company. To do so, a registration at the Chamber of Commerce (in this case the Dutch Kamer van Koophandel) is required along with a company bank account provided by, in this case, ABN AMRO. Both parties act as an RP.
In preparation, the SSIF app was installed and the information in the blockchain was loaded. The attestation of the information was done by Rabobank who acted as the AP.
I access the Chamber of Commerce website and select the ‘small business’ option. Then I complete the required fields and confirm by selecting ‘verder’ (submit).
A QR code appears which I scan with the SSIF app. The required information appears within the app and I select ‘OK’. The RP is able to verify the information with the information they receive via the app and the signed information stored in the blockchain.
The web page changes to confirm the creation of the company. New information such as the VAT number and the Chamber of Commerce number is added to the blockchain and in my app.
This information is also signed by the Chamber of Commerce who now acts as an AP.
The only thing left to do to start my company is create a company bank account. The procedure is the same, but this time the new company registration will also be required.
This example shows that registering a company and applying for a bank account can be done within three minutes – a process which currently takes three days or more and often requires face-to-face meetings with Chamber of Commerce and bank staff. The principles of self-sovereignty are followed as closely as possible. The user must approve each step, is able to deny access and can transfer the information to other blockchain environments. In addition, the processes used are transparent and well-described, identities are long-lived, the user can choose the attesting party, and only the relevant parts of the information are revealed. Finally, the information is gathered and stored in compliance with the GDPR.
Blockchain technology proves to be useful for storing and attesting indisputable information while providing insight into the transactions. As stated, the SSIF is not the only blockchain-based identity scheme which adheres to the principles of self-sovereignty – several solutions on the market today meet most of the requirements.
An alternative: the Personal Communication Channel
Most of the identity management applications, including the blockchain-based ones, have one principle in common: a central ‘golden source’ database, which must be closely guarded. Wouldn’t it be great if we were able to protect the privacy of users without the need for such a database?
This is what the Personal Communication Channel (PCC) is all about. It creates safe connections with known individuals while allowing them to remain anonymous. PCC creates end-to-end encrypted communication channels, which enable the exchange of required information just by revealing the communication channel to that information. Although the concept is complex, the use cases and implementations are easily understood.
PCC use case
Installing an app on a mobile device creates a unique channel to the PCC infrastructure, which is only available to the user. Once the app has been installed, the user has a permanent connection to the PCC infrastructure, together with all the parties who communicate using
For example, if I want to rent a car, the rental company will ask for a copy of my driving licence to prove that I am allowed to drive. In the PCC scenario, I would send the rental company a code which represents a communication channel to the Dutch Driving Standards Agency (CBR), which would then confirm that I am allowed to drive a car. Note that at this point the rental company is assured that their customer is authentic and allowed to drive a car without having to know their identity.
The way these communication channels are created is unique. This concept requires a set of certificates, which are dispersed over a large number of servers that cannot be traced. The PCC infrastructure stores no personal information, yet the users themselves are always in control of who has access to their data. The used communication algorithms are in the process of being patented. Not for monetary gain, but to be able to introduce a completely new way of dealing with digital identities. The code will become publicly available as soon as the patent has been granted.
Some consider this new concept a paradigm shift as applying it requires a new way of thinking. Although the PCC functionality does not require blockchain technology, it satisfies all of the principles of self-sovereignty and decentralisation of governance, and can also be exploited in a blockchain environment. Blockchain technology offers lots of possibilities which could permanently change how our economy works.
1 Allen, C. (2016). The Path to Self-Sovereign Identity. On the blog: Life With Alacrity [Accessed 29 July 2018].
2 Haile, M.O. (2017). Blockchain identity management: a solution to rising cybersecurity risks. Keesing Journal of Documents & Identity, Annual Report on Identity Management 2017-2018, pp. 11-14.
3 Baars, D. (2016). Towards Self-Sovereign Identity using Blockchain Technology, Enschede: University of Twente.[Accessed 29 July 2018].
4 uPort [Accessed 29 July 2018].