Non-bidirection payment channels for lightning network

I am trying to understand the technology behind LN and similar concepts.

As I understand it, LN is a network of bidirectional channels, which are created with some limited capacity, within which the channel can operate. So, we can have Alice putting 3 coins to the channel and Bob putting 20 coins to the channel and this 3:20 ratio can then change in time with each off-chain payment, until it eventually reach the point where Alice and Bob want to close the channel at some final balance ratio – say 13:10.

This bidirectional concept has some features (or disadvantages) of e.g. requirement to balance the channel (or create a new one) if payments in one direction are more common. Also each such channel connecting two parties needs two on-chain transactions.

Questions: Why do we use channels only between 2 parties? Would it not be possible to have a channel that is formed e.g. by 4 parties, e.g. Alice with 3 coins, Bob with 4 coins, Cecil with 5 coins and Daniel with 6 coins? It should allow Alice to send e.g. 2 coins to Bob, thus modifying the state of the channel from “A3:B4:C5:D6” to “A1:B6:C5:D6” etc.

If this was possible, we could have 2 on-chain transactions to interconnect 4 (or more) entities, so it seems it would be more effective than bidirectional approach. It also seems to me that keeping the channel balanced would be little bit easier than in case of bidirectional case.

Obviously there would be more communication needed for each off-chain transaction within the channel (all parties would probably have to be involved).

So, is there any fundamental problem with having more than 2 entities in one channel? Or is it just that the benefits of having them would not outweigh the additional complexity?

Recent Questions – Bitcoin Stack Exchange

why is double-spend not an issue for payment channels?

Micropayment Channels (MPC) cannot be used currently because of transaction malleability, I hear.

AFAIK, people saying that have in mind that the refund & payment tx, which have as input the deposit tx (Dtx), could be invalid if the deposit’s hash was changed. I m fine with this.

What I don’t understand: if the attacker manages to modify Dtx’ hash before it made it to the blockchain, I believe (s)he can equally manage to double spend the btcs supposed to go to Dtx. Thus, double spend seems as much a threat as malleability. Yet no one discusses it, so I suppose something is wrong with this reasoning. What?


Recent Questions – Bitcoin Stack Exchange

Do Lightning Channels have to be resolved before a certain time?

I seem to remember that Lightning channels could remain open indefinitely with the introduction of CLTV. Yet, I’m confronted with claims that they time out and coins are lost when they do.

This seems wrong, as when channels time out they should send back the money, and as I said above, I thought they could remain open. What is it?

Recent Questions – Bitcoin Stack Exchange

Wallets that support payment channels?

I know that maybe it’s a bit early to start asking Wallets to implement Lightning Network connections even if the majority don’t support SegregatedWitness yet.

But how about Payment Channels? In theory they have already been out there since long ago, and as far as I understand, they are not affected by transaction malleability if not combined with other channels forming a (lightning) network. So then, is there any wallet out there that already implements them? I only find libraries (such as BitcoinJ) that have support for them, but not wallets.

Recent Questions – Bitcoin Stack Exchange

implementations of m-n addresses and multipayment channels

I just read bitcoinJ’s working with contracts tutorial and I am puzzled.

  1. Is it indeed the case an address controlled by more than one private key is implemented using plain multisig (as defined in this bit of the developer’s guide) in bitcoinJ ?

  2. I looked for implementations of addresses controlled by more than one private key with pybitcointools (tutorial on that here) and on libbitcoin’s wiki. It seems to me that these two libraries use P2SH.

What motivates implementing m-n address as per 1. or as per 2. ? Most libraries seem to use P2SH, but bitcoinJ chose the other way it seems…

In an implementation of micropayment channel with bitcoinJ on one side and, say, libbitcoin on the other ; will the two sides be able to interoperate?


Recent Questions – Bitcoin Stack Exchange

How are Lightning network, duplex channels, and micropayment channels related?

I’m new to Bitcoin and just became familiar with Micropayment channels. But how exactly do they relate to:

I am reading about these but can’t find a “big picture” view. Most big-picture posts are over-simplistic or promoting either of these I found.

Also, micropayment channels, as implemented by bitcoinJ, are used in practice I believe. What about Lightning and Duplex?

thank you

Recent Questions – Bitcoin Stack Exchange