Échange Lightning-Bitcoin sans confiance  ? : Échange de pile Bitcoin


J'ai découvert comment inverser ces étapes pour le cas « inverse ».

Dans le cas du forward, la facture Lightning ne doit pas nécessairement être générée par le payeur, mais peut l'être par un tiers, comme décrit dans la question. S'il est généré par le payeur et qu'il n'y a que deux parties impliquées, alors ce cas peut être « inversé » pour l'inverse, cas LN-> BTC, avec une utilisation du coffre-fort très similaire.

Je décris d’abord le cas direct, en termes de deux parties, puis je décris la solution sans confiance pour le cas inverse. Notez que j'appelle l'acteur swapper Client (au lieu de Payeur).

Échange Lightning-Bitcoin sans confiance  ? : Échange de pile Bitcoin

Cas avancé (BTC->LN)  :

  • Acteurs: Clientqui souhaite échanger BTC onchain contre Lightning BTC, et Fournisseur du service d'échange

Pas:

  • Le client crée une facture Lightning qu'il souhaite être payée, avec le montant souhaité
  • Le Client initie une demande auprès du Fournisseur, avec les détails de la facture (montant, hachage de paiement, délais d'attente, etc.) et sa propre clé publique
  • Le fournisseur met en place une adresse BTC « coffre-fort », contrôlée par un script, permettant d'être dépensée par quelqu'un qui peut prouver que la facture LN a été payée (branche normale), ou par le client après un certain temps (branche de remboursement par délai d'attente). Le fournisseur communique l'adresse du coffre-fort, le script et le montant BTC qu'il attend au client
  • Le client vérifie le script  : qu'il contient la bonne quantité et qu'il dispose d'une branche de délai d'attente avec sa propre clé publique
  • Le client effectue le paiement BTC en chaîne à l'adresse du coffre-fort
  • Le prestataire observe le paiement, attend la confirmation, le vérifie
  • Le fournisseur paie la facture LN (à partir de ses fonds LN)
  • Une fois la facture payée, le fournisseur transfère le BTC du coffre-fort vers une adresse qu'il contrôle lui-même
  • Résultat final  : la facture LN est payée, le client a moins de BTC et plus de LN-BTC, le fournisseur a moins de LN-BTC mais plus de BTC.

    Voici la description détaillée du cas inverse, LN->BTC  :

    Cas inverse (LN->BTC)  :

    Acteurs: Clientqui souhaite échanger Lightning BTC contre onchain BTC, et Fournisseur du service d'échange.

    Pas:

  • Le Client initie une demande auprès du Prestataire, avec le montant souhaité
  • Le fournisseur crée une facture Lightning
  • Le fournisseur met en place une adresse BTC « coffre-fort », contrôlée par un script, permettant d'être dépensée par quelqu'un qui peut prouver que la facture LN a été payée (branche normale), ou par lui-même après un certain temps (branche de remboursement par délai d'attente)
  • Le fournisseur effectue le paiement BTC à l'adresse du coffre-fort
  • Le fournisseur communique la facture Lightning au client (sans le secret de paiement, bien sûr), l'adresse du coffre-fort et le script
  • Le client vérifie le coffre-fort et s'assure qu'il dispose d'une branche de paiement sécurisée par le hachage de paiement de la facture
  • Le client vérifie que le coffre-fort contient la bonne quantité de BTC et attend une confirmation si nécessaire
  • Le client paie la facture d'éclairage
  • Désormais en possession du secret de paiement, le Client transfère le BTC du coffre-fort vers lui-même
  • Résultat final  : la facture LN est payée, le client a moins de LN-BTC et plus de BTC, le fournisseur a moins de BTC mais plus de LN-BTC.

    Quelques notes:

    • Dans les deux cas, c'est le Prestataire qui met en place le coffre-fort
    • Je n'ai pas développé le cas de repli (cas direct  : le client peut récupérer son BTC si le fournisseur ne parvient pas à remplir ses obligations ; cas inverse  : le fournisseur peut récupérer son BTC si le client ne paie pas)
    • Le fournisseur peut ajouter des frais de service supplémentaires, le client est conscient du montant augmenté avant de payer, mais cela doit être convenu/communiqué au préalable
    • Dans le cas ultérieur, la facture Lightning peut être créée à l'avance par un tiers, et le client peut faire en sorte que cette facture soit payée directement, par exemple lorsqu'il souhaite payer une facture d'un commerçant en ligne (cette variante de cas d'utilisation se trouve dans la question d'origine ). Dans le cas inverse, cela n'est pas possible (payer le BTC directement au tiers), car le destinataire du BTC doit effectuer une opération spéciale (transférer le BTC depuis l'adresse du coffre-fort)