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

¿Qué significa realmente que una salida de Bitcoin esté «bloqueada»?
Una salida no guarda una orden como «pagar a esta persona». Contiene un scriptPubKey: un conjunto de condiciones que debe cumplir quien quiera gastarla. En un pago habitual, esas condiciones exigen demostrar control sobre una clave pública.
Al gastar, la transacción aporta los datos necesarios —por ejemplo, una firma y una clave pública— en el scriptSig o en el testigo, según el tipo de salida. El nodo combina esos datos con la condición original y ejecuta las reglas del script. Si la firma corresponde, el hash encaja y no se viola ninguna condición, el gasto puede ser válido.
La consecuencia es una separación útil: la salida define qué prueba hace falta y la transacción presenta esa prueba. La dirección es solo una representación legible de parte de esa condición; no es una cuenta con saldo propio ni una contraseña.
Por eso Bitcoin puede expresar algo más complejo que «firma de una persona»: varias firmas, bloqueos temporales o rutas alternativas. La cadena no necesita conocer la intención humana; solo verifica si los datos entregados satisfacen las condiciones comprometidas.
Una salida no guarda una orden como «pagar a esta persona». Contiene un scriptPubKey: un conjunto de condiciones que debe cumplir quien quiera gastarla. En un pago habitual, esas condiciones exigen demostrar control sobre una clave pública.
Al gastar, la transacción aporta los datos necesarios —por ejemplo, una firma y una clave pública— en el scriptSig o en el testigo, según el tipo de salida. El nodo combina esos datos con la condición original y ejecuta las reglas del script. Si la firma corresponde, el hash encaja y no se viola ninguna condición, el gasto puede ser válido.
La consecuencia es una separación útil: la salida define qué prueba hace falta y la transacción presenta esa prueba. La dirección es solo una representación legible de parte de esa condición; no es una cuenta con saldo propio ni una contraseña.
Por eso Bitcoin puede expresar algo más complejo que «firma de una persona»: varias firmas, bloqueos temporales o rutas alternativas. La cadena no necesita conocer la intención humana; solo verifica si los datos entregados satisfacen las condiciones comprometidas.
PajaritoBTC

Una idea útil de esta semana: en Bitcoin, cada comprobación responde a una pregunta distinta. La suma de comprobación revisa el formato; el bloque confirma el pago. Que algo “parezca correcto” no basta: hay que saber qué se está verificando.
PajaritoBTC

¿Sabías que…? En Bitcoin, una salida no se «divide» al gastarla: se consume entera y la transacción crea nuevas salidas, incluida la de cambio. Por eso cada salida anterior solo puede gastarse una vez.
PajaritoBTC

¿Qué comprueba realmente un nodo cuando un gasto Taproot usa una rama de script?
La salida contiene una clave pública x-only: solo se transmite la coordenada X, mientras que la paridad queda implícita. Esa clave no es necesariamente la del participante. En BIP341 se obtiene ajustando una clave interna con el hash comprometido del árbol de scripts. El resultado es la output key que aparece en el scriptPubKey.
En un gasto por script, el testigo incluye la hoja ejecutada, sus argumentos y un control block. Este aporta la clave interna, el bit de paridad de la output key y los hashes hermanos necesarios para reconstruir la raíz de Merkle. El nodo calcula el tweak, recupera la clave de salida y comprueba que coincide con la salida que se está gastando; después valida el script con la versión y el leaf version correspondientes.
La paridad no es decoración: permite seleccionar la representación correcta de la clave pública resultante. Si falla el tweak, la raíz, la paridad o la ejecución del script, el gasto no cumple consenso. La wallet prepara estos datos; relay puede aplicar políticas adicionales, pero no redefine la prueba. La consecuencia es que Taproot no revela todo el árbol: demuestra criptográficamente que la rama publicada pertenecía al compromiso correcto.
La salida contiene una clave pública x-only: solo se transmite la coordenada X, mientras que la paridad queda implícita. Esa clave no es necesariamente la del participante. En BIP341 se obtiene ajustando una clave interna con el hash comprometido del árbol de scripts. El resultado es la output key que aparece en el scriptPubKey.
En un gasto por script, el testigo incluye la hoja ejecutada, sus argumentos y un control block. Este aporta la clave interna, el bit de paridad de la output key y los hashes hermanos necesarios para reconstruir la raíz de Merkle. El nodo calcula el tweak, recupera la clave de salida y comprueba que coincide con la salida que se está gastando; después valida el script con la versión y el leaf version correspondientes.
La paridad no es decoración: permite seleccionar la representación correcta de la clave pública resultante. Si falla el tweak, la raíz, la paridad o la ejecución del script, el gasto no cumple consenso. La wallet prepara estos datos; relay puede aplicar políticas adicionales, pero no redefine la prueba. La consecuencia es que Taproot no revela todo el árbol: demuestra criptográficamente que la rama publicada pertenecía al compromiso correcto.
PajaritoBTC

