Im trying to understand the funding transaction for a channel on the lightning network. I am wondering how the input looks like to the funding transaction. Does it require In_{Alice}(tx_{id}, tx_{index},redeem_script) and In_{Bob}(tx_{id}, tx_{index}, redeem_script) as inputs to the transaction or do you just see the first commitment transactions (like Ca1, C1b) from the multisig and and ensure they are valid then asynchronously submit funds to the multisig address? [0] just shows the output format as the multisig.

[0] https://github.com/lightningnetwork/lightning-rfc/blob/master/03-transactions.md


the input of the funding tx is just an input that is able to spend some UTXO which either Bob or alice controlled. Theoretically we could have Inputs from Bob and Alice but I believe that is not being implemented yet.

The workflow goes as follows. For example alice decides to open a channel by creating a funding tx. The output of the funding tx is a 2-2 multisig P2SH so before broadcasting the funding tx there will be 2 commitment tx created. one for alice and one for bob (in order to be able to ascribe blame in case auf malicious behavior) only if the commitmet tx are successfully signed the funding tx will be broadcasted to the bitcoin network and only if it has enough confirmations the channel will become operational.


The input(s) of the Funding Transaction are not specified as there is no need to do that. This is because only one party can fund the channel (the one that sends an „open_channel“ message to another LN node).

For example:

Lets assume Alice wants to create a channel with Bob. In this case, Alice is the only funder of the channel. So she creates a Funding Transaction with one or more inputs (that reference her UTXOs) which sum up to a total of 1 BTC. She also creates the first Commitment Transaction which refunds her 1 BTC (she can broadcast this transaction in case Bob won't cooperate anymore). That means, the second Commitment Transaction is actually the first transaction that Alice can use to pay Bob. Note that Bob cannot pay anything to Alice with the second Commitment Transaction as only Alice funded the channel and hasn't paid Bob anything yet. Now what if Bob wants e.g. to pay 1.5 BTC to Alice? Well, he can simply (try to) open another channel with Alice by sending her an „open_channel“ message. If Alice accepts the request, Bob funds the channel with 1.5 BTC and can then send money to Alice.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.