lnproxy allows you to hide your node pubkey from anyone sending you lightning payments. Think of it like a VPN for an invoice. With lnproxy, users can instead generate and give out wrapped invoices to obfuscate the identity of their lightning network nodes. It changes the privacy game!
CBDCs threaten the very foundations of American life. Central banks across the world are exploring the possibility of developing their own digital currencies, known as CBDCs. - Bitcoin Policy Institue
The world is becoming moar centralized frens, and Jerome wants to spy on every transaction you do with a US central bank digital currency. The darkness is here, and lightning has become the hope we all need right now. This is why more and more privacy-focused projects are being built right now.
Developers to the rescue!
lnproxy allows you to hide your node pubkey from anyone sending you lightning payments. Think of it like a VPN for an invoice.
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 fee to the amount. The “wrapped” invoice can be used anywhere the original invoice would be used to trustlessly obfuscate the destination of a payment.
Lightning network privacy will improve. In the meantime, users of custodial lightning wallets, like Wallet of Satoshi or the Bitcoin Beach Wallet, reveal the destination of every lightning payment they make to their custodian. With lnproxy, these users can instead generate and pay wrapped invoices to obfuscate the destination of the payment from their custodian.
How does lnproxy work?
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 with your payments.
For additional privacy, using a vpn or the lnproxy node's tor hidden service prevents the lnproxy node from discovering your IP address. Onion routing on the lightning network protects the privacy for the source of payments to wrapped invoices.
API is available now
This little binary uses the lnd REST API to handle lightning things so running it requires lnd.
To build, just set the parameters in
lnproxy.go and run
go build lnproxy.go, or something like that.
The compelling use case for lnproxy is users should realize lnproxy is not trustless, the proxy operator knows the destination of the payment and you have to trust him not to reveal that info, but privacy-wise it's trusting you, much like a VPN provider. There is a whole discussion on Stacker.News around this. If you hooked up several lnproxy together, you would, in theory, create an onion network for routing lightning payments.