How To Build An Identification App Using Blockchain?

Globalization is continuing to make identity management an increasingly complex but important field. In particularly, the advent of the internet has led to a massive surge of interaction between service providers and customers both in their home countries and internationally.

Since a vast number of these transactions require ID verification, companies are scrambling to try to find adequate and secure solutions to prove identification.

This has led to a surge of interest in companies trying to create identification apps of their own.

However, most of the current identity management solutions need improvement, and blockchain can solve many of these problems.

Are you an entrepreneur planning to create an identification app using blockchain? If so, then you are likely here because you are wondering how to do so.

In this guide I will explain exactly what you need to create your own blockchain ID app.

Contents

The market for identity management solutions
Identity management challenges
How can blockchain help?
Digital identity blockchain use cases
An example of a blockchain identity app
How do you create an identification app using blockchain?

The market for identity management solutions

Projections for the global growth of Identity and Access Management (IAM) vary quite considerably. However, all of them agree on one thing, namely they forecast significant growth. Here are a few examples:

Download Our Project Specification Template

Identity management challenges

IAM isn’t easy to implement. The key challenges are as follows:

  • Globally dispersed audience: Global businesses are selling products/services to a global audience. Large multinationals operating in multiple geographies are employing local talent. This dispersed nature of the audience is a key challenge while implementing IAM. Read “The Challenges and benefits of identity and access management” for more information. Identity information varies widely according to geographies, which adds further complexities.
  • Distributed computing environment: An organization might use some SaaS products, moreover, they may run some apps on a public cloud. Finally, they might have some apps running on their own dedicated IT infrastructure. They naturally find it hard to implement an effective IAM in this distributed environment.
  • Complex provisioning processes: When new users/employees need access, organizations use manual access provisioning processes. Similarly, when users/employees leave, removal of access is again a manual process.
  • “Bring your own device” (BYOD): This is applicable in the context of organizations and their employees. People bringing their own devices to connect to organizational network and apps, which increases the complexity.
  • Regulatory compliance: With data theft, breaches of privacy, etc. becoming commonplace, regulatory requirements concerning IAM are now more stringent.
  • Protecting RESTful APIs: Web access management solutions can handle IAM for traditional software assets hosted on-premises. However, these solutions don’t handle the security of RESTful APIs well. Read “Top 10 legacy IAM challenges holding back your enterprise” for more insights.
  • Increasingly varied stakeholders: Growing complexity in the business world typically translates to more partnerships and business relationships. It’s no longer a case where an organization only provides access to its employees. They now also need to provide access for business partners. This naturally increases the complexity.

How can blockchain help?

Blockchain can make a difference due to the following reasons:

  • It’s a decentralized network where all “nodes”, i.e., computers have the entire data on the network.
  • This effectively makes each node a ledger of all records on the network, therefore, we call it “Distributed Ledger Technology” (DLT).
  • Each node can interact with the other nodes, without the intervention of a central server. Even if a hacker destroys one server, the network remains.
  • Security measures like decentralization mentioned above, digital signatures using encryption, cryptographic hash functions, and consensus algorithm provide for immutability of records. Read more in “How to build your own blockchain using Node.js”.
  • Blockchain networks like Ethereum allow the use of smart contracts. These are autonomous pieces of code, transferring cryptographic assets based on predefined conditions. Smart contracts are transparent and tamper-proof, while their execution is irreversible. They make contract administration easier, therefore, they can improve the efficiency of organizations.
  • Blockchain networks for enterprises restrict access and use consensus algorithms that offer better scalability. We call them “Enterprise blockchains”, and Hyperledger Fabric is an example.

As we can see, transparency, security, immutable records, and efficient operations offered by blockchain can address some of the fundamental challenges with IAM.

Digital identity blockchain use cases

