¿Qué es CoinSwap?
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:
- La seguridad y descentralización del proceso, para evitar que un mal actor busque adueñarse de los fondos de forma indebida.
- 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.