SNICKER, una variante de CoinJoin para mejorar la privacidad en Bitcoin | CriptoNoticias


El desarrollador de Bitcoin Adam Gibson presentó en la lista de correos de Bitcoin-Dev una propuesta para implementar coinjoin simple de manera no interactiva con claves para cifrado reutilizado llamada SNICKER. CoinJoin es un método para realizar transacciones privadas en Bitcoin, que impide el rastreo de direcciones dentro de la blockchain, porque utiliza varios pagos en conjunto que se encuentran incorporados en una sola transacción.

Esta solución fue descrita por Gibson en su blog hace casi dos años, pero fue reseñada este cuatro de septiembre por el equipo de Bitcoin Optech. SNICKER funciona en dos pasos: uno de proponente y otro de receptor. En el paso del proponente, una de las partes utiliza la blockchain y el conjunto de UTXO (las salidas no gastadas de Bitcoin) para encontrar aquellas UTXO de las cuales puede inferir la clave pública del propietario gracias a SNICKER, que escanea los bloques que recibe el nodo del proponente. Este selecciona una de esas UTXOs cuyo valor es menor que la cantidad que gestiona su llavero y crea tres salidas, que resultan de la unión de esa UTXO encontrada con las UTXO del proponente.

La primera salida de coinjoin se realiza a la parte que está proponiendo el coinjoin. La segunda salida de coinjoin está dirigida al propietario del UTXO seleccionado o receptor, y ambas salidas de CoinJoin pagan la misma cantidad, de manera que sean indistinguibles en la cadena de bloques. En la tercera salida, el proponente recibe de vuelta cualquier cantidad de dinero que exceda la cantidad de coinjoin.

Como las direcciones que ya tienen un historial de transacciones no sirven para aprovechar los beneficios de privacidad de coinjoin, el proponente genera nuevas direcciones únicas para sus dos salidas. Como el receptor no puede decirle al proponente cuál dirección usar, entonces el proponente utiliza la clave pública del receptor y la curva elíptica ECDH para generar un secreto compartido. Este secreto, al ser combinado con la clave pública del receptor, crea una nueva clave pública que solo el receptor puede firmar.

La nueva clave pública sirve para crear la nueva dirección para la salida de coinjoin del receptor. Así se garantiza la privacidad de la transacción, pues nadie, además del proponente y el receptor, puede notar la diferencia en las transacciones.

Fuente: Tierney / stock.adobe.com

Para completar el paso del proponente, este crea una transacción de Bitcoin parcialmente firmada (PSBT) con la información antes obtenida, que contiene las firmas para sus UTXO. Esta transacción es subida a un servidor público.

Si el receptor acepta el mensaje que ha recibido en su llavero con el texto New coinjoin proposals found. Check? Entonces puede evaluar la transacción parcialmente firmada con el fin de corroborar que sea correcta, añadir su firma para su UTXO y transmitir entonces la transacción a la red para completar el coinjoin.

Con SNICKER, los llaveros de bitcoin podrán crear coinjoin de manera no interactiva. La no interacción implica que las partes involucradas en la transacción no se encuentran, ni se sincronizan, ni necesitan saber quiénes son en el futuro. La relación entre las partes se limitaría a que una de ellas publique un mensaje cifrado y la otra solo lea los mensajes cifrados en su clave. Si la transacción final es transmitida con medidas de anonimato razonables, entonces la privacidad de las partes se conserva.

Cada una de las partes, además, puede crear o recibir tantas propuestas sin un costo adicional al espacio de almacenamiento del servidor, o recibir múltiples propuestas a través de varios servidores, seleccionando la que prefiera. Si alguna de las partes gasta su UTXO, entonces se invalida cualquier propuesta pendiente, sin que haya ninguna pérdida de fondos.

Según el equipo de Bitcoin Optech, el único inconveniente de SNICKER es que el proponente debe conocer la clave pública del receptor, y casi todas las salidas actuales involucran direcciones que no incluyen las claves públicas, a menos que se implemente Taproot en la blockchain de Bitcoin. Gibson también presentó una solución llamada CoinJoinXT, que integra la red Lightning Network al método coinjoin.



Source link