CoinSwap es un protocolo descentralizado que permitiría a los usuarios de criptomonedas el intercambio privado y seguro de sus monedas de forma directa. Es decir, no participa ningún intermediario de ningún tipo, salvo los usuarios interesados en el intercambio. 

Uno de los principales objetivos de las criptomonedas es el de ofrecer herramientas que protejan nuestra privacidad, y en medio de la búsqueda de ese objetivo, CoinSwap se erige como una herramienta útil para alcanzarlo.

Y es que CoinSwap, es un protocolo que busca brindar la capacidad de ofuscar y ocultar información sobre las transacciones de criptomonedas que se realizan en su cadena de bloques. Y con ello busca ofrecer un nivel de privacidad y anonimato que supera al de herramientas como CoinJoin.

CoinSwap, un protocolo pensado en facilitar los intercambio descentralizados

CoinSwap es un protocolo de intercambio de criptomonedas diseñado con el objetivo de crear una plataforma de intercambio de criptomonedas de forma descentralizada. La idea detrás de CoinSwap se asemeja mucho a los atomic swap o intercambios atómicos que permiten intercambios on-chain de forma rápida y sin custodias. Sin embargo, CoinSwap es mucho más sencillo y flexible que las atomics swap y por ello emerge como una solución de trabajo mucho más fácil de elaborar.

El diseño e idea inicial de CoinSwap nace en el año 2013, cuando Greg Maxwell, reconocido Bitcoin Developer presenta en el foro de Bitcointalk su tema: CoinSwap: Transaction graph disjoint trustless trading (CoinSwap: gráfico de transacciones disjunto para comercio sin confianza).

En ese entonces, la idea de Maxwell era crear un protocolo de intercambios de criptomonedas que pudiese ser aplicado sobre Bitcoin sin necesidad de alterar su protocolo actual. En tal sentido, Maxwell tomó ideas de los mezcladores de monedas y P2PTradeX de Sergio Dan Larimer, para crear un nuevo sistema de intercambio seguro, sin custodia y sobre todo privado, nacía CoinSwap.

Como resultado de los trabajos de Maxwell, CoinSwap se transformó en un protocolo que permitió el comercio P2P cross-coin descentralizado. Esto significa por ejemplo, que alguien puede usar CoinSwap para intercambiar su Bitcoin por Bitcoin Cash, sin ningún intermediario, sin usar un DEX, usando únicamente sus monederos con soporte CoinSwap.

Sin embargo, pese a la enorme utilidad de esta idea, no existe aún ninguna implementación funcional de CoinSwap en la actualidad. De hecho, fue apenas en 2020 cuando Chris Belcher, presentó la que sería la primera implementación técnica completa de este sistema.

¿Cómo funciona CoinSwap?

CoinSwap básicamente funciona alrededor de dos usuarios que buscan intercambiar sus criptomonedas, realizando operaciones de criptomonedas dentro de sus respectivas blockchains. Para hacer de este intercambio una realidad, CoinSwap hace uso de esquemas multifirmas del tipo 2-de-2. Esto significa, que los participantes del intercambio deben firmar criptográficamente la transacción para que esta se realice, y una vez hecho esto, ninguna de las partes puede manipular la transacción por sí sola.

Adicionalmente, durante el proceso de transacciones CoinSwap permite que los dos usuarios puedan intercambiar sus criptomonedas, sin que un tercero pueda establecer una relación entre las partes involucradas en el intercambio. Y lo mejor, sin que esto amerite cambios en el protocolo de Bitcoin para que pueda tener lugar este proceso.

Así por ejemplo, María y Luis pueden intercambiar sus criptomonedas usando CoinSwap. María desea mezclar 10 BTC y Luis desea mezclar el equivalente en BTC también. Al crear María y Luis una operación de CoinSwap, ambos deben crear una dirección multifirma 2-de-2 en la que se dispondrán los fondos en cuestión.

Sin embargo, en aras de mejorar el anonimato, las transacciones CoinSwap se harán en varias etapas. Así pasaría lo siguiente:

Como vemos, el intercambio de los 10 BTC entre María y Luis se ha realizado en 6 operaciones totales. En dichas operaciones, se puede observar que María envío 10 BTC a una dirección, y de allí 10 BTC llegaron a Luis. Por otro lado, los 10 BTC de Luis llegan a María en 5 operaciones distintas que suman los 10 BTC del intercambio, complicando la forma de establecer relación entre María y Luis, debido a la participación de la dirección CoinSwap intermedia.

Pero ¿Qué herramientas hacen posible todo esto? Pues bien conozcamos los elementos básicos, que hacen posible el funcionamiento de CoinSwap.

ECDSA-2P, un algoritmo de firma pensado en la privacidad

Un punto importante en el funcionamiento de CoinSwap está dado por las direcciones multifirmas que son creadas por las partes involucradas en el intercambio. De estas direcciones dependen dos cosas:

  1. La seguridad y descentralización del proceso, para evitar que un mal actor busque adueñarse de los fondos de forma indebida.
  2. La privacidad del proceso, al hacer ver que la dirección en cuestión es una dirección cualquiera.

Es allí donde ECDSA-2P o ECDSA de dos partes entra en acción. Este algoritmo de firmas es usado para crear direcciones de firmas múltiples 2 de 2 que tienen el mismo aspecto que las direcciones regulares de firma única. De hecho, ECDSA-2P permite que las direcciones musig puedan ser incluso direcciones legacy o P2PKH (las que empiezan con 1). Esto tiene un gran impacto en la privacidad puesto que el grueso de direcciones de Bitcoin están bajo este formato, lo que haría mucho más complejo su análisis.

