-
SNICKER enviarรญa un mensaje al llavero del usuario que fue seleccionado para el coinjoin.
-
La propuesta fue ideada hace dos aรฑos y tendrรญa un mejor rendimiento con Taproot.
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.
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.