por Fanis Michalakis
Índice de contenidos
- Canales no ejecutables en la cadena
- La confianza es un espectro
- Hacerlo público
- Reflexiones finales
Hoy hablaremos de los Canales Hospedados (Hosted Channels), otro tipo de canales que pretenden mejorar la UX (experiencia de usuario) de los canales Lightning sin dejar de cumplir la especificación y mitigando las compensaciones necesarias.
Canales no ejecutables en la cadena
La gran diferencia entre un canal hospedado y un canal Lightning normal es que el primero no es ejecutable en la cadena, simplemente porque no hay una transacción de apertura del canal desde la que gastar. Así es, los canales hospedados no se abren utilizando una transacción de Bitcoin. No hay una transacción de financiación. En su lugar, hay un cierto nivel de confianza entre el cliente y el anfitrión del canal.
De hecho, los dos participantes de un canal hospedado no son iguales:
- el anfitrión proporciona el canal, con la liquidez de su parte,
- el cliente disfruta del acceso a la Red Lightning utilizando el canal o los canales del anfitrión y puede recibir de inmediato porque los fondos están del lado del anfitrión.
En realidad, el dinero nunca sale del lado del anfitrión, incluso después de que se produzcan algunas transacciones. Los canales hospedados son, por tanto, un cierto tipo de canales de custodia. Una vez que se han recibido algunos satoshis en el canal alojado (y el anfitrión, por tanto, se los debe al cliente), el cliente debe confiar en que el anfitrión no le estafará con los fondos. Entonces, ¿cuál es el problema? ¿Por qué vale la pena mencionar los canales hospedados?
La confianza es un espectro
Yo mismo he tenido algunos problemas para entender qué hace que los canales hospedados sean más interesantes que los monederos de custodia normales, como Wallet of Satoshi. Lo que realmente me ayudó a entenderlo fue esta discusión muy perspicaz entre Matt Odell, Anton Kumaigorodski, fiatjaf y Eric Sirion durante el episodio 45 de Citadel Dispatch. Realmente recomiendo escucharlo (la discusión que menciono dura alrededor de 15 minutos, de 13:30 a 28:00, pero de todas formas lo resumiré en las siguientes líneas).
Cuando se utiliza un monedero de custodia como Wallet of Satoshi, el proveedor del monedero se encarga de todo. Tu saldo dice 10.000 sats, pero en realidad los sats están en uno de los canales del proveedor del monedero. Si recibes un pago, en realidad es el proveedor del monedero el que lo recibe e incrementa tu saldo en consecuencia. Cuando envías un pago, sólo pides al proveedor del monedero que envíe un pago en tu nombre, y es el proveedor del monedero el que calculará la ruta hasta tu destinatario y procesará realmente el pago. Por lo tanto, hay mucha confianza entre usted y el proveedor del monedero, y muchas formas en las que este puede abusar de esta confianza.
Imagine que quiere recibir un pago. En un monedero completamente custodiado, la factura es elaborada por el proveedor del monedero. Cuando el pago se completa y se reciben los fondos, el proveedor del monedero debería aumentar tu saldo por el importe del pago. Pero bien podrían decirte que el pago ha fallado, dejar tu saldo como está y embolsarse los fondos para ellos mismos. Eso es efectivamente robarte, y no tienes forma de detectarlo. Incluso si la persona que te paga insiste en el hecho de que el pago se efectuó, mostrándote que tiene la preimagen, no tienes forma de saber quién dice la verdad entre ellos y tu proveedor del monedero, porque la factura fue generada por el proveedor y por lo tanto no conoces la preimagen asociada.
Cuando utilizas un monedero de custodia que aprovecha los canales hospedados (como Simple Bitcoin Wallet (SBW), por ejemplo), las cosas son un poco diferentes, pero la experiencia sigue siendo la misma: puedes recibir y enviar sats en Lightning casi gratis. Los sats que se muestran como tuyos en la aplicación siguen estando del lado del anfitrión, por lo que es equivalente a la situación con Wallet of Satoshi. Pero como tu cartera actúa como un nodo Lightning, recibir y enviar pagos es mucho más privado y seguro.
Consideremos de nuevo el caso en el que usted quiere recibir un pago. Esta vez, usted es el que elabora la factura, no el proveedor del monedero. Por lo tanto, el proveedor del monedero no puede recibir el pago y fingir que no lo hizo, porque necesita obtener la preimagen de usted para desbloquear el HTLC del salto anterior.
Por otro lado, si envías un pago, la única manera de que el anfitrión desbloquee tu HTLC es dándote una imagen previa válida para el pago, como en cualquier ruta de pago normal. Por lo tanto, no puede engañarte fingiendo que el pago ha funcionado mientras ellos se quedan con los fondos.
Otro aspecto interesante de los canales hospedados en comparación con los canales de custodia habituales es la privacidad. Como dije antes, cuando envías un pago usando un monedero de custodia como Wallet of Satoshi, el monedero se encarga de calcular la ruta y por lo tanto sabe todo sobre el pago, desde la cantidad hasta el destino. Con los canales custodiados, la ruta es calculada localmente por el cliente, y el anfitrión sólo actúa como un salto en el camino (pero ten en cuenta que el anfitrión sabe que el pago proviene del cliente).
Por último, dado que las cosas se llevan a cabo en un canal hospedado como en un canal normal, el anfitrión y el cliente intercambian datos de estado del canal con firma cruzada (el equivalente del canal hospedado a la transacción de compromiso). Por lo tanto, el usuario tiene algún tipo de prueba criptográfica con respecto a lo que el anfitrión le debe, lo que no es en absoluto el caso de los monederos tradicionales de custodia.
TL;DR: con los canales alojados, si joden a un usuario, puede probarlo.
Por último, los canales hospedados presentan una propiedad interesante. Aunque son custodiados, pueden ser proporcionados por otras entidades que no sean el proveedor del monedero. Por ejemplo, puedes tener un canal hospedado donde fiatjaf es el anfitrión, dentro de tu app SBW. En mi opinión, esto puede añadir fuertes garantías y canalizar la aparición de un amplio mercado de canales hospedados basado en la reputación.
Hacerlo público
Una última cosa interesante con los canales hospedados es que pueden ser anunciados públicamente a la red. Por lo tanto, otros compañeros pueden utilizar tu canal hospedado sin necesidad de confianza adicional. De hecho, ni siquiera tienen que preocuparse de si el canal es alojado o normal: en caso de problema, sus fondos no se verían afectados. Parafraseando lo que dice Anton en el podcast, un canal hospedado requiere confianza entre dos pares de la red a nivel de protocolo, pero luego, si el canal es público, otros pares de la red pueden aprovechar este canal sin confianza adicional.
Reflexiones finales
Los canales hospedados son canales de custodia. No son ejecutables en la cadena. Pero entre todas las soluciones de custodia, me parecen las menos malas. Permiten incorporar nuevos usuarios a Lightning a un coste muy bajo, ya que no es necesario publicar una transacción de financiación del canal. Por supuesto, requieren mucha más confianza que los Turbo Channels, pero al mismo tiempo solucionan uno de los principales problemas de este tipo de canales: el coste inicial necesario para unirse a la red Lightning.
- También siéntase libre de donar algo de sats a Citadel Dispatch. En mi opinión, es uno de los mejores programas sobre Bitcoin disponibles actualmente, y está completamente libre de anuncios y patrocinadores. ︎
- Hay que pagar tasas de enrutamiento, pero la apertura del canal es gratuita, ya que no se publica ninguna transacción de Bitcoin. Esto contrasta con las soluciones no-custodiales que usan Turbo Channels (como Phoenix), donde el usuario paga por la apertura del canal.