
From Bitcoin to next-generation blockchains.
When open source projects develop the next version, it’s not uncommon to use the suffix “-ng” to denote “next generation.” Fortunately, so far, the rapidly evolving blockchain has successfully avoided this naming trap. But in the evolution of this open source ecosystem, change is constant, and good ideas are adopted, blended, and evolved in many different projects in the typical open source way.
In this article, I will examine different generations of blockchains and look at what ideas have emerged in addressing the problems encountered by this ecosystem. Of course, any attempt to categorize an ecosystem has its limitations — and detractors — but it also provides a rough guide to the chaotic blockchain projects.
The Pioneer: Bitcoin
The first generation of blockchain originated from the Bitcoin blockchain, a ledger</rt> based on decentralized, peer-to-peer cryptocurrency, which has evolved from a discussion on Slashdot to a mainstream topic.
This blockchain is a distributed ledger that keeps track of all users’ transactions</rt> to prevent them from double-spending</rt> currency (historically, this task was delegated to third parties — banks). To prevent attackers from disrupting the system, the ledger is copied to every computer participating in the Bitcoin network, and only one computer is allowed to update the ledger at a time. To decide which computer gets the power to update the ledger, the system arranges a competition every 10 minutes between computers on the Bitcoin network, which consumes a lot of their energy to participate. The winner gets the power to write the transactions that occurred in the previous 10 minutes to the ledger (the “block” in the blockchain), and receives some Bitcoin as a reward for writing to the blockchain. This method is called the proof of work</rt> (PoW) consensus mechanism.
This is where blockchain gets most interesting. Bitcoin was released as an open source project in January 2009. In 2010, realizing that many of these elements could be adjusted, a community formed around Bitcoin — the bitcointalk forum — to begin various experiments.
Initially, the Bitcoin blockchain was seen as a form of distributed database. The Namecoin project emerged, suggesting that any data could be stored in its transaction database. If the blockchain could record the transfer of money, it should also be able to record the transfer of other assets, such as domain names. This was exactly the main use case for Namecoin, which launched in April 2011 — two years after Bitcoin’s emergence.
Namecoin adjusted the content of the blockchain, while Litecoin adjusted two technical aspects: reducing the time interval between two blocks from 10 minutes to 2.5 minutes, and changing the competition method (replacing the SHA-256 secure hash algorithm with scrypt). This was possible because Bitcoin was released as open source software, and Litecoin was essentially identical to Bitcoin in other parts. Litecoin was the first fork that modified Bitcoin’s consensus mechanism, paving the way for many other “coins.”
Along this path, there were more and more variants based on the Bitcoin codebase. Some extended Bitcoin’s use, such as the Zerocash protocol, which focused on providing transaction anonymity and fungibility, but it eventually split into its own currency — Zcash.
While Zcash brought its own innovations, using recently developed cryptography called “zero-knowledge proof</rt>”, it maintained compatibility with most of the main Bitcoin codebase, meaning it could benefit from upstream Bitcoin innovations.
Another project — CryptoNote, which sprouted from the same community but didn’t use the same code, was built against the backdrop of Bitcoin but was different from it. Released in December 2012, it led to the creation of several cryptocurrencies, the most famous being Monero (2014). Monero used a different approach than Zcash but addressed the same issues: privacy and fungibility.
As is often the case in the open source world, there’s more than one tool for the same job.
The Next Generation: “Blockchain-ng”
But so far, all these variants have only improved cryptocurrencies or extended them to support other types of transactions. Thus, this leads to the second generation of blockchain.
Once the community began to modify blockchain usage and adjust technical aspects, it didn’t take long for some to want to expand and reimagine their future. Bitcoin’s long-time follower — Vitalik Buterin — suggested in late 2013 that blockchain transactions should be able to represent state changes in a state machine, treating the blockchain as a distributed computer that can run applications (“smart contracts</rt>”). This project — Ethereum — launched in April 2015. It has been hugely successful in running distributed applications, with some of its very popular distributed applications (CryptoKitties) even causing the Ethereum blockchain to slow down.
This demonstrated a major limitation of current blockchains: speed and capacity. (Speed is usually measured in transactions per second, or TPS.) Several proposals have been made to address this speed issue, from sharding</rt> to sidechains</rt>, and a solution called “second-layer</rt>”. More innovation is needed here.
As the term “smart contracts” began to gain popularity and they were run on technology that proved to be still slow, other ideas needed to be implemented: permissioned blockchains</rt>. All the blockchain networks we’ve covered so far have two unstated characteristics: they are public (anyone can see their functions) and they don’t require permission (anyone can join them). These two parts are what a distributed, non-third-party-based currency should have and must have.
As blockchain was seen as increasingly distinct from cryptocurrency, it made sense to consider some privacy and permission scenarios. A consortium-type of participants with business relationships but not needing to fully trust each other could benefit from these blockchain types — for example, participants in a logistics chain, financial, insurance, or healthcare institutions that regularly conduct bilateral settlements or use a clearinghouse.
Once you change the setting from “anyone can join” to “invitation only,” it becomes possible to further change and adjust how the blockchain builds blocks, which becomes very interesting for some people.
First, the proof of work (PoW) designed to protect the network from malicious or spam participants can be replaced with something simpler and less resource-intensive, such as a consensus protocol based on Raft. A trade-off is made between higher security and faster speed by adopting a simpler consensus algorithm. This is more ideal for more groups because they can replace other legally-based guarantees with crypto-based guarantees, such as avoiding the massive energy consumption due to competition, which is the case with proof of work. Another innovation is the use of Proof of Stake (PoS), which is a heavyweight competitor for public network consensus mechanisms. It will likely find its own implementation like permissioned chain networks.
Several projects have made it easier to create permissioned blockchains, including Quorum (a fork of Ethereum) and Hyperledger’s Fabric and Sawtooth, two open source projects based on new code.
Permissioned blockchains can avoid some of the complexities of public, permissionless blockchains, but they have their own problems. Properly managing participants is one of them: who can join? How to identify them? How to remove them from the network? Does one entity on the network manage a central public key infrastructure (PKI)?
The Open Nature of Blockchain
In all the cases so far, one thing is clear: the goal of using a blockchain is to increase the level of trust between participants in the network and the data it generates, ideally sufficient to use it without further work.
This level of trust can only be achieved if the software powering this network is free and open source. Even a correct, dedicated, distributed blockchain is essentially a collection of private agents running the same third-party code. In essence, the blockchain’s source code must be open source, but open source alone is not enough. As the ecosystem continues to grow, this is both a minimum guarantee and a source of further innovation.
Finally, it’s worth noting that while the open nature of blockchain is considered a source of innovation and change, it’s also considered a form of governance: code governance, where users expect any particular version they run to include the features and methods they believe the entire network should include. In this regard, it should be noted that the open nature of some blockchains is “souring.” But this issue is being addressed.
Third and Fourth Generations: Governance
Next, I’m considering third and fourth generation blockchains: blockchains that will have built-in governance tools, and projects that will address the tricky problem of interconnecting the many different blockchains so they can exchange information and value.
About the Author
Axel Simon: A long-time free and open source software enthusiast, working at Red Hat, focusing on security and blockchain technology, as well as distributed systems and protocols. Committed to protecting the internet and its achievements (knowledge sharing, information access, decentralization, and network neutrality).