Should blockchain software be openly available?

Revain
Revain
Oct 1, 2018 · 4 min read

By Olga Grinina

Image for post
Image for post

The first generation of blockchains stems from the Bitcoin blockchain, the ledger underpinning the decentralized, peer-to-peer cryptocurrency that has gone from Slashdot miscellanea to a mainstream topic. Along the way, many more variations of the Bitcoin codebase have appeared. Some started as proposed extensions to Bitcoin, such as the Zerocash protocol, which aimed to provide transaction anonymity and fungibility but was eventually spun off into its own currency, Zcash. While Zcash has brought its own innovations, using recent cryptographic advances known as zero-knowledge proofs, it maintains compatibility with the vast majority of the Bitcoin code base, meaning it too can benefit from upstream Bitcoin innovations.

This blockchain is a distributed ledger that keeps track of all users’ transactions to prevent them from double-spending their coins (a task historically entrusted to third parties: banks). To prevent attackers from gaming the system, the ledger is replicated to every computer participating in the Bitcoin network and can be updated by only one computer in the network at a time. To decide which computer earns the right to update the ledger, the system organizes every 10 minutes a race between the computers, which costs them (a lot of) energy to enter. The winner wins the right to commit the last 10 minutes of transactions to the ledger (the “block” in blockchain) and some Bitcoin as a reward for their efforts. This setup is called a proof of work consensus mechanism.

With the words “smart contract” in the air and a proved — if still slow — technology to run them, another idea came to fruition: permissioned blockchains. So far, all the blockchain networks we’ve described have had two unsaid characteristics: They are public (anyone can see them function), and they are without permission (anyone can join them). These two aspects are both desirable and necessary to run a distributed, non-third-party-based currency. As blockchains were being considered more and more separately from cryptocurrencies, it started to make sense to consider them in some private, permissioned settings. A consortium-type group of actors that have business relationships but don’t necessarily trust each other fully can benefit from these types of blockchains — for example, actors along a logistics chain, financial or insurance institutions that regularly do bilateral settlements or use a clearinghouse, idem for healthcare institutions.

Once you change the setting from “anyone can join” to “invitation-only,” further changes and tweaks to the blockchain building blocks become possible, yielding interesting results for some. For a start, proof of work, designed to protect the network from malicious and spammy actors, can be replaced by something simpler and less resource-hungry, such as a Raft-based consensus protocol. A tradeoff appears between a high level of security or faster speed, embodied by the option of simpler consensus algorithms. This is highly desirable to many groups, as they can trade some cryptography-based assurance for assurance based on other means — legal relationships, for instance — and avoid the energy-hungry arms race that proof of work often leads to. This is another area where innovation is ongoing, with Proof of Stake a notable contender for the public network consensus mechanism of choice. It would likely also find its way to permissioned networks too.

In all of the cases so far, one thing is clear: The goal of using a blockchain is to raise the level of trust participants have in the network and the data it produces — ideally, enough to be able to use it as is, without further work. Reaching this level of trust is possible only if the software that powers the network is free and open source. Even a correctly distributed proprietary blockchain is essentially a collection of independent agents running the same third party’s code. By nature, it’s necessary — but not sufficient — for a blockchain source code to be open source. This has both been a minimum guarantee and the source of further innovation as the ecosystem keeps growing.

Finally, it is worth mentioning that while the open nature of blockchains has been a source of innovation and variation, it has also been seen as a form of governance: governance by code, where users are expected to run whichever specific version of the code contains a function or approach they think the whole network should embrace.

When it comes to practical application at the current market, decentralized protocols are taking very different stances in regard to sharing their code. Many still have it open on Github, while others for some reason are taking more precautious approach sharing merely a source code for their native token. Everyone is, of course, entitled to their own views on the value of patents and whether their company should file for them. But regardless of your position, we, as a community, must acknowledge that there are others in this world who are obtaining blockchain patents purely for their own profit motives. For example, Erich Spangenberg of IPwe has recently stated publicly that the realm is ‘a curious path how a collection of misfit trolls, geeks and wonks ended up here — but we are going to crush it and make a fortune…’

Revain

Reliable reviews at your fingertips

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store