20 Blockchain Interview Questions and Answers for 2022
Think through your job requirements first
Specify the job requirements when you advertise the job. Provide the following information:
Describe your company adequately to make potential candidates interested. Stick to facts, however, make the introduction appealing. Explain the growth opportunities that developers will have.
Talk about the work environment, organizational culture, and professional development opportunities that you offer. Finally, explain your compensation and benefits policies and packages.
Job descriptions for developers working on the blockchain technology
Provide a clear job description. Explain whether you want the new developer to work on development or maintenance projects. Describe the area that you plan to target, e.g., cryptocurrency, supply chain assurance, digital identity, etc.
Talk about the importance of these projects for your organization. Explain how the contribution of the new developers will make a difference to your company.
Roles and responsibilities for Blockchain developers
You need a blockchain developer to fulfill the following responsibilities:
- Studying the business requirements by working closely with business analysts (BAs);
- Understanding the technical solutions built by the architects;
- Providing the required inputs to the architects, e.g., the type of blockchain network to use;
- Evaluating alternatives vis-à-vis technology stack, development framework, programming language, etc.;
- Creating program specifications for new blockchain applications;
- Coding new blockchain applications;
- Collaborating with the testing and DevOps teams for the testing and deployment of new blockchain applications;
- Maintaining existing blockchain applications;
- Communicating effectively with all relevant stakeholders;
- Contributing meaningfully to process improvement initiatives.
Skills and competencies that you need in a Blockchain developer
You need a blockchain developer to have the following skills:
- Strong conceptual knowledge of how blockchain works;
- In-depth understanding of a distributed database;
- Solid knowledge of how a digital ledger and a distributed ledger works;
- Excellent knowledge of peer-to-peer networks (P2P networks);
- Good experience in public blockchains or private blockchains depending on your project requirements;
- Robust knowledge of cryptography, encryption, digital signature, etc.;
- In-depth knowledge of various hash algorithms, hash functions, etc.;
- Good familiarity with prominent public blockchains like Bitcoin, Ethereum, Ripple, IOTA, EOS, etc. depending on your project requirements;
- Sufficient experience in prominent private blockchains like Hyperledger Fabric, R3 Corda, Quorum, etc.
- Good skills in proprietary smart contract development languages like Solidity, depending on your requirements;
- Expertise in programming languages like Java/C++/Golang since some smart contract platforms allow developers to use them;
- Familiarity with the open-source ecosystem of blockchain tools and frameworks;
- Good knowledge of concurrency and multi-threading;
- Experience in cloud computing platforms like AWS, Microsoft Azure, etc.;
- Sound knowledge of software engineering, software development methodologies, code review, etc.
Look for the following competencies when you hire a blockchain developer:
- Passion for excellence;
- Commitment to the budget, scope, quality, and schedule goals of your project;
- A positive attitude focused on learning and improvement;
- The ability to accept honest and constructive feedback;
- Communication skills;
- Collaboration skills;
- Problem-solving skills;
- The ability to think from the perspective of the end-users of the intended software system;
- The ability to see the bigger picture.
Blockchain interview questions for junior developers
We categorize the blockchain interview questions by the seniority level of developers. Do you plan to hire a junior developer? Consider the following interview questions:
Question 1: What are the various types of records allowed on a blockchain?
Answer: Blockchain allows two types of records, which are as follows:
- Transactional records: These are records of transactions, e.g., cryptocurrency payment transactions from one address to another.
- Block records: A block record might contain several transaction records and identifiers for blocks.
Let’s take the Bitcoin blockchain network for example. A confirmed block on this network contains the following:
- A magic number that always has only one value;
- Transaction counter;
- Transaction data, i.e., the list of the financial transactions on the Bitcoin network included in this block.
The “Blockheader” contains the following:
- Block version number;
- “hashPrevBlock”: A hash of the header of the previous block, created using the SHA-256 hash algorithm;
- “hashMerkleRoot”: A hash of all the transactions in the current block in “Merkle Trees”;
- Current block timestamp;
Note that a new block contains a reference to the previous block. You can visualize this database as a chain of blocks, and that’s why we call this technology “blockchain”.
All of these blocks are available as a digital ledger to all the nodes on the Bitcoin blockchain. You can think of it as a distributed ledger. That’s why we call blockchain the “Distributed Ledger Technology” (DLT).
Question 2: Explain the transaction validation process on the Bitcoin blockchain.
Answer: Bitcoin is a public blockchain network for users to send/receive this cryptocurrency. Any anonymous/pseudonymous person can join this P2P network.
The Bitcoin blockchain network has a “genesis” block, which is the first block on this network. A Bitcoin block is a data structure. It contains transactional data, i.e., the details of transactions included in that block.
It also has a header. The block contains a few cryptographic hash values. One hash value pertains to all the transactions in that block. Another is a hash pointer to the previous block, and this establishes the linkage between the blocks.
The Bitcoin network has “miners”, who handle the transaction validation process. Users submit new transactions. These transactions initially go into a pool called the “mempool”.
A “miner” picks up some of these transactions and try to create a new block. This process involves solving a cryptographic puzzle. The puzzle is a difficult one, however, it’s possible to solve. Miners repeatedly try to find the answer to this puzzle.
This process is competitive since miners get rewarded with fractions of a Bitcoin when they create a new block. Miners often use computers with GPU. This offers more computing power, and it increases the chances of success.
This process is called “Bitcoin mining”. It’s computing-intensive, therefore, Bitcoin miners run high energy bills. Once a miner solves the puzzle, he/she broadcasts it to the entire network. All miners can see the solution. This consensus algorithm is called the “Proof of Work” (POW).
This decentralized process prevents hackers from manipulating the Bitcoin blocks. Manipulating the Bitcoin network is practically impossible since hackers need to control the majority of this large network. This makes Bitcoin highly secure.
Question 3: How does the “Proof of Work” (POW) consensus algorithm prevent “double-spending”?
Answer: Let’s use the example of the Bitcoin blockchain network to explain this, however, the concept is the same for other blockchains using the POW algorithm. Cryptocurrencies are ‘mathematical digital money’ and not something that is physically exchangeable. They exist as records on computers, and someone can change them.
If one changes the recipient address of a Bitcoin transaction, then the money is routed to someone else. This money was spent earlier. However, someone manipulated a transaction to spend it again. That’s called “double-spending”.
A Bitcoin block contains a cryptographic hash of transactions in that block. You need to run a hashing algorithm again if you change the transaction data.
A Bitcoin block also contains a hash reference to the previous block. If you change this block, then its hash needs to be changed. The next block will contain a hash of this block, and you need to change that too.
If you don’t change these hashes, then the anomaly will show up immediately. The Bitcoin network is a transparent one. Every miner will see the anomaly.
The Bitcoin network uses the POW algorithm. It involves solving a cryptographic puzzle. That’s a difficult puzzle, and many miners compete to solve it. This algorithm involves heavy-duty computation. Every miner notices what’s going on due to the transparent nature of the network.
One finds it hard to change the data and hash of a block in this set-up. Once you change one block and its hash, you need to change the next block to reflect that. That creates another anomaly, and you need to change the subsequent block to resolve it.
That’s impractical to execute this chain since all miners on the network see these unusual activities. That’s how POW prevents double-spending.
Question 4: Which features make public blockchain networks like Ethereum or Bitcoin incorruptible?
Answer: The following features make it very hard to manipulate public blockchain networks like Bitcoin and Ethereum:
- These networks are decentralized P2P networks. They don’t have one central administrator, and all nodes on these networks have equal authority. One person can’t override others.
- These networks are distributed ledgers. All nodes have all transaction records. Even if someone shuts down one node, the other nodes remain available. External actors can’t shut these networks down.
- Users holding Bitcoin or Ether (the native cryptocurrency of the Ethereum network) use cryptocurrency wallets. These wallets use digital signatures. These digital signatures utilize asymmetric cryptography, which includes a public key and a private key. Users can make the public key available publicly. They need to keep the private key secret, and that secures their wallet for all practical purposes.
- These public blockchain networks are transparent. All miners can see every activity, which makes manipulation very hard.
- The transaction validation process in these networks uses the “Proof of Work” (POW) consensus algorithm. This requires “miners”, i.e., transaction validators to create new blocks with the transactions they validate. They need to solve a moderately difficult cryptographic puzzle, and they do this in a competitive environment. They need to get the majority of miners on board before they manipulate this network, which is impractical.
- Manipulating an existing block requires changing its data in a transparent environment. It also requires changing the cryptographic hash since there will be anomalies without that. The subsequent block has a reference to this block. Hackers need to change the subsequent block to avoid anomalies, and this process must go on. That’s impractical in a transparent environment.
Question 5: Provide examples of using cryptographic algorithms in blockchain.
Answer: Two examples from the Bitcoin blockchain network show why and how cryptographic algorithms help blockchain networks.
Example #1: Digital signatures
Bitcoin users use cryptocurrency wallets to hold Bitcoins. Users might receive Bitcoins from others, therefore, they need to have a digital address. Their cryptocurrency wallet has a public address. We also call it the “public key”.
Users need to authorize transactions. Only they should be able to authorize their own transactions, and the wallet provides a “private key” for this. Users need to secure it and keep it a secret. They can keep their cryptocurrencies safe as long as they protect the secrecy of their private key.
The public and private keys are linked to each other. One can derive the public key from the private key. However, one can’t derive the private key from the public key. That’s because the private key should remain a secret.
The wallets use asymmetric encryption for this. This utilizes cryptographic algorithms to protect the secrecy of the private key. These algorithms are strong, and hackers with computing resources available today will need billions of years to crack them. Cryptographic algorithms here allow users the exclusive control to authorize their transactions.
Example #2: Cryptographic hash functions
A block on the Bitcoin blockchain has a header. The header contains several pieces of information, which includes the hash of the previous block. This establishes a link between two blocks, giving the impression of a chain.
What if a hacker tries to change an existing block? He/she must change the cryptographic hash of the block after changing it. There will be an anomaly without that, and the transparent nature of the Bitcoin network will allow everyone to find it out.
Whenever you run a cryptographic hash function on a piece of data, you get a scrambled value. One can’t recreate the input value from the hash. Any changes to the input value will produce an entirely different hash.
Therefore, the hacker will end up creating an entirely different hash for the changed block. This block has a hashed reference in the subsequent block. The hacker now needs to change the subsequent block to reflect the new hash. As you can see, he/she must continue this process for all the subsequent blocks!
“Miners” on the Bitcoin network will immediately notice these manipulative activities. This makes it practically impossible to hack the Bitcoin blockchain.
Question 6: What makes using a blockchain a trusted approach?
Answer: The concept of trust in the traditional business/organizational environments depend a lot on interpersonal trust. If person A knows that person B has an impeccable track record vis-à-vis integrity, then person A will trust person B.
Blockchain changes this approach fundamentally. It relies on the premise that person A doesn’t need to explicitly trust person B. Instead, the credential of person B will be mathematically proven. These credentials will be open to scrutiny by all. This transparency will supply the trust factor.
The following characteristics of blockchain make this possible:
- Public blockchain networks are open to all. Anyone can join such networks and view all records.
- All nodes on a public blockchain network have equal authority, therefore, one can’t manipulate others.
- Blockchain is a distributed ledger. All transactions are available on all nodes, therefore, shutting down one node can’t destroy the network.
- Security measures like digital signature, cryptographic hash functions, and consensus algorithms make records on a blockchain network immutable. This keeps hackers at bay.
- Blockchain complies with the open-source standards. Anyone can view the code, which promotes further transparency.
Private blockchain networks vary from public blockchains. They allow only trusted parties to join the network, however, they implement stringent transparency and security measures.
Question 7: Why do some cryptocurrencies use “Merkle Trees”?
Answer: Bitcoin and several other cryptocurrencies use the concept of “Merkle Trees”. A “Merkle Tree” is a data structure with specific characteristics. Several blockchain networks use it to encode data securely, furthermore, this helps to encode data efficiently.
Blockchain networks like Bitcoin store a cryptographic hash of transactions in a block. This hash helps the miners on the network to verify the authenticity of the transaction data. However, miners don’t use this hash to recreate the original transactions.
This process works as follows:
- Cryptographic hash functions create hashes for each transaction.
- Hashes for two transactions are combined, and the hash function runs on this combination. This creates another hash.
- Two such secondary hashes are then combined. The cryptographic hash function runs on this combination, which produces another hash.
- This process continues until one hash for the entire block is created.
This looks like a tree when we represent it visually. This is why we call it a “Merkle Tree”. A user can verify one transaction without downloading the entire blockchain. The entire blockchain network can be very large, and using a “Merkle Tree” makes this verification easier.
Question 8: What are the different types of blockchain networks?
Answer: There are 3 types of blockchain networks, which are as follows:
- Public blockchain networks: Anyone can join these blockchain networks. All participants can view all transactions and blocks, furthermore, all nodes have equal authority on these networks. These networks might use different consensus algorithms depending on their design. Cryptocurrencies use public blockchain networks, and examples are Bitcoin and Ripple.
- Private blockchain networks: These networks allow only trusted participants to join. We also call them “permissioned” blockchain. Businesses mostly use this type of blockchain network since they can only allow trusted parties to view the records. Therefore, we also call these blockchain networks “enterprise blockchains”. Hyperledger Fabric is a popular framework to create enterprise blockchain networks.
- Consortium blockchain networks: These networks allow only specific nodes to control the consensus process. All other participants can view the distributed ledger. Ripple is an example of such a network.
Question 9: Provide examples of popular public blockchain platforms?
Answer: The phrase “blockchain platform” indicates a platform where one can create a blockchain application. There are both public blockchain platforms and enterprise blockchain platforms.
Examples of popular public blockchain platforms are as follows:
- RSK (Rootstock);
- Cardano (ADA).
Ethereum is the most popular public blockchain platform.
Question 10: What are smart contracts on the Ethereum blockchain?
Answer: Ethereum allows users to send Ethers to other users. However, Ethereum also allows developers to create applications. It offers the “Ethereum Virtual Machine” (EVM) for this. EVM is the runtime environment for smart contracts on Ethereum.
Smart contracts are pieces of code with the following characteristics:
- They are open-source.
- They contain “If-Else-Then” statements to channelize the control of the program based on predefined conditions.
- Smart contracts allow users to transfer cryptographic tokens to another user based on predefined conditions.
- They are autonomous, i.e., they execute automatically when the trigger condition is met.
- Smart contracts are stored on a blockchain. You can’t modify them after their deployment.
- The outputs of the execution of a smart contract are stored on a blockchain, therefore, their execution is irreversible.
Question 11: Explain the characteristics of the blockchain applications known as “DApps”
Answer: “DApps”, or “Decentralized applications” are applications created using a blockchain platform. They have the following characteristics:
- These are open-source applications.
- The front-end of a DApp can be created using any technology, however, the back-end must consist of smart contracts.
- A DApp must run on a decentralized blockchain network.
- DApps must use a cryptographic token created using established cryptographic standards.
- DApps must store data on a decentralized blockchain, and the process must follow established cryptographic standards.
- No one user can control the majority of the cryptographic tokens used in a DApp.
- One can change a DApp only after its user community reaches a consensus about this change.
Blockchain interview questions and answers for mid-level developers
If you plan to hire a mid-level blockchain developer, then use the following interview questions:
Question 12: Mention some of the most popular cryptographic algorithms
Answer: A few popular cryptographic algorithms are as follows:
- Triple DES;
Note that the Bitcoin blockchain network uses the SHA-256 algorithm.
Question 13: Explain the first thing you code in a Solidity file.
Answer: Solidity, the proprietary language to code smart contracts on the Ethereum platform has its syntax and conventions. Programmers must mention the Solidity version number at the beginning of the code.
The helps to eliminate compatibility-related errors when compiling a program with another version of Solidity. Developers should also mention the version number of their program, which is a good programming practice.
Question 14: Which cloud computing platforms can you for hosting an enterprise blockchain network?
Answer: You create an enterprise blockchain entirely on your own, alternatively, you might use an enterprise blockchain framework like Hyperledger Fabric. Unlike public blockchain platforms like Ethereum, you need to host your enterprise blockchain network. Prominent cloud computing providers offer “Blockchain-as-a-Service” (BaaS) platforms for this.
A few popular BaaS platforms are as follows:
- “Blockchain on AWS”;
- “Microsoft Azure Blockchain”;
- “IBM Blockchain Platform”.
These BaaS platforms manage the infrastructure aspects, therefore, you can focus on application development.
Question 15: What are the different types of Ethereum blockchain networks?
Answer: We have the following 3 types of Ethereum blockchain networks:
- Main network: This is the main Ethereum blockchain network. Ether (ETH) is the native cryptocurrency on this network, and all transactions would require ETH. We also call this network “mainnet”. Programmers deploy Ethereum smart contracts on this network.
- Test networks: These are Ethereum networks for testing smart contracts. Developers don’t need to spend real ETH to run smart contracts on these networks. A few examples are Ropsten, Rinkeby, Kovan, etc.
- Private Ethereum networks: Ethereum allows an organization to implement a private blockchain. Organizations would run such networks on their on-premise infrastructure. Alternatively, they could deploy them on their choice of cloud platforms.
Question 16: Provide the example of a smart contract verification tool
Answer: You can’t modify smart contracts after deploying them. This poses a risk, and you need to focus heavily on the quality of the code.
Testing can help. It can’t be enough since testing can’t find all bugs. You need to verify smart contracts. Manual verification of smart contracts takes plenty of time, which makes verification tools important.
Microsoft offers “VeriSol”, a smart contract verification tools. The name stands for “Verifier for Solidity”, and it mathematically verifies whether a smart contract will work as desired. Microsoft offers it as part of its Azure Blockchain Workbench too.
Senior Blockchain developer interview questions
Check out the following questions when interviewing senior blockchain developers:
Question 17: What is “Gas” on Ethereum?
Answer: You need to pay fees on the Ethereum main network to execute any smart contract. Smart contract deployment requires the payment of this fee too. We call this “Gas”.
“Gas” is measured in fractions of ETH called “gwei”. The “Gas” for a transaction depends on the amount of storage required by a transaction, furthermore, it depends on the code too. Complex operations require more “Gas”.
Question 18: Explain how you will develop and deploy an Ethereum smart contract using the Ethereum ecosystem tools.
Answer: You can develop and deploy an Ethereum smart contract using a variety of tools. A common approach is as follows:
- Use testRPC, a popular blockchain client for Ethereum development.
- Use MetaMask, a tool to communicate with the Ethereum blockchain via smart contracts.
- Connect to the Ropsten test network for testing your smart contracts.
- Code smart contracts using the Solidity programming language and Remix IDE (“Integrated Development Environment”).
- Get Ropsten test ETH using MetaMask, and deploy your smart contracts to Ropsten.
- Test the smart contracts.
- Use “eth-lightwallet”, a cryptocurrency wallet to hold Ether. Set up your private and public keys.
- Install Truffle, a popular tool to test and deploy smart contracts.
- Use the “truffle deploy” command to deploy your smart contract on the Ethereum main network.
Question 19: How would you deploy an Ethereum smart contract on Hyperledger Fabric?
Answer: Hyperledger Fabric is an enterprise blockchain framework. It allows you to code “chaincodes”, i.e., smart contracts in the Fabric parlance. Deploying Ethereum smart contracts on Hyperledger Fabric can be hard, however, there are tutorials for this.
This involves the following:
- Install the Hyperledger Fabric framework on a BaaS platform of your choice, e.g., AWS.
- Install the required tools, e.g.:
- cURL: A tool to transfer files from one server to another;
- Docker: A container to create packages and deploy them;
- Programming languages: Fabric allows coding in Golang or Node.js.
- Install the binaries, samples, and Docker images.
- Install the Fabric “Ethereum Virtual Machine” (EVM) chaincodes.
- Configure Fabric EVM chaincodes.
- Write Solidity smart contracts using the Remix IDE.
- Compile, test, and deploy the smart contracts on Fabric using the relevant guidelines.
Question 20: How can you create a blockchain application using Node.js?
Answer: Hyperledger Fabric, the popular enterprise blockchain framework allows you to create a blockchain application using Node.js. Take the following steps:
- Choose a BaaS platform, e.g., “IBM Blockchain Platform”.
- Install the Hyperledger Fabric framework on your choice of BaaS platform.
- Familiarize yourself with the Hyperledger Fabric Node.js SDK (“Software Development Kit”).
- Follow the documentation of the BaaS platform that you chose. Different BaaS platforms follow their conventions and standards for developing blockchain applications using them. E.g., you need to follow the IBM Blockchain Platform documentation if you chose this platform.
- Create, test, and deploy your blockchain application by following the above-mentioned documentation.
To use these questions during an interview, you can print this question-and-answer sheet. If you need more help, please contact us at DevTeam.Space. A dedicated account manager will soon contact you.