This is a guest post by Michael G. Solomon PhD CISSP PMP CISM.
Blockchain technology is one of the most popular new topics in technology circles today. A blockchain solution can offer transparency, security, fault tolerance, auditability and, in some cases, reduced operational costs. It seems that everyone wants to roll out a new blockchain offering. But in spite of the attractive benefits, does it really make sense for your organization?
Blockchain technology is a huge shift in the way organizations design, test and deploy applications and data. Perhaps more than ever before, good design and comprehensive testing must precede the initial deployment of your new blockchain app. The stakes are high to make sure the benefits outweigh the additional upfront effort.
Let’s take a look at what blockchain does well and how you can decide if it would be a good choice for your next project.
What Blockchain Technology Is Good For
The most important decision when initiating a blockchain project is determining whether it’s a good solution for the problems your organization faces. When blockchain is a good fit, it can offer benefits that you just can’t realize with other technologies. On the other hand, if it isn’t a good fit, you can easily waste valuable time and money and end up with an app that doesn’t deliver what was promised. Careful upfront analysis and planning is important to make sure your project is a good fit for blockchain technology and that your organization is ready for the challenge.
A key benefit of blockchain technology is data transparency. Blockchain design relies on the fact that multiple nodes maintain full copies of the data, distributed across the blockchain network. Data that is distributed can be accessed by more users and provide more value. Advanced analysis is most beneficial when analysts have access to current and pertinent data. That differs from many existing technology solutions that build data isolation into their design. Isolating data and controlling access to it generally makes it easier to ensure data integrity and confidentiality, but transparency is sacrificed in the process. In traditional systems, data is often available to a limited number of users. Blockchains can provide integrity and confidentiality, as well as maintain data transparency.
Blockchains use agreed-upon rules, called consensus protocols, to provide data integrity. Public blockchains tend to use more intensive consensus algorithms, like Bitcoin and Ethereum’s Proof of Work (PoW) protocol, to provide agreement among untrusted nodes. Blockchains can also use encryption to provide confidentiality. Private and hybrid blockchains, such as Hyperledger Fabric, have central governance that make encryption key management easier than in public blockchain environments.
Another attractive benefit of blockchain technology is the fact that once a block is added to the blockchain, it cannot change. (Actually, data in blocks can change, but any changes to existing blocks breaks the cryptographic links between blocks. A broken link makes it immediately obvious to all nodes that one copy of the blockchain is now invalid. Since making an unauthorized change would be immediately detected, there is no good reason to do so.) Trusting that each block’s original state is maintained makes auditing and investigations easier and more reliable. If trusting historical data is important, a blockchain may be a good option.
Examples of Good Blockchain Use Cases
One of the best ways to learn about places where blockchain technology fits well is to examine successful use cases. Take a look at how organizations have successfully implemented blockchain and see if you notice recurring themes. If you want to sample existing enterprise blockchain use cases, check out IBM and Oracle. They each provide enterprise blockchain solutions and provide a view into how blockchain is being used today.
You’ll find lots of different types of use cases, but three tend to emerge over and over. One of these three use cases might be a good place for your organization to start exploring blockchain.
Carrying out financial transactions
Blockchain technology was designed from the very beginning to support financial transactions. It supports cryptocurrency well, but it does far more than that. Any type of financial transaction can benefit from a blockchain. The technology can not only manage the transfer of digital assets, but also enforces strict rules to ensure that all parties in a transaction behave properly.
The first generation of blockchains, such as Bitcoin, basically only recorded transactions. The second generation, starting with Ethereum, added smart contracts. Smart contracts are auto-executing computer code that must run on every blockchain network node to govern access to the blockchain. Every node must run smart contract code to complete transactions, and all smart contracts are guaranteed to produce the same result on all nodes. Smart contracts make it possible to write programs that allow users to enter into complex financial transactions without requiring any third party to mediate.
The third generation of blockchains, such as Hyperledger Fabric and Ethereum Enterprise, add scalability and support for enterprise infrastructure. This newest blockchain wave allows developers to create applications to conduct commerce at enterprise scale. The ability to automate transactions and remove middlemen gives enterprises the ability to open markets to individuals that may not have been able to access them in the past. Blockchain opens up a whole new world of opportunities.
Handling supply-chain movement
Another area in which blockchain shines is in its ability to track the transfer of digital assets through a series of owners. Almost all the products you and I buy pass through multiple hands before we make that final purchase. Blockchain apps can track products from the producer all the way to the consumer.
The process of moving products from producer to consumer is called a supply chain. Blockchain technology supports supply chain apps quite well. Producers can submit their goods to the supply chain, get paid, and even track their goods all the way to the consumer. On the flipside, consumers can trace their products all the way back to the original producer. Do you want to verify that your coffee came from a grower that you support? Blockchain can do that.
Creating a digital identity
A digital identity on a blockchain is a permanent claim that is paired with some real-world entity along with a set of attestations. An attestation is a type of evidence that the claimed identity is valid and legitimate. For humans, this could include biometrics attributes (like fingerprints or retina scans). But devices can have identities, too. Smart contracts can enforce many types of rules to govern transactions, and those rules don’t all have to be for humans.
Suppose you want to buy frozen mixed vegetables. How do you know that your vegetables stayed frozen all the way from the producer to your store? A blockchain app could require that the freezer truck used to transport your vegetables report its trailer temperature every 15 minutes. If the temperature ever rises above freezing, the smart contract could invalidate the shipment and refuse payment. The truck actually becomes a participant in the supply chain and needs an identity.
Deciding if Blockchain Makes Sense
Now that you’ve learned a little about what blockchain does well and how others are using blockchain, does it make sense for you? That all depends on what you want to do.
Remember that figuring out if blockchain makes sense for your project is a process, not a simple answer. The first step is to really understand your project and its unique requirements. If you don’t have a handle on the details of your project, deciding whether or not to use blockchain is going to be a lot harder.
A good place to start is a paper published by Karl Wüst and Arthur Gervais, titled “Do you need a Blockchain?” Their paper does a good job of describing aspects of applications for you to decide if blockchain is a good fit for your project. As you read the paper, you answer six questions that will help to determine whether your project would be a good candidate for blockchain or should use a more traditional solution.
Each question focuses on a different aspect of how your application needs to store data and support users. In a nutshell, you’ll find that if you need to store state data provided by multiple writers without relying on a trusted third party, a blockchain may be a good solution. Further questions about trust and public verifiability further help you to determine whether a public, private or hybrid blockchain is a better choice.
Whether to use blockchain technology is an important decision for any development effort. That decision changes the way your organization designs and develops the application, and it has a monumental impact on how you test. Since you can’t change anything once you put it on the blockchain, including smart contract code, testing becomes crucial to success.
Take the time to really determine if you need blockchain. If you find that blockchain technology is a good fit and you’re prepared to roll up your sleeves and develop your first app, you’ll open the door to a new technology that can provide amazing benefits.
Article written by Michael Solomon PhD CISSP PMP CISM, Professor of Information Systems Security and Information Technology at University of the Cumberlands.
- TestRail is #1 in Software Testing Rankings for 2019
- Announcing TestRail 6.1 with Jira Integration, Audit, Backup & UX Enhancements