What is LayerZero?
LayerZero is an immutable, censorship-resistant, and permissionless smart contract protocol that enables anyone on a blockchain to send, verify, and execute messages on a supported destination network.
Before LayerZero
Before LayerZero, to send anything to a new chain, most dApps used some type of monolithic bridge:
Centralized Provider: a centralized entity, manually delivering messages to the destination chain.
Collection of Signers: a collection of different signers which verify the message before delivering.
Middlechain Bridge: a blockchain which routes all messages through the hub chain, inheriting the security of the middlechain.
While each verifier network came with trade-offs, all suffered from one common problem: a single verifier network determined which messages would be delivered on the destination chain.
When that security failed, whether due to centralization, a backdoor in the signer clients, the middlechain lacking client diversity, or upgradeable contracts, every application built on top of that verifier network was exposed.
Solution: Immutable Contracts
To send and receive messages on a target blockchain, a non-upgradeable LayerZero Endpoint contract must be deployed to that chain.
This Endpoint contract acts as the entry and exit point for the protocol, enabling applications and users to:
Send messages from the source blockchain (
Endpoint.send
).Configure application security (
Endpoint.setConfig
).Configure execution settings (
Endpoint.setConfig
).Quote cross-chain transaction gas costs (
Endpoint.quote
).Receive messages on the destination chain (
Endpoint.lzReceive
).Debug and retry failed messages (
Endpoint.lzReceive
).
This Endpoint interface is used in both the Omnichain Application (OApp) and Omnichain Fungible Token (OFT) Standard, and can be extended by any smart contract needing to send messages to a destination chain.
The LayerZero Endpoint provides users a predictable, stable interface for sending arbitrary data, external function calls, and tokens.
See the currently supported chains that LayerZero has deployed to here.
Solution: Modular Security
LayerZero allows applications to configure any number and type of decentralized verifier networks (DVNs) to verify their cross-chain messages.
Instead of every application depending on the same verifier network, each application now has a unique verifier configuration called a Security Stack, allowing developers to maintain access controls on arguably the most important part of their application.
New verifier networks can be added at anytime by the application owner or with specific access-controls, future-proofing cross-chain applications to the latest and greatest verification techniques.
See the current list of decentralized verifier networks (DVNs) here.
Solution: Permissionless Execution
Because anyone can interact with the LayerZero Endpoint on the destination chain, LayerZero offers permissionless message execution.
Once a message has been verified by an application's chosen decentralized verifier networks (DVNs), that message can be executed by calling the Endpoint's lzReceive
method.
In most cases, this execution is done automatically by an application's configured Executor, a production asset run in the ecosystem which automatically delivers messages after verification.
This Executor fully abstracts gas on the destination chain, allowing users to pay for gas only using the source chain's gas token, and add specific execution options for the cross-chain message.
Anyone can develop and run their own Executor, and should a configured Executor ever disappear, these messages can still be permissionlessly executed at anytime.
Getting Started with LayerZero
To start building on LayerZero V2, read the following: