- Moderator edit to add link to on-chain proposal: Mintscan
Advancing Ethermint - Governance Proposal: GTM and Engineering Plan for the Ethermint Chain
Author
Federico Kunze Küllmer: @fedekunze
Vision
Cosmos is on the verge of revolutionizing the blockchain industry in 2021 by showcasing the first public blockchain to enable trustless interoperability across multiple chains through IBC.
Combining the Cosmos and Ethereum communities will provide new economic opportunities for millions of users. To unlock them, we need to advance the Ethermint codebase, which will result in a EVM-compatible Cosmos chain that will open tangible and collaborative use cases around composability, interoperability and fast-finality with the EVM.
Summary
Tharsis is requesting 100,000 ATOMs from the Cosmos Hub community pool to fund, develop and advance the Ethermint project and launch an Ethermint Chain. The team will use these resources to grow our dedicated Cosmos-EVM team, so we can take on the commitments and responsibilities necessary to maintain and support the Cosmos-EVM chain and codebase.
An Ethermint environment has enormous potential to unlock new use cases within the Cosmos ecosystem that are not possible on Ethereum today. Use cases that require scalability and composability are some of the endless possibilities for Ethermint.
Ethermint is a way of vertically and horizontally scaling the projects that deploy on Ethereum, by allowing:
- Access to greater liquidity through IBC
- Faster transaction times through Tendermint BFT’s instant finality
- Less strain on the Ethereum chain to process transactions (i.e. through gravity bridge)
- Seamless portabilty and composability with Ethereum Virtual Machine support
The commitments stated in this proposal will ensure a successful launch for the Ethermint chain together with its existing contributors (ChainSafe, OKEx, Iris, Injective, etc). Launching collaboratively with Ethermint stakeholders will result in a robust and independent community within Cosmos that will enable greater developer adoption of Cosmos technology.
The Ethermint stakeholders are partnering to execute on the long-awaited Ethermint Chain by joining forces to develop and deploy a new Cosmos EVM chain that will be used by thousands of crypto users at launch.
Context
Motivation
Ethermint was introduced in late 2016 as a proof of concept project that ran Ethereum smart-contracts on Tendermint using Proof-of-Stake. The original vision was to develop an EVM compatible chain with fast finality that supports all existing Ethereum tooling (Truffle, Metamask, Mist wallet, etc), thus giving Solidity developers the same user experience as developing with the Ethereum stack. The initial implementation also envisioned compatibility with mainnet Ethereum through a peg-zone so that users could transfer ERC20 tokens from Ethereum to Ethermint and vice versa.
With the recent bull market in cryptocurrency in 2021, gas prices soared to levels that excluded millions of users from accessing financial and economic opportunities in decentralized finance (DeFi) and NFTs, stripping away their chance to better their lives through this financial technology revolution.
As the Cosmos Network reached its maturity for mainstream adoption, Cosmos partners and builders are in urgent need of an Ethermint-like solution. They are looking for a scalable, trustless, and EVM-compatible solution that can interoperate with the Cosmos Hub to gain access to cross-chain liquidity while ensuring their users can participate cheaply in their favorite applications. This is possible by integrating the Cosmos-Ethereum Gravity bridge and IBC; hence, Ethermint becomes an interoperable sidechain that can onboard liquidity providers and access the broader Cosmos and Ethereum ecosystems.
Despite the immense progress of Ethermint, we have seen prospective projects and members of the community (who planned to deploy applications on Ethermint) lose interest in the promising narrative of a sovereign EVM-compatible PoS chain with fast finality on the Cosmos Network. And instead, they deploy applications on sidechains and trusted solutions that are not Cosmos-compatible to reach the market quickly. We believe that this outcome arose due to unforeseen delays in launching the network and the lack of a specialized and dedicated Cosmos team that can support these partners and execute key improvements and maintenance to the codebase in the long run.
We believe that having a low-fee, trustless, and interoperable solution with Ethereum mainnet can create additional value to the crypto and Ethereum communities rather than competing for developer mindshare and users. We hope Ethereum succeeds in its long-term mission while we develop a complementary value proposition around fast finality use cases for DeFi, NFTs, and enterprises.
As a result, we’ve decided to combine efforts and form a dedicated and accountable set of entities to see an Ethermint chain through the finish line to launch a production-ready solution by Q4 2021. With this proposal, we commit to bring the Cosmos ecosystem what it was longed for since Ethermint’s inception in 2016.
Proposer
Tharsis is a company whose goal is to maintain Ethermint’s core engineering and bring adoption to Cosmos. Tharsis will turn Ethermint into a link between Cosmos and Ethereum communities, enriching both ecosystems through interoperability and composability.
Tharsis’s team has expertise in building key pieces of infrastructure and user-facing applications for both Ethereum and Cosmos ecosystems that are currently used by tens of millions of active users:
- Federico Kunze Küllmer (@fekunze), was the Technical Lead and Sr. Engineer of Ethermint. Federico has 4 years of expertise in Cosmos and blockchain interoperability (IBC Protocol, Cosmos SDK framework, Cosmos Hub/Gaia, Gravity bridge, Lunie wallet). He’s also a former employee of Tendermint Inc / AiB and a Blockchain at Berkeley alumni.
- Akash Khosla (@akash_khosla) was one of the co-founders of Blockchain at Berkeley and was responsible for scaling the organization, putting together the original designs, and forming a design team. He also co-taught the Blockchain for Developers at UC Berkeley course for 1.5 years and co-founded the academic CESC conference (cesc.io). He has previously worked at Earn.com (acquired by Coinbase), Chain (acquired by Stellar) and in the RISE Lab. Akash works at Anchorage as a Software Engineer responsible for writing software that secures and moves billions of dollars of digital assets while creating the best institutional experience for digital asset participation.
Governance Votes
The following items summarize the voting options and what it means for this proposal. All addresses that vote on the proposal might be eligible for a future airdrop.
- YES: You approve the proposal statements and distribute the amount of 100,000 ATOMs to the multisig address. The treasury will allocate the funds to the Tharsis team, leading Ethermint’s core development efforts and supporting the chain’s go-to-market strategy. It will also lead to core technology maintenance and continuous discussion to ensure the project’s longevity.
- NO: The NO vote is a request for improvements or adjustments. You agree that this proposal’s motivation is valuable and that the team should create a follow-up proposal once the amendments are included.
- NO (VETO): You veto the entire motivation for the proposal and expect the ICF and current maintainers to make the determination and continue the stewardship of the project. The proposers will not create a follow-up proposal.
- ABSTAIN: You are impartial to the outcome of the proposal.
Multisig and release of funds
Upon the approval of the proposal, the treasury will distribute the funds to a ⅔ multi-signature account managed by the following individuals/partners:
- Federico Kunze Küllmer - Tharsis (proposer)
- Zaki Manian - Iqlusion
- Marko Baricevic - Interchain GmbH
The account address is: cosmos124ezy53svellxqs075g69n4f5c0yzcy5slw7xz
If the proposal passes, the team will immediately receive 40% of the funds to expand its engineering team and other business development efforts to support GTM for the chain. The remaining 60% will be released in an equal proportion to the number of milestones upon the completion of each milestone. For any reason, if the proposer has not completed the next milestone within a year of the last payment, the remaining funds held in the multisig account will be returned to the community pool.
Product commitment
The current proposal aims to develop all the necessary components for a successful Ethermint chain. Our team will lead the core development efforts to execute the points below.
Hard Commitments
These are the items that are mandatory for the release of funds. The items will be split into four milestones.
NOTE: Some of the items below are currently stated under ChainSafe’s service agreement with the ICF for Ethermint. Our team will collaborate with them on these items so that they are included by the time the EVM chain is launched. These items are marked below as [CS]
Milestone 1: Developer Usability and Testing
This milestone aims to reach a stage where developers can begin deployments of Ethermint with the latest Cosmos SDK version and test their smart contracts in what will feel like a seamless experience.
- Starport support: Collaborate to ensure compatibility with Starport for developers that wish to use the EVM module with the latest SDK version on their sovereign chains.
- Rosetta API support: Support Ethermint transactions and queries on Coinbase’s Rosetta API that has been integrated into the SDK.
- EVM Consistency: Ensure that Ethermint can operate the same state as Ethereum and deterministically runs smart contract executions, exactly how Geth does (for example, checking the gas used between Ethermint and Geth)
- Replay attack protection: Register Ethermint permanent testnet and mainnet chain-ids to ChainID Registry according to EIP 155.
- Documentation: Ensure the documentation for both Ethermint and the EVM module are up to date with the implementation. JSON-RPC and OpenAPI (Swagger) docs for gRPC gateway and Rosetta will also be available for client developers. The team will create relevant sections to compare and distinguish key components of Ethermint and their corresponding ones on Ethereum. [CS]
- Metrics: We plan to list relevant metrics available through the SDK telemetry system for user engagement information such as the number of contracts deployed, amount transacted, gas usage per block, number of accounts created, number and amount IBC transfers to and from Ethermint, etc. These metrics will be displayed in a Dashboard UI in the form of charts. [CS]
- Ensure compatibility with Ethereum tooling: Test and coordinate with dev teams to test compatibility with (Truffle, Ganache, Metamask, web3.js, ethers.js, etc) and ensure the same dev UX as with Ethereum. The compatibility will then be ensured through end-to-end and integration tests. [CS]
- User Guides: Relevant guides will be added to connect Ethermint with the tools mentioned above.
- Cosmjs Library support: Make Ethermint keys, signing, queries, and txs compatible with the cosmjs library.
- EIP 3085 support: add
wallet_addEthereumChain
JSON-RPC endpoint for Ethermint.
Milestone 2: Maximizing Performance and Compatibility
This milestone aims to enhance and benchmark the Ethermint chain’s performance so developers can experience its superior benefits over existing solutions in the market.
- EVM module readiness: The current
x/evm
module from Ethermint suffers from technical debt regarding its architecture. The current proposal will do a bottleneck analysis of the EVM state transitions to redesign the EVM module to boost performance. - Benchmarks: As a final step, we will be performing benchmarks for Ethereum transactions before and after the EVM refactor has been completed. [CS]
- Maintain a permanent testnet: Ethermint will have a permanent testnet to ease the development process for Ethereum developers and clients that wish to connect to Ethermint. The team will create a dedicated website, infrastructure, and faucet UI for users to request funds.
- Faucet support: The team will ensure an Ethermint-compatible faucet implementation is supported to ensure the sustainability of the permanent testnet. This will be also integrated into the existing faucet library of cosmjs. [CS]
- Ethereum Bridge: Integrate a combination of the following bridges in order to make Ethermint interoperable with Ethereum ERC20s: Cosmos Gravity bridge, IBC solo machine bridge, Chainbridge [CS].
Milestone 3: Mainnet readiness
This milestone’s objective is to enhance security and users’ accessibility to Ethermint, and stress-test the network before the mainnet launch.
- Relayer Integration: While the Ethermint migration to the SDK Stargate version supports IBC fungible token transfers on the app level, additional setup and integration is required to the IBC relayers to enable compatibility with Ethermint fully. The team will integrate the Ethermint keys and the remaining pieces to the relayer for full IBC support.
- Multisig Support: Currently, only legacy secp256k1 amino multisig keys are supported on the SDK. We will add ethereum key multisigs on Ethermint to make them compatible with other Cosmos SDK applications.
- Ledger Support: The team will perform an assessment of the current Cosmos and Ethereum ledger device applications to test their compatibility with Ethermint. If the keys or signing is not supported, the team will coordinate with ZondaX, the Ledger team, and other key partners to integrate the patches to the corresponding apps.
- Simulations: fuzz transaction testing for Ethermint and the EVM module. This will be done through the implementation of simulations and the manticore smart contract execution analysis tool.
Milestone 4: Mainnet launch
This milestone aims to provide support and coordination across the Cosmos community to ensure a safe and successful launch of the Ethermint mainnet.
- Incentivized Testnet: Planification, coordination and launch of the upcoming Ethermint’s incentivized testnet: Game of Ethermint.
- Support Mainnet launch: The team will support Ethermint’s mainnet launch by coordinating with key stakeholders, ecosystem partners, validators, community, etc. [CS]
Ongoing tasks
Below are hard commitment items that are required for a successful launch but don’t fit into any particular milestone as they are recurring over the whole development period.
- Core Ethermint repository maintenance: The team will commit to review community contributions and engage with issues and discussions regarding bugs and feature requests in the core codebase.
- Coordination with Cosmos SDK core team: Since the Ethermint codebase uses a lot of custom functionality (keys,
AnteHandler
, modular servers, etc) some changes/patches will need to be upstreamed to the Cosmos SDK to ensure modularity and non-breakingness. - Client support: Develop partnerships with exchanges and wallets to support Ethermint through the Ethereum-compatible JSON-RPC or the gRPC services from the SDK since day one.
- Community support: Respond and support the community inquiries on Discord and other relevant channels.
- Security Audit: perform an internal and a third-party security audit prior to launch.
- Bug bounty: Coordinate a bug bounty program for the EVM module and the JSON-RPC server prior to launch.
Soft Commitments
The soft commitments are additional features and improvements that the team is willing to pick up after the mainnet launch, subject to successful product-market-fit metrics. The team will define the prioritization of these tasks at the appropriate time.
Intrarelayer and module contracts
These items enable Ethermint smart contracts to communicate with the SDK module so developers can explore and develop new functionalities that aren’t possible in the DeFi and blockchain space today.
- Intrarelayer: As mentioned in Federico’s talk on Interchain Conversations 2020, a cosmos account’s tokens (such as photon) suffer the same issue as ETH in the sense that they are not ERC20 compatible. Our team will implement an intrarelayer (i.e SDK module to EVM smart contract interface) process and tx mechanism so that users can use it.
- Staking and Slashing Smart Contracts: Create and develop staking and slashing smart contracts that can interoperate with the corresponding modules so that users can use their staking token as collateral for DeFi.
- Liquid Staking: Develop a liquid staking implementation using an ERC20 representation of Ethermint’s PHOTONs.
- IBC-compatible smart contracts: Create IBC compatible smart contracts tokens to be transferred out from Ethermint’s EVM to other chains.
- NFT interoperability: develop interoperability solutions for Ethereum NFTs that live on Ethermint to be interoperable with either an x/nft module on Ethermint or other chains via IBC and bridges.
Advanced interoperability
Ethermint plans to support advanced interoperability solutions for smart contracts to allow users and developers to access liquidity from any EVM-compatible chains. Developers will be able to use the composability and security of Ethermint to interact with and build on top of other smart contracts in the ecosystem.
- EVM interoperability: ICS standard for EVM interoperability through IBC between two BFT chains compatible with the EVM.
- Smart contract interoperability: interoperability between smart contract platforms (eg: wasm).
- Shared security model: The project intends to contribute to the shared security implementation process and evaluate the migration to this model by turning Ethermint into a follower chain of the Cosmos Hub’s validator set (leader chain).
Enterprise EVM Chains
Ethermint is positioned to gain a prominent market share by supporting enterprise use cases that require fast finality and interoperability with public chains. Enterprises will be able to use Ethermint’s EVM smart contracts or launch their dedicated and sovereign Ethermint chain to anchor liquidity from the Cosmos Hub and interoperate with Ethereum.
- Ethereum Enterprise Alliance (EEA) Specification: The team will evaluate and integrate the corresponding components to the JSON-RPC and the EVM module to make Ethermint an EEA compatible client according to the specification.
Additional EIPs
By supporting EIPs 712 and 1559, Ethermint users will be able to have custom messages from Metamask and adjusted fees.
- EIP 712 compatibility: Structured message signing support for transactions on Ethermint.
- EIP 1559: Research and implement an in-protocol implementation for EIP1559’s adjusted fees on the Cosmos SDK that can be used on Ethermint.
Alternative EVMs
Inspired by the modularity of the Cosmos SDK, we want to be able to support additional go-ethereum implementations for the evm module so that developers have the flexibility to use whatever EVM they prefer.
- Turbo Geth compatibility research: study compatibility of Turbo Geth with Ethermint. Turbo geth was initially the original Ethereum client chosen for Ethermint. Since the project has archived maturity, the team will revisit the present compatibility with Ethermint and the EVM module. The research will also include benchmarks against the go-ethereum client on Ethermint.
- Turbo Geth compatible EVM implementation: If the addition of Turbo Geth support increases performance significantly, the partners will integrate Turbo Geth to the EVM module in such a way that users can choose which client (turbo-geth or go-ethereum) to use.
- Eth2 compatibility research: research compatibility of Ethermint’s EVM module with Eth2 Prysm Golang client.
- Eth2 compatibility implementation: Create a separate evm2 module, to be fully compatible with Eth2.
- Eth2 interoperability research: research interoperability of Ethermint evm2 module with Eth2 either by implementing a bridge or an IBC application module.
- Eth2 interoperability implementation: If necessary, create an implementation of an interoperability solution with Eth2.
Partnerships and Integrations
The team will support many Ethereum tool integrations that are crucial for decentralized service providers and user adoption.
- Integration with query services: integration with The Graph and other chain analytics systems.
- Fiat onramps: develop partnerships for fiat onramps to Ethermint.
Go-to-Market Support
We don’t think isolated development efforts will guarantee user and developer adoption… Launching any successful network requires a sophisticated go-to-market strategy with significant adoption on Day 1. Tharsis will support these efforts in collaboration with other stakeholders, to ensure a meaningful and robust network launch.
- Fair Launch: Work with Ethermint stakeholders to do a fair launch of the network with proper genesis allocation to past, current, and future collaborators.
- Strategic Partnership: Launch the network with a strategic partner: we are currently in talks to launch Ethermint with a strategic partner that will bring in >250,000 user wallets into Ethermint on day 1. We also plan to onboard and partner with other Ethereum projects looking to migrate to L2 chains to serve their users better.
- Liquidity management: Ensure liquidity of the network by working and providing technical support to exchange partners.
- Customer support: Coordinate with projects that wish to integrate with Ethermint.
As mentioned above, we expect to deliver a fully compatible Ethermint chain with Ethereum by Q4 2021 (6 to 9 mo from this proposal’s approval).
Long-term sustainability
Establishing a self-sufficient and independent chain with dedicated teams requires a well-thought approach to carry the protocol development long term. The team is committed to building a self-sustaining strategy to maintain Ethermint.
Engineering and Development
Tharsis will collaborate with existing Ethermint stakeholders to ensure the proper allocation of engineering resources and project management personnel. The team will also be in charge of building educational resources for onboarding contributors and secure development partnerships with software companies interested in utilizing Ethermint.
Funding
Tharsis commits to raising capital for the community treasury to provide working capital for hiring talent and strategic partnerships. The Tharsis team will use its best efforts to secure commercial agreements and partnerships to increase the Ethermint chain’s adoption and its codebase components.
Community and Governance
The stakeholders commit to develop and foster the Ethermint community through developer relationships and marketing efforts. Tharsis will ensure that governance procedures are in place to vote on treasury allocation proposals, update the chain’s parameters, and signal interest for new features and improvements.
Conclusion
With this proposal, Tharsis plans to expedite the Ethermint chain’s development and launch the network by Q4 2021. Ethermint will be the first EVM-compatible chain on Cosmos that will be fully interoperable with other BFT and EVM chains via IBC and the Gravity bridge.
By creating and envisioning this long-term roadmap, we believe Ethermint can act as the vital component of the Interchain and serve as the gateway between the Ethereum and Cosmos ecosystems: The Ethermint launch will combine the Cosmos and Ethereum communities and provide new economic opportunities for millions of users.