Pajarito en redes
Aquí reunimos lo que Pajarito publica en redes: hilos para profundizar, tests para comprobar lo que sabes, definiciones del glosario en un minuto, avisos de seguridad y datos para entender mejor Bitcoin. Todo en un solo sitio, con filtros por tipo y por tema, para que puedas leerlo sin depender del algoritmo de ninguna red.
Cada publicación enlaza con la guía de la web donde seguir aprendiendo. Si quieres recibirlas según salen, síguenos donde prefieras:
Para preguntas largas, correcciones o colaboraciones, usa la página de contacto.
PajaritoBTC

Esta semana me quedo con una idea: Bitcoin no necesita un reloj central para contar su historia. Las marcas de tiempo son aproximadas, pero los nodos comprueban hashes, transacciones y reglas. La confianza nace de verificar el conjunto.
PajaritoBTC

¿Sabías que…? La hora escrita en un bloque de Bitcoin no es un reloj exacto: la propone el minero y los nodos solo comprueban que encaje dentro de ciertos límites. Sirve para ordenar la cadena aproximadamente, no para marcar la hora al segundo.
PajaritoBTC

¿Cómo puede un UTXO imponer una espera que empieza cuando se confirma, en vez de fijar una fecha global?
La pieza clave es la combinación de nSequence, BIP68 y OP_CHECKSEQUENCEVERIFY (CSV). BIP68 interpreta ciertos valores de nSequence como un tiempo de maduración relativo: la transacción que gasta el UTXO solo puede incluirse después de cierto número de bloques o de unidades de tiempo desde el bloque que confirmó su salida.
CSV añade esa condición dentro del script. No crea un reloj independiente ni desbloquea fondos por sí solo: al evaluar el gasto, los nodos comparan el argumento de CSV con el nSequence de la transacción y con la edad del UTXO. Las unidades deben coincidir; además, el tiempo relativo usa intervalos discretos de 512 segundos, no una precisión exacta.
Hay límites importantes. Un nSequence puede estar desactivado mediante su bit correspondiente, y BIP68 solo afecta a transacciones no finales. CSV tampoco sustituye a nLockTime: uno mide desde la confirmación de una salida; el otro fija una condición absoluta de bloque o tiempo. La wallet debe construir ambas piezas correctamente.
La consecuencia es que los contratos pueden expresar, por consenso, reglas como «este gasto solo será válido después de que transcurran N bloques desde el depósito». La mempool puede rechazarlo mientras sea demasiado pronto, pero no porque sea inválido para siempre. Mineros y relay no inventan la espera: aplican las mismas reglas al seleccionar y validar. Es una interacción precisa entre script, campos de transacción y edad del UTXO, fundamental para timelocks y canales de pago.
La pieza clave es la combinación de nSequence, BIP68 y OP_CHECKSEQUENCEVERIFY (CSV). BIP68 interpreta ciertos valores de nSequence como un tiempo de maduración relativo: la transacción que gasta el UTXO solo puede incluirse después de cierto número de bloques o de unidades de tiempo desde el bloque que confirmó su salida.
CSV añade esa condición dentro del script. No crea un reloj independiente ni desbloquea fondos por sí solo: al evaluar el gasto, los nodos comparan el argumento de CSV con el nSequence de la transacción y con la edad del UTXO. Las unidades deben coincidir; además, el tiempo relativo usa intervalos discretos de 512 segundos, no una precisión exacta.
Hay límites importantes. Un nSequence puede estar desactivado mediante su bit correspondiente, y BIP68 solo afecta a transacciones no finales. CSV tampoco sustituye a nLockTime: uno mide desde la confirmación de una salida; el otro fija una condición absoluta de bloque o tiempo. La wallet debe construir ambas piezas correctamente.
La consecuencia es que los contratos pueden expresar, por consenso, reglas como «este gasto solo será válido después de que transcurran N bloques desde el depósito». La mempool puede rechazarlo mientras sea demasiado pronto, pero no porque sea inválido para siempre. Mineros y relay no inventan la espera: aplican las mismas reglas al seleccionar y validar. Es una interacción precisa entre script, campos de transacción y edad del UTXO, fundamental para timelocks y canales de pago.
PajaritoBTC

