Question for masto-bitcoin: which one is more likely to be merged first into mainstream bitcoin, SIGHASH_NOINPUT or Neutrino?
@harding mainstream bitcoin as in 'included in some release of bitcoin-core'. It's a good point that noinput requires a soft fork while neutrino doesn't, but it was my understanding that Neutrino still some flaws to iron out - I'll do more research on this.
@harding yes Bitcoin Core would handle the client side filtering from a server side POV, which means pre-generating filters for all the blocks and be ready to serve them to the light client (we still call them SPV?). Looking at BIP158 i see it a bit ill-defined: for example signalling NODE_COMPACT_FILTERS requires knowledge of type 0x00 and 0x01 but the latter isn't defined in the document. I'll keep digging the ML as it's a bit hard to find info on the filter types.
@harding In fact from the discussion i had the other day at the meetup i understood that one of the type filters is specifically designed for LN but is impossible/really_hard to implement as-is in Bitcoin Core, effectively reducing the usefulness of neutrino. *keeps digging*
@harding okay, i wonder if the 0x00 type is really useful in the LN context, you know the prevout scriptPubKey but not the output spending it; unless you opened a channel using `option_upfront_shutdown_script` which forces the closing TX to have the specified scriptPubKey
@harding so the filter looks like
prevOut_scriptPubkey -> funding_tx.vout[outIndex].scriptPubKey +
output_scriptPubkey -> commitmentX.vout[to_remoteIndex].scriptPubkey
The `to_remote` is a simple P2WPKH and doesn't change at every commitment. Well thanks for the info David!
@harding while this works nicely i see a problem though: the `to_remote` output might be trimmed out from the commitment (due to fees and channel balance) so you wouldn't notice if that is being published (if you follow only the `to_remote`) this is a problem if you also happen to have in-flight HTLCs that you should fail/fullfill with a 2-nd stage transaction. I guess the trick is to add those outputs to the filter too :)
@harding oh then the filter is able to match just on the outpoint, whether it's the one of the opening channel tx or the prev_out in the case of the closing channel tx. I've read the '+' in your comment as an actual concatenation.
@ott0disk Beats me man, I'm just here to see Banks get REKT.
@ott0disk Neutrino is almost merged by now. Never underestimate how long soft-forks will take :P Even if it is a three line patch like NOINPUT