Introducción

Una de las principales razones tras la creación de las criptomonedas es crear un sistema de pago que cuide de la privacidad de sus usuarios. Así la creación del Bitcoin en 2009 hizo una realidad aquella aspiración. Bitcoin nos permitía usar una moneda con gran enfoque en la seguridad y la privacidad. Sin embargo, Bitcoin tiene desde ese entonces y hasta ahora una pequeña debilidad: sus transacciones no son completamente confidenciales ni anónimas. Una situación que ha permitido que distintas empresas puedan rastrear y crear avatares digitales de los usuarios de Bitcoin. Acciones que terminan rompiendo la privacidad que Bitcoin nos prometía.

El problema no solo afectaba a Bitcoin, diversas criptomonedas posteriores también tienen este problema. De allí que los desarrolladores buscarán una forma de solucionar esta situación. Esto fue lo que llevó finalmente a la creación de diversos conceptos como CoinJoin entre otros tipos de mixers. Pero la mayoría son apaños o soluciones no completas al problema. Incluso incurren en otros problemas técnicos, problemas de usabilidad e incluso hacían más costosas las transacciones.

Sin embargo, avances en criptografía permitieron la creación de un nuevo concepto para solucionar desde su base este problema. Era el nacimiento de las Transacciones Confidenciales o CT (Confidential Transactions, por sus siglas en inglés).

¿Qué son las Transacciones Confidenciales o Confidential Transactions?

Las Transacciones Confidenciales o Confidential Transactions (CT) son un mecanismo de generación de transacciones en criptomonedas que busca hacer que dichas operaciones resulten completamente privadas y libres del problema de la fungibilidad. De hecho, las Transacciones Confidenciales permitirían que solo las partes involucradas en la transacción conocieran las condiciones de las mismas. Como, por ejemplo, los montos de dichas transacciones que gracias a las CT serían ofuscados criptográficamente para que de forma pública no fueran visibles, y sin embargo, quedará una constancia tangible de que la operación ha sido realizada y contabilizada en la blockchain.

Lo anterior es un logro gigantesco en términos de privacidad y fungibilidad. Por un lado, haría que nuestras transacciones y todos sus detalles solo estén disponibles para quienes participamos en dichas operaciones. Todo ello sin renunciar a que la cadena de bloques o blockchain siga escribiendo claramente en su inalterable historial la transacción. A la vez que confirma de forma unánime y clara todo lo que ha pasado en esa pequeña operación. Y por el otro, la fungibilidad de Bitcoin se ve mejorado, evitando que terceros puedan impedir que cualquier persona pueda gastar sus monedas debido a una lista negra.

Aunque en Bitcoin todas estas ventajas aún no están disponibles debido a que las Transacciones Confidenciales sobre esa blockchain aún son una tecnología en construcción. Sin embargo, otros proyectos como Monero y Zcash ya han puesto en marcha tecnología parecida en sus respectivas blockchain.

Relacionado: ¿El Fin de Bitcoin?: El problema de la privacidad y la fungibilidad

Origen de esta tecnología

Las Transacciones Confidenciales fueron abordadas por primera vez en 2013 por el conocido cypherpunk Adam Back. Back quien es CEO de Blockstream, desarrollo la idea de las transacciones confidenciales en el foro de BitcoinTalk. Esto bajo el tema denominado "Bitcoins with homomorphic value (validatable but encrypted)"  o "Bitcoins con valor homomórfico (validable pero encriptado)", un tema al que puedes acceder por este enlace.

En dicha intervención, Back dejó muy en claro que la creación de un sistema de transacciones confidenciales, no solo mejoraría la privacidad, sino que llevaría a un aumento en la seguridad de Bitcoin en general, así como permitiría el diseño de nuevas funcionalidades e incluso mejoraría el rendimiento de la blockchain. La base de toda esta construcción son las conocidas Pruebas de Conocimiento o Zero Knowledge Protocol (ZKP, por sus siglas en inglés) y la aplicación de las firmas Schnorr.

ZKP, el origen de esta tecnología

Las Pruebas de Conocimiento o Zero Knowledge Protocol (ZKP) son un sistema nacido de la experiencia adquirida por David Chaum y sus Firmas Ciegas o Blind Signatures. Un modelo que luego fue mejorado por los especialistas en criptografía Shafi Goldwasser, Silvio Micali y Charles Rackoff, quienes acuñaron el término de Pruebas de Conocimiento Cero, en un trabajo presentado en 1985 y que sentaría las bases para el diseño de estos protocolos.