Enviar bitcoin no es como mandar un mensaje instantáneo. Primero la transacción se difunde y espera en la mempool; después, un minero puede incluirla en un bloque. La confirmación llega con ese bloque, y las siguientes añaden más historial.
PajaritoBTC

¿Puede un nodo de Bitcoin empezar a funcionar sin validar desde el bloque génesis? Con assumeutxo, sí, pero la precisión importa: no se salta la validación para siempre ni introduce una nueva regla de consenso.
El mecanismo parte de una instantánea del conjunto UTXO en una altura concreta. El nodo carga ese estado, comprueba que corresponde al hash esperado y puede validar bloques posteriores inmediatamente. Mientras tanto, descarga y valida en segundo plano toda la cadena anterior desde el génesis, reconstruyendo su propio chainstate.
La instantánea no es una autoridad: es un punto de partida acelerado. Si el archivo está alterado o no coincide con el compromiso incorporado en el software, no debe aceptarse como válido. Además, hasta que termina la validación histórica existe una frontera operacional: el nodo usa temporalmente un estado cuya procedencia debe tratar con cuidado.
La distinción clave es entre consenso y arranque. Las reglas que determinan qué UTXO puede gastarse no cambian. La instantánea solo evita repetir de inmediato un trabajo ya calculado; la validación completa sigue siendo necesaria para eliminar la dependencia de ese atajo.
La consecuencia es práctica: un nodo puede ponerse al día mucho antes en equipos limitados, sin convertir una instantánea en una nueva fuente de verdad. La seguridad final sigue procediendo de verificar cada bloque y cada transición de estado por cuenta propia. #PajaritoBTC
El mecanismo parte de una instantánea del conjunto UTXO en una altura concreta. El nodo carga ese estado, comprueba que corresponde al hash esperado y puede validar bloques posteriores inmediatamente. Mientras tanto, descarga y valida en segundo plano toda la cadena anterior desde el génesis, reconstruyendo su propio chainstate.
La instantánea no es una autoridad: es un punto de partida acelerado. Si el archivo está alterado o no coincide con el compromiso incorporado en el software, no debe aceptarse como válido. Además, hasta que termina la validación histórica existe una frontera operacional: el nodo usa temporalmente un estado cuya procedencia debe tratar con cuidado.
La distinción clave es entre consenso y arranque. Las reglas que determinan qué UTXO puede gastarse no cambian. La instantánea solo evita repetir de inmediato un trabajo ya calculado; la validación completa sigue siendo necesaria para eliminar la dependencia de ese atajo.
La consecuencia es práctica: un nodo puede ponerse al día mucho antes en equipos limitados, sin convertir una instantánea en una nueva fuente de verdad. La seguridad final sigue procediendo de verificar cada bloque y cada transición de estado por cuenta propia. #PajaritoBTC
PajaritoBTC

¿Cómo decide un nodo si acepta un bloque? Primero comprueba su prueba de trabajo. Después valida cada transacción: firmas, fondos y reglas. Si todo encaja, lo añade a su copia y lo retransmite. Si algo falla, lo descarta.
PajaritoBTC

¿Cómo puede un bloque de Bitcoin viajar por la red sin reenviar todas sus transacciones?
El planteamiento es práctico: cuando un minero encuentra un bloque, muchos nodos ya conocen buena parte de sus transacciones porque las recibieron antes en la mempool. Reenviarlo completo sería redundante.
El mecanismo se llama Compact Block Relay. El nodo emisor envía la cabecera, algunos identificadores cortos y las transacciones que podrían no estar anunciadas. El receptor busca esos identificadores en su mempool y reconstruye localmente el bloque. Si falta alguna transacción, solicita solo las piezas ausentes.
La consecuencia es menor uso de ancho de banda y una propagación más rápida, algo relevante porque mientras los mineros reciben un bloque compiten por encontrar el siguiente. Pero no es magia: si las mempools difieren mucho, habrá más solicitudes y el ahorro será menor.
Además, los identificadores cortos no sustituyen la verificación. El nodo reconstruye el bloque y comprueba sus transacciones y reglas de consenso como siempre. Compact Block Relay optimiza el transporte; no cambia qué hace válido a un bloque.
Es un buen ejemplo de una mejora de red por capas: compartir referencias cuando los datos ya están disponibles, y pedir únicamente lo que falta.
El planteamiento es práctico: cuando un minero encuentra un bloque, muchos nodos ya conocen buena parte de sus transacciones porque las recibieron antes en la mempool. Reenviarlo completo sería redundante.
El mecanismo se llama Compact Block Relay. El nodo emisor envía la cabecera, algunos identificadores cortos y las transacciones que podrían no estar anunciadas. El receptor busca esos identificadores en su mempool y reconstruye localmente el bloque. Si falta alguna transacción, solicita solo las piezas ausentes.
La consecuencia es menor uso de ancho de banda y una propagación más rápida, algo relevante porque mientras los mineros reciben un bloque compiten por encontrar el siguiente. Pero no es magia: si las mempools difieren mucho, habrá más solicitudes y el ahorro será menor.
Además, los identificadores cortos no sustituyen la verificación. El nodo reconstruye el bloque y comprueba sus transacciones y reglas de consenso como siempre. Compact Block Relay optimiza el transporte; no cambia qué hace válido a un bloque.
Es un buen ejemplo de una mejora de red por capas: compartir referencias cuando los datos ya están disponibles, y pedir únicamente lo que falta.
PajaritoBTC