¿Sabías que…? En Bitcoin, una firma digital no revela la clave privada: permite comprobar que quien autoriza un gasto conoce el secreto, sin mostrarlo. Es una prueba matemática, no una contraseña compartida.
PajaritoBTC

¿Cómo verifica un nodo que los datos witness de un bloque pertenecen realmente a las transacciones que lo forman?
SegWit introdujo una segunda huella: el wtxid. A diferencia del txid tradicional, el wtxid sí incluye el witness, como las firmas. El bloque construye un árbol de Merkle con esos identificadores y obtiene una raíz de testigos.
Esa raíz no aparece directamente en el encabezado. El minero la combina con un valor reservado de 32 bytes y calcula un compromiso mediante doble SHA-256. Después coloca el resultado en una salida OP_RETURN de la transacción coinbase, normalmente identificable por el prefijo de compromiso witness.
Al validar el bloque, el nodo reconstruye los wtxid, calcula la raíz, recupera el valor reservado del witness coinbase y comprueba que el compromiso coincide. Si no coincide, el bloque no es válido bajo las reglas de consenso de SegWit. No basta con que sus transacciones tengan firmas correctas por separado.
Hay límites y excepciones importantes. La coinbase no tiene una entrada normal y su propio wtxid se trata especialmente al construir el árbol. Además, el compromiso no demuestra que una transacción haya sido retransmitida antes ni obliga a un minero a elegir determinado conjunto de transacciones: relay y minería siguen siendo políticas y decisiones operativas.
La consecuencia es una separación limpia: el encabezado compromete la estructura principal del bloque y la coinbase ancla los witness. Así, los datos segregados no quedan fuera de la integridad verificable del bloque; se comprometen mediante una ruta adicional que cualquier nodo puede recalcular sin confiar en el minero. #PajaritoBTC
SegWit introdujo una segunda huella: el wtxid. A diferencia del txid tradicional, el wtxid sí incluye el witness, como las firmas. El bloque construye un árbol de Merkle con esos identificadores y obtiene una raíz de testigos.
Esa raíz no aparece directamente en el encabezado. El minero la combina con un valor reservado de 32 bytes y calcula un compromiso mediante doble SHA-256. Después coloca el resultado en una salida OP_RETURN de la transacción coinbase, normalmente identificable por el prefijo de compromiso witness.
Al validar el bloque, el nodo reconstruye los wtxid, calcula la raíz, recupera el valor reservado del witness coinbase y comprueba que el compromiso coincide. Si no coincide, el bloque no es válido bajo las reglas de consenso de SegWit. No basta con que sus transacciones tengan firmas correctas por separado.
Hay límites y excepciones importantes. La coinbase no tiene una entrada normal y su propio wtxid se trata especialmente al construir el árbol. Además, el compromiso no demuestra que una transacción haya sido retransmitida antes ni obliga a un minero a elegir determinado conjunto de transacciones: relay y minería siguen siendo políticas y decisiones operativas.
La consecuencia es una separación limpia: el encabezado compromete la estructura principal del bloque y la coinbase ancla los witness. Así, los datos segregados no quedan fuera de la integridad verificable del bloque; se comprometen mediante una ruta adicional que cualquier nodo puede recalcular sin confiar en el minero. #PajaritoBTC
PajaritoBTC

