Toda cadena de bloques tiene que responder a una pregunta aburridamente fundamental antes de poder hacer nada ingenioso: ¿quién posee qué? No hay cámara acorazada de un banco, ni una hoja de cálculo en el servidor de una empresa, ni un empleado al que podáis llamar. El libro mayor es la respuesta — y Bitcoin y Ethereum guardan sus libros mayores con dos formas genuinamente distintas.
Bitcoin registra el dinero como lo piensa un carterista: como un montón de monedas distintas que tenéis o no tenéis. Ethereum lo registra como lo hace vuestra aplicación bancaria: como un único número que sube y baja. El mismo objetivo —registrar la propiedad— pero una contabilidad radicalmente distinta. Al final de esta lección sabréis por qué Ethereum eligió el estilo «saldo bancario» y por qué esa decisión es exactamente lo que hace posibles los contratos inteligentes.
Dónde encaja esto
Ya conocisteis brevemente el modelo UTXO y el de cuentas en crypto-basics, y habéis visto los fundamentos de Ethereum en las dos lecciones anteriores. Aquí bajamos el ritmo y separamos los dos modelos como es debido. Volveremos a definir el UTXO desde cero — dad por hecho que solo lo recordáis a medias.
UTXO: el dinero como monedas físicas
Antes de leer — adivina
Adivina antes de leer: en Bitcoin, ¿dónde se almacena tu saldo?
UTXO son las siglas en inglés de Unspent Transaction Output (salida de transacción no gastada). Pensad en ella como una moneda: un trozo de bitcoin, de un valor concreto, bloqueado a un propietario concreto, que reposa en la cadena a la espera de ser gastado. Vuestra cartera es un bolsillo lleno de estas monedas dispares — quizá una moneda de 0,7 BTC, una de 0,05 BTC, una de 1,2 BTC. No hay ningún campo «saldo» ordenado en ningún sitio. Vuestro saldo es sencillamente la suma de cada UTXO que podéis desbloquear, calculada al momento por vuestra cartera.
Gastar consume monedas enteras
Aquí viene la parte que la gente encuentra rara. No podéis cortar una astilla de una moneda. Para gastar, consumís UTXO enteros como entradas y creáis UTXO nuevecitos como salidas. Si las monedas que metéis valen más de lo que estáis pagando, lo sobrante os vuelve como una moneda nueva —vuestro cambio— exactamente igual que cuando le dais al cajero un billete de $20 por un bocadillo de $13 y os guardáis $7 de vuelta.
Las monedas viejas quedan ahora marcadas como gastadas y desaparecen para siempre; las salidas son las nuevas monedas no gastadas. El libro mayor no es más que un grafo en constante crecimiento de «esta salida vino de esas entradas».
Ejemplo resuelto
Supongamos que queréis enviar 0,5 BTC y la única moneda que tenéis lo bastante grande es un UTXO de 0,7 BTC. La transacción tiene este aspecto:
| Lado | Concepto | Cantidad |
|---|---|---|
| Entrada | Tu moneda de 0,7 BTC (consumida entera) | 0,7 BTC |
| Salida | Al destinatario | 0,5 BTC |
| Salida | Cambio de vuelta para ti (moneda nueva) | 0,199 BTC |
| — | Comisión del minero (el hueco, que se queda el minero) | 0,001 BTC |
Las entradas deben igualar a las salidas más la comisión: 0,7 = 0,5 + 0,199 + 0,001. La comisión no es una línea aparte que fijéis; es lo que no os devolvéis
a vosotros mismos. Después de esto, vuestra antigua moneda de 0,7 está muerta y en
su lugar tenéis una moneda nueva de 0,199.
Rellena los huecos sobre cómo funciona un gasto UTXO.
Pick the right option for each blank, then check.
En Bitcoin no almacenas un saldo; tienes un conjunto de , cada uno una moneda discreta. Para pagar a alguien consumes monedas enteras como y creas nuevas . Cualquier valor sobrante te vuelve como una nueva moneda de . La comisión del minero es simplemente el .
Cuentas: el dinero como saldo bancario
Ethereum tira todo eso por la borda. En lugar de un montón disperso de monedas, cada cuenta tiene un campo: un saldo explícito. Para enviar dinero, el protocolo simplemente resta al emisor y suma al receptor — cambian dos números. Y ya está. No hay monedas que consumir, ni cambio que acuñar, ni grafo de salidas.
La analogía es vuestro extracto bancario. No poseéis «una unidad-dólar de $50 y una unidad-dólar de $20»; poseéis un saldo de $70 que baja a $57 cuando gastáis $13. El único número es vuestro dinero.
Modelo UTXO (Bitcoin)
Modelo de cuentas (Ethereum)
Pulsa Enviar y observa ambos lados. A la izquierda (Bitcoin/UTXO) sale una moneda entera y vuelve flotando una moneda de cambio más pequeña. A la derecha (Ethereum/cuentas) no se mueve nada — una barra de saldo simplemente se acorta.
Observad el contraste con atención. En el lado UTXO se mueven objetos: una moneda se va, vuelve el cambio. En el lado de cuentas no existe ningún objeto — hay una sola barra cuya altura desciende. Esa es toda la diferencia filosófica en una animación: Bitcoin mueve monedas, Ethereum edita un número.
¿Cuál es la diferencia esencial entre cómo registra un pago cada modelo?
Dos tipos de cuenta
En el modelo de cuentas, «cuenta» no es una sola cosa. Ethereum tiene dos variedades, y la distinción importa para todo lo que viene después.
- Cuenta de propiedad externa (EOA). Controlada por una clave privada — un humano (o una cartera normal) que guarda un secreto. Una EOA tiene un saldo y un nonce, pero ningún código. Algo crucial: solo una EOA puede iniciar una transacción: toda acción en Ethereum la arranca en última instancia alguien que firma con una clave privada.
- Cuenta de contrato. Controlada por su código, no por ninguna clave. Tiene un saldo, almacenamiento persistente y el bytecode del contrato. Una cuenta de contrato no puede iniciar nada por sí sola — solo se despierta y se ejecuta cuando es llamada por una transacción (desde una EOA, o desde otro contrato que en última instancia activó una EOA).
| Propiedad | EOA | Cuenta de contrato |
|---|---|---|
| Controlada por | Una clave privada | Su propio código |
| ¿Tiene código? | No | Sí |
| ¿Tiene almacenamiento? | No (solo saldo + nonce) | Sí (estado persistente) |
| ¿Puede iniciar una transacción? | Sí | No — solo actúa cuando se la llama |
Pensad en una EOA como una persona con un bolígrafo que puede escribir el primer cheque, y en un contrato como una máquina expendedora: llena de lógica y contenido, pero que nunca se estira hacia fuera — solo hace algo cuando cae dentro una moneda (una llamada).
Empareja cada concepto con su rasgo definitorio.
Elige un término y luego su descripción correspondiente.
El nonce: un contador que frena dobles gastos y repeticiones
Toda EOA lleva un nonce — abreviatura de «number used once» (número usado una sola vez), pero en realidad es solo un contador de transacciones. Vuestra primera transacción tiene el nonce 0, la siguiente debe ser 1, luego 2, y así sucesivamente. La red se niega a procesar una transacción a menos que su nonce sea exactamente el siguiente valor esperado para esa cuenta.
Imaginad cheques numerados en un viejo talonario de papel. El banco procesa el cheque n.º 5 solo después del n.º 4, y una vez que el n.º 5 ha sido compensado, presentar otra copia del cheque n.º 5 no hace nada — ese número ya está usado. El nonce hace ambos trabajos:
- Orden. Fuerza a vuestras transacciones a seguir una secuencia estricta, de modo que un pago y la acción que depende de él no puedan reordenarse.
- Protección contra repeticiones. Una transacción de Ethereum firmada no es más que datos. Si no hubiera nonce, cualquiera que viera vuestra transferencia firmada y válida podría reemitir esos mismos bytes una y otra vez, vaciándoos a base de repeticiones. Como el nonce va incrustado en lo que firmasteis, una copia reenviada lleva un número ya usado y se rechaza al instante.
Bitcoin obtiene la protección contra repeticiones gratis de su estructura: una transacción nombra UTXO concretos como entradas, y una vez que esas monedas se han gastado dejan de existir, así que reenviar la misma transacción referencia monedas que ya no están — es automáticamente inválida. El modelo de cuentas no tiene tal truco: los saldos son solo números, y «envía 1 ETH de A a B» sigue pareciendo perfectamente válido cada vez. El nonce es la versión fabricada de esa unicidad en el modelo de cuentas — es el contador explícito que hace que cada transacción firmada sea utilizable exactamente una vez.
Por qué el dinero programable prefiere las cuentas
Entonces, ¿por qué Ethereum, construido para contratos inteligentes, eligió las cuentas? Porque los contratos necesitan un hogar. Un contrato es un programa de larga vida: un contrato de token tiene que recordar el saldo de cada poseedor, un fondo de préstamos tiene que registrar quién depositó qué. Eso exige un lugar persistente y direccionable donde guardar el estado — una dirección estable a la que podáis volver a llamar la semana que viene, con almacenamiento que sobreviva entre llamadas.
El modelo de cuentas le entrega a cada contrato exactamente eso: una dirección fija y sus propias ranuras de almacenamiento (pensad en mapeos como «dirección → saldo» viviendo dentro del contrato). El UTXO lo vuelve incómodo — no hay ningún «lugar» permanente, solo un flujo de salidas frescas creadas y destruidas con cada transacción. Codificar el estado en evolución de una aplicación en monedas desechables es como intentar llevar un diario escribiendo cada entrada en un billete nuevo y gastando el viejo.
Ningún modelo es estrictamente mejor; tienen sus contrapartidas:
| Fortalezas del UTXO | Fortalezas de las cuentas |
|---|---|
| Validación en paralelo — las monedas independientes se comprueban por separado | Sencillo, encaje natural para contratos y estado persistente |
| Mejor privacidad — las monedas de cambio y las nuevas direcciones fragmentan el rastro | Fácil razonar sobre saldos (un número por cuenta) |
| Reglas de validez por salida más simples | Transacciones compactas — no hay que reunir ni referenciar muchas monedas |
| Sin estado mutable global que coordinar | Direcciones estables + almacenamiento en los que los contratos pueden confiar |
Clasifica cada característica en el modelo que favorece.
Place each item in the right group.
- Las monedas se pueden validar en paralelo porque son independientes
- Tu saldo es un único número sobre el que es fácil razonar
- Sin estado mutable global que coordinar en toda la cadena
- Un contrato obtiene una dirección estable y almacenamiento persistente
- Mayor privacidad gracias a las monedas de cambio y direcciones nuevas
- Las transacciones se mantienen compactas — sin rebuscar suficientes monedas
El panorama general
Big picture
Registrar la propiedad: UTXO vs. cuentas
- Registrar la propiedad
- Modelo UTXO (Bitcoin)
- Dinero = monedas no gastadas discretas
- Sin saldo almacenado — suma tus UTXO
- Gasta monedas enteras, recibe cambio
- A prueba de repeticiones: las monedas gastadas desaparecen
- Modelo de cuentas (Ethereum)
- Dinero = un saldo almacenado por cuenta
- Pago = resta al emisor, suma al receptor
- Hogar natural para el estado de los contratos
- EOA vs. contrato
- EOA — controlada por clave, puede iniciar una tx
- Contrato — controlado por código, tiene almacenamiento
- Los contratos solo actúan cuando se les llama
- Nonce
- Contador de transacciones por EOA (0, 1, 2…)
- Ordena tus transacciones
- Bloquea la repetición de una tx firmada
- Modelo UTXO (Bitcoin)
Gastas un único UTXO de 1,0 BTC para enviar 0,4 BTC, con una comisión de 0,001 BTC. ¿Cuánto cambio vuelve como moneda nueva?
Comprueba tu respuesta para continuar.
Ideas clave
Qué recordar
- UTXO (Bitcoin) = monedas. Sin saldo almacenado; tenéis salidas no gastadas discretas, gastáis las enteras como entradas, acuñáis nuevas salidas y recibís cambio de vuelta. Vuestro saldo es solo la suma de vuestras monedas.
- Cuentas (Ethereum) = un saldo bancario. Cada cuenta almacena un único número explícito; un pago simplemente resta al emisor y suma al receptor.
- Dos tipos de cuenta. Las EOA están controladas por clave y son lo único que puede iniciar una transacción. Las cuentas de contrato están controladas por código, tienen almacenamiento y solo actúan cuando se les llama.
- El nonce es un contador por EOA que debe aumentar en uno cada vez — ordena vuestras transacciones e impide que nadie repita una ya firmada. El UTXO obtiene la protección contra repeticiones gratis; las cuentas necesitan el nonce para fabricarla.
- Por qué ganaron las cuentas en Ethereum: el dinero programable necesita estado persistente y direccionable, y el modelo de cuentas le entrega a cada contrato una dirección estable más almacenamiento — algo que las salidas desechables del UTXO vuelven incómodo.
Lo siguiente: ahora que sabéis que el dinero es un saldo al que se le resta, veremos qué cuesta cambiar ese saldo. La próxima lección aborda el gas y las comisiones — por qué cada operación en Ethereum tiene un precio, a quién estáis pagando y cómo evitar pagar de más.