Is A Blockchain Right For Your Project?
Blockchain technology was introduced in 2008 by Satoshi Nakamoto, the pseudonymous creator of Bitcoins. This innovative data structure has since been used to create a wide variety of software ranging from electronic medical records to online voting because of its inherent security, decentralization, and flexibility. However, blockchains are not appropriate for all software applications, and many projects that deploy the technology are pushing it beyond its limits. Before undertaking a project using a blockchain, it's important that developers and investors thoroughly understand how this technology works and where its limitations lie.
What Is A Blockchain?
A blockchain is a permanent record composed of individual “blocks.” Depending on the application, the blocks could contain radically different information, but they typically include at least a timestamp and data about transactions or new data added. The defining feature of blockchains is that each block includes a cryptographic hash derived from the previous block, meaning that records cannot be altered without changing the entire ledger. Thus, blockchains can be shared widely throughout a network without risk of their data being corrupted. This inherent fault tolerance has made them a popular choice for a wide variety applications, including cryptocurrencies, electronic medical records, and copyright management.
Several related architectures have also developed, most notably sidechains and hyperledgers, which expand blockchain's features and improve its speed and security for certain applications. The profundity of blockchain technology is likely still far from being fully realized; Harvard professors Marco Iansiti and Karim Lakhani said in a 2017 paper that that the technology “has the potential to create new foundations for our economic and social systems.”
Does Blockchain Fit Into Your Business Needs
If your service relies on some centralized party to verify users' behavior, blockchains probably aren't the right option. The technology is inherently decentralized: it creates a permanent record with no broker or intermediary. When a user reports their action to the blockchain network, the blocks are verified as soon as the network can handle it and the action is recorded, regardless of whether or not an administrator approves.
There are several different ways blockchains verify their transactions, but virtually all of them require at least a few seconds, and some require several minutes or even hours. Users' actions can't be recorded instantly, because this would mean that any fraudulent party could corrupt the system, so blockchains require some sort of verification protocol; a wide variety of verification algorithms exist, but the most common are “proof of work” and “proof of stake.”
Since blockchain transactions require some time to guarantee fault tolerance, the data structure is still not appropriate for applications that require very fast verifications. However, solutions for faster verifications are in development, and it could become more feasible in the near future.
Blockchains aren't designed to store large amounts of data; they are intended to store small sets of information, with the tacit assumption that only a handful of “full” servers will host the entire corpus while “light” users verify new data. The entire Bitcoin blockchain is approaching 200 gigabytes, and even this includes only basic transaction information. If your project requires any substantial data storage, blockchains probably aren't appropriate.
Public vs. Private Blockchains
Private blockchains – which offer some control over their access and functionality – are increasingly popular, and are ideal for many applications that don't need a public record of all actions or which require some control of who can access them.
Public blockchains, like Bitcoin's, merely implement a protocol and the community of users is left to verify its transactions. On the other hand, private blockchains can offer some control over who can add records, and the information can be kept entirely hidden. Thus, private blockchains are perfect for many corporate applications which could embrace the technology's security and stability, but don't need the public and decentralized aspects.
Blockchain Technology in Conclusion
As blockchain technology continues to develop, it will surely find more applications in places its creators never considered. By working to understand blockchains and appreciate this nascent technology for what it is, software developers and entrepreneurs can create powerful solutions that change the world.