Industry experts have identified several identity management use cases where blockchain can make a notable difference. These are as follows:

  • Identity verification processes can use a blockchain-powered multi-step, multi-factor identity verification.
  • Blockchain can decentralize the current centralized custodial login systems.
  • The technology can help provide secure identity solution for the decentralized web.
  • Blockchain can make self-sovereign identity, where users control their identity information and how it’s used, a reality. I have written about it earlier in “How to build a self sovereign identity wallet?”.
  • Protection of critical infrastructure can improve with blockchain.
  • “Internet of Things” (IoT) is a technology with significant promise, however, there is a challenge. The entire communication between IoT-enabled devices happens over the Internet. Blockchain can secure this communication.
  • Decentralized user data storage with blockchain can help avoid scandals like the Facebook-Cambridge Analytica data breach.

Read more about these use cases in “Blockchain for identity management: 7 possible use cases”.

An example of a blockchain identity app

Let’s briefly review Blockpass, an example of a blockchain identity verification app. The following quick facts are worth noting:

  • Blockpass has a comprehensive identity verification portal called “Blockpass KYC Connect”.
  • It helps in quick and easy onboarding of users for organizations in heavily regulated industries.
  • It uses blockchain and smart contracts for “Know Your Customer” (KYC) and “Anti Money Laundering” (AML) compliance procedures.
  • They offer a shared regulatory and compliance services. Organizations can use these services and eliminate expensive processes while onboarding users across different services.
  • Blockpass offers a set of tools that are easy to install. Organizations can use their “Software Development Kits” (SDKs) to integrate it with their existing systems.
  • The company offers Android and iOS apps.
  • Blockpass uses its PASS crypto token, which is built using the Ethereum ERC20 token standard. Users can easily use it with ERC20-compliant wallets.

How do you create an identification app using blockchain?

I will now take you through the steps to build an identification app using blockchain. These steps are as follows:

  1. Project scope definition:

I recommend that you develop a web app for identity verification using the Ethereum blockchain. You will essentially develop an Ethereum “Decentralized App” (DApp). A DApp has the following characteristics:

  • DApps are web apps, where the front-end can use any language, however, the backend must use smart contracts.
  • A DApp must run on a decentralized blockchain network, e.g., Ethereum.
  • DApps have their users, and the future of the app depends on the consensus of the user community.
  • A DApp needs to use a crypto token, created using modern cryptographic algorithms.
  • No user can hold a majority of these tokens.
  • DApps are open-source.
  • A DApp stores data on a decentralized blockchain network, following cryptographic standards.

I have explained DApps in my article “How to convert web app into a Dapp”.

  1. Build a development team

Your development team requires the following roles:

  • Business analysts (BAs);
  • Web designers;
  • Web developers for the front-end;
  • Ethereum blockchain developers with experience in Solidity programming language;
  • Testers;
  • A project manager (PM).

If your team needs to learn Ethereum blockchain development, they can take the following training courses:

    3. Design and develop the web app front-end

Your web designers and front-end developers need to design and develop the front-end. I recommend that you use Node.js, a highly performant open-source runtime environment. Many developers know JavaScript, and Node.js uses it extensively. Read “10 great tools for Node.Js software development” to learn about the advantages of Node.js.

     4. Obtain an Ethereum account

You will develop the DApp using the Ethereum platform, therefore, get an Ethereum account. Note the following:

Read How We Helped a Marketing Company to Build a Back-Office Custom Ads Dashboard

  • Deploying and running a DApp on Ethereum requires Ether, i.e., the native cryptocurrency of Ethereum. This is why you need an Ethereum “External Owned Account” (EOA).
  • You can use eth-lightwallet, an easy-to-use Ethereum wallet.
  • Use these instructions to install it.
  • Create a public and private key pair, and secure the private key.

     5. Plan for scaling your DApp

At the time of writing, Ethereum uses the computing-intensive “Proof of Work” (POW) consensus algorithm. This requires all nodes to participate in the transaction validation process and limits the scalability of Ethereum. Read “Proof of work vs proof of stake comparison” to learn more about POW.

You should take steps proactively to scale your DApp, as follows:

  • Study the business case. If the app doesn’t require the fully decentralized security that POW offers, plan to use another consensus algorithm that helps with scalability.
  • Create a sidechain for your app, so that you don’t congest the main Ethereum network. Loom Network offers SDKs to build a “DAppChain”, i.e., a sidechain specific to an app.
  • Use their SDK to create a DAppChain.
  • Use a different consensus algorithm like “Delegated Proof of Stake”(DPoS), if that meets your security requirements.

