Fundamentos Intermedio 60 min

Blockchain desde cero

Blockchain, Proof of Work, Proof of Stake y contratos inteligentes explicados desde los principios más básicos.

¿Qué es un blockchain?

Un blockchain es un libro de contabilidad digital distribuido. Imagina un cuaderno donde cada página (bloque) contiene transacciones, y cada página tiene un resumen criptográfico (hash) de la página anterior. Cualquier persona del mundo puede tener una copia del cuaderno, y nadie puede modificar páginas pasadas sin que todos lo noten.

Las propiedades clave de un blockchain son:

  • Inmutabilidad: Una vez escrita, la información no puede modificarse sin consenso.
  • Distribución: No hay un servidor central. Cada participante tiene una copia.
  • Transparencia: Cualquier persona puede verificar las transacciones.
  • Sin confianza: No necesitas confiar en una autoridad central; confías en las matemáticas.
Estructura de un blockchain: bloques encadenados por hashes
BLOQUE 0 GENESIS Data: "Hello World" Nonce: 4283 Hash anterior: 0000 Hash: 6a2b...7f3d BLOQUE 1 TX: A -> B 10 TRN TX: C -> D 5 TRN Nonce: 9156 Hash ant: 6a2b...7f3d Hash: b8c4...2e1f BLOQUE 2 TX: E -> F 20 TRN TX: G -> H 3 TRN Nonce: 3201 Hash ant: b8c4...2e1f Hash: f9e1...3a2b

Proof of Work vs Proof of Stake

Estos son los dos mecanismos de consenso más utilizados para acordar qué bloque se añade a la cadena:

Proof of Work (PoW)

Los mineros compiten resolviendo un problema matemático (encontrar un nonce que genere un hash con ciertos ceros al inicio). El primero en resolverlo propone el bloque y recibe una recompensa. Consume mucha energía pero es extremadamente seguro.

Ejemplo: Bitcoin, Litecoin

Proof of Stake (PoS)

Los validadores "apuestan" (bloquean) tokens como garantía. Cuanto más apuestas, más probabilidades tienes de ser elegido para proponer el siguiente bloque. Si actúas mal, pierdes tu apuesta (slashing). Consume mucha menos energía.

Ejemplo: Ethereum 2.0, Solana

Contratos inteligentes

Un contrato inteligente es un programa que se ejecuta en un blockchain. Se llama "contrato" porque automatiza acuerdos: si ocurre X, entonces ejecuta Y. No necesita intermediarios ni autoridades que lo hagan cumplir: el propio código se ejecuta automáticamente cuando se cumplen las condiciones.

Ejemplo sencillo en pseudocódigo:

contrato Votacion {
    mapping(address => bool) votantes;
    uint votosSi;
    uint votosNo;

    function votar(bool aFavor) {
        require(!votantes[msg.sender], "Ya has votado");
        votantes[msg.sender] = true;
        if (aFavor) votosSi++; else votosNo++;
    }
}

Las aplicaciones descentralizadas (dApps) son simplemente interfaces que interactúan con uno o más contratos inteligentes.

Comprueba tu comprensión

1. Qué hace que un blockchain sea inmutable?

2. Qué diferencia principal hay entre PoW y PoS?

3. Un contrato inteligente es...

EN