Crypto Coin Compare

Technical Comparison of Ethereum 2, Polkadot and Cosmos

Originally published in the HashCIB report “Polkadot. The Web of Expectations” in February 2020

The information provided is based on real implementations or clearly stated, concrete plans, ideally with a written specification. For undelivered goals that seem reasonable and achievable, we mark with “exp” or “expected”. We give delivered products top priority, followed by products with active development, followed by speculative ideas.

CategoryEthereum 2PolkadotCosmos
Token ETH DOT ATOM
Model Sharded, Fixed-function STF Sharded, Pure-abstract STF Bridge-hub

Names

CategoryEthereum 2PolkadotCosmos
Consensus Protocol Serenity Fast-forward Tendermint
Block Production Sub-protocol RanDAO + LMD Casper Babe n/a (monolithic)
Finality Gadget Sub-protocol Casper FFG Grandpa n/a (monolithic)
Main Chain Name Beacon Chain Relay-chain Cosmos Hub, ... [16]
Interior Chains Name Shard Parachain n/a (not sharded)
Exterior Chains Name Side-chain Solochain Zone

Main-chain Consensus

CategoryEthereum 2PolakdotCosmos
Block Production Fault Tolerance OK (36-50% claimed) [27] Good (50%) OK (33%) Finality Transport Complexity Good ( O( N2 / L ) [4]) Good (O( N2 / L ) [4]) Bad ( O( N2 ) )
Block Production Transport Complexity Good ( O( N ) ) ? Good ( O( N ) ) Bad ( O( N2 ) )
Block Production Fault Tolerance OK (36-50% claimed) [27] Good (50%) OK (33%) Finality Transport Complexity Good ( O( N2 / L ) [4]) Good (O( N2 / L ) [4]) Bad ( O( N2 ) )
Finality Fault Tolerance Maybe OK [26] (33% claimed) OK (33%) OK (33%)
Finalization Expected Latency 6-12 minutes [25] 6-60 seconds Instant
Finalization Maximum Volume Millions of blocks Millions of blocks 1 Block
Validator Count Unknown (16,000 projected) [7] 1,000 (10,000 projected) 100

Main-chain State Transition Function (STF)

CategoryEthereum 2PolkadotCosmos
Model Fixed-function Abstract meta-protocol Fixed-function
Meta-protocol Platform n/a (not meta-protocol) Webassembly n/a (not meta-protocol)
Meta-protocol Reach n/a (not meta-protocol) STF, tx queue, off-chain worker n/a (not meta-protocol)
Randomness Beacon RanDAO (hash-chain based) Babe (VRF-based) None
Light-client Status Planned (2-3 years out [28]) Implemented Implemented
Complete Client Implementations n/a (not released) 1 (Parity Polkadot) 1 (Cosmos SDK)
Additional Credible Impl. Teams [20] 4 [29] 3 (Javascript, C++, Go) 1 (Rust)

Shards

CategoryEthereum 2PolkadotCosmos
Number 64 (projected) [14] 100 (projected) [15] n/a (not sharded)
Shard STF Type Fixed-function Meta-protocol n/a (not sharded)
Light Client Status Planned (est. 2-3 years out) Implemented n/a (not sharded)

Development

CategoryEthereum 2PolkadotCosmos
Development Model Contracts Contracts Contracts & STF
Native Smart Contract Type(s) Wasm (expected) [23] Wasm & EVM EVM & Wasm (expected) [18]
Smart-contract Execution Interpreted [21] AOT compiled [19] Interpreted
STF platform n/a Meta-protocol (Wasm) [30] Go-lang [17]
STF Development Framework n/a Substrate [1] Cosmos SDK [17]
STF Dev Modular Support [1] n/a Full-spectrum Composability Language-only [33]
STF Dev Composition Hooks [1] n/a Dispatch, Genesis, Events, TxQ, Error, Origin, Inherent, RPC, Off-chain n/a (not composable)
STF Dev Framework Modules [1] n/a 25+ [31] ~10 [32]

Governance

CategoryEthereum 2PolkadotCosmos
Decision Making “we talk about it” [34] Multi-cameral, lock-voting Coin-vote signalling
Decision Enactment Opt-in hard-fork On-chain, binding & autonomous Opt-in hard-fork
On-chain Permissionless Bodies None Tech. committee, council (elected) None
On-chain Treasury None Yes; controlled by an elected body None [35]

Bridging & Compatibility

CategoryEthereum 2PolakdotCosmos
BTC token None Two-way peg (expected) [10] Two-way peg (expected) [11]
ETH token (Ethereum 1.x) One-way-peg (expected) [12] Two-way peg (expected) [9] Two-way peg (expected) [11]
Ethereum 1.x Mainnet Smart Contracts None [6] Full interop (expected) [9] None [8]
EVM Side-chain Bridging None planned Full interop (Parity PoA) [22] Two-way peg (expected) [24]
EVM Shard Compatibility Probably not [5] Full (Substrate EVM Pallet) n/a (not sharded)
Native Shard Solidity Compatibility Sol-Wasm compiler [13] Sol-Wasm compiler [13] n/a (not sharded)

Timeline / Roadmap

CategoryEthereum 2PolkadotCosmos
Phase 0 (Main chain only) 07/2020 (est., optimistic [2]) 02/2020 (est., demoed) 08/2019
Phase 1 (Shards with no STF) 01/2021 (est., optimistic [2]) 04/2020 (est., demoed) n/a (not sharded)
Phase 2 (Shards with an STF) 01/2023 (est., realistic [2]) 04/2020 (est., demoed) n/a (not sharded)
Phase 3 (Low-state client) Unknown 04/2020 (est., demoed) n/a (not sharded)
Phase 4 (Basic Communications) Unknown 06/2020 (est., final design [36]) 06/2020 (est., final design)
Phase 4.1 (Multi-shard instancing) n/a (fixed-function) 09/2020 (est., design) n/a (not sharded)
Phase 5 (Composability) [3] “this may be difficult” 07/2021 (est., research) n/a (not sharded)

