Taproot está llegando: qué es y cómo beneficiará a Bitcoin

El autor:La bondad, Creado: 2019-02-12 09:33:46, Actualizado:

Los usuarios de Bitcoin pueden, en poco tiempo, ser capaces de beneficiarse de un truco llamado Taproot. Primero propuesto por el colaborador de Bitcoin Core y ex CTO de Blockstream Gregory Maxwell, Taproot ampliaría la flexibilidad de los contratos inteligentes de Bitcoin, al tiempo que ofrecería más privacidad al hacerlo.

Aunque es una gran empresa, esto no es solo teoría. Varios de los contribuyentes más prolíficos de Bitcoin Core , incluidos Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell y, de hecho, Gregory Maxwell están trabajando en una propuesta de firma de Schnorr que incluiría Taproot, todo en una actualización de protocolo.

Esto es lo que es Taproot y cómo funciona.

P2SH

Todos los bitcoins están esencialmente "bloqueados" en scripts: un par de líneas de código incrustadas en una transacción incluida en la cadena de bloques, que definen cómo las monedas pueden gastarse en la próxima transacción. Las condiciones de gasto generalmente implican proporcionar una firma para probar la propiedad de las monedas.

Se pueden mezclar y combinar diferentes condiciones, para crear tipos complejos de contratos inteligentes. Un ejemplo de tal contrato podría ser que las monedas se pueden gastar si tanto Alice como Bob firman, o si Alice firma sola después de que haya pasado una semana, o si Bob firma solo mientras también proporciona un número secreto.

Desde 2012, los scripts (las condiciones) a menudo no son visibles públicamente al principio; solo el nuevo propietario de las monedas sabe cómo se pueden gastar. Esto se hace con un truco llamado P2SH (pay to script hash), donde inicialmente solo se incluye un hash del script en la cadena de bloques. Este número aparentemente codificado al azar contiene las monedas. Cuando el propietario gasta las monedas, revela todo el script, así como la solución al script al mismo tiempo.

Sin embargo, cuando las monedas se gastan, actualmente es necesario revelar todas las condiciones posibles que podrían haberse cumplido, incluidas las condiciones que no se cumplieron. Esto tiene dos inconvenientes principales. Uno, es pesado en datos, especialmente si hay muchas condiciones. Y dos, es malo para la privacidad. Todos aprenden todas las diferentes formas en que se podrían haber gastado los fondos, que pueden, por ejemplo, revelar qué tipo de billetera se usó y tal vez incluso más.

El mástil

MAST (Merkelized Abstract Syntax Tree) es una solución propuesta que utiliza árboles de Merkle (una estructura de datos compacta de décadas inventada por el criptógrafo Ralph Merkle) para evitar estos dos inconvenientes.

El beneficio único es que si se revela alguno de los datos en el árbol de Merkle, la raíz de Merkle y algunos datos adicionales (llamados el camino de Merkle) se pueden usar para verificar que esos datos específicos se incluyeron en el árbol de Merkle.

Con MAST, esto significa que solo se necesita revelar la condición que se cumple. Si, en el ejemplo inicial anterior, Alice solo gasta los fondos después de una semana, simplemente revela esa condición (y el camino de Merkle). Nadie se entera de que el dinero también podría haber sido gastado por Alice y Bob juntos, o por Bob solo si hubiera agregado un número secreto. Esto hace que MAST sea más eficiente en datos que los contratos inteligentes P2SH complejos y agrega privacidad para arrancar.

Sin embargo, con Schnorr, Taproot puede hacer aún mejor: una transacción puede ocultar que una estructura MAST existió en absoluto.

¿ Qué pasa?

El esquema de firma Schnorr ha estado durante mucho tiempo en la lista de deseos de muchos desarrolladores de Bitcoin y actualmente se está desarrollando para ser implementado como una actualización de protocolo de tenedor blando.

Como su beneficio más conocido en el contexto de Bitcoin, la matemática lineal de Schnorr permite la agregación de firmas: varias firmas en la misma transacción pueden combinarse en una. Un truco similar podría aplicarse a las transacciones multisig. Combinando ambas claves públicas y firmas en claves públicas umbral y firmas umbral, una transacción multisig puede hacerse indistinguible de cualquier transacción regular.

Y el esquema de firma se puede utilizar de maneras aún más interesantes. Por ejemplo, es posible usar datos para tweak tanto una clave privada como una clave pública. Como ejemplo simplificado, una clave privada y su correspondiente clave pública podrían ser ajustadas multiplicando ambas por dos. La clave privada x 2 y la clave pública x 2 seguirían correspondiendo, y la clave privada x 2 todavía podría firmar mensajes que podrían verificarse con la clave pública x 2.

Esto es lo que permite Taproot.

La raíz

Taproot se basa en una comprensión interesante: no importa cuán compleja sea, casi cualquier construcción MAST podría (o debería) incluir una condición que permita a todos los participantes acordar el resultado y simplemente firmar una transacción de liquidación juntos.

Taproot se asemeja al MAST e incluye siempre una condición en la que todos los participantes pueden cooperar para gastar los fondos: el cierre cooperativo.

Utilizando firmas Schnorr, aquí es donde se pone interesante.

En primer lugar, el cierre cooperativo utilizaría el truco de umbral de Schnorr para que parezca una transacción regular, de una persona a otra. Así, las claves públicas de todos los participantes se suman, resultando en la clave pública de umbral.

Hasta ahora bien, pero gastar los fondos como si fuera una transacción normal es lo único que pueden hacer no hay estructuras similares a MAST todavía.

Todas las formas alternativas en las que se pueden gastar los fondos los resultados no cooperativos se combinan esta vez en un script diferente. Este script, entonces, es hashado y utilizado para ajustar la clave pública de umbral. En lugar de clave pública x 2, como se utilizó en el ejemplo anterior, esto resulta en un clave pública de umbral x script. (Todavía estamos simplificando.) Este script de clave pública de umbral x corresponde, por supuesto, a un script de firma x .

Ahora, si el dinero se gasta cooperativamente, todos los participantes combinan sus firmas en la firma de umbral y lo ajustan con el script. La firma de umbral x script resultante les permite gastar los fondos. Sin embargo, y lo que es más importante, para el mundo exterior, todo esto todavía parecería una clave pública regular y una firma regular una transacción regular.

Sólo si un cierre cooperativo resulta imposible, la clave pública de umbral puede mostrarse como lo que realmente es: modificada.

En este caso, tanto la clave pública de umbral original como el script se revelan. Esto demuestra que la clave pública de umbral x script fue modificada con este script específico. Por lo tanto, al igual que el hash en P2SH, el tweak demuestra al mundo que los fondos deben ser gastados si se cumplen las condiciones alternativas, como se especifican en este script. (Y, al igual que con P2SH, estas condiciones se cumplen inmediatamente para gastar los fondos).

Alternativamente, en lugar de ajustar la clave pública de umbral con un script, la clave pública de umbral se puede ajustar con una raíz de Merkle de un árbol de Merkle que incluye todas las diferentes condiciones en las que se pueden gastar los fondos: una estructura MAST. Para gastar los fondos, entonces, solo se necesita revelar la condición de gasto que se ha cumplido.

Como tal, Taproot ofrece todas las ventajas de MAST, mientras que en circunstancias normales nadie sabrá que una transacción regular ocultaba un contrato inteligente tan complejo como una alternativa.

Este es un esbozo general del concepto Taproot; las especificaciones de implementación pueden variar.


Más.