A lightning channel funding transaction, commonly called an “open-channel transaction”, is a transaction that is used to open a payment channel on the lightning network. It anchors the channel to the bitcoin blockchain.
The transaction takes funds from the peer that requested to open the channel as the input and locks in a “joint ownership” output. This “joint ownership” is a 2-of-2 multi-signature output that requires signatures from both channel partners in order to spend the output.
The 2-of-2 multi-signature output
The script for this output is the following:
2 <pubkey1> <pubkey2> 2 OP_CHECKMULTISIG
This script is encoded as a Pay-to-Witness-Script-Hash (P2WSH), so only the hash of the script will be available on-chain.
This means that there’s no way of differentiating the funding transaction from any other transaction that has a P2WSH output.
The funding transaction can contain only the 2-of-2 multi-signature output, but it usually will contain one more output, which is the change output, sending any leftover satoshis back to the spender.
The inputs are just the UTXOs that are selected by the software to be able to fund the payment channel. A funding transaction can have a variable amount of inputs.
Examining Funding Transactions On-Chain
Overall, the funding transaction will have two outputs: the P2WSH that encodes the 2-of-2 multi-signature script and the change output. And it can have a variable amount of inputs. There is no way to look only at a funding transaction on-chain and be sure that it’s actually a funding transaction.
Fortunately, with more information, a funding transaction can be identified. Let’s see some examples of funding transactions on-chain using mempool.space:
This one is a funding transaction between Wallet Of Satoshi and Breez. There are four inputs and two outputs. The first one is the change, going back to Wallet of Satoshi, and the second one is the P2WSH output that encodes the 2-of-2 multi-signature. Inspecting the details, we can see that the funding output is actually a P2WSH, as expected.
In a standard Lightning network channel, only the node that initiates the channel opening can add funds to the channel. In contrast, a dual-funded channel is one in which both nodes contribute funds to the payment channel during the funding transaction.
This transaction has the exact same structure as a single funded one, but since both parties are contributing funds to the channel, it’s common two see three outputs in this type of transaction: one for the 2-of-2 multi-signature and two change outputs, one for each peer.
This is the first ever dual-funded transaction ever recorded in the bitcoin blockchain.
Create your own node below, or learn more about our Lightning Enterprise solution today.