Notes

  1. Assuming the Polkadot STF development framework is Substrate. The architecture supports others but none exist yet.
  2. As evaluated by Messari Research in “Crypto Theses for 2020”.
  3. Included for completeness. No network has yet published a viable design for this, to date.
  4. Where L is the latency of finality. As the participants increase, the network transport complexity need not increase until the finality latency becomes unacceptable.
  5. There is work underway to attempt to transcompile EVM code into eWasm such that original EVM contracts can be redeployed under eWasm and work as expected, however it is unclear that this is possible, given gas costs must be respected for compatibility and will be dictated by the eWasm chain.
  6. There are vague suggestions to make ETH-1 a shard in ETH 2.0 by doing a once-off migration of the state, however it is far from clear that this is practically executable in any reasonable timeframe. https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth-1.0-to-2.0-migration/
  7. There is no evidence that this projection is realistic.
  8. There were plans to “hard spoon” the Ethereum mainnet into a new Tendermint-based network. The plans are apparently suspended owing to the difficulty of implementation.
  9. A comprehensive RFP has been published by the team, together with a full specification document.
    1. https://docs.google.com/document/d/1yMpiSAAvGeRebLlzl5fmcq_LloIViperTw4UUEuQYzM
    2. Spec: https://hackmd.io/UVzp6Z-bRAOo9Ny531yhmA
  10. This is not yet implemented, however a convincing design is published by the project’s research team https://interlay.gitlab.io/polkabtc-spec/btcrelay-spec/ and an implementation is under way.
  11. Both ETH and BTC token bridging were claimed as key features in the whitepaper, so we give them the benefit of the doubt that this will be delivered.
  12. Burnability of ETH 1.x tokens to mint ETH 2.x tokens is a core claim to the platform. Initial spec/implementations are:
    1. https://github.com/ethereum/eth2.0-specs/blob/676e216beb0fd95932793ac271802fd48b07e4c5/specs/phase0/deposit-contract.md
    2. https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth-1.0-to-2.0-migration/
  13. A Solidity to Webassembly compiler has been under development for a long while now. Though not yet ready, we expect it is likely feasible.
  14. The original figure targeted was 1000. This was later revised down to 64, and appears to be much more realistic. https://notes.ethereum.org/@vbuterin/HkiULaluS
  15. The figure published by the project is based on 1000 validators at 10 validators/shard and looks to be quite conservative.
  16. Technically, there’s little to prevent other “main chains” on the network if they can get enough buy-in.
  17. Some teams have begun an attempt to reimplement the stack in Rust. Efforts are at an early stage.
  18. The EVM contract chain is not yet implemented, however a credible team has been hired to build it. A Wasm chain is also under development. https://github.com/confio/cosmwasm
  19. An interpreter (Wasmi) also exists.
  20. Anyone can fire up a repository on Github and claim to be an “incomplete implementation”, so this only includes projects in an advanced stage of development coming from well-established teams that we recognise as being capable of delivering in the near-term.
  21. It is not unrealistic to expect a compiler for smart contracts eventually, however the design/development is at an early stage and it’s not clear that practical deployment is likely.
  22. Not yet completed, but an implementation is under heavy development at https://github.com/paritytech/parity-bridge.
  23. Webassembly-based smart contract functionality is under design https://github.com/ewasm/design.
  24. It is expected to be able to engender token-level compatibility between chains through Ethermint & IBC.
  25. It is unclear how long 64 blocks will be in ETH 2.0, but a block is likely to be between 12 and 20 seconds so the maximum is probably at least 12 minutes and the expected would be half. https://github.com/ethereum/eth2.0-specs/blob/676e216/specs/phase0/beacon-chain.md#time-parameters
  26. This number is asserted and may not be an unreasonable claim, however no proof of this has been published. Furthermore, a theoretical attack has been published to https://ethresear.ch/ by Dr. Alistair Stewart where liveness may be compromised by just 2% Byzantine nodes.
  27. Numerous claims have been made but to date no proofs have been offered. https://ethresear.ch/t/randao-beacon-exploitability-analysis-round-2/1980
  28. Light client planned for Ethereum 2.0 Phase 3. Messari Research [2] projects Phase 2 as “optimistic” for late 2021 and anything after Phase 2 as too far to predict.
  29. Several teams of various maturity/funding are working on Ethereum 2.0 clients. Not all of them are especially credible. https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth2.0-teams/teams-building-eth2.0/
  30. Any language that targets Wasm, e.g. Rust, C++, LLVM, can express a valid STF.
  31. Substrate provides over 20 modules. In addition, there are community libraries.
    1. E.g. ORML: https://github.com/laminar-protocol/open-runtime-module-library
  32. Cosmos SDK Modules: https://github.com/cosmos/cosmos-sdk/tree/master/x
  33. No additional means of modular STF development is provided by the framework.
  34. https://github.com/ethereum/wiki/wiki/Governance-compendium
  35. Though there may be long-term plans to move the treasury on-chain https://twitter.com/jaekwon/status/1215386686378500097?s=12
  36. More XCMP info:
    1. Final design: https://github.com/w3f/research/blob/master/docs/polkadot/XCMP.md
    2. Additional: https://medium.com/web3foundation/polkadots-messaging-scheme-b1ec560908b7