Glosario / Direcciones y claves
P2TR
También se conoce como Dirección Taproot, Pay-to-Taproot o Dirección bc1p.
- ¿Qué es P2TR?
- P2TR paga a una sola clave pública ajustada de 32 bytes, así que un gasto por ruta de clave se ve idéntico on-chain tanto si firmó una persona como si un contrato complejo se liquidó cooperativamente.
Se especifica en el BIP-341.
"Pay to taproot" es la versión de testigo 1, activa desde el bloque 709.632 el 14 de noviembre de 2021, y se escribe como una dirección de 62 caracteres que empieza por bc1p. Un gasto cooperativo publica una sola firma Schnorr de 64 bytes y cuesta alrededor de 57,5 vbytes por entrada, la entrada más barata de bitcoin. Las reglas alternativas que se hayan incorporado a la salida permanecen invisibles a menos que alguien las use de verdad.
Cómo funciona
Una salida P2TR es OP_1 seguido de una inserción de datos de 32 bytes, 34 bytes en total, y esos bytes son una clave pública x-only (solo coordenada x). X-only significa que la coordenada y se descarta y se infiere, lo que ahorra un byte frente a las claves comprimidas de 33 bytes que se usan en todos los demás casos.
La clave que se ve no es la que posee nadie. Es una clave interna ajustada con un hash de sí misma y de la raíz de Merkle de un árbol de scripts alternativos, de modo que el valor publicado fija a la vez la ruta cooperativa y cada alternativa. Después, el gasto sigue una de dos rutas. La ruta de clave produce una sola firma con la clave ajustada y no revela nada más. La ruta de script revela una hoja del árbol, más los hash de la rama que demuestran que esa hoja pertenece a él, y deja el resto del árbol en secreto para siempre.
Las firmas Schnorr de BIP-340 hacen que la ruta de clave sea barata y privada. Miden 64 bytes frente a 71 o 72 de una firma ECDSA codificada en DER, y se suman de forma lineal, así que varios firmantes pueden combinar sus claves y producir una sola firma con MuSig2. Una configuración 2 de 2 que coopera acaba siendo indistinguible de una persona que paga una factura.
Como la versión de testigo 1 exige bech32m, una dirección bc1p usa la constante de suma de comprobación de BIP-350 en lugar de la del bech32 original.
Dónde aparece
Las billeteras que usan Taproot de forma predeterminada derivan de la rama BIP-86, en m/86'/0'/0'. Bitcoin Core añadió la codificación en la versión 22.0 y empezó a generar descriptores tr() para las nuevas billeteras de descriptores en la versión 23.0.
Las inscripciones colocan datos arbitrarios en el testigo de una ruta de script de Taproot, y por eso una gran parte de la actividad bc1p no tiene nada que ver con pagos. Eso es un subproducto del descuento sobre los datos de testigo, no una propiedad del tipo de dirección.
La fricción está en la periferia. Algunos exchanges todavía rechazan destinos de retiro bc1p, y algunos terminales de pago antiguos también. No hay solución alternativa dentro de su billetera: use una dirección bc1q de la misma semilla y consolide más tarde si quiere tenerlo todo bajo Taproot.
P2TR frente a Taproot
Taproot es la actualización y P2TR es el tipo de salida que creó. La bifurcación blanda (soft fork) reunió tres especificaciones: BIP-340 definió las firmas Schnorr, BIP-341 definió el formato de salida y sus reglas de gasto, y BIP-342 definió tapscript, el lenguaje de script ajustado que se usa dentro del árbol. P2TR es la parte con la que usted interactúa, la dirección que empieza por bc1p. Decir "uso Taproot" casi siempre significa "mi billetera me da direcciones P2TR", pero la actualización también cambió cómo se verifican las firmas dentro de scripts que quizá usted nunca toque.