ECDSA-2P califica en lo que conocemos como firmas de umbral (Threshold Signature) del tipo bipartita, el cual guarda mucha relación con el esquema de secretos Shamir (SSS). Este sistema fue propuesto por Yehuda Lindell de la Universidad Bar-Ilan, y fue propuesto gracias a una poderosa características de los mismos: las firmas resultantes son verificables usando el algoritmo original y sin modificaciones de ECDSA, y todo ello, porque una firma ECDSA-2P es idéntica e igual de válida que una firma ECDSA.

Esta característica es lo que permite que las direcciones multisig de CoinSwap sean únicas: pueden pasar perfectamente por una dirección y transacción cualquiera, sin ninguna relación heurística o criptográfica entre las partes involucradas en su creación. En pocas palabras, una dirección ECDSA-2P de CoinSwap no se puede relacionar de ninguna manera con ninguno de sus creadores, siendo perfectamente privadas.

Mercado de liquidez

Otro punto importante en el funcionamiento de CoinSwap, según la implementación de Belcher, es que esta busca explotar lo mejor de una de sus creaciones: JoinMarket. La idea es simple, crear un mercado de liquidez para CoinSwap y que dicho mercado sirva para agregar una mayor capa de usabilidad, privacidad y anonimato al resultado final de las operaciones.

Con ello, cualquier persona puede iniciar un CoinSwap sin tener que entablar previamente un acuerdo con otra persona. Solamente hace la petición del CoinSwap y este mercado de liquidez responde a la solicitud ofreciendo un intercambio o intercambios a favor de la cantidad que desee cambiar el solicitante.

¿Cuánto sabes, criptonauta?

¿CoinSwap es una característica común en el mundo cripto?

¡FALSO!

De momento, CoinSwap es una característica deseada pero no implementada en el mundo de las criptomonedas. La mayoría de los protocolos actuales que permiten intercambios, tienen un punto de control (centralizado o no) que permite unir a los usuarios para que estos realicen los intercambios. De hecho, la implementación más cercana a la realidad de CoinSwap actualmente se encuentra abandonada. 

Privacidad, el objetivo principal de CoinSwap

CoinSwap está pensado para ofrecer privacidad y anonimato de alto nivel en sus operaciones. En tal sentido, el protocolo ha pensado varias funciones para que este objetivo sea toda una realidad. Gracias a esto, CoinSwap cuenta con las siguientes capacidades:

  1. Evita la correlación de cantidades entre sus partes. A los fines de evitar que las herramientas de análisis de blockchain puedan establecer una relación entre las partes gracias a las cantidades idénticas de las operaciones, CoinSwap es capaz de realizar varias operaciones a los fines de evitar esta vulnerabilidad. Básicamente, lo que hace es que si alguien desea cambiar 10 BTC (como nuestro ejemplo anterior) esos 10 BTC nos serán enviados en varias operaciones, a los fines de romper con ese esquema de correlación de operaciones y cantidades. De esta forma, ningún análisis podrá establecer relación entre nuestras operaciones y nuestra privacidad estará garantizada.
  2. Sin puntos únicos de confianza. CoinSwap ha sido diseñado para ser un protocolo completamente descentralizado en donde las únicas partes que intervienen son quienes realizan el intercambio.
  3. Combinando múltiples transacciones con enrutamiento. El enrutamiento y la transacción múltiple deben combinarse para obtener la mayor privacidad posible.
  4. Rompiendo la salida de cambios y la heurística de huellas dactilares de billetera CoinJoins. Uno de los mayores defectos de CoinJoin es que este puede dejar tras de sí un cambio no mezclado o Doxxic Change, que serviría para establecer relación entre el mix de monedas y el usuario de CoinJoin. Sin embargo, CoinSwap no tiene este defecto gracias a que los participantes envían su cambio a una dirección que hayan usado antes. Eso hará que la heurística piense que la dirección de cambio real es en realidad la dirección de pago, y el pago real es en realidad el cambio. Así, se evita que se puedan establecer relaciones entre los participantes usando estos cambios.

Pros y contras de CoinSwap

Ahora bien, ciertamente CoinSwap presenta varios pros y contras como tecnología y protocolo aplicado a Bitcoin y otras criptomonedas. En ese sentido, como sus pros podemos destacar:

  1. Su altísimo nivel de privacidad, el cual rivaliza e incluso supera al de CoinJoin, al solucionar varios problemas de este último.
  2. Las operaciones de CoinSwap son más difíciles de rastrear. Esto debido a que estas no se diferenciarían de ninguna manera al de una transacción normal de criptomonedas.
  3. Su capacidad para hacer no solo cambios de una misma moneda, sino también entre distintas monedas (cross-chain) y todo ello de forma descentralizada, P2P y sin necesidad de intercambios descentralizados (DEX).
  4. Es un sistema que no requiere de cambios sobre el protocolo Bitcoin, y es fácilmente adaptable a otras criptomonedas derivadas.

Por su lado negativo, podemos mencionar:

  1. Es un protocolo de alta interactividad, las operaciones entre las partes son múltiples, y esto exige un ancho de banda adicional sobre la red.
  2. Depende de que la información de los nodos de los participantes sea exacta. Si los nodos por algún motivo no están bien sincronizados o incluso son víctimas de algún ataque, un CoinSwap podría no ser del todo seguro.
  3. Debido a su alta interactividad, si una de las partes es incapaz de responder a tiempo a las peticiones de información, podría haber un riesgo de pérdida de fondos en el CoinSwap. Esto se debe a que el proceso de intercambio tiene un tiempo de espera para la ejecución de acciones. Debido a esto si no se da la respuesta esperada en ese periodo, es factible el robo de fondos. Esta es una debilidad que está en proceso de ser solventada.