(OroyFinanzas.com) – El esquema de firmas digitales Schnorr está despertando el interés de los desarrolladores Bitcoin por los enormes beneficios en cuanto a efectividad, así como, al aumento de la capacidad transaccional de la red. A continuación explicamos en qué consiste y cómo podría implementarse en el protocolo Bitcoin.
Schnorr es un sistema criptográfico de firmas digitales y, como tal, consiste en un conjunto de reglas matemáticas que permite crear dicha firma de forma que pueda enlazarse con la clave privada y la clave pública, sin que la primera sea revelada públicamente ni tampoco pueda ser deducible, a la vez que permite su verificación.
Cada transacción Bitcoin lleva una firma digital, que es la que permite a la red verificar que la persona que realiza dicha transacción es la que está en posesión de dichos bitcoins (para entender bien esto recomendamos la lectura de nuestro artículo Conceptos Bitcoin: Clave privada y pública, dirección y firma digital).
Satoshi Nakamoto diseñó el protocolo Bitcoin para que las claves y las firmas se creasen a través del esquema criptográfico conocido como Elliptic Curve Digital Signature Algorithm (ECDSA) que es una variante del algoritmo DSA que emplea operaciones sobre puntos de curvas elípticas lo que le brinda la misma seguridad que DSA pero con números de menor tamaño, es decir, claves más pequeñas e igual de seguras. Pero que en el caso de Bitcoin era importante, ya que reduce los requisitos de almacenamiento y de transmisión y con ello facilita el manejo da las claves.
Sin embargo, existen otros tipos de esquemas criptográficos que podrían aportar otros beneficios adicionales a Bitcoin, y el que más interés despierta entre los desarrolladores es Schnorr.
Actualmente, implementar este cambio en el protocolo Bitcoin requeriría de un hard fork y los riesgos asociados a ello, pero tras la implementación de Testigos Segregados (Segregated Witnesses) podría ser introducido a través de un soft fork, lo que automáticamente ha levantado un mayor interés para investigar este concepto y entender cómo podrían incorporarse en Bitcoin de manera segura.
¿Cuáles son las ventajas para Bitcoin de Schnorr?
Schnorr es el esquema de firmas que puede ser utilizado en algoritmos discretos y en los algoritmos de curva elíptica, que son los que usa el protocolo Bitcoin.
Muchos criptógrafos consideran las firmas Schnorr como las mejores y más simples, y creen que Bitcoin podría beneficiarse de algunas de sus características. Enumeramos a continuación estos beneficios:
- Permite la multifirma: Varias firmas Schnorr pueden ser combinadas para crear una única firma que validaría varias claves públicas, por lo que la verificación de esta única firma resultaría más sencilla en estos casos.
- Las firmas son más pequeñas. Concretamente se pasaría de los 71-72 bytes actuales a 64 bytes a la vez que resultan en más altos niveles de seguridad.
- Elimina la maleabilidad inherente a ECDSA (aunque Testigos Segregados elimina ya el hecho de que la maleabilidad de las firmas se convierta en maleabilidad de las transacciones.
- Un poco más rápida para firmar y verificar que ECDSA.
Quizás de todas ellas, la característica que despierta más interés para los desarrolladores Bitcoin es la posibilidad de aceptar la multifirma, dado que muchas transacciones Bitcoin actualmente deben incluir muchas firmas, y con ello se convierten en archivos más pesados, dado que requieren el uso de más cantidad de datos.
Esto es debido a que muchas transacciones Bitcoin incluyen múltiples inputs al realizarse desde diferentes direcciones Bitcoin y actualmente todos estos inputs requieren de una firma individual, lo que implica que todas estas firmas deben ser incluidas en el campo scriptSign de la transacción para poder ser verificadas correctamente por la red antes de ser incluida en un nuevo bloque de transacciones.
Mayor capacidad para la red Bitcoin con Schnorr
En cambio, de utilizarse Schnorr todas los inputs podrían unirse para crear una única firma combinada que representase a todo el conjunto de firmas. Lo que indiscutiblemente ofrece una ventaja en la cantidad de datos que se envía a la red, ya que sólo sería necesaria incluir en el campo scriptSign una única firma, y esa reducción intrínseca de cantidad de datos permitiría que en cada bloque se puedan incluir una mayor cantidad de transacciones (recordemos que actualmente el tamaño de los bloques Bitcoin es de 1MB y que el debate sobre la necesidad de aumentar ese límite está dividiendo a la comunidad). Según las estimaciones de algunos Core Developers, este aumento de capacidad podría estimarse en el 40%, a lo que habría que sumar la capacidad añadida sobre los bloques actuales que ofrecerá la implementación de Testigos Segregados.
Pero aún hay más, porque esta ampliación de capacidad también afectaría a las transacciones multifirma, es decir, las transacciones con un sólo input pero que requieren de varias firmas para poder efectuarse (típicamente de varias personas) también derivaría en la necesidad de transmitir una sola firma por transacción, sin importar cuantas firmas sean necesarias en dicha transacción multifirma.
Además, esto abre la puerta también a estructuras de contratos inteligentes (smart contracts) más complejos, utilizando la misma cantidad de información. Ya que, ya sean transacciones multifirma 2 de 3, 3 de 15 ó 100 de 100, todas ellas utilizarán la misma cantidad de datos que una transacción regular de una única firma.
Ventajas de Schnorr sobre la privacidad en Bitcoin
Además, el uso de Schnorr puede llevar implícita una mejora en la privacidad. Veamos cómo: Como ya hemos explicado anteriormente, una transacción Bitcoin puede incluir diferentes inputs. Normalmente estos inputs están relacionados con direcciones Bitcoin que pertenecen a una misma persona.
Sin embargo, CoinJoin, la funcionalidad inventada por el desarrollador del Bitcoin Core Gregory Maxwell que ofrece una mejora en la privacidad, permite que diferentes usuarios combinen todas sus transacciones en una sola transacción. De esta forma, dicha transacción tendrá múltiples inputs procedentes de diferentes personas, así como, múltiples outputs, que irán dirigidos a distintos beneficiarios.
Este nuevo concepto que trae asociado CoinJoin implica una importante mejora de la privacidad para el protocolo Bitcoin, ya que hace imposible que se conozca quién (o qué input desde qué dirección) envía bitcoins a quién (o a qué output a qué dirección). Pero lo cierto es que, además de que CoinJoin es bastante nuevo, actualmente su uso es un poco complejo y la gente no suele hacer uso de él.
Sin embargo, si se implementase el uso de Schnorr, realizar transacciones con CoinJoin podría resultar más económico que realizar una transacción regular, ya que se compartirían entre todos los usuarios las tasas de transacción enviadas a los mineros. Este beneficio económico directo para los usuarios, podría automáticamente incentivar el uso de CoinJoin y con ello generalizar su uso, potenciando intrínsecamente la privacidad de Bitcoin.
¿Por qué Satoshi Nakamoto no eligió Schnorr?
Es imposible saber a ciencia cierta cuál fue el motivo por el que Satoshi Nakamoto eligió ECDSA, sobre los otros esquemas criptográficos y lo que podamos deducir son meras conjeturas. Dicho esto, es relevante destacar un hecho que podría haber sido la causa por la que el creador de Bitcoin no focalizó su trabajo en el diseño de Bitcoin utilizando el esquema Schnorr.
Su creador, Claus-Peter Schnorr, al que debe su nombre, patentó su esquema de firmas. Según consta en la información oficial, la inscribió en el registro de patentes estadounidense en febrero 1990 y ésta ha estado vigente hasta febrero 2008. Y recordemos que Nakamoto hizo público el libro blanco de Bitcoin en octubre 2008.
Quizás sea éste el motivo por el que Schnorr no ha recibido un uso tan masivo como otros esquemas similares, que sin embargo estaban patentados libres de derechos, como es el caso de DSA, y también por el que Nakamoto no lo integró en Bitcoin.
Sin embargo, ahora que la patente ha expirado y que se conocen los beneficios que podría suponer su uso para el protocolo Bitcoin, unido al hecho de que su implementación, una vez que Testigos Segregados sea funcional en el código fuente de Bitcoin, podría ejecutarse a través de un soft fork, podría llevarle en un futuro a convertirse en el nuevo esquema criptográfico de firmas del protocolo Bitcoin. Pero antes de que eso ocurra, muchas líneas de código tendrán que ser escritas.
EPL
Interesante gracias