Las firmas Schnorr es un esquema de firmas livianas con la que se busca mejorar la privacidad de Bitcoin y otras criptomonedas. Además permitirá la aplicación de nuevas tecnología en pro de mejorar las capacidades y la escalabilidad de la blockchain.
Las Schnorr Signatures o firmas Schnorr, es una solución planteada en la red Bitcoin que busca mejorar la privacidad y escalabilidad del sistema. Al permitir que un conjunto de firmas de transacciones con una misma entrada pueda ser sustituida por una única firma. Reduciendo el espacio de almacenamiento ocupado dentro de un bloque. Lo que, a su vez, permite que las transacciones puedan ser confirmadas de forma mucho más rápida, mejorando el rendimiento de la red. La propuesta de mejora fue presentada por Pieter Wuille en julio de 2019.
Este nuevo esquema de firmas también permite mejorar la seguridad de la red, frente a ataques de spammer. Ya que con esta implementación, un atacante tendría que enviar mucha más cantidad de transacciones para ocupar el mismo espacio dentro de un bloque. Haciendo que el ataque se vuelva más costoso y menos factible para el atacante.
¿Cómo funcionan las firmas Schnorr?
La principal función de las firmas Schnorr es permitir, a varios usuarios, crear una firma única para todas las partes involucradas. Reduciendo el tamaño de las transacciones y la cantidad de firmas necesarias para realizar una transacción.
El sistema Bitcoin utiliza el algoritmo ECDSA de firma digital de curva elíptica, para que los usuarios puedan demostrar su propiedad sobre las salidas no gastadas (UTXO) de bitcoins. Entonces, cada vez que un usuario desee efectuar una transacción, debe proporcionar una firma que valide su propiedad. A su vez, dicha transacción también tiene un script P2SH, que determinará la forma en cómo se gastarán las entradas de una transacción.
Estos scripts pueden modificarse para condicionar o programar el gasto de los bitcoins. Por ejemplo, se pueden establecer condiciones de time lock o multisig. En este último, es necesario la configuración de varias firmas para autorizar una transacción. Las multisig emplean un esquema M-of-N, donde cualquier combinación de firmas válidas dentro de N podrá desbloquear las salidas no gastadas, al solicitar un umbral con M número de firmas válidas. Entonces, para autorizar una transacción y gastar una salida, deben proporcionarse M número de firmas entre los participantes; donde cada una de estas firmas posee un tamaño en bytes de longitud.
Es decir, supongamos que María, Juan y Pedro poseen una wallet con multisig, donde, para realizar una transacción, deben firmar 2 de los 3 participantes. En este ejemplo, cualquier combinación de firmas (N) podrán autorizar la transacción, ya sea que firme María junto a Juan, o María junto a Pedro, o Pedro junto a Juan. O en su caso, exista otra condición que determine quienes deberán ser los firmantes principales. Pero en general, el cumplimiento de 2 firmas (M) autorizará la transacción. No obstante, el tamaño en bytes de una transacción con multi-sig será mayor a una transacción convencional que sólo requiere de una firma.
En este punto es donde radica el problema. Pues las multi-sig al tener que proporcionar una cierta cantidad de firmas para autorizar una transacción, el tamaño de la transacción crecerá de forma proporcional a la cantidad de firmas que sean requeridas. Por lo que la implementación de las firmas Schnorr representa una verdadera solución a esta problemática. Esta solución combina todas las firmas individuales dentro de una misma firma, reduciendo, a su vez, el tamaño de las transacciones y los costos generados por las comisiones de la transacción.
Ventajas e inconvenientes de las firmas Schnorr
Pros
- La implementación de este esquema de firmas puede mejorar la privacidad de la red, al permitir que las transacciones con la firma Schnorr se vean idénticas a las transacciones convencionales de una sola firma. Por lo que son indistinguibles unas de otras.
- Las firmas Schnorr reducen la necesidad de espacio de almacenamiento de las transacciones realizadas con multifirmas, hasta en un 25%. Por lo que disminuyen el tamaño de la transacción dentro del bloque, ahorrando su espacio y reduciendo las comisiones por dichas transacciones.
- Al reducir el espacio de almacenamiento de las transacciones dentro del bloque, las firmas Schnorr pueden contribuir a una mejor escalabilidad de la red.
- Esta implementación permitirá que las transacciones sean validadas y confirmadas de forma mucho más rápida. De esta froma se reduce significativamente el tiempo de espera de las confirmaciones en la red.
- Las firmas Schnorr no tiene problemas de maleabilidad, por lo que ninguna parte puede modificar o alterar una firma para generar doble gasto.
- Son parte esencial para la aplicación de Taproot una de las mejoras más esperadas de Bitcoin para mejorar su escalabilidad, privacidad y capacidad para smart contracts.
Contras
- En la implementación de las firmas Schnorr cada participante debe demostrar que su clave pública es válida, a través de una firma producida con su clave privada correspondiente.
- La implementación de las firmas Schnorr expone un vector de ataque donde un participante puede reclamar una clave pública falsa y controlar el multi-sig.
¿Cuánto sabes, criptonauta?
¿La inclusión de firmas Schnorr mejorará la capacidad de Bitcoin de ofrecer privacidad y mejor escalabilidad?¡CIERTO!
Las firma Schnorr son un primer paso para que Bitcoin mejore en muchos sentidos su privacidad, características y escalabilidad. Si bien no es una formula mágica, el hecho de que las firmas Schnorr ocupen menos espacio en la transacción y permitan simplificar procesos de firmados más complejos, sin duda ayudará a mejorar la escalabilidad sin dejar atrás la seguridad y privacidad de Bitcoin.
Esquema de firmas múltiples MuSig
El esquema de firmas Schnorr fue creado en 1980, por el criptógrafo alemán Claus-Peter Schnorr. Quien patentó su invención, impidiendo el uso público y directo de este esquema. En 2008, la patante de esta creación vencío dando paso a que pueda ser usada libremente.
Posteriormente, en 2018, varios desarrolladores y programadores diseñaron un nuevo esquema de firma múltiple denominado MuSig, que está basado en las firmas Schnorr. Este nuevo esquema permite a los participantes de una multi-sig, la creación de smart contracts privados fuera de la blockchain.
Además, con la implementación de MuSig, se pueden agregar las firmas y claves públicas de cada participante del multi-sig, y generar una sola clave pública que verifique las demás. En lugar de tener que verificar cada clave pública individual por separado.
Firmas Schnorr y Bitcoin Cash
Aprovechando el enorme parecido que existe entre Bitcoin y Bitcoin Cash, los desarrolladores de Bitcoin Cash han decidido aplicar las firmas Schnorr a la variación de su protocolo. El desarrollador Mark Lundeberg fue quien llevó a cabo todo este trabajo para hacer que Bitcoin Cash pudiera aprovechar este nuevo esquema de firmado, que sería opcional al sistema ECDSA.
La red Bitcoin Cash se actualizo para hacer uso de este tipo de firmas el día 15 de mayo de 2019. Como resultado de esta actualización, Bitcoin Cash logró reducir en un 4% el tamaño de las firmas digitales de las transacciones. Y al mismo tiempo, reducir en un 20% el tamaño de las transacciones con el consiguiente aumento en la capacidad de procesamiento de transacciones de la red.