Como ya sabrás,
Bitcoin impone los derechos de propiedad mediante algo llamado Elliptic Curve Digital Signature Algorithm (o ECDSA). El algoritmo permite que tomes un número (es decir, una
clave privada) y derives una clave pública a partir de él.
La magia de esto es que, aunque te resultará fácil obtener la clave pública a partir de la privada, el proceso inverso es imposible. Tu clave privada es tu pasaporte a la red Bitcoin. Es lo que te permite generar una
dirección para recibir
monedas, y lo que posteriormente te permite gastarlas.
En este artículo, analizaremos el algoritmo de la firma de Schnorr, una alternativa a la ECDSA que podría traer algunos cambios apasionantes para Bitcoin.
Las
firmas digitales funcionan como sus predecesoras manuscritas, pero son mucho más seguras. Cualquiera puede falsificar una firma escrita a mano dedicando algo de tiempo y esfuerzo. Pero no podrás hacer lo mismo con un esquema de firma digital robusto, ni siquiera dedicando cientos de miles de años.
Existen diversos casos de uso para las firmas digitales. Uno muy popular consiste en demostrar al mundo que eres el autor de un mensaje particular. Como ya se ha mencionado, uno puede crear una clave pública a partir de una privada (un número enorme que deberías mantener en secreto). Para crearla, se aplican sofisticadas matemáticas a la curva secp256k1. De ahí, también podrás generar una dirección pública a partir de tu clave pública.
Ten en cuenta que es completamente seguro enseñar tu clave pública a cualquiera. Puedes incluirla en tu página web o en tu bio de Twitter para que otros puedan verificar tu identidad. Asimismo, también podrás compartir tus direcciones públicas con otros para que puedan enviarte criptomonedas.
Tu clave privada te permite crear una firma digital. Al escribir un mensaje y ejecutar en él una operación utilizando tu clave privada, generarás un "mensaje firmado". Cualquiera podrá tomarlo y compararlo con tu clave pública, para comprobar que realmente haya sido firmado por ti.
¿Cómo encaja esto en Bitcoin? Cada vez que realizas una transacción de
Bitcoin, estás firmando digitalmente un mensaje que dice:
Envío estas monedas que previamente me han enviado a mi. A continuación, cuando el mensaje sea enviado a otros
nodos de la red, éstos podrán verificar que la firma ECDSA concuerde con el mensaje. Si no es así, simplemente lo rechazarán.
Las firmas Schnorr son un tipo de esquema distinto. Operan de manera similar al Elliptic Curve Digital Signature Algorithm que utilizamos en la actualidad, pero presentan una serie de ventajas respecto a éste. Las firmas Schnorr, en realidad, son anteriores al ECDSA -lo que ha llevado a muchos a preguntarse por qué no fueron integradas en Bitcoin desde un inicio.
Una posible explicación es que Claus P. Schnorr –el creador del esquema– las patentó. Las patentes expirarían a principios de 2008, unos meses antes de la publicación del whitepaper de Bitcoin; pero el esquema no se habría estandarizado de forma generalizada. Por ello,
Satoshi Nakamoto optaría por el ECDSA, más ampliamente aceptado y de
código abierto.
Las firmas Schnorr son bastante simples en comparación con otros esquemas. Como resultado, más seguras que sus alternativas. Puede que no signifique mucho para ti a primera vista, pero tienen otra propiedad poderosa: la linealidad.
Para ponerlo en términos simples, esto hace que el esquema sea particularmente atractivo para ciertas actividades, especialmente las transacciones de
múltiples firmas. Es posible que sepas que Bitcoin ya es compatible con multifirmas, pero no lo hace de la manera más bonita.
Cuando creas una dirección de múltiples firmas, quien te envíe fondos no necesita saber qué condiciones has establecido para gastar las entradas. Es posible que ni siquiera sepan que están enviando fondos a una configuración multifirmas: la única peculiaridad de la dirección es que comienza con un "3".
Sin embargo, revelas su naturaleza cuando deseas mover los fondos. Supongamos que has utilizado una configuración 3 de 3 junto con Alice y Bob. Para gastar, digamos, 5 BTC, los tres deben proporcionar las claves públicas y las firmas válidas. Cuando mueves los fondos fuera de la dirección, toda la red puede aprender lo que sucedió al observar la
blockchain.
Desde el punto de vista de la privacidad, esto no es genial. Para agregar a esto, si creamos una multifirma más grande (por ejemplo, 8 de 10), entonces estamos ocupando bastante espacio en la blockchain. Eso puede ser costoso, ya que resultará en una transacción larga: recuerda que cuantos más bytes haya en tu transacción, más tendrás que pagar.
Las firmas Schnorr se han promocionado como una solución a estos problemas de privacidad y escalabilidad. Verás, permiten cosas como la agregación de firmas, que combinan las firmas de múltiples firmantes en una sola firma. La "firma maestra" resultante seguiría teniendo la misma longitud que una firma regular de una sola persona, lo que llevaría a importantes ahorros de espacio.
Además, las firmas combinadas hacen que sea mucho más difícil para un observador determinar quién firmó (o no firmó) una transacción. En los esquemas m-de-m (donde todos los participantes deben firmar para gastar fondos), ni siquiera sería capaz de distinguir entre transacciones de una sola parte y transacciones multifirmas.
Crucialmente, las firmas Schnorr son un bloque de construcción para futuros avances. Una vez implementados, se pueden aprovechar para mejorar las tecnologías en cripto, como los
atomic swaps y la
Lightning Network.
¿Buscas empezar con criptomonedas? ¡Compra bitcoins en Binance!
No estamos seguros. Al igual que con la mayoría de las actualizaciones del protocolo de Bitcoin, la comunidad más amplia de usuarios de Bitcoin podría tardar un tiempo en acordar la inclusión de la firma Schnorr. Los contribuyentes de Bitcoin Core, Pieter Wuille, Jonas Nick y Tim Ruffing han presentado un borrador de
Propuesta de Mejora de Bitcoin (BIP), pero todavía queda un poco de trabajo por hacer.
Blockstream ya ha lanzado una implementación:
MuSig. Al permitir la agregación de firmas y claves, puede servir como base para el esquema de firma Schnorr de Bitcoin.
Las firmas Schnorr podrían fusionarse en el código como una
bifurcación suave, lo que significa que un cambio no dividiría la red. En cambio, sería una actualización "opt-in". Sin embargo, sería optimista suponer que los veremos integrados en el futuro cercano; aún podría tomar un par de años antes de llegar a un consenso.
Las firmas Schnorr son uno de los hitos más esperados en el roadmap actual de Bitcoin. Con solo una actualización, pueden proporcionar importantes beneficios de privacidad y
escalabilidad. Quizás lo más interesante es que también prepararon el escenario para futuros desarrollos en
contratos inteligentes de Bitcoin y construcciones más avanzadas como
Taproot.