If Bitcoin is to succeed as a widely-used means of digital value transfer, it’s imperative that the protocol scales effectively. Even after integrating last year’s Segwit upgrade, the network is nowhere near equipped to handle the throughput required by large amounts of newcomers.
The best way to scale has long been the subject of fierce debate between various groups involved in the Bitcoin space, with some contending that perpetually increasing the block size is necessary, while others maintain that off-chain solutions are the way forward.
A deluge of memes, tweetstorms and hard forks later, and we’ve weeded out the big block crowd. Progress on layer 2 mechanisms like the Lightning Network is well underway, enabling users to transact near-instantly and with negligible fees in a series of interconnected payment channels superimposed atop the Bitcoin blockchain. In a post-LN world, one would expect to use the base layer for high-value settlements or storage of funds, and Lightning to make day-to-day purchases (coffee, groceries, etc.).
As it stands, in order to open a channel, a user must make a transaction on the main chain (likewise if they want to publish the most recent state and unlock their funds). No issues so far: you pay a low fee and have the channel up and running within the hour, allowing you to send and receive microtransactions with a growing network of 5000 nodes and counting (provided you can route to them, of course).
This would be fine if the current demographics and transaction count remained stagnant. In the long run, however, we’re not aiming to only have the same group of early adopters buying Uber Eats vouchers on Bitrefill or squandering away their kids’ inheritance on Lightning Spin. We’re aiming to see Bitcoin embraced by 7 billion+ people, businesses and staggering amounts of machines.
Even with the vast majority of transactions taking place on the second layer, the opening and closing of channels would create a severe backlog on the main chain. Just check out the /r/btc subreddit. The time it would take to onboard everyone would supposedly take upwards of a century.
Enter Channel Factories
A solution to this bloat problem is discussed in Scalable Funding of Bitcoin Micropayment Channel Networks, in which the concept of a ‘channel factory’ is discussed by Conrad Burchert, Christian Decker and Roger Wattenhofer.
We propose a new layer that sits in between the blockchain and the payment channels. The new layer addresses the scalability problem by enabling trust-less off-blockchain channel funding. It consists of shared accounts of groups of nodes that flexibly create one-to-one channels for the payment network.
In essence, a channel factory is opened much like a regular payment channel, with participants (the more the merrier) committing their funds to an n-of-n multisig address. This newly-opened channel then serves as a springboard for creating more channels between signatories, completely off-chain.
To illustrate the concept, let’s say yourself and nine others wish to open channels amongst yourselves. To ensure all the nodes in this group are connected to one another today, you’d need 45 on-chain transactions to open the channels, and 45 to eventually close them. That’s 90 base layer interactions in total.
Now, with a channel factory, that same group would only need a total of two on-chain transactions for ten users. The ‘factory’ consists of a layer injected between the blockchain and the second layer (or third layer, once the channel factory is introduced). Instead of multiple groups of two opening channels, all ten participants would be included in the opening multisig transaction.
From there, the included parties are free to create as many channels as they please with their peers (on the third layer), all without the need to phone home to the blockchain – if one such channel is closed, it does not close the factory itself. Important to note also is that, within this microcosm, channels can be rebalanced if they become one-sided.
Just how efficient would the use of a channel factory be, exactly? According to the paper:
For a group of 20 users with 100 intra-group channels, the cost of the blockchain transactions is reduced by 90% compared to 100 regular micropayment channels opened on the blockchain. This can be increased further to 96% if Bitcoin introduces Schnorr signatures with signature aggregation.
Implementing factories doesn’t appear to be an immediate priority. The Lightning Network is still in its early stages and the concept is by no means the only proposal for scaling optimisations, though it requires no changes to the network before being rolled out. As Decker puts it in a Reddit comment:
[…] this scheme allows an alternate channel creation mechanism, however once the channels are setup they work just like before. So the endpoints of a channel could decide to upgrade at a later point to use this scheme, without having to teardown the entire network and rebuild it on top of this. So, no, we do not need to incorporate this scheme right away, but we may seamlessly update later, that’s one of the advantages of creating a layer 2 system :-)
Channel factories enable massive cost reductions for boosting large groups onto second-layer networks, all whilst reducing the strain on the blockchain. As demand for block space drives fees up, it’s critical that solutions such as these are adopted so as to lower the barriers to entry into the Lightning Network.
Cover image by the author.