Good morning list,

This topic is out of scope for the Lightning Development Summit 2018 as it 
requires SIGHASH_NOINPUT, but I thought it might be something to bring up to 
consider if it would be useful in the future.

Currently, every Lightning implementation has to have its own onchain wallet 
implementation.  This is because, the channel opening protocol requires a 
specific order in which transactions are signed and broadcast.  Specifically, 
the funding transaction must be signed and broadcast *after* the first 
commitment transaction pair is signed and exchanged.

However, SIGHASH_NOINPUT would allow Lightning implementations to be 
"walletless".  What happens is that the first pair of commitment transactions 
will have to be signed with SIGHASH_NOINPUT, then the funding transaction can 
be created using a normal wallet.  Then when the transaction paying the funding 
transaction output has been broadcast, succeeding commitment transactions may 
be created without SIGHASH_NOINPUT.

I have discussed this before on bitcoin-dev: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-May/015925.html

The primary use case is to reduce the number of transactions needed when the 
user prefers to use a specific wallet implementation that may have features 
unavailable to the Lightning implementation.  For instance, the onchain wallet 
may have privacy features (integrated CoinSwap and CoinJoin, distinction 
between traceable/cleaned coins, etc.).  A secondary use case would be to 
reduce implementation complexity for Lightning implementations, as there would 
only be needed to trace status (unconfirmed/confirmed, spent/unspent)  specific 
transaction outputs, not scan the blockchain for specific `scriptPubKey`.

Regards,
ZmnSCPxj
_______________________________________________
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev

Reply via email to