Sin embargo, esto solo sería una luz en el camino al diseño de las Transacciones Confidenciales para Bitcoin. Un camino que luego Gregory Maxwell seguiría para desarrollar una idea mucho más clara y lo que sería el primer sistema criptográfico práctico de esta tecnología en Bitcoin.

Básicamente lo que Maxwell había diseñado era un sistema que tomaba toda la información de la transacción, especialmente los inputs y outputs de esta transacción, para ofuscar criptográficamente los mismos. De esta forma, la información era ilegible para cualquiera que viera la información en la blockchain, pero computacionalmente, estas transacciones podrían verificarse y validarse para no dar pie a dudas o manipulaciones en la blockchain.

Comprendiendo cómo funcionan las transacciones confidenciales

En el mundo digital en el que vivimos estamos acostumbrados a que la criptografía nos permite guardar secretos. Lo vemos por ejemplo cada vez que nos conectamos a Internet, donde nuestras conexiones están protegidas por certificados TLS y conexiones cifradas a esos servidores. Pero lo vemos incluso en nuestros smartphones que ahora cifran la información que almacenan para darnos un mayor nivel de privacidad y seguridad. En tal sentido podemos decir que el cifrado está en todas partes y forma parte diaria de nuestras vidas.

Bitcoin no escapa a esta realidad, todo su funcionamiento tiene una fuerte base criptográfica, pero las Transacciones Confidenciales (CT) se crearon para mejorar aún más dicha base. De hecho, podemos pensar en las Transacciones Confidenciales, como un papel en que las partes de una transacción pueden escribir la información y leerla de forma clara. Pero si otros toman ese papel, solo verán garabatos e información sin sentido. La información de la transacción está allí, es verificable por todos, pero visible solo para quienes participaron en la transacción.

Cifrado homomórfico y su papel en las Transacciones Confidenciales

Para lograr esta hazaña, las Transacciones Confidenciales usan una técnica conocida como "Cifrado homomórfico". Este es un tipo de cifrado que permite que una persona pueda realizar operaciones sobre datos cifrados para realizar con ellos determinadas funciones. Más específicamente, las CT usan el cifrado homomórfico del tipo "Pedersen commitment".

En este tipo de cifrado, una función se hace de un hash para realizar un commit o envío de datos que podrás revelar posteriormente. De esta manera, puedes generar un hash cuya entrada no es identificable por ninguna persona, salvo quien haya originado el hash. Adicionalmente a esta entrada de datos, se le agrega información aleatoria que sume en la entrada de datos. El objetivo de esta data aleatoria adicional, es fortalecer el hash frente a posibles ataques de reducción. Finalmente, lo que asegura el secreto, es que las funciones hash no pueden ser invertidas y la entrada es completamente determinista. Es decir, sólo quien creó el hash y tiene acceso a los datos aleatorios sabe el secreto.

En este punto, el hash generado puede ser firmado digitalmente para que quede una prueba irrefutable de que el secreto existe y es conocido por una persona en específico. De esta manera, no podrás cambiar nada de la información que has revelado por medio del hash. Así cuando usamos la formulación de Pedersen commitment nos queda lo siguiente:

C(BF1 D1) C(BF2 D2) = C(BF1 BF2, D1 D2)

Donde las partes de la ecuación son:

BF es data aleatoria o factor de cegamiento

D son los datos de la transacción

C(BF1 D1) es la dirección de cambio

C(BF2 D2) es la dirección de destino

C(BF1 BF2, D1 D2) es la dirección de origen de los fondos.

Básicamente lo que nos dice esta formulación es que podemos crear secretos y datos aleatorios asociados a dichos secretos, gracias a que cada usuario tiene un pedersen commitment para su dirección. Así cuando creamos una dirección, generamos commitment adicionales de acuerdo a las entradas y salidas de la transacción, incluyendo nuestra dirección de cambio.

De esa forma, nadie podrá ver la información de la transacción en forma plana, pero podrá verificar y validar toda la información de forma abierta. Sin duda una forma elegante y muy inteligente de mejorar la privacidad de Bitcoin.

