]> git.bitcoin.ninja Git - rust-lightning/commit
Correct the on-chain script checked in gossip verification 2022-08-fix-script-check
authorMatt Corallo <git@bluematt.me>
Sat, 13 Aug 2022 17:29:06 +0000 (17:29 +0000)
committerMatt Corallo <git@bluematt.me>
Wed, 17 Aug 2022 16:26:23 +0000 (16:26 +0000)
commit6265da0d39104fe311ccd582abed6a3b3fcc4d6c
tree6a29913f53c329c3d64bac2b34c59351472cf9b9
parentd02425121ec082689a18bb0b22bec226cc02ff7d
Correct the on-chain script checked in gossip verification

The `bitcoin_key_1` and `bitcoin_key_2` fields in
`channel_announcement` messages are sorted according to node_ids
rather than the keys themselves, however the on-chain funding
script is sorted according to the bitcoin keys themselves. Thus,
with some probability, we end up checking that the on-chain script
matches the wrong script and rejecting the channel announcement.

The correct solution is to use our existing channel funding script
generation function which ensure we always match what we generate.

This was found in testing the Java bindings, where a test checks
that retunring the generated funding script in `chain::Access`
results in the constructed channel ending up in our network graph.
lightning/src/routing/gossip.rs