Can Chainalysis trace every transaction in Lightning? How can users add more privacy?
if you speak to rath_ he will tell you his LN wallet does not have privacy, his wallet announces his channel balance changes to a central DNS/explorer/whole network so that everyone can see whats available to make routes.
where analysis can then watch the movements as the updates happen
LN originally worked differently using private messages. (still does if you avoid rath_'s prefered wallet)
here is rath highlighting how he views his wallets function of everything is public
The Lightning Network solves this problem by implementing a gossip protocol. Gossip protocols are typical for peer-to-peer (P2P) networks and allow nodes to share information with the whole network with just a few direct connections to peers. Lightning nodes open encrypted peer-to-peer connections to each other and share (gossip) information that they have received from other peers. As soon as a node wants to share some information, for example, about a newly created channel, it sends a message to all its peers. Upon receiving a message, a node decides if the received message was novel and, if so, forwards the information to its peers. In this way, if the peer-to-peer network is well connected, all new information that is necessary for the operation of the network will eventually be propagated to all other peers.
By
default, Lightning channels are public and they advertise themselves through "channel_announcement" and "channel_update".
You can use Lightning explorers like
amboss.space or
1ml.com to see information extracted from the gossip protocol for each public node.
Here's my node. You can see all of my channels, including their fee settings which are necessary to construct the routing path. Private channels are generally not used for payment routing as the invoice would have to include routing hints.
Even a lightwallet like Electrum
forces their users to wait for the local graph to sync through the gossip protocol if they don't want to be able to connect only to trampoline nodes, which can take care of the path calculation for the user if they are willing to compromise their privacy.
note.
other LN wallets(not like rath_'s) do not have channels set to public by default, do not send announcements to the whole network. and it only sends it to the 'tree' of peered nodes. if they choose to.
notice the use of words "forces users" . "public by default" .. nasty stuff
the way LN was "promised2 was privacy where for instance
imagine i was carol(C)..
A>B>Cmy node1 Zmy node3
my node3 C>D>E
(A)lice can pay (Z)oe even though A only has a network map tree of B>C (where i (via node1) decided NOT to respond about my node3 paths of W>X>Y>Z)
yep i dont actually need to have a tree linking all channels announced publicly, via a peer pass the parcel of linked peer channels from start to end. nor need to announce to some DNS or explorer site
yep Z can all pay A. even if the Z does not have a network map tree of ABCWXYZ. and only has a map of ZYXWC
but in rath_'s view his wallet broadcasts everything meaning if he had the same set up.
the whole network would see
A-B-C-D-E
\
W-X-Y-Z
oh and rath_ thinks even if i set my C to be private, he can still see
A-B-C-D-E
\
W-X-Y-Z
all because HIS wallet defaults and forces his channels to be public so he does not understand that privacy was and is possible.
the other thing is the 'convenience' of 'all public' (default, forced) means he does not need to send private messages to test routes. and instead can build routes without testing them. the flaw of this convenience of saving a few hundred bytes of data. is ofcourse lack of privacy, and also the reason he had a 70% fail rate for payments because he wasnt testing routes before trying to push payments