Las Transacciones Confidenciales o Confidentials Transactions (CT) son un protocolo criptográfico del tipo Protocolo de Conocimiento Cero (ZKP) diseñado para hacer que las transacciones de criptomonedas en una blockchain sean privadas y anónimas.

Uno de los protocolos criptográficos implementados para mejorar los niveles de privacidad en las redes de algunas criptomonedas es el Confidential Transactions (CT) o protocolo de transacciones confidenciales.

La aplicación de este protocolo de privacidad permite que las transacciones que ocurren dentro de una red puedan ser cifradas o codificadas. Con la finalidad de que, aunque puedan verificarse y validarse dentro de la red, no puedan verse los montos exactos de cada una de las transacciones realizadas. Al mismo tiempo que también se oculta a los emisores o destinatarios de dichas transacciones.

Origen de Confidential Transactions

En 2013, el CEO de Blockstream, Adam Back, propuso una idea que permitiría abordar los problemas de privacidad y fungibilidad que sufría la red Bitcoin. Puesto que, a pesar de que las cualidades de descentralización y transparencia son de sus mejores virtudes, en términos de privacidad pueden convertirse en un aspecto negativo para los usuarios. Ya que cualquier persona tiene la capacidad de revisar la blockchain de Bitcoin en totalidad, y por ende, realizar búsquedas y asociar transacciones y direcciones registradas con otras. Lo que puede generar un escenario en el que varias monedas puedan llegar a perder su fungibilidad, e inclusive su valor. Si son asociadas a una lista negra por estar involucradas en actividades ilícitas.

Así mismo, Gregory Maxwell, reforzando la idea de Back, propuso una solución que permitiría abarcar los problemas de privacidad y fungibilidad de la red Bitcoin. Implementando un protocolo para cifrar y ocultar los detalles de las transacciones realizadas, donde sólo las partes involucradas conocerían los detalles de dicha operación.

¿Cómo funcionan las Transacciones Confidenciales o Confidential Transactions?

En la blockchain de Bitcoin cuando se realiza una transacción, los nodos pueden verificar de forma clara que la transacción a realizar no sobrepase la cantidad de bitcoins recibidos en una dirección. Pero en el caso de las transacciones que ocurren dentro de la red Monero, que implementa el protocolo CT, este proceso es mucho más complejo.

Al realizar una transacción en Monero, los datos vinculados a dicha transacción son mezclados y ocultados junto a otros aplicando criptografía avanzada. Pero aun así, la red debe poder comprobar que dichos datos son correctos, sin revelar la información a otros usuarios. Para que esto sea posible, se implementa un esquema conocido como Pedersen Commitment, un tipo de cifrado homomórfico que en primer lugar, permite la realización de una transacción sin la necesidad de utilizar direcciones. Y además, permite también la verificación de una información a través de un resultado sin tener que revelarla hasta un tiempo futuro.

Los compromisos de Pedersen (PC) implementan las firmas ciegas en lugar de utilizar direcciones para las transferencias. Por lo que, los usuarios involucrados en una transferencia utilizarán multifirmas para aprobar una transacción determinada. Además, los PC permiten el cifrado de las entradas y las salidas de una transacción de forma tal que las firmas involucradas puedan ser compartidas de forma exclusiva sólo entre el emisor y el receptor de una transacción. Así, ningún tercero podrá conocer la transacción producida ni los datos o la información vinculada a ella. Brindando un nivel de privacidad óptimo sin precedentes en las redes blockchains de las criptomonedas.

Ejemplo de una Transacción Confidencial (CT)

Si un usuario, llamémosle Juan, desea realizar una transacción a María en la red Monero, éste debe gastar la totalidad de sus salidas no gastadas y enviarse el cambio a sí mismo. Si, por ejemplo, posee 5 monero y desea enviar 2 monero, entonces se creará una transacción que gaste los 5 monero: enviando 2 monero a María y 3 monero de vuelta a sí mismo (menos la tarifa de la comisión a los mineros, por supuesto).

Cuando se realiza este proceso en la red Monero, sólo Juan y María, que son las partes involucradas en la transacción, pueden ver los montos de la operación. Por lo que la transferencia realizada no mostrará de forma pública ni la cantidad ni las direcciones involucradas.

Aun así, la red debe ser capaz de poder verificar que la transferencia realizada es válida y que cumple con las condiciones del sistema. Por lo que para realizar la verificación, la red utiliza suficiente información sobre la transacción para comprobar que la suma de entrada es igual a la suma de salida. Al mismo tiempo, además de la implementar los compromisos de Pedersen, Monero también emplea las Pruebas de Rango. Las cuales le permiten comprobar criptográficamente que los usuarios no realicen transacciones con saldos negativos o que sean mayores a una cantidad arbitraria determinada.

Explorando a fondo las transacciones confidenciales

Las Transacciones Confidenciales (CT) se crearon con el fin de mejorar el sistema criptográfico de las blockchain. Para ello, las Transacciones Confidenciales permite que se pueda escribir una determinada información en la que las partes pueden leer sin mayores dificultades.  Sin embargo, cualquier actor externo a los participantes del intercambio de datos, solo vería información codificada imposible de entender.

Lo único que puede hacer un actor externos es verificar de forma lateral, que la información codificada es cierta. Y esto por medio de un mecanismo que no le permite extraer ninguna información útil de la transacción en sí.

Para lograr esto, la función criptográfica usa un hash para realizar un commit (envío de datos) que podrá revelar posteriormente. De esta manera, cualquier persona puede generar un hash cuya entrada no es identificable por ninguna persona, salvo quien haya originado el hash. En este punto se agrega un factor de cegamiento, que no es más que datos aleatorios que garantizan que el hash no sea fácilmente identificable.

