Quiero crear una dirección P2TR (Pay to Taproot) pero solo quiero acceder al gasto de la ruta clave, no tengo ningún uso para el gasto de la ruta del script en este ejemplo específico. ¿Qué debo hacer con respecto a la ruta del script en ese caso?
BIP 341 (BIP-Taproot) analiza este ejemplo en el que no necesita la ruta del script.
Si las condiciones de gasto no requieren una ruta de secuencia de comandos, la clave de salida debe comprometerse con una ruta de secuencia de comandos no gastable en lugar de no tener ninguna ruta de secuencia de comandos.
El BIP también explica aquí la razón de esto.
Si la clave de salida taproot es un conjunto de claves, existe la posibilidad de que una parte malintencionada agregue una ruta de secuencia de comandos sin que las demás partes se den cuenta. Esto permite eludir la política multipartidista y robar las monedas.
Comprometerse con una ruta de secuencia de comandos no prescindible proporciona la capacidad de demostrar a un observador externo que no existe una ruta de secuencia de comandos oculta. Si no hubiera ningún ajuste, sería necesario revelar cualquier esquema de agregación de claves a ese observador, incluidas las claves públicas individuales para obtener el mismo efecto (e incluso esto puede no ser suficiente para ciertos esquemas de agregación de claves).
El taller de Bitcoin Optech en Taproot explica que se calcula la clave pública modificada usando:
Q = P + H(P|c)G
dónde
Q is the tweaked public key
P is the initial public key (P = xG where x is the private key)
H is the hash function
| is concatenation
c is the commitment to the script path spend
G is the generator point
Si no necesita el gasto de la ruta del script, puede calcular la clave pública modificada usando:
Q = P + H(bytes(P))G
donde bytes(P)
es la serialización de P como se define en BIP 340 (BIP-Schnorr).
Esta clave pública modificada Q será su dirección Taproot (P2TR). Recuerde que no hacemos hash (modificado) de claves públicas con Taproot (SegWit v1) como lo hacemos con P2PKH, P2SH, P2WSH (SegWit v0).
davidbak
miguel folkson