Is blockchain right for your business?
Learn how to assess the technical feasibility of a blockchain integration for your organization!
Is blockchain right for your business?
04-02-2020
We recently sat down with Block Blox’s managing director and resident product expert, Marco Aniballi, to ask him a question we get asked daily, “Is blockchain right for my business?"
In...
We recently sat down with Block Blox’s managing director and resident product expert, Marco Aniballi, to ask him a question we get asked daily, “Is blockchain right for my business?"
In this post, we’ll aim to help you answer that question by giving you a basic process to follow and providing some real-world examples to guide you through each step. This article is for entrepreneurs who truly want to understand both the merits and the limitations of this technology. If you're here looking for a shortcut or a hack, look elsewhere.
Let’s briefly unpack why blockchain is appealing to businesses in so many industries and sectors. Blockchain has several key features that make it the revolutionary technology that it is. Its database is immutable thanks to cryptography but also thanks to its distributed nature… highly distributed all the better.
A blockchain’s distributed nature makes it very difficult to edit without somebody noticing, and with most blockchains you have a large community of people out there participating in the distribution of the database who each have a vested interest in making sure that no one does edit that database. Depending on the mechanism a blockchain uses to reach consensus across its distributed database, this is typically the role of participants called miners or validators. We’ll cover these different participants and their roles in a future article.
Block Time
In order to maintain the integrity of a blockchain’s distributed database, you need to be able to synchronize all of the copies of this distributed database (nodes) securely and in real-time (or near real-time). In this case, we call “real-time” block time. A block is just a bundle of transactions that occur during a certain amount of time. However long you design your network to take for a block to occur, that’s how long you have to synchronize the database of every participant in that network.
This seems reasonably normal until you think about this in terms of how many blocks you’re issuing and in what time frame. Let’s take a look at the two most widely used blockchain networks and how their block time and block sizes are designed to meet the transactional requirements of the network.
Bitcoin for example does a block every ten minutes and each block size is around 2MB. As anybody who has played around on the internet for a while knows, you can send 2MB around the world in under 10 minutes pretty easily, which is why bitcoin works. The bitcoin blockchain has a lot of nodes on its network, which means it’s highly distributed and therefore very difficult to hack. It’s encrypted, and its transaction volume is structured to 2MB per 10 minutes which is easy to distribute and therefore easy to make sure that your database synchronized the entire time.
Ethereum’s block size is around 1MB and its block time is around 30 seconds. Getting 1MB around the planet in 30 seconds is also reasonably doable, as long as the people who are acting as copies of the distributed database (node validators) are on reasonably fast infrastructures. Anyone living in the major centers in Europe, Asia and North America is likely to have enough bandwidth to participate in the Ethereum network and stay up to date, so there are a lot of possibilities for people to run nodes. So the Ethereum model works too.
Transaction Volume
With this understanding of block time and block size, let’s now look at how to use your business’s transaction requirements in order to identify whether or not it’s suitable for a blockchain.
If the components of your business that you’d like to leverage with blockchain require one transaction per minute and your transaction is just a movement of internal currency within the network, then the size of data within your transaction is quite small, let’s say around 1KB. If you only do, on average, 1 transaction per minute, you can easily run your system on Ethereum or even Bitcoin networks, or any of the similar derivatives without too much trouble or running into any network bottlenecks. This is because your business requires about 1KB per minute compared to Bitcoin’s capability of confirming 2MB per second every 10 minutes, or 200KB every minute (about 0.5% of the network’s capacity).
To put this in perspective, let’s now look at a case where a business’s transactional requirements actually disrupted a network. This is what happened when the CryptoKitties project took off. CryptoKitties is a virtual pet e-marketplace built on the Ethereum blockchain. The company started out doing two or three transactions per minute which Ethereum easily supports. All of a sudden, everyone began getting really excited and exchanging kitties for 100s of ETH. An excited marketplace, especially one with overvalued assets, has spikes, and in this case, there were spikes with thousands of transactions being conducted per minute. These thousands of transactions were also more complex than your basic currency movements because there was a lot of metadata attached to them, making them larger in data size.
Ethereum couldn’t keep up. CryptoKitties transactions flooded into the network but they sat on all sorts of various different nodes on the network, waiting to be squeezed into the next block. Because there was too much transaction volume for the network to handle, the next block would be full, and so was the next one, and the next one. This resulted in ETH users who were used to seeing their transactions confirmed in about a minute waiting 6-8 hours for their transaction to be confirmed. CryptoKitties slowed down the entire Ethereum network because its transaction requirements exceeded the network’s capacity.
Remember, that was just a game, one game! We live in a world where people walk around with 20-30 games on their phones, let alone other applications that may run on partially or fully on blockchains today or in the future. As smartphone users, of course we expect all of our applications to work flawlessly and without delay, with or without blockchain, the way they’ve been working up until now. It's not impossible for all your phone applications to leverage blockchain in some way or another, but this is not achieved by running applications on a network without considering the transaction volume with respect to the network's block height, which is exactly what CryptoKitties did. It’s just not realistic to thoughtlessly build all of these applications on a blockchain without running into bottlenecks.
Remember Internet Speed
You can avoid the same fate of CryptoKitties by applying some basic considerations when considering the merits and drawbacks of blockchain. When you’re looking at your business and saying, “I should put this on the blockchain,” remember that blockchain does give you the decentralization, it gives you the security, and it gives you the ability to publish to the public what’s going on with your transactions and therefore engender market trust, but it only works if you’re business model fits within the limitations we’ve just discussed.
If you go and look at the statistics, the global average speed of the internet is about 6 megabits per second. There are places you can get a lot faster, but the average is around six. And let’s not forget that this includes sharing that bandwidth with everyone who is posting to Facebook and Instagram, everyone who is streaming YouTube videos or watching movies on Netflix.
Because you’re sharing the internet’s bandwidth, you have to say to yourself, “if I build a blockchain network and I want to run my business on it, what are the limitations in terms of my business that I need to be concerned about?”
Transactions per second isn’t really the metric you care about, it’s volume of transactions per block and block speed. Remember, Bitcoin has a block size of 2MB and a block time of ten minutes. If your transaction size is 1KB then you can do 2,000 transactions per minute on a Bitcoin derivative network every ten minutes. Similarly, if your transaction size is 2KB because you have a little more metadata you need to attribute to each transaction, then you can do 1,000 transactions per block every ten minutes. In this case, your business is great for a blockchain.
Libra Coin
On the other hand, you may say, “I’m Libra coin, I want to do hundreds of thousands of transactions per second, globally”. If every transaction is very small, say 1KB, each with a little identifier for the buyer and the seller and a few cryptographic packages that bump up the size of the transaction, and maybe you can squeeze in a little code about what was bought, let’s say that all totals up to 1KB per transaction. At 100,000 transactions per second, your requirement in terms of data size is 100 MB per second.
In this case, it doesn’t matter what your block time is, if you try to do 100MB worth of transactions per second globally, you’re not going to succeed because you’re asking the internet to do something it’s not yet capable of. One day we will get to the point where the average speed of the internet is 12.5 megabits per second (1 megabyte = 8 megabits) per second, but for a public network like Libra, we can’t imagine 12.5 Mbps helping. We’d need closer to 100 Gbps, because your app, your libra coin app, for example, isn’t going to be alone on the internet. It’s going to be competing for traffic with Netflix and everyone else trying to deliver their services to their customers.
So again, when you look at your business, ask yourself: what is my transaction volume, and what is the complexity of those transactions? This doesn’t necessarily mean sales transactions, this could be any kind of transaction that you could gain value from securing, automating, or controlling exchanges of data and value within your business. Imagine say, a supply chain transaction, where you want to track a product that moves from source to aggregator to distributor to consumer. This is still considered a transaction despite there not being any apparent exchange of monetary value.
A Voting Example
Let’s look at one more example: voting. If you want to have 300,000,000 people cast their vote in the U.S. presidential election in one day, it’s actually doable. The transactions are small (<1 KB) and you have one day to log these transactions, not just one second. As long as no one is casting their votes at 100,000 votes per second, you’re okay. Even if they are, you’re probably still okay, because 20 seconds later, no one will cast a vote, and the backlog will catch up. This is where consistency of transaction volume and volume spikes come into play. As long as we have equal or greater dips in transaction volume to match the spikes, all of a day’s transactions can get logged over that day’s span. There may be a backlog at times, but the dips allow the network to catch up on that backlog.
In America, you’ve got four time zones, or 16 hours on election day when people are voting from the opening of the polls in NY to the closing of the polls in Honolulu. 18 hours, or 1,080 minutes, or 64,800 seconds to cast 300,000,000 votes, 5,000 transactions per second is doable. It’s certainly at the upper end of the limit, but bear in mind that in this context (America), every node will likely be on a high-speed connection.
Contrastingly, an application that requires 100,000 transactions per second consistently (because your platform is serving the entire planet for some recurring need and the planet keeps turning, there’s always half the planet awake and transacting at any given time...), that’s something that would be pretty challenging for a system with today's parameters to keep up with.
Calculating Your Requirements
A key takeaway from this is that the bottleneck is never the machines on the network, the machines can handle 10,000 transactions per second just fine. The bottleneck comes when synchronizing all of the machines on the network to make sure that everyone’s database is in sync (consensus). That slows you down, and it only slows you down because the internet is not as fast as a computer.
Now with even more context, we ask the question again in a slightly different form, “does my business fit into this world, right now?”. If it’s going to fit five years from now, maybe get a small team to study up on how this works and set the parameters so they know how to recognize when the right technology comes along they can implement upon, but until that point in time if the business doesn’t fit, it doesn’t fit.
Now, with all of this, let’s move on to the fun part. As we've made clear, your business’s ability to run on a blockchain depends on its transactional requirements. To get your answer, follow these steps:
- Identify how large, on average, each of your transactions will be. If you need help with this step, there are lots of resources online, or you can reach out to us with your specific case.
- Identify how many of these transactions you wish to make on average, and in what time frame, then convert that amount to transactions per second.
- Using these values, calculate your approximate required transaction size per second.
If your answer is anywhere below 1MB of transaction data per second (8 Mbps), you’re probably safe implementing your solution on most public blockchains. This means your transactional requirements are so low that you can share the bandwidth of a network with other individuals and entities.
If your answer is anywhere between 1- 3MB of transaction data per second (8 - 24 Mbps), you’re pushing the limits of a public blockchain, but may be able to implement a viable private network for your business. A private blockchain enables you to harness the full transaction capacity of a network, but also requires consideration into the miners or validators that will operate the nodes of your private network. We'll cover the topic network participants in more detail in an upcoming article.
If your answer was anything above 3MB of transaction data per second, you guessed it, blockchain is not right for your business!
At Block Blox, we’ve done this assessment for hundreds of business cases, and you’re now equipped to make this assessment on your own, for your business. If you get stuck, we’re always happy to lend a helping hand. Just reach out to us at hello@blockblox.io and we’ll be in touch.
We hope you enjoyed this guide and would love to hear the conclusion you came to. If your business or project is compelling enough, we may even feature you in a future article!
Follow us on Instagram, LinkedIn and Twitter to get the latest news and articles!
--