BTCPay Server es software libre para aceptar pagos en bitcoin, publicado bajo la licencia MIT. Puedes ejecutarlo en tu propio servidor o utilizar una instalación ajena. Crea solicitudes de pago, relaciona los cobros y ayuda a llevar los registros. El proyecto no es una cuenta a la que debas confiar dinero ni un intermediario que resuelva disputas sobre productos.
Imagina una librería en línea. El cliente elige bitcoin y BTCPay Server crea una invoice: una solicitud de pago por un importe concreto. La página muestra una dirección o una solicitud Lightning según la configuración de la tienda. El programa vigila el cobro y comunica los cambios de estado al comercio conectado. Así no hay que identificar cada pago a mano. También puede atender una caja o recoger donaciones. El código abierto permite inspeccionar y modificar el programa, pero por sí solo no demuestra que una instalación concreta sea segura. [1]
Para una cartera existente, el servidor puede recibir una clave pública extendida, información con la que deriva las direcciones de recepción. Las claves privadas que autorizan el gasto pueden permanecer fuera, por ejemplo en una cartera física. Una cartera caliente funciona de otra forma: sus secretos están en un dispositivo conectado a internet. El acceso a un nodo Lightning que gestiona pagos rápidos también puede permitir gastar. Administrar el servidor y controlar el dinero son, por tanto, decisiones distintas. La etiqueta self-hosted, es decir, alojamiento propio, no las resuelve por sí sola. [2] [3]
Usar un servidor ajeno puede ahorrarte instalación y mantenimiento. Sin embargo, incluso al cobrar en tu propia cartera dependes de su administrador. Un servidor modificado o comprometido puede mostrar direcciones del atacante en lugar de las tuyas. Obtener la clave pública no permite por sí solo gastar las monedas ya recibidas, pero una caja manipulada puede desviar pagos futuros. Comprueba también los cobros en una cartera independiente. Un servidor propio comprometido tiene el mismo riesgo; un proveedor externo influye además en la disponibilidad y la privacidad de los pagos. [4]
El libro puede tener precio en coronas checas mientras el cliente paga en bitcoin. La invoice fija el tipo de cambio y el importe durante un tiempo limitado. Processing significa que se ha pagado todo el importe, pero faltan condiciones de liquidación, como confirmaciones en bloques. Settled indica que se han cumplido; Lightning normalmente no espera a un bloque. También hay que resolver pagos insuficientes, excesivos o tardíos. Cambiar un estado manualmente no crea una confirmación de red. Convertir el precio mostrado tampoco envía coronas a tu banco: la conversión mediante un complemento o proveedor es otro servicio con sus condiciones y costes. [5] [6] [3]
Los programas se conectan mediante Greenfield API, una interfaz que les permite comunicarse. La tienda guarda el identificador de la invoice junto al pedido. Un webhook, un mensaje automático del servidor, informa de los cambios; su autenticidad debe comprobarse según la documentación. La clave de acceso API solo debe tener los permisos necesarios para esa tienda. Si llega el mismo mensaje dos veces, no se debe enviar otro libro. El regreso del cliente a la página de agradecimiento tampoco prueba el pago. Tras una interrupción, hay que contrastar los registros locales con las facturas y los pagos reales. [7]
Lightning Network utiliza canales de pago para no registrar cada pago por separado en un bloque. Tu propio nodo debe estar disponible y tener liquidez entrante: capacidad en los canales por la que los fondos puedan llegar hasta ti. Esto exige una gestión continua. Puedes contratar ayuda con la liquidez, utilizar intercambios entre redes de pago o un servicio de custodia que controle los fondos del cliente. Son opciones con distintos permisos, comisiones y riesgos. El nombre BTCPay Server en la página de pago no revela cuál utiliza la tienda ni garantiza que todos los pagos funcionen. [8]
Los datos de recuperación de la cartera no son una copia de seguridad de toda la tienda. Además de las claves, necesitas registros de facturas, ajustes y otros datos según la instalación. En Lightning es especialmente peligroso arrancar un nodo con un estado antiguo de los canales: una recuperación incorrecta puede poner los fondos en riesgo. Una migración planificada no es lo mismo que recuperarse de una avería. Durante la migración, el nodo original no debe seguir cambiando ni ejecutarse junto a la copia restaurada. Sigue el procedimiento de la implementación utilizada. Prueba la restauración de Lightning aislada de la red y de sus pares para no afectar a los canales activos. La guía de Docker, un entorno que ejecuta los componentes de la aplicación en contenedores separados, corresponde a ese método de instalación. [9]
La ventaja es poder decidir sobre tu infraestructura de pagos. Aun así, alguien debe encargarse de las actualizaciones, el acceso de administrador, los servicios expuestos a internet y las copias recuperables. El software no cobra un porcentaje de cada pago, pero alojamiento, equipos, comisiones de red y asistencia Lightning pueden costar dinero. Evita guardar datos personales innecesarios. Si el libro se pierde o se devuelve, el comerciante gestiona la reclamación y el reembolso; los desarrolladores de BTCPay Server no arbitran esa venta. Los registros ayudan a la contabilidad, pero no sustituyen todas sus obligaciones. [10] [3] [7]
La caja falla, la cartera permanece
Una tienda utiliza únicamente los datos públicos de una cartera externa cuando su servidor deja de responder. El bitcoin ya recibido bajo el control de sus claves no desaparece, pero los clientes quizá no puedan abrir nuevas páginas de pago y la tienda no ve el estado actual de los pedidos. Tras recuperarse, comprueba la configuración de recepción y concilia las facturas con la cartera. El ejemplo no se aplica igual a claves secretas perdidas con una cartera caliente del servidor ni a la restauración de canales Lightning desde datos antiguos.
Para obtener la imagen más completa, lee esta entrada junto con Bitcoin Payment Processor, Bitcoin Point of Sale, Autocustodia, Lightning Network, Merchant Adoption, Bitcoin. También enlazan con esta entrada Bitcoin Coffee, Transaction Labeling, Bitcoin Payment Processor, Bitcoin Point of Sale.
01¿Usar BTCPay Server significa automáticamente autocustodia?+
No. Averigua quién controla las claves de la cartera conectada y qué permisos tiene el servidor o servicio Lightning. Los datos públicos de una cartera externa no permiten gastar; una cartera caliente o un servicio de custodia pueden funcionar de otro modo. Incluso sin claves privadas, una caja comprometida puede mostrar direcciones incorrectas.
02¿Bastan las palabras de respaldo para recuperarlo todo?+
Pueden restaurar la cartera Bitcoin correspondiente, pero no la lista de facturas, la configuración ni automáticamente el estado de los canales Lightning. Cada parte necesita sus copias y procedimientos. Prueba la recuperación de forma segura: una copia antigua de Lightning no debe comunicarse con la red como si fuera el nodo actual.