If the channel opening transaction is not confirmed, you can't use such a channel. Every time a channel is updated (either one spends/receives some coins or routes a payment), both parties sign a new commitment transaction which reflects the updated balance of the channel.
Yes but all of these are signed transactions that are kept by the channel founder. What if Alice broadcasts one transaction of her address that has signed transactions to Bob? I'm trying to understand how the channel founder can prevent from making the entire procedure useless.
It would be better to show it with the steps (It's on 8):
1. Alice opens a payment channel to Bob, and Bob opens a payment channel to Charlie.
2. Alice wants to buy something from Charlie for 1000 satoshis.
3. Charlie generates a random number and generates its SHA256 hash. Charlie gives that hash to Alice.
4. Alice uses her payment channel to Bob to pay him 1,000 satoshis, but she adds the hash Charlie gave her to the payment along with an extra condition: in order for Bob to claim the payment, he has to provide the data which was used to produce that hash.
5. Bob uses his payment channel to Charlie to pay Charlie 1,000 satoshis, and Bob adds a copy of the same condition that Alice put on the payment she gave Bob.
6. Charlie has the original data that was used to produce the hash (called a pre-image), so Charlie can use it to finalize his payment and fully receive the payment from Bob. By doing so, Charlie necessarily makes the pre-image available to Bob.
7. Bob uses the pre-image to finalize his payment from Alice
8. Alice broadcasts a transaction of her 1000 satoshis to the blockchain which makes the entire procedure useless, because the signed transaction that Bob keeps will not be accepted from the network.
Lightning network is known for being fast. But I don't understand where does that "fast" refer to. Is it fast on confirming the transaction? AFAIK, if the transaction is not written in a block, it can be double-spent.