Los usuarios de Bitcoin pueden, en poco tiempo, beneficiarse de un truco llamado "Taproot". Primero propuesto por el colaborador de Bitcoin Core y el ex Director de Tecnología de Blockstream Gregory Maxwell, Taproot ampliaría la flexibilidad de contrato inteligente de Bitcoin, al tiempo que ofrecía más privacidad al hacerlo. Incluso los contratos inteligentes más complejos serían, en la cadena de bloques, típicamente indistinguibles de las transacciones regulares.
Si bien es una gran empresa, esto no es solo una teoría. Varios de los colaboradores más prolíficos de Bitcoin Core, entre ellos 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 un protocolo de actualización.
Esto es lo que es Taproot y cómo funciona.
P2SH
Todos los bitcoins están esencialmente "bloqueados" en los scripts: un par de líneas de código incrustadas en una transacción incluida en la cadena de bloques, que definen cómo se pueden gastar las monedas en la próxima transacción. Las condiciones de gasto generalmente implican proporcionar una firma para demostrar la propiedad de las monedas. Pero otras condiciones bien conocidas, por ejemplo, incluyen bloqueos de tiempo (las monedas solo se pueden gastar después de una fecha o altura de bloque específica) o multisig (las monedas solo se pueden gastar si un número de claves privadas de un conjunto de claves privadas proporcionan firmas).
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 solo firma después de que haya pasado una semana, o si Bob solo firma al mismo tiempo que proporciona un número secreto. Cualquiera de estas tres condiciones se cumple primero, es cómo se gastan las monedas.
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 (pagar al hash de script), donde inicialmente solo se incluye un hash del script en la cadena de bloques. Este número aparentemente aleatorizado contiene las monedas. Cuando el propietario gasta las monedas, revela el guion completo y la "solución" del guion al mismo tiempo. Cualquiera puede usar el hash inicial para verificar que el script suministrado fue realmente el script original que bloquea las monedas y puede concluir inmediatamente que se cumplieron los requisitos del script.
Aun así, cuando se gastan las monedas, actualmente es necesario revelar todas las condiciones posibles que podrían haberse cumplido, incluidas las condiciones que no se cumplieron. Esto tiene dos desventajas principales. Uno, son datos pesados, especialmente si hay muchas condiciones. Y dos, es malo para la privacidad. Todos aprenden todas las formas en que se podrían haber gastado los fondos, lo que puede, por ejemplo, revelar qué tipo de billetera se usó y quizás incluso más.
MAST
MAST (Merkelized Abstract Syntax Tree) es una solución propuesta que utiliza árboles Merkle (una estructura de datos compacta de décadas de antigüedad inventada por el criptógrafo Ralph Merkle) para solucionar estos dos inconvenientes. En resumen, todas las diferentes condiciones bajo las cuales se pueden gastar los fondos se dividen individualmente (en lugar de combinarse en un solo hash) y se incluyen en un árbol Merkle, que en última instancia produce un solo hash: la raíz Merkle. Esta raíz de Merkle "encierra" las monedas.
El beneficio único es que, si se revela cualquiera de los datos en el árbol de Merkle, la raíz de Merkle y algunos datos adicionales (llamados la ruta de Merkle) se pueden usar para verificar que los datos específicos se incluyeron en el árbol de Merkle. El resto del árbol Merkle permanece picado y oculto.
Con MAST, esto significa que solo la condición que se cumple debe ser revelada. Si, en el ejemplo inicial anterior, solo Alice gasta los fondos después de una semana, simplemente revela esa condición (y el camino de Merkle). Nadie se entera de que Alice y Bob podrían haber gastado el dinero juntos, o solo Bob si él hubiera agregado un número secreto. Esto hace que MAST sea más eficiente en datos que los complejos contratos P2SH inteligentes y agrega privacidad para el arranque.
Sin embargo, con Schnorr, Taproot puede hacerlo aún mejor: una transacción puede ocultar que existió una estructura MAST.
Schnorr
El esquema de firma de Schnorr ha estado durante mucho tiempo en la lista de deseos de muchos desarrolladores de Bitcoin y actualmente está en desarrollo para ser implementado como una actualización del protocolo de bifurcación. Muchos criptógrafos consideran que el esquema de firma de Schnorr es el mejor en el campo, ya que sus propiedades matemáticas ofrecen un alto nivel de corrección, no sufren maleabilidad y su verificación es relativamente rápida.
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 se pueden combinar en una. Un truco similar podría aplicarse a transacciones multisig. Combinando tanto las claves públicas como las firmas en "claves públicas de umbral" y "firmas de umbral", una transacción multisig puede ser 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 utilizar datos para "modificar" tanto una clave privada como una pública. Como ejemplo simplificado, una clave privada y su clave pública correspondiente se podrían modificar 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". Cualquiera que no sepa que la clave original el par fue ajustado, ni siquiera vería ninguna diferencia; Las claves modificadas se parecen a cualquier otro par de claves.
Esto es lo que permite a Taproot.
Taproot
Taproot se basa en una realización interesante: no importa lo compleja que sea, casi cualquier construcción MAST podría (o debería) incluir una condición que permita a todos los participantes ponerse de acuerdo sobre el resultado y simplemente firmar una transacción de liquidación juntos. En el ejemplo anterior, si Bob sabe que Alice puede, por sí misma, reclamar todos los fondos la próxima semana, es mejor que coopere con ella ahora para firmar juntos. (En muchas configuraciones típicas de contratos inteligentes, incluso lo penalizarían si no lo hace. La complejidad realmente sirve para mantener a todos honestos).
Taproot se parece a MAST y siempre incluye una condición en la que todos los participantes pueden cooperar para gastar los fondos: el "cierre cooperativo".
Al utilizar las firmas Schnorr, aquí es donde se pone interesante.
En primer lugar, el cierre cooperativo utilizaría el truco de umbral de Schnorr para que pareciera una transacción regular, de una persona a otra. Por lo tanto, las claves públicas de todos los participantes se suman, lo que da como resultado la "clave pública de umbral". En correspondencia con esta clave pública de umbral, la combinación de las firmas de todos los participantes, su "firma de umbral", les permite gastar los fondos.
Hasta ahora todo bien, pero gastar los fondos como si fuera una transacción normal es lo único que pueden hacer, todavía no hay estructuras similares a las de los MAST. Ahí es donde entra en juego el otro truco de Schnorr.
Todas las formas alternativas en que se pueden gastar los fondos (los resultados no cooperativos) se combinan en un guion diferente. Esta secuencia de comandos, entonces, está codificada y se utiliza para modificar la clave pública de umbral. En lugar de “clave pública x 2”, como se usó en el ejemplo anterior, esto da como resultado un “script de clave pública de umbral x”. (Todavía estamos simplificando). Este “script de clave pública de umbral x” corresponde, por supuesto, a un "script de umbral de firma x".
Ahora, si el dinero se gasta de forma cooperativa, todos los participantes combinan sus firmas en la "firma de umbral" y lo ajustan con el guion. El "script de la firma x del umbral" resultante les permite gastar los fondos. Sin embargo, y lo que es más importante, para el mundo exterior, todo esto parecería una clave pública regular y una firma regular, una transacción regular.
Solo si un cierre cooperativo resulta imposible, la clave pública de umbral se puede mostrar para lo que realmente es: ajustado.
En este caso, se revelan tanto la clave pública de umbral original como el script. Esto prueba que el "script de umbral de clave pública x" se ha modificado con este script específico. Por lo tanto, al igual que el hash en P2SH, el truco demuestra al mundo que los fondos deberían poder gastarse si se cumplen las condiciones alternativas, como se especifica en este script. (Y, al igual que con P2SH, estas condiciones se cumplen de inmediato para gastar los fondos).
Alternativamente, en lugar de ajustar la clave pública de umbral con el script, la clave pública de umbral se puede modificar con una raíz Merkle de un árbol Merkle que incluya todas las diferentes condiciones en las que se pueden gastar los fondos: una estructura MAST. Para gastar los fondos, entonces, solo se debe revelar la condición de gasto que se ha cumplido.
Como tal, Taproot ofrece todos los beneficios de MAST, mientras que, en circunstancias normales, nadie sabrá nunca que una transacción regular estaba ocultando un contrato inteligente tan complejo como una alternativa.


0 Comentarios