The Internet Computer (ICP) continues to evolve with sights set on becoming a hub for decentralized applications and services in a multichain world. Chain-key signatures, which are unique to ICP, allow canister smart contracts to sign transactions, while HTTPS outcalls enable them to fetch state from other chains.
To increase the security of the latter for high-value applications, a team from Eiger has worked on porting an Ethereum light client to ICP.
A light client is a specialized piece of software that enables a blockchain node to interact with another blockchain without downloading and validating the entire blockchain's history. Instead, it relies on cryptographic proofs and a limited subset of data to verify transactions and access relevant information. Light clients are designed to be efficient and fast, making them suitable for resource-constrained environments like the Internet Computer.
Helios, a nascent Ethereum light client implemented in Rust, is the centerpiece of this integration. It's a software component that can be integrated into the canister smart contracts on the Internet Computer to enable interactions with the Ethereum blockchain. Helios leverages Merkle proofs and sync committees to efficiently verify Ethereum state and events, eliminating the need for complete blockchain validation. This lightweight approach aligns perfectly with the Internet Computer's architecture and goals.
ICP aims for a native integration with the Ethereum network by running Ethereum nodes co-located with ICP nodes. However, in its current state, the integration is based on JSON-RPC calls to one or several RPC API providers like Infura or Alchemy. Adding an Ethereum light client increases the security of this integration because all data fetched from RPC providers gets cryptographically verified.
ICP provides a powerful WASM-based computing platform. This allows developers to write smart contracts in a variety of programming languages and makes it possible to port applications like Helios, which is implemented in Rust, without having to rewrite the application from scratch.
Still, porting Helios onto the ICP required several significant changes and optimizations to ensure its compatibility and efficiency. Some notable changes include:
These changes were made to adapt Helios to the ICP's unique requirements, making it a suitable component for Ethereum canister on the Internet Computer.
To use the Ethereum canister on the ICP for accessing Ethereum blockchain data, you can follow these steps:
Running and using the Ethereum canister
Running end-to-end canister tests.
Our goal is for the Ethereum canister to provide a comprehensive API for interacting with Ethereum data, so you can refer to the API definition in the candid.did file for more details on available functions and their usage.
The implementation of an Ethereum light client, specifically Helios, on the Internet Computer aims to enhance decentralized applications and services by allowing canisters, apps, services, and smart contracts to independently access Ethereum data, ensuring secure data retrieval from Ethereum. It also showcases the unique capabilities of the Internet Computer and its powerful computing environment which allows running applications incomparable to those of other decentralized platforms.
You can locate the project on our GitHub repository.