La confianza en los intercambios p2p Bitcoin tiene muchos matices que en este artículo te voy a enseñar. Una de las formas más simples de conseguir Bitcoin es en los intercambios de P2P, sitios donde el comprador/vendedor puede intercambiar directamente de una persona a otra los bitcoin a cambio de dinero Fiat.
Pero recordemos el concepto básico de Bitcoin:
«Bitcoin: un sistema de dinero en efectivo electrónico entre iguales.»
«Una versión puramente de igual-a-igual de dinero en efectivo electrónico permitiría que los pagos en línea sean enviados directamente de una parte a otra sin pasar por una institución financiera.»
Así que lo ideal para usar un intercambio P2P es que no tenga KYC para que sea privado. También que sea sin custodia de los fondos del usuario para que sea un mercado donde los participantes puedan comprar/vender Bitcoin sin necesidad de confianza.
Sin KYC es lo mínimo para la privacidad de los usuarios y sin custodia evita la necesidad de confianza en un tercero…
Esto se logra a través de un sistema de garantía donde se deposita el bitcoin. Una vez que ambas partes verifican que se hizo el depósito, proceden a realizar el intercambio. Actualmente, en el sistema de Bitcoin esto se puede realizar en on-chain utilizando un Escrow y en Lightning a través de Hold invoice.
A mi entender, este era el procedimiento con lo que se garantizaba que se estaba realizando un intercambio sin custodia y sin confianza directamente entre los participantes. Pero estaba equivocado…
El sistema funciona diferente a cómo yo creía. Vamos a estudiar cómo funciona para entender qué sucede, porque lo más importante es estar informado para tomar la mejor decisión posible. Sobre todo a la hora de arriesgar nuestro patrimonio…
Primero veamos cómo Satoshi propuso implementar el depósito en garantía.
El escrow de Satoshi Nakamoto
Satoshi Nakamoto en sus correos del 11 de agosto de 2010 escribió lo siguiente:
«Aquí hay un resumen del tipo de transacción de depósito en garantía que es posible en el software. Esto no está implementado y probablemente no tendré tiempo para implementarlo pronto, pero solo para hacerle saber lo que es posible.
El fideicomiso básico (Escrow): El comprador compromete un pago al fideicomiso.
El vendedor recibe una transacción con el dinero en depósito, pero no puede gastarlo hasta que el comprador lo desbloquee. El comprador puede liberar el pago en cualquier momento después de eso, lo que podría ser nunca. Esto no le permite al comprador recuperar el dinero, pero le da la opción de quemar el dinero por despecho y nunca liberarlo. El vendedor tiene la opción de devolver el dinero al comprador.
Si bien este sistema no garantiza a las partes contra pérdidas, saca el beneficio de hacer trampa.
Si el vendedor no envía la mercancía, no se le paga. El comprador aún estaría fuera del dinero, pero al menos el vendedor no tiene una motivación monetaria para estafarlo.
El comprador no puede beneficiarse por no pagar. No puede recuperar el dinero del depósito en garantía. No puede dejar de pagar por falta de fondos. El vendedor puede ver que los fondos están comprometidos con su clave y no se pueden enviar a nadie más.
Un economista diría que un vendedor fraudulento podría comenzar a negociar, como «libera el dinero y te devuelvo la mitad», pero en ese momento, habría tan poca confianza y tanto despecho que la negociación es improbable.
¿Por qué diablos el estafador mantendría su palabra y te enviaría la mitad si ya está rompiendo su palabra para robarla? Creo que por cantidades modestas,»
En respuesta a correos anteriores, Satoshi escribió lo siguiente:
Cita de: jgarzik el 10 de agosto de 2010, 18:53:57
«Pregunte a algunos dueños de negocios del mundo real si quieren decirles a sus clientes sobre la posibilidad de que el dinero se pierda para siempre, irrecuperable para cualquiera de las partes.
Eso hace que parezca que de alguna manera podría perderse y las partes no pueden obtenerlo, incluso si quieren cooperar.
Cuando pagas algo por adelantado, tampoco lo puedes recuperar. Los consumidores parecen cómodos con eso. No es peor que eso.
Cualquiera de las partes siempre tiene la opción de cederlo a la otra parte.
Cita de: nelisky el 10 de agosto de 2010, 20:20:36
Pero la solución para quemar dinero, si bien es excelente para prevenir el fraude económicamente viable, no hace nada para evitar la venganza y, de hecho, hace que todos pierdan si un lado es deshonesto. Ciertamente no apoyaría eso.
Entonces también hay que estar en contra del sistema común de pago por adelantado, donde el cliente pierde.
-Pago por adelantado: el cliente pierde y el ladrón se queda con el dinero.
-Escrow simple: el cliente pierde, pero el ladrón tampoco recibe el dinero.
¿Están diciendo que el pago por adelantado es mejor, porque al menos el ladrón recibe el dinero, por lo que al menos alguien lo recibe?
Imagina que alguien te robó algo. No puede recuperarlo, pero si pudiera, si tuviera un interruptor de apagado que pudiera activarse de forma remota, ¿lo haría?
¿Sería bueno que los ladrones supieran que todo lo que tienes tiene un interruptor de emergencia y si te lo roban, no les servirá de nada, aunque tú también lo pierdas? Si te lo devuelven, puedes reactivarlo.
Imagínese si el oro se convirtiera en plomo cuando es robado. Si el ladrón lo devuelve, vuelve a convertirse en oro.
Todavía me parece que el problema puede ser presentarlo de la manera correcta. Por un lado, no ser tan directo sobre «quemar dinero» a los efectos de la discusión de la teoría de juegos. El dinero nunca se quema realmente. Tienes la opción de liberarlo en cualquier momento para siempre.»
Una respuesta interesante que obtuvo Satoshi fue del usuario Nelisky:
«Independientemente de cuáles sean las opciones técnicas, creo que un depósito en garantía siempre deberá ser, por definición, una entidad confiable. Puedo ver que el flujo de trabajo automatizado es bastante fácil cuando las cosas van bien:
– El comprador envía btc al depósito en garantía, indicando la dirección del destinatario
– El vendedor ve btc en el depósito en garantía, marcado para enviar a su dirección
– El comprador puede liberar fondos al vendedor
– El depósito en garantía lo hará automáticamente entonces después de x días
– Ambas partes pueden abrir una queja
Y eso es todo lo que automatizaría. Cuando las cosas van mal, ambas partes deben tener una tarifa para pagar al depósito en garantía para que todos pierdan algo. Entonces el fideicomiso solo tendrá que mediar.
Debido a que hay una tarifa *y* un intermediario humano, las posibilidades de éxito del fraude probablemente no sean económicamente interesantes a largo plazo.
Alguien en quien ya se confíe sería la persona ideal para esto, y tal vez por una pequeña tarifa, algunos de nosotros, los ‘chicos comunes’, podríamos ayudar a hacer valer las acusaciones de cualquiera de los lados, si somos locales para ellos.
Pero la solución para quemar dinero, si bien es excelente para prevenir el fraude económicamente viable, no hace nada para evitar la venganza y, de hecho, hace que todos pierdan si un lado es deshonesto. Ciertamente, no apoyaría eso.»
Depósito de garantía semiautomático
El usuario Olipro propuso el 30 de julio de 2010 un mecanismo de depósito en garantía semiautomático:
«Entonces, el depósito en garantía básico funciona con dos personas que trabajan a través de un tercero para intercambiar (generalmente dinero) por alguna otra forma de bienes o servicios.
En una transacción donde ambas personas son honestas, el negocio de depósito en garantía puede ser esencialmente automático, ya que el comprador obtiene sus bienes y aprueba la liberación de fondos, solo cuando hay una disputa se vuelve necesaria la interacción humana.
Por lo tanto, propongo el siguiente sistema:
1) usted crea una transacción de depósito en garantía por el monto autorizado por su clave que contiene la clave/los datos del destinatario, etc. Este bloque no se puede reclamar hasta que el comprador emita un bloque posterior para aprobarlo. También es imposible que el comprador lo reclame sin que el vendedor apruebe su devolución.
2) ingresa a la red, se verifica y el vendedor envía los bienes. Una vez que el comprador los obtiene, crea una transacción de liberación y el vendedor obtiene sus bitcoins.
3) si ocurre una disputa y ambas partes se niegan a liberar el dinero de una forma u otra, es necesario que un tercero arbitre. En esta situación, se requiere una firma tanto del comprador como del vendedor que autorice a un tercero. Lo que le dará a ese tercero la propiedad de la transacción de depósito en garantía original y luego podrá arbitrar el asunto»
Y así llegamos hasta la actualidad. Ahora veamos algunas definiciones…
Un Escrow o «fideicomiso», es un depósito en garantía. Es un acuerdo financiero diseñado para proteger a Compradores y Vendedores en una transacción.
Es una transacción multifirma, donde se deposita bitcoin a la espera que las partes se pongan de acuerdo para firmar la transacción a cambio de un pago en fiat o un servicio.
Pero para que funcione necesita de un tercero independiente como intermediario que también tiene una firma. Este intermediario retiene el pago hasta que todos cumplan con sus responsabilidades en la transacción.
Con un pago de depósito en garantía, el Vendedor solo recibirá los fondos cuando el Comprador haya recibido el fiat. El Vendedor sabe que recibirá el pago porque un tercero de confianza retiene los fondos en su nombre y los puede liberar.
Las personas utilizan los servicios de depósito en garantía Escrow para transacciones en línea de alto valor cuando no se conocen entre sí. Así se elimina cualquier riesgo de realizar transacciones con partes desconocidas. Esto es así porque confían en que el intermediario/árbitro no va a colaborar con una de las partes para cometer una estafa en perjuicio de la otra.
¿Cómo funciona el escrow?
Ahora, cuál es el concepto de Hold invoice en Lightning y cómo funciona…
Primero hay que recordar cómo funciona un pago estándar en Lightning.
Un pago exitoso es un proceso de dos partes que consiste en enviar el pago de una factura desde el remitente hasta el destinatario y recibir el secreto (preimagen) para el pago. Con este proceso se consigue mantener actualizado el saldo en el canal de pago.
Los hold invoice es un tipo de HTLC (Contrato Bloqueado por Tiempo con Hash). Son facturas LN en las que el receptor no libera inmediatamente la preimagen al recibir la acción de pago.
En cambio, el receptor realiza alguna acción y acepta el pago para liberar la preimagen y completar la transacción. O lo rechaza explícitamente o deja que se agote el tiempo de espera para no realizar ninguna otra acción, terminando el intercambio.
El Hold invoice funciona como el Escrow en Bitcoin al retener el pago a la espera de que el vendedor reciba el dinero acordado. Pero para que funcione con ese fin se necesita un tercero que funcione como intermediario y arbitro.
En este caso, quien generará el hold invoice es el nodo de un tercero, el intercambio P2P que funciona como intermediario/árbitro. Este nodo genera un hold invoice al vendedor, pero solo para servir como puente entre vendedor y comprador.
También le solicita al comprador un invoice estándar para enviar el pago una vez se completa la transacción. El nodo solo es parte de la ruta entre pagador/receptor.
El hold invoice requiere un HTLC que le permite al receptor el control de la factura para cancelar al completar el intercambio. En lugar de bloquear y liquidar inmediatamente, el HTLC para la factura retenida y no se liquida. En ese momento, ya no es posible que el vendedor revoque el pago.
Pero el receptor (el nodo del intercambio) aún puede elegir si liquidar o cancelar el HTLC y la factura que le envió el comprador. Esto también permite al vendedor control sobre el pago por qué tiene la opción de informar al nodo del intercambio si lo recibió o no.
Como el hold invoice fue creado por el nodo del intermediario, no hay riesgo de que alguno de los participantes pueda estafar al otro.
Como el mismo nodo está interesado en mantener su reputación como intermediario/árbitro, aunque retiene los sats temporalmente mientras se completa el comercio y tiene control para liberar o retener el pago hasta completar o no el intercambio, el riesgo de fraude se minimiza.
Resumen de un escrow
El depósito en garantía en Bitcoin, tanto on-chain como en Lightning, funciona al permitir que dos usuarios trabajen con un tercero para intercambiar bitcoin por dinero.
En una transacción, cuando ambas personas son honestas, el negocio de depósito en garantía puede ser esencialmente automático. El vendedor obtiene sus bienes y aprueba la liberación de fondos y el comprador recibe el bitcoin sin problemas. Solo cuando hay una disputa se vuelve necesaria la intervención del intermediario/árbitro.
Así que se puede decir que tenemos dos opciones:
- Se puede hacer al estilo que propuso Satoshi. Una multifirma 2 de 2, que contenga el depósito. Incluso para aumentar el incentivo se podría exigir que ambas partes depositen bitcoin en la multifirma. Así, los participantes, si eligen ser honestos y completan el intercambio, van a obtener la recompensa. Pero si no son honestos, los fondos quedarán estancados en una dirección sin poder moverse, perdiendo ambos.
- La otra forma es utilizar un intermediario/árbitro, delegando la custodia de forma temporal a un tercero de confianza, que de alguna forma serviría de garante mientras se completa el intercambio y que puede penalizar a la parte que se comporte de manera deshonesta. Pero siempre existirá el riesgo que el intermediario/árbitro también se comporte de manera deshonesta, intentando defraudar y quedarse con los fondos.
Siempre que todos los involucrados en el intercambio P2P actúen de forma honesta, no habrá problemas y el comercio se podrá realizar de forma rápida.
La mayoría de los usuarios de Bitcoin, entre los que me incluyo, no tienen claro cómo funciona los intercambios P2P. Ni cómo se custodia los bitcoins mientras se realiza la transacción.
Estas dudas se vieron reflejadas en una interesante conversación que se realizó en Telegram, donde uno de los participantes hace una excelente pregunta. A continuación voy a parafrasear y resumir lo que se dijo omitiendo su nombre por privacidad.
Explicación de cómo funciona un p2p a fondo
¿Retiene un pago vía LN? ¿Cuánto tiempo lo puede retener como máximo? ¿Indefinidamente? ¿Qué ocurre si mientras se retiene alguno de los 2 usuarios (pagador o receptor) cierra su canal?»
Estas preguntas se fueron respondiendo poco a poco durante la conversación. Después de mucho debatir e intercambiar opiniones, el coordinador de un intercambio P2P se integró a la conversación. Nos explicó de forma muy clara como realmente funcionan los P2P y el tema de custodia de los fondos.
Esta es la explicación «user friendly» de cómo funciona.
Hay confianza. Ahora bien, un secreto sobre los P2P: todos requieren confianza en el coordinador. Da igual que tipo de pipeline tengan. Se requiere confianza. Y, sí, un coordinador del P2P, puede robar a los usuarios (llámese como sea).
Satoshi (el verdadero Satoshi) propuso en 2011 un P2P en 2-2 sin coordinador. Con contratos sobre colateralizados, basándose en un caso práctico de teoría de juegos.
Por ejemplo, yo te vendo 1 BTC a ti. Pero los dos ponemos 5 BTC en el contrato. Es decir, uno pone 6 BTC y otro pone 5 BTC.
Si hay una disputa, más nos vale resolverla entre nosotros dos. Porque si no, los dos perdemos.
Ahora, tomando una visión extrema de lo que hace un coordinador.
Un coordinador con un 2-3 puede robarte porque puede tomar el otro lado de la orden.
En un ejemplo de 2-3 en un intercambio. Tienes que confiar en que un empleado no haga un trade contra ti.
No solo eso. En las disputas, se pueden dar muchos casos especiales donde el coordinador puede conspirar con una de las partes para defraudar a la otra.
Pero confías en el coordinador y su buena intención y separación de poderes. Sin la buena reputación del coordinador, el P2P no funcionaría.
Mi visión es que hay un gradiente. Nada es «custodio/no-custodio» de forma estricta.
Las diferentes alternativas las pondría así en el gradiente, de menos a más custodia:
(2-2 de Satoshi/Vexl) -> Bisq -> Hodlhodl -> (Peach/RoboSats/lnp2pbot) -> localbitcoins, etc -> binance p2p, etc.
Es importante que se entienda cómo funciona. Como digo, la cosa es turbia dentro de un gradiente que no es blanco o negro.
Lo llamamos «custodia minimizada». Hay la custodia estrictamente necesaria para que funcione. Ni un segundo más del estrictamente necesario.
«y en lightning, va a ser muy difícil ver servicios no-custodial de forma estricta.»
Todos los P2P realizan una custodia temporal de los fondos, pero para ser bien claros, la confianza requerida es mínima. No hay ningún motivo económico para que el coordinador se quede con esos fondos. Dañaría su reputación e iría en contra de sus propios intereses.
Para finalizar queda la pregunta:
¿Se puede hacer un verdadero protocolo P2P ligero e ingenuo, sin coordinador y sin custodia, inspirado en la visión de depósito en garantía 2-2 sobrecolateralizado de Satoshi?
La idea principal es tener una herramienta para poder comprar/vender Bitcoin sin KYC y con custodia mínima de los fondos del usuario. Utilizando Escrow y hold invoices para solo custodiar los fondos de los usuarios temporalmente hasta el último segundo que se van a liberar los pagos.
Este método es, por el momento, el enfoque más seguro para garantizar que los pares cumplan con su parte del trato. Ya que una factura de retención directa entre el vendedor y el comprador presenta mucho riesgo. Lo más importante es que hagas tu propia investigación y saques tus propias conclusiones. Así podrás tomar la mejor decisión posible con base en la información que tengas…