Blockchain/Nivel IV · El protocolo a fondo/4.2 Actualizaciones/Lección 1
Firmas Taproot y Schnorr
La llave que esconde el contrato y la firma que cabe en un bolsillo
MaterialesUn explorador de bloques capaz de ver el hexadecimal de las transacciones en brutoUna billetera que admite direcciones Taproot (bc1p)Los documentos de especificación BIP341 y BIP340
Curiosidad
- ¿Por qué un acuerdo complejo entre múltiples partes se parece exactamente a un pago sencillo de un individuo en la cadena de bloques?
- ¿Cómo pueden varias claves privadas combinarse en una sola clave pública sin revelar nunca su existencia a los observadores?
- ¿Qué propiedad matemática permite que la firma de diez personas sea indistinguible de la de una sola persona?
Explorar
- Antes de Taproot, se revelaba por completo cualquier condición de gasto compleja cada vez que se gastaban las monedas (y, en el caso de los scripts desnudos, dicha información figuraba directamente en la salida): un gasto multisig mostraba la clave de cada participante, un timelock su duración y un hashlock su estructura. Esta transparencia pública generaba riesgos para la privacidad de los usuarios más sofisticados e hinchaba el espacio del bloque con datos redundantes. La red trataba todos los scripts como libros abiertos, obligando a las configuraciones complejas a transmitir toda su lógica a cada nodo y observador.
- Taproot (BIP341) cambia el modelo de compromiso. Una salida ahora apunta a una única clave pública Q de 32 bytes, calculada como P + t·G. Aquí, P es la clave interna controlada por el pagador principal, mientras que t se compromete con la raíz Merkle de un árbol opcional de scripts alternativos. En la cadena, la salida parece cualquier pago de una sola clave, ocultando toda la complejidad que hay detrás.
- Las firmas Schnorr (BIP340) son la base de esta eficiencia. A diferencia de ECDSA, que utiliza un codificado DER de longitud variable con un promedio de 71–72 bytes, Schnorr genera una firma de tamaño fijo de 64 bytes (65 si se usa un tipo de hash de firma no predeterminado). El tamaño fijo simplifica el análisis y reduce el peso de la transacción. La linealidad del esquema Schnorr también permite la agregación de claves: con un protocolo como MuSig2, varias claves públicas pueden combinarse en una sola clave agregada, lo que permite a los grupos firmar como si fueran una única entidad sin revelar a sus participantes individuales.
- El gasto se realiza a través de dos vías distintas. En la vía de la clave (key path), todas las partes cooperan y firman utilizando su clave agregada; la transacción resultante es indistinguible de cualquier pago ordinario con una sola clave. No se revelan scripts ni se adjuntan datos adicionales. Esto preserva la privacidad en los cierres cooperativos de canales Lightning o billeteras multisig, asegurando que los complejos acuerdos financieros no filtren metadatos al libro mayor público de la blockchain.
- Si la cooperación falla, se activa la vía del script (script path). El pagador revela una hoja específica del árbol Merkle junto con una prueba de su pertenencia. Las ramas no utilizadas permanecen ocultas, preservando la privacidad de las condiciones alternativas. Este mecanismo, conocido como Árboles de Sintaxis Abstracta Merkelizados (MAST), permite que reglas de gasto diversas —como retiros diferidos o claves de emergencia— coexistan dentro de una única salida sin exponerlas hasta que sea estrictamente necesario.
- El impacto práctico es significativo. Las direcciones Taproot comienzan con 'bc1p'. MuSig2 (BIP327) estandariza la agregación de claves, lo que permite un multisig interoperable entre diferentes proveedores de billeteras. Se están desarrollando esquemas de umbral como FROST para propósitos similares. En noviembre de 2021, en el bloque 709,632, la red adoptó esta estructura, haciendo que los scripts complejos sean más pequeños, económicos y privados por defecto cuando se utilizan de forma cooperativa.
Datos clave
- Taproot (BIP341) se activó en noviembre de 2021 en el bloque 709,632.
- Una salida de Taproot se compromete con una única clave Q = P + t·G, donde t es un hash etiquetado de P y, si está presente, la raíz de un árbol de scripts.
- Las firmas Schnorr (BIP340) tienen un tamaño fijo de 64 bytes, lo que elimina la sobrecarga del codificado DER.
- El gasto por la vía de la clave (key path) no revela ningún script y es indistinguible de los pagos con una sola clave.
- El gasto por la vía del script (script path) revela únicamente la hoja de script específica utilizada, manteniendo ocultas las demás ramas.
- MuSig2 (BIP327) permite la agregación de claves n-de-n para billeteras multisigno interoperables.
Ejercicio nueve, seis, tres, uno
9ReunirEnumera 9 tipos distintos de condiciones o scripts de gasto de Bitcoin que existían antes de Taproot. Indica las fugas de privacidad específicas o las penalizaciones por tamaño asociadas a cada uno en la cadena.
6AgruparAgrupa las 9 condiciones en 6 categorías según la forma en que se manejan en una salida de Taproot: completamente ocultas mediante el camino de claves, reveladas solo en caso de disputa, agregadas mediante MuSig2, u otros cambios estructurales.
3DestilarReduce los 6 clústeres a 3 razones principales por las cuales ocultar scripts detrás de una única clave mejora la eficiencia de la red y la privacidad del usuario.
1CristalizarEscribe una oración que explique cómo la estructura del árbol Merkle en Taproot permite acuerdos financieros complejos sin divulgar públicamente sus términos.
Verificación de hechos
Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.