6 artículos
Sistemas distribuidos
Ethereum: de historia a labs
Serie progresiva para entender Ethereum desde el whitepaper, forks y The Merge hasta EVM, Solidity, proof-of-stake, rollups, account abstraction, DeFi, observabilidad y laboratorios reproducibles.
Publicados
48
de 48 previstos
Estado
100%
published
Ruta guiada
No leas 48 capítulos como lista de supermercado.
La serie está partida en módulos. Puedes seguirla de punta a punta o entrar por el perfil que más se parezca a tu problema actual.
Empezar por el mapa →7 artículos
B. Ejecución y EVM
11 artículos
C. Solidity y estándares
1 artículos
D. Seguridad y auditoría
7 artículos
E. Proof-of-stake y Merge
8 artículos
F. Scaling y account abstraction
8 artículos
G. DeFi e infraestructura
Rutas rápidas
Entra por tu sesgo profesional, no por culpa.
Estas rutas no reemplazan la serie completa; son rampas para engancharte y luego volver al mapa.
Vengo de backend
Empieza por cuentas, transacciones, RPC y tooling local antes de tocar contratos complejos.
Vengo de seguridad
Ve directo a permisos, approvals, reentrancy, oráculos y playbook de auditoría.
Vengo de sistemas distribuidos
Lee Merge, Beacon Chain, Gasper, validadores y finality como una ruta de consenso aplicada.
Vengo de producto/DeFi
Conecta gas, tokens, AMMs, lending, indexadores y observabilidad para pensar una dApp real.
Artículos de la serie
Módulo 1
A. Historia y mapa
6 artículos
Ethereum: mapa de lectura antes de tocar Solidity
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.
Antes de Ethereum: Bitcoin, scripts y la máquina mundial
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.
Frontier, Homestead y The DAO: la red aprendió con golpes
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.
Metropolis a Istanbul: Ethereum madura antes del Merge
Byzantium, Constantinople, Petersburg, Istanbul y Muir Glacier: qué EIPs activó cada fork, por qué se pospuso Constantinople y qué cambió para contratos.
Berlin, London y EIP-1559: gas deja de ser solo subasta
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 necesitaba The Merge
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ó.
Módulo 2
B. Ejecución y EVM
7 artículos
Cuentas, claves y direcciones sin humo
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.
Una transacción Ethereum por dentro
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.
Estado, storage y Merkle Patricia Trie
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.
EVM: stack, memory, storage y calldata
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.
ABI, calldata y eventos: el idioma público de los contratos
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.
JSON-RPC: hablar con Ethereum sin magia
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.
Foundry, Anvil y Cast: taller local para Ethereum
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.
Módulo 3
C. Solidity y estándares
11 artículos
Solidity sin magia: contratos como máquinas de estado
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.
Storage layout: donde Solidity cobra la factura
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.
ERC-20: simple por fuera, tramposo por dentro
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: propiedad, metadata y safe transfers
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: vaults, shares y contabilidad peligrosa
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.
Proxies y upgrades: cambiar el motor con el auto andando
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.
Testing serio: unit, fork, fuzz e invariantes
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.
Reentrancy: la llamada externa que muerde de vuelta
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.
Access control: owner, roles, multisig y timelocks
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.
Approvals, permit y phishing de firmas
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.
Oráculos: datos externos con dientes
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.
Módulo 4
D. Seguridad y auditoría
1 artículo
Módulo 5
E. Proof-of-stake y Merge
7 artículos
"Ethereum 2" ya no es el nombre: execution y consensus layer
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.
Beacon Chain desde cero
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.
The Merge: cómo se apagó proof-of-work sin apagar Ethereum
Cómo funcionó The Merge: Bellatrix, Paris, el bloque terminal por dificultad total, la Engine API y qué cambió para contratos y aplicaciones.
Gasper: Casper FFG + LMD-GHOST en una sola cabeza
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.
Validadores, attestations y BLS
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.
Finality, slashing e inactivity leak
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.
Shapella: retirar stake sin romper el consenso
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.
Módulo 6
F. Scaling y account abstraction
8 artículos
Rollups desde cero: ejecutar fuera, resolver dentro
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.
Optimistic rollups: optimismo con periodo de disputa
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.
ZK rollups: validez antes de confianza
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.
EIP-4844 y blobs: Ethereum le da carril barato a rollups
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.
ERC-4337: UserOperation, bundlers y EntryPoint
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: cuando una EOA aprende trucos de smart account
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.
Bridges: mover valor entre cadenas sin cerrar los ojos
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.
MEV y PBS: quién arma el bloque importa
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.
Módulo 7
G. DeFi e infraestructura
8 artículos
AMMs: x*y=k sin vender humo matemático
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: liquidez concentrada y ticks
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.
Lending y liquidaciones: cuando el colateral respira mal
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.
Indexadores: eventos, reorgs e idempotencia
Cómo indexar logs de Ethereum que sobreviven reintentos, backfills y reorgs: cursor con hash, etiquetas safe y finalized, y efectos idempotentes.
Clientes y nodos: diversidad antes que monocultivo
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.
Observabilidad Ethereum para dApps
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 production-ready para dApps
Arquitectura para depósitos y retiros sobre un custodio: confirmación por finalized, reorgs, idempotencia por nonce, conciliación y respuesta a incidentes.
De la serie a los labs: cómo practicar sin quemar ETH real
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.
Labs relacionados
Ethereum local: Anvil, wallet y primera transacción
Laboratorio base para levantar una red local, crear cuentas, firmar transacciones y observar receipts sin gastar ETH real.
ActivoRPC y Cast: leer Ethereum con lupa
Ejercicios con JSON-RPC y Cast para consultar bloques, nonces, gas, receipts, logs y errores reproducibles.
ActivoERC-20 con Foundry: estándar, tests e invariantes
Construcción de un token ERC-20 mínimo con pruebas unitarias, fuzzing básico, allowances y escenarios de aprobación riesgosa.
ActivoStorage layout: ver slots antes de romper upgrades
Laboratorio para inspeccionar slots, packing, mappings y colisiones de storage en contratos upgradeables.
ActivoReentrancy lab: atacar, medir y corregir
Escenario vulnerable controlado para ejecutar reentrancy, observar el diff de balances y comparar mitigaciones.
ActivoOráculos y liquidaciones: cuando el precio manda
Simulación local de price feeds, health factor y liquidaciones para entender dependencia de oráculos y solvencia.
ActivoRollup mock: ejecución fuera, evidencia dentro
Modelo local simplificado para practicar batch, publicación de datos, prueba simulada y settlement conceptual.
ActivoIndexer y observabilidad para dApps
Laboratorio para consumir eventos, tolerar replays, simular reorgs pequeños y exponer señales de salud de una dApp.