Vamos a explicar que es el PayNym en Bitcoin y como nos ayuda con la privacidad. Bitcoin por diseño es pseudo anónimo y privado, no anónimo. Las direcciones de BTC no están asociadas a una identidad personal, ni se requiere una identificación para realizar una transacción.
Al mismo tiempo, las Transacciones son públicas y están a la vista de cualquiera que sepa auditar la cadena.
Esta transparencia en las Tx hace que la privacidad en Bitcoin no esté garantizada a nivel de protocolo. Cualquiera con el conocimiento y las herramientas adecuadas puede encontrar el rastro de las monedas a través de las diferentes transacciones. Pudiendo asociarlas con la identidad de una persona.
Introducción al PayNym en Bitcoin
Pero Bitcoin ha evolucionado y ahora tiene mejoras que hacen que la privacidad sea más alcanzable para el usuario. Las billeteras modernas tiene herramientas que permiten un mayor control en las monedas que se gastan y que se reciben.
Coinjoin, coin control, whirpool, son conceptos que se utilizan cada vez más al realizar una transacción de Bitcoin. Sin embargo, aún existe el peligro de que un actor interesado pueda espiar las Tx en la cadena y encontrar la identidad de un usuario al asociar esa transacción en particular con una identidad personal.
Bitcoin y la privacidad: un panorama general
La vulnerabilidad de la privacidad en Bitcoin está dada por la transparencia de sus Tx y que la cadena de bloques es auditable. Aquí entra en juego el concepto de PayNym.
PayNym permite esconder la identidad de quienes realizan transacciones en Bitcoin.
PayNym es una mejora añadida al protocolo de Bitcoin. Es una forma de representar gráficamente el código reutilizable del protocolo BIP47 que empieza con “PM8T”.
Este código se denomina “Reusable Payment Codes” o “códigos de pago reutilizable”. PayNym fue el nombre que le dio Samourai, el primer monedero en implementarla, para facilitar su comprensión.
El papel del PayNym en la mejora de la privacidad
Lo que hace PayNym es darle a un usuario un identificador para compartir con otros públicamente sin el riesgo de hacer visible sus direcciones de Bitcoin y el saldo.
Este código es reutilizable, mientras que la dirección Bitcoin a la que está vinculado se renueva de forma aleatoria. Esa variación constante asegura que rastrear la actividad previa sea una tarea mucho más complicada.
El BIP-47 parte de la premisa que no se puede espiar lo que no se puede ver.
El PayNym resuelve el problema de la privacidad utilizando el concepto de códigos de pago. La idea es establecer un canal directo y seguro entre dos usuarios mediante el intercambio de códigos de pago. Los cuales generan determinísticamente nuevas claves públicas y direcciones para cada nueva transacción.
Funcionamiento del PayNym
Estas direcciones son solamente conocidas por el emisor y el receptor de la transacción a través de sus wallet que son compatible con BIP-47. Estas Tx son iguales a cualquier otra en lo que respecta a entradas/salidas y tarifas de envío.
Las transacciones BIP47 se registran en la cadena de bloques, como todas las transacciones de Bitcoin. Pero como las direcciones públicas que se utilizaron para realizar la Tx no fueron reveladas a nadie, encontrar una transacción en particular es tarea más que difícil.
Esto sucede porque los participantes en la Tx sólo comparten sus respectivos códigos de pago reutilizables “PM8T” del protocolo BIP47. Un código especial que nunca cambia. Se utiliza para crear un canal seguro que se establece mediante la generación de una clave secreta en la billetera.
Esta clave secreta sirve para compartir y enviar de forma segura el código de pago entre cada par de usuarios. A la vez, usa la clave pública extendida del código de pago de cada usuario y sus claves privadas para obtener nuevas claves públicas para las nuevas transacciones.
Como la clave pública extendida oculta en el código de pago es única para cada par de usuarios, conocer la clave pública extendida para un par no permitirá rastrear las claves públicas de otros usuarios con los que se comparta el PayNym.
La transacción BIP47 son Tx de Bitcoin válidas que se envían y confirman en la cadena de bloques. Una dirección de BTC única se genera automáticamente para cada nueva transacción. Las direcciones nunca se reutilizan y solo las conoce el remitente y el destinatario de la transacción.
La clave es recordar que estos códigos de pago son únicos para cada usuario y se pueden reutilizar para cada transacción sin dañar la privacidad. Esto es porque las monedas se envían a una nueva dirección en la cadena cada vez que se realiza una transacción.
Los pagos no se envían al código de pago del usuario en sí. Se envían a las direcciones generadas por el secreto compartido, tanto del código de pago del remitente como del código de pago del receptor.
Es importante entender que las transacciones utilizando un PayNym son colaborativas. Las billeteras BIP47 producen un código especial único para cada usuario que nunca cambia.
PayNym en los monederos
Este código se puede compartir públicamente porque cuando se escanea con una billetera compatible al protocolo BIP47, se genera una dirección pública de Bitcoin única. Sin usar y sin revelar el historial de transacciones o saldos anteriores. Esto es debido a que cada par de usuarios genera direcciones validas, pero diferentes a las que puede generar otro par de usuario que utilicen el PayNym.
El protocolo BIP47 es una implementación en Bitcoin que fue creada en 2015. Hasta la fecha, no ha sido implementada por la mayoría de los desarrolladores de wallets.
Vamos a tratar de ampliar un poco más los conceptos sobre el BIP47.
Las Tx que se crean siguiendo el protocolo de BIP47 y los PayNymID son transacciones estándar de Bitcoin y no se diferencian de ninguna forma de cualquier otra transacción en la red.
La primera billetera y la que mejor ha desarrollado el uso del PayNym es Samourai Wallet. Otra billetera que ha agregado recientemente el uso de Paynym es Sparrow Wallet. Cada una tiene sus propias funcionalidades para la utilización del PayNymID.
Cómo usar PayNym en Samourai Wallet
Al instalar la billetera, se muestra una pantalla que te permite solicitar un PayNym. Este proceso no tiene ningún costo y el PayNymID generado está asociado a las llaves privadas generadas por la frase semilla de tu billetera.
El PayNym es una representación única generada a partir de un hash del código de pago reutilizable del BIP47, derivado de las llaves privadas creadas por la frase semilla de la billetera. Este PayNym es totalmente aleatorio y el nombre no tiene nada que ver con algún dato personal.
El PayNym es una representación gráfica del código de pago especial (que comienza con “PM8T”) que nunca cambia. Este código se puede compartir públicamente, y cuando es escaneado o agregado por una billetera compatible, generará direcciones únicas no utilizadas de Bitcoin.
Una vez creado el PayNym, basta con compartir el nombre o el código de pago especial con wallets compatibles con BIP47 para empezar a recibir pagos a través del mismo. Dichos pagos irán a distintas direcciones no asociables entre sí, permitiendo mantener de forma privada tus saldos.
Cuando se escanea un PayNym por primera vez, la billetera compatible con BIP47 le dará la opción de crear un canal directo y seguro entre la billetera y el usuario de PayNymID, pagando una comisión inicial de 15K sats más los Fees de la red para el momento en que se cree la Tx.
El PayNymID contiene la clave pública extendida del propietario del PayNym. Un código secreto que la billetera de BIP47 lee y utiliza para generar nuevas direcciones públicas de Bitcoin derivadas de las direcciones originales que controla el propietario de las llaves privadas.
Como la billetera es individual e independiente y depende de la frase semilla que posee el propietario, tanto del PayNym como del monedero, cada wallet BIP47 que lea el código secreto generará direcciones públicas de BTC validas. Eso sí, diferentes a las que generaría otra billetera que lea el mismo PayNym, creando canales de pagos con direcciones de Bitcoin únicas para cada par de usuarios.
Es decir, para realizar pagos hacia un PayNymID primero hay que abrir un canal de pago seguro. Esto se hace creando una transacción especial que se envía con datos en la salida OP_RETURN a una dirección de notificación obtenida del código de pago del receptor.
La transacción especial de notificación se realiza una sola vez desde el remitente hacia el receptor. Una vez abierto, el resto de Tx que se envíen hacia el PayNym serán como cualquier otra transacción de Bitcoin.
Esta primera transacción especial tiene un costo de 15000 satoshis más la comisión de la red en la billetera Samourai. Es individual para cada canal de pago seguro que se quiera abrir con cualquier PayNymID. Es decir, cada PayNym necesita una única transacción especial para abrir cada canal de pago.
Ya una vez que se ha creado y está abierto el canal de pago hacia el PayNym, puede realizar todas las transacciones que desee de forma privada sin que se conozca su saldo ni el historial de sus transacciones. De la misma forma, quien desee hacerle un pago hacia su PayNym deberá realizar el mismo procedimiento de apertura de un canal de pago seguro con su billetera.
Al final se puede crear una red de contactos seguros, con los que se puede realizar transacciones de forma totalmente privada. Todo sin el peligro de difundir información confidencial, como el historial de tus transacciones o el saldo de tu billetera.
Cómo usar PayNym en Sparrow Wallet
Como ya se dijo, PayNym consiste en la creación de un identificador único, mediante el cual se generará una nueva dirección BTC, cada vez que se va a recibir un pago. Así, los balances reales se mantienen privados.
En Sparrow la función de uso del PayNym trabaja bastante bien, pero con ciertas características que la diferencian de Samourai. Para crear el PayNym para tu billetera, recuerda que está asociado a tus llaves privadas y tu frase semilla.
Vamos a la barra de herramientas y seleccionamos en el enlace respectivo.
Luego de unos segundos se habrá creado tu PayNym con un nombre único, recuerda que el PayNym es una forma de representar gráficamente el código reutilizable del protocolo BIP47 que empieza con “PM8T”. Este código e imagen son únicos, para poder compartirlos con seguridad.
En esta misma ventana donde aparece tu PayNym podrás agregar e ir creando una lista de contactos con los que desees interactuar, recuerda que para iniciar el canal de pago entre cada PayNym hay que pagar una tarifa en satoshis más la comisión de red.
Sparrow Wallet al ser compatible con el protocolo BIP47, puede enviar/recibir directamente utilizando su PayNym y las Tx aparecen reflejadas en su historial de transacciones, al igual que Samourai Wallet.
Sin embargo, tengan en cuenta que si Sparrow Wallet esta conectada a un nodo de Bitcoin Core, la billetera no podrá ver las Tx que lleguen en BIP47 y no estarán reflejadas en el saldo total mientras este conectada al Core. Esto es porque Core aún no actualiza al protocolo BIP39 y las direcciones derivadas por el protocolo BIP47 dependen de la frase semilla de la billetera, por lo tanto el nodo no ve las Tx en BIP47.
La ventaja de Sparrow sobre Samourai es la comision de crear la Tx especial para abrir el canal directo a un PayNymID es de sólo 546 sats más el fee de minería. Al contrario de Samourai que cobra 15K sats más la comisión de minería. Con comisiones tan bajas en Sparrow para abrir canales seguros en BIP47, todos deberían aprovechar y crear sus redes de contactos con los que puedan hacer transacciones de forma más que privada utilizando direcciones conocidas solo por ustedes y el PayNym involucrado.
Si deseas realizar un pago hacía un PayNymID, el procedimiento es el mismo que si realizaras un envío a una dirección de BTC. Con la diferencia que seleccionas el apartado de PayNym.
Luego se abrirá la ventana donde está tu identificador y la lista de contactos que hayas creado. Puedes seleccionar desde esa lista o agregar un contacto nuevo para realizar el pago.
Se cerrará la ventana y Sparrow te mostrara los detalles de la transacción antes de ser enviada. Pero aquí viene un paso que diferencia a Sparrow de Samourai en el envió de transacciones hacía un PayNymID.
En Sparrow el envió de una transacción hacía un PayNymID es totalmente colaborativo. Quiere decir que hay que notificarle al receptor que se le va a realizar un pago.
Su compañero puede estar ejecutando la billetera Sparrow o Samourai, y puede usar cualquiera de las dos. Si el receptor de la Tx utiliza Samourai, debe ir a la sección recibir y en el menú seleccionar recibir Online Cahoots… Si utiliza Sparrow, deberá ir a la barra de herramientas y seleccionar Find Mix Partner… y esperar que las billeteras se enlacen.
Mientras el que envía la transacción selecciona en la ventana de la billetera la opción Add Mix Partner.
se abrirá una ventana donde aparece su identificación y al dar siguiente iniciará el proceso de búsqueda de el compañero para realizar el pago.
al receptor le aparecerá una ventana notificándolo, sólo debe aceptar y esperar a recibir el pago… Tenga en cuenta que actualmente el receptor necesitará usar una billetera con al menos la misma cantidad de Bitcoin que está recibiendo. Esto es sólo para poder hacer una mezcla.
Se realizará el pago, pero hay que recordar que se cobraran comisiones de red por las diferentes direcciones de mezcla que se utilicen y para crear la transacción especial de creación del canal de pago, todo a la vez… Hay que tener saldo disponible ademas de la cantidad de monedas para ese pago.
Conclusión sobre qué es el paynym Bitcoin
El PayNym es un código especial de pago reutilizable que nunca cambia y es seguro compartir de forma pública. Cada billetera compatible con BIP47 lee el código secreto en el PayNymID y generará una nueva dirección pública válida, pero que solo conoce cada par de usuarios.
Como la clave pública extendida oculta en el PayNymID viene acompañada de ese código secreto que es único para cada par de usuarios, conocer el código especial de pago para un par no permite rastrear las claves públicas de otros usuarios con los que se comparta el PayNym.
En realidad, los BTC no se envían al código de pago del usuario en sí. El pago se envía a las direcciones públicas de Bitcoin. Únicas, sin usar, generadas por el secreto compartido por la billetera compatible con BIP47 y el código de pago reutilizable del receptor.
Estas direcciones públicas se generan cuando se realiza la primera Tx hacía el PayNymID al que se le quiere enviar BTC. Esto se hace creando una Tx especial que se envía con datos en la salida OP_RETURN a una dirección de notificación obtenida del código de pago del receptor. Esta Tx de Bitcoin, que se envía a una dirección de observación/notificación, no es un pago real. Es una salida OP_RETURN de 80 bytes con los datos necesarios para crear nuevas direcciones públicas derivadas por algoritmo basados en la información de la clave pública extendida.
Esto asegura que se pueda usar el PayNymID para crear direcciones nuevas de Bitcoin, que al derivar de direcciones controladas por la llave privada del receptor, solo el propietario de esa llave controlará las nuevas direcciones públicas creadas a partir de la Tx de notificación.
Sin el código secreto compartido, es imposible establecer una conexión entre las direcciones nuevas y los pagos recibidos. La Tx especial de notificación se realiza una sola vez desde el remitente hacía el receptor y solo esa primera Tx para que se inicialice el canal de pago.
Aquí haré una observación sobre las direcciones de BTC. Las nuevas direcciones públicas de Bitcoin, no se registran en la cadena de bloques hasta que se utilizan en una transacción. Solo en ese momento aparecen en la cadena y muestran un historial de Tx.
Una vez abierto el canal directo y seguro entre dos usuarios, el resto de Tx que se envíen hacia el PayNym serán como cualquier otra Tx de Bitcoin. Se registra en la cadena y se construye de la misma forma que cualquier otra, en lo que respecta a entrada/salida y fee de envío.
La privacidad radica en un hecho simple. Al compartir el PayNym no se está compartiendo direcciones públicas de BTC. Lo que se comparte es un código de pago reutilizable BIP47. Un código especial que nunca cambia y que la billetera utiliza para crear la dirección de envío.
Sólo el usuario de BIP47 que envía un pago ve la dirección del receptor cuando construye la Tx. Esta solo aparece en la cadena cuando se realizar la transacción. Es entonces cuando el par de usuarios conocen las direcciones involucradas en la Transacción que se realizó.
Como las direcciones públicas que se utilizaron no fueron reveladas a nadie, encontrar una transacción en particular es tarea más que difícil. Mientras el receptor no mezcle la dirección de recepción con otras direcciones en otra transacción, la Tx original, literalmente, queda escondida.
También podría mezclar esa Tx recibida al PayNym en un CoinJoin para ocultar la transacción original de cualquier actor. Por lo tanto, puede compartir fácilmente su PayNym para aceptar pagos de cualquier persona sin reutilizar direcciones…
El protocolo BIP-47 parte de la premisa que no se puede espiar lo que no se puede ver. Al final, la privacidad consiste en no compartir información confidencial. Al no reutilizar direcciones ni compartirlas públicamente se puede hacer Tx de forma privada, sin el peligro de difundir tu historial y tu saldo…
Con el uso de PayNym, es posible permanecer relativamente privado mientras se realizan transacciones. Aunque estas Tx colaborativas en Sparrow y Samourai requieren más esfuerzo y un mayor pago en comisiones, el valor de privacidad que brindan a usted y a otros usuarios es muy alto. El PayNyms y el BIP47 es un gran avance para el software de billetera. Introduce la privacidad en lo que sería la mejor manera para la adopción masiva de Bitcoin…