Artículos técnicos sobre modelos de ejecución, consenso, fundamentos de EVM e IA verificable. Cada análisis hace Web3 más claro.
Selección editorialEl cliente de ejecución trata la EVM como un ejecutor intercambiable, separado por una capa de interfaz de acceso al estado. El intérprete integrado de go-ethereum, evmone y revm ocupan posiciones distintas; la consistencia entre implementaciones la garantizan los vectores de prueba de la especificación, y el margen de optimización del intérprete se concentra en el despacho, la contabilidad de gas y la gestión de memoria.
Leer artículo →
El cliente de ejecución trata la EVM como un ejecutor intercambiable, separado por una capa de interfaz de acceso al estado. El intérprete integrado de go-ethereum, evmone y revm ocupan posiciones distintas; la consistencia entre implementaciones la garantizan los vectores de prueba de la especificación, y el margen de optimización del intérprete se concentra en el despacho, la contabilidad de gas y la gestión de memoria.

Las variables de estado caen en slots de 32 bytes en el orden de declaración: los tipos pequeños comparten slot, los mappings y los arrays dinámicos derivan su posición de un hash, y el orden de herencia desplaza en bloque los números de slot. Estas reglas de ubicación determinan por qué un proxy actualizable debe esquivar los slots que asignaría el compilador.

Las cuatro instrucciones de llamada solo se diferencian en unos pocos números dentro del bytecode, pero su semántica decide en qué contexto se ejecuta el código, sobre qué almacenamiento escribe y en qué se convierten `msg.sender` y `address(this)`. Comparar una por una CALL, CALLCODE, DELEGATECALL y STATICCALL permite ver por qué los proxies dependen de DELEGATECALL y por qué se introdujo STATICCALL.

Desglose de la ABI a partir del calldata en bruto: el selector de 4 bytes procede del truncamiento de la firma canónica, los tipos estáticos ocupan una palabra entera y los dinámicos se direccionan en dos niveles mediante desplazamiento y longitud; los eventos escriben los parámetros indexed en topics a cambio de ganar capacidad de búsqueda. La ABI no se autodescribe, de modo que tanto la decodificación como las actualizaciones quedan condicionadas.

El Yellow Paper de Ethereum escribe la transición de estado a nivel de bloque como una llamada anidada, así que el orden de evaluación forma parte de la especificación. De dónde viene la semántica de la ejecución serial transacción a transacción, por qué los conflictos de conjuntos de lectura/escritura no se pueden determinar de antemano, qué se compra con el determinismo y la simplicidad de la verificación, y qué propuestas responden de frente a este punto de origen son el hilo conductor a partir de aquí.

El stateRoot de la cabecera de un bloque ocupa solo 32 bytes, pero ata los saldos, los nonces, el código y el almacenamiento de contratos de todas las cuentas de la red. Este artículo desmonta la estructura de nodos del Merkle Patricia Trie y el trie de almacenamiento colgado de cada cuenta, explica cómo las pruebas de Merkle sostienen la verificación fuera de cadena y sobre quién recae el costo del crecimiento del estado.

El gas es la unidad de medida de recursos de la EVM, y su precio lo determina el mercado de comisiones; confundir ambos planos lleva a juzgar mal las fronteras de la escalabilidad y de la detención de la ejecución. A continuación se desglosan el costo intrínseco y el costo dinámico, se explica qué devuelven out-of-gas y REVERT, y a quién va cada parte de la comisión base y de la comisión de prioridad de EIP-1559.

Los mismos 32 bytes de datos guardados en memory, storage o transient storage pueden costar dos órdenes de magnitud en gas, y su ciclo de vida es por completo distinto. Este artículo separa las tres clases de almacenamiento según tres ejes —propiedad, vida útil y tarificación— y explica dónde debe ir cada cosa: un bloqueo de reentrada, un array temporal o una variable de estado.

La EVM es una máquina de pila sin registros: palabras de 256 bits, una pila de 1024 elementos y un contador de programa que solo puede saltar a JUMPDEST. El ciclo de captación, decodificación y ejecución explica por qué el subdesbordamiento y el desbordamiento de pila consumen todo el gas, y también qué gana y qué paga una máquina de pila frente a una máquina de registros.

Tomar Ethereum por un libro contable que registra transferencias deja fuera su parte más importante: las variables de lectura y escritura libres del almacenamiento de las cuentas. Según la función de transición de estado Υ(σ, T) del Yellow Paper, Ethereum es una máquina de estados distribuida, y la EVM es la especificación de ejecución de esa transición de estado. Que toda la red la repita bit a bit impone además un conjunto de restricciones duras a la semántica de ejecución.