The current control flow of the bootstrapping process involves synchronizing the snarked ledger before we verify the scan state associated with the block that points to the snarked ledger we download. We should actually verify the scan state before synchronizing the snarked ledger, otherwise and adversary can trick us into synchronizing to a snarked ledger for a completely invalid state. An adversary can provide us with a valid block with an invalid scan state, but they cannot provide us with a valid block with an invalid snarked ledger. Reordering control flow reduces the possibility for an adversary to make us download an invalid snarked ledger.
The current control flow of the bootstrapping process involves synchronizing the snarked ledger before we verify the scan state associated with the block that points to the snarked ledger we download. We should actually verify the scan state before synchronizing the snarked ledger, otherwise and adversary can trick us into synchronizing to a snarked ledger for a completely invalid state. An adversary can provide us with a valid block with an invalid scan state, but they cannot provide us with a valid block with an invalid snarked ledger. Reordering control flow reduces the possibility for an adversary to make us download an invalid snarked ledger.