Casper FFG (Ethereum): El gadget de finalidad amigable
Cómo Casper FFG finaliza checkpoints con enlaces de supermayoría, por qué sus dos reglas de slashing dan accountable safety y cómo Gasper lo une a LMD GHOST.
Tema
Artículos, guías y notas de laboratorio relacionados con Ethereum.
Artículos
51
Índice
Topic
Cómo Casper FFG finaliza checkpoints con enlaces de supermayoría, por qué sus dos reglas de slashing dan accountable safety y cómo Gasper lo une a LMD GHOST.
Por qué el slashing convierte un ataque a la safety de Casper FFG en un hecho demostrable y costoso, apoyado en la misma intersección de quórums que PBFT.
Por qué la finalidad se detiene si más de un tercio del stake no vota, cómo el inactivity leak de Ethereum la recupera y cuándo finaliza dos ramas en conflicto.
Cómo llega un precio a un contrato: feeds agregados de Chainlink, heartbeat y desviación, chequeos de frescura, TWAP frente a precio spot y manipulación en una transacción.
Qué delega approve, cómo convierte EIP-2612 una firma fuera de cadena en allowance, por qué revocar no anula un permit pendiente y qué revisar en custodia.
Autorización en contratos Ethereum: Ownable y Ownable2Step, roles con AccessControl, multisig con umbral y TimelockController para separar operación diaria de cambios de política.
Reentrancy paso a paso: por qué una llamada externa cede el control, cómo se drena un vault, qué enseñó The DAO y cómo defender con CEI y nonReentrant.
Unit, fuzz, invariant y fork tests en Foundry: qué evidencia da cada uno, cómo escribir handlers y ghost variables, y un bug real que solo encuentra el fuzzer.
Mapa de la serie Ethereum: por qué empezar por la historia, cómo una transacción cruza ejecución y consenso, y qué ruta elegir según tu perfil.
Qué límites del script de Bitcoin señaló el whitepaper de Ethereum y cómo los resolvió con cuentas, storage, gas y una función de transición de estado.
De Frontier a Spurious Dragon: qué cambió Homestead, cómo se drenó The DAO, qué hizo el fork del bloque 1,920,000 y por qué nació EIP-155.
Byzantium, Constantinople, Petersburg, Istanbul y Muir Glacier: qué EIPs activó cada fork, por qué se pospuso Constantinople y qué cambió para contratos.
Berlin y London paso a paso: accesos fríos y calientes, transacciones tipadas, access lists y cómo EIP-1559 divide la fee entre quema y propina.
Por qué Ethereum dejó proof-of-work: bomba de dificultad, energía, emisión y finalidad; cómo ocurrió la transición en el bloque 15,537,394 y qué no cambió.
Cómo una clave secp256k1 se convierte en dirección con Keccak-256, qué valida el checksum EIP-55 y qué cambia EIP-7702 para quien custodia claves.
Campos de una transacción tipo 2, cómo EIP-1559 reparte el gas entre quema, propina y devolución, y qué prueba realmente un receipt con status 0 o 1.
Cómo Ethereum compromete cuentas y storage en una stateRoot de 32 bytes, cómo un slot de Solidity se vuelve clave del trie y cómo verificar con eth_getProof.
Dónde vive cada dato en la EVM, cuánto dura y cuánto cuesta: stack, memory, storage, transient storage, calldata y logs, con una traza de bytecode real.
Cómo se calcula un selector de 4 bytes, cómo se codifican argumentos en palabras de 32 bytes, qué guardan topics y data de un evento y cómo leer un revert.
Cómo es una petición JSON-RPC, qué significan latest, safe y finalized, cómo fijar el bloque de una lectura y qué confianza depositas en un proveedor RPC.
Forge, Anvil y Cast paso a paso: compilar, probar con fuzzing, desplegar en una cadena local 31337 y leer storage por RPC sin gastar gas real.
Solidity leído como máquina de estado: storage, msg.sender, visibilidad, modifiers, errores, eventos, reverts atómicos y el patrón checks-effects-interactions.
Cómo asigna Solidity slots de 32 bytes: empaquetado, mappings y arrays por keccak256, strings cortos, costo de acceso y por qué el layout rompe upgrades.
La interfaz ERC-20 paso a paso: balances, approve y transferFrom, la carrera al cambiar un allowance, tokens que no devuelven bool y permisos que nunca caducan.
ERC-721 y ERC-1155 desde el estado: dueño por id, operadores, el hook onERC721Received, lotes en ERC-1155 y metadata que vive fuera del contrato.
ERC-4626 por dentro: assets y shares, deposit, mint, withdraw y redeem, redondeo a favor del vault y el ataque de inflación sobre un vault vacío.
Cómo delegatecall separa código y storage, qué fijan ERC-1967 y ERC-1822, y por qué layout, inicializadores y admin deciden si un upgrade es seguro.
Método de auditoría para un contrato Solidity: alcance, modelo de amenazas, invariantes con Foundry, hallazgos con PoC, severidad y retest.
Por qué Eth1 y Eth2 pasaron a llamarse capa de ejecución y capa de consenso, y cómo se reparten el trabajo los dos clientes de un nodo actual.
Qué es la Beacon Chain: depósitos, génesis de 2020, slots de 12 s, epochs de 32 slots, comités aleatorios y el ciclo de vida de un validador.
Cómo funcionó The Merge: Bellatrix, Paris, el bloque terminal por dificultad total, la Engine API y qué cambió para contratos y aplicaciones.
Cómo decide Ethereum: LMD-GHOST elige la cabeza con el último voto de cada validador y Casper FFG justifica y finaliza checkpoints por supermayoría.
Qué firma un validador en cada attestation, cómo se agregan las firmas BLS12-381 en subredes y qué protege una clave de firma frente al slashing.
Cómo Ethereum castiga el doble voto y el voto envolvente, cuánto cuesta un slashing y cómo el inactivity leak recupera la finalidad si falta un tercio.
Cómo Shapella habilitó retiros en abril de 2023: credenciales 0x00 y 0x01, barrido automático, objetos Withdrawal en el payload y los cambios de Pectra.
Qué es un rollup: secuenciador, lote comprimido, raíz de estado, disponibilidad de datos y la regla que obliga a L1 a aceptar solo transiciones válidas.
Cómo funciona un optimistic rollup: raíces afirmadas, ventana de impugnación, bisección hasta un paso de MIPS y retiros de OP Stack en dos fases.
Cómo un ZK rollup convierte un lote en una prueba sucinta, qué verifica el contrato en L1, cuánto cuesta el emparejamiento y qué riesgos quedan fuera.
Qué es una transacción con blobs: hash versionado, compromiso KZG, mercado de blob gas, retención de 18 días y el paso de Dencun a PeerDAS en Fusaka.
Cómo ERC-4337 crea smart accounts sin hard fork: UserOperation, bundler, EntryPoint y paymaster, con los riesgos que hereda un equipo de custodia.
EIP-7702 a fondo: tupla de autorización, indicador de delegación persistente, chain_id 0, nonces y los riesgos de delegar código desde una EOA.
Qué respalda un token puenteado: lock/mint, burn/mint, quién verifica el mensaje, el retiro canónico de un rollup y riesgos para custodia.
Qué es el MEV, cómo MEV-Boost separa a builders y proposers con relays de confianza, y qué cambia ePBS (EIP-7732) en el roadmap de Glamsterdam.
Un AMM de producto constante con números reales: invariante x·y=k, comisión, LP shares, por qué el precio spot no es un oráculo y qué pierde el LP.
Uniswap v3 con números: rangos de precio, ticks de 1.0001, liquidez L, cuánto capital ahorra un rango y por qué el LP asume más riesgo por dólar.
Cómo se presta contra colateral: health factor, close factor y bonus de liquidación en Aave V3, y por qué oráculo y liquidador sostienen la solvencia.
Cómo indexar logs de Ethereum que sobreviven reintentos, backfills y reorgs: cursor con hash, etiquetas safe y finalized, y efectos idempotentes.
Qué corre dentro de un nodo Ethereum: cliente de ejecución, cliente de consenso y Engine API, y por qué ningún cliente debería superar un tercio de la red.
Qué medir en una dApp Ethereum: atraso del RPC, del indexador y de la finalidad, ciclo de vida de transacciones y conciliación del índice contra la cadena.
Arquitectura para depósitos y retiros sobre un custodio: confirmación por finalized, reorgs, idempotencia por nonce, conciliación y respuesta a incidentes.
Cómo practicar Ethereum sin fondos reales: cadena local con Anvil, reorgs forzadas, fork de mainnet y testnets, y el paso a la ruta práctica de custodia.