The Limitations and Scaling Solutions of Blockchain Technology
Blockchain Beyond Hype is back, this time with Blockchain Zoo co-founder and CTO Barton Johnston, to discuss blockchain technology and how to scale it.
We cover a range of issues in this episode, but the focus is on scale. What are the challenges to scaling blockchain technology and how can they be overcome? The key is to get blockchain to a stage where it can handle thousands, or even millions, of transactions per second – which is not the case now.
A big part of achieving scale with blockchain is the skills of developers and engineers working on the technology. As Barton points out, it’s still nascent, and many people working on it are still in the learning phase – and it’s a big challenge. The key is education, continuing to build new solutions, and thinking outside the box.
Laks: So we’re here today with Barton Johnston, co-founder and CTO of Blockchain Zoo. We’re excited to have you here to discuss how blockchain technology can go beyond its scaling limitations. So you have had an amazing career progression. Could you give us the brief backstory on how you educated yourself in coding for a new and niche technology like blockchain?
Barton: So really my career progression has gone through a lot of twists and turns. I started off in high school, mostly teaching myself to write code. I had a little bit of help from my father who was a software engineer, but beyond that – and him giving me a few pointers and the original resources – I started learning, I think Visual Basic, when I was around 14, and I moved on to programming flash games when I was maybe 15 through 17.
I had an intense interest in things that were more and more technical. First I worked for a media research lab for a while and I, for example, helped them design a piece of software that simulates watching, say, if an advertiser wants to study how somebody reacts to advertisements and video content like a YouTube video. I built them a fake browser for people to come in and watch the videos on that puts the advertisements at certain places so they could run experiments on that.
Then, I went to work at a home security company where I did a little bit of work around their systems that actually communicate back and forth between the security systems and the houses and coordinate all the information in case it needs to make reports to law enforcement and things like that.
Probably the most interesting technical experience I had was working at a GPS tracking company, where I helped work on software that collects, monitors, draws inferences from all of the GPS data and other pieces of telemetrics that come from different devices attached to vehicles and stationary equipment. I’ve always been trying to get to the kind of the hardest most interesting technical problems. Maybe it’s a matter of personal interest.
When I really started to look into the blockchain technology – I should say my first run-in with Bitcoin – I became aware of it maybe in 2014. At the time, I was very interested in Bitcoin, but I was also very convinced that governments were gonna shut it down. I didn’t really allow myself to get invested at that time. But, a few years later when Bitcoin started to make a comeback and it became obvious there had been various regulatory and legislative efforts to restrict blockchain, a lot of negative media, and none of that was really holding it down. Then I got really interested, and I actually stopped working at my job at the time and just did a complete deep dive for a few months into every aspect of the technology and really tried to go and read the source code of Bitcoin, to read the source code of other blockchain clients. It was around that time that I met Roberto Capodieci, and he and I saw eye-to-eye enough that we wanted to come and do the business here.
Laks: All right. So what self-learning practices would you suggest to all coders across the globe? Resources, groups, courses?
Barton: So for me, I think this is going to sound cliché, but the primary tool is Google. I was born in 1990, and I think I was part of the first generation where the Internet was developed enough in my teenage years that I really had the resources at my fingertips to teach myself to code without an official institution, without having to go to a library and go through old books.
Almost everything that I know about writing code I taught myself through tutorials that I found online and through practicing things by looking up Stack Overflow questions. So my advice is to become, rather than being attached to any particular community or resource or blog or book or anything like that, is to become very skilled. I think most good engineers, as soon as they hit a problem that maybe even they have an idea how to solve, but they wonder if there is a better way to solve – just Google it. See what the experts say about it. There’s a wealth of information that exists out there about how you progress.
Laks: So on average, U.S. citizens relocate around three times for work-related reasons during their career but within their own country. You took a huge leap of faith relocating to another hemisphere and starting a business with a team so different and culturally diverse. Can you tell us more about this experience – was it challenging, difficult, exciting?
Barton: Well, I think it’s been all of those things. For me personally, I’m not so attached to where I work. First of all, I was very interested in the opportunity to move towards being able to implement a bigger vision. To me, the thought of whether I’m working in the United States or working somewhere else was almost inconsequential. I was just excited for the opportunity to go to a place where the kind of ideas that I want to work on are welcomed. That might be a facet of my personality as well. I really want to follow the big idea wherever I have the opportunity. The opportunity presented itself here, and I came here.
Laks: So what tips would you share with other CTOs stepping into their role in blockchain companies?
Barton: I think the biggest thing is really that you have to be very open-minded about the development of the technology. Most big software organizations are standing on the shoulders of giants. They have deep precedent for how they handle the kind of software that they build. If you go back years and years, those people have been solving the same kinds of problems – there’s still some novel development, but ultimately the structures of the organizations are kind of understood.
Blockchain is so new that everybody’s skill level is very diverse. I think, as a CTO of a blockchain company, you have to be prepared to do a lot of training. Your ability to collect a lot of developers who already have substantial blockchain knowledge is difficult. So you’ll find yourself collecting people who are bright engineers who are interested in blockchain but need to work to further develop their skills and their knowledge once they’re actually in the organization. That’s the approach that we’ve taken at Blockchain Zoo.
Laks: So blockchain is a lucky technology in that it has gained abnormal public attention thanks to its connection with money. Its limitations are not a secret as well. Even on Wikipedia, you can find an article on Bitcoin’s scalability problem. Could you discuss this?
Barton: To me, the scalability problem is the number one inhibitor of blockchain being used for more use cases where it could really be useful. To be specific, the scalability problem arises from the fact that a blockchain is a replicated system. So each node winds up having a copy of the full interaction of all the transactions that happened, and each node must individually process all of the transactions that happen. So this means that the entire throughput of a blockchain network is only as fast as the average single computer in the blockchain network.
This is a different kind of assumption from a properly-distributed system where the work is shared between different nodes in the network. If you’re hosting a large website, something that gets millions of hits per day, or running something like the Visa network, for example, you have lots and lots of computers that can share the load of processing all of the work that comes in. With blockchain, each computer has to process the entire load. The result of this is, I think you know, Bitcoin’s global network has somewhere less than 10 transactions per second that it can process.
Even the Ethereum network has something like – I think – less than 15 transactions per second that it can process. Compared to other global payment processing technologies that’s abysmally low and impossible to scale. It becomes more impossible to scale when you talk about blockchain in terms of IoT solutions. If you wanted to have thousands or millions of devices all reporting updates onto a blockchain network, the chance that a traditional blockchain would be able to handle that amount of traffic is virtually impossible. To me, that’s the largest reason that blockchain hasn’t been able to take a step further into industrial use than it already has.
Laks: So the block size limit has created a bottleneck in Bitcoin. What about other blockchains, do they have the same Achilles heel?
Barton: So I say it’s only a part of the problem, because even if you were to remove the block size limit entirely you would still have the same limitation I mentioned before – the network can only move as fast as an individual computer can actually process transactions. So you still don’t have a way to scale out the work that’s being done across different nodes in the network.
Say one of the solutions that is being proposed by certain blockchains that have larger blocks – they relieve the problem slightly in the sense that they allow more transactions to go into each block because computers have gotten faster and the network connections have gotten faster. So you can realistically handle more transactions, but this only really delivers linear multiples of scalability. You could imagine that maybe we could do 10 or 20 times the amount of transactions that we did before, but we couldn’t do a thousand or a million times the number of transactions we did before, which is what’s required to reach the highest forms of scalability that the people expect.
As far as using another blockchain to solve this problem, there’s actually a wealth of different attempts and solutions that people are coming up with. I’ll mention briefly two approaches that try to take on the scaling problem. One is to actually fall back to using a better-known algorithm for achieving consensus between a network of distributed nodes, such as the practical Byzantine Fault Tolerance algorithm. So if you can select a handful of nodes to be trusted participants within a particular voting round, then you can move a lot of transactions much faster between that particular group of participants with some of the same security guarantees that you have in a blockchain. It’s not properly a blockchain, but it achieves some of the same properties.
Another method is what’s called the Distributed Proof of Stake. In this approach, the idea is that only a handful of computers actually wind up being the real nodes on the blockchain that handle all the transactions that come. And there are computers which are elected by a certain number of the people who actually give all of their stake, or lend all of their coins on the blockchain, to elect a couple of people who become the block creators on the network. Those couple of people, by virtue of having all that stake, can then run their nodes on very very powerful servers. Because the only limitation is the power of the average computer processing all the transactions, if those handfuls of servers can process a very large transaction volume, then the network can handle a very large transaction volume.
Laks: There have been attempts at increasing the transaction processing limits of different blockchains. Those attempts have various repercussions though. First, how would you define hard fork and soft fork? And, tell us about the best method for achieving scale?
Barton: First, I’ll talk about the limitations that are imposed on blockchain for the different kinds of scalability solutions that they’re trying to introduce. For example, the Distributed Proof of Stake that I described before, where you have a handful of elected nodes that wind up doing all of the heavy transaction processing. That limits the decentralization of the system, or in a blockchain, maybe you have a thousand proper copies that can each independently validate the state of the network and that in a Distributed Proof of Stake you only really wind up with 10 that have a say. You know they’re voted in by you know others as representatives, but you lose some of the fully-decentralized quality. There are similar kinds of tradeoffs that you get, for example, a very specific mathematical one.
I also mentioned blockchains that use practical Byzantine Fault Tolerance as a consensus algorithm. One difference there is the PBFT algorithm specifically only guarantees that the network will continue operating when two-thirds of the network participants are honest. Whereas, one of the breakthroughs is in Bitcoin when it was originally released with the blockchain, is that you only need one-half of the network participants – or at least one half of the computing power – on the network. So there’s another tradeoff that you take going from needing two-thirds, to be honest, to being only one half.
The second part of the question about hard forks and soft forks, I think, is actually a different kind of question. Forking is not necessarily something that improves scale automatically. Forking is just a way of changing the rules on the blockchain. So a soft fork is where you make the rules different in a way that’s compatible with the previous version of the network. A hard fork is where you make a change in rules that’s incompatible with the previous network. Both of these cause the previous version of the network and the new version of the network to split from each other. So forking is a tool that can be used to introduce some kind of new solution for scaling, but it doesn’t really have anything to do with the scaling problem itself per se.
Laks: “Layer 2” systems are seen as a breaking point for solving scalability problems. Which protocols are considered in this group, and do they really solve the problem?
Barton: I think probably the most important one is the lightning network for a “layer 2” solution. That’s a clever solution where, as long as you have at least two people who open what they call a payment channel. Within the payment channel, they can send messages back and forth to each other offline from the blockchain to guarantee that one of the other parties has the power to close the payment channel at a given time at a certain state of their negotiation. Only when the payment channel is actually finished will the result be flattened onto the blockchain.
In order for this to scale out to be useful for a lot of people, you need many many pre-existing payment channels with a lot of liquidity in them, so you need lots of big accounts forming a network, which is why they call it the lightning network. Those who have a lot of, say, free Bitcoin for example, floating in the payment channels can channel payments from one person to another person across the network. It’s a more complicated solution, but it does work as a faster solution, and it probably improves the scale itself. But I wonder why focus on a “layer 2” solution when I feel like there’s still so much work that can be done in “layer 1”.
When I feel like those problems can properly be addressed in the core technology. Say, for example, in a lightning network, all of the intermediate transactions are not recorded by anyone. You can prove the final result in the sense that eventually somebody closes the transaction in a final state that records all of the payments that have happened during that time. Unlike Bitcoin or other blockchains, you don’t preserve a full record of all the actions that parties have taken. Having only the end results of certain actions and, I think, reflects a lack of transparency and, depending on your motivations for using blockchain, can be either positive or negative.
Laks: Blockchain used for transactions is the most obvious and first use case. Yet this technology cannot compete with Visa, which does around 1,700 transactions per second on average. In your opinion, should we be aiming for enhancing the blockchain up to that level, or are we misusing the technology?
Barton: OK. My opinion on this is very clear, which is that we should be aiming to enhance the blockchain to be able to perform at that level. This argument that say we’re misusing the technology comes from one branch of the debate around the Bitcoin scaling problem – which is when it came to a hit where you had this war between the people who wanted to keep the blocks small and people who wanted to make the blocks larger and look for other ways to expand the network.
The people who wanted to make the blocks larger and expand the scalability of the network suggested that the Bitcoin is first and foremost supposed to be a peer-to-peer cash system. So it’s supposed to be something you can go and buy coffee with it, and it should support all the people in the world doing transactions. Whereas the people who supported keeping the blocks small thought about Bitcoin as a store of value. So they thought about Bitcoin as something that is ok to be priced high to move and doesn’t move very quickly. It can be used by large institutions like banks and by other kinds of big corporate entities or people with a lot of assets to preserve.
In that case, it doesn’t particularly matter if we never quite manage to get it to scale further because it’s serving its fundamental purpose. So there’s a difference in philosophy there. Personally, I fall very much on the side that we should continue to look for ways to scale that kind of technology. I think it’s great promise is that it’s not restricted to big institutions or very large investors which are already controlled by the financial interests you know, like large banks and governments. Why do they need another network to secure what they want to do? Common people need a way to secure their transactions that really removes them from the kinds of restrictions that they can be subjected to – in many cases unfairly – by participating in the larger financial network. I think that we should really forge ahead with the technology and find a way, whatever way possible, to make it accessible and responsive to as many people as possible.
Laks: So the beauty of blockchain communities is that so many companies and separated units are working on resolving the current challenge of blockchain scalability, which is a major roadblock for mass adoption. Do you have any favorite geek forums where you get inspiration from, or you have enough of it in-house, daily at work?
Barton: I can only speak for myself. I know a lot of people spend a lot of time on different forums on different areas. I don’t follow a lot of that very closely. We’re working on our own custom technology inside Blockchain Zoo. We’ve worked on other custom solutions and, at the top level, we do a lot of brainstorming. We do a lot of our own thinking, and I think we try to find the balance between being aware of what other people are doing but also not being so saturated in our knowledge of what other people are doing that it prevents us from having novel ideas about what to do. My personal preference is to spend a lot of time thinking privately and to spend a lot of time discussing with a few of the other co-founders here about exactly what can be developed, and I encourage other people to do the same.
If you think a lot about game theory and puzzle solving and things like that, that it’s a very fun problem to pitch yourself against. How can you construct a system that gains more of these favorable properties without losing the security properties that already exist.
Laks: So, what is the evolutionary stage for blockchain? People are coming up with different approaches to solving the scalability challenge. Could you share the pros and cons you see for each one? Batching payments into one transaction; increasing block size to what Bitcoin Cash is representing; the Lightning Network; alternatives to PoW consensus mechanisms; on-chain; blockchain-agnostic solution like bloXroute, and so on.
Barton: So one of them was about alternative algorithms to Proof of Work. I think this is a key point to not just scalability, but actually the security of the technology in general. Proof of Work, when it first came around, was an extremely secure mechanism in the sense that the person with the most hashing power is the one who can control the network. To the extent that everybody was trying to raise their hashing power at the same time, there is a kind of a fair race to see who would become dominant in that competition. Now there’s an extreme wealth of hashing power that exists, but there are hundreds or even thousands of smaller PoW coins that people are cloning.
As soon as any one of those small coins with very little hashing power on its network starts to stick its head up in the market and starts to become worth something, there’s a huge incentive for the people who have accumulated this hashing power to really target. They have the Low Orbit Ion Cannon that they can use to obliterate the small blockchain. With all of this power, some people say the electricity usage of a small country goes into mining Bitcoin. That means that, as long as most of that hashing power is concentrated on Bitcoin, Bitcoin is pretty secure. But it also means that any new PoW currency is extremely vulnerable to that attack of much more than 51 percent of its network hashing power. So this means that Bitcoin is pretty secure as long as most of that hashing power remains focused on the Bitcoin network itself. But it also means that, for other smaller blockchains that are coming around that stick their head up and start to become worth something in the market, they’re exposed to this attack of all of this hashing power suddenly being concentrated on their network which allows it to be completely overwhelmed.
I think one of the really interesting solutions to talk about here is bloXroute, which I still see as being maybe only a linear improvement in the scale of the technology, but it is an interesting improvement. It focuses on this idea that part of what stops a blockchain from moving faster and being able to process more blocks is the block propagation time itself.
Say I have a node here, and I need to check the whole block and then send it to these nodes, and then they check the whole block, and they send it to these nodes, and they check the block, and they send it to those nodes. That process takes a lot of time, and, if competing blocks appear during that same time period and start propagating through the network, they clash. This causes a temporary fork which then requires more work on the part of each node to actually decide which new block they’re going to follow and then build on top of that, or rollback.
BloXroute comes in, and with their idea to build a centralized network for block distribution only, they have a particular kind of encryption scheme to make sure that nobody can cheat exactly how the blocks are. Nobody can give their block an advantage in the network, but it uses a centralized mechanism to allow all the nodes to download a new block that comes in at once, which helps solve this forking problem. All the nodes can download the newest block at once and agree on it. It minimizes the chance that you have two competing blocks at the same time, which can cause a fork and then cause rollbacks. It also minimizes the problem of block thrashing. Ultimately that still does not solve the problem that each node can only process as many transactions as that computer can actually handle. You still have a condition where every node in the network is processing every transaction, so it doesn’t solve the ultimate problem of how you get the network up to Visa-levels of transactions.
I think another one of the points that you made was about packaging multiple payments into a single transaction. In my view, that doesn’t provide a meaningful inroad on the problem because you really wind up with each check that a blockchain node does on each payment still requiring the same amount of work for the computer. So you may reduce the number of transactions in a technical sense, but instead of a list of 10 transactions, I now have a list of five transactions and one of them is a transaction that contains a list of five items. The amount of work being done by the computer hasn’t actually changed. So I think that limitation still exists.
Laks: Well, this has been very interesting. Thank you for telling us about blockchain scalability issues and possible solutions. We do like to ask all of our guests how do you envision blockchain changing the world?
Barton: This is very close to my heart. I think the reason that I came all the way across the world to work here when I had this opportunity is because I believe blockchain is such a central part of changing the world. I really do believe it’s a keystone.
If blockchain is the keystone, it’s a part of a broader arch which is the decentralization of all kinds of systems, of social media, of voting in public elections, and more. All kinds of things that have been controlled at a central point, we’re going to start to see organically controlled by all the different participants. All the people who have some kind of stake in how their government is run, how science is conducted, and the results are indicated, how their legal transactions are processed, how court filings are done.
Really, I think there are a lot of dark corners in our system for the cockroaches to hide, and decentralized technologies are the flashlight that is going to cause them to scatter. We’re going to be able to see everything and we’re going to be able to figure out who’s abusing their power. Even more importantly, at a mathematical level, we can remove their ability to abuse their power on the network. So to me, that’s the big promise that blockchain is a part of for how the world changes from where it is today.
Laks: Alright. And how do you think the market for blockchain-based solutions will evolve?
Barton: As I mentioned, blockchain and other related decentralized technologies threaten certain key points of power that are held by governments and large corporations. For the same reason, companies that want to apply blockchain are potentially threatening their own power – so there’s a potential conflict of interest. I do think that blockchain is going to be taken up more by the business world, but before that happens in full, there has to be a shift of ideology – a shift in the belief system within the business world towards the way to do business in the future. The way forward is to provide this sort of transparency and user control, as opposed to keeping as much control over our system as possible. I think that, as we see that shift in thinking start to take over, more businesses will eventually see a ballooning of the adoption of blockchain and related decentralized technologies.
Laks: Well, this has been fascinating. Thank you again for talking with us about the way that blockchain technology is evolving.
BBH Guest: Barton Johnston, Co-founder and CTO of Blockchain Zoo
Barton has extensive programming and engineering experience in several languages and across a range of industries. Now, his focus on Blockchain technology – specifically the underlying infrastructure. Barton works on the structures of various types of decentralized consensus protocols, hashing and asymmetric encryption algorithms, and analysis and applications of new blockchain and crypto technologies such as Maid Safe, IOTA, and NXT.