This is Part 1 of a three-part series in which Andrew Levine outlines the issues facing legacy blockchains and posits solutions to these problems. Read Function ii on the vertical scaling crunch here and Role 3 on the governance crisis hither.

Information technology is our conventionalities that there are three fundamental issues, or crises, that are continuing in the way of blockchain adoption: upgradeability, vertical scaling and governance. In this article, nosotros are going to explore the upgradeability crisis and how computer operating systems could serve equally a useful analogy that holds the secret to resolving this crunch and enabling blockchains to reach mainstream adoption.

The about powerful concept for agreement the upgradeability problem is "antifragility." Proposed past Nassim Taleb, antifragility is a property of systems that improve when stressed. Fragile systems tin can seem to exist working bully nearly of the time, but when stressed, they fall apart, or "accident up."

Antifragility is a property that emerges from multilayered, hierarchical systems that contain fragile subunits that by breaking/dying/blowing upward outcome in an overall healthier system. In nature, we telephone call this process evolution. Evolution occurs when a species replaces a less successful trait with a more successful trait. In computing, we call such improvements "upgrades."

The problem with the major blockchains nosotros know today is that they weren't designed to be upgraded, which means they can't evolve. The reason why development is so of import is that information technology enables systems to survive "black swans," which are highly unpredictable events with astringent consequences. Non only can antifragile systems survive black swans, they actually go improve from them.

In blockchains, there are near no separate layers with fragile subsystems that enable healthy adaptation to stressors. Instead of designing from a perspective of humility, the creators endeavour to present themselves equally infallible visionaries who have designed a perfect system that immediately deserves a high valuation.

Maps fatigued before territory explored

There is no greater proof of this than the reliance on hard forks for system upgrades. A hard fork is the reverse of an upgrade path. It is tossing out the old arrangement and replacing it with a new one.

At that place is, all the same, a silver lining to this analysis, which is that the solution is less about breaking through technical barriers than it is about breaking through psychological barriers. We aren't designing blockchains from showtime principles, but are still primarily iterating on acme of preexisting architectures like those in Bitcoin and Ethereum.

There are many ways to implement a blockchain, but we oftentimes presume that the fashion in which these protocols implement some component of the blockchain is by default the "right way." These protocols totally frame the fashion we look at these issues, leading us to create mental "maps" of the problems that were "drawn" before we had even begun exploring this new territory.

Bitcoin and Ethereum were essentially the get-go decentralized computers. As with any new calculating image, in the early stages, engineers and developers are focusing their attention on whether they tin can even use the technology to solve a specific problem and, if so, use information technology to build their application. There's no tooling and no platforms they can accept advantage of, so they have to build everything from scratch and optimize their stack for their specific application.

The stop result is a monolithic piece of code powering an awarding designed to solve a specific problem.

Get-go movers and frail systems

These early on applications tin be quite successful cheers to the first-mover advantage, but when it comes to software development, the success that comes from beingness a first mover is illusory. The first movers in software detect the features, or "behaviors," that users will find nigh valuable, thereby validating the new engineering.

Simply maintaining this advantage is nearly impossible considering the application is built on a mount of sometime code that few people understand or are capable of upgrading. Bugs are a nightmare to gear up, and only maintaining the existing code becomes a Sisyphean job; forget improving information technology.

At this stage, the apps tin die for whatsoever number of reasons, simply the underlying cause of death is that they are delicate. The blackness swan that ultimately wreaks havoc on existing apps is the development of the operating system. Operating systems brand information technology an order of magnitude easier for developers to launch the same kind of applications, with the same core behaviors featured in the kickoff movers.

The appearance of operating systems enables the technology to calibration to the next level by making it easier and faster for developers to release better programs that penetrate more than of the market and reach more users. Plus, it gives u.s.a. another layer in the stack. Now, if i awarding blows upward, the virtually critical lower layers remain unaffected.

Then, trouble solved, right? While offset-generation operating systems provide a massive competitive reward to the awarding developers who adopt the right ones, they also endure from the same upgradeability problem of the beginning-generation applications. They emerge equally a means of providing cadre features, security and a shared user base, but non to maximize upgradeability. And then, they eventually go characteristic-bloated, complex and hard to upgrade.

The operating system analogy

Upgrading the system requires a organization reboot and reloading process that becomes longer and more disruptive the bigger and more complicated it gets. While ane layer (the OS) is insulated from the mistakes made in another (the application layer), the Bone itself remains fragile.

Blockchains similar Ethereum and EOS were designed similar these early operating systems. They provide cadre features, security, a shared user base of operations and a programmable "user space" that developers can leverage to add the custom features they need to ability their specific applications.

In the case of blockchains, the problems that plague get-go-generation operating systems are amplified due to immutability; they are constantly growing in size, which places additional stress on infrastructure and creates a distinct scaling challenge.

Farther, because they are decentralized, upgrades must make their way through a governance process that ends, under the best of circumstances, in the execution of a coordinated attempt in which all of the computers terminate running the onetime software and start running the new software (a new "fork") at the verbal same time. This is far from easy, which is why calling information technology a "hard" fork is specially apt.

When certain changes require a hard fork, people are forced to package those changes because implementing them piecemeal would consequence in additional network reanimation. This results in a "rider problem" similar to what we see in governmental systems where unrelated changes go attached to important changes. In other words, there is a centralization-in-time problem. Because every important thing must be done at the aforementioned time, and because people disagree on what is important, the moment in time when those changes must be implemented creates an attack vector.

Regardless, difficult forks wind up beingness big, political, risky and, near importantly, they take down the network! This dramatically slows the rate of progress, and because every major blockchain works this fashion, the sector as a whole stagnates.

Antifragility through upgradeability

What we need is another layer beneath the operating system that enables the entire organization to evolve. In operating systems, that layer is chosen a BIOS — a basic input/output arrangement. But it'southward important to remember that nosotros are only using operating systems as an analogy. Nosotros need to construct this layer from showtime principles specifically for use in blockchains. That layer, like every other layer, must be fabricated upward of frail subunits that can somehow "suspension" without bravado up the system as a whole.

The creation of the BIOS was a critical pace for mainstreaming computers because it enabled developers to quickly build, test and iterate upon the applications that would make personal computers useful to ordinary consumers.

If we want to cantankerous that same chasm, we don't but demand a improve blockchain OS, nosotros demand an operating organisation that is congenital on a BIOS-equivalent for the specific purpose of upgradeability.

We must be able to add any characteristic to the blockchain without requiring a hard fork. This will enable the blockchain to conform to stressors (attacks, bugs, missing features, etc.), improve itself, and scale to run across the needs of the masses.

Until that day comes, the quality of blockchain-based applications will continue to stagnate, and the space will remain dominated by projects that might look similar they are working on the surface but that aren't being widely adopted, are inherently fragile and will ane mean solar day "blow upwards."

The views, thoughts and opinions expressed here are the author'southward lonely and do non necessarily reverberate or represent the views and opinions of Cointelegraph.

Andrew Levine is the CEO of Koinos Group, where he and the former development team behind the Steem blockchain build blockchain-based solutions that empower people to take ownership and control over their digital selves. Their foundational production is Koinos, a high-performance blockchain built on an entirely new framework architected to requite developers the features they need in society to deliver the user experiences necessary to spread blockchain adoption to the masses.