Blockchain is a revolutionary, innovative technology that’s also evolving at a blistering pace. The ten largest companies in the world are all exploring potential applications of the blockchain, from diamond mining to agricultural loans.
That’s not to mention the thousands of startups using the blockchain to transform the ways that people live and work every day. With more than $5 billion in initial coin offering (ICO) funding in 2017, it can be all too easy to get caught up in the excitement surrounding blockchain technologies.
If you’re looking to start building a blockchain application, or you’re wondering whether blockchain is right for your business, you’ve come to the right place. We’ll cut through all the hype and get you exactly the information you need to know, including how blockchain works. In the guide below, we’ll explore everything from the most common blockchain use cases to the best practices for blockchain development.
A blockchain is a virtually incorruptible digital ledger where transactions are publicly and chronologically recorded. It does this through a system of consensus building, where multiple distributed computers all participate in the management of the blockchain ledger. The information that sits on the blockchain is spread out, and possibly fragmented, across all of the computers on this network.
The term “blockchain” has become a catch-all term for multiple types of distributed ledger technologies. In the strictest sense, “blockchain” refers to the original architecture pioneered by bitcoin: blocks of data that are separated in time and added at regular intervals.
However, the blockchain is actually only a single solution in a diverse toolkit of databases and architectures for storing and sharing information. Depending on your business problem, there may be a variety of different options at your disposal for solving it.
Below, we’ll go over some of the most popular alternatives to the blockchain so that you can be well-informed about all your courses of action.
Hashgraph is a distributed ledger technology that is similar to the blockchain in intent, but that claims to be much more scalable. Essentially, Hashgraph uses the computer science idea of “gossip protocols” to propagate information about new transactions to the rest of the network. This allows Hashgraph to achieve a much higher throughput, without relying on blockchain concepts such as proof of work.
Like Hashgraph, Tangle is a blockchain alternative that takes the form of a directed acyclic graph (DAG), in which information proceeds from node to node without entering a loop. Tangle removes the need for miners to verify transactions, as is required on the blockchain. Instead, users are responsible for verifying the transactions of other users, which eliminates the need to charge transaction fees.
A shared database is a database that is shared and maintained by multiple entities, without being owned or managed by any single person or group. For example, Wikipedia is a shared database that is edited and operated by millions of people. This database may be centralized in a single location or decentralized across a network.
A distributed database is a database in which all data is not stored in the same physical location. Distributing information across the network has the advantages of increased reliability, efficiency, and security. Distributed databases are often used when organizations have a need for large data stores that will be accessed from multiple geographical locations.
Apache Hadoop is a set of open-source software tools that are intended for storing and processing massive quantities of data. The Hadoop platform is well-suited for analyzing information that doesn’t fit nicely into a standard relational database. With Hadoop, multiple machines can work in tandem on the same data, making computation much more efficient.
From board games to iced tea, it’s hard to find a product that hasn’t been the subject of a ridiculous blockchain proposal. Although blockchain technology promises to revolutionize a variety of industries, it’s most applicable for a particular set of use cases.
The blockchain is best-suited for situations where you need to keep track of information about a person, entity, or asset that will be used in multiple transactions.
For example, when an aircraft is sold, the buyer and seller need to exchange information about the craft’s repair and maintenance history. This data can be put on the blockchain, where it remains safe, immutable, and trustworthy.
The 7 industries below represent some of the most common—and most promising—applications of blockchain technology. In this section we will go over some blockchain technology examples you may have seen in action.
The blockchain use case that’s received the most attention is by far cryptocurrency. Blockchains serve as the underlying public ledger that records the exchange of cryptocurrencies in a secure and dependable manner.
Traditionally, exchanges have offered buyers very little insight into how their money is managed when it is traded for an asset. Not only do blockchains make the network much more difficult to attack by decentralizing operations, they also insert more transparency and visibility into the asset management process.
When dealing with car insurance companies, some drivers will conceal information such as previous accidents or the number of miles on the vehicle, which is considered a form of “soft fraud.” By placing the driver’s data on the blockchain, customers and companies will both guarantee that they have all the factors needed to offer the correct rate.
Industries such as supply chain management are increasingly using Internet of Things (IoT) devices to verify the provenance and movements of products such as food, electronics, and oil and gas. Putting this data on the blockchain ensures that it can’t be falsified, which helps crack down on the counterfeiting of valuable items.
Managing patient histories is very difficult for healthcare organizations: people visit different doctors and hospitals in different locations, and all of this information must be safeguarded according to HIPAA regulations. The blockchain can store patient data in a secure fashion and give people control over which health information they share with certain physicians.
Traditionally slow and inefficient, federal, state, and local governments are investigating the use of blockchain technologies for everything from record-keeping to paying taxes. For example, the state of West Virginia is experimenting with voting on the blockchain, allowing overseas residents to register their votes in the 2018 U.S. midterm elections using a blockchain-based mobile app.
Laws such as HIPAA and Sarbanes-Oxley strictly regulate what healthcare and financial organizations can do with sensitive and confidential data. Maintaining a record of transactions and interactions with this data helps to prove compliance with the appropriate laws in the event of an audit.
We worked with Blockmason to build a mobile blockchain application for expense sharing and bill splitting on the blockchain.
Like “cloud computing” and “big data” in recent years, “the blockchain” is yet another tech buzzword that claims to transform the face of business as we know it. As always, however, the hype and the reality are two entirely different things.
While the promise of fame and riches from an ICO (initial coin offering) can seem tempting, in many circumstances blockchain just isn’t the right fit for your problem. Often, a traditional relational database could do the job just as well as, or better than, a distributed ledger such as blockchain.
So how do you know if blockchain is right for you? Let’s go over two of the most important concerns: decentralization and trusted intermediaries.
Traditional “relational” databases are stored in a single location, which makes them highly vulnerable to attack. If a malicious actor is able to gain access to the database, the information can be deleted or changed, destroying its integrity.
By contrast, decentralized ledgers such as blockchains store information across an entire network of computers, or “nodes.” Each node retains its own copy of the data, which allows it to notice if data in another location is altered.
What’s more, changes and additions to the database require the approval of the nodes on the network through a process known as consensus. This means that attacks on a decentralized ledger would need to alter the information on a critical mass of nodes simultaneously — a nearly impossible task for large networks.
Although decentralization can be very worthwhile for sensitive data, it’s also slower and more technically complex than a database stored in a single location. You’ll have to weigh the pros and cons to decide whether decentralization is worth it for your use case.
In addition to decentralization, distributed ledgers such as blockchains also play the role of a trusted intermediary: an entity that verifies and records new transactions on the network. This entity serves as the “keeper of trust” between parties that wish to interact and do business.
Companies such as Airbnb, Uber, eBay, PayPal, and Amazon have soared to the height of success by playing the role of a trusted intermediary for online transactions. They broker deals between sellers who are offering goods and services, and buyers who are willing to pay for them.
The blockchain has no single person or entity who serves as an intermediary. Instead, mathematics replaces the middleman, with consensus algorithms helping to protect the data from manipulation. Distributed ledgers reduce delays and costs such as transaction fees that are levied by intermediaries.
The classic business idea that’s well-suited to the blockchain is a situation that’s highly susceptible to fraud while still requiring a great deal of trust between participants. Again, you’ll need to decide for yourself whether the benefits of a “trustless” network such as the blockchain are worth the time, money, and effort to build one.
You may truly believe that the blockchain is the right tool for your specific business problem, but you aren’t done making decisions quite yet.
Now you’ll have to deal with the question of what kind of blockchain to choose: public, private, or permissioned. You’ll also need to decide which specific blockchain technology to use for your project.
There are pros and cons to each different type of blockchain. Here's what you need to know about public, private, and permissioned blockchains.
Public blockchains were developed as an alternative for centralized trust, and as a result, they’re completely open. Anyone can participate in the network, and there’s usually an incentive mechanism to encourage more people to join. With public blockchains, anyone can read the chain, make legitimate changes, and write new blocks into the chain (if they follow the rules). Bitcoin is probably the most well-known example of a public blockchain.
Public blockchains can require a substantial amount of computational power to maintain a distributed ledger at scale. The main consensus mechanism for both Ethereum and Bitcoin is “proof of work,” a process where each node must solve a complex cryptographic problem. However, Ethereum is pursuing an alternative consensus mechanism called “proof of stake” that is positioned to address these scaling issues.
If you’re looking to implement your own blockchain solution, it’s important to remember that public blockchains are (as the name implies) public. By its very nature, blockchain protects the integrity and availability of data. But when it comes to confidentiality? It’s complicated.
If you’re in a highly regulated industry like healthcare, finance, or life sciences, you should think seriously about the privacy and compliance implications of using a public blockchain.
Another drawback is the potential security issues a public blockchain could introduce for your product. Writing good smart contract code is difficult, and there can be serious financial implications of introducing a bug.
On the other end of the spectrum, private blockchain networks are invitation-only. New nodes must either be validated by the person or people who started the network or by a set of rules those people put in place.
The ability to write information and validate transactions is limited to one organization, and read permissions can be public or restricted. Private blockchains are best for applications that are internal to a single company.
Private blockchains give companies a way to take advantage of blockchain technology by setting up groups and participants who can verify transactions internally. This puts you at the risk of security breaches just like in a centralized system, as opposed to a public blockchain secured by incentive mechanisms. However, private blockchains have their use case, especially when it comes to scalability and compliance of data privacy rules and other regulatory issues.
Private blockchains can provide solutions to problems in highly regulated industries by complying with regulations like Health Insurance Portability and Accountability Act (HIPAA), know-your-customer (KYC), and anti-money laundering (AML) laws.
Many businesses that set up a private blockchain do so with the intention of creating a permissioned blockchain.
A permissioned blockchain is a type of private blockchain that serves as a hybrid between public and private blockchains. It’s also known as a consortium blockchain or a federated blockchain. (The terminology is still in flux because this is such a disruptive emerging technology.)
With permissioned blockchain, transactions are visible only to the parties with permission to view them—not the whole network. Instead of allowing anyone with an Internet connection to participate or limiting control to a single entity, the consensus process is controlled by a preselected set of nodes. For example, a consortium of 20 financial institutions might come together to share data with each other, and they create their own rules about how the blockchain operates. The right to read the blockchain can be public, or restricted to the participants.
Supply chain management is another ideal use case for a permissioned blockchain. In supply chain use cases, you’d only want certain companies participating. Each participant involved in the supply chain would have permissions to execute transactions, and those transactions would allow everyone else in the blockchain to track where in the supply chain a particular item is.
While blockchain adoption has grown exponentially in the past few years, there aren’t yet many roadmaps for creating successful blockchain applications outside of cryptocurrency.
It’s important to remember that when we’re talking about blockchain, it’s a type of database. Choosing the right platform is an important and complex decision—similar to other implementation choices you make when building an app. The blockchain you choose will impact your programming language choice, the testing and debugging process, and many other things.
Ethereum is an open-source, public blockchain platform for smart contracts. All smart contracts built with Ethereum are stored on every node of a public blockchain. Ethereum is currently the most popular platform for writing decentralized applications (DApps) in the form of smart contracts.
Hyperledger is a collection of open source projects led by The Linux Foundation to advance cross-industry blockchain technologies. The Hyperledger project includes five distinct frameworks: Fabric, Sawtooth, Burrow, Iroha, and Indy. These projects aim to provide an alternative to the cryptocurrency-based blockchain model.
Hyperledger also maintains modules, a suite of software used for deploying and maintaining blockchains, examining data on the ledgers, and designing, prototyping, and extending blockchain networks.
Initially built as a project within IBM, Hyperledger Fabric is meant to be a foundation for developing blockchain applications with a modular architecture. Of the five Hyperledger blockchain projects, Fabric is the most mature and has the most active community of developers. Many enterprise companies wanting to develop blockchain apps with robust privacy and permission support are placing bets on Fabric.
The Sawtooth project, originally developed by Intel, utilizes a modular platform for building, deploying, and running distributed ledgers. While it can use various consensus algorithms, it’s known for its novel consensus algorithm called Proof of Elapsed Time (PoET). This consensus algorithm promises the scalability of the Bitcoin blockchain without high resource consumption.
Hyperledger Burrow is a permissioned Ethereum smart contract blockchain system. It was created by Monax and co-sponsored by Intel before becoming part of the Hyperledger Project.
The Iroha project originated with developers in Japan who built their own blockchain technology for mobile use cases. It’s designed to be an easy way to incorporate distributed ledger technology into infrastructure projects. Iroha enables the creation and management of custom complex assets like currencies, serial numbers, or patents.
Originally developed by a nonprofit group called the Sovrin Foundation, Indy provides tools, libraries, and reusable components for providing digital identities on blockchains or other distributed ledgers.
Created and open sourced by JPMorgan, Quorum is a permissioned implementation of Ethereum. Quorum is a fork of the Ethereum public blockchain that achieves data privacy by allowing data visibility on a “need-to-know” basis.
While there’s no single blockchain technology that’s right for every situation, there are a few best practices for blockchain development that are generally agreed upon by companies using the blockchain, from the tiniest startup to the biggest multinational firm.
In this section, we’ll clear up some of the most common misconceptions about the blockchain, as well as the best practices surrounding blockchain development that you should review before any blockchain programming project.
All of the industry hype surrounding ICOs makes it easy to imagine that you’ll be able to raise millions of dollars and strike it rich. Companies raised $6.3 billion in funding with ICOs in Q1 2018 alone—more than they did during the entirety of 2017.
While there is still a great deal of opportunity in the ICO gold rush, the reality is much less exciting. According to a study by Boston College, more than half of ICOs fail within just 4 months.
In a sense, these failures are actually good for the industry. Before, a great deal of funding went to businesses with very little substance. The companies that are finding ICO success now are usually well-established and may have already received funding from venture capital firms.
While the U.S. Securities and Exchange Commission hasn’t yet cracked down on blockchain, there could be trouble on the horizon.
The SEC has only defined two blockchain technologies as not securities: bitcoin and ethereum. In addition, SEC director William Hinman has suggested that many ICOs could be considered securities and would therefore fall under the SEC’s jurisdiction.
Selling securities in the U.S. requires a great deal of scrupulousness: only dealing with accredited investors and diligently collecting this information. If your company fails to do these things during an ICO, you could have the money you raise forcibly taken away by the government or even receive a criminal sentence.
These concerns are another dark cloud over the ICO space, but in the long run they’ll also be good for the industry. Engaging the right team of attorneys and accountants will ensure that your company raises money in a sustainable and safe way.
Of all the technical tasks surrounding blockchains and distributed ledgers, basic ICOs are some of the most straightforward. You can easily repurpose an open-source smart contract and use it as a template for your own ICO.
However, the work following an ICO — building something meaningful using blockchain technology — is extremely technically demanding. Unlike most other software products, blockchains can’t simply be built by your local development shop. As it stands now, demand for competent, experienced blockchain developers dramatically outstrips the supply.
If you’ve chosen to create your own blockchain, be sure to thoroughly vet the candidates for your engineering roles. Just because developers have played around with smart contracts in the past doesn’t mean that they’ll know how to effectively build a safe, correct blockchain solution.
The most important question to answer, before you write a single line of code for your blockchain, is: what problem are you trying to solve? After coming up with an honest answer, evaluate whether a solution that requires blockchain is truly the best solution for your business.
Here at Very, we’ve seen countless potential clients who approach us without having performed this exercise. Even the ones who claim that they’ve thought it over may not be entirely honest about the results that they came up with.
We get it: there’s a lot of heat and excitement around blockchain and cryptocurrencies at the moment, and you want to join the party. But jumping on the blockchain bandwagon and hoping to raise millions through an ICO is likely just that: a pipe dream.
If you want to build a business that will actually be around in 5 or 10 years, and that solves real problems for real people, then think about the best technological solution for your needs—and whether that solution involves a blockchain.
Once you’ve decided that it makes sense to use some kind of distributed ledger technology, you’ll have to settle on which one is the best fit.
Perhaps the best question to ask yourself in this regard is: what transaction speed will your distributed ledger technology need to have? How many entries or operations must occur every second in order to actually solve the problem that you want to address?
The most popular blockchains on the market right now are extremely limited in the number of transactions per second that they support—we’re talking single or double digits. This might be 5 or 6 orders of magnitude slower than what you really need. These blockchains will be highly ineffective for activities that require high transaction speeds and high throughput.
While there are specific distributed ledger technologies that allow for extremely high throughput, they can’t strictly be called blockchains. In order to achieve these fast speeds, they do away with things like proof of work that are essential to the largest blockchain solutions.
You’ve decided that the blockchain is the right way forward, and you’ve even settled on a specific technology. The next step is to determine whether you’ll build on an existing blockchain offering, or whether you’ll roll your own solution entirely from scratch.
Most companies choose to fork an existing open-source blockchain and work from there. This is because going the fully custom route is extremely expensive: very few companies are capable of doing it correctly, and the top blockchain developers have already become highly wealthy having gotten in early developing and participating in early ICOs.
The final best practice is deciding how to build the product: how your engineers collaborate, and whether you’ll use development techniques such as pair programming.
One of the best practices in software development, in particular smart contract development and blockchain development, is extreme programming. XP encourages actions such as frequent releases, code reviews, and unit tests to build higher-quality software.
Knowing exactly how you’ll build the product is very important. This is because the consequences of having a flaw in your blockchain or smart contract that can be exploited by bad actors are extremely high. Minor mistakes can easily snowball into giant problems that can derail your entire project.
The DAO (decentralized autonomous organization) should be a cautionary tale for anyone getting into blockchain development. Using flawed logic in a smart contract from the DAO, attackers were able to steal $70 million in Ethereum, roughly one-third of the total funds. This led to the total implosion of the DAO, as well as a ruling from the SEC that the DAO had violated federal securities laws.
Building your code base in a deliberate and secure manner to avoid unintended errors isn’t just a best practice for blockchains—it’s the only responsible practice for this kind of development.
"By combining deep blockchain expertise with years of product development experience, Very uniquely met our needs. Their team delivered working blockchain applications on time and on budget."