Aspectos Técnicos de Bitcoin

¿Qué Es El Protocolo De Pago De Bitcoin? Bip-70

Qué Es El Protocolo De Pago De Bitcoin

La BIP-70, o protocolo de pago de Bitcoin, es un protocolo interactivo para enviar pedidos pagos y recibirlos.

Esta propuesta de mejora de Bitcoin describe un protocolo para la comunicación entre el comerciante y el cliente, permitiendo que ambos tengan una mejor experiencia y una mayor seguridad contra los ataques de intermediarios en el proceso de pago.

Permite hacer que el proceso de una compra sea mucho más amigable con el usuario mientras le brinda una capaz extra de seguridad que siempre es bienvenida.

El problema es que se trata de una propuesta de mejora que no ha tenido mucha adopción y que pocos monederos y comerciantes han adoptado. Incluso, los pocos que lo hicieron, acabaron quitándola.

Quizás no ha ayudado el hecho de que ha habido una gran controversia, en especial alrededor de uno de los monederos que la implemento, BitPay.

Hoy vamos a analizar de que se trata esta BIP, a cual viene a mejorar y porque ha fracasado.

BIP-21 vs BIP-70

Una BIP o propuesta de mejora es un mecanismo por el cual los desarrolladores hacen cambios, a mejor, de Bitcoin.

BIP-21

La BIP-21 es un estándar abierto de pagos que ha sido implementado y ha estado activo en los monederos de Bitcoin desde 2012.

El código QR que usualmente vemos en varios lugares donde podemos pagar usando nuestros BTC es el resultado de la BIP-21.

Una de las reglas que establece esta propuesta de mejora es que, independientemente del software que utiliza el monedero o servicio, el código QR y la solicitud de pago deben crearse e interpretarse de manera estándar.

Esto es así porque garantiza la interoperabilidad y compatibilidad. Si en su lugar cada comerciante y monedero utilizaran su propia versión, habría muchas confusiones y errores.

De todas formas, aunque sencilla, no llega sin algunos problemas.

Ataque de intermediario

La principal falla de la BIP-21 es que puede ser fácilmente falsificada. Un atacante podría hackear el sitio y cambiar el código QR de forma sutil para que la persona no se percate de esta modificación.

Si esto ocurriese, algo que se puede lograr tanto con un hackeo como con un virus, entonces estaríamos ante lo que se conoce como ataque de intermediario.

En uno de estos ataques el usuario o cliente cree que está interactuando con el vendedor cuando en realidad están enviando el pago a otra persona que hay secuestrado el código QR.

Así, puede hacerse con los BTC y otra información sensible de la persona.

BIP-70

La BIP-70 fue propuesta por Gavin Andresen y Mike Hearn en julio de 2013, y fue creada especialmente para combatir esta vulnerabilidad de la que hablamos en la BIP-21.

La propuesta tiene este mensaje:

Esta BIP describe los mensajes del protocolo de pago codificados utilizando los búferes de protocolo de Google, autenticados mediante certificados X.509 y comunicados a través de http/https. Las futuras BIPs podrían ampliar este protocolo de pago a otras codificaciones, sistemas PKI o protocolos de transporte

En términos sencillos, durante la interacción entre el cliente y el vendedor, la dirección del vendedor es envuelta en un certificado X.509.

Veamos más sencillamente con un ejemplo, el de una transacción BitPay, un servicio de pagos con criptomonedas.

Ejemplo de BIP-70 con BitPay

Podemos ver que la casilla de dirección tiene una URL de BitPay en lugar de la típica dirección de Bitcoin.

El monedero del usuario utilizará la URL para obtener la dirección de Bitcoin y el importe del servidor de BitPay, junto con metadatos como la fecha de caducidad de la factura, el número de factura y la información del comerciante.

De esta forma se asegura que nadie pueda sobrescribir y modificar la dirección del comerciante.

Este protocolo involucra varios pasos:

  1. El cliente hace clic en un bitcoin BIP21: URI ampliado con un parámetro “r” adicional (descrito en BIP72). El gestor de URI abre el monedero del usuario como respuesta.
  2. El monedero se pone en contacto con el servidor del comerciante y solicita una solicitud de pago firmada por el certificado SSL del comerciante. Una vez recibida y validada la solicitud de pago firmada, los detalles del pago se rellenan automáticamente en la pantalla de envío de transacciones del monedero. Opcionalmente, se notifica al usuario que está pagando al propietario del dominio correspondiente al certificado firmado (por ejemplo, “tienda.com”).
  3. El cliente revisa los detalles del pago y hace clic en el botón “Enviar transacción”. La transacción se genera y se transmite a la red Bitcoin. Se envía una copia de la transacción al comerciante, que responde con un acuse de recibo del pago (opcionalmente retransmitiendo la transacción desde sus propios nodos).

Sin embargo, personas como Andreas Antonopolous, han encontrado fallas en esto:

  • El BIP70 consigue la seguridad de la emisión de certificados digitales, que es un mercado muy centralizado con proveedores centralizados.
  • La implementación de BIP70 también puede crear el riesgo de la vigilancia y el control de las transacciones en la cadena por parte de AML/KYC, algo que no va de la mano con la comunidad de Bitcoin.

