An Overview on Cosmos: The Internet of Blockchains
Cosmos is a robust “internet of blockchains,” which utilizes a tiered system of blockchains (comprised of Zones, Hubs (including the main Cosmos Hub), and Bridges) designed to deliver next-generation scalability while retaining the optionality for uncompromised security. Above all else, the system is designed to allow for flexibility in solving the scalability trilemma and delegating that design decision to the developers of individual dApps.
Zones are where individual blockchain applications (or dApps) are built. The Cosmos philosophy believes that each dApp can and should operate on its own blockchain as opposed to sharing a chain with other uses or operating on an individual shard as is proposed in Ethereum 2.0. Each of these separate blockchains are referred to as a “Zone.” Cosmos is a flexible design that allows for components from other blockchains to be implemented within a Zone (i.e., incorporating the Ethereum Virtual Machine (EVM) if desiring to run smart contracts compatible with Ethereum or other EVM chains). Each Zone has optionality to utilize the main Cosmos Hub’s (or another Hub) validators or to select its own set of validators (either in a public manner - utilizing Atoms or another whitelisted token as the incentive layer - or in a private manner utilizing a permissioned proof-of-authority system).
Hubs allow for Zones to communicate and interact with one another. Hubs can be built and managed by individuals if a system is being built where the architect desires to connect its Zones to one another without connecting to the main Cosmos Hub, although interaction with the remainder of the Cosmos ecosystem “will require connecting through a a more well connected Hub, likely to be handled solely by the main Cosmos Hub”
The Cosmos Hub is available for the entire ecosystem to use for shared security [Update 3/18/19: unclear whether and when this shared security function will be available for use on mainnet]. Blockchains are only secure because of their distributed nature (combined with cryptographic properties) which protect against malevolent attack, that in public blockchains are driven by their economic incentive models. Individual Zones and private Hubs can mitigate the high cost of public security through shared use of the “security spend of the” Cosmos Hub.
Bridges (via the use of ‘peg zones’) allow for the inter-chain communication between the Cosmos ecosystem and existing ‘legacy’ blockchains. While the technical specifications of these ‘peg zones’ have not been finalized, the system has a fairly robust proposed architecture. Typical of other interoperability solutions, the Cosmos team intends to utilize a two-way peg design to allow for tokens to be “transferred” from one chain to the other. Unique to Cosmos, in order to mitigate the expense associated with a computational heavy translation process, the Cosmos team has proposed a more sophisticated process where the translation of communication between the chains occurs within the Cosmos ecosystem, and additionally leverages the security afforded by the validators of the main Cosmos Hub to witness and confirm those transactions taking place.
Cosmos Tendermint Toolkit
Cosmos is built as an open source set of tools to allow blockchain developers to develop dApps in the Cosmos ecosystem.
The Tendermint Core Stack: Providing Rapid Consensus to the Cosmos Ecosystem
Tendermint Core is simply the consensus stack upon which the Cosmos ecosystem is built. Tendermint is a practical byzantine fault tolerant consensus mechanism utilizing a true delegated proof of stake system (more on this later). Tendermint is secured by validators and delegators. Private Zones or Hubs may operate with authorized validators in order to avoid use of a crypto-economic model to incentivize validation. Tendermint has instant finality (as opposed to probabilistic finality) through its validation system. Separate from Tendermint Core is the Tendermint Application Blockchain Interface (Tendermint ABCI) which is discussed in further detail below.
Tendermint vs. EOS dPOS 1
Dan Larimer describes EOS consensus mechanism as a “delegated proof of stake” system. The main problem with the EOS model is that validators (or “Block Producers” as they are called in the EOS ecosystem) have nothing at stake and as a result “delegators” likewise are neither delegating their tokens nor do they have anything at stake. Delegators in the EOS ecosystem are simply voting their tokens in favor of a number of Block Producers. Since the EOS system has no true penalties for bad actors, the system instead relies on a combination of reputational risk and loss of the positive incentive - making it important to select trustworthy Block Producers. The lack of a true “cost” of an attack or “investment” into the system for producers of blocks is a justified point of criticism of the EOS system (and one that does not exist in either the Bitcoin or Ethereum ecosystems). On the other hand, the EOS system arguably self-repairs by allowing token holders to re-cast their votes in favor of benevolent Block Producers.
Cosmos’ Tendermint solves this problem by acting as a true delegated proof of stake consensus technology. In this system, validators must post/bond a stake of tokens to the network and delegators actually delegate their tokens to one or more particular validators (and these delegated tokens are subject to the same slashing risks as the validators’ own tokens). In this dPoS model, both validators and delegators are invested in the network’s successful functioning and the model protects against bad actors by making an attack on the system cost-prohibitive.
“Cosmos relies on strict guarantees for formal Byzantine fault-tolerance to build both a robust punishment for equivocation and build up a set of guarantees that extend to Internet of Blockchains as a whole. EOS relies mostly on institutional reputation for a kind proforma consensus that sits between Nakamoto consensus and what computer science research indicates is possible.” - Chjango Unchained
Tendermint vs. Casper CBC (Ethereum 2.0/RChain) 2, 3
We already understand that Tendermint aims to provide fast finality to distributed systems. Meanwhile, Vlad Zamfir’s Casper CBC (correct-by-construction) consensus protocol (a pure proof of stake method that has been jointly developed and adopted by the RChain cooperative) does not provide instant finality. Instead, blocks become probabilistically final (i.e. more secure the deeper down the consensus chain they are).
The rate at which subsequent blocks are finalized is a function of shard decentralization - meaning the more validators supporting the shard, the slower the shard will propagate new blocks. RChain’s Root Shard for example is highly decentralized and is estimated to be only 10x faster than the current Ethereum network. For contrast, RChain’s high performance shard (which has a much higher barrier to entry through increased system requirements and is therefore expected to be less decentralized) is estimated to perform 1,000x Ethereum’s current transaction rate
Cosmos’ Hub and Zone design is very similar to RChain’s root/local shard design in that each Hub and/or Zone can customize the level of security and performance desired. The Cosmos Hub is expected to be the most publicly available, secure, and decentralized Hub in the Cosmos ecosystem.
The Scalability Trilemma, Consensus Trade-Offs and the Cosmos Ecosystem 4
The scalability trilemma (as coined and popularized by Vitalik) claims that blockchain systems can only at most have two of the following three properties:
Decentralization (defined as the system being able to run in a scenario where each participant only has access to O(c) resources, i.e. a regular laptop or small VPS)
Scalability (defined as being able to process O(n) > O(c) transactions)
Security (defined as being secure against attackers with up to O(n) resources)
Generally, consensus speed is inversely proportional to the number of validators on a network (with consensus times increasing when there are more validators on the network). Nevertheless, any blockchain is more secure with more validators, as the system can withstand a greater absolute number of absent or malicious nodes. Most blockchain projects have needed to balance the need for security with scalability and speed but have, at best, been able to estimate the needs of projects/dApps that will be building on their platforms. With Cosmos, individual projects can balance their needs and utilize the security/scalability balance that works best for the particular project.
Because of Cosmos’ design architecture of Zones and Hubs, dApp projects are able to have multiple Zones running in parallel, communicated with one another through a Hub, which Zone and/or Hub can utilize the same or a new validators set (depending on the project’s security and speed requirements). Because of this flexibility, the network architects are not put in the position of attempting to determine the optimal balance within the scalability trilemma - and dApp creators can even vary the characteristics for different portions of a dApp running on unique Zones. In this way, the more critical components of a dApp can have their requisite security needs met, while less critical (or more consumer facing) portions can prioritize speed and usability.
Tendermint Application Blockchain Interface (Tendermint ABCI)
Unlike other blockchain designs, the Tendermint stack is developed to separate the communication and consensus stack (Tendermint Core) from the application stack (Tendermint ABCI). Tendermint ABCI allows for Tendermint blockchains (dApps) to be developed in any programming language. Because of the flexibility of ABCI, other blockchain software (i.e., the Ethereum Virtual Machine (EVM)) can be stripped out and plugged on top of Tendermint Core within the Cosmos ecosystem. In fact, the Tendermint/Cosmos team did exactly that with the EVM, called Ethermint. When the Cosmos ecosystem goes live, individual Ethereum dApps will be able to be easily ported over to run on Ethermint, taking advantage of Tendermint’s drastically more rapid consensus time.
Economic Incentive to Stake via Threat of Inflationary Dilution
Economic models are (or should be) developed to encourage participants within that economic model to behave in a manner most beneficial to the economic system as a whole. A strong argument for the benefit of inflation in standard fiat systems is to counteract the “Paradox of Thrift,” as popularized by John Maynard Keynes. Through inflation, participants in a particular economic system are disincentivized to save (deemed to be a selfish action that does not benefit the economic system in aggregate) and are rather encouraged to either spend that money now (driving the economy) or to invest in value-producing enterprises. In the same vein, Cosmos utilizes the threat of inflation to counteract the “tragedy of the commons” or voter apathy.
“Game-theoretic tragedy-of-the-commons vulnerabilities: because each voter only has a tiny chance of influencing the result, their incentive to vote correctly is thousands of times lower than the socially optimal incentive. This means that situations like everyone putting their coins on exchanges and exchanges voting on users’ behalf, with users not really caring how exchanges vote with their money, are likely to happen.” - Vitalik Buterin 5
The Cosmos economic system is developed to encourage staking of 2/3 of all Atoms. Only staked or delegated Atoms holders are receiving the new inflation generated Atoms, thereby punishing holders who do not stake or delegate their Atoms. The inflation rate is determined in a manner similar to a token bonding curve. In this system, the minimum inflation rate is 7% and the maximum inflation rate is 20%. If in the previous 4 months more than 2/3 of atoms were bonded more than 1/2 of the time, the system decreases the inflation rate, otherwise, the system increases the inflation rate to provide greater incentive to stake. A byproduct of this system is that non-participants can be inflated out of having a material impact on the system. We believe that this feature of the Cosmos Atom sets it apart from other network tokens, in that the token is built to discourage trading or speculation and drastically encourages holding and staking within the system (i.e., less available supply on the open markets).
Incentive Alignment through Dual (or Tri) Token Model
Single token crypto-economic models (whether in a proof-of-work or proof-of-stake system) lack alignment between token holders and network users. This is an issue for various reasons but generally, token holders are more concerned with driving value (or rather increased price) to the token (often through a desire for a rarely transacted low-velocity token), while network users are interested in a rapid, secure system (which generally requires tokens to be transacted rapidly). We have seen countless scenarios where these groups have irreconcilably disagreed (see Bitcoin and it’s several dozen hardforks).
In a dual-token proof-of-stake model, the two have incentives which are more in line - holders can concentrate on driving value to a staking token (which acts more like a ‘right to work’ token or medallion than a security) while users can advocate for a highly-functional system which transacts in a second utility token. Cosmos follows the dual-token model through use of the Cosmos Atom as a staking token and the Photon as a utility token [Update 3/18/19: we see a likelihood that validators can and will accept fee payment in a pegged asset (e.g. BTC or ETH)]. The Cosmos ecosystem takes this model one step further where individual Hubs/Zones can issue one (or more) Hub/Zone specific tokens which can drive additional functionality within those specific ecosystems. We believe this system will more easily allow value to be driven to the Atom as a staking token.
Tendermint and the Cosmos Atom
Tendermint does not require the Atom token to function - begging the question of why and how the Cosmos Atom has any value. While it is true that the Atom is not required in order to run a Tendermint-based blockchain, the Atom is required to be held in order to act as a validator on the Cosmos Hub (intended to be the central hub of the Cosmos ecosystem and to be utilized as a shared security layer for Hubs and Zones within the Cosmos ecosystem). The Cosmos Hub can be thought of in the same way that Bitcoin would be viewed within a larger system utilizing second and third layer scaling solutions or applications, or the way the root chains on Ethereum 2.0 or RChain would be viewed with respect to shards or side chains. Any dApps/blockchains which desire or intend to interact with the Cosmos ecosystem at large would need to connect through the Cosmos Hub - driving transaction fees and value to the validators (and delegators) on the Cosmos Hub.
Some might argue that the Cosmos Hub may be usurped by a competing Hub which offers the same services and utility that the Cosmos Hub provides. In such a case, the Cosmos Hub would lose utility and therefore value. While a novel argument, it is one that we have not yet seen play out in the crypto-sphere - largely as a result of the fact that successful crypto-networks require strong user communities which would be difficult to recreate as a “copycat” product (e.g. see Bitcoin hardforks which largely mimic Bitcoin’s use case). Based on the strong Cosmos community and development team, we see a strong moat around the existence and success of the Cosmos Hub as the anchor of the Cosmos ecosystem.