Las firmas digitales son importantes para que funcionen las cadenas de bloques. Las características de esta son de vital importancia y pueden influenciar profundamente a una criptomoneda.
Debido a que la elección que se da detrás para la utilización de un esquema de firmas es invisible para el usuario, el objetivo de este artículo es explicar de que se trata y ayudar a comprender cual es su rol dentro de la tecnología de cadena de bloques, y por ende las criptomonedas.
Las firmas han sido un estándar desde el siglo 17 a la hora de probar el consentimiento único de la información.
Han sido utilizadas para formalizar incontables tipos de acuerdo como los de trabajo, recibos de tarjetas de crédito e incluso tratados de guerra.
La era digital ha creado una nueva forma de comunicarse que ya no se limita solamente al papel o al correo. Hoy vamos a ver como verificar la autenticidad de los mensajes digitales y que soluciones hay de firmas digitales.
Contenido
¿Cómo funcionan las firmas digitales?
Al igual que las firmas escritas que una persona agrega a un documento particular, una firma digital es un enlace criptográfico que vincula una identidad particular con un mensaje.
Las firmas digitales son casi imposibles de falsificar debido a que utilizan la teoría de los nuevos para garantizar su buen funcionamiento y usa un sistema llamado criptografía de clave pública, en donde el usuario posee una clave pública y una clave privada formando un par.
Podemos ver a la clave pública como la identidad del dueño y a la clave privada como la contraseña o clave secreta que le permite a la persona probar que es el dueño de la clave pública.
Para poder entender mejor como funciona la criptografía de clave publica en la firma digital, es necesario primero saber como funciona la encriptación que garantiza la seguridad del mensaje mientras que protege la información sensible.
Por ejemplo, supongamos que queremos enviarle a un amigo un mensaje encriptado. La clave pública de nuestro amigo se encuentra disponible para que cualquier la vea. Así utilizamos esa clave pública en un algoritmo que la encripta con el mensaje.
Alguien podría interceptar el mensaje y leerlo, pero debido a que está encriptado no será capaz de ver la información que se oculta detrás a menos que posea la clave privada de nuestro amigo.
De esta forma, nos podemos asegurar que solo nuestro amigo sea el que vea el mensaje original, y todo sin tener que conocer su clave privada.
En el caso de las firmas digitales, toda esta operación esta invertida. Nosotros no generamos el mensaje encriptado a partir de la clave pública, sino que usamos nuestra propia clave privada en el algoritmo para crear una firma enlazada al mensaje y la clave pública.
Nadie que no seamos nosotros puede descubrir la clave privada, o falsificar nuestra firma, a partir del la firma y la clave pública.
Sin embargo, cualquiera puede saber que solo nosotros podemos haber firmado el mensaje a partir del mensaje firmado y la clave pública. De esta forma se demuestra que somos los poseedores de la clave privada.
La importancia en la cadena de bloques
Las firmas digitales son importantes para poder crear bloques en la blockchain. Son usadas principalmente para verificar la autenticidad de las transacciones.
Cuando un usuario envía una nueva transacción, este tiene que demostrar a todos los nodos del sistema que están autorizados a gastar los fondos, todos mientras que impide que otros usuarios utilicen esos fondos.
Cada nodo en la red entonces verificará las condiciones de la transacción enviada y entre todos los otros nodos se pondrán de acuerdo.
Si queremos enviar por ejemplo 1 BTC a nuestro amigo, debemos firmar la transacción, en donde la entrada es 1 BTC, utilizando nuestra clave privada y enviarla a cada nodo de la red.
Los mineros, que conocen nuestra clave pública, entonces revisaran las condiciones de la transacción y validaran la autenticidad de la firma. Una vez que todo este correcto, se agrega a un nuevo bloque y este pasar a formar parte de la cadena con la transacción validada.
Esquemas de firmas utilizados comúnmente
La criptografía sea basa en el supuesto de que algunos problemas matemáticos son difíciles de resolver. Por ejemplo, el algoritmo RSA, uno de los primeros sistemas criptográficos, supone que factorizar dos números primeros grandes es difícil.
1. ECDSA
Este esquema de firmas es actualmente utilizado por Bitcoin y su nombre completo es Algoritmo de Firma Digital de Curva Elíptica (ECDSA, por sus singlas en inglés).
Si lo comparamos con RSA, ECDSA utiliza claves más pequeñas y requiere menos recursos computacionales mientras mantiene una seguridad muy fuerte.
ECDSA también utiliza lo que se conoce como curvas elípticas dentro de un campo finito.
Es más fácil comprender las curvas elípticas si las vemos como un grupo finito de puntos en una curva donde una operación es fácil de realizar en una dirección, pero difícil si queremos hacerlo a la inversa.
Además, ECSDA se basa en el problema del registro discreto en lugar de lo complejo de la factorización de números primos para la seguridad.
El problema es el siguiente:
Sean a, b y c números enteros tales que a^b = c. Si te dan c y a, es difícil encontrar b si b es un número suficientemente grande. Ahora aplique esta ecuación a un grupo de curvas elípticas y calcule Q = nP, donde n es algún número entero, P es un punto de la curva y Q es el resultado de la operación (“multiplicando” puntos). En las curvas elípticas, es fácil calcular Q dado n y P, pero es difícil encontrar n dado P y Q. Esto se conoce como el problema del logaritmo discreto de la curva elíptica.
La idea detrás de ECDSA es que el algoritmo permite generar firmas que son difíciles de falsificar pero fáciles de verificar.
La curva elíptica específica de Bitcoin usada para ECDSA es llamada secp256k1 y es una curva estandarizada por la agencia gubernamental llamada el Instituto Nacional de Normas y Tecnología (NIST, por sus siglas en inglés).
Pero a pesar de que la longitud de las claves es corta y es más eficiente computacionalmente hablando que RSA, ECDSA puede ser implementado de manera incorrecta.
En particular, Bitcoin sufrió un ataque por mala implementación de ECDSA en la que los identificadores de una transacción podían ser modificados alterando la firma de la transacción, lo que fue corregido posteriormente con Segwit.
Las implementaciones de ECDSA también pueden ser propensas a la aleatoriedad débil o simplemente ser propensas a una variedad de otros exploits.
2. SCHNORR
A pesar de los problemas, ECDSA ha sido muy importante para Bitcoin durante sus años de existencia. Sin embargo, ECDSA carece de una propiedad fundamental, y es no poder comprimir y verificar de forma eficiente varias firmas juntas.
En los últimos años, ha habido una corriente por encontrar nuevos esquemas firmas que permitan mejorar la escalabilidad eficiencia y privacidad de Bitcoin, y una de ellas es la firma Schnorr.
Las firmas Schnorr es esquema elegante propuesto en 1988 por Claus-Peter Schnorr, que estuvo patentado hasta 2008. Por esa razón, y porque no estaba aceptada y estandarizada hasta hace pocos años, Satoshi decidió elegir ECDSA.
Las firmas Schnorr son probadamente seguras con supuestos criptográficos estándar (registro discreto), no son maleables (un tercero no puede alterar una firma válida para crear otra válida para la misma clave y el mismo mensaje), y proporcionan linealidad (varias partes pueden colaborar para producir una única firma que sea válida para todas las claves públicas).
Esta última propiedad provee a Bitcoin de dos beneficios:
- La linealidad permite que múltiples firmantes en una transacción multi firma combinen las claves públicas en una sola clave pública agreda. Esto es importante porque las transacciones multi firmas no es algo nativo de Bitcoin y tradicionalmente se han limitado a los scripts P2SH, donde todas las partes deben entregar sus claves públicas y firmar la transacción. De esta forma, otras personas pueden ver si se trata de una transacción multi firma e identificar a las personas que participan.
- Permite que la lista y números de participantes queden ocultos en esta agregación de claves y la consecuente producción de una firma agregada que es indistinguible de una firma normal. Esto reduce el tamaño de bloque e incrementa la privacidad al permitir la construcción de contratos inteligentes con Taproot, una técnica que permite complejos scripts indistinguibles de las transacciones normales.
Las firmas Schnorr permiten además la agregación de entradas cruzadas. Las transacciones de Bitcoin a menudo tienen muchas entradas que requieren firmas individuales y pueden ocupar grandes cantidades de espacio en un bloque.
Las firmas Schnorr permiten agregar las firmas individuales de una transacción y, por tanto, permiten que todas las entradas de una transacción se gasten con una sola firma. Esta capacidad de combinar firmas deja más espacio para los datos de la transacción en los bloques y se estima que aumenta la capacidad en un 20-40%.
En los protocolos de privacidad como Coinjoin, la agregación de entradas cruzadas también puede proporcionar beneficios de privacidad al hacer más difícil el seguimiento de las entradas.
3. Firma BLS
Al igual que Bitcoin, Ethereum actualmente hace uso de ECDSA. Sin embargo, con la transacción a Prueba de Participación en lo que se conoce como Ethereum 2.0, ECDSA ya no será suficiente para los nuevos requerimientos.
ETH 2.0 involucrará miles de validadores a través de comités y cada uno de ellos deberá producir miles de firmas en plazos muy cortos.
Cada nodo no puede verificar cada firma si el sistema quiere ser escalable.
Por ejemplo, si hay 64 comités por cada bloque y cada uno de ellos puede tener hasta 2.048 validadores, se puede verificar 131.072 firmas por cada bloque (cada 12 segundos).
Por eso es que se necesita un esquema suficientemente eficiente para permitir la verificación de las firmas. Ahí es donde entra BLS.
Las firmas BLS (Boneh-Lynn-Shacham) fueron propuestas justas luego de comenzar el siglo 21 y se basa en un tipo de criptografía llamada criptografía basada en emparejamientos.
Poseen diferentes supuestos de dureza en comparación con ECDSA y opera en diferentes tipos de curvas (curvas amigables con el emparejamiento).
Las firmas BLS son similares a las firmas Schnorr en el sentido de que permiten la agregación de claves y firmas, pero las firmas BLS son deterministas (sin aleatoriedad), pueden permitir la agregación de firmas en todo un bloque y, sobre todo, son mucho más pequeñas que las firmas Schnorr (aproximadamente un 50% más pequeñas).
Además, mientras que las firmas múltiples de Schnorr requieren múltiples rondas de comunicación y pueden depender de grandes estructuras de datos (árboles de Merkle) par la agregación de firmas, las firmas BLS son extremadamente fáciles de generar y necesitan pocos requerimientos de comunicación.
El mayor problema de las firmas BLS es que la verificación de las firmas es muy poco eficiente y de varias magnitudes más costosas que las firmas de Schnorr.
Ethereum no es la única cadena de bloques que planea utilizar este tipo de esquemas. Otras similares que ya usan un mecanismo de consenso de Prueba de Participación las tienen en sus planes. Una de ella es Polkadot y la otra es Grin.
Conclusión
Las características de los esquemas de firmas digitales tiene efectos en cascada sobre la funcionalidad de las cadenas de bloques. Como tal, seleccionar el correcto es fundamental para el éxito del proyecto.
Todas las soluciones tienen aspectos negativos y positivos y ningún esquema será eterno.
En un mundo donde cada minero o validador tiene que verificar cada firma, la blockchain no podrán servir como tecnología global sin el correcto esquema de firmas.
Las nuevas optimizaciones para mejorar la usabilidad de las firmas son constantes para mejorar el tamaño de las mismas, el tiempo de verificación o la seguridad.
Un esquema de firmas puede ser una opción más viable que otro si los beneficios son convincentes. Por ejemplo, las firmas BLS apenas se han utilizado hasta hace relativamente poco, cuando se publicaron documentos dedicados a mejorar su eficacia, especialmente para los protocolos de blockchain.
Los equipos detrás de los proyectos deben ser flexibles y estar abiertos a cambiar los esquemas de firma digital y diseñar en consecuencia cuando surjan razones de peso.
Los esquemas de firma mencionados anteriormente han existido durante décadas y es probable que sigan existiendo en un futuro próximo.
Sin embargo, es inevitable que acaben siendo sustituidos por esquemas más nuevos desarrollados a partir de la investigación que se está llevando a cabo en la actualidad. La aplicación generalizada de un nuevo sistema criptográfico rara vez tiene lugar cuando se propone inicialmente, es necesario un periodo de prueba informal para comprobar la seguridad de un sistema y probar o refutar sus supuestos.
La investigación en criptografía se ha visto impulsada por el correspondiente crecimiento del espacio de la cadena de bloques y seguirá haciéndolo en un futuro previsible.
Mientras que gran parte de la investigación relevante hoy en día se dedica a las pruebas de conocimiento cero, otros campos de la criptografía que actualmente no están en la intersección de las cadenas de bloques también pueden proporcionar una fuerte relevancia en el futuro.
La criptografía maneja parte de la información más sensible posible y es innegociable que estos esquemas sean examinados al máximo. Esta demora significa que los nuevos esquemas podrían tardar décadas en cobrar protagonismo.
Agrega un Comentario