bitcoin-dev
Scaling Lightning With Simple Covenants
Posted on: September 17, 2023 00:59 UTC
In this email, John responds to Antoine's previous note regarding scalability dimensions and the needs of casual users in Bitcoin.
John emphasizes the importance of catering to users who simply want payments to work without having to invest time or hardware resources into it. He mentions that he has focused on providing multiple channels to as many casual users as possible.Regarding scalability, John praises Lightning for its ability to provide a large number of payments per channel without requiring on-chain transactions once the channel is created. He suggests that resizing channels can be effectively done off-chain with hierarchical channels and timeout-trees.John acknowledges the theoretical possibility of using signatures to create Lightning channels for a million casual users funded by a single UTXO, but believes it is not practical due to the challenge of getting all users to sign a transaction specifying the necessary signatures.He proposes that changing pairings should be done through the creation and expiry of timeout-trees, with users who wish to maintain the same pairing doing so via passive rollovers. He suggests that channel resizing can mainly be achieved through hierarchical channels, resorting to timeout-trees only when off-chain resizing is not possible.By implementing these proposals, John claims that interactivity can be dramatically limited. He provides an example of how at most four users would need to coordinate to update any channel, with only one being a casual user.John admits that active draining by casual users is uncertain and proposes that if the active drain fails, the casual user should put their channel in the old timeout-tree on-chain to prevent it from timing out.He acknowledges that his requirement for casual users to turn on their wallet software every few months is not ideal but believes it is better than having them perform actions within a limited time window.Addressing concerns about obtaining bitcoin if a user hasn't signed and submitted a transaction with sufficient fees, John refers to the "Limitations" section of his post and suggests that reliable transport mechanisms and fee timing based on fee levels could help address this issue.In case the dedicated user(s) funding a timeout-tree are unavailable or make an error, John suggests that the casual user should put their channel in the old timeout-tree on-chain. If the failure applies to all channels in the timeout-tree, the entire timeout-tree will be forced to go on-chain, potentially resulting in higher costs.John also mentions that unresolved HTLCs (Hashed Time Lock Contracts) need to be put on-chain but clarifies that doing so does not force the timeout-tree itself to go on-chain. He explains that there is a proposal in his paper for the use of "short-cut" transactions that may eliminate logarithmic blow-up in the number of leaves in the covenant tree when putting an HTLC transaction on-chain.In conclusion, John thanks Antoine for his thoughtful comments and invites him to reach out if there are any further clarifications needed.