serai/coins
Luke Parker 7ac0de3a8d
Correct binding properties of Bitcoin eventuality
Eventualities need to be binding not just to a plan, yet to the execution of
the plan (the outputs). Bitcoin's Eventuality definition short-cutted this
under a honest multisig assumption, causing the following issue:

If multisig n+1 is verifying multisig n's actions, as detailed in
multi-multisig's document on multisig rotation, it'll check no outstanding
eventualities exist. If we solely bind to the plan, a malicious multisig n
could steal outbound payments yet cause the plan to be marked as successfully
completed.

By modifying the eventuality to also include the expected outputs, this is no
longer possible. Binding to the expected input is preserved in order to remain
binding to the plan (allowing two plans with the same output-set to co-exist).
2023-09-08 05:21:18 -04:00
..
bitcoin Correct binding properties of Bitcoin eventuality 2023-09-08 05:21:18 -04:00
ethereum Update to May's nightly 2023-05-01 04:58:50 -04:00
monero Remove no longer necessary async from monero SignatableTransaction::sign 2023-08-29 16:20:21 -04:00