Saturday, 23 February 2019

LN will end up as a network of tier 1 providers who own 90%+ of the liquidity

TL;DR: Lightning network isn't ready to scale up to route millions of nodes. Only way it can work is if all the liquidity is concentrated in a few tier 1 providers. Most of the transactions made will be within the subnet of the same provider (2 hops at max) which means source and destination is transparent to the tier 1 nodes.

Hi all, I'm generally a bystander in this subreddit as I don't necessarily share the bitcoin (BCH) maximalist philosophy that seems to be prevalent here. But I do like to browse from time to time in order to keep up to date with the technical progress being made by the devs working on BCH and trying to understand how everything works from a technical perspective.

Recently I have been looking at the work that's being done on LN and how there has been a sudden shift in marketing it not as a beta network that has unsolved issues like routing (which was the case for a long time) to a ready for use product using tactics such as the participation in LN Chain by Jack Dorsey and other mainstream figures. As an engineer it's clear to me that LN can't scale while keeping the distribution decentralized and I will try to explain the technical side of it a bit later. However seeing the recent marketing push and shift in narrative I think now the goal of decentralization has been thrown away by BTC devs and supporters which should be a bit concerning for all of us.

The technical issue of routing:

Routing in a decentralized peer to peer network is a well known computer science problem. Finding a route from any point A to point B is trivial if all the nodes and their connections are known in advance and if these connections and nodes stay static and unchanging. If those two conditions aren't met then the only way to find a route between two points is to use a variation of Dijkstra's algorithm. Problem here is that this algorithm depends on creating a 2 dimensional array (a.k.a table) of size NxN where N is the number of nodes in the network. This table has to be stored either in RAM or if using "out of core access" algorithms on the harddisk (though this second approach is quite slow). This entails that the node that is meant to calculate the route must know the updated state of all connections across the network and have them stored in memory for quick access. Anytime a change to this topology is made this map needs to be updated on each node. So far so good.

Limitations:

The problem comes when you try to scale the network past a certain point. For example if we assume that there are a million nodes on the LN network and that their connections are represented by a 256 bit integer (to represent balance between the channel) then the space requirements for the network will be 1000000 x 1000000 x 256 bits which equates to 29.1 Terabytes which have to be stored in RAM for quick access or in the harddisk for fast access. As explained before this space requirement is because the only algorithm that was discovered, in 30 years of routing related research by the giant companies running the internet who have invested billions of dollars finding alternatives, works by storing a table in memory and therefore has N^2 space requirements. Since LN works on the principle of route calculation by the originating user it means that each user has to run such a hefty system in order to participate. At most this can be reduced by half because you can store a single signed integer for a connection instead of two unsigned one. Looking at how low LN transaction fees are it's simply unfeasible to run such an operation though I assume this point can be remedied by simply increasing the transaction fees when enough people have onboarded. Now remember that the goal of BTC supporters was to create a network in which even a raspberry pi could participate. If nearly all the transactions are happening on LN which has such hefty requirements then I'm sure you can see that a raspberry pi won't be able to host a node at all. So this cuts down the number of people who are able to run a node to a very small amount. Which means that not only will most of the liquidity be owned by a few nodes due to how the pareto distribution works but also that nodes will have little choice other than to connect to these Tier 1 nodes. And since it's nearly impossible for a normal user to participate in LN the network will end up looking like a server-client system where any two users can be connected via maximum 3 hops (orign user -> Tier 1a -> Tier 1b -> end user). Since the Tier 1s are going to be run by known corporations it's not daft to conclude that they can figure out who is sending money to where despite the TOR like packaged encryption of transactions simply because all normal users are at most 1 hop away from a Tier 1 node.

For a long time I had thought that the devs were hoping that they would be able to figure out the holy grail of networking and solve the routing problem but given the recent push I think they might not want to solve it. And that vision of LN being marketed to everyone is just a lure to get everyone onboard banking 2.0.
If you have any technical rebuttals etc feel free to comment. I would love to be proven wrong here.

submitted by /u/moazzam2k
[link] [comments]

source https://www.reddit.com/r/btc/comments/atj9x8/ln_will_end_up_as_a_network_of_tier_1_providers/

No comments:

Post a Comment