0Pricing
Cryptology Academy · Lección

Bitcoin Script y verificación de firmas UTXO

Siga los scripts pay-to-public-key-hash (P2PKH) y la firma ECDSA.

Bitcoin Script y verificación de firmas UTXO es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Modelo UTXO

Bitcoin utiliza salidas de transacciones no gastadas (UTXO). Cada UTXO es una moneda con un script de bloqueo (scriptPubKey). Para gastarla, quien la gasta proporciona un script de desbloqueo (scriptSig) que satisface el script de bloqueo. Los UTXO son atómicos: se gastan o no se gastan, nunca parcialmente.

Bitcoin Script

Bitcoin Script es un lenguaje basado en pila y no Turing-completo. Los scripts se ejecutan insertando datos en la pila y ejecutando opcodes. No hay bucles ni recursión: los scripts siempre terminan. Esta limitación intencional evita la denegación de servicio y hace que la verificación del script sea O(n) respecto a su longitud.

P2PKH: pago a hash de clave pública

Tipo de salida más común. scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG. scriptSig: . Ejecución: push sig+pubkey, dup pubkey, hash160(top), comparar con el hash incluido y verificar la firma ECDSA. Si todo es correcto, la moneda se puede gastar.

Traza de ejecución de P2PKH

Traza de la pila para P2PKH: push ; push ; OP_DUP → inserta una copia; OP_HASH160 → aplica hash160(top); push ; OP_EQUALVERIFY → extrae dos elementos y falla si no son iguales; OP_CHECKSIG → extrae sig+pubKey, verifica ECDSA e inserta TRUE/FALSE. El script tiene éxito si el resultado es TRUE.

ECDSA en Bitcoin

Bitcoin utiliza ECDSA sobre secp256k1 (curva de Koblitz, y^2 = x^3 + 7 mod p). La clave privada d ∈ [1, n-1]. La clave pública es Q = d*G. Sign(m): k aleatorio; r = (k*G).x mod n; s = k^{-1}(H(m)+r*d) mod n. La firma = (r, s). Se codifica en DER dentro de scriptSig.

Tipos de SIGHASH

Las firmas de Bitcoin cubren partes específicas de la transacción: SIGHASH_ALL (predeterminado): firma todas las entradas y salidas. SIGHASH_SINGLE: firma únicamente la salida correspondiente. SIGHASH_NONE: no firma ninguna salida (peligroso). SIGHASH_ANYONECANPAY: firma únicamente la entrada propia, lo que permite realizar transacciones colaborativas.

P2SH: pago a hash de script

P2SH permite ocultar condiciones de gasto complejas detrás de un hash. scriptPubKey: OP_HASH160 OP_EQUAL. scriptSig: . Ejecución: comprueba que hash(redeemScript) == scriptHash y, después, ejecuta redeemScript. Permite utilizar multifirma sin revelar las condiciones hasta el momento del gasto.

Multifirma (2 de 3)

redeemScript: OP_2 OP_3 OP_CHECKMULTISIG. scriptSig: OP_0 . OP_0 corrige un error de OP_CHECKMULTISIG, que extrae un elemento adicional de la pila. La multifirma 2 de 3 requiere 2 de las 3 firmas.

Segwit y P2WPKH

Segregated Witness (SegWit, BIP-141) mueve las firmas fuera de scriptSig a un campo witness independiente. Soluciona la maleabilidad de las transacciones (el ID cambia si cambia scriptSig). scriptPubKey de P2WPKH: OP_0 <20-byte pubKeyHash>. Witness: [ ].

Taproot (P2TR)

Taproot (BIP-340/341/342) utiliza firmas Schnorr y árboles de sintaxis abstracta merkelizados (MAST). Gasto predeterminado: una única firma Schnorr, indistinguible de un gasto por keypath. Las condiciones complejas se ocultan en un árbol de Merkle y solo se revelan si se utilizan. Privacidad y eficiencia.

Verificación de scripts en el código

Bitcoin Core valida los scripts mediante un intérprete basado en pila. CheckSig llama a VerifyScript, que ejecuta la combinación de scriptSig+scriptPubKey. Para cada opcode CHECKSIG, llama a CheckECDSASignature, que verifica la firma (r,s) codificada en DER frente al hash de la transacción mediante secp256k1.

Comprobación rápida

¿Qué verifica OP_CHECKSIG en un script P2PKH?

Recapitulación

Los UTXO utilizan Bitcoin Script, basado en pila. P2PKH: el patrón de gasto más común: verifica el hash de una clave pública y después comprueba la firma ECDSA. SegWit soluciona la maleabilidad; Taproot incorpora Schnorr y MAST. Siguiente tema: criptoanálisis diferencial.

Preguntas frecuentes

¿La lección «Bitcoin Script y verificación de firmas UTXO» es gratis?

Sí — el texto completo de «Bitcoin Script y verificación de firmas UTXO» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Bitcoin Script y verificación de firmas UTXO»?

Siga los scripts pay-to-public-key-hash (P2PKH) y la firma ECDSA. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Bitcoin Script y verificación de firmas UTXO»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Cadenas de hash y vinculación de bloques
  2. Árboles de Merkle: integridad de transacciones a escala
  3. Proof of Work: minería y ajuste de dificultad
  4. Bitcoin Script y verificación de firmas UTXO
← Volver a Cryptology Academy