Authored by Colin Schwarz
What is Ethermint
Ethermint is an implementation of the EVM (Ethereum Virtual Machine), built using the Cosmos SDK, that runs on top of Tendermint Core's BFT Proof-of-Stake consensus engine. The software enables users to deploy any Ethereum compatible code and immediately enjoy PoS consensus and instant finality with little to no overhead. In this way, Ethermint is a fully integrated part of the Cosmos ecosystem but is also fully compatible with the EVM!
Why is Ethermint important?
Despite the proliferation of many new smart contract platforms as well as multi-blockchain ecosystems such as Cosmos, Ethereum still has by far the largest community base of users and developers in the blockchain space. Although Ethereum is an extremely important part of the blockchain ecosystem, it is a massive, multipurpose platform. This has imposed several limitations for developers on Ethereum, especially in terms of scalability, gas price and the ability to customize for a project's desired functionality. By leveraging Tendermint Consensus, Ethermint provides instant finality and enables developers to enjoy higher throughput, lower gas prices and a more modular framework that is easier to customize to bespoke use cases. Ethermint delivers these compelling features in a way that is completely familiar to Ethereum developers and users.
By delivering the EVM as a Cosmos SDK module, Ethermint can support any smart contracts, DAOs or Dapps deployed on Ethereum out of the box. This means that instant finality PoS consensus is available right now for anyone who wants to use it! In this way, Ethermint leverages the massive community of Ethereum developers and the improved throughput, reduced gas cost and higher modularity of Cosmos, to deliver the best of both ecosystems. We hope the reader can appreciate the magnitude of what this represents for the blockchain space. The potential use cases are endless. Don't take our word for it though. Check out the codebase and see what you can do with this amazing project!
ChainSafe and Ethermint
In 2019, ChainSafe Systems received an initial grant from Interchain Foundation to continue building out the functionality of Ethermint and bring it closer to a state of production readiness. The work for this first grant was completed by the end of 2019. During the course of this initial grant, ChainSafe built a working implementation of Ethermint that behaves as mainnet Ethereum does with some limitations. The work included:
An implementation of the EVM as a Cosmos-SDK module.
An implementation of Ethereum transactions in the Cosmos-SDK.
An implementation of the Web3 compatible API layer.
At this point, Ethermint was nearing total feature parity with the EVM but was not quite there yet. Furthermore, the project had still not launched a testnet, nor had it been tested for interoperability with other parts of the Cosmos ecosystem.
In June of this year, ChainSafe received a second grant to finish the work that we started and build out Ethermint into a battle tested, production ready, Cosmos Zone. The deliverables of the current grant are as follows:
Benchmark Web3 API and EVM module against Geth.
Implement a Web3 personal API to allow for keygen and account management that is familiar to Ethereum users and developers.
Implement a way to handle pending state queries through the Web3 API.
Set up a public Ethermint testnet.
Establish a final testing period by setting up a "game of Ethermint." This will be a 4–6 week long testnet that will incentivise users to test the Zone in anticipation of the transition to mainnet.
In addition to the second grant from the ICF, recent development on Ethermint has been generously supported by the Aragon Community. We would like to extend a special thank you for this support and their continued belief in the vision of Ethermint. Working with the Aragon community was vital to preparing Ethermint's testnet infrastructure and ensuring many important compatibilities in this complex codebase.
ChainSafe is currently wrapping up work on all of the pre-testnet deliverables outlined above. We have run an initial benchmark on Ethermint which yielded some impressive results. We have finished work on the Web3 Personal API and will release an article on this work shortly. We are also nearly done implementing pending state queries and plan to have this included in our next release. The Ethermint team is also working on upgrading the SDK to Stargate, its largest and most important update since Cosmos went live! The upgrade to Stargate will include some initial support for IBC, although we will continue to expand Ethermint's interoperability beyond this initial implementation. We expect this work to be done in the next 4 to 6 weeks. Work on Stargate may take longer depending on the other stakeholders. After Stargate is fully tested and integrated into the Ethermint codebase, we will run a follow up benchmarking process in order to capture the significant performance upgrades that Stargate provides. Once these are complete, we will publish the results of both benchmarks along with a brief analysis.
We expect to complete the pending state query deliverable as well as the upgrade to Stargate and the subsequent benchmarking in the next 4 to 6 weeks. Once the pending state work is merged, we will refactor the codebase, improve our documentation and launch Ethermint's first public testnet! Expect us to announce an exact date in the next few weeks. We plan for this first testnet to run for approximately 1 month.
In Q1 of 2021, ChainSafe plans to launch an incentivized testnet, the "Game of Ethermint". This will be the last major milestone before mainnet launch. We will run the "Game of Ethermint" for a long as it takes to be certain that the network is completely secure and everything runs exactly as it should. At this point we will announce the Ethermint genesis event and then launch Ethermint as a fully productionized Cosmos Zone.
The details of the token economics and distribution for Ethermint are still under discussion but we will be sure to let the community know as soon as a plan has been finalized.
If you are interested in getting involved and contributing to the project, check out our Github. If you are already building or intend to start building your project on Ethermint, become a validator, or collaborate with the project in any other way, please get in contact with one of our Ethermint team members on Chainsafe's Discord, Cosmos's Discord under #Ethermint channel or email firstname.lastname@example.org. We would love to know more about you, your team and your project!
In order to make sure we stay connected with our community, we are planning on hosting our first community calls in the upcoming weeks to discuss the project, dig deeper into the current development, give periodic updates on the future roadmap and answer questions. Be on the lookout for upcoming announcements by following the Ethermint, ChainSafe and [Cosmos](https://twitter.com/cosmos) twitter and the Cosmos and Chainsafe blogs.