I did not notice it, but now I've read it. I think they are wrong.
They claim that when paying a bolt11 invoice, Acinq "learns the amount and destination of BOLT 11 payments" because they are the ones who calculate the route. But I think they are overestimating what they learn -- bolt11 has built in privacy protections that I don't think they are considering, including these:
- a bolt11 does not tell you the recipient's ip address unless they are a routing node -- it just tells you a random pubkey that is only used for communication and never holds any money
- a bolt11 does not tell you what bitcoin address the money ends up in (i.e. the 2 of 2 channel whose state gets updated. It also doesn't tell you the address of the off-chain htlc that temporarily holds the money until the payment resolves)
- the pubkey listed in a bolt11 might not even belong to the "real" recipient -- invoice wrapping is a thing supported by several services now including voltage, lnproxy, and robosats, and Phoenix cannot know if an invoice is wrapped or not
- the pubkey listed in a bolt11 might simply belong to another routing node and Phoenix would have no clue -- they are just "assuming" the pubkey belongs to the recipient (and thus that they know the destination) but it might belong to a routing node and screw up their assumptions
- so Phoenix might *think* they learn info about the destination from a bolt11, but I don't think they really do
- and btw, that tells them nothing about the sender -- the person who *seems* like the sender might be a routing node too and Phoenix would have no idea
They also claim: "ACINQ doesn't know the origin node [when you receive a payment[. It knows the destination Phoenix node and the amount."
I think they are wrong again. They might *think* they know the destination because they assume they are forwarding it to you and it stops there. But *you* might be a routing node forwarding it to someone else and they would have no idea about this.
> In the case of Phoenix->Phoenix payments, ACINQ will always know the origin and destination node, and the amount, even with BOLT 12
I think they are wrong again. A phoenix->phoenix payment inherits the same uncertainties as every other payment: they don't know if the person who *seems* like the sender is the *real* sender or just another routing node; they don't know if the person who *seems* like the recipient is the *real* recipient or just another routing node; they *think* they learn all this info but I don't think they are considering the privacy protections built into bolt11 and as well as optionally available through invoice wrapping services (some of which are automatic)
Bolt11 is more private than you might realize! I certainly think it's more private than Phoenix realizes.