Saltar al contenido
buybitcoinsmart

Glosario / Referencia para desarrolladores

Parámetro r

¿Qué es el parámetro r?
El parámetro r es la adición de BIP72 a un URI de Bitcoin que reemplaza la dirección de pago por una URL de la que se espera que su billetera obtenga una solicitud firmada.

Se especifica en el BIP-72.

Escanear un código QR que lleva un parámetro r le indica a su billetera que obtenga una página web antes de mostrarle nada. BIP72 llegó el 29 de julio de 2013 y usó una r sin más en lugar de la grafía req-r, reservada para los parámetros obligatorios, de modo que las billeteras antiguas pudieran ignorarlo y pagar a la dirección en su lugar. Ninguna página de pago que usted encuentre hoy le entregará uno.

Cómo funciona

El parámetro r es un parámetro de consulta que lleva una URL HTTPS con codificación porcentual, y BIP72 definió dos formas para él. La forma compatible mantiene una dirección normal en el URI y añade el parámetro detrás de ella, de modo que una billetera que nunca ha oído hablar del protocolo de pago paga a la dirección, mientras que una billetera que entiende r ignora la dirección y obtiene la solicitud. La forma reducida elimina por completo la dirección y da algo como bitcoin:?r=https://store.example/i/8f3a, que el software antiguo no puede pagar en absoluto.

Hacer opcional el parámetro fue una lectura deliberada de BIP21, cuya gramática divide los parámetros no reconocidos en dos clases: cualquiera con el prefijo req- debe hacer que una billetera rechace el URI, y cualquier otro puede omitirse. Por tanto, llamar al campo r y no req-r fue optar por la degradación elegante. BIP72 también detalló el comportamiento contrario, de modo que un comerciante que realmente no pudiera aceptar un pago directo a la dirección podía escribir req-r y obligar a las billeteras incompatibles a detenerse en lugar de enviar fondos que la página de pago no conciliaría.

Lo que devolvía la URL era un protocol buffer servido con el tipo MIME que BIP71 registró para él. Después, BIP73 añadió la negociación de contenido, que permitía que el mismo enlace devolviera una solicitud de pago a una billetera y una página web corriente, pensada para personas, a un navegador, según el encabezado Accept que enviara el cliente.

Dónde aparece

El parámetro r no aparece en ningún uso actual. Bitcoin Core dejó de seguir estas URL cuando la versión 0.20.0 eliminó la compatibilidad con el protocolo de pago, y las herramientas para comerciantes que antes las generaban han sido reemplazadas por software que emite URI BIP21 simples y facturas Lightning. Una página de pago que todavía produce un parámetro r está ejecutando una integración que nadie ha tocado en años, y pagar por otra vía es la respuesta sensata.

El hábito que este campo debería dejarle dura más que el propio campo. Un código QR es ilegible para una persona, así que escanear uno es un acto de confianza en lo que lo haya producido: una pantalla, una factura impresa, un adhesivo pegado a una máquina. El parámetro r lo hacía literal al entregar a su billetera una URL a la que conectarse, lo que además exponía su dirección IP al servidor del comerciante antes de que usted aceptara nada. La misma exposición existe, de forma más anodina, con un código QR corriente de una dirección que alguien ha cambiado discretamente. Confirme el destino en una pantalla que el escáner no controle, lo que en una billetera de hardware significa la propia pantalla del dispositivo, y compare suficientes caracteres para estar seguro en lugar de echar un vistazo a los cuatro primeros.

Parámetro r frente a URI de Bitcoin

Un URI de Bitcoin es la cadena de caracteres completa; el parámetro r era un parámetro opcional dentro de ella. Lo que los separa es el sentido de la autoridad. Parámetros como amount, label y message complementan un destino que ya está en el URI, y una billetera puede ignorarlos todos y aun así enviar el dinero al lugar correcto. El parámetro r invertía esa relación: allí donde se entendía, se imponía por completo a la dirección y trasladaba la decisión sobre adónde van los fondos desde la cadena de caracteres que usted tiene delante a un servidor situado en otra parte.

No confundir con

Preguntas frecuentes

¿Qué diferencia hay entre r y req-r en un URI de Bitcoin?

El prefijo decide qué ocurre con las billeteras que no entienden el parámetro. BIP21 establece que un parámetro desconocido que empiece por req- obliga a la billetera a rechazar el URI entero, mientras que una r simple puede ignorarse, lo que permite a la billetera pagar a la dirección en su lugar.

¿Debo preocuparme si una página de pago me da un parámetro r?

Tómelo como una señal de software descuidado. Bitcoin Core eliminó la compatibilidad con el protocolo de pago en la versión 0.20.0 y ninguna billetera actual actuará según ese parámetro, así que pida al comerciante una dirección simple o una factura Lightning.

Para seguir leyendo

Términos relacionados

Más en la sección Referencia para desarrolladores

Leer esta página en inglés