đ°ïž Node Operations & Infrastructure
Analyse dense : ExĂ©cution de NĆuds (Full, Archive), RPC (Infura), Staking (PoS, Lido) & MEV (Flashbots).
Qu'est-ce qu'un NĆud ?
Le gardien de la blockchain. Le "serveur" décentralisé. RÎles : Valider, Stocker, Propager. Le réseau P2P.
NĆudP2PValidationTypes de NĆuds
NĆud Complet (Full), NĆud Archive (Archive), et Client LĂ©ger (Light). Le "pruning" et les besoins en stockage.
Full NodeArchive NodeLight ClientL'API du NĆud : JSON-RPC
L'"API" du Web3. Comment les DApps communiquent (lisent) avec la blockchain. `eth_call` vs `eth_sendRawTransaction`.
JSON-RPCAPIeth_callNode-as-a-Service (NaaS)
Le "RPC Problem". Pourquoi Infura & Alchemy existent. Le compromis : Centralisation vs Convenance.
InfuraAlchemyCentralisationLe NĆud Staking (Validateur PoS)
Un nĆud spĂ©cialisĂ©. Le "Validateur" (Client Consensus + ExĂ©cution). RĂ©compenses vs "Slashing" (pĂ©nalitĂ©).
ValidateurProof-of-StakeSlashingOptions de Staking
Solo Staking (32 ETH), Staking-as-a-Service, Pooled Staking (CEX / Centralisé), et Pooled Staking (Décentralisé / Liquide).
Solo StakingPoolsLidoStaking Liquide (Lido & LSTs)
Le "Money Lego" du staking. Lido, le token LST (stETH). Le problÚme de l'illiquidité résolu. Risques systémiques.
LidoLSTstETHDeFiLe "Jeu" Avancé : MEV & Flashbots
Maximal Extractable Value. Front-running, Sandwich Attacks. Proposer-Builder Separation (PBS) et le rĂŽle de Flashbots.
MEVFlashbotsPBSUn **NĆud (Node)** est la brique d'infrastructure la plus fondamentale d'un rĂ©seau dĂ©centralisĂ©. C'est un **ordinateur** (un "serveur") qui exĂ©cute le **logiciel client** de la blockchain (ex: Geth, Prysm pour Ethereum ; Bitcoin Core pour Bitcoin).
Si la blockchain est un "registre public", les nĆuds sont les **gardiens de ce registre**. Ils tĂ©lĂ©chargent, valident et maintiennent collectivement l'unique version de la vĂ©ritĂ©, sans avoir besoin de faire confiance Ă un serveur central.
Les 4 RĂŽles d'un NĆud Complet (Full Node)
- 1. Stocker (Le Registre) :
- Un nĆud tĂ©lĂ©charge et stocke (tout ou partie) de l'historique de la blockchain.
- Il maintient l'**"Ătat Actuel" (World State)** : une base de donnĂ©es (LevelDB) qui contient le solde de chaque compte et le stockage de chaque smart contract.
- 2. Valider (Le Gardien) :
- C'est le rÎle le plus important pour la sécurité.
- Un nĆud **vĂ©rifie indĂ©pendamment** chaque transaction et chaque bloc qu'il reçoit, en fonction des rĂšgles du protocole.
- Il vérifie : "Cette signature est-elle valide ?", "Ce compte a-t-il assez d'ETH ?", "Ce bloc a-t-il un PoW/PoS valide ?", "Ce contrat n'a-t-il pas créé de l'argent ex nihilo ?".
- Si un mineur/validateur malveillant crĂ©e un bloc invalide (ex: un bloc qui se donne 1000 ETH), les nĆuds complets **le rejetteront**. C'est le "pare-feu" de la blockchain.
- 3. Propager (Le Réseau P2P) :
- Un nĆud est connectĂ© Ă d'autres nĆuds ("peers") via le **Gossip Protocol**.
- Lorsqu'il reçoit une nouvelle transaction (du Mempool) ou un nouveau bloc, il le valide (Ătape 2) puis le **propage** Ă ses pairs. C'est ainsi que l'information se diffuse mondialement sans serveur central.
- 4. Servir (L'API) :
- Un nĆud expose une **interface JSON-RPC** (voir 2.1) (gĂ©nĂ©ralement sur le port `8545`).
- C'est cette "API" qui permet aux wallets (Metamask) et aux DApps (via Ethers.js) de **lire** l'état de la blockchain (`eth_call`) et de **soumettre** de nouvelles transactions (`eth_sendRawTransaction`).
Architecture Post-Merge (Ethereum PoS)
Depuis "The Merge" (le passage au Proof-of-Stake), un nĆud Ethereum n'est plus un seul logiciel, mais **deux clients** qui travaillent ensemble :
1. Client d'Exécution (EL - Execution Layer)
- Exemples : Geth (Go), Nethermind (C#), Reth (Rust).
- RĂŽle : GĂšre la "logique" de l'EVM (la machine virtuelle).
- TĂąches :
- Exécute les transactions (le "calcul").
- GĂšre le "World State".
- GĂšre le Mempool (transactions en attente).
- Expose l'API JSON-RPC (pour les DApps).
2. Client de Consensus (CL - Consensus Layer)
- Exemples : Prysm (Go), Lighthouse (Rust), Teku (Java).
- RÎle : GÚre le "consensus" Proof-of-Stake (la sécurité).
- TĂąches :
- Suit la "tĂȘte" de la chaĂźne (PoS).
- Valide les attestations et les blocs des validateurs.
- Communique avec l'EL pour lui dire "Exécute ce bloc".
Tous les nĆuds ne sont pas Ă©gaux. Ils diffĂšrent par la quantitĂ© de donnĂ©es qu'ils stockent, leur niveau de sĂ©curitĂ© (confiance) et leur coĂ»t matĂ©riel.
1. NĆud Complet (Full Node) - "Le Standard"
- RÎle : Le "gardien" de la décentralisation. Télécharge et valide *chaque* transaction et *chaque* bloc.
- Stockage (La ClĂ©) : Un nĆud complet **stocke** l'historique des blocs, mais **"Ă©lague" (prunes)** l'historique des Ă©tats.
- "Pruning" (Ălagage) : Il ne conserve que l'**Ătat Actuel (World State)** et les Ă©tats des ~128 derniers blocs. Il "jette" les Ă©tats intermĂ©diaires (ex: "Quel Ă©tait le solde d'Alice au bloc #5,000,000 ?").
- Taille (Ethereum) : ~1.5 To (Nécessite un SSD NVMe rapide).
- Confiance : 100% "Trustless". Il vĂ©rifie tout lui-mĂȘme.
- Usage : Stakers (Validateurs), DApps (qui ont besoin de l'état actuel), Services RPC.
2. NĆud Archive (Archive Node) - "L'Historien"
- RĂŽle : Un NĆud Complet qui a Ă©tĂ© configurĂ© avec le "flag"
--gcmode archive. - Stockage : Il **NE FAIT PAS** d'élagage (pruning). Il stocke l'**intégralité de l'historique de tous les états** depuis le Bloc Génésis.
- Taille (Ethereum) : Massive. 16 To+ (TĂ©raoctets) et en augmentation rapide. ExtrĂȘmement coĂ»teux.
- Confiance : 100% "Trustless".
- Usage (Critique) :
- Explorateurs de Blocs (Etherscan) : Pour pouvoir répondre à la question "Quel était le solde d'Alice au bloc #5,000,000 ?".
- Plateformes d'Analyse (Dune, TheGraph) : Pour indexer l'historique (l'ETL).
- Outils de "debugging" (débogage) complexes.
3. Client Léger (Light Client) - "Le Consommateur"
- RĂŽle : Un client qui ne participe pas Ă la validation complĂšte.
- Stockage : Il ne tĂ©lĂ©charge **que les En-tĂȘtes de Bloc (Block Headers)** (trĂšs lĂ©ger, quelques Go). Il n'a *pas* l'Ă©tat (les soldes, le stockage) ni le corps des blocs.
- Confiance : "Trust-minimized". Il doit **faire confiance** Ă un NĆud Complet (auquel il se connecte) pour lui *donner* l'Ă©tat.
- SĂ©curitĂ© (SPV) : Il se protĂšge en utilisant les **Arbres de Merkle**. Pour vĂ©rifier son propre solde, il demande au NĆud Complet : "Donne-moi mon solde ET la Preuve de Merkle (Merkle Proof) qui prouve que ce solde est bien inclus dans l'en-tĂȘte de bloc #XXXX que je possĂšde."
- Usage : Wallets Mobiles, Portefeuilles Navigateur (Metamask dans sa configuration "légÚre"), appareils IoT.
Le **JSON-RPC** (Remote Procedure Call) est le "langage" de communication standardisĂ©, l'API, qu'un nĆud Ethereum expose au monde extĂ©rieur. C'est le "pont" entre votre DApp (Ă©crite en Ethers.js) et le NĆud (Ă©crit en Go/Rust).
Il s'agit d'un protocole **sans Ă©tat** (stateless) oĂč un client (votre DApp) envoie une requĂȘte HTTP POST (ou un message WebSocket) contenant un objet JSON, et le NĆud (le serveur RPC) renvoie une rĂ©ponse JSON.
1. Appels de Lecture (Gratuits)
Utilisés pour lire l'état de la blockchain. Ethers.js/web3.py les utilisent pour toutes les fonctions `view` ou `pure`.
Exemple : eth_getBalance
// DApp (via Ethers.js) -> NĆud RPC
// REQUĂTE :
{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": [
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", // (Adresse de Vitalik)
"latest" // (Au dernier bloc)
],
"id": 1
}
// NĆud RPC -> DApp
// RĂPONSE :
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x12A9B113B39A88000" // (Solde en Wei, hexadécimal)
}
Exemple : eth_call (Le plus important)
UtilisĂ© pour *simuler* l'exĂ©cution d'un contrat (ex: `balanceOf(user)`) **sans** crĂ©er de transaction et **sans** payer de Gas. Le nĆud exĂ©cute le code "en local" et renvoie le rĂ©sultat.
// REQUĂTE :
{
"jsonrpc": "2.0",
"method": "eth_call",
"params": [{
"to": "0x6B17...1d0F", // (Contrat DAI)
"data": "0x70a08231000000000000000000000000d8dA...6045"
// ^-- Data: "0x70a08231" (Hash de la fonction "balanceOf(address)")
// + "d8dA...6045" (Argument : adresse de Vitalik)
}, "latest"],
"id": 2
}
// RĂPONSE :
{ "jsonrpc": "2.0", "id": 2, "result": "0x...00a12b..." }
2. Appels d'Ăcriture (Payants)
Un nĆud RPC public (comme Infura) ne dĂ©tient pas votre clĂ© privĂ©e. Il est "trustless". Vous ne pouvez pas lui dire "Envoyez 1 ETH de ma part".
Votre DApp (via Metamask/Ethers.js) doit **signer la transaction localement** (avec la clĂ© privĂ©e), puis envoyer la transaction **brute et signĂ©e** (la "raw transaction") au nĆud RPC. Le nĆud n'a plus qu'Ă la *vĂ©rifier* et la *propager*.
Exemple : eth_sendRawTransaction
// 1. DApp (Ethers.js) + Metamask (Signer)
// - Crée la Tx: { to: "0x...", value: 1 ETH, gasLimit: 21000, ... }
// - Metamask la SIGNE (avec la clé privée) -> "0xf86...abc" (longue string hex)
// 2. DApp -> NĆud RPC
// REQUĂTE :
{
"jsonrpc": "2.0",
"method": "eth_sendRawTransaction",
"params": [
"0xf86...abc" // La transaction brute et signée
],
"id": 3
}
// 3. NĆud RPC -> DApp
// RĂPONSE (immĂ©diate) :
{
"jsonrpc": "2.0",
"id": 3,
"result": "0xe670...192b" // Le HASH de la transaction (le "reçu")
}
// Le nĆud dit: "OK, j'ai reçu votre tx, je la propage au Mempool.
// Voici son ID (hash) pour que vous puissiez la suivre."
Vous ĂȘtes un dĂ©veloppeur de DApp (ex: Uniswap). Votre frontend (React) a besoin de lire l'Ă©tat de la blockchain (via RPC) pour afficher les prix des pools. Quelle est votre source de donnĂ©es ?
1. Le ProblĂšme (Auto-HĂ©bergement d'un NĆud)
Si vous dĂ©cidez de faire tourner votre propre NĆud Complet pour alimenter votre DApp, vous faites face Ă d'Ă©normes dĂ©fis d'infrastructure :
- Coût Matériel (CAPEX) : Vous avez besoin d'un serveur puissant avec un **SSD NVMe de plusieurs Téraoctets** (trÚs cher) et une **connexion fibre** à trÚs haute bande passante.
- Maintenance (OPEX) : Vous devez ĂȘtre un "DevOps" expert. Les clients (Geth, Prysm) nĂ©cessitent des mises Ă jour constantes (parfois urgentes, pour des "hotfix" de sĂ©curitĂ©).
- FiabilitĂ© (Uptime) : Votre DApp a 1 million d'utilisateurs. Votre nĆud Geth plante Ă 3h du matin. Votre DApp est **morte** jusqu'Ă ce que vous vous rĂ©veilliez pour le redĂ©marrer.
- ScalabilitĂ© : 1 million d'utilisateurs = 100 000 requĂȘtes RPC par seconde (RPS). Un *seul* nĆud Geth ne peut pas gĂ©rer cela. Il "tombe" (crash).
2. La Solution : Node-as-a-Service (NaaS)
Exemples : Infura (ConsenSys), Alchemy, QuickNode, Ankr.
Analogie : C'est le **"AWS du Web3"**. Au lieu de gĂ©rer votre propre serveur physique (NĆud), vous louez l'accĂšs Ă une flotte de serveurs gĂ©rĂ©s par un expert.
Architecture (Ex: Infura)
Infura n'est pas "un" nĆud. C'est une architecture complexe :
[ DApp (Ethers.js) ]
|
| (RequĂȘte RPC)
âŒ
[ Load Balancer (Répartiteur de Charge) ]
(https://mainnet.infura.io/v3/API_KEY)
|
|
/-----|-----\
| | |
⌠⌠âŒ
[ NĆud 1 ] [ NĆud 2 ] ... [ NĆud 500 ]
(Geth) (Geth) (Geth)
- API Key : Infura vous donne une clé API. C'est votre "endpoint" RPC.
- Load Balancer : Ce "endpoint" est un rĂ©partiteur de charge qui reçoit votre requĂȘte (ex: `eth_getBalance`) et la redirige vers le nĆud le *moins* occupĂ© de leur flotte de *milliers* de nĆuds Full/Archive.
- Auto-Scaling : Si un nĆud tombe, le load balancer l'exclut. Si le trafic augmente, Infura dĂ©marre de nouveaux nĆuds.
Le Compromis : Le Retour de la Centralisation
- Avantages : Fiabilité (99.99% Uptime), Scalabilité (millions de RPS), Zéro Maintenance.
- Inconvénients ("La Décentralisation en Danger") :
- Point de DĂ©faillance (SPOF) : Si Infura "tombe en panne" (c'est arrivĂ©), ~80% des DApps de l'Ă©cosystĂšme (Metamask, Uniswap, Aave...) tombent en panne en mĂȘme temps.
- Censure : Infura est une entreprise amĂ©ricaine (ConsenSys). Elle *doit* se plier Ă la loi (OFAC). En 2022, Infura a dĂ» bloquer les requĂȘtes RPC provenant d'IPs de certaines juridictions (ex: Iran, CorĂ©e du Nord) et a dĂ» bloquer les requĂȘtes `eth_call` demandant l'Ă©tat du contrat sanctionnĂ© "Tornado Cash".
- Surveillance : Ils voient votre IP, votre adresse de wallet, et toutes les requĂȘtes que vous faites (ils peuvent lier votre IP Ă votre wallet).
Un **NĆud Validateur** (Validator Node) est un **NĆud Complet** (Full Node) qui a une responsabilitĂ© *supplĂ©mentaire* : il participe activement au consensus Proof-of-Stake (PoS).
Le NĆud Complet "normal" (d'Infura, ou le vĂŽtre) est un observateur *passif* qui valide les blocs. Le NĆud Validateur est un participant *actif* qui **crĂ©e et vote** sur les blocs.
Architecture d'un NĆud Validateur (Ethereum)
Pour devenir un validateur "Solo Staker" (voir 3.2), vous avez besoin de **32 ETH** (la caution) et de faire tourner 3 logiciels :
- Client d'Exécution (EL) : (ex: Geth). GÚre l'EVM, le "World State", le Mempool.
- Client de Consensus (CL) : (ex: Prysm). GĂšre le consensus PoS, la tĂȘte de chaĂźne, les attestations P2P.
- Client Validateur (VC - Validator Client) :
- C'est le 3Ăšme logiciel, qui "pilote" le Client de Consensus.
- C'est le **seul** logiciel qui détient les **clés de staking** (les "Signing Keys" du validateur).
- Il reçoit du CL l'ordre : "Tu es choisi pour proposer le bloc #1234". Le VC crée le bloc (via l'EL), le signe (avec sa clé), et le renvoie au CL pour propagation.
2. Incitations (Récompenses)
Un validateur est payĂ© pour faire son travail (ĂȘtre en ligne 24/7, valider, proposer). Les rĂ©compenses proviennent de deux sources :
- 1. RĂ©compenses d'Ămission (Inflation) :
- Le protocole *crée* (minte) de nouveaux ETH à chaque "epoch" (~6.4 min) et les distribue aux validateurs qui ont voté (attesté) correctement.
- C'est le "rendement de base" (ex: ~3-4% APY). C'est le paiement pour la *sécurité* du réseau.
- 2. Frais de Transaction (Revenus) :
- "Priority Fees" (Pourboires) : Les frais (le "tip") que les utilisateurs paient (via EIP-1559) pour que leur transaction soit incluse en priorité. Ces frais vont *directement* au Validateur qui a proposé le bloc.
- MEV (Maximal Extractable Value) : (Voir 4.1). Les "bribes" (pots-de-vin) payés par les "Searchers/Builders" (via Flashbots) pour que le Validateur inclue leurs "bundles" (ex: un arbitrage ou un "sandwich attack").
Le revenu total d'un validateur est `RĂ©compenses d'Ămission + Pourboires + MEV`.
3. Risques (La Pénalité : Le "Slashing")
Le "Stake" de 32 ETH est une **caution**. Il garantit que le validateur a un "jeu économique" (skin in the game). Il peut perdre cet argent s'il se comporte mal.
Type 1 : Pénalité (LégÚre) - "Inactivity Leak"
- Faute : Le validateur est **hors-ligne (offline)**. (Ex: panne de courant, bug logiciel).
- Conséquence : Le validateur "fuit" (leaks) une petite partie de son stake, équivalente aux récompenses qu'il *aurait* dû gagner. C'est une petite tape sur les doigts pour l'inciter à revenir en ligne.
Type 2 : Pénalité (SévÚre) - "Slashing"
Exemples : (1) Proposer deux blocs diffĂ©rents pour le *mĂȘme* slot. (2) "Entourer" (Surround Vote) une ancienne attestation.
- Détection : C'est une faute *cryptographiquement prouvable*. Un autre validateur (un "whistleblower") voit les deux messages signés contradictoires et les publie sur la chaßne.
- Conséquence (Le "Slashing") :
- Le protocole **détruit (brûle)** immédiatement une partie du stake du validateur (ex: 1/32Úme, soit 1 ETH).
- Le validateur est "flagué" (marqué) et subit une pénalité de "fuite" (leak) *massive* jusqu'à ce qu'il soit éjecté (ce qui peut lui coûter 50% ou plus de son stake).
- Le "whistleblower" (le dénonciateur) reçoit une récompense (une partie de l'ETH slashé).
- Objectif : Rendre une attaque (ex: 51%) économiquement suicidaire. L'attaquant perdrait des milliards de dollars (son stake) s'il était détecté.
Le "Solo Staking" (gérer son propre validateur) nécessite 32 ETH (trÚs cher) et une expertise technique 24/7 (uptime). La plupart des utilisateurs choisissent des solutions de "Staking Délégué" ou "Poolé".
1. Solo Staking (L'Idéal de la Décentralisation)
- Acteur : Vous (expert technique).
- Capital Requis : 32 ETH.
- Mécanisme : Vous achetez un serveur (ex: NUC) et vous exécutez vos clients (Geth, Prysm, VC) chez vous (ou sur AWS/Hetzner).
- Avantages :
- **100% "Trustless" & Non-Custodial.**
- Vous recevez **100% des rĂ©compenses** (Ămission + Frais + MEV).
- Vous renforcez la **décentralisation** du réseau.
- Inconvénients :
- BarriÚre à l'entrée (32 ETH).
- Expertise technique requise (maintenance, mises Ă jour).
- Vous ĂȘtes 100% responsable du "slashing" (si votre machine est mal configurĂ©e).
- **Illiquide :** Vos 32 ETH sont bloqués (illiquides) tant que vous validez.
2. Staking-as-a-Service (SaaS)
- Acteur : Vous + un service (ex: Kiln, BloxStaking, Firedancer).
- Capital Requis : 32 ETH.
- Mécanisme : Vous avez les 32 ETH. Vous *générez* vos clés de staking, mais vous **déléguez** la *tùche d'exécution* (le "node ops") à une entreprise spécialisée.
- Avantages :
- **Non-Custodial** (vous détenez la clé de *retrait*, l'entreprise ne détient que la clé de *signature*).
- Pas de maux de tĂȘte techniques (ils gĂšrent l'uptime 24/7).
- Inconvénients :
- Coûteux (le service prend une **commission** sur vos récompenses, ex: 10%).
- Illiquide (vos 32 ETH sont toujours bloqués).
3. Pooled Staking (Centralisé / CEX)
- Acteur : Vous + une Bourse (Binance, Kraken, Coinbase).
- Capital Requis : 0.01 ETH (ou moins).
- Mécanisme : Vous déposez 0.1 ETH sur votre compte "Staking" Binance. Binance "poole" (regroupe) les ETH de 1 million d'utilisateurs, crée des validateurs de 32 ETH, et gÚre tout.
- Avantages :
- **ExtrĂȘmement simple.** (2 clics).
- Accessible (pas de minimum de 32 ETH).
- Inconvénients :
- **Custodial (Risque Maximal) :** "Not your keys, not your coins." Vous donnez vos ETH Ă Binance. Si Binance fait faillite (FTX), vos ETH sont **perdus**.
- Risque de Centralisation : Si 80% des utilisateurs stakent via 3 CEX, ces 3 CEX contrĂŽlent 80% du consensus Ethereum (risque de censure).
- Opaque (vous ne savez pas ce qu'ils font avec vos ETH).
4. Pooled Staking (Décentralisé / Liquide)
- Acteur : Vous + un Protocole (Lido, Rocket Pool).
- Capital Requis : 0.01 ETH (ou moins).
- Mécanisme : (Détaillé en 3.3). Vous déposez vos ETH dans un **smart contract** (le pool).
- Avantages :
- Accessible (pas de minimum de 32 ETH).
- **Non-Custodial** (vous détenez un token LST, pas une promesse d'un CEX).
- **LIQUIDE !** C'est l'avantage clé. Vous recevez un "reçu" (ex: stETH) que vous pouvez utiliser en DeFi.
- Inconvénients :
- Risque de Smart Contract : Si le contrat Lido est hacké, tout le pool est drainé.
- Risque de Centralisation (Protocole) : Lido est devenu si dominant (>30% du stake) qu'il représente un risque systémique pour Ethereum (voir 3.3).
Le **Staking Liquide** (Liquid Staking) est la catégorie de DeFi qui a connu la plus forte croissance. Elle résout le problÚme fondamental du Staking PoS : l'**Illiquidité**.
**Le ProblĂšme :** Si vous ĂȘtes un "Solo Staker" (32 ETH), votre capital est **bloquĂ©**. Vous gagnez 3% d'APY, mais vous ne pouvez pas *utiliser* ces 32 ETH. Si une opportunitĂ© DeFi (ex: un airdrop, un pool Ă 50% APY) se prĂ©sente, vous ne pouvez pas y participer. Votre capital est "mort".
1. Mécanisme : Lido ($stETH)
**Lido** est le protocole de Staking Liquide dominant (géré par la DAO Lido).
Le Flux d'Utilisateur :
- 1. DépÎt : Vous (un utilisateur) déposez 10 ETH dans le smart contract "Staking Pool" de Lido.
- 2. Mint (Le "Reçu") : Le contrat Lido **minte** et vous envoie 10 $stETH (Staked ETH) en retour.
Qu'est-ce que le $stETH ? (Token "Rebasing")
- C'est un **LST (Liquid Staking Token)**. C'est un token ERC-20 qui représente votre *part* de l'ETH staké dans Lido.
- Il est "Rebasing" (Ă solde variable). Chaque jour (~24h), le contrat Lido calcule les rĂ©compenses de staking (Ămission + MEV/Frais) gagnĂ©es par *tous* ses validateurs.
- Il distribue ces récompenses à *tous* les détenteurs de stETH en **augmentant leur solde** (un "rebase").
- Si vous avez 10 stETH (APY 3.65%), demain vous aurez 10.001 stETH dans votre wallet (automagiquement).
Le Backend de Lido (Gestion des NĆuds)
- Le contrat Lido (une DAO) gĂšre un "set" (une liste) de **OpĂ©rateurs de NĆuds (Node Operators)** professionnels et "permissionnĂ©s" (autorisĂ©s par la DAO).
- Quand le pool a collecté 32 ETH, la DAO assigne ces 32 ETH à l'un des Opérateurs, qui "spin up" (démarre) un nouveau validateur pour le compte de Lido.
- L'OpĂ©rateur gĂšre le nĆud, Lido (DAO) gĂšre les fonds. L'OpĂ©rateur prend une commission sur les rĂ©compenses.
2. Le "Money Lego" : stETH en DeFi
Vous avez maintenant 10 stETH (valeur 10 ETH), et ce solde génÚre ~3.5% APY (le rendement du staking).
Le $stETH est **liquide** et **composable**. Vous pouvez maintenant :
- Vendre : Aller sur Curve et "swapper" vos 10 stETH contre 10 ETH (ou 9.99 ETH, s'il y a un léger "depeg"). Vous avez quitté votre position de staking instantanément.
- PrĂȘter (Lending) : DĂ©poser vos 10 stETH comme **collatĂ©ral** sur Aave (qui l'accepte).
- Emprunter (Leverage) :
- Déposer 10 stETH (valeur $20k) sur Aave.
- Emprunter $10k d'ETH (contre votre stETH).
- Déposer ces 5 ETH (valeur $10k) *à nouveau* dans Lido, pour recevoir 5 stETH.
- Vous avez maintenant 15 stETH (gagnant 3.5% sur 15 ETH) et une dette de 5 ETH (payant 2% d'intĂ©rĂȘts). Vous avez créé un "levier" (leverage) sur le rendement du staking.
C'est le "Liquid Staking Loop", qui rend le capital de staking (autrefois mort) productif.
3. Les Risques du Staking Liquide
- Risque de Smart Contract : Si le contrat Lido est hacké, *tout* l'ETH du pool (des milliards) est volé.
- Risque de Slashing : Si les OpĂ©rateurs de NĆuds de Lido se comportent mal (en masse) et sont "slashĂ©s", la valeur du stETH baissera (car le pool aura moins d'ETH). Lido utilise une assurance pour couvrir cela.
- Risque de "Depeg" : Le prix `stETH / ETH` n'est pas 1:1. C'est un marché secondaire (sur Curve). Si beaucoup de gens veulent "sortir" (vendre stETH) et qu'il y a peu d'acheteurs (de déposants), le prix peut "depeg" (ex: 1 stETH = 0.95 ETH, comme lors du crash de Celsius/3AC). Si vous avez utilisé stETH comme collatéral, ce "depeg" peut vous liquider.
- Risque de Centralisation (Systémique) : C'est le plus grand risque. Lido contrÎle plus de **30%** de *tous* les validateurs Ethereum. S'il atteignait 51% (ou 66%), la DAO Lido (relativement centralisée) aurait le pouvoir de censurer ou de "forker" la chaßne Ethereum. C'est une menace majeure pour la neutralité du protocole.
Le **MEV (Maximal Extractable Value)** (anciennement Miner Extractable Value) est le **profit** qu'un **Validateur** (Proposeur de Bloc) peut réaliser en exerçant son pouvoir de **modifier l'ordre des transactions, d'insérer ses propres transactions, ou de censurer des transactions** à l'intérieur du bloc qu'il est en train de créer.
C'est la "taxe invisible" de la DeFi, nĂ©e du fait que le Mempool (oĂč les transactions attendent) est public. C'est le "jeu" des NĆuds Ops.
Exemples de MEV (Le "Dark Forest")
Le Mempool est une "forĂȘt sombre" (Dark Forest) : les bots (prĂ©dateurs) observent toutes les transactions (proies) et tentent de les "manger" avant qu'elles n'atteignent le bloc.
1. Arbitrage (Bénin)
- Opportunité : Un bot détecte que 1 ETH = 2000 DAI (sur Uniswap) et 1 ETH = 2005 DAI (sur Curve).
- Action : Il envoie une transaction pour acheter sur Uniswap et vendre sur Curve (profit 5$).
- MEV : Le Validateur voit cette transaction d'arbitrage dans le Mempool. Il peut **copier** cette transaction et l'insérer *avant* celle du bot (il "front-run" l'arbitrageur) pour voler le profit.
2. Sandwich Attack (Malveillant)
- Victime : Un utilisateur (Alice) envoie une grosse transaction au Mempool : "Acheter 1M$ de $PEPE sur Uniswap".
- Attaque (par un "Searcher" MEV) :
- 1. Front-run (1Ăšre tranche) : Le bot voit la tx d'Alice. Il envoie une tx (avec *plus* de Gas) pour acheter 100k$ de $PEPE *juste avant* Alice. Cela fait monter le prix (slippage) pour Alice.
- 2. La Victime (Le Milieu) : La transaction d'Alice s'exécute, mais à un prix plus élevé (à cause du bot). Son achat fait *encore* monter le prix.
- 3. Back-run (2e tranche) : Le bot vend *immédiatement* ses 100k$ de $PEPE (achetés à l'étape 1) au prix (désormais plus élevé) créé par Alice.
- Résultat : Le bot a fait un profit sans risque, et Alice (la victime) a obtenu un trÚs mauvais prix d'exécution. Le Validateur (qui a inclus ces 3 transactions dans le bon ordre) prend une "bribe" (pot-de-vin) du bot.
3. Liquidations (Aave/Compound)
- Opportunité : Une position sur Aave devient "liquidable" (HF < 1.0). Le premier bot qui appelle la fonction `liquidate()` gagne une récompense (ex: 8%).
- MEV : C'est une course. Tous les bots de liquidation envoient leur transaction en mĂȘme temps (une "guerre de Gas"). Le Validateur choisit celle qui paie le plus de Gas (de "bribe") et l'inclut, empochant le profit.
La Solution : Flashbots & PBS (Proposer-Builder Separation)
ProblÚme (Guerre de Gas) : Ce "jeu" du MEV (front-running, etc.) encombrait le réseau. Les bots se battaient en augmentant les frais de Gas, faisant payer *tous* les utilisateurs (externalité négative).
Solution (Flashbots) : Flashbots a créé un **canal de communication privé (une "enchÚre scellée")** pour le MEV.
Le Marché (Pré-PBS)
- Searchers (Chercheurs) : Des bots qui *trouvent* les opportunités de MEV (le "sandwich").
- Bundles (Paquets) : Le Searcher crée un "paquet" de transactions (ex: [Mon Achat, Tx d'Alice, Ma Vente]).
- Bribe (Pot-de-vin) : Le Searcher attache un "pot-de-vin" (ex: 0.1 ETH) au paquet, payé directement au Validateur.
- Flashbots Relay (Relais) : Le Searcher envoie ce "bundle" au Relais Flashbots (un Mempool privé), *pas* au Mempool public.
- Validateur (Proposeur) : Le Validateur (qui exĂ©cute un logiciel spĂ©cial, `mev-boost`) reçoit les "bundles" de Flashbots, choisit les plus rentables (ceux avec les plus grosses bribes), et les inclut en tĂȘte de son bloc.
- Résultat : La "guerre de Gas" (visible) a disparu, remplacée par une "guerre de bribes" (invisible, privée).
L'Ătape Finale : PBS (Proposer-Builder Separation)
C'est la formalisation de ce mĂ©canisme dans le protocole Ethereum lui-mĂȘme (Ă venir).
- Le Validateur (Proposeur) : N'a plus qu'un seul travail : ĂȘtre en ligne et signer. Il ne "voit" mĂȘme plus les transactions du Mempool.
- Le Builder (Constructeur) : Un *nouveau rÎle* (des entités spécialisées, ex: Flashbots). Les Builders sont en compétition pour construire le **bloc le plus rentable** (en agrégeant les bribes des Searchers et les tx normales).
- L'EnchĂšre : Les Builders (ex: 10) soumettent leur "offre" (le montant total des bribes qu'ils sont prĂȘts Ă payer) au Proposeur.
- Le Choix : Le Proposeur (Validateur) choisit simplement l'offre la plus Ă©levĂ©e (ex: "Le Builder A m'offre 1.5 ETH"), signe l'en-tĂȘte du bloc (sans voir le contenu, pour Ă©viter le vol), et empoche la rĂ©compense.
Conséquence : Cela sépare les rÎles (complexité) et rend le MEV plus efficace et démocratique, tout en augmentant les revenus des Stakers (Validateurs).
