¿Qué es PayNyms?
PayNyms es una herramienta digital que se usa para enviar y recibir bitcoins de forma segura y privada utilizando códigos de pago reutilizables. Esta herramienta le permite agregar a sus amigos a su lista de contactos usando un sencillo nombre para enviar y recibir criptomonedas. Pero adicional, lo hace sin revelar su saldo o historial de transacciones. Esta característica brinda un nivel de privacidad importante, si lo comparamos con el uso directo de las transacciones de criptomonedas. Pero no solo eso, también facilita el uso de las criptomonedas al sustituir las crípticas direcciones por nombres fácilmente recordables.
Esto es posible en Bitcoin gracias al uso del BIP-47. Esta especificación permite producir un «código de pago» especial (que comienza con «PM8T») y que nunca cambia. Dicho código se puede compartir públicamente y con total seguridad. De hecho, cuando es escaneado o agregado por una billetera compatible, este código generará direcciones únicas no utilizadas de bitcoin para el usuario. Y todo ello, sin revelar el historial de transacciones o saldos anteriores.
La creación de esta PayNym se realiza tomando un código BIP-47 válido y aplicando un algoritmo de hash especial que produce una huella digital única que se utiliza para crear la imagen y la identificación del PayNym Bot. Un PayNym Bot es una representación visual de un código de pago reutilizable BIP-47 válido. Por otro lado, los PayNyms se controlan y administran mediante el software de monedero del lado del cliente. Solo el propietario demostrable de las claves privadas puede interactuar con su PayNyms, aportando seguridad.
¿Cómo funcionan PayNyms?
Si usas Samourai Wallet, solo deberás ir a la opción «PayNyms» en su menú. Rápidamente se te preguntará si deseas reclamar una dirección, a lo que puedes responder «Si», y con ello recibes listo para usar. Desde ese momento, basta con compartir este nombre con el resto del mundo para recibir pagos a través del mismo, y dichos pagos irán a distintas direcciones no asociables entre sí, permitiéndote mantener de forma privada tus saldos y demás. Esto sin embargo, es la forma sencilla de ver como funciona, porque debajo de todo esto, existe un procedimiento criptográfico bastante complejo.
El proceso de crear una PayNyms comienza con Master Private Key (XPriv) en el monedero determinístico que usemos (monedero HD). La derivación de este código es posible haciendo una relación de la metadata de tu cuenta e identidad derivadas en tu monedero HD, usando el BIP-32 (el estándar de los monederos HD) y el BIP-44 (el estándar para monedero HD multicuentas).
Este proceso de derivación prácticamente lo que hace es crear desde tu XPriv (Master Private Key), una clave pública derivable asociable a tus cuentas del monedero HD, usando un secreto compartido creado a partir de un protocolo Elliptic-curve Diffie–Hellman (ECDH) y la curva elíptica secp256k1, estándar dentro de Bitcoin. El uso de ECDH permite crear un sistema seguro para compartir un secreto entre el que sería mi monedero, y el monedero de otras personas, un secreto que habilita al resto a poder enviar pagos al PayNyms creado, y a mi monedero entender esos pagos y recibirlos.
Una vez se ha creado el secreto, comienza el proceso de serialización o formateo de nuestro código de pago. El formato que se usa para este tipo de direcciones es del tipo binario (de 0 y 1) pero de cara al usuario siempre se usa el formato Base58, donde podemos ver la infaltable cadena inicial «PM8T», indicando que estamos frente a un código de pago reutilizable, o PayNym en este caso.
Cuando compartimos este código con otros usuarios, lo que sucede es que el monedero toma el PayNym, y de el mismo deriva una dirección de pago del tipo P2PKH. La derivación de la dirección es posible porque dentro del PayNym hay un secreto criptográfico capaz de permitir dicha operación. El secreto está bien protegido, y no hay forma de violar el mismo y usarlo para adueñarse de los fondos en ningún momento. Así, cada vez que se realiza un pago, la dirección resultante es distinta, nunca se repite manteniendo en todo momento nuestra privacidad bien protegida. Es de destacar que recientemente, también se ha agregado soporte para las direcciones SegWit.