-
El receptor del pago debe escanear las transacciones hechas en la red para detectar su pago.
-
Usar CoinJoin con pagos silenciosos puede ser contraproducente si no se aplican ciertos ajustes.
La frase «pagos silenciosos» parece encajar a la perfección en el contexto de Bitcoin, dado que la gente suele asociar a esta moneda y su red con el anonimato o la privacidad. En este caso, pagos silenciosos es el nombre de un nuevo esquema para realizar transacciones con BTC que promete mejoras en la privacidad.
Los pagos silenciosos se pudieran comparar con enviar mensajes por medio de señales de humo, como hacían algunas tribus aborígenes en el pasado. En una realidad donde los pagos silenciosos son señales de humos, el equivalente a los pagos tradicionales serían las cartas.
Las cartas, así como las transacciones en Bitcoin, se envían directamente de una dirección a otra; mientras que, con las señales de humo, como sucede con los pagos silenciosos, el mensaje se publica a la vista de todos, pero solo podía ser descifrado por el pueblo o el receptor al que va dirigido.
El protocolo de pagos silenciosos en Bitcoin busca evadir la interacción directa entre la dirección que envía una transacción y la que la recibe; por esta razón la transacción no viaja directamente desde el remitente hasta el receptor, sino que debe ser detectada y decodificada por quien habrá de recibirla.
Detrás del telón de los pagos silenciosos en Bitcoin
El desarrollador Ruben Somsen, el cerebro detrás de la idea de los pagos silenciosos en Bitcoin, explica en su repositorio de GitHub los procesos que se llevan a cabo al efectuar una transacción de este tipo.
Ante todo, vale la pena mencionar que este mecanismo de pagos hace uso del protocolo ECDH Key Exchange (Intercambio de Llaves de Diffie-Hellman con Curva Elíptica, según sus siglas en inglés).
Se trata de un esquema anónimo en el que se usa criptografía y que permite a sus participantes establecer un secreto compartido. Esta herramienta es de suma utilidad en estos casos, pues funciona como una especie de llave de la que solo tienen conocimiento las partes involucradas en la transacción.
A la hora de hacer una transacción usando el esquema presentado por Somsen, el primer paso lo da el receptor, que genera una dirección para pagos silenciosos en Bitcoin. Luego, el remitente crea un secreto compartido utilizando el protocolo ECDH, la llave pública de la dirección de pagos silenciosos del receptor y un input (transacción entrante) que haya elegido para realizar el pago.
El secreto compartido le permite al emisor realizar modificaciones en la dirección de pagos silenciosos. No obstante, solo el receptor puede gastar el saldo contenido en esta dirección. Para tener acceso al pago, es necesario que el receptor lo detecte tras haber escaneado las transacciones realizadas en el libro de transacciones de Bitcoin.
Pagos silenciosos, pero un tanto problemáticos
Existen varios problemas presentes en la ejecución de pagos silenciosos en Bitcoin. Algunos cuentan con soluciones potenciales, pero no definitivas por falta de practicidad o eficiencia.
Una larga, muy larga, búsqueda del tesoro
Uno de los problemas principales es el largo tiempo que le tomaría al receptor escanear todas las transacciones no gastadas (UTXO) en la red para detectar el pago que le corresponde.
Entre las posibles soluciones plateadas para este problema está la de escanear únicamente las transacciones que usen taproot. Esto acortaría la búsqueda tremendamente, ya que la adopción de taproot aún es ínfima.
No obstante, se espera que poco a poco el uso de taproot se masifique entre los bitcoiners, lo que haría que resurjan los problemas de escaneo en los pagos silenciosos.
Cabe destacar que el uso de taproot para este tipo de transacciones es altamente recomendado, pues se trata de una de las mejoras más recientes hechas al protocolo de Bitcoin y optimiza su privacidad y eficiencia.
La mejor opción proporcionada por Somsen al problema presentado consiste en utilizar todos los inputs involucrados en la transacción, y no solo uno de ellos, al momento de modificar la dirección del pago silencioso. Esto reduce a la mitad el esfuerzo impreso en la búsqueda, aunque plantea un nuevo contratiempo si se quiere usar herramientas como CoinJoin para ocultar la procedencia de pagos con BTC.
Los pagos silenciosos le quitan la venda a CoinJoin
La forma en la que funciona el protocolo de la herramienta CoinJoin es por naturaleza incompatible con los pagos silenciosos.
Esto se debe a que CoinJoin se ocupa de ocultar el input de las transacciones para el receptor del pago y los demás participantes no sepan de quién proviene. Los pagos silencios, al contrario, revelan el input. Afortunadamente, hay una solución para ello también.
Para que los participantes de una operación con CoinJoin no puedan saber de dónde proviene el pago silencioso incluido en la transacción, es necesario recurrir a un esquema cegador.
Este tipo de esquema es capaz de ocultar el input del pago silencioso. De este modo se solventa el problema de los pagos silenciosos con CoinJoin, pero su costo implica que la complejidad de la operación a nivel de programación aumente considerablemente.
Si bien los pagos silenciosos representan una mejora interesante a Bitcoin, hay otras iniciativas similares que han sido promovidas anteriormente.
Una de ellas es SNICKER, presentada por el desarrollador Adam Gibson hace varios años y que se enfoca específicamente en mejorar la privacidad al usar CoinJoin. Otra iniciativa es Wormhole, propuesta por el desarrollador Max Hillebrand, y que también se centra en mejorar la privacidad entre los usuarios que participan de operaciones con CoinJoin.