Glosario / Protocolo y actualizaciones
Taproot
También se conoce como BIP341.
- ¿Qué es Taproot?
- Taproot es la bifurcación blanda (soft fork) de 2021 que dio a bitcoin las firmas Schnorr y un nuevo tipo de salida en el que la ruta de gasto cooperativa se ve idéntica a un pago corriente de una sola clave.
Se especifica en el BIP-341.
Tres especificaciones llegaron juntas: BIP-340 para las firmas Schnorr, BIP-341 para el tipo de salida y BIP-342 para el lenguaje de script ajustado. La activación se produjo en el bloque 709.632 el 14 de noviembre de 2021, cuatro años después de la actualización anterior. El efecto práctico es que configuraciones complicadas, como bóvedas multisig, escrows (depósitos en garantía) o cierres de canal, pueden liquidarse con el mismo aspecto que el pago de cualquier otra persona.
Cómo funciona
El diseño parte de una observación sobre cómo terminan realmente los contratos: casi todos terminan de común acuerdo.
Una salida Taproot fija dos cosas a la vez dentro de un solo valor de 32 bytes. Una es una clave pública, en poder de quienes sean las partes que cooperan. La otra es un árbol de Merkle cuyas hojas son scripts alternativos: las alternativas que se aplican cuando falla la cooperación. La clave publicada es la clave cooperativa ajustada con un hash de sí misma y de la raíz de ese árbol, lo que significa que la salida fija cada alternativa sin revelar que exista alguna.
Después, el gasto sigue una de dos rutas. La ruta de clave produce una sola firma y no publica nada sobre el árbol, así que la transacción no se distingue del pago de una sola persona. La ruta de script revela exactamente una hoja más los hash hermanos necesarios para demostrar que pertenece a la raíz fijada, y todas las demás ramas siguen en secreto para siempre. Una bóveda con un quórum de dos de tres, una clave de recuperación con retraso y una cláusula de emergencia solo expone la cláusula que se usó.
BIP-342 ajustó el lenguaje de script para esas hojas. El opcode (código de operación) OP_CHECKMULTISIG no está disponible dentro de una hoja de Taproot y el opcode OP_CHECKSIGADD lo reemplaza, contando en la pila las firmas válidas en lugar de consumir un lote de una vez, lo que permite escribir comprobaciones de umbral sin la torpeza de antes. El tope de 10.000 bytes para el tamaño de un script y el límite de 201 opcodes desaparecen, reemplazados por un presupuesto de operaciones de firma que crece con el tamaño del testigo. Los tipos de clave pública desconocidos y las versiones de hoja desconocidas se definen como válidos, lo que deja espacio para la siguiente actualización sin otro formato de dirección.
Como Taproot ocupa la versión de testigo 1, sus direcciones usan la suma de comprobación bech32m de BIP-350 en lugar de la del bech32 original. Por eso un software puede aceptar bc1q y aun así rechazar bc1p.
Por qué importa cuando compra bitcoin
El argumento de la privacidad es el que se aplica a casi todo el mundo, incluidas las personas que nunca escribirán un script.
Todas las formas anteriores de proteger bitcoin se delataban solas. Un depósito multisig 2 de 3 se leía on-chain como un depósito multisig 2 de 3, lo que les decía a las empresas de análisis de cadena, y a cualquiera que les comprara datos, que la dirección pertenecía a alguien que conservaba lo suficiente como para tomarse la molestia. Un gasto Taproot cooperativo desde la misma configuración publica una firma frente a una clave. La seguridad no cambia y la señal desaparece.
El costo va en el mismo sentido. Una entrada Taproot por ruta de clave es el tipo de entrada más barato de bitcoin, y la diferencia crece a medida que la configuración se complica, porque las ramas alternativas que nunca se usan no cuestan nada. Para quien monte el tipo de configuración de herencia o multisig que describen nuestras reseñas de billeteras de hardware, eso cambia el cálculo de cuántas claves vale la pena tener.
La fricción es real y conviene tenerla en cuenta al planificar. Algunos exchanges todavía rechazan bc1p como destino de retiro, y el firmware antiguo de las billeteras de hardware puede no derivar direcciones Taproot en absoluto. La solución alternativa es aburrida: reciba en una dirección bc1q de la misma frase semilla y pase a Taproot cuando todas sus herramientas lo admitan. No se pierde nada por esperar, ya que ambos tipos de dirección salen de un mismo respaldo.
Una nota honesta sobre los efectos secundarios. Los datos de testigo baratos de Taproot son lo que volvió económicas las inscripciones, y la demanda resultante llevó las comisiones por vB a niveles que los pagos corrientes no habían visto en años. Fue una consecuencia del descuento y no un objetivo del diseño, y es justo reprochárselo.
Speedy Trial, la solución intermedia que activó Taproot
A principios de 2021 el código ya no generaba controversia, y aun así el método de activación estuvo a punto de hundirlo.
La discusión giraba en torno a BIP-8 y su indicador lockinontimeout (LOT). Un bando quería LOT en true, lo que forzaba la activación en el timeout (fecha de expiración) tanto si los mineros señalizaban como si no, según el principio de que 2017 había demostrado que los mineros podían mantenerlo todo estancado indefinidamente. El otro lo quería en false, según el principio de que una activación forzada con poco apoyo corre el riesgo de provocar la división que intenta evitar. Ninguno de los dos bandos se movió durante meses.
Speedy Trial rompió el punto muerto haciendo más pequeña la pregunta. Mantuvo el recuento por bits de versión de BIP-9, bajó el umbral a 1.815 de 2.016 bloques, abrió una ventana de aproximadamente tres meses y estableció una altura mínima de activación fija de 709.632, de modo que entre quedar fijado y entrar en vigor mediara un intervalo largo y predecible. Si los mineros señalizaban, la bifurcación se producía en una fecha conocida. Si no, el intento expiraba pronto y la discusión más dura podía reanudarse sin haber perdido nada.
El código llegó en Bitcoin Core 0.21.1 el 1 de mayo de 2021. Los mineros superaron el umbral en el período de ajuste de dificultad que terminó el 12 de junio de 2021, lo que dio a la red cinco meses de preaviso antes de que cambiaran las reglas. Sigue siendo el único método de activación usado por bitcoin que se diseñó principalmente para fallar a bajo costo.
Taproot frente a firmas Schnorr
Taproot es el paquete; las firmas Schnorr son una parte de él. BIP-340 define un esquema de firma que existe en criptografía desde la década de 1980 y que en principio podría usarse en cualquier parte, mientras que BIP-341 define cómo es una salida de bitcoin y BIP-342 define lo que se ejecuta dentro de ella. En bitcoin, los tres son inseparables en la práctica, porque una firma BIP-340 solo es válida en un gasto de versión de testigo 1, pero son documentos distintos que resuelven problemas distintos, y la agregación de claves que más interesa a la gente es una propiedad del esquema de firma y no de Taproot en sí.