Seguidamente, 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:

Formulación de las Transacciones Confidenciales

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

Donde las parte 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.

Es esta sencilla formulación la que garantiza la seguridad de los datos dentro de una transacción confidencial.

Transacciones confidenciales en Monero

Monero es una criptomoneda implementada en 2014 como un sistema de código abierto centrado en la privacidad y la descentralización. Su principal objetivo está basado en asegurar un nivel de privacidad óptimo a los usuarios dentro de la red y, en garantizar la fungibilidad de sus criptomonedas. Para que puedan ser utilizadas en cualquier caso. Sin el riesgo de que puedan clasificarse como indeseables, si por ejemplo, se han visto envueltas en alguna actividad ilícita.

Para que estas cualidades puedan ser posibles dentro de la red, Monero implementa el protocolo Ring CT, que permite que los montos de las transacciones puedan ser ofuscados en lugar de ser divididos como ocurría anteriormente dentro de la red.

¿Qué es RingCT?

El protocolo conocido como Ring Confidential Transactions es el que le permite a la red Monero ocultar todos los datos relacionados a una transacción, como los montos enviados, el remitente y el destinatario de la transferencia. Para esto, RingCT combina los moneros (XMR) reales que el remitente desea enviar con muchos otros que son seleccionados de forma aleatoria dentro de la red. Creando así una mezcla o combinación desordenada que confunde a los demás usuarios (terceros) de la red, por lo que no pueden ver ni determinar los montos transferidos, ni de dónde provienen o a donde son enviadas dichas transferencias.

Ese protocolo fue implementado en 2017, y a partir de ese mismo año su uso en la red Monero se volvió de carácter obligatorio.

¿Cuánto sabes, criptonauta?

¿Las Transacciones Confidenciales son resistentes a la computación cuántica?

¡FALSO!

Una preocupación de la comunidad con las transacciones confidenciales es hacerlas resistentes a la amenaza de la computación cuántica, y el trabajo de Greg Maxwell apunta a lograr esta capacidad, sin embargo, de momento las CT planteadas para Bitcoin no son resistentes a la computación cuántica, pero podrán serlo en un futuro.

Implementación de las transacciones confidenciales en la red Monero

Monero implementa varios elementos en su red que le permiten garantizar un alto nivel de seguridad a sus usuarios. En primer lugar, la red implementa las firmas de anillos, donde varios participantes o usuarios forman un grupo al momento de realizar una transacción. Aunque cada uno de los usuarios posee su propia clave pública y privada, que son conocidas como llaves, sólamente un de los usuarios firmará la transacción en el momento de realizar una transferencia. Pero sin revelar qué usuario de la red ha sido. Por lo que se crea una mezcla donde los demás usuarios no pueden ver quien ha realizado la operación.

Así mismo, la red Monero oculta la identidad del receptor o destinatario de la transferencia. Ya que no emplea direcciones para enviar los fondos, sino que las transferencias se realizan directamente en la blockchain. Para que el receptor de la transacción pueda reclamar sus fondos, debe poseer dos llaves: una de gasto y otra de visualización. Con estas dos claves o llaves el usuario receptor, y sólo él, podrá escanear la red blockchain. Esto con el fin de buscar la transacción que le ha sido enviada y añadirla a su monedero posteriormente.

Por último, para maximizar los niveles de seguridad y privacidad dentro de la red, Monero implementa los protocolos Confidential Transactions (CT) para ocultar las cantidades transferidas en las operaciones. Este protocolo le permite a la red de mineros poder verificar que las monedas transferidas no se crearon de la nada. Además de verifica que tampoco han sido utilizadas en otra transacción anterior. Es decir, que no ocurra doble gasto. Aun así, tanto la red como los observadores pueden verificar que las transacciones son válidas y se han realizado cumpliendo todas las normas de la red. Pero sin revelar datos importantes como el monto, el receptor o el destinatario de la transacción, haciendo casi imposible que se le pueda hacer un seguimiento a dichas transferencias.

Otras implementaciones en las redes blockchains

Además de Monero, existen otras redes que implementan los protocolos CT para garantizar una mayor privacidad en sus sistemas. Por ejemplo, MimbleWimble emplea los CT para comprobar a la red que los usuarios no están creando monedas de la nada. Y al mismo tiempo, garantizan un alto nivel de privacidad en las operaciones realizadas. Pues, los nodos no revelan información sobre los montos transferidos ni las partes involucradas; sino que de hecho utilizan las firmas ciegas para realizar el proceso de verificación de las transacciones manteniendo una completa privacidad en todo el proceso.

Así mismo, la sidechain Liquid Network utiliza los protocolos CT para maximizar la privacidad de la red. Al tiempo que garantiza transacciones muchos más rápidas y veloces en su blockchain, que opera de forma paralela con la red Bitcoin.

Por otra parte, no hay dudas de que la implementación del protocolo CT en la red Bitcoin traería grandes aportes y beneficios a ésta. Pues, en primer lugar, las transacciones confidenciales harían mucho más privada y segura a la blockchain de la criptomoneda más utilizada de todas. Así mismo, la aplicación de este protocolo permitiría el uso de las monedas de Bitcoin sin ningún tipo de restricción o clasificación; es decir, le aportaría un gran nivel de fungibilidad a todas las monedas bitcoins.

No obstante, aunque esto sería una gran ventaja para la red, también hay que tener en cuenta que añadir este protocolo al sistema incrementaría en gran medida el tamaño de las transacciones. Un lujo que, por los momentos, no se puede dar en Bitcoin debido al tamaño limitado de sus bloques. Además, que implementar este protocolo implica realizar un cambio en la red con un hard fork. Algo que requiere que muchos miembros de la comunidad estén de acuerdo a realizar.