Inicio / Blockchain / Blockchain: De Cero a Desarrollador / Ethereum y la EVM

Ethereum y la EVM

EVM, cuentas EOA vs contract, estado global, The Merge y L2.

Intermedio Bases de datos
🔒 Solo lectura
📖

Estás en modo lectura

Puedes leer toda la lección, pero para marcar progreso, hacer ejercicios y ganar XP necesitas una cuenta Pro.

Desbloquear por $9/mes

Ethereum y la EVM

Ethereum extendió la idea de Bitcoin con una máquina virtual Turing-completa capaz de ejecutar cualquier programa arbitrario. Esto abrió la puerta a los smart contracts, tokens, DeFi, NFTs y un ecosistema completo de aplicaciones descentralizadas.

De Bitcoin a Ethereum

Vitalik Buterin propuso Ethereum en 2013 después de reconocer las limitaciones de Bitcoin Script:

Bitcoin: "Puedo enviarte dinero con condiciones simples"
Ethereum: "Puedo ejecutar CUALQUIER programa en la blockchain"

Bitcoin Script → limitado, no Turing-completo
Solidity/EVM  → Turing-completo, estado persistente

La Ethereum Virtual Machine (EVM)

La EVM es la computadora global descentralizada de Ethereum. Cada nodo ejecuta exactamente el mismo código y llega al mismo resultado:

Características de la EVM:
- Stack-based machine (pila de 256 bits)
- Determinista (mismo input → mismo output siempre)
- Aislada (sandbox: no accede al sistema del nodo)
- Gas-metered (cada operación tiene un costo)
- Estado global compartido

La EVM ejecuta bytecode:
Solidity → Compilador → Bytecode → EVM → Resultado

Opcodes principales

Opcode      Gas    Descripción
────────────────────────────────────────
ADD          3     Suma dos valores del stack
MUL          5     Multiplica
SLOAD       2100   Lee del storage
SSTORE      20000  Escribe al storage (nuevo)
CALL         ~variable   Llama a otro contrato
CREATE       32000  Despliega nuevo contrato
SELFDESTRUCT 5000   Destruye contrato

Cuentas en Ethereum

Ethereum tiene dos tipos de cuentas:

Externally Owned Accounts (EOA)

- Controladas por clave privada
- Pueden iniciar transacciones
- No tienen código
- Tienen balance y nonce

Ejemplo: tu cuenta de MetaMask
Address: 0x742d35Cc6634C0532925a3b844Bc9e7595f2bD09

Contract Accounts

- Controladas por su código (smart contract)
- NO pueden iniciar transacciones (solo responder)
- Tienen código inmutable y storage
- Tienen balance y nonce

Ejemplo: contrato de Uniswap
Address: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

Diferencias clave

                    EOA              Contract Account
────────────────────────────────────────────────────
Controlada por      Clave privada    Código
Inicia tx           Sí               No
Tiene código        No               Sí
Storage             No               Sí
Costo de crear      Gratis           Gas

El Estado de Ethereum

Ethereum mantiene un estado global que se actualiza con cada bloque:

Estado Global = {
  Account₁: { nonce, balance, storageRoot, codeHash },
  Account₂: { nonce, balance, storageRoot, codeHash },
  ...
}

Cada transacción transforma el estado:
Estado_N + Transacción → Estado_N+1

Se almacena en un Modified Merkle Patricia Trie

Transacciones en Ethereum

Transferencia simple (EOA → EOA):
{
  from:     "0xAlice...",
  to:       "0xBob...",
  value:    1 ether,
  gas:      21000,
  data:     "" (vacío)
}

Llamada a contrato (EOA → Contract):
{
  from:     "0xAlice...",
  to:       "0xContrato...",
  value:    0,
  gas:      100000,
  data:     "0xa9059cbb..." (function selector + params)
}

Deploy de contrato (EOA → null):
{
  from:     "0xAlice...",
  to:       null,
  value:    0,
  gas:      3000000,
  data:     "0x608060...bytecode..."
}

Ethereum 2.0: The Merge

En septiembre de 2022, Ethereum migró de Proof of Work a Proof of Stake:

Antes (PoW):           Después (PoS):
- Mineros con GPUs     - Validadores con 32 ETH
- ~15 TPS              - ~15 TPS (misma L1, la escalabilidad viene con sharding)
- ~13 seg/bloque       - ~12 seg/bloque
- Alto consumo         - 99.95% menos energía
- Recompensa variable  - ~5% APR staking

Redes de Ethereum

Red              Tipo       ChainId    Uso
──────────────────────────────────────────────────
Mainnet          Producción  1         Fondos reales
Sepolia          Testnet     11155111  Testing
Holesky          Testnet     17000     Testing de staking
Localhost        Desarrollo  1337      Hardhat/Ganache

Layer 2 Solutions

Para escalar Ethereum sin sacrificar seguridad:

Rollups Optimistas (Optimism, Arbitrum):
- Asumen que las transacciones son válidas
- Periodo de disputa para fraude (~7 días)
- Compatible con EVM existente

ZK Rollups (zkSync, StarkNet, Polygon zkEVM):
- Generan pruebas criptográficas de validez
- Finalidad más rápida
- Más eficientes a largo plazo

Comparación:
                    L1 Ethereum    Optimistic L2    ZK L2
Costo tx            $1-50          $0.01-0.5        $0.01-0.3
TPS                 15             2,000+           2,000+
Finalidad           12 min         ~7 días*         Minutos

Resumen

Ethereum transformó blockchain de un simple registro de transacciones a una plataforma de computación universal. La EVM ejecuta smart contracts de forma determinista, y el ecosistema Layer 2 escala la capacidad sin sacrificar la seguridad de la capa base. Comprender la EVM es esencial antes de escribir smart contracts en Solidity.

🔒

Ejercicio práctico disponible

Simulador de cuentas Ethereum

Desbloquear ejercicios
// Simulador de cuentas Ethereum
// Desbloquea Pro para acceder a este ejercicio
// y ganar +50 XP al completarlo

function ejemplo() {
    // Tu código aquí...
}

¿Te gustó esta lección?

Con Pro puedes marcar progreso, hacer ejercicios, tomar quizzes, ganar XP y obtener tu constancia.

Ver planes desde $9/mes