# Arbitrum vs Optimism vs zkSync — Comparaison L2 pour Développeurs
En 2026, les Layer 2 Ethereum ne sont plus optionnels : ils sont devenus le standard pour déployer des applications scalables et économiques. Arbitrum, Optimism et zkSync dominent le marché avec des approches radicalement différentes.
Vue d'Ensemble : Optimistic vs Zero-Knowledge
Optimistic Rollups : Arbitrum & Optimism
Principe : Assume que les transactions sont valides par défaut, avec une période de challenge de 7 jours.
Avantages :
- EVM-compatible (quasi-identique à Ethereum)
- Facile à porter des contrats existants
- Preuves de fraude simples
Inconvénients :
- Période de retrait de 7 jours vers L1
- Pas de finalité immédiate
- Sécurité basée sur au moins un validateur honnête
ZK-Rollups : zkSync
Principe : Génère des preuves cryptographiques (ZK-SNARK) validant mathématiquement chaque batch de transactions.
Avantages :
- Finalité quasi-immédiate (minutes)
- Retraits rapides vers L1 (quelques heures)
- Sécurité cryptographique pure
Inconvénients :
- Génération de preuves coûteuse en compute
- EVM compatibility partielle (zkEVM en évolution)
- Courbe d'apprentissage plus raide
Architecture Technique
Arbitrum : Optimistic Rollup avec Nitro
Arbitrum utilise le stack Nitro depuis 2022, une rewrite complète en Go avec WASM.
Caractéristiques :
- Sequencer : Centralisé (Offchain Labs), décentralisation prévue 2026
- Execution : WASM-based (compile le bytecode EVM vers WASM)
- Fraud proofs : Interactive multi-round (minimise le coût L1)
- Finality : 7 jours pour retrait L1, quasi-immédiate sur L2
Stack technique :
Arbitrum Nitro Stack:
┌─────────────────────────────┐
│ EVM-compatible Interface │
├─────────────────────────────┤
│ Geth Core (modifié) │
├─────────────────────────────┤
│ WASM Execution Engine │
├─────────────────────────────┤
│ Sequencer (Go) │
├─────────────────────────────┤
│ Batch Poster → L1 │
└─────────────────────────────┘
Code migration :
// Contrat Ethereum → Arbitrum : 99% compatible
contract MyDApp {
// AUCUNE modification nécessaire dans 99% des cas
function transfer(address to, uint256 amount) external {
// Fonctionne tel quel sur Arbitrum
_transfer(msg.sender, to, amount);
}
// Seules exceptions : opcodes spécifiques L1 (DIFFICULTY, COINBASE)
// Arbitrum retourne des valeurs adaptées
}
Optimism : Optimistic Rollup avec Bedrock
Optimism a lancé Bedrock en 2023, une architecture modulaire inspirée du design Ethereum.
Caractéristiques :
- Sequencer : Centralisé (Optimism Foundation), décentralisation OP Stack en cours
- Execution : EVM quasi-identique (fork de Geth)
- Fraud proofs : Single-round (plus simple mais plus coûteux)
- Finality : 7 jours pour retrait L1
OP Stack : Modularité
OP Stack Architecture:
┌─────────────────────────────┐
│ DA Layer (Ethereum/Celestia)│
├─────────────────────────────┤
│ Execution (EVM/custom) │
├─────────────────────────────┤
│ Settlement (L1 contracts) │
├─────────────────────────────┤
│ Sequencing (centralized) │
└─────────────────────────────┘
Particularité : L'OP Stack est conçu pour créer 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 lancé en 2023) est un zkEVM Type 4 qui compile Solidity vers un bytecode custom optimisé pour la génération de preuves.
Caractéristiques :
- Sequencer : Centralisé (Matter Labs), décentralisation roadmap 2026-2027
- Execution : zkEVM (pas 100% EVM-équivalent)
- Proofs : ZK-SNARK (PLONK), génération 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 bibliothèques assembly ne fonctionnent pas
function unsafeOperation() external {
assembly {
// Certains opcodes EVM non supportés (ex: SELFDESTRUCT, CALLCODE)
// Vérifier la doc zkSync avant déploiement
}
}
}
Gotchas zkSync :
SELFDESTRUCTnon supporté
CALLCODEnon supporté
- Gas model différent (comptabilise la génération de preuves)
- Certaines precompiles manquantes
Comparaison des Performances
Coûts 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 économique grâce à l'optimisation WASM
- zkSync a un léger overhead dû à la génération de preuves
- Tous sont 50-100x moins chers qu'Ethereum L1
Vitesse de Transaction
| Métrique | Arbitrum | Optimism | zkSync |
|----------|----------|----------|--------|
| Block time | ~0.25s | ~2s | ~0.5s |
| Soft finality | Immédiate | Immédiate | Immédiate |
| 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 Théorique | 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 |
Expérience Développeur
Arbitrum : Quasi-Identique à Ethereum
Setup :
// hardhat.config.js
networks: {
arbitrum: {
url: "https://arb1.arbitrum.io/rpc",
chainId: 42161,
// Aucune config spéciale nécessaire
}
}
Déploiement :
# 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 compréhension 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",
}
Déploiement spécifique :
// 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 spécifiques :
- zksolc compiler (remplace solc)
- zksync-web3.js (remplace ethers.js standard)
- zkSync Explorer
Learning curve : Moyenne, nécessite d'apprendre le tooling zkSync.
Écosystème 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 écosystème DeFi L2
- Support de tous les wallets
- Liquidité 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
- Gouvernance 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 avancée
- Retraits rapides
- Hyperchains (L3s custom)
Développement Multi-Chain
Si vous visez plusieurs L2, voici une stratégie :
// 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 nécessaire
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
}
}
Sécurité et Risques
Arbitrum
- Sequencer centralisé : Single point of failure (force-include disponible)
- Fraud proofs : Pas encore déployés sur mainnet (en test)
- Audits : Multiples audits Trail of Bits, OpenZeppelin
Optimism
- Sequencer centralisé : Même risque
- Fraud proofs : En cours de déploiement (fault proofs)
- Audits : Audits réguliers, bug bounty $2M
zkSync
- Sequencer centralisé : Même risque
- Prover centralisé : Matter Labs génère toutes les preuves
- Bugs zkEVM : Technologie récente, surface d'attaque différente
- Audits : Audits intensifs de la cryptographie
Conseil : Tous ont un niveau de centralisation actuel, mais sont sur des roadmaps de décentralisation.
Quelle L2 Choisir ?
Choisissez Arbitrum si :
- Vous voulez la meilleure compatibilité EVM
- Vous visez le plus gros écosystème 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 appréciez la gouvernance et les public goods
- Vous développez 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 sécurité cryptographique
- Vous développez pour le gaming/mass adoption
- Vous êtes prêt à adopter un tooling différent
Recommandation 2026
Pour la plupart des projets : Déployer sur Arbitrum ET Optimism avec le même codebase. Les deux sont EVM-identiques, donc le coût marginal est faible.
Pour les jeux et apps grand public : zkSync offre une UX supérieure grâce aux retraits rapides.
Pour les L2 custom : OP Stack est le choix évident (voir Base qui a 50M+ utilisateurs actifs).
Sur Solingo, vous pouvez expérimenter avec les trois L2 dans notre environnement interactif et comprendre les nuances de chacun avant de déployer en production.