119 / 736PROP

Block Propagation

Cómo viajan los bloques nuevos

Cuando un minero encuentra un bloque, los demás tienen que enterarse. Cómo recorre la red esa noticia, por qué no hace falta reenviar todos los datos y por qué la rapidez nunca sustituye a la verificación.

Block Propagation es la difusión de un bloque nuevo entre los ordenadores de la red Bitcoin. La transmisión entrega datos; cada nodo receptor debe comprobar si el bloque es válido y puede formar parte del historial que acepta.

Imaginemos que Ana se dedica a la minería y acaba de encontrar un bloque con transacciones. Un bloque agrupa transacciones en un lote que se añade al historial compartido. Bitcoin no tiene una central que lo envíe a todo el mundo a la vez. El nodo de Ana avisa a sus vecinos: los ordenadores con los que está conectado. La noticia sigue avanzando y llega a cada persona en un momento distinto. Ese recorrido es Block Propagation. Su velocidad influye en cuánto tiempo siguen trabajando los demás sobre el historial anterior. [1] [6]

Pedro tiene en casa un Full Node, un programa que comprueba los bloques y las transacciones de Bitcoin siguiendo las reglas. Saber que existe un bloque no basta: necesita su contenido completo. Puede descargarlo entero o reconstruirlo con el mensaje recibido y las transacciones que ya tiene. Es como recibir una lista de páginas y buscarlas en su biblioteca: viajan menos datos, pero el libro terminado debe ser el mismo. [1] [7]

Cada bloque tiene una cabecera breve, el Block Header. Entre otras cosas, enlaza con el bloque anterior y permite comprobar Proof of Work, la prueba del trabajo de cálculo exigido por la minería. Los mineros buscan esa prueba repitiendo cálculos; los demás pueden comprobar rápidamente el resultado. Es una primera comprobación útil, no una garantía de que cada pago sea válido. La cabecera sola no dice si las firmas son correctas ni si se gastan fondos disponibles que aún no se han utilizado. Una firma digital acredita la autorización de un pago mediante una clave privada, un valor numérico secreto, sin revelar esa clave. Un UTXO es una salida de transacción aún no gastada: un registro de una cantidad y de las condiciones para gastarla. [6] [8]

Pedro recibió muchas transacciones antes de que se minara el bloque. Las guarda en su Mempool, el conjunto local de transacciones sin confirmar. El mecanismo Compact Blocks, descrito en BIP 152, aprovecha ese conocimiento: envía principalmente identificadores cortos, junto con algunas transacciones completas, en vez de repetirlas todas. Pedro coloca las piezas conocidas en el orden correcto. Se reduce el mensaje de red, no el bloque que se verifica; sus reglas de validez no cambian. [2] [7]

No existe un único Mempool mundial. Cada nodo puede conocer transacciones algo distintas, así que a Pedro pueden faltarle algunas. Solicita los datos necesarios o recurre a descargar el bloque completo. Esa petición y su respuesta añaden tiempo. No justifican inventar el contenido ni saltarse verificaciones. El ahorro real depende también de cuántas transacciones conoce ya quien recibe el bloque. [2] [7]

El modo más rápido de BIP 152 permite reenviar antes de terminar todas las comprobaciones de las transacciones. No supone enviar a ciegas: el emisor debe verificar, entre otras cosas, la conexión con la cadena validada, Proof of Work y la correspondencia criptográfica de la cabecera con las transacciones transmitidas. El envío y las comprobaciones restantes pueden solaparse. Aun así, un Full Node solo incorpora el bloque a su historial activo después de verificarlo por completo. [2] [4] [7]

Antes de que el bloque de Ana llegue a todos, otro minero puede encontrar uno que tenga el mismo predecesor. Durante un momento, una parte de la red ve una rama válida y otra parte ve la otra. Decide el trabajo acumulado posterior entre las ramas válidas, no una votación de ordenadores. Un bloque válido que queda atrás se llama Stale Block. Una difusión más rápida reduce ese intervalo de competencia, pero no lo elimina. [6] [8]

Si el bloque de Ana tarda en difundirse, aumenta la posibilidad de que otros continúen sobre un competidor y dejen el suyo fuera de la cadena aceptada. En ese historial, su bloque no le da recompensa. Por eso una buena conexión importa más allá de la comodidad. Su ventaja puede favorecer la concentración de la minería en operadores mejor conectados. Sin embargo, una línea lenta por sí sola no mide la centralización ni demuestra un ataque. [7] [8]

FIBRE es un ejemplo de sistema especializado en transmitir bloques con rapidez. Busca reducir retrasos, incluidos los causados por la pérdida de paquetes: pequeñas partes del mensaje enviado. Esa ruta puede entregar antes un bloque, pero no concede a su operador el derecho a decidir por Pedro si es válido. Su Full Node debe comprobar las mismas reglas, venga de donde venga la información. [3] [9]

La red también debe cuidar el volumen de datos, la privacidad y la resistencia de sus conexiones. Depender de una sola ruta sigue siendo una debilidad, aunque sea rápida. Además, cada mejora tiene su función: BIP 330, una pieza de Erlay, ayuda a nodos vecinos a detectar diferencias entre conjuntos de anuncios de transacciones. No sustituye la transmisión de bloques de BIP 152. Se busca comunicar mejor sin que cada nodo renuncie a sus propias comprobaciones. [1] [5]

Para obtener la imagen más completa, lee esta entrada junto con Compact Blocks, Selfish Mining, Eclipse Attack, Initial Block Download, Bitcoin, Full Node. También enlazan con esta entrada Sybil Attack, Eclipse Attack, Selfish Mining, Compact Blocks.

DOC · 001Bitcoin Developer Guide — P2P NetworkDocumentación DOC · 002BIP 152 — Compact Block RelayEspecificación DOC · 003Bitcoin FIBREDocumentación DOC · 004Bitcoin Core v29.0 — net processingDocumentación DOC · 005BIP 330 — ErlayEspecificación DOC · 006Satoshi Nakamoto — Bitcoin whitepaperFuente primaria DOC · 007Bitcoin Core — Compact Blocks FAQDocumentación DOC · 008Bitcoin Developer Guide — Block ChainDocumentación DOC · 009FIBRE — project overviewFuente primaria
Revisado: Fuentes primero · No es asesoramiento financiero