In Pieter Wuille's presentation on Segregated Witness, he often mentioned "fraud proofs". What exactly are they? Do physical users actually have to go out of their way to manually produce these proofs to alert other nodes of misbehaviour? How do fraud proofs relate to witness scripts?
SPV clients don't fully validate blocks. Therefore, they are vulnerable to being fed a fake block from their full node peers. A fraud proof is a way to prove that a chain tip is invalid. As soon as any node would discover a block to be invalid, they'd create and relay a fraud proof to the network. As SPV clients receive the fraud proof they will know not to accept the invalid block.
As hinted above, fraud proofs can be created by any network participant that discovers an invalid block. As far as I know, this has nothing to do with Segregated Witness, but will rather be introduced as an independent softfork some time in the future.
Adding to Murch's response. Segwit is related to fraud proofs in this way:
Because they've separated the transactions and the witness data and added the second merkle tree, it allows Bitcoin developers to potentially use some of that space to add extra information about transactions so that SPVs could have the information needed to identify if any block had a problem and then to use that information to show the entire block to be invalid. And this could potentially be done without sacrificing censorship resistance.
Source: Eric Lombrozo, Let's Talk Bitcoin (Epicenter) Interview on Segwit https://youtu.be/iipca5gmcT8 - Time Stamp, start at: 29:00