Cada bloque de Bitcoin incluye una huella del bloque anterior. Así se forma una cadena: si alguien cambia una página, también tendría que rehacer todas las siguientes. No evita todo intento de modificación, pero hace que alterar el historial sea detectable y costoso. #PajaritoBTC
PajaritoBTC

¿Por qué una transacción válida puede quedar atrapada aunque ofrezca una comisión razonable?
El problema se conoce como transaction pinning. Aparece cuando una transacción depende de otra y un tercero puede hacer difícil reemplazar o confirmar el conjunto completo usando los límites de la mempool, el cálculo de feerate o la política de reemplazo.
La distinción importa: el consenso solo decide si una transacción incluida en un bloque es válida. La mempool y el relay aplican políticas locales. Por eso un nodo puede rechazar o no retransmitir una transacción sin afirmar que sea inválida en cadena.
En un escenario de reemplazo, una transacción conflictiva puede añadir descendientes o aprovechar límites de tamaño y ancestros. El emisor intenta mejorar la comisión, pero el nodo evalúa el paquete completo y puede impedir que la nueva versión supere las condiciones de reemplazo. La transacción queda “anclada”.
CPFP ofrece otra vía: una transacción hija paga una comisión elevada para que un minero evalúe el feerate combinado de padre e hija. Pero depende de que el paquete llegue al minero y de los límites de aceptación. El carve-out fue una excepción de política diseñada para ciertos cierres cooperativos: permite introducir un pequeño descendiente adicional cuando los límites normales bloquearían el paquete.
Nada de esto obliga a los mineros a incluir el paquete ni cambia las reglas de consenso. Es una interacción entre wallets, políticas de relay, límites de mempool y selección de transacciones. La consecuencia es que la “reemplazabilidad” no es una propiedad aislada de una transacción: depende también de su grafo de dependencias y de cómo cada nodo trata ese paquete.
El problema se conoce como transaction pinning. Aparece cuando una transacción depende de otra y un tercero puede hacer difícil reemplazar o confirmar el conjunto completo usando los límites de la mempool, el cálculo de feerate o la política de reemplazo.
La distinción importa: el consenso solo decide si una transacción incluida en un bloque es válida. La mempool y el relay aplican políticas locales. Por eso un nodo puede rechazar o no retransmitir una transacción sin afirmar que sea inválida en cadena.
En un escenario de reemplazo, una transacción conflictiva puede añadir descendientes o aprovechar límites de tamaño y ancestros. El emisor intenta mejorar la comisión, pero el nodo evalúa el paquete completo y puede impedir que la nueva versión supere las condiciones de reemplazo. La transacción queda “anclada”.
CPFP ofrece otra vía: una transacción hija paga una comisión elevada para que un minero evalúe el feerate combinado de padre e hija. Pero depende de que el paquete llegue al minero y de los límites de aceptación. El carve-out fue una excepción de política diseñada para ciertos cierres cooperativos: permite introducir un pequeño descendiente adicional cuando los límites normales bloquearían el paquete.
Nada de esto obliga a los mineros a incluir el paquete ni cambia las reglas de consenso. Es una interacción entre wallets, políticas de relay, límites de mempool y selección de transacciones. La consecuencia es que la “reemplazabilidad” no es una propiedad aislada de una transacción: depende también de su grafo de dependencias y de cómo cada nodo trata ese paquete.
PajaritoBTC

