All articles

How to Build an Identification App Using Blockchain?

Interested in building a identification app using blockchain? 

Blockchain is a huge market with lots of promise for innovative products.

According to Grand View Research, “The global blockchain technology market size was valued at USD 1,590.9 million in 2018 and is expected to grow at a CAGR of 69.4% from 2019 to 2025”.

Innovating in blockchain is your chance to make lots of money as well as helping to improve people’s lives. Here’re a few amazing case studies of companies who hired DevTeam.Space to build their blockchain products:

  1. Dencenture – Blockchain Mobile App and Web Application
  2. Medicoin – Healthcare Blockchain-Based Web Application
  3. DDKOIN – Leading Cryptocurrency


The market for identity management solutions
Identity management challenges
How can blockchain help?
Digital identity blockchain use cases
An example of a blockchain identification 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:


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 networks 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 to 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 the 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?”.
  • The 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 identification app

Let’s briefly review Blockpass, an example of a blockchain identification 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:

  • 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.

DevTeam.Space is a vetted community of expert dev teams supported by an AI-powered agile process.

Companies like Samsung, Airbus, NEC, and startups rely on us to build great online products. We can help you too, by helping you to hire and effortlessly manage expert developers.

LinkedIn Facebook Twitter Facebook Messenger Whatsapp Skype Telegram