¿Qué son las Bulletproofs?

Uno de los protocolos de privacidad más recientes que existen en el ecosistema criptográfico son los Bulletproofs. Un protocolo implementado principalmente en la criptomoneda Monero con la finalidad de mejorar su nivel de  privacidad, y que fue lanzado a finales de 2017.

Aunque este protocolo está basado en dos sistemas de privacidad: las pruebas de conocimiento cero (las zk-SNARKs precisamente) y las transacciones confidenciales (Confidential Transactions – CT). Es decir, el protocolo Bulletproofs hace una combinación bastante inteligente de ambos sistemas. En un concepto más técnico, los protocolos Bulletproofs son un método mucho más eficiente que las pruebas zk-SNARKs. Esto pues permite la verificación de ciertos parámetros de forma confidencial y segura. Y que además pueden utilizarse sin la necesidad de una configuración de confianza por parte del creador.

Origen e implementación de Bulletproofs

El protocolo Bulletproofs se desarrollo y se hizo público a finales del año 2017. Sus desarrolladores principales son Jonathan Bootle del University College de Londres, Inglaterra, y por Benedikt Bunz de la Universidad de Stanford, Estados Unidos. Pero también participaron en su creación, Dan Boneh, Andrew Poelstra, Pieter Wuille y Greg Maxwell.  El protocolo diseñado por estos dos desarrolladores llamó rápidamente la atención de la comunidad criptográfica, quienes mostraron un genuino interés por conocer la forma en cómo funcionaba este nuevo protocolo y cómo podrían implementarlo dentro de sus blockchains. El whitepaper del protocolo puede ser accedido por medio de este enlace.

Aunque el protocolo Bulletproofs, conocido como “a prueba de balas” fue diseñado en un principio para ser implementado en la blockchain de Bitcoin, han sido las de Monero y la red MimbleWimble quienes realmente han comenzado a utilizar este protocolo para mejorar su nivel de privacidad. Así mismo, el CEO de Litecoin también está evaluando la posibilidad de comenzar a implementar este protocolo dentro de la blockchain de su criptomoneda.

Así mismo, aunque el protocolo Bulletproofs no ofrezca una privacidad o un anonimato total a los usuarios, su implementación sí permite ocultar las cantidades asociadas en las transferencias realizadas. Mostrando solamente el origen y el destino de la transacción, pero sin revelar en ningún momento las cantidades transferidas.

Por ello, el diseño de este nuevo protocolo fue impulsado por la creciente necesidad de los usuarios y de la comunidad de gozar de un nivel de privacidad superior al ofrecido por las blockchains públicas, en el momento en que realizan sus transacciones y operaciones financieras.

Es bien conocido que una de las mayores ventajas que ofrece la tecnología blockchain es su inmutabilidad y su nivel de transparencia al momento de registrar las transacciones realizadas. Pero para ciertas aplicaciones, estas propiedades de la blockchain no son las más apropiadas. Cuando se trata de compañías que requieren de un nivel de privacidad y confidencialidad, o de simples usuarios que quieren disfrutar de estos beneficios, la transparencia de la tecnología blockchain pública no es la mejor opción.

¿Cómo funcionan los Bulletproofs?

La criptografía detrás de las Bullteproofs es realmente compleja, tan compleja que solo unos pocos criptográfos la comprenden en profundidad. Para darnos una idea de su complejidad, veamos algunas de las funciones matemáticas que las hacen posible:

En esta imagen se muestra matemática y relacionalmente la forma en cómo funcionan los Rangos de Pruebas, de las Bulletproof. Todo esto es una sola función dentro del conjunto de funciones que hacen posible las Bullteproof. Ante esta complejidad, explicaremos de forma muy sencilla cómo funcionan estas pruebas.

En primer lugar el objetivo de las Bulletproof es ocultar los valores involucrados en una transacción. Sin que ello merme la capacidad de verificar su autenticidad por parte de la red. Para lograr esto, los protocolos Bulletproofs se basan en los compromisos de Pedersen (Pedersen Commitment). Estos son un tipo especial de criptografía, que recibe el nombre de criptografía homomórfica.

El funcionamiento de los Pedersen Commitment permite que los valores puedan ser validados sin necesidad de revelarlos públicamente en ningún momento. Para lograr esto, usan un pequeño truco matemática, que permite demostrar que la suma de las entradas es superior a las sumas de las salidas. Así que no se están generando monedas de la nada, ni se están utilizando monedas ya gastadas, o utilizando un saldo negativo que no se posee. Simplemente estas enviando un mensaje cifrado, en el que el resto puede verificar que realmente estás usando tu saldo,  pero nadie sabe cuánto saldo es.

Así mismo, estos protocolos se basan en el supuesto de un logaritmo discreto (logarithm discret): Esto los hace extremadamente versátiles y compatibles con cualquier algoritmo de curva elíptica. Además, los protocolos Bulletproofs hacen uso de las técnicas criptográficas Heurística de Fiat-Shamir. Lo que les permite ganar un carácter no interactivo y crear pruebas cortas de conocimiento cero. Esto tiene como finalidad crear sistemas de firmas criptográficas muy cortas, que pueden verificarse rápidamente y sin utilizar mucho poder de cómputo.

En definitiva, la unión de todas estas partes permite la creación de un sistema de pruebas criptográficas rápido, eficiente y seguro.