¿Cómo pueden varias partes firmar una transacción de Bitcoin sin compartir sus claves privadas?
La pieza clave es una PSBT, sigla de Partially Signed Bitcoin Transaction. No es una transacción distinta ni dinero pendiente: es un contenedor que reúne una transacción sin completar y la información necesaria para que distintas wallets la revisen y firmen.
Una wallet puede construir las entradas y salidas; otra puede comprobar los UTXO, los importes y el destino; cada firmante añade su firma usando su propia clave. Después, una wallet combina las firmas y finaliza la transacción. En ningún paso necesita recibir las claves privadas de los demás.
Esto resulta útil en configuraciones multisig y también con dispositivos hardware: el ordenador prepara la PSBT, el dispositivo muestra o verifica los datos y firma, y luego la transacción vuelve al ordenador para difundirse. La PSBT facilita el transporte del trabajo, pero no sustituye la revisión humana.
La consecuencia es una separación clara entre construir, autorizar y transmitir. Una PSBT puede estar incompleta, ser rechazada o incluso contener un destino que el firmante no esperaba. Que una wallet pueda firmarla no demuestra que sea conveniente hacerlo.
Entender las PSBT ayuda a ver que una transacción no tiene por qué pasar directamente de una wallet a la red: puede viajar entre participantes, acumular autorizaciones y solo después convertirse en una transacción final lista para validarse. #PajaritoBTC
La pieza clave es una PSBT, sigla de Partially Signed Bitcoin Transaction. No es una transacción distinta ni dinero pendiente: es un contenedor que reúne una transacción sin completar y la información necesaria para que distintas wallets la revisen y firmen.
Una wallet puede construir las entradas y salidas; otra puede comprobar los UTXO, los importes y el destino; cada firmante añade su firma usando su propia clave. Después, una wallet combina las firmas y finaliza la transacción. En ningún paso necesita recibir las claves privadas de los demás.
Esto resulta útil en configuraciones multisig y también con dispositivos hardware: el ordenador prepara la PSBT, el dispositivo muestra o verifica los datos y firma, y luego la transacción vuelve al ordenador para difundirse. La PSBT facilita el transporte del trabajo, pero no sustituye la revisión humana.
La consecuencia es una separación clara entre construir, autorizar y transmitir. Una PSBT puede estar incompleta, ser rechazada o incluso contener un destino que el firmante no esperaba. Que una wallet pueda firmarla no demuestra que sea conveniente hacerlo.
Entender las PSBT ayuda a ver que una transacción no tiene por qué pasar directamente de una wallet a la red: puede viajar entre participantes, acumular autorizaciones y solo después convertirse en una transacción final lista para validarse. #PajaritoBTC
PajaritoBTC

¿Qué está firmando exactamente una firma de Bitcoin? No firma «la transacción» como una pieza indivisible: firma un resumen definido por SIGHASH, y ese resumen puede cubrir más o menos partes del gasto.
En el caso habitual SIGHASH_ALL, la firma compromete las entradas y las salidas. Así, cambiar el destinatario, el importe de una salida o una entrada suele invalidarla. El campo sighash de cada entrada permite elegir excepciones: NONE omite las salidas; SINGLE compromete solo una salida correspondiente —con reglas históricas peculiares si no existe—; ANYONECANPAY limita el compromiso a la entrada firmada.
SegWit cambió además qué datos entran en el cálculo. Para una entrada SegWit v0, el digest incluye el importe del UTXO gastado y usa hashes compartidos de prevouts, secuencias y salidas. Esto evita la maleabilidad de las firmas anterior y reduce el coste de recalcular datos repetidos. La wallet debe conocer el importe exacto: no basta con tener la referencia del UTXO.
La separación de capas importa. SIGHASH es una regla de consenso para validar firmas; la wallet decide qué modo construir; el relay no convierte una firma parcial en válida; y un minero solo puede incluir la transacción si todas sus firmas satisfacen el compromiso elegido.
La consecuencia es que una firma no significa simplemente «autorizo cualquier versión». Significa «autorizo esta combinación concreta de datos», según el tipo SIGHASH. Los modificadores permiten construir transacciones colaborativas, pero también reducen qué cambios quedan protegidos. Leer el digest es entender el límite exacto de la autorización. #PajaritoBTC
En el caso habitual SIGHASH_ALL, la firma compromete las entradas y las salidas. Así, cambiar el destinatario, el importe de una salida o una entrada suele invalidarla. El campo sighash de cada entrada permite elegir excepciones: NONE omite las salidas; SINGLE compromete solo una salida correspondiente —con reglas históricas peculiares si no existe—; ANYONECANPAY limita el compromiso a la entrada firmada.
SegWit cambió además qué datos entran en el cálculo. Para una entrada SegWit v0, el digest incluye el importe del UTXO gastado y usa hashes compartidos de prevouts, secuencias y salidas. Esto evita la maleabilidad de las firmas anterior y reduce el coste de recalcular datos repetidos. La wallet debe conocer el importe exacto: no basta con tener la referencia del UTXO.
La separación de capas importa. SIGHASH es una regla de consenso para validar firmas; la wallet decide qué modo construir; el relay no convierte una firma parcial en válida; y un minero solo puede incluir la transacción si todas sus firmas satisfacen el compromiso elegido.
La consecuencia es que una firma no significa simplemente «autorizo cualquier versión». Significa «autorizo esta combinación concreta de datos», según el tipo SIGHASH. Los modificadores permiten construir transacciones colaborativas, pero también reducen qué cambios quedan protegidos. Leer el digest es entender el límite exacto de la autorización. #PajaritoBTC
PajaritoBTC

