# Arbitrum vs Optimism vs zkSync — L2 Comparison for Developers
En 2026, les Layer 2 Ethereum ne sont plus optionnels : ils sont devenus le standard pour deployer des applications scalables et economiques. Arbitrum, Optimism et zkSync dominent le marche avec des approches radicalement differentes.
Vue d'Ensemble : Optimistic vs Zero-Knowledge
Optimistic Rollups : Arbitrum & Optimism
Principe : Assume que les transactions sont valides par defaut, avec une periode de challenge de 7 jours.
Avantages :
- EVM-compatible (quasi-identique a Ethereum)
- Facile a porter des contrats existants
- Preuves de fraude simples
Inconvenients :
- Periode de retrait de 7 jours vers L1
- Pas de finalite immediate
- Securite basee sur au moins un validateur honnete
ZK-Rollups : zkSync
Principe : Genere des preuves cryptographiques (ZK-SNARK) validant mathematiquement chaque batch de transactions.
Avantages :
- Finalite quasi-immediate (minutes)
- Retraits rapides vers L1 (quelques heures)
- Securite cryptographique pure
Inconvenients :
- Generation de preuves couteuse en compute
- EVM compatibility partielle (zkEVM en evolution)
- Courbe d'apprentissage plus raide
Architecture Technique
Arbitrum : Optimistic Rollup avec Nitro
Arbitrum utilise le stack Nitro depuis 2022, une rewrite complete en Go avec WASM.
Caracteristiques :
- Sequencer : Centralise (Offchain Labs), decentralisation prevue 2026
- Execution : WASM-based (compile le bytecode EVM vers WASM)
- Fraud proofs : Interactive multi-round (minimise le cout L1)
- Finality : 7 jours pour retrait L1, quasi-immediate sur L2
Stack technique :
Arbitrum Nitro Stack:
┌─────────────────────────────┐
│ EVM-compatible Interface │
├─────────────────────────────┤
│ Geth Core (modifie) │
├─────────────────────────────┤
│ WASM Execution Engine │
├─────────────────────────────┤
│ Sequencer (Go) │
├─────────────────────────────┤
│ Batch Poster → L1 │
└─────────────────────────────┘
Code migration :
// Contrat Ethereum → Arbitrum : 99% compatible
contract MyDApp {
// AUCUNE modification necessaire dans 99% des cas
function transfer(address to, uint256 amount) external {
// Fonctionne tel quel sur Arbitrum
_transfer(msg.sender, to, amount);
}
// Seules exceptions : opcodes specifiques L1 (DIFFICULTY, COINBASE)
// Arbitrum retourne des valeurs adaptees
}
Optimism : Optimistic Rollup avec Bedrock
Optimism a lance Bedrock en 2023, une architecture modulaire inspiree du design Ethereum.
Caracteristiques :
- Sequencer : Centralise (Optimism Foundation), decentralisation OP Stack en cours
- Execution : EVM quasi-identique (fork de Geth)
- Fraud proofs : Single-round (plus simple mais plus couteux)
- Finality : 7 jours pour retrait L1
OP Stack : Modularite
OP Stack Architecture:
┌─────────────────────────────┐
│ DA Layer (Ethereum/Celestia)│
├─────────────────────────────┤
│ Execution (EVM/custom) │
├─────────────────────────────┤
│ Settlement (L1 contracts) │
├─────────────────────────────┤
│ Sequencing (centralized) │
└─────────────────────────────┘
Particularite : L'OP Stack est concu pour creer des L2 custom (voir Base de Coinbase, Zora Network).
Code migration :
// Ethereum → Optimism : 100% compatible
contract DeFiProtocol {
// Code identique, ZERO modification
function deposit() external payable {
balances[msg.sender] += msg.value;
}
// Optimism ajoute des precompiles L2-specific pour cross-chain messaging
function withdrawToL1(uint256 amount) external {
// Utilise le bridge natif Optimism
IL2StandardBridge(0x4200000000000000000000000000000000000010)
.withdrawTo(L1_TOKEN, msg.sender, amount, 0, "");
}
}
zkSync Era : zkEVM avec ZK-SNARK
zkSync Era (v2.0 lance en 2023) est un zkEVM Type 4 qui compile Solidity vers un bytecode custom optimise pour la generation de preuves.
Caracteristiques :
- Sequencer : Centralise (Matter Labs), decentralisation roadmap 2026-2027
- Execution : zkEVM (pas 100% EVM-equivalent)
- Proofs : ZK-SNARK (PLONK), generation off-chain
- Finality : 15-30 min pour finality cryptographique, retraits L1 en ~4h
Architecture ZK :
zkSync Era Stack:
┌─────────────────────────────┐
│ Solidity Compiler │
├─────────────────────────────┤
│ zkEVM Bytecode │
├─────────────────────────────┤
│ Prover (PLONK) │
├─────────────────────────────┤
│ Sequencer + Batch │
├─────────────────────────────┤
│ L1 Verifier Contract │
└─────────────────────────────┘
Code migration :
// Ethereum → zkSync : 95% compatible, quelques gotchas
contract NFTContract {
// Compatible
function mint(address to, uint256 tokenId) external {
_mint(to, tokenId);
}
// ATTENTION : certaines bibliotheques assembly ne fonctionnent pas
function unsafeOperation() external {
assembly {
// Certains opcodes EVM non supportes (ex: SELFDESTRUCT, CALLCODE)
// Verifier la doc zkSync avant deploiement
}
}
}
Gotchas zkSync :
SELFDESTRUCTnon supporte
CALLCODEnon supporte
- Gas model different (comptabilise la generation de preuves)
- Certaines precompiles manquantes
Comparaison des Performances
Couts en Gas (Mars 2026)
| Operation | Arbitrum | Optimism | zkSync | Ethereum L1 |
|-----------|----------|----------|--------|-------------|
| ETH Transfer | $0.02 | $0.03 | $0.05 | $3.50 |
| ERC-20 Transfer | $0.08 | $0.10 | $0.12 | $8.00 |
| Uniswap Swap | $0.40 | $0.50 | $0.60 | $25.00 |
| NFT Mint | $0.30 | $0.35 | $0.45 | $18.00 |
Analyse :
- Arbitrum reste le plus economique grace a l'optimisation WASM
- zkSync a un leger overhead du a la generation de preuves
- Tous sont 50-100x moins chers qu'Ethereum L1
Vitesse de Transaction
| Metrique | Arbitrum | Optimism | zkSync |
|----------|----------|----------|--------|
| Block time | ~0.25s | ~2s | ~0.5s |
| Soft finality | Immediate | Immediate | Immediate |
| Hard finality | 7 jours | 7 jours | 15-30 min |
| Retrait L1 | 7 jours | 7 jours | 3-4h |
Avantage zkSync : La finality cryptographique permet des retraits beaucoup plus rapides vers L1.
Throughput
| Chain | TPS Theorique | TPS Actuel (2026) |
|-------|---------------|-------------------|
| Arbitrum | ~40,000 | ~2,000-4,000 |
| Optimism | ~4,000 | ~500-1,000 |
| zkSync | ~20,000 | ~1,500-2,500 |
| Ethereum | 15-30 | 15-20 |
Experience Developpeur
Arbitrum : Quasi-Identique a Ethereum
Setup :
// hardhat.config.js
networks: {
arbitrum: {
url: "https://arb1.arbitrum.io/rpc",
chainId: 42161,
// Aucune config speciale necessaire
}
}
Deploiement :
# Deploy sur Arbitrum = deploy sur Ethereum
npx hardhat run scripts/deploy.js --network arbitrum
Tools :
- Hardhat : Support natif
- Foundry : Support complet
- Remix : Plugin Arbitrum
- Etherscan : Arbiscan (interface identique)
Learning curve : Quasi-nulle si vous connaissez Ethereum.
Optimism : Identique avec Cross-Chain Messaging
Setup :
// hardhat.config.js
networks: {
optimism: {
url: "https://mainnet.optimism.io",
chainId: 10,
}
}
Cross-chain messaging :
// Envoyer un message depuis L1 vers L2
interface ICrossDomainMessenger {
function sendMessage(
address _target,
bytes calldata _message,
uint32 _gasLimit
) external;
}
// Sur L1
function bridgeToL2(uint256 amount) external {
messenger.sendMessage(
L2_CONTRACT,
abi.encodeCall(IL2Contract.receiveFromL1, (msg.sender, amount)),
1_000_000
);
}
Tools :
- Hardhat : Plugin @eth-optimism
- Foundry : Support complet
- Superchain Explorer (multi-chain)
Learning curve : Faible, ajoute juste la comprehension du bridge.
zkSync : Nouveau Tooling
Setup :
// hardhat.config.js
import "@matterlabs/hardhat-zksync-deploy";
import "@matterlabs/hardhat-zksync-solc";
zksolc: {
version: "1.3.22",
compilerSource: "binary",
}
Deploiement specifique :
// deploy/deploy.ts
import { Wallet, Provider } from "zksync-web3";
import { Deployer } from "@matterlabs/hardhat-zksync-deploy";
async function main() {
const provider = new Provider("https://mainnet.era.zksync.io");
const wallet = new Wallet(PRIVATE_KEY, provider);
const deployer = new Deployer(hre, wallet);
const artifact = await deployer.loadArtifact("MyContract");
const contract = await deployer.deploy(artifact, []);
}
Tools specifiques :
- zksolc compiler (remplace solc)
- zksync-web3.js (remplace ethers.js standard)
- zkSync Explorer
Learning curve : Moyenne, necessite d'apprendre le tooling zkSync.
Ecosysteme et TVL
Arbitrum : Le Leader
TVL (Mars 2026) : ~$6.5B
Protocoles majeurs :
- GMX (DEX perp leader)
- Camelot (DEX)
- Radiant Capital (lending)
- Treasure DAO (gaming)
Points forts :
- Plus gros ecosysteme DeFi L2
- Support de tous les wallets
- Liquidite profonde
Optimism : Le Modulaire
TVL (Mars 2026) : ~$3.2B
Protocoles majeurs :
- Velodrome (DEX)
- Aave (lending)
- Synthetix (natif Optimism depuis 2021)
Points forts :
- OP Stack (Base, Zora, Worldcoin)
- Retroactive Public Goods Funding
- Governance forte avec OP token
zkSync : Le Challenger
TVL (Mars 2026) : ~$1.8B
Protocoles majeurs :
- Mute.io (DEX)
- zkSync Name Service
- Adoption gaming forte
Points forts :
- Technologie ZK la plus avancee
- Retraits rapides
- Hyperchains (L3s custom)
Developpement Multi-Chain
Si vous visez plusieurs L2, voici une strategie :
// Abstract base contract
abstract contract CrossChainDApp {
// Logique commune
mapping(address => uint256) public balances;
function deposit() external payable {
balances[msg.sender] += msg.value;
}
// Override par chain si necessaire
function _bridgeToL1(uint256 amount) internal virtual;
}
// Implementation Arbitrum
contract ArbitrumDApp is CrossChainDApp {
function _bridgeToL1(uint256 amount) internal override {
// Utilise Arbitrum bridge
}
}
// Implementation Optimism
contract OptimismDApp is CrossChainDApp {
function _bridgeToL1(uint256 amount) internal override {
// Utilise Optimism bridge
}
}
Securite et Risques
Arbitrum
- Sequencer centralized : Single point of failure (force-include disponible)
- Fraud proofs : Pas encore deployes sur mainnet (en test)
- Audits : Multiples audits Trail of Bits, OpenZeppelin
Optimism
- Sequencer centralized : Meme risque
- Fraud proofs : En cours de deploiement (fault proofs)
- Audits : Audits reguliers, bug bounty $2M
zkSync
- Sequencer centralized : Meme risque
- Prover centralized : Matter Labs genere toutes les preuves
- Bugs zkEVM : Technologie recente, surface d'attaque differente
- Audits : Audits intensifs de la cryptographie
Conseil : Tous ont un niveau de centralisation actuel, mais sont sur des roadmaps de decentralisation.
Quelle L2 Choisir ?
Choisissez Arbitrum si :
- Vous voulez la meilleure compatibilite EVM
- Vous visez le plus gros ecosysteme DeFi
- Vous voulez les frais les plus bas
- Vous portez un contrat Ethereum existant
Choisissez Optimism si :
- Vous voulez faire partie de la Superchain (OP Stack)
- Vous appreciez la gouvernance et les public goods
- Vous developpez un L2 custom (fork l'OP Stack)
- Vous voulez la meilleure documentation
Choisissez zkSync si :
- Vous avez besoin de retraits L1 rapides
- Vous voulez la meilleure securite cryptographique
- Vous developpez pour le gaming/mass adoption
- Vous etes pret a adopter un tooling different
Recommandation 2026
Pour la plupart des projets : Deployer sur Arbitrum ET Optimism avec le meme codebase. Les deux sont EVM-identiques, donc le cout marginal est faible.
Pour les jeux et apps grand public : zkSync offre une UX superieure grace aux retraits rapides.
Pour les L2 custom : OP Stack est le choix evident (voir Base qui a 50M+ utilisateurs actifs).
Sur Solingo, vous pouvez experimenter avec les trois L2 dans notre environnement interactif et comprendre les nuances de chacun avant de deployer en production.