1. Objective
This motion proposal is about the efforts of integrating the Internet Computer (IC) with Ethereum, which comprises the following items:
-
Ethereum blockchain integration: Integrating the Internet Computer blockchain with the Ethereum blockchain in a trustless manner, i.e., without using any trusted intermediaries such as bridges. This will enable smart contracts on the Internet Computer to call smart contracts on Ethereum and vice versa.
-
EVM support on the IC: Providing an Ethereum execution environment (EVM) on the Internet Computer to run Solidity-/EVM-based smart contracts on the IC.
This proposal, being one of the R&D roadmap proposals, is different to our usual motion proposals for individual features that have been launched so far because it covers a multi-year strategic roadmap of R&D activities in a specific domain and likely results in multiple features on which we will have separate motion proposals. The proposal expresses the current thinking and intends to trigger a discussion process with the community to refine it towards the work on the individual features of the proposal.
The integration with the Ethereum blockchain and the EVM support on the IC must be aligned with each other in order to reap the most benefits from this strategic line of work.
2. Background
Smart contracts on blockchains like the Internet Computer or Ethereum can call other smart contracts on the same blockchain they are running on, but not on different blockchains. A blockchain is a walled garden in some way that is per se not openly connected with other systems and specifically other blockchains. The reasons behind this are technical and based on how blockchains work: It is not straightforward to deliver calls from a blockchain to another target blockchain and the results back in a trustless manner. Particularly, signing transactions for other blockchains is difficult given the trust model that any single node can be compromised and thus cannot hold private key material required to sign a transaction for the other blockchain it wants to interact with.
Regarding the other problem domain, most of today’s smart contracts are written in Solidity as they have originally targeted Ethereum and the language and surrounding ecosystem are well known by the community. However, Ethereum has become prohibitively expensive for running smart contracts at scale (especially ones with lots of data) due to its lack of scalability and massively increased demand in recent years. Thus, authors of smart contracts are looking for alternative blockchains with lower transaction, storage, and compute costs and possible other advantages like fast transaction finality and high throughput. It is crucial that Solidity-based smart contracts be portable with little effort and without major changes, because those contracts often have been running successfully and have been thoroughly audited and every change may introduce exploitable bugs and should therefore be avoided.
3. Why this is important
The interoperability between different blockchains is of increasing importance: As there is an increasing number of blockchains, the world’s smart contracts are distributed across those blockchains: So far, Ethereum has been the chain with most of the contracts running, but increasingly they have been moving to Layer-2 chains or other Layer-1 chains for lower operational cost. Now that contracts are spread over a diverse landscape of chains, the capability to make inter-blockchain calls and receive back the responses is becoming increasingly important for the world’s future open blockchain ecosystem. A particularly important aspect of integration between different blockchains is the transfer of value between the chains. This is also getting increasingly important now that liquidity is spread over a growing number of blockchains: Ideally, people can hold liquidity on a particular chain and easily transfer it to another chain and utilize it there to earn interest on the tokens. Take as an example Ether, Ethereum’s native currency, and the plurality of other ERC-20 tokens on Ethereum, e.g., those that are wrapped tokens of other cryptocurrencies that have been bridged to Ethereum. All those can be made available on the IC in a trustless manner with the integration between the IC and Ethereum. That is, token holders on Ethereum or on other chains that are bridged to Ethereum could benefit by using their tokens in a wrapped form on the IC and the IC would benefit in terms of a massive potential of liquidity influx from other blockchains. This would leverage the properties of the IC of being massively scalable, having very fast finality, and offering extremely cheap computation compared to other blockchains.
EVM support on the IC is the other aspect of the Ethereum integration that can provide substantial value to both the community and the IC. The IC, once offering an EVM integration, will be the best-suited platform for running Solidity-/EVM-based smart contracts due to its very low cycles cost, fast finality, and unbounded scalability. This will allow smart contract authors to bring their contracts over to the IC and benefit from all those properties the IC offers. This can be done without major modifications to the contracts, i.e., without the risk of introducing bugs or invalidating the audits that have been done.
4. Topics under this project
Ethereum blockchain integration
The basic idea of the integration with the Ethereum blockchain is to perform a trustless integration between the IC and Ethereum blockchains analogous to the Bitcoin integration with the Internet Computer. This integration enables smart contracts on Ethereum to call smart contracts on the Internet Computer and receive the call result as a response and vice versa. This integration will comprise a fully functional cross-chain integration between the Internet Computer and Ethereum, allowing smart contracts on one blockchain to call smart contracts on the respective other chain and thereby create substantial innovation potential. Particularly, Ether will be transferable to smart contracts on the IC and be wrappable for DeFi applications. The same will be true for any ERC-20 token due to the generality of the approach. The integration will leverage threshold cryptography to achieve our trust properties.
EVM support on the IC
The Ethereum Virtual Machine (EVM) is the first VM, in addition to our default Wasm execution environment, that we want to deploy on the IC and an important part of this motion proposal.
EVM support will make it possible to deploy EVM-based smart contracts on the Internet Computer. Having EVM support brings about multiple benefits for the community, such as low cycle costs for running smart contracts, low finalization latency, and network effects of being able to deploy readily-available, time-tested, audited Solidity-based smart contracts, avoiding the liquidity bootstrapping process.
The main technical challenge in this area will be addressing the impedance mismatch between the asynchronous architecture of the Internet Computer and the synchronous EVM.
5. Key milestones
As this is a multi-year R&D motion proposal, it is at the current time not possible to give detailed milestones. We expect that each of the features resulting from this R&D motion proposal will have similar milestones reflecting our engineering process: System design, MVP implementation, extensions to the MVP. The detailed milestones will be defined once the individual features will be worked on.
6. Discussion leads
Dieter Sommer (@dieter.sommer) is driving the proposal, and will be joined by Thomas Locher (@THLO) and Timo Hanke (@timo) for the forum discussions.
7. Why the DFINITY Foundation should make this a long-running R&D project
The functionalities we target with this motion proposal are not straightforward to implement and will likely be developed and rolled out in a staged fashion, starting with an MVP and adding additional functionality in multiple rounds later. We intend to roll out an MVP that provides value as quickly as possible so that our community can benefit from this. We think this is absolutely crucial due to the fast moving domain, particularly in the area of EVM-compatible blockchains. Advanced functionality will be added later on and provide additional value. This approach fits well into a multi-year R&D proposal: It will require original research to tackle the hard problems that are open in terms of their solution,whereas work on problems that merely require significant engineering efforts can be tackled sooner. We also intend to work tightly with our community w.r.t. the features associated with this motion proposal.
8. Skills and Expertise necessary to accomplish this
What we intend to provide as outcome of this motion proposal requires people with a plurality of different advanced skills:
- System design
- System-level and software engineering
- Algorithms, complexity theory
- Probability theory
- Cryptography
- Deep understanding of the IC and Ethereum
- Deep understanding of Internet Computer consensus
- API design
The following teams have been identifier of being involved:
- Research
- Networking
- Consensus
- Message Routing
- Execution
- NNS
- Security
- SDK
9. Open Research questions
We have already identified some of the research questions, the list will likely grow further during the work on the features:
- Trustless blockchain integration between the IC and Ethereum
- Consensus protocol extensions for the trustless integration
- Threshold cryptography
- Security modeling of the system
- Proving security of the system
- Questions related to the advanced system design
- Testing and providing a testing infrastructure for the users of the feature
- Addressing the impedance mismatch between the asynchronous IC and synchronous EVM
10. Examples where community can integrate into project
- Review proposals
- Provide feedback on the dev forum
- Submit NNS proposals
- Review technical designs
- Contribute to technical designs
- Review code
- Contribute code
- Participate in workshops on the initiative or its features
- Help us prioritize for the best benefit of the community
We intend to work closely with the community, particularly on some parts of the source code.
11. What we are asking the community
- Review comments, ask questions, give feedback
- Vote accept or reject on NNS Motion