blips icon indicating copy to clipboard operation
blips copied to clipboard

bLIP-56: Pluggable Channel Factories.

Open ZmnSCPxj-jr opened this issue 1 year ago • 5 comments

Channel factories are a way of scaling Bitcoin by hosting offchain channels, not directly onchain, but in another offchain mechanism. The hosting mechanism is called a channel factory. The channel factory can change the funding amounts of channels inside the factory, without any onchain transactions.

This pluggable channel factory protocol is a proposal by which base node software can handle channel state, while letting external code handle state of the channel factory. As far as the node software is concerned, the channel is a "0-conf" channel whose funding transaction never seems to confirm, even though the state is actually backed by an offchain mechanism that ensures that the channel can be unilaterally closed in the worst-case scenario.

When the channel factory wants to change the funding amounts of hosted channels, the node software acts as if a splice operation is being performed, which changes the funding amount (or not changes it, if it is other channels in the same factory that are changed but not this one). When the channel factory offchain mechanism has settled to a new state, it is as if a splice transaction was successfully deeply confirmed.

ZmnSCPxj-jr avatar Dec 02 '24 16:12 ZmnSCPxj-jr

Updated blip number to 56, as per PR number.

ZmnSCPxj-jr avatar Dec 02 '24 19:12 ZmnSCPxj-jr

I think we should wait for a reference implementation, indicating that this will actually be used in practice before merging this bLIP. But it's fine to keep the PR open to guide future implementers!

t-bast avatar Dec 12 '24 16:12 t-bast

I think we should wait for a reference implementation, indicating that this will actually be used in practice before merging this bLIP. But it's fine to keep the PR open to guide future implementers!

Hmm, I'm a bit confused about exact process (also related to #55), as bLIP-01 states:

Reference Implementation -- The reference implementation must be completed before any bLIP is given status "Final", but it need not be completed before the bLIP is accepted. It is better to finish the specification and rationale first and reach consensus on it before writing code. The final implementation must include test code and documentation appropriate for the Lightning protocol.

Wouldn't this indicate that bLIPs would get accepted (read: merged) in Draft status if they meet the other criteria, and could advance to Proposed/Final once the reference implmentation is finished?

tnull avatar Dec 13 '24 11:12 tnull

Wouldn't this indicate that bLIPs would get accepted (read: merged) in Draft status if they meet the other criteria, and could advance to Proposed/Final once the reference implmentation is finished?

True, but if there is an implementation (or potentially multiple) that are in-progress: the goal of merging early in draft is mainly when more than one implementations are in-progress and they want to make sure they're building on the same foundations. I believe that we shouldn't accept bLIPs that nobody is actually implementing: if this is just a research protocol that should be iterated on before someone actually wants to use it, delving bitcoin is a better place.

t-bast avatar Dec 13 '24 13:12 t-bast

True, but if there is an implementation (or potentially multiple) that are in-progress: the goal of merging early in draft is mainly when more than one implementations are in-progress and they want to make sure they're building on the same foundations. I believe that we shouldn't accept bLIPs that nobody is actually implementing: if this is just a research protocol that should be iterated on before someone actually wants to use it, delving bitcoin is a better place.

Alright, makes sense, thanks for clarifying!

tnull avatar Dec 13 '24 13:12 tnull