September 19, 2023

Securing cross-chain communication from Ethereum to the Internet Computer with an on-chain Light Client

Subscribe to our newsletter

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.

What's a Light Client and Helios?

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.

Why a Light Client on the ICP?

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.

Experience from Porting Helios on the ICP

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.

How to Use It?

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.

Summary

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. 

Subscribe to news from us

to receive company news, client cases and technical articles on the latest applications of blockchain and web3.
Thank you! Please verify your subscription by clicking on the link we've sent you.
Oops! Something went wrong while submitting the form.