9

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?

2 Answers 2

8

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.

3
  • what incentivises a full node to publish said fraud proof, other than it being out of genuine kindness? And what happens if a SPV node encounters conflicting fraud proofs where 2 partitions in the network sends differing fraud proofs that invalidates either chain tips?
    – rny
    Nov 15, 2016 at 13:17
  • If there are two competing chain tips, they are both valid. Fraud proofs are only used to identify invalid blocks. Reducing possibilities for users to be scammed on the network increases the value of the network for all users and there is practically zero effort involved for the generator of the fraud proof. I.e. it would still make sense for a completely self-interested user to publish a fraud proof.
    – Murch
    Nov 15, 2016 at 13:23
  • Now there is a BIP for oversize blocks: github.com/bitcoin/bips/blob/master/bip-0180.mediawiki May 29, 2017 at 11:08
0

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.