Cosmos, which aims to be the internet of blockchain networks, can be defined as a blockchain infrastructure that allows the creation of different blockchains within its own blockchain and allows these networks to easily interact.
What is Blockchain?
To better understand the Cosmos blockchain, a general definition of blockchain is necessary. A blockchain can be defined as an open-source digital ledger that records all transactions in a network of independent validators.
Each validator stores a copy of the blockchain data on its own computer. As transactions in the network continue to occur, blocks are created and the blocks are checked by the validators. In this way, the data is kept up to date in a transparent and secure way.
This is where the concept of decentralization comes from. Thanks to blockchain technology, no user has to trust a central authority. However, anyone can serve the network as a validator after meeting certain conditions.
How does the Cosmos blockchain provide a wide ecosystem?
To understand how Cosmos enables the creation of different blockchains within its blockchain, let’s take a look at the development of blockchain technology.
Bitcoin (Blockchain 1.0)
The first blockchain was Bitcoin, the famous digital currency that uses the peer-to-peer protocol created in 2008. Peer-to-peer (P2P) is a network protocol that enables data sharing between two or more clients. Bitcoin uses the proof-of-work (POW) algorithm. In short, in the POW algorithm, miners confirm transactions on the network and earn BTC as a reward.
In the early days, users who wanted to develop decentralized applications had two options. Either do a hard fork with Bitcoin’s code or build on top of the Bitcoin blockchain. But Bitcoin’s code language was inadequate and not user-friendly. Users needed better tools.
Ethereum (Blockchain 2.0)
In 2014, Ethereum introduced a new technology for building decentralized applications. Ethereum, a new blockchain where people could easily build their own applications, achieved this by turning the application layer into a virtual machine called the Ethereum Virtual Machine (EVM).
EVM, which stands for “Ethereum Virtual Machine”, is the environment where Ethereum smart contracts are written. All nodes on the blockchain run smart contracts using EVM.
With EVM, programs created with smart contracts allow any developer to create programs on the Ethereum blockchain without permission. With this, developers have created many decentralized applications (Dapps).
However, with the interest in blockchain, the number of users using decentralized applications started to increase. This has brought different problems. First of all, the transactions took too much time and the increasing transaction fees started to dissatisfy users.
Since EVM is a virtual machine, developers could not be fully original in design. Finally, all decentralized applications were actually connected to a single blockchain. If there was a bug in the application, no progress could be made without the approval of the Ethereum platform governance.
![Cosmos (ATOM) Working Principle](https://b3643570.smushcdn.com/3643570/wp-content/uploads/2023/12/Ekran-Resmi-2022-01-23-19.40.23-1024x757.png?lossy=1&strip=1&webp=1)
Cosmos (Blockchain 3.0)
Cosmos allows developers to create blockchains and allows blockchains to interact with each other. With Cosmos, blockchains can be more unique because developers can set their own rules on the blockchain. Therefore, the dApps created can be more original and creative. Since different dApps are created on different blockchains, transactions are cheap and fast.
Cosmos provides this technology with tools similar to Tendermint. With Tendermint, developers can write blockchains in any language and the blockchains can interact with each other. The Cosmos blockchain does this using the COSMOS SDK.
The COSMOS SDK is designed for users to build secure, scalable and interoperable blockchain applications. Cosmos SDK is an open source community project developed by the Tendermint team. Anyone can create additional tools to enhance the developer ecosystem.
Cosmos SDK
The goal of the Cosmos SDK is to create an ecosystem module that allows developers to easily build application-specific blockchains without having to code their applications from scratch. Anyone can create a module for the Cosmos SDK and use pre-built modules. In this way, the Cosmos SDK ecosystem can continuously grow and evolve or change within itself.
How Do Blockchains Interact with Each Other?
The connection between blockchains created with the Cosmos SDK is realized through a protocol called Inter-Blockchain Communication (IBC).
Different blockchains have different layers. Therefore, the connection may differ in how the algorithm and implementation parts are done. Blockchains only need to meet a few requirements to be compatible with IBC. The most basic feature is that the main network must be fast. Blockchains that run on the PoW algorithm (such as Bitcoin and Ethereum) cannot benefit from IBC.
In Ethereum, all applications are executed by a common set of validators. Therefore, the sovereignty of each application is limited. IBC allows different blockchains to transfer their tokens and data to each other. This means that blockchains with different applications and validator sets can work together.
IBC is a protocol that allows two different blockchains to transfer their tokens to each other.
Any blockchain in the network can be directly connected through IBC. However, as the number of blockchains increases, the number of connections that IBC will make will also increase. For example, if there are 100 blockchains in a network, 4950 IBC connections will be required.
To solve this problem, Cosmos manages blockchains in two different ways: Hubs and Regions. Regions are different blockchains, and hubs are specifically designed to connect regions to each other. When a region establishes an IBC connection with a hub, it automatically has access to every region connected to it. As a result, each region only needs to establish a limited number of connections to a limited number of hubs. Hubs also prevent overloading between regions. If one blockchain wants to receive a “token” on another blockchain, the blockchain only needs to trust the hub.