5
2
Reading through the Lightning Network Paper, it seems that amounts sent through an intermediate node use the Hash Timelocked Output construction. The thing I'm concerned about with HTLCs is that they actually require their own output. Simultaneously, the transactions they are in must also be broadcast-able if the other party goes offline or become uncooperative.
So, let's look at a scenario where Alice wants to send 1 satoshi to Carol, through Bob, with whom Alice and Carol both already have payment channels open. Alice sends bob a new commitment transaction with 1 satoshi deducted from her balance and a new HTLC output for 1 satoshi. Bob sends the same type of channel update transactions to Carol. The problem is, though, that HLTC output would be considered dust if it ever did actually need to be broadcasted! So this cannot be considered a valid guarantee of payment, since the transaction would not even propagate on the network.
Is that a problem? Part of the excitement over the LN is that you can send really small amounts, but it seems to me that you can't actually send smaller amounts than you could in a real bitcoin transaction, because you have to be able to broadcast the transactions if the other party doesn't cooperate or goes offline.
It's not really just a problem where you might have to pay more in fees, you literally can't broadcast your guarantee of payment transaction in the case that something goes wrong, because it won't propagate and you won't be able to recover your funds out of the channel. You wouldn't even be able to get your original funds in the channel back, because it's part of the same transaction. Thus, you have to avoid extremely small payments altogether. So they're not really micro-transactions, they're milli-transactions (amounts can go down to 0.001 but not down to 0.000001). – morsecoder – 2016-07-26T19:10:30.580
That's how I see it too. It allows for smaller transactions than on the Bitcoin mainchain, but not down to Satoshis. Only if you somehow introduce trust into a node/path could you go down that low. By the way, this was a great question! I wish I could give it another upvote! – Jestin – 2016-07-26T19:15:17.530
Haha, thanks! The interesting thing is that if you were just doing a bi-directional payment channel directly without HTLC outputs, you could send down to 1 satoshi trustless-ly, because in that case it's just a matter of updating balances (Alice: 0.5, BoB: 0.5 -> Alice 0.49999999, Bob: 0.50000001). But when the amounts have to be their own HTLC output, it breaks down. – morsecoder – 2016-07-26T19:32:37.263