A simpler (less sophisticated but much easier) Lightning Network by 3-party novation

Maybe, I don’t know, you’re solving an interesting problem on its own (multi-hop atomic transactions) but, as I pointed out above, I don’t believe solving it will make a difference in the context of network of payment channels, because I think the whole “network of payment channels” is unworkable. It’s really a Rube-Goldberg machine that makes outer-most vertices click back-forth and cascade internal vertices states to make some other outer vertice pop out. You push one end, some other end pops out, you push it back in some other edge pops out, but a pushed vertex can’t be pushed more than allowed by its channel - there is no flow through the mesh, the flow is an illusion.

It works with credit because it doesn’t need to flow. But payment channel network maintains 100% collateral, and there the collateral can not flow and collateral needs to flow. Traditional banking works because they operate with fractional reserve so they can operate even as they defer collateral flows. Imagine if everyone had to fully collateralize every debt - this is what LN is.
On a second thought, even if banks ran with 100% collateral, they could still reduce debt with bank A to increase debt with bank B. Can’t do that with payment channels because collateral is stuck to particular debt. The collateral isn’t just locked, it’s partitioned.
What is needed is another kind of L1 primitive where nodes have one bag of collateral which they can use to back any debt.

Anyway, can’t spare anymore attention on this, have some other things I want to work on.

1 Like

Since the banking system has always worked in terms of that, it is of course not unworkable. Relationship also have same principles, a balance that can go positive and negative. Biologically, probably serotonin system (it was metabolic byproducts of using tryptophane amino acid for energy which signaled sociality among bacteria, was co-opted as a social coordination hormone, territorial coordination, i.e., “money”).

Like Tom said, a simple direct tab between two friends works. But it achieves little. The next step up, is novation. A “novation network”. Here, you are not even doing multiple hops. It is always just one hop. But it achieves the clearing by novation.

Such “novation network” is a good “primitive”. Maybe it is meaningful even without the 2nd tier below it. Might be many groups or people who mainly want to interact within such system, exchanges between one another right now. Who knows. It is a thing in itself, and the one step above Tom’s “friends keep a tab”.

The 3-node coordination I suggested does not work. But the direction was the right one. The interesting thing with 3 nodes is majority vote works well. This stops working with more (“sybil attack”, N nodes can attack and win majority vote but damage themselves less than the rest). It is symmetric with 3 nodes.

Such needs both majority vote for commit and abort. It also needs to signal when voting starts. I think a majority hash lock that is:

“prepare”, here majority abort can be signed with 2-of-3 abort preimages (avoids node 2 attack). debtor locks X amount to transfer, can commit at any time. creditor also locks X to enforce cooperation. can abort at any time.

“pre-commit”, this is decided by the initiator releasing the pre-commit preimage, who only they hold

“commit”, majority vote with 2-of-3 commit preimages

This might seem complex. But majority vote to either commit or abort is very common pattern. The “pre-commit” preimage solves knowing if everyone has agreed to do the vote, the vote cannot enforce anything unless people have first set up an agreement with the hash lock as condition…

1 Like

Overall the idea payments (how they’ve always been done and what they’ve always been) are “unworkable” is a fiction. And shows lack of education. A good example of novation with “collateral” historically is Bill of Exchange. This was standard for how to do payments for a thousand years. It is novation but “one-way”, i.e. it novates only on transfer. If B has debt from A and wants to pay C, they novate. But if C receive transfer from B but had debt to D (i.e., is now intermediary and would like to novate), they cannot. It is 50% of a novation system. In Bill of Exchange you could always “close the channel” and collect “collateral” from the “ledger”. History did not start in 2008 and you must have been born at least in the 1990s. Majority vote to elect central authority for a “block” of authority did not start in 2008 either… it is also thousands of years old. The fact is, the banking system with zero changes besides payment channels instead of trust can be placed under Bitcoin, and you then have one where capital says who has power, not in-group trust. That’s very cool. The reason people don’t talk about it is probably because they don’t know how banking system has been organized historically. They think the world started when they were born. That said, the chained timeout HTLC Ryan Fugger suggested in 2006, without using “chunked penalty”, yeah it is not very workable but that’s a separate topic.

This sounds promising to make 3-party 2-channel atomic update possible. It’s an interesting problem on its own.

Probably, I myself didn’t know many of the things you mentioned, and I appreciate learning something new about the banking system here.

It’s just that I don’t think you can exactly project it on to payment channel networks, because mechanics matter. You’re still dodging the fact that, with payment channels, collateral isn’t fungible on L2 (it is on L1, of course, but the idea is to avoid L1 transactions).

Maybe because a payment channel with 0 net debt still requires 2 BCH of collateral to be locked in. “I owe you 1 BCH, you owe me 1 BCH”, the collateral is actually reserved for a debt that isn’t even created yet. And you can’t create more debt than 1 BCH worth (“I owe you 2 BCH, you owe me 0 BCH”). Now I owe you 2 BCH, and you owe me 0, but that didn’t free your original 1 BCH to be used as collateral in some other debt you want to create with someone else.

1 Like

No I am considering it will be locked up in payment channels. Even if the payment channel network takes the “dumbest” possible structure - the one I am guessing the world used since 1700s to allow global trade, as it seems like the simplest way to scale (“dumbest”, like building house of clay is dumb but this is also a good thing to use dumb solutions sometimes, it is resilient, robust, cheap), it still does infinite payment capacity trustless-ly. It will, by self-organization, be locked up in proportion to need. If 99% of all payments are small enough to pass via the routing network, and these are 50% of all capital, half the Bitcoin would be locked up. The rest would be rare, very large, payments.

Routers want to do this because they earn routing fees. It will be a very attractive position. Users want to do it, because the routing fee will still be smaller than on-chain transaction fee. This is for a 10 billion user network that (with the on-chain payments too) does most of the world’s payments in terms of capital moved. Then there will also be trust-backed networks for small payments, with no collateral (Ryan Fugger’s Ripple, here the 3-phase commit is essential, since “chained timeouts” require “chunked timeouts” and those require a penalty on all phases in the coordination).

So, capitalistic incentives. Paying less fees, and earing said fees.