Contenido del curso
Ethereum Fundamentals
Week 1: Kick off the program
Week 2: Smart Contracts: Upgradables with Oracles
Week 3: Ethereum Virtual Machine
Week 4: Mastering Solidity
Week 5: QA Solidity
Week 6: Descentralized applications
Week 7: Fleek and Pocket
Week 8: MakerDAO
Week 9: Push Notifications
Week 10: IPFS and ENS
Week 11: layer 2
Week 12: Modular Blockchains
Week 13: Zero Knowledge
Week 14: Community projects
Contenido complementario
Fuel VM: ejecución paralela en blockchain
Resumen
La ejecución modular cambia la forma en que pensamos la escalabilidad de blockchain, y Fuel es una de las piezas que está empujando ese cambio. Si vienes del mundo Ethereum y te interesa entender cómo se separan las capas de consenso, datos y ejecución para construir aplicaciones más rápidas, aquí tienes el panorama completo, contado desde la sesión de Sandowski, developer experience engineer en Fuel Labs.
Por qué los nodos de blockchain están saturados
Un nodo de blockchain es un computador que coordina con otros mediante un protocolo para mantener un registro compartido. En Bitcoin esos nodos hacen tres tareas: validan transacciones, llegan a consenso y producen bloques. Con la llegada de Ethereum se sumó una cuarta: ejecutar contratos inteligentes [10:30].
Y cuando aparecieron los layer 2, los nodos también empezaron a encargarse del settlement, que es verificar que las transacciones procesadas fuera de la cadena principal mantengan coherencia con ella [15:20].
El resultado es un nodo recargado que intenta hacer todo a la vez y choca con el trilema de la escalabilidad: no se puede tener seguridad, descentralización y escalabilidad al mismo tiempo. Ethereum, de hecho, hace ya varios años llegó a su techo cercano a un millón de transacciones por día.
¿Qué es el trilema de la escalabilidad de blockchain? Es la dificultad de lograr al mismo tiempo tres propiedades: seguridad (que las transacciones no se adulteren), descentralización (que ninguna entidad controle la red) y escalabilidad (que muchos usuarios la usen sin colapsarla).
Qué propone el paradigma de blockchain modular
La idea es simple y muy humana: especializarse. En lugar de un nodo monolítico que hace ejecución, settlement, consenso y data availability, la blockchain modular separa esas tareas en redes distintas que se interconectan.
Esto trae tres ventajas concretas:
- Cada nodo optimiza su hardware para una tarea específica.
- Se pueden cambiar piezas del sistema sin hacer un fork, como pasó al migrar de proof of work a proof of stake.
- Se puede convivir con distintos algoritmos de consenso a la vez.
Fuel se ubica en este ecosistema como la capa de ejecución modular, mientras que protocolos como Celestia se enfocan en la capa de datos y consenso. Encima de Fuel viven los contratos inteligentes, y debajo se conecta con la cadena que prefieras para consenso y disponibilidad de datos.
Cómo logra la FuelVM ejecución paralela y mayor escalabilidad
La Ethereum Virtual Machine es, en palabras de Sandowski, una supercomputadora gigante de un solo núcleo: las transacciones se ejecutan en fila aunque no tengan relación entre sí [33:15]. La FuelVM es multicore: puede ejecutar transacciones en paralelo siempre que no toquen el mismo estado.
Para lograrlo aprovecha el modelo UTXO (unspent transaction output), heredado de Bitcoin. En lugar de mantener un saldo total que se modifica con cada transacción, UTXO trabaja con una lista de salidas no gastadas. Eso permite al nodo saber de entrada que dos contratos no se están pisando, y por tanto puede ejecutarlos a la vez sin riesgo de inconsistencia [50:40].
El impacto en rendimiento no es lineal. Pasar de 100 a 200 transacciones por segundo no es la meta; con paralelización se habla de saltar a 2.000 o 20.000 [1:00:10].
¿Qué es UTXO en blockchain? Es un modelo donde cada cuenta tiene una lista de saldos disponibles para gastar. Cuando envías fondos, el protocolo suma los UTXO necesarios en lugar de modificar un saldo único.
Qué otras mejoras incluye Fuel respecto a Ethereum
La FuelVM integra más de 11 Ethereum Improvement Proposals que no pudieron incluirse en la EVM por romper retrocompatibilidad:
- Account abstraction nativa, sin necesidad de rollout posterior.
- Access lists que habilitan la ejecución paralela.
- Verificación de overflow por defecto en operaciones con enteros.
- Soporte multi asset nativo, sin tener que envolver tokens en contratos auxiliares.
- Protección contra ataques de reentrancy desde el diseño.
- Memoria compartida entre contextos de ejecución para evitar duplicar el contexto de un contrato cuando llama a otro.
Cómo se programa en Sway, el lenguaje de Fuel
Sway es el lenguaje de dominio específico de Fuel, basado en Rust [1:05:30]. Hereda de Rust dos cosas valiosas: un sistema de manejo de memoria muy seguro y un compilador que te explica con detalle qué está mal y cómo arreglarlo, casi como un mentor.
Una diferencia clave frente a Solidity es que en Sway el ABI es declarativo. No necesitas heredar interfaces ERC-165 ni hacer llamadas entre contratos solo para confirmar que uno implementa cierta interfaz. El ABI se escribe explícito y el compilador ya conoce las funciones disponibles, lo que ahorra gas y complejidad.
Otra diferencia: Sway distingue claramente cuándo trabajas con storage del contrato y cuándo con variables auxiliares. No accedes al estado modificando una variable; lo haces invocando un método sobre el objeto de storage. Eso reduce errores de los que te enteras tarde.
Además de contratos, en Fuel puedes desplegar librerías, predicados y scripts. Los scripts sin estado son útiles, por ejemplo, para gestionar posiciones en DeFi sin necesidad de desplegar un contrato dedicado.
¿Sirve React para crear apps en Fuel? Sí. Con
npm install fuelsyimportdel SDK puedes instanciar contratos, leerlos y enviar transacciones. La interfaz es similar a Ethers, así que migrar un frontend hecho para Ethereum es directo.
Qué herramientas y recursos ofrece el ecosistema Fuel
Fuel entrega un stack completo en un solo binario. El equivalente a Hardhat se llama Forc (Fuel Orchestrator) e incluye compilación, testing y despliegue [1:18:40]. Para empezar de cero, el flujo es:
- Instalar los binarios de Rust y de Fuel.
- Crear el scaffolding con
forc new counter. - Escribir el ABI y el contrato en Sway.
- Compilar, probar con Cargo Generate y desplegar a testnet.
En el portal de documentación encuentras la Fuel Wallet (extensión disponible en la Chrome Web Store), el faucet para obtener tokens de prueba, el block explorer, el nodo indexador GraphQL nativo, SDKs de Rust y TypeScript, y plugins para Vim, Nix y VS Code.
Dos recursos especialmente útiles para aprender:
- El repositorio Sway versus Solidity, con ejemplos lado a lado de los mismos contratos.
- Awesome Fuel, que recopila tutoriales, librerías, ejemplos de DAOs, market makers, NFTs, airdrops, oráculos, vesting contracts y wallets multisig.
En qué punto está Fuel hoy
Fuel fue el primer rollup de Ethereum, lanzado en alfa en enero de 2020 y desplegado en mainnet a finales de ese mismo año [1:14:50]. En abril de 2022 presentó su paradigma modular como capa de ejecución. Después vinieron tres betas: beta 1 en septiembre de 2022, beta 2 en noviembre de 2022 y beta 3 en marzo de 2023. Esa última es el paso previo a mainnet, con auditorías en curso.
Si vas a empezar a construir, ¿qué dudas te están frenando? Cuéntalo en los comentarios y comparte qué tipo de aplicación te gustaría llevar a Fuel.