I have explained this earlier in “How to scale an Ethereum Dapp”.

       6. Study Blockpass smart contracts

As part of the DApp development, you will code smart contracts. Smart contracts are open-source pieces of code with If-Then-Else statements. They automatically transfer cryptographic assets upon fulfillment of predefined conditions.

I recommend you to study Blockpass smart contracts. These cover the identity management use case, therefore, you can get great ideas.

     7. Get the required tools for development

Ethereum DApp development requires the following tools:

  • testrpc: An easy-to-use blockchain client, testrpc offers a “Command Line Interface” (CLI). Use their GitHub documentation to install and configure it.
  • Web3.js: A popular Ethereum JavaScript API, Web3.js helps in communicating with the Ethereum network. You need to install it following this guide.
  • Truffle: An easy-to-use tool for compiling, testing, and deploying Ethereum smart contracts, Truffle lets you create separate folders for your projects. Check out their installation instructions.
  • MetaMask: It’s a browser extension, and it’s available for Chrome and Firefox. Ethereum programmers don’t always run full Ethereum nodes. In such cases, MetaMask facilitates communication with the Ethereum network. You need it to test smart contracts, however, I will explain more on that later. Visit MetaMask website and install the extension of your choice. Create a password. Secure the password and the 12-words private seed that you will have.

     8. Set up the tools

Your coders need to configure the tools as follows:

    9. Study the ERC20 crypto token standard

You will create a crypto token for your DApp, which your users will use. While there are several Ethereum crypto token standards, the most popular one is ERC20. Read “ERC20 token standard” to learn about this standard.

     10. Develop Ethereum smart contracts

Now that you have studied Blockpass smart contracts, proceed with coding smart contracts as follows:

  • Use Solidity, i.e., the preferred programming language for Ethereum smart contract development.
  • You need an “Integrated Development Environment” (IDE). I recommend that you use Remix, which itself is a DApp, therefore, you don’t need to install any tool.
  • Keep the logic simple. Complex smart contracts require more “gas price” to run, therefore, users will need to spend more Ether. You also can’t modify smart contracts after you deploy them, therefore, you need a bug-free code. Simpler logic will reduce the likelihood of bugs.

       11. Testing your smart contracts

It’s time to test your smart contracts. This involves the following steps:

  • Get dummy Ether from MetaMask Ether Faucet for testing your smart contracts on Ropsten.
  • Ensure that your MetaMask connection with Ropsten is still open.
  • Now, go back to the Remix IDE screen, and click the small “+” sign at the top left. This deploys the smart contract to Ropsten, however, please confirm the action in MetaMask.
  • Execute your test cases, and check if the smart contract works.

     12. Creating a crypto token for your DApp

Creating a cryptographic token for the DApp is essentially developing another set of smart contracts. Use the ERC20 standard, and read “Create your own crypto-currency with Ethereum” for detailed guidance. Remember to test these smart contracts too.

     13. Buy Ether

This is real Ether! You need them to deploy your smart contracts. Visit Coinbase, a popular crypto exchange, and buy Ether.

       14. Smart contract deployment

You are almost there! Deploy your smart contracts by taking the following steps:

  • Ensure that the testrpc instance you had started is still running.
  • You need to navigate to the Truffle directory that contains the smart contracts for this project.
  • Pay “gas price” using the real Ether you purchased.
  • Execute the “Truffle deploy” command, which deploys smart contracts.
  • Make a note of the smart contract address. You will need this information to invoke it later.

I have explained these steps in “Blockchain software development using the Ethereum network”.

Congratulations! You have just completed your project to create an identification app using blockchain!

Have a great blockchain identity verification idea?

Digital identity blockchain use cases show the strength of these combined technologies.

However, such projects can be complex. Blockchain is a niche skill as it is a new and evolving technology. As a result, you will need a capable development team. You will also need a PM with experience in managing such projects.

For this reason, you should consider engaging a trustworthy development partner. Our guide “How to find the best software development company?” will help you do just that.

Best of luck with your project.

Download Our Project Specification Template