lnproxy

What

lnproxy takes a bolt 11 invoice and generates a “wrapped” invoice that can be settled if and only if the original invoice is settled. The “wrapped” invoice has the same payment hash, expiry, and description, as the invoice it wraps but adds a small routing budget to the amount. The “wrapped” invoice can be used anywhere the original invoice would be used to trustlessly hide the destination of a payment.

Why

Lightning network privacy will improve. In the meantime, users of custodial lightning wallets, like Wallet of Satoshi or Strike, reveal the destination of every lightning payment they make to their custodian. With lnproxy, these users can instead generate and pay wrapped invoices to hide the destinations of their payments from their custodians.

Users that operate public lightning network nodes, reveal the identity of their node with every lightning invoice they generate. With lnproxy, users can instead generate and give out wrapped invoices to obfuscate the identity of their lightning network nodes from their transaction counterparties.

How

lnproxy wrapped invoices are hodl invoices. When an lnproxy node accepts an htlc for the wrapped invoice, it immediately pays the original invoice and uses the revealed preimage to settle the wrapped invoice. This ensures that you don't need to trust lnproxy nodes with your payments.

For additional privacy, using a vpn or tor prevents lnproxy from discovering your IP address. Onion routing on the lightning network hides the source of payments to wrapped invoices.

The source code for running lnproxy is free. We encourage anyone running a lightning network node to contribute to lightning network privacy by running an lnproxy server. Users should verify that wrapped invoices are, in fact, conditional by decoding them to ensure that the payment hash matches that of the original invoice.