They do not contain info about the sender because the recipient generates them. In this respect a bolt12 invoice is similar to a bitcoin address: the address itself contains no info about the sender, who is typically not even known yet when the address is created.
They do not contain info about the amount because the sender's wallet is supposed to communicate in a tor-like manner with the recipient to ask what amount to send. Since there is a round of communication before the payment happens, the amount can be disclosed during that round of communication and not put directly in the bolt12 invoice.
They do not contain info about the recipient because tor-like communications work this way: instead of saying "send your message/money to me, here is my ip address" your invoice says "send your message/money to node X, and I will inform node X how to forward it to node Y, etc. til it finally reaches me."
By this method, no one knows the full route -- not the sender, not the recipient, and not any routing node in between. The hidden-route part was already true of "regular" lightning, but what's new in bolt12 is that the sender no longer constructs a route "to the destination" (which he doesn't know) but only to "node X" -- a "rendezvouz node" named by the recipient, who tells node X how to forward the money further, etc.
reply
reply