Over last the two years, a group of talented engineers has been researching and developing a project called Cosmos. The idea behind Cosmos is that it will become an “Internet of Blockchains”, building bridges to connect many different chains together. This vision is now close to fruition, with the main net set to launch in the coming weeks. The launch of Cosmos has been widely anticipated by the market, with the project having the potential to re-frame how developers go about creating decentralized applications. Therefore, this month we are going to dive into the architecture and philosophy that underpins Cosmos. We will assess how it fits into today’s blockchain landscape and how we expect it to shape this landscape going forward.
Cosmos thinks of itself as a third generation blockchain platform. The first generation of blockchains started with Bitcoin in 2009, a simple and elegant protocol with a singular purpose; to enable the transfer of a unique digital asset, bitcoin, between wallets. Most first generation blockchains were derivations of Bitcoin, with almost all of them using the Bitcoin code base as a starting point. This was problematic as this code base was built with one use-case in mind and modifying it is messy and inefficient. Specifically, the Bitcoin code base mixes the networking, consensus and application layers of its technology stack together, making it difficult to edit. Some developers looked to build applications directly on top of Bitcoin, but this was also problematic as the Bitcoin scripting language is limited and not user friendly.
The second generation of blockchains began with Ethereum, which was introduced in 2014 in order to expand on the limited functionality of Bitcoin. Ethereum is a single blockchain with the ability for many applications to be built on top of it. Developers can rely on Ethereum to provide security for their applications and these apps can interoperate with other apps that are also built on the network. Over time we have seen issues arise with Ethereum and similar smart contract platforms. Firstly, there is a scalability challenge as many applications are competing for the limited resources of the Ethereum blockchain and its 14 transactions per second. Secondly, developers are constrained to using the Ethereum Virtual Machine (EVM) with the intricacies that come with it. Developers must program in one of the few languages Ethereum supports, applications must rely on the governance of Ethereum and apps are forced to pay the network in ETH for usage.
Cosmos believes that it is ushering in a third generation of blockchains. The philosophy behind this generation is that applications should have the ability to run on their own chains with their own rulesets and sovereignty. These chains will be able to communicate with each other over the Cosmos network. This is akin to the Internet, which is a network of networks. Cosmos allows the ecosystem to scale as every chain can handle its own transactions and throughput. In the way that Ethereum made it easy for developers to build apps that run on Ethereum, so Cosmos is trying to make it easy for developers to build and deploy blockchains that run in the Cosmos ecosystem.
Cosmos itself is not a blockchain, but a network of application specific blockchains that are built to be compatible with each other. This compatibility comes from developers using the tools that the Cosmos team has released.
Tendermint Core is a software package that deals with the networking and consensus layers of a blockchain. It was created by Jae Kwon, one of the founders of Cosmos, in 2014. Tendermint Core can be used to create both public and private blockchains with the software allowing nodes to propagate transactions and validators to agree on a set of transactions to append to a blockchain. It is highly performant, facilitating block times as short as 1 second and handling thousands of transactions per second. Tendermint consensus provides instant finality, meaning that forks are never created as long as a third of validators are honest. Tendermint Core is being used in production by a number of large entities including the government of Thailand for their National Digital ID initiative.
Coupled with Tendermint Core is the Cosmos SDK which provides an easy way for developers to build fully functioning blockchains using Tendermint Core. A key feature of the Cosmos SDK is its modularity. Anyone can create a module and the library of modules can be easily imported into any application. As the Cosmos network expands, the number of SDK modules will increase making it increasingly easy to build compatible blockchain systems and applications. The SDK has a number of developer tools built into it, including servers and a command line interface.
The tools that the Cosmos team has released makes it very easy for developers to release compatible blockchains. However, allowing every blockchain to communicate directly with every other chain would lead to too many connections due to quadratic scaling. Cosmos solves this by creating two classes of blockchain, Hubs and Zones. Zones are regular blockchains and Hubs are blockchains that are specifically designed to connect Zones together. A Zone connected to Hub A can automatically communicate with every other Zone connected to Hub A. The first Hub to launch will be the Cosmos Hub, which is a Proof-of-Stake blockchain with a native token called the Atom.
The launch of the Cosmos Hub will mark the launch of the Cosmos network. There are three phases to this launch.
The first phase, scheduled for March, is for the Cosmos Hub to go live and gain stability. Failures could occur in the launch and the team is prepared to execute state reversions if they see dramatic failures. During this phase, no tokens will be transferrable although they will be able to be delegated to validators to help secure the network through staking. The second phase of the launch is for token transfers to be enabled which will also kick off the trading of Atoms. This is expected to happen 3 weeks after phase 1. The third phase of the launch is for Inter Blockchain Communication (IBC) to be enabled that will allow Zones to connect to the Cosmos Hub. This will mean that tokens can be transferred between chains. This is expected to happen 3 months after the launch of the network.
The launch of Cosmos is an exciting prospect and has been getting a lot of attention, with a number of large projects committing to it. Binance, the largest crypto exchange in the world, recently announced that they are building their own Decentralized Exchange (DEX) and their own Binance chain using the Cosmos SDK. The Binance team stated:
“Projects like Binance Chain and Binance DEX are often built as forks of Bitcoin or as smart contracts on platforms like Ethereum. With a foundation of clean, well-structured code from Cosmos SDK, we were able to build on a codebase that we saw as a better alternative.”
Given how technically sophisticated and respected Binance is, this statement is a significant endorsement of Cosmos. We anticipate many high caliber projects opting to use Cosmos as a way to create custom blockchains.
CMCC Global Fund 1 invested into the Cosmos ICO in March 2017 and we have been watching the project develop over the last two years. We are following the launch closely and will continue to monitor the network as it moves through its three phases of deployment.