Para enviar una carta a un amigo o familiar, primero necesitas conocer su dirección postal. Esto significa que debe haber algún tipo de interacción entre tú y el destinatario, es decir, intercambiar los detalles de la dirección antes de que pueda comenzar el proceso real de envío de la carta. Sin embargo, una vez que se han intercambiado esos detalles, puedes enviar tantas cartas como quieras sin siquiera avisarle a tu amigo. Esto funciona porque, aunque tu amigo no esté en casa, su buzón ciertamente puede recibir cartas de forma no interactiva, ¡lo que te permite sorprender a tus seres queridos!

La mayoría de los lectores de este artículo probablemente prefieran enviar transacciones en bitcoin en lugar de cartas, pero el proceso subyacente es en realidad bastante similar: después de la interacción inicial de intercambiar una dirección de bitcoin, puedes enviar tantos pagos al destinatario como quieras, ya que la dirección nunca caduca. Y al igual que un buzón, una billetera de bitcoin no necesita atención ni estar “en línea” para recibir pagos, ¡lo que también te permite sorprender a tus seres queridos con bitcoin!

Sin embargo, hay un inconveniente: la privacidad del receptor. Los saldos de las direcciones de bitcoin son públicos, lo que significa que cualquiera puede consultar todas las transacciones asociadas a una dirección. Puede que hayas notado que la BitBoxApp siempre genera nuevas direcciones de recepción en lugar de mostrar las que ya se usaron; una práctica común para dificultar que otros asocien múltiples transacciones de bitcoin con tu identidad. La desventaja de usar direcciones nuevas todo el tiempo es bastante evidente: tienes que comunicar de alguna manera estas nuevas direcciones de bitcoin a tus socios de transacción cada vez, lo que, en algunos casos de uso, puede resultar un tanto molesto.

Soluciones poco satisfactorias

Dado que las direcciones de bitcoin son solo una pequeña pieza de información, pueden comunicarse de muchas formas diferentes. Aunque las direcciones en sí no son información secreta, siguen siendo vulnerables a manipulaciones, por lo que el canal de comunicación utilizado para intercambiarlas debe ser razonablemente seguro, un tema que genera problemas completamente distintos que exploramos con más detalle en otra entrada del blog.

The main issue we want to focus on, for now, is the user experience of repeatedly exchanging bitcoin addresses. Let’s explore a few already established ways to go about this:

  • Ignorarlo: como se mencionó antes, las direcciones de bitcoin pueden compartirse una vez y reutilizarse a discreción, a costa de la privacidad del usuario, por supuesto.
  • Compartir manualmente: cada vez que alguien quiera pagarnos en bitcoin, podemos compartir manualmente una nueva dirección. Si bien es efectivo en términos de privacidad, este método puede ser ineficiente y no siempre práctico.
  • Claves públicas extendidas: al compartir la clave pública extendida (xpub) de una cuenta completa de bitcoin, el remitente puede crear nuevas direcciones por su cuenta. Sin embargo, esto solo resuelve el problema para un socio de transacción a la vez, ya que compartir una única clave pública extendida con varias entidades supondría, de nuevo, un grave compromiso de privacidad.
  • Direcciones bajo demanda: los usuarios más avanzados que dependen de recibir bitcoin a nivel comercial pueden usar servicios como BTCPay, que se encargan de la parte de comunicación, permitiendo a los remitentes solicitar nuevas direcciones bajo demanda. Esta es una excelente solución tanto para la privacidad como para la experiencia del usuario, pero aún requiere tiempo y esfuerzo para configurarse y, por tanto, probablemente quede fuera del alcance del uso personal.

Podrás notar que ninguna de estas soluciones es ideal para el uso cotidiano de una billetera de bitcoin. Todas las propuestas anteriores parecen implicar un compromiso inevitable entre privacidad y usabilidad, lo que a menudo lleva a los usuarios a ser negligentes, sacrificando la privacidad en favor de la comodidad.

Intercambio mediante criptografía

Para una solución más elegante al problema anterior, podemos usar un canal de comunicación que se utilizará de todos modos: la red de Bitcoin. Con un poco de magia criptográfica, podemos intercambiar la información necesaria para crear y acordar una nueva dirección directamente a través de (o con la ayuda de) una transacción de bitcoin. Con un mecanismo así, el usuario solo tendría que compartir un único “código de pago” inmutable, permitiendo a otros derivar nuevas direcciones a partir de él sin comprometer la privacidad.

Actualmente existen dos Propuestas de Mejora de Bitcoin (BIP) principales para este método: los códigos de pago BIP-47 y los Silent Payments (BIP-352). Veamos cómo funcionan y si realmente pueden resolver el problema subyacente de manera adecuada.

BIP-47

Los códigos de pago definidos en la especificación BIP-47 ya están implementados en algunas billeteras hoy en día, como la popular Sparrow Wallet, y suelen codificarse como “PayNyms”, que son un poco más largos que las direcciones de bitcoin normales y pueden identificarse por sus caracteres iniciales “PM8T”. Puede que ya hayas visto un PayNym representado como un divertido robot en la foto de perfil de alguien:

Estos códigos de pago BIP-47 no solo se parecen a direcciones normales, sino que en realidad contienen una: la dirección de notificación. Esta dirección está disponible públicamente para cualquiera que tenga acceso al código de pago y nunca cambia. Para acordar una nueva dirección de bitcoin, el remitente primero crea una transacción de notificación hacia esa dirección, que contiene un pequeño fragmento de información en una salida OP_RETURN.

Esto solo necesita hacerse una vez y permite que el remitente y el destinatario intercambien un secreto compartido mediante un intercambio de claves de Diffie-Hellman, un procedimiento común en criptografía que no revela ninguna información secreta públicamente. 

En resumen, el remitente puede crear ahora una cantidad arbitraria de nuevas direcciones de bitcoin sin necesidad de comunicarse directamente con el destinatario. Al observar su dirección de notificación y las transacciones correspondientes, el destinatario puede recrear fácilmente estas direcciones de bitcoin en cualquier momento y buscar pagos entrantes en la red.

Si bien los códigos de pago BIP-47 preservan la privacidad y eliminan el cuello de botella de requerir interacción para cada nueva dirección, presentan una desventaja evidente: una transacción adicional en la cadena, lo que podría añadir un coste adicional a la privacidad en el futuro si las comisiones de transacción aumentan. También cabe destacar que, aunque las direcciones finales solo son conocidas por el remitente y el destinatario, las transacciones de notificación son visibles para todos, revelando metadatos como la cantidad total de pares de transacción.

Silent Payments

Aquí es donde entra en escena otra propuesta: los pagos silenciosos. En principio, los pagos silenciosos funcionan de forma muy similar a los códigos de pago BIP-47, pero sin necesidad de una transacción de notificación dedicada. Cualquiera con acceso a una dirección de pago silenciosa puede derivar una nueva dirección a partir de ella y enviar una transacción de inmediato.

A primera vista, esto parece una solución perfecta, ya que no se aplican los inconvenientes mencionados anteriormente: las direcciones siguen siendo privadas, no se requiere interacción entre las partes de la transacción y no hay necesidad de más transacciones de bitcoin de las estrictamente necesarias.

Sin embargo, eliminar la transacción de notificación crea un nuevo problema para el destinatario: sí, cualquiera puede pagarle fácilmente a una nueva dirección de bitcoin, pero ¿cómo sabría siquiera que ha recibido un pago? La transacción de notificación informaba previamente al destinatario sobre un nuevo posible remitente, incluyendo su clave pública, información que ahora falta.

En su lugar, el destinatario necesita comprobar si cada nueva transacción Taproot en la red incluye un pago destinado a su dirección de pago silenciosa. Esto aumenta considerablemente la carga computacional para el destinatario (o para el software de su billetera) y puede hacer que la recuperación de la billetera sea un proceso lento.

El receptor de un pago silencioso necesita detectarlo entre muchas otras transacciones.

Aun así, los pagos silenciosos representan una solución prometedora al problema del intercambio de direcciones, y los desarrollos en curso demuestran que la complejidad computacional podría reducirse aún más en el futuro. En general, para los usuarios de billeteras de hardware como la BitBox02, los códigos de pago también podrían ayudar a establecer una “libreta de contactos” segura registrándolos directamente en el dispositivo. Al crear una nueva dirección para un código de pago ya conocido, no sería necesario que el usuario verificara nada adicional, ya que el dispositivo puede hacerlo automáticamente. El soporte para enviar a direcciones de pago silenciosas es algo en lo que actualmente estamos trabajando y que podría añadirse a la BitBox02 en el futuro, lo que sería un paso importante para acelerar su adopción generalizada.

Conclusión

La forma en que compartimos direcciones de bitcoin con otros no debería ser un compromiso entre usabilidad y privacidad. Aunque generar manualmente nuevas direcciones de recepción implica algunos pasos adicionales, actualmente sigue siendo la manera más sencilla de proteger tu privacidad con la BitBox02 y la BitBoxApp. Los códigos de pago como los del BIP-47 o los pagos silenciosos presentan un enfoque interesante para este problema, con un enfoque importante en la privacidad, aunque se deban aceptar ciertos compromisos en el camino.


¿Aún no tienes una BitBox?

Mantener tus criptomonedas seguras no tiene por qué ser difícil. La billetera física BitBox02 almacena las claves privadas de tus criptomonedas offline. Así podrás gestionar tus monedas de forma segura.

La BitBox02 también viene en versión sólo Bitcoin, con un firmware radicalmente enfocado: menos código significa menos superficie de ataque, lo que mejora aún más tu seguridad cuando sólo almacenas Bitcoin.

¡Hazte con una en nuestra tienda!


Shift Crypto es una empresa privada con sede en Zurich, Suiza. Nuestro equipo de colaboradores de Bitcoin, expertos en criptomonedas e ingenieros de seguridad crea productos que permiten a los clientes disfrutar de un viaje sin estrés desde el nivel de principiante hasta el nivel de maestría en la gestión de criptomonedas. La BitBox02, nuestra billetera de hardware de segunda generación, permite a los usuarios almacenar, proteger y realizar transacciones con Bitcoin y otras criptomonedas con facilidad, junto con su software complementario, la BitBoxApp.