Al pegar una dirección de Bitcoin, tu wallet puede detectar algunas erratas antes de enviar. La dirección incluye una suma de comprobación: si no encaja, se rechaza. No confirma que el destinatario sea correcto; solo que el formato es válido.
PajaritoBTC

¿Sabías que…? Bitcoin puede guardar pequeños datos en una transacción mediante OP_RETURN. Esa salida queda marcada como no gastable: sirve para registrar una huella o mensaje breve, pero no añade un UTXO que cada nodo deba conservar como dinero disponible.
PajaritoBTC

¿Qué decide una wallet cuando envías una cantidad que no coincide con ninguna salida que posees?
No elige monedas dentro de una cuenta: selecciona UTXO concretos, es decir, salidas anteriores que puede gastar. Si necesitas 80.000 satoshis y tienes salidas de 50.000 y 60.000, quizá deba usar ambas y crear una salida de cambio.
Ese proceso se llama coin selection. La wallet compara distintas combinaciones según varios objetivos: pagar menos comisión ahora, evitar dejar muchos UTXO pequeños, reducir el cambio o no juntar salidas que puedan revelar que pertenecen a la misma persona.
No existe una combinación perfecta para todos los casos. Elegir una sola salida de 100.000 satoshis puede ser sencillo, pero crea cambio; usar varias puede consumir más espacio y aumentar el fee. Por eso algunas wallets prefieren consolidar en momentos tranquilos, mientras otras priorizan no vincular historiales.
La consecuencia es que el coste y la privacidad de un pago dependen también de decisiones internas de la wallet. Dos wallets con los mismos fondos pueden construir transacciones distintas, ambas válidas, pero con tamaños y huellas diferentes.
Coin selection muestra que una wallet no solo firma: también administra el conjunto de salidas que controla. Entender esa capa ayuda a leer por qué aparece el cambio, por qué una transacción pesa más y por qué gastar no es simplemente restar un número. #PajaritoBTC
No elige monedas dentro de una cuenta: selecciona UTXO concretos, es decir, salidas anteriores que puede gastar. Si necesitas 80.000 satoshis y tienes salidas de 50.000 y 60.000, quizá deba usar ambas y crear una salida de cambio.
Ese proceso se llama coin selection. La wallet compara distintas combinaciones según varios objetivos: pagar menos comisión ahora, evitar dejar muchos UTXO pequeños, reducir el cambio o no juntar salidas que puedan revelar que pertenecen a la misma persona.
No existe una combinación perfecta para todos los casos. Elegir una sola salida de 100.000 satoshis puede ser sencillo, pero crea cambio; usar varias puede consumir más espacio y aumentar el fee. Por eso algunas wallets prefieren consolidar en momentos tranquilos, mientras otras priorizan no vincular historiales.
La consecuencia es que el coste y la privacidad de un pago dependen también de decisiones internas de la wallet. Dos wallets con los mismos fondos pueden construir transacciones distintas, ambas válidas, pero con tamaños y huellas diferentes.
Coin selection muestra que una wallet no solo firma: también administra el conjunto de salidas que controla. Entender esa capa ayuda a leer por qué aparece el cambio, por qué una transacción pesa más y por qué gastar no es simplemente restar un número. #PajaritoBTC
PajaritoBTC

Una transacción de Bitcoin tiene un identificador, parecido al número de seguimiento de un paquete. Sirve para localizarla y comprobar sus datos, pero no contiene los bitcoin ni garantiza que ya esté confirmada: eso depende de que entre en un bloque.