Protocolo actual vs. el nuevo

El protocolo actual de pago de Bitcoin funciona de la siguiente forma:

  1. Un cliente agrega un nuevo ítem en el carrito de compra en la tienda online y decide pagar utilizando Bitcoin.
  2. El comerciante genera una dirección de pago única, asociada con la orden del cliente, y le pide al mismo que pague.
  3. El cliente copia la dirección de Bitcoin de la tienda donde se encuentra comprando y la pega en su monedero o hace clic en un enlace y su monedero se abre automáticamente con el saldo total a pagar.
  4. El cliente autoriza el pago a la dirección del vendedor y transmite la transacción a través de la red punto a punto de Bitcoin.
  5. El servidor del comerciante detecta el pago y luego de las suficientes confirmaciones de las transacciones considera el pago completado.

El protocolo actual agrega nuevas características para mejorar la experiencia:

  1. Los destinos de pago son seguros y legibles por humanos: se pedirá a los clientes que autoricen el pago a “ejemplo.com” en lugar de a una dirección de bitcoin difícil de leer de 34 caracteres.
  2. Prueba de pago segura: que el cliente puede utilizar en caso de disputa con el comerciante.
  3. Resistencia a los ataques de intermediarios: que sustituyen la dirección bitcoin del comerciante por la de un atacante antes de que se autorice una transacción con un monedero.
  4. Mensajes de pago recibido: para que el cliente sepa inmediatamente que el comerciante ha recibido y ha procesado (o está procesando) su pago.
  5. Direcciones de reembolso: proporcionadas automáticamente al comerciante por el software del monedero del cliente, para que los comerciantes no tengan que ponerse en contacto con los clientes antes de reembolsar los pagos de más o los pedidos que no pueden realizarse por alguna razón.

Ventajas y Desventajas de la BIP-70

Esta propuesta de mejora para Bitcoin llega con varias ventajas que son interesantes para fomentar el comercio con BTC, pero también llega con algunas desventajas.

Pros

  • El comerciante puede pedir pagos con cualquier script, no solo los de los tipos de direcciones más populares. Esto hace que la propuesta sea compatible con nuevos formatos de direcciones.
  • El monedero del cliente automáticamente envía su propio script para ser usado en caso de ser necesario un reembolso.
  • El pedido de pago tiene una fecha de expiración, que hace que el precio enviado en ella ya no sea aplicable para la compra.
  • El comerciante tiene el poder de transmitir a la red la transacción. Esto es útil, al permitir a un usuario pagar mediante Bluetooth o NFC aunque no tuviera conexión a Internet en ese momento

Contras

Su principal aspecto negativo es el hecho de que el software del cliente brinde soporte al sistema de certificados SSL, que incluye muchos algoritmos que no se utilizan en Bitcoin y un complejo sistema de infraestructura de clave pública (PKI).

En la práctica, es necesario que el monedero incluya librerías como OpenSSL.

Puede que no parezca mucho, pero los errores que contenga esta librería externa podría ser explotados y dar acceso a los bitcoins. Algo que ocurrió en el pasado con la vulnerabilidad llamada heartbleed, que permitió a los atacantes acceder a las claves privadas de Bitcoin Core en 2014.

También se encuentra el hecho de la centralización de los certificados SSL.

Controversia con BitPay y la BIP-70

BitPay es un servicio de pagos de criptomonedas muy utilizado a nivel mundial. Muchos comerciantes han podido comenzar a aceptar pagos en criptos utilizando la solución de este proveedor.

Pero aunque esto empodera a los usuarios, al permitirles pagar con cripto divisas, la realidad es que hubo una gran controversia alrededor de todo esto.

Todo a raíz de que cuando implementaron este protocolo removieron completamente la opción de pagar de la forma tradicional (BIP-21), dejando solo soporte para BIP-70.

Esto fue problemático debido a varias razones:

  • BIP-21 es muy sencilla de implementar, mientras que BIP-70 tiene varias complicaciones.
  • Este avance de BitPay fue una demostración de bullying hacia los monederos, obligándolos a implementar un protocolo a pesar de no querer hacerlo.
  • Fue una gran violación de privacidad porque en todo el proceso la IP del cliente era revelada y podía llevar fácilmente a la identificación de este.

Conclusión

En los papeles todo parece que la propuesta de mejora tiene grandes aportes que hacer a la comunidad de Bitcoin y la adopción masiva como forma de pago. Sin embargo, la experiencia y la mirada más precisa sobre los detalles arrojaron algo diferentes.

Es de celebrar que se busquen nuevas mejoras que hacer sobre esta criptomoneda, pero no sin dejar de lado los aspectos importantes como la privacidad y la descentralización.

Acerca del autor

Criptotario

Me llamo Martin, soy ingeniero y apasionado de las inversiones y la tecnología. Me gusta mucho leer libros y todo aquello que me haga mejorar día a día.

Agrega un Comentario

Haz clic aquí para añadir un comentario