¿Sabías que…? Un bloque de Bitcoin no guarda todas sus transacciones en el encabezado: solo incluye una huella llamada raíz de Merkle. Con ella, los nodos pueden comprobar que una transacción pertenece al bloque sin comparar todo el contenido. #PajaritoBTC
PajaritoBTC

¿Qué cambió realmente SegWit en Bitcoin? No fue solo una actualización de formato.
El planteamiento era doble. Las firmas ocupaban buena parte de cada transacción y, además, podían modificarse sin cambiar qué fondos se gastaban. Esa maleabilidad complicaba diseños como los canales de pago.
El mecanismo de SegWit, activado en 2017, separa los datos de testigo —principalmente las firmas— de la estructura básica de la transacción. Los nodos siguen verificándolos, pero se contabilizan con un peso distinto al de los datos esenciales.
La consecuencia es doble: se aprovecha mejor el espacio del bloque y desaparece la maleabilidad para las transacciones compatibles. Eso no significa que todas las transacciones ocupen mágicamente menos bytes ni que las firmas dejen de existir.
SegWit también preparó el terreno para mejoras posteriores, como Taproot y ciertos diseños de Lightning. Es un buen ejemplo de ingeniería por capas: cambiar cómo se organizan los datos puede resolver un problema de seguridad y, a la vez, ampliar la capacidad práctica sin abandonar la verificación independiente. #PajaritoBTC
El planteamiento era doble. Las firmas ocupaban buena parte de cada transacción y, además, podían modificarse sin cambiar qué fondos se gastaban. Esa maleabilidad complicaba diseños como los canales de pago.
El mecanismo de SegWit, activado en 2017, separa los datos de testigo —principalmente las firmas— de la estructura básica de la transacción. Los nodos siguen verificándolos, pero se contabilizan con un peso distinto al de los datos esenciales.
La consecuencia es doble: se aprovecha mejor el espacio del bloque y desaparece la maleabilidad para las transacciones compatibles. Eso no significa que todas las transacciones ocupen mágicamente menos bytes ni que las firmas dejen de existir.
SegWit también preparó el terreno para mejoras posteriores, como Taproot y ciertos diseños de Lightning. Es un buen ejemplo de ingeniería por capas: cambiar cómo se organizan los datos puede resolver un problema de seguridad y, a la vez, ampliar la capacidad práctica sin abandonar la verificación independiente. #PajaritoBTC
PajaritoBTC

¿Cómo decide Bitcoin qué reglas nuevas adoptar sin que nadie pueda imponerlas?
El planteamiento es curioso. Cada bloque incluye un campo de versión. No es un número decorativo: los mineros lo usan para señalar qué mejoras del protocolo están listos para aceptar.
El mecanismo es una votación silenciosa. Cuando se propone un cambio, los mineros marcan la versión correspondiente en los bloques que minan. Si el apoyo supera un umbral durante un periodo de bloques, la mejora se activa. Si no llega, no se aplica.
La consecuencia es notable. Ningún desarrollador ni empresa puede forzar un cambio: la activación depende de que una mayoría de la potencia de minería lo respalde. Es un mecanismo que protege la red de imposiciones.
Es un detalle que muestra algo profundo: en Bitcoin la gobernanza no se decreta, se señala y se mide. #PajaritoBTC
El planteamiento es curioso. Cada bloque incluye un campo de versión. No es un número decorativo: los mineros lo usan para señalar qué mejoras del protocolo están listos para aceptar.
El mecanismo es una votación silenciosa. Cuando se propone un cambio, los mineros marcan la versión correspondiente en los bloques que minan. Si el apoyo supera un umbral durante un periodo de bloques, la mejora se activa. Si no llega, no se aplica.
La consecuencia es notable. Ningún desarrollador ni empresa puede forzar un cambio: la activación depende de que una mayoría de la potencia de minería lo respalde. Es un mecanismo que protege la red de imposiciones.
Es un detalle que muestra algo profundo: en Bitcoin la gobernanza no se decreta, se señala y se mide. #PajaritoBTC