El problema de fungibilidad

Ahora bien, otro punto que suele apuntarse en favor de las Transacciones Confidenciales (Confidential Transactions - CT) es que estas permiten asegurar de una mejor forma la fungibilidad de Bitcoin. La fungibilidad es vital para que Bitcoin se considere una buena forma de dinero.

En la actualidad, Bitcoin tiene propiedades fungibles. Pero tiene también una falla estructural que afecta a esta propiedad. En Bitcoin, cada moneda puede rastrearse desde su origen. Esto hace posible "vetar el uso" de aquellos que se consideren "sucios". Es decir, es posible vetar bitcoins que en algún momento hayan pasado por un uso ilegal, dejando estos bitcoins con una fungibilidad minimizada.

Esto puede crear situaciones donde el uso de monedas "marcadas" puede acarrear sobre costes en el acceso a servicios. O simplemente hacerlas ver como de menor valor. Algo impensable en monedas fiat. En este último caso, un dólar o euro nuevo vale lo mismo que uno viejo. Y esto incluso si estos billetes han pasado en manos de algún criminal o sido parte de un acto ilícito.

Esto es un grave problema que puede afectar negativamente a Bitcoin, especialmente si tenemos en cuenta que la emisión está limitada a solo 21 millones de monedas. Con esta limitación, cada bitcoin es altamente valioso y su valor aumenta con el tiempo y la cada vez más limitada emisión. En este sentido, garantizar una fungibilidad a prueba de todo es determinante. Y las Transacciones Confidenciales nos lo permiten. Esto gracias a que la información de origen de esas monedas simplemente es ofuscada. Con lo que se garantiza que elementos como las listas negras o el marcaje de monedas no tengan ningún sentido.

Pros y contras de las Transacciones confidenciales

En primer lugar, una de las principales ventajas de las Transacciones Confidenciales es que Bitcoin y las criptomonedas que implementen las mismas serían más privada. Esto gracias al cifrado y ofuscación de las entradas y salidas de las transacciones que veríamos en la blockchain.

Esto, sin embargo, no significa renunciar a la transparencia. Ya que la blockchain públicamente muestra la información ofuscada. Pero al mismo tiempo, tenemos la capacidad de validar y auditar dicha transacción y su autenticidad. Todo esto mientras tenemos un aumento en la privacidad y la fungibilidad de Bitcoin.

Además las Transacciones Confidenciales  son una mejora superior en privacidad, rendimiento y costos en comparación con los mixer y protocolos como CoinJoin. Esto gracias a que la operación es más sencilla. Además, no incurre en el uso repetitivo transacciones o saltos para mejorar la privacidad y el anonimato de las mismas.

Por otro lado, las Transacciones Confidenciales traen consigo una mejora en la seguridad de Bitcoin. Esto debido a que sus principios criptográficos harían más resistente a la blockchain. Así por ejemplo, las firmas Schnorr permiten mejorar los esquemas de firmas digitales de Bitcoin.

Por supuesto, esto también tiene aspectos negativos. La integración de las Transacciones Confidenciales requiere modificar muchas partes del protocolo actual de Bitcoin. Una situación con la que muchos desarrolladores no están de acuerdo de llevar a la ligera. Sin embargo, Gregory Maxwell principal impulsor de esta tecnología, ha aplicado esta tecnología en el proyecto Elements de Blockstream con éxito. Demostrando así que la tecnología es usable y es posible de llevarla a término.

Relacionado: Monedas de privacidad: ¿Libertad financiera verdadera o deleite de los criminales?

Proyectos interesados en las Transacciones Confidenciales

En la actualidad existen varios proyectos interesados en hacer una realidad las Transacciones Confidenciales en sus blockchain. El primero de ellos es Monero, quienes en 2017 introdujeron las Transacciones Confidenciales en su red gracias a un hard fork. Como resultado, Monero logró alcanzar un mayor de privacidad rivalizando con proyectos como Zcash. Otro proyecto que ha implementado este tipo de transacciones es MimbleWimble, aunque un reciente problema de seguridad ha dejado claro que su implementación dista de ser perfecta. 

Otro proyecto que busca aplicar Transacciones Confidenciales es Litecoin. Charlie Lee, creador de Litecoin ha dejado en claro la necesidad de dotar tanto a Bitcoin como Litecoin de este tecnología.