1 min read

If blockchains were boats

Software projects are a lot like a ship. You need a design and materials and a crew to build it. You also need a crew once it's built to sail, make repairs, and take care of everything onboard. It's a big shift once you launch.

If you've ever developed software (post-launch), you know that the skillset required for keeping the ship afloat is a lot more challenging to acquire than just knowing how to build an application.

The Koinos Group has this experience. They built the Steem blockchain and kept the network running. They also went through a number of upgrades/changes to the blockchain post-launch.

Upgrades to decentralized software are drastically more complex than changing centralized apps. You can't have a maintenance window where you shut down your servers because you don't own the servers. You can't even make the decision to upgrade by yourself because you don't solely own the application.

Every other blockchain today does their upgrades with "hard forks". Basically, (back to the ship metaphor) you update your ship design, build an entirely new ship and then try to convince the crew to abandon the old ship and join you on the new one. Even for a lot of simple things like painting the ship a new color or swapping out a broken rudder.

Koinos takes a different approach. There's one core piece that's as simple as possible that would require a hard fork to upgrade (like the keel of the ship). Everything else is built as plug-and-play components on top of that. If you want to swap out the rudder, you propose it to the crew and if they agree, you just swap out the rudder. Makes a lot more sense to me.

More tomorrow,

-Luke

P.S. The team likes to refer to this as "microservices" or "infinite/modular upgradability".