Today I was privileged to read @dragosruoua's post regarding how instituting the futures market for BTC caused the price of BTC to crash. In the comments was a link to a video regarding the Lightning Network, detailing some guy named Rick's thoughts on it. Amongst them was a discussion of the fact that mesh routing on a network given bad actors was an unsolved problem.
This startled me, as it seems a relatively simple problem. However, on reflection, I was further alarmed at how insoluble the problem seems.
Consider: Bob wants to send Mary a package through a physical mesh network. He addresses the package, and asks his neighbor to pass it on. As long as each recipient of the package is a good actor, each passes it on to the next, until it reaches Mary, who is pleased to receive the package from Bob.
But, suppose that somewhere along the chain of neighbors handing off the package is Cracky, a nefarious thief, desperate for a hit of crack. He does not hand off the package to the next neighbor in Mary's direction, but opens it, and sells the contents on Ebay.
How can this problem be avoided?
Well, package tracking sets out to ensure that should any bad actor prevent the package proceeding on it's way, that last known recipient is identified. However, if there are enough bad actors colluding to defeat tracking, this can be defeated. Cracky's dealer can claim to have received the package and passed it on to Penelope Pureheart, who would then be accused of the theft. Cracky can claim to have passed it on himself, or a subset of the passers-on colluding with Cracky can claim any number of routing errors, or catastrophic events that destroyed the package.
At best, tracking can simply identify a bad actor that took the package, who may be able to be sanctioned for that act. This does not solve the routing problem.
Hashgraph, however, proposes a mechanism called 'Gossip About Gossip' that may offer a solution. As the package passes from Bob's hands to his neighbors, so does information about the package and neighbors get entered into the network. Before Bob hands off the package, he can read about his neighbors reliability - whether the neighbor he intends to hand the package to is a good actor.
If the neighbor is Cracky, Bob can choose another neighbor, because he can read the gossip about Cracky's habit. Each neighbor in the network can read the gossip about the route the package has taken, and where it needs to go, and about the reliability of the next intended neighbor. Each good actor in the mesh can make sure to only hand off the package for Mary to another reliable good actor, even though bad actors may live next door.
Routing can fail in the event a good actor finds they cannot hand off to a good actor because they're in a bad neighborhood, and the package can retrace back, or be delayed while it retraces until it is able to be passed off on a new route that bypasses the bad neighborhood.
The entire time the package is en route, Bob and Mary can read the gossip about the gossip the passers-on are reading, and keep track of the package in real time.
Clearly, bad actors can still impact this network, if only for the first time, and for some purposes and in some configurations, actors can be variously defined as bad or good, depending on who is doing the defining and why.
However, criminals seeking to deploy fleets of socks to intercept packages would not have reputations from known good actors to provide gossips to lure them into passing packages to the criminals. Should bad actors posing as good actors pretend to be deceived into granting reputation to socks, or bad actors, doing so would redefine them as bad actors, and thereafter exclude them from the network.
While it's not a perfect solution, it seems gossip, and gossip about gossip, can form a substantial safeguard against bad actors seeking to prey on networks.
I reckon this could be stated mathematically, but make no apologies for not doing so. If you have the chops to consider this idea mathematically, I'd appreciate your thoughts on it's potential to be proved thereby.
Does Hashgraph provide a potential solution to mesh routing? Let me know.
The issue is that LN trying to be a mesh network means it cannot scale. The creators admit the whole thing could become disfunctional somewhere between 10,000 to 1 million users of LN.
It is because the path changes from each hop have to be relayed to everyone kn the network. Eventually there is so much useless information being relayed that nodes cant process it.
This is the crux of the unsolved problem that is Mesh Network Topology, likely cant be solved in any sense for LN until tech is more advanced and better internet/cheaper server costs, and even then probably something less than 1 million could use it at once without bogging down system.
Check out a quote from this article:
I find the Hashgraph guys to be selling it very hard and understating the downsides, almost defensive about them. This is a good example of some confusion. So the answer is, it depends on the throughput, and that depends on the use case. If there aren't that many packages (messages) but there are tons of people (nodes) then it might be applicable.
From the article you quoted.
From your reply.
Unless I am even more confused and stupid than I think I am, I find those two statements contradictory. That being said, I was unaware of the scalability issue with Hashgraph, and don't understand it. I'm not that surprised really, as I am not a coder, and don't expect to be able to follow deep into the nuts and bolts.
If Hashgraph doesn't scale nodewise, then I'm saddened, but glad you pointed it out. Checking out Zilliqua now, in the hope that scalability in all three dimensions either turns up, or can be cobbled together soon.
Thanks!
I see what you mean, good catch.
In the context in the article the author is talking about taking the dimensions of use independently, of number of messages, payload size (together which combine to throughput) and number of nodes. I thought it was that for the same number of nodes, hashgraph can scale in throughput, and for the same amount of throughput, it can scale in number of nodes (that is, holding each variable and scaling the other) but perhaps my interpretation was incorrect. Thanks for that, now I'm not sure.
I'll need to do more reading actually because there's not quite enough here. I'll get back to you on that.
Hashgraph definitely looks like the future I can't wait to see things begin to appear using it. Not sure how close we are to that yet though 💯🐒
This is probably related to hash chains, such as what holochain is using? https://github.com/holochain/holochain-proto/blob/whitepaper/holochain.pdf
Sorry just kind of a n00b but I'